Use the Sam2695 Dream MIDI chip
Sam2695 Dream IC is in the F256K2 and F256Jr2 only
The MIDI specification from MIDI.org can be found in the organization's website https://midi.org/specs
There are many tutorials and overview of useful MIDI commands, here is one of them: https://www.cs.cmu.edu/~music/cmsip/readings/MIDI%20tutorial%20for%20programmers.html
Here's a reference list of General MIDI instruments by number: https://www.ccarh.org/courses/253/handout/gminstruments/
Register Name | Address | Description |
---|---|---|
MIDI_STATUS | 0xDDA0 | Read: Bit[1] = Rx_empty, Bit[2] = Tx_empty |
MIDI_FIFO_DATA_PORT | 0xDDA1 | read and write Data Port |
MIDI_RXD_COUNT_LOW | 0xDDA2 | Rx FIFO Data Count LOW |
MIDI_RXD_COUNT_HI | 0xDDA3 | Rx FIFO Data Count Hi - Only the 4 first bit are valid |
MIDI_TXD_COUNT_LOW | 0xDDA4 | Tx FIFO Data Count LOW |
MIDI_TXD_COUNT_HI | 0xDDA5 | Tx FIFO Data Count Hi - Only the 4 first bit are valid |
Steps in order to use MIDI OUT
MIDI OUT picks data from your program and sends it out to the SAM2695 chip as well as the MIDI Out port to an external device.
Send a MIDI command through 0xDDA1 in rapid sequence.
Moderately heavy middle C to channel 0: 0x90, 0x40, 0x40
Changing the instrument of channel 0 to a Slap Bass 1: 0xC0, 0x24
Steps in order to use MIDI IN
MIDI IN takes in data from a MIDI in socket and sends it out to the SAM2695 chip. For example, a keyboard synth could be plugged in that port and drive the MIDI events.
to do: revise this with an accurate procedure.