Wachtwoord kwijt?
Home arrow Pijporgel arrow Pijporgel - MIDI-implementatie
Pijporgel - MIDI-implementatie Print E-mail
zondag, 15 februari 2009
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>

Status 2de byte
CnH ppH

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>

Status
 F8H

  • Alleen ontvangst.

<Active Sensing>

Status
 FEH
 
  • 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)
lengteLengte 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. 

PCDevice 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
Laatste aanpassing ( vrijdag, 29 januari 2010 )
 
< Vorige   Volgende >
© 2012 HCCmuziek.nl
Joomla! is Free Software released under the GNU/GPL License.