OSC ⇄ MIDI


OSC magic

 

OSC → MIDI

1-Byte Message

OSC[Index] Inhalt / Bedeutung Wert / Kommentar
OSC[0] / Start OSC-Pfad
OSC[1] O -
OSC[2] M -
OSC[3] I -
OSC[4] / Delimiter
OSC[5] F Status MSN (High Nibble)
OSC[6] A Status LSN (Low Nibble)
OSC[7] 0 Null-Terminator für Status
OSC[8] , Argumenten-Delimiter
OSC[9] f Typ Float32
OSC[10] 0 Null-Terminator
OSC[11] 0 Null-Terminator
OSC[12] Float32 – Byte 1 / MSB Dummy = 0xBF
OSC[13] Float32 – Byte 2 Dummy = 0x80
OSC[14] Float32 – Byte 3 Dummy = 0
OSC[15] Float32 – Byte 4 / LSB Dummy = 0

 

OSC → MIDI

2-Byte Message

OSC[Index] Inhalt / Bedeutung Wert / Kommentar
OSC[0] / Start OSC-Pfad
OSC[1] O -
OSC[2] M -
OSC[3] I -
OSC[4] / Delimiter
OSC[5] C Status High Nibble (C, D, F)
OSC[6] 0 Status Low Nibble (0-F)
OSC[7] 0 Null-Terminator für Status
OSC[8] , Argumenten-Delimiter
OSC[9] f Typ Float32
OSC[10] 0 Null-Terminator
OSC[11] 0 Null-Terminator
OSC[12] Float32 – Byte 1 / MSB Data 1 High Byte (Big-Endian)
OSC[13] Float32 – Byte 2 Data 1 Byte 1
OSC[14] Float32 – Byte 3 Data 1 Byte 2
OSC[15] Float32 – Byte 4 / LSB Data 1 Low Byte (Big-Endian)
 

OSC → MIDI

3-Byte Message

OSC[Index] Inhalt / Bedeutung Wert / Kommentar
OSC[0] / Start OSC-Pfad
OSC[1] O -
OSC[2] M -
OSC[3] I -
OSC[4] / Delimiter
OSC[5] 9 Status High Nibble (8,9,A,B,E,F)
OSC[6] 0 Status Low Nibble (0-F)
OSC[7] Leerzeichen
OSC[8] 7 Data 1 High Nibble (0–7)
OSC[9] F Data 1 Low Nibble (0-F)
OSC[10] 0 Null-Terminator
OSC[11] 0 Null-Terminator
OSC[12] , Argumenten-Delimiter
OSC[13] f Typ Float32
OSC[14] 0 Null-Terminator
OSC[15] 0 Null-Terminator
OSC[16] Float32 – Byte 1 / MSB Data 2 High Byte
OSC[17] Float32 – Byte 2 Data 2 Byte 1
OSC[18] Float32 – Byte 3 Data 2 Byte 2
OSC[19] Float32 – Byte 4 / LSB Data 2 Low Byte