*********************************************************** * PIC specifications for Synchrochord * *********************************************************** 22.08.2011: First sketch, overview. 07.11.2011: Workout for autotune mechanism. 16.01.2012: Version1.0 firmware for the fingers. ******************************************************************************** PIC1: MidiHUB board 18F2525 22.01.2012: Firmware version 1.0 - damper: PWM generation on note off's release force steering (X17-2) - exciter: velocity steering on note-on's (X17-3) - velocity/amplitude controll via softshift solenoid pwm - lights: mapped on notes 120-127 velo byte steering the flashing speed. X11-2 blue LED spotlite on arm X11-3 blue LED spotlite on arm The velocity byte accompanying a note-on steers the softshift solenoid on the plucker assembly The release byte accompanying a note-off steers the force of the damping. If the release value is zero (as is the case with most sequencer software) this force will be controlled by the value set with controller 33. The damper will always be released from the string after a hold time set by controller 34. - all notes off implemented. TO DO: on reception of a tuning request controller (CC22), this board should perform an all notes off. ******************************************************************************** PIC2: Pulse/Hold board: fingering control [18F4620] 16.01.2012: Firmware version 1.0 22.01.2012: tested o.k. with the hardware, but we might need individual pulse durations for each solenoid. - 12 solenoids - with aftertouch controll for force modulation (vibrato) - On reception of a note-off, the solenoid depressed for the previous note stays depressed. A timer is started - and only on run out of this timer, the solenoid will be released. A note-on arriving before expiration of this timer will cancel the timer. The duration of this timer can be set with CC30 - Midi Channel: 10 - Note range implemented: 39 - 87 - Controllers: CC30 : solenoid release time controller CC31 : vibrato speed controller. This will not work on the open string (note 39). Periodic pulses (50% duty cycle) using the negative voltage will be applied during note-hold, such that the pushing force of the active solenoid will be modulated. CC32 : attack pulse duration controller. This controlls the duration of the striking force pulse applied to a note-on involving a different solenoid than the one previously depressed. CC66 : Power on/off Has no other function here than releasing all outputs on the board and cancelling all active timers. CC123 : all notes off. Releases all solenoids and cancels all active timers. TO DO: on reception of a tuning request controller (CC22), this board should perform an all notes off. ******************************************************************************** PIC3: dsPIC (or 18F4620 steering an intel timer) - 2 phase generation of sinewaves for the synchronous motor frequency = pitch/10, note ON commands phase angle between the sine waves must be controllable - sensor input for actual motor speed ( f= fmot * 8) - sensor input for actual string frequency [ already handled by PIC4 ] - second serial input channel for receiving data from tuner controller (?) - steering of the stroboscope ******************************************************************************** PIC4: 18F2525 autotuning mechanism - tuning motor control: speed * CW/CWW - pitch sensing input - e-bow freq. output for tuning excitation - 3 lights 14.11.2011: First version written gwr, Proton Compiler. 24.11.2011: Tests of hardware and firmware on the prototype board. 23.01.2012: cw and cww output's connected to Weidmueller. Optocoupler-relais tested o.k. with 5V. 24.01.2012: Board mounted on the tuning head assembly. midi commands to be implemented: note 120 on/off, velo= flashing speed note 121 id. note 122 id. ctrl. 20 set fundamental tuning (midi note) [same in Hurdy] ctrl. 22 autotune command ctrl. 23 excite string using the ebow drive in feedback mode. ctrl. xx excite string (plucker) ctrl. 40 vibrato on/off ctrl. 41 vibrato speed ctrl. 42 vibrato depth ctrl. 66 power up / power down ctrl. 68 midi output message controller ctrl. 123 all notes off midi output messages: ctrl xx autotuning ready pitchbend gives frequency information in Hz, not standard midi!