Difference between revisions of "MIDI"
Line 1: | Line 1: | ||
+ | == Description == | ||
+ | |||
+ | MIDI devices are very easy to connect to DS via [[DSerial]]. MIDI Out can be directly wired to the connector without any components. MIDI In requires to use an [http://en.wikipedia.org/wiki/Optocoupler Optocoupler], but the schematic is quite simple. | ||
+ | |||
+ | The signal lines should be connected to DSerial CMOS-level [[UART]] at [[IO|IO2]] connector (do not use RS-232). Sending and receiving is done using the UART commands. Make sure to set baud rate to 31250bps as this is what MIDI is using. | ||
+ | |||
+ | Here is some sample code to send a note: | ||
+ | <cpp> | ||
+ | void midiWrite(u8 message, u8 data1, u8 data2) { | ||
+ | u8 buffer[3]; | ||
+ | buffer[0] = message; | ||
+ | buffer[1] = data1; | ||
+ | buffer[2] = data2; | ||
+ | dseUartSendBuffer((char *) buffer, 3, true); /* blocking UART send */ | ||
+ | } | ||
+ | |||
+ | /* then somewhere else do: */ | ||
+ | |||
+ | dseUartSetBaudrate(31250); /* MIDI baudrate is 31250 bps */ | ||
+ | |||
+ | midiWrite(0x90, 0x11, 0x22); | ||
+ | </cpp> | ||
+ | |||
== Schematic == | == Schematic == | ||
− | [[Image:Midi-schematic.gif|DSerial MIDI In/Out Schematic]] | + | [[Image:Midi-schematic.gif|thumb|400px|none|DSerial MIDI In/Out Schematic]] |
== Pictures == | == Pictures == |
Revision as of 07:43, 11 March 2007
Contents
Description
MIDI devices are very easy to connect to DS via DSerial. MIDI Out can be directly wired to the connector without any components. MIDI In requires to use an Optocoupler, but the schematic is quite simple.
The signal lines should be connected to DSerial CMOS-level UART at IO2 connector (do not use RS-232). Sending and receiving is done using the UART commands. Make sure to set baud rate to 31250bps as this is what MIDI is using.
Here is some sample code to send a note: <cpp> void midiWrite(u8 message, u8 data1, u8 data2) { u8 buffer[3]; buffer[0] = message; buffer[1] = data1; buffer[2] = data2; dseUartSendBuffer((char *) buffer, 3, true); /* blocking UART send */ }
/* then somewhere else do: */
dseUartSetBaudrate(31250); /* MIDI baudrate is 31250 bps */
midiWrite(0x90, 0x11, 0x22); </cpp>