| Functie | Zenden | Ontvangen | Opmerkingen | | Basic kanaal | Standaard | 0-15 | 0-15 | | | Veranderd | 0-15 | 0-15 | | Mode | Standaard | x | Mode 3 | Het orgel blijft altijd polyfoon. | | Berichten | x | Mode 3, 4 (M=1) | | Veranderd | x | | | Note number | | 24-119 | 0-127 | Niet ondersteunde noten worden genegeerd | | Echte stem | 24-119 | 0-127 | | Velocity | Note ON | o | o | Standaard is NOTE ON bij ontvangen Note OFF is de velocity genegeerd | | Note OFF | o
| o | | After Touch | Key's | x | x | | | Ch's | x | x | | Pitch Bend | x | x | | | Control Change | 0, 32 | o
| o | Bank select | | 1 | o
| o
| Modulation | | 5 | x | x | Portamento time | | 6, 38 | x | x | Data entry | | 7 | o | o | Volume (zwelkast) | | 10 | x | x | Panpot | | 11 | x | o | Expression (zwelkast) | | 64 | x | x | Hold1 | | 65 | x | x | Portamento | | 66 | x | x | Sostenuto | | 67 | x | x | Soft | | 72 | ? | o
| Release Time, Standaard 0 | | 84 | x | x | Portamento control | | 91 | x | x | Effect1 depth | | 93 | x | x | Effect3 depth | | 94 | x | x | Effect4 depth | | 98, 99 | x | x | NRPN LSB, MSB | | 100, 101 | x | x | RPN LSB, MSB | | Prog Change | | o
| o | | | Echte # | 0-127 | 0-127 | Prog.1-128 | | System Exclusive | x | o
| Firmware update
| | System Common | Song Pos | x | x | | | Song Sel | x | x | | Tune | x | x | | System Real Times | Clock | x | o
| | Active Sensing
| x | o
| | Aux Messages | All Sounds OFF | x | o (120, 126, 127) | | | Reset All Controllers | x | o (121)
| | Local ON/OFF | x | o (122)
| | All Notes OFF | x | o (123-127) | | Active Sensing | x | o | | System Reset | x | x | | Notes | *1 herkent als M = 1 zelfs als M niet gelijk is aan 1; 2 running status wordt ondersteund. x betekent niet ondersteund, wordt genegeerd. o betekent ondersteund. | Mode 1 : OMNI ON, POLY Mode 2 : OMNI ON, MONO Mode 3 : OMNI OFF, POLY Mode 4 : OMNI OFF, MONO Ontvangst/Verzending Channel Voice Messages <Note off> | Status | 2de byte | 3de byte | | 8nH | kkH | vvH | | 9nH | kkH | 00H | n = MIDI channel number : 0H-FH (ch.0-ch.15) kk = note number : 00H-7FH (0-127) vv = note off velocity : 00H-7FH (0-127) - De velocity wordt bij ontvangst genegeerd;
- De velocity is bij zenden 0.
<Note on> | Status | 2nd byte | 3rd byte | | 9nH | kkH | vvH | n = MIDI channel number : 0H-FH (ch.0-ch.15) kk = note number : 00H-7FH (0-127) vv = note on velocity : 01H-7FH (1-127) - De velocity bij wordt ontvangst genegeerd;
- De velocity is bij zenden 64.
<Control Change> - De waarde zoals gespecificeerd door een Control Change bericht zal zelfs niet worden gereset bij een Program Change, etc.
> Bank Select (Controller number 0, 32) | Status | 2de byte | 3de byte | | BnH | 00H | mmH | | BnH | 20H | llH | n = MIDI channel number : 0H-FH (ch.0-ch.15) mm, ll = Bank number : 00H, 00H-7FH, 7FH (bank.0-bank.16385), Initial Value = 00 00H (bank.0) - De standaard Bank is: MSB (mm)=00, LSB(ll)=00;
- Het afhandelen van Bank Select bij ontvangst wordt uitgesteld tot een Program Change bericht is ontvangen.
> Modulation (Controller number 1) | Status | 2de byte | 3de byte | | BnH | 01H | vvH | n = MIDI channel number : 0H-FH (ch.0-ch.15) vv = Modulation : 00H-7FH (0-127), - Het pijporgel heeft drie discrete waarden voor modulatie: uit (vv=0 t/m 43), laag (vv=44 t/m 86) en snel (vv=87 t/m127). Modulation werkt op alle kanalen gelijkertijd.
- Bij ontvangst wordt het kanaal nummer dus genegeerd;
- Bij zenden wordt op één van de actieve kanalen de controller verzonden.
> Volume (Controller number 7) | Status | 2de byte | 3de byte | | BnH | 07H | vvH | n = MIDI channel number : 0H-FH (ch.0-ch.15) vv = Volume : 00H-7FH (0-127) - Het pijporgel heeft zes discrete waarden voor volume (stand zwelraam): 0- (vv=0-20), 1- (vv=21 t/m 40), 2- (vv=41 t/m 60), 3- (vv=61D t/m 80), 4- (811 t/m 100) en 5- (vv=101 t/m 127). Volume berichten werken op alle kanalen gelijkertijd;
- Bij ontvangst wordt het kanaal nummer genegeerd;
- Bij zenden wordt op één van de actieve kanalen de controller verzonden. De actuele waarde van het volume pedaal wordt verzonden.
> Expression (Controller number 11) | Status | 2de byte | 3de byte | | BnH | 0BH | vvH | n = MIDI channel number : 0H-FH (ch.0-ch.15) vv = Expression : 00H-7FH (0-127), Initial Value = 7FH (127) - Kan onafhankelijk van Volume worden gebruikt. Het beïnvloedt alle kanalen gelijkertijd. Expression berichten worden gebruikt voor muzikale expressie, bijv. expression pedaal bewegingen, crescendo and decrescendo;
- Bij ontvangst wordt het kanaal nummer genegeerd;
- Bij zenden wordt op één van de actieve kanalen de controller verzonden.
> Release Time (Controller number 72) Eigenlijk is het extra sustain tijd, maar een orgel heeft geen sustain pedaal. Daarom gebruiken we onterecht de Release Time. | Status | 2de byte | 3de byte | | BnH | 48H | vvH | n = MIDI channel number : 0H-FH (ch.0-ch.15) vv = Release Time waarde (relatieve verandering): 00H-7FH (-64 - 0 - +63), Initial Value = 40H (geen verandering) - Parameters zoals "relatieve verandering" veranderen de waarde relatief t.ov. de standaard waarde .Deze wordt voornamelijk door de afvaltijd van de elektromagneten bepaald;
- Parameters zoals "absolute verandering" veranderen de absolute waarde van parameters onafhankelijk van de vorige waarde;
- Negatieve waarden worden bij Release Time genegeerd;
- Zal niet aanwezig zijn in release 1.
<Program Change> n = MIDI channel number : 0H-FH (ch.0-ch.15) pp = Program number : 00H-7FH (prog.0-prog.127) - Nadat een Program Change bericht is ontvangen zal het geluid veranderen met de volgende ' Note On' . Stemmen die al klinken als de PC wordt ontvangen, worden uitgeschakeld na de eerste ontvangen 'Note On'.
Channel Mode Messages <All Sounds Off (Controller number 120)> | Status | 2nd byte | 3rd byte | | BnH | 78H | 00H | n = MIDI channel number : 0H-FH (ch.0-ch.15) - Als dit bericht wordt ontvangen, worden alle klinkende noten in het kanaal direct uitgeschakeld.
<Reset All Controllers (Controller number 121)> | Status | 2nd byte | 3rd byte | | BnH | 79H | 00H | n = MIDI channel number : 0H-FH (ch.0-ch.15) - Als dit bericht wordt ontvangen worden de volgende controllers op hun reset waarden gezet.
| Controller | Reset value | Modulation
| 0 | | Expression | 127 (max) | <Local Control On/Off (Controller number 122)> | Status | 2nd byte | 3rd byte | | BnH | 79H | vvH | n = MIDI channel number : 0H-FH (ch.0-ch.15) vv= 00 betekent Off, vv=127 betekent On. <All Notes Off (Controller number 123)> | Status | 2nd byte | 3rd byte | | BnH | 7BH | 00H | n = MIDI channel number : 0H-FH (ch.0-ch.15) - Als 'All Notes Off' wordt ontvangen, worden alle noten op het gerelateerde kanaal uitgeschakeld.
<OMNI OFF (Controller number 124)> | Status | 2nd byte | 3rd byte | | BnH | 7CH | 00H | n = MIDI channel number : 0H-FH (ch.0-ch.15) - Er gebeurt hetzelfde als bij de ontvangst van 'All Notes Off'.
<OMNI ON (Controller number 125)> | Status | 2nd byte | 3rd byte | | BnH | 7DH | 00H | n = MIDI channel number : 0H-FH (ch.0-ch.15) - OMNI ON wordt alleen herkent als 'All notes off'. De Mode verandert niet. (OMNI OFF blijft).
<MONO (Controller number 126)> | Status | 2nd byte | 3rd byte | | BnH | 7EH | mmH | n = MIDI channel number : 0H-FH (ch.0-ch.15) mm = mono number : 00H-10H (0-16) - Het zelfde wordt gedaan als bij het ontvangen van 'All Sounds Off' en 'All Notes Off''. Het orgel blijft polyfoon.
<POLY (Controller number 127)> | Status | 2nd byte | 3rd byte | | BnH | 7FH | 00H | n = MIDI channel number : 0H-FH (ch.0-ch.15) - Het zelfde wordt gedaan bij het ontvangen van 'All Sounds Off' en 'All Notes Off''. Het orgel blijft polyfoon.
System Realtime Message<Timing Clock>
<Active Sensing> - Bij ontvangst: als 'Active sensing' wordt ontvangen, wordt de intervaltijd tussen de volgende berichten bijgehouden. Als dan de tijd tussen twee berichten de 420 msec overschrijdt, worden de zelfde processen uitgevoerd alsof 'All Sounds Off', 'All Notes Off' en 'Reset All Controllers' zijn ontvangen. Het controleren van de intervaltijd tussen de berichten wordt daarna gestopt
System Exclusive Message | Status | Data byte | Status | | F0H | iiH, ddH, ......, eeH | F7H | F0H : System Exclusive Message status ii = ID nummer : een ID nummer (manufacturer ID) geeft de fabrikant aan van wie dit exclusief bericht is. Wij hebben geen ID en kunnen eigenlijk deze berichten niet gebruiken. ID nummers 7EH and 7FH zijn uitbreidingen van de MIDI-standaard; Universal Non-realtime Messages (7EH) and Universal Realtime Messages (7FH). dd,...,ee = data : 00H-7FH (0-127) F7H : EOX (End Of Exclusive) Voor het orgel is worden System Exclusive Messages voor het updaten van de firmware gebruikt. Omdat hcc!muziek geen fabrikant ID heeft, is wel voorzichtigheid geboden. Interferentie met System Exclusive Messages van andere producten zouden kunnen interfereren. We gebruiken ID = 0. Dit wordt normaal gebruikt om een drie bytes ID aan te geven. <Data transmission> > Data set Dit is het bericht dat de data transmissie verzorgt. | Byte | Explanation | | F0H | Exclusive status | | 00H | ID number (wij gebruiken 0)
| | dev | Device ID = (sub)module ID | De volgende bytes worden als nibbles verstuurd.
| | com | Command ID (0=lees versie, 1=lees programmageheugen, 2=schrijf programmageheugen, 3=wis programma geheugen, 4=lees EEprom, 5=schrijf EEprom, 6=lees configuratie bits, 7=schrijf configuratiebits) | | lengte | Lengte van de data
| | adL | Addres laag: laagste byte van het startadres van de data | | adM | Addres midden: middelste byte van het startadres van de data | | adH | Addres hoog: hoogste byte van het startadres van de data | | ddH | Data: de data, verstuurd als een reeks bytes.
| | : | : | | eeH | Data | | Einde van de data die wordt verstuurd in nibbles | | sum | Checksum | | F7H | EOX (End Of Exclusive) |
- Gegevens groter dan 32 bytes moeten in pakketten van 32 bytes of minder worden verstuurd. Tussen de pakketten moet er een rustperiode zijn. Deze periode is nodig om de gegevens in het geheugen te schrijven. Deze periode is afhankelijk van de (sub)module en wordt automatisch bepaald.
Zoals hierboven is gesteld, moeten we voorzichtig zijn met het gebruik van System Exclusive Messages. Normaal gesproken negeert het orgel daarom System Exclusive Messages. Alleen als het orgel in "firmware update mode" staat worden System Exclusive Messages verwerkt. Het orgel of een deel (functie) daarvan wordt in "firmware update mode" gezet door op kanaal 15 een 'Bank select' (MSB=20, LSB=0), met daarna een Program Change te sturen. Met behulp van de Program Change wordt de te laden (sub)module gekozen. | PC | Device ID = (sub)module ID
| | 0 | Klankcontroller | | 1 | Pijpcontroller | | 2 | Communicatiecontroller | | 3 | Registercontroller | | 4 | Ledcontroller | | 5 | Toetscontroller | | 6 | Contactcontroller | | 7 | Pedaalcontroller | Toegevoegde informatie <Decimal en Hexadecimal tabel> In MIDI zijngegevenswaarden, adressen en lengten van exclusive berichten vaak uitgedrukt in hexadecimale getallen van ieder 7 bits. De volgende tabel geeft de corresponderende decimale waarden. | Dec. | Hex. | Dec. | Hex. | Dec. | Hex. | Dec. | Hex. | | 0 | 00H | 32 | 20H | 64 | 40H | 96 | 60H | | 1 | 01H | 33 | 21H | 65 | 41H | 97 | 61H | | 2 | 02H | 34 | 22H | 66 | 42H | 98 | 62H | | 3 | 03H | 35 | 23H | 67 | 43H | 99 | 63H | | 4 | 04H | 36 | 24H | 68 | 44H | 100 | 64H | | 5 | 05H | 37 | 25H | 69 | 45H | 101 | 65H | | 6 | 06H | 38 | 26H | 70 | 46H | 102 | 66H | | 7 | 07H | 39 | 27H | 71 | 47H | 103 | 67H | | 8 | 08H | 40 | 28H | 72 | 48H | 104 | 68H | | 9 | 09H | 41 | 29H | 73 | 49H | 105 | 69H | | 10 | 0AH | 42 | 2AH | 74 | 4AH | 106 | 6AH | | 11 | 0BH | 43 | 2BH | 75 | 4BH | 107 | 6BH | | 12 | 0CH | 44 | 2CH | 76 | 4CH | 108 | 6CH | | 13 | 0DH | 45 | 2DH | 77 | 4DH | 109 | 6DH | | 14 | 0EH | 46 | 2EH | 78 | 4EH | 110 | 6EH | | 15 | 0FH | 47 | 2FH | 79 | 4FH | 111 | 6FH | | 16 | 10H | 48 | 30H | 80 | 50H | 112 | 70H | | 17 | 11H | 49 | 31H | 81 | 51H | 113 | 71H | | 18 | 12H | 50 | 32H | 82 | 52H | 114 | 72H | | 19 | 13H | 51 | 33H | 83 | 53H | 115 | 73H | | 20 | 14H | 52 | 34H | 84 | 54H | 116 | 74H | | 21 | 15H | 53 | 35H | 85 | 55H | 117 | 75H | | 22 | 16H | 54 | 36H | 86 | 56H | 118 | 76H | | 23 | 17H | 55 | 37H | 87 | 57H | 119 | 77H | | 24 | 18H | 56 | 38H | 88 | 58H | 120 | 78H | | 25 | 19H | 57 | 39H | 89 | 59H | 121 | 79H | | 26 | 1AH | 58 | 3AH | 90 | 5AH | 122 | 7AH | | 27 | 1BH | 59 | 3BH | 91 | 5BH | 123 | 7BH | | 28 | 1CH | 60 | 3CH | 92 | 5CH | 124 | 7CH | | 29 | 1DH | 61 | 3DH | 93 | 5DH | 125 | 7DH | | 30 | 1EH | 62 | 3EH | 94 | 5EH | 126 | 7EH | | 31 | 1FH | 63 | 3FH | 95 | 5FH | 127 | 7FH |
|