22.09.2015 Views

of Microprocessors

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ORGAN KEYBOARD INTERFACE<br />

315<br />

Table 9-1. MIDI Command Summary<br />

Command Bytes<br />

1001cccc<br />

Okkkkkkk<br />

Owvvwv<br />

1000cccc<br />

Okkkkkkk<br />

Owvvvw<br />

1010cccc<br />

Okkkkkkk<br />

Oppppppp<br />

1101 cccc<br />

Oppppppp<br />

1011cccc<br />

Oddddddd<br />

Ovwvwv<br />

1110ccc<br />

Ohhhhhhh<br />

01111111<br />

1100cccc<br />

Oppppppp<br />

Description<br />

NOTE ON EVENT. cccc = 4-bit channel number. kkkkkkk = 7-bit key<br />

number where 60 (decimal) is middle C. vwvvvv = 7-bit key-down<br />

velocity where 0 is slow and 127 is fast. Use 64 if the keyboard is not<br />

velocity sensitive.<br />

NOTE OFF EVENT. cccc and kkkkkkk fields are as for NOTE On.<br />

vvvvvvv = 7-bit key-up velocity.<br />

NOTE PRESSURE UPDATE. cccc and kkkk fields are as for Note<br />

On. ppppppp = 7-bit pressure value for key kkkkkkk, 0 is light and<br />

127 is heavy. This command is sent every 10-50 msec. It need not<br />

be sent if the keyboard has no pressure sensors.<br />

CHANNEL PRESSURE UPDATE. Used in mono mode. Updates the<br />

pressure parameter in voice cccc. ppppppp is as for Note Pressure<br />

Update.<br />

CONTROL CHANGE. Used to change internal variables <strong>of</strong><br />

synthesizer listening to channel cccc. ddddddd is 7-bit device<br />

(control) number as follows:<br />

0-31 wvwvv is most significant 7 bits <strong>of</strong> value for control numbers<br />

0-31.<br />

32-63 vvvwvv is least significant 7 bits <strong>of</strong> value for control numbers<br />

0-31.<br />

64-95 vvwwv is state (0 = <strong>of</strong>f, 127=on) <strong>of</strong> switch numbers 0-31.<br />

96-127 miscellaneous synthesizer commands including mode<br />

(mono/poly/mono) select. wvvvvv is ignored but must be<br />

present.<br />

PITCH WHEEL CHANGE. Used to change internal pitch wheel<br />

variable <strong>of</strong> synthesizer listening to channel cccc. hhhhhhh is most<br />

significant 7 bits <strong>of</strong> the new value and 1111111 is least significant 7<br />

bits.<br />

PATCH CHANGE. Specifies that synthesizer listening to channel cccc<br />

should change to "patch" ppppppp. This is <strong>of</strong> course highly<br />

synthesizer dependent.<br />

"status byte" in the standards document) followed by zero or more data bytes<br />

(Table 9-1). The command byte is always identified by having its most<br />

significant bit set to a one, while data bytes always have a zero there.<br />

Although this convention limits data values to 0-127 or - 64 to + 63, it<br />

completely prevents a permanent "out-<strong>of</strong>-sync" condition if a byte should be<br />

lost somewhere or an erroneous command code is received. In cases in which<br />

increased resolution is needed, two data bytes can be used to express values<br />

up to 16,383 or - 8,192 to + 8, 191. Table 9-1 gives a brief summary <strong>of</strong> the<br />

commands and data formats useful in a keyboard interfacing situation. Note<br />

that in most cases, the most significant 3 bits <strong>of</strong> the command give the<br />

command code, while the least significant 4 bits is the channel address. The<br />

F command, which is not listed, provides for the transmission <strong>of</strong> systemdependent<br />

data that vary for different manufacturers.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!