*************************************
*            <AUTOSAX>              *
*                V3                 *
*       Godfried-Willem Raes        *
*           versie 2006             *
*************************************
last update: 21.05.2006 - 14u50

MIDI kanaal voor <Autosax>: 3 (offset 0) of 4 (offset 1)

PICSPECS:

PIC1: pulse board (16 outputs + 1 extra)
----------------------------------------

hiermee worden de saxofoonkleppen bestuurd.
Voor elke midi noot moet een 16-bit getal gedefinieerd zijn waarbij elk
bit overeenkomt met een uitgang en dus met een klep.
De tabel moet via sysex kunnen geherprogrammeerd worden.
Keyword voor deze sysex: sax1
Een tabel neemt dus 127 16-bit woorden in beslag.

De selektie van een andere tabel kan dan via program change.
vb: 100 tot 127 voor de selektie van deze tabellen.
De kleppen werken alleen in on/off mode.

Nota: de mosfets op het PIC board sturen hier niet rechtstreeks de kleppen, 
maar wel een ander board waarop de hoogspannings mosfets gemonteerd zijn.

De extra output wordt op dit board gebruikt voor het inschakelen van de voedingsspanning
voor de kleppenmagneten. (Via een relais).
- mapping op midi controller 65 (on/off)

default lookup voor de noot-klep relatie binair genoteerd: (MSB = laagste klep)
Deze lookup moet worden geselekteerd bij ontvangst van program change zero.

0 , 00000000 00000000
1 , 10000000 00000000
2 , 11000000 00000000
3 , 00000000 00000000
4 , 00010000 00000000
5 , 11000000 00000000
6 , 01111100 00100000
7 , 00000000 00000000
8 , 10000000 00000000
9 , 01000000 00000000
10, 11000000 00000000
11, 00100000 00000000
12, 00000000 00000000
13, 10000000 00000000
14, 11000000 00000000
15, 00000000 00000000
16, 00010000 00000000
17, 11000000 00000000
18, 01111100 00100000
19, 00000000 00000000
20, 10000000 00000000
21, 01000000 00000000
22, 11000000 00000000
23, 00100000 00000000
24, 00000000 00000000
25, 10000000 00000000
26, 11000000 00000000
27, 00000000 00000000
28, 00010000 00000000
29, 11000000 00000000
30, 01111100 00100000
31, 00000000 00000000
32, 10000000 00000000
33, 01000000 00000000
34, 11000000 00000000
35, 00100000 00000000
36, 00000000 00000000
37, 10000000 00000000
38, 11000000 00000000
39, 00100000 00000000
40, 00010000 00000000
41, 11000000 00000000, &HB000
42, 01111100 00100000
43, 00000000 00000000, &H00
44, 10000000 00000000, &H8000
45, 01000000 00000000, &HB000
46, 00000000 00000000
47, 00100000 00000000


48, 00000000 00000000
49, 10000000 00000000
50, 11000000 00000000
51, 00100000 00000000
52, 00010000 00000000
53, 00001000 00000000
54, 01111100 00100000
55, 01111110 11000000
56, 01111111 01000000
57, 01111111 10000000
58, 01111111 11010000
59, 01111111 11100010
60, 00000000 00000000
61, 01000000 00000000
62, 01100000 00000000
63, 01110000 00011000
64, 01111000 00011000
65, 01111100 10000000
66, 01111110 00100000
67, 01111111 00111000
68, 01111111 00000000
69, 01111111 10111000
70, 01111111 11010000
71, 01111111 11100010
72, 01111111 11110000
73, 01111111 11111001
74, 01111111 11111100
75, 01111111 11111110
76, 01111111 11111111
77, 01111111 11001000
78, 01111111 11100000
79, 01111111 11110000
80, 01111111 11111000
81, 11111111 11111100
82, 01111111 11011110
83, 11111111 11111111
84, 01111111 11110000
85, 11111111 11111000
86, 01111111 11111110
87, 01011111 11111110
88, 01111111 11001111
89, 00000000 00001111
90, 00000000 00000110
91, 00000000 00000111
92, 00000000 00000101
93, 00000000 00000011
94, 00000000 00000010
95, 00000000 00000001 

voor 96-127: 
    00000000 00000001


PIC2: midihub board
-------------------
- motor control
	controller 1: PWM output, motor speed - Weidmueller X17, pin2
	controller 66: Motor ON/OFF           - weidmueller X11, pin2
                       must be OFF on init.
                       Value: 0 for OFF or 1-127 for ON
		       Should not switch off on reception of all notes off.
                       Weidmueller X11, pin 3 connected to PIC pin 4, RA2 
        controller 67: Motor error reset      - weidmueller X11, pin3 
                       must be OFF on init
                       Resets the motor controller after a fault condition has occured.
		       Should ideally be a one shot (ca. 200ms pulse), rather than a toggle.
                       Weidmueller X11, pin 2 connected to PIC pin 5, RA3

- expression valve control
	velo-byte van alle note ON's: PWM output,             - weidmueller X17, pin3  (PIC pin 12 = RC1)
                      	moet tevens reageren op elke echte noteoff door naar 0 te gaan 
                        Deze controller stuurt het proportioneel kegelventiel.
        Optie: ook laten reageren op channel pressure, voor modulatie van de lucht tijdens het
	       klinken van een toon.

Weidmueller X11:
               Weidmueller X11, pin1 - GND
	       Weidmueller X11, pin4 = +24V from motorcontroller	


PIC3: DS-PIC board: sound and waveform synthesizer
--------------------------------------------------

midi note range: 0 - 81
	note = note-frequency
        opgelet: het velo byte wordt verwerkt door PIC2 voor de sturing van het expressieventiel
controller 7 = amplitude

De signaal uitgang moet simultaan aanwezigzijn op twee afzonderlijke PIC pinnen, onderling 180 graden gedraaid in faze.


pitch bend (+/- 1 semitone)

DC offset, stuurbaar via panning controller (10) gemapt op duty cycle.(5 - 95%). Default 50%.

De uitgang van dit signaal wordt naar een analoge power eindversterker gevoerd voor de sturing van het elektromagnetisch riet.

Optional: reed opening via PWM sturing van een elektromagneet boven het riet.
	  Midi controller 11

NOTA: hiervoor bestaat nog geen PC board. Een ontwerp ervoor is ook nodig voor <So> en verdere in aanbouw zijnde blaas- en strijkinstrumenten