Use the Sam2695 Dream MIDI chip: Difference between revisions

From F256 Foenix
Jump to navigationJump to search
m (midi in description)
(→‎Sam2695 Dream IC is in the F256K2 and F256Jr2 only: accurate information as per the FPGA load from Nov11th 2024)
Line 6: Line 6:


Here's a reference list of General MIDI instruments by number: https://www.ccarh.org/courses/253/handout/gminstruments/<br>
Here's a reference list of General MIDI instruments by number: https://www.ccarh.org/courses/253/handout/gminstruments/<br>
{| class="wikitable"
|+
!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 ===
=== Steps in order to use MIDI OUT ===
Line 16: Line 46:
Moderately heavy middle C to channel 0: 0x90, 0x40, 0x40<br>
Moderately heavy middle C to channel 0: 0x90, 0x40, 0x40<br>
Changing the instrument of channel 0 to a Slap Bass 1: 0xC0, 0x24<br>
Changing the instrument of channel 0 to a Slap Bass 1: 0xC0, 0x24<br>
=== Steps in order to use MIDI IN ===
=== 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.'''
'''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.<br>
to do: revise this with an accurate procedure.<br><br>
 
 
0xDDA0 is a control register - full usage is unknown<br>
 
0xDDA1 is the serial data register - unknown how to use it in a MIDI in context<br>
 
0xDDA2 and 0xDDA3 are the low and high bytes representing the count of buffered midi bytes in the FIFO buffer<br>

Revision as of 16:59, 10 November 2024

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.