****** 27.08.2007: first version - not yet ready 25.11.2007: Midi Hub board finalized and mounted. 27.11.2007: Valve data update 1 30.11.2007: PIC1 version 1 programmed 01.12.2007: PIC2 version 1 programmed 02.12.2007: PIV3 board finalized. Specs revized. 09.12.2007: bug reports made 22.12.2007: Updated. midi channel : 13 (0-15) basisstemming trombone: 34 (Si b) frekwentie = 58.2704734266Hz PIC1: [midi-hub board.] *********************** 2 analog outs: 1 for motor control (PWM) : mapping op midi controller 1 (wind) X17 - 2 same coding as for 1 for later analog pwm expansion (windvalve) x-17-3 mapping op midi controller 2 09.12.07: Works as switch controller 66 (PIC1 mapping bug) repaired in the hardware such that it works. 6 bits (standard weidmueller outputs) 1 used as motor on off switch : X11-2 (mapping op midi controller 66) 09.12.07: does not work. Not mapped on lights neither 1 12V front lite - yellow : X11-3 mapping on note 84 4 lites : X12-2 mapping on note 85 - front lite X12-3 mapping on note 86 - back lite X15-2 mapping on note 87 - front left 4 yellow LED's X15-3 mapping on note 88 - front right 4 yellow LED's TO BE DONE?: Wind pressure lookups, via program change commands. (cfr. html page on site) Pincode: 'bowi' PIC2: [pulse/hold board, 10 outputs] ************************************ Note/ventiel mapping stuurbaar via controller: Controller 13: 0 = standard mapping all bits = 0 (see lookup in Bono_valves.txt) 1 = teoretical map (according to Trombone courses) bit 0 set 2 = mapping table 3 bit 1 set 3 = mapping table 4 bit 0 and 1 set bit2 = if set, user combinations for valves are enabled if bit2 is set and all lower bits are 0 then: bit3 = 1/2t ventiel on if set (v1) bit4 = 1t ventiel on if set (V2) bit5 = 1 1/2t ventiel on if set (V3) bit6 = 2 1/2t ventiel on if set (V4) Note: if controller 13 value >= 3, note on commands should not have any effect on the valve bits, since in that case the user is supposed to send the valve combinations prior to sending the note-on command. Also, different valve combinations can be sent whilst a note is sounding, leading to coloring effects and extended techniques. Note-off commands however should always zero all bit outputs for the valves. Harware wiring: Board pulse-hold version1 (same as ) X3 = valve OFF solenoids X4 = valve ON solenoids X3, pin 1 = left valve pull 1 tone down valve off X4, pin 6 = left valve push 1 tone down valve ON (-2) X3, pin 2 = 2nd left valve pull 1/2 tone down valve OFF X4, pin 7 = 2nd left valve push 1/2 tone down valve ON (-1) X3, pin 3 = 3th left valve pull 1 1/2 tone down valve OFF X4, pin 8 = 3th left valve push 1 1/2 tone down valve ON (-3) X3, pin 5 = right valve pull 2 1/2 tone down valve OFF X4, pin 9 = right valve push 2 1/2 tone down valve ON (-5) X3, pin 4 = n.c. X4, pin 10 = n.c. - reserve for lights [mapped on note 89] - to be done! Note: X3, pin 4 disabled so that we can use that pin on the PIC for our real time in circuit debugger! TO DO: ****** controller 25: duration of the velo pulse applied to all outputs. Default setting: 64 pulse duration range: 0-127ms. 01.12.2007: [temporary set to a constant value of ca. 20ms) Note-off moet alle velo's onderbreken en de hold's resetten. 09.12.2007: Bits swapped! ctrl. 14 seems not working now. ctrl.25 neither. We decided to drop 14 and rather implement 25 for compatibility with . Program change for lookups not tested yet. (lack of lookups) BUG: solenoids have to be powered during notes! Note-hold has to be implemented. When a note using the same valve combination is requested, the solenoids should remain powered but no velo-pulse should be applied. Hold only on X3, pin 10: lite on/off mapped on note 89. PIC3: DS-PIC tone generator *************************** Dit is fundamenteel dezelfde kode als ontwikkeld voor . We gebruiken twee outputs: PIC pinnen 26 en 24. Voor noten buiten het tessituurbereik moeten beide outputs altijd NUL zijn. Wanneer controller 66 NUL is, mogen geen tonen gegenereerd worden. Bij note-off, moeten beide outputs eveneens NUL zijn. 09.12.2007: tested o.k. TO DO: midi notes 0-... moeten de huidige frekenties voor 12-... genereren. de mechanika doet alles immers een oktaaf hoger klinken. Te genereren midi noten: 0 - 82 (later evt. af te kappen op 70) Reagerend op midi note on + velo/ note off Pitchbend: te implementeren met een bereik van +/- een halve toon (kwarttoon ook aanvaardbaar) noteer: status (224+k), lsb, msb signed!!! msb >= 64 is dus een verhoging van de frekwentie met msb - 64 msb <64 is een verlaging met ABS(msb-64) De pitchbend waarde moet gereset worden bij elke nieuwe noot of note off. De pitchbend moeten kunnen werken tijdens het genereren van een noot. Daarmee kunnen we immers vibrato, slides e.d.m. implementeren in de muziek. Controller 7 : volume control. (PWM on pin 22) This steers the integrating optor attenuator. 09.12.2007: after talking pin 22 instead of the original 23, this works. However, smoothness of curve leaves to be desired. (dit is nieuw tegenover ) Controller 17: amplitude begrenzing - attack value (max. bereik voor de velo's) (dit was bij de volume controller, nr.7) Controller 18: Attack duration Controller 20: tuning : 0 to + 50 cents - default must be 440Hz 09.12.2007: works. For 440Hz, the controller must be set to 5. Value 127 rises the pitch a quartertone. Parameters: amplitude: gemapt op midi-velocity (de default scaling moet afnemen met stijgende toonhoogte, a rato van -6dB per oktaaf, een implementatie met +6dB boven de amplitude instelling van ctrl 17. gedurende 100ms zou erg goed zijn.). wave- symmetry (onafhankelijk van toonhoogte) Sys-ex programmeerbare lookups: noot: max.velo(amplitude): wave-symmetry: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Display functions: ****************** 2 4-bit nibbles worden gebrukt voor de aansturing van twee 7-segment displays. 09.12.2007: displays always show the playing midi note value. No note playing displays FF ' ************************************************************************************ Technische hardware notas: - voedingsspanning bidirectionele elektromagneten ventielen: +/-12V (not stabilized) - voedingsspanning displays: 5V (available from HUB board) - voedingsspanning analoge power op-amp:-28V/+28V symmetrisch. - voedingsspanning Logos display: 6V non stabilised. ************************************************************************************ Valve lookups: Bono valve combination lookup tables valves are code bit 0 = -1/2 valve, bit 1 = -1 valve, bit 2 = -1 1/2 valve, bit 3 = - 2 1/2 valve. see document bono_valves.txt Prog.change 120: p, legato Prog.change 121: mf, legato Prog.change 122: f-ff, legato Prog. change 123: p, sfz Prog.change 124: mf, sfz Prog. change 125: f, sfz Prog. change 126: for later expansion Prog. change 127: no lookups . For measurement and research.