jdxi_editor.jdxi.midi.message.sysex.offset
This module defines the offsets for various JD-Xi SysEx messages, including control change, program change, pitch bend, and identity messages. Each offset is represented as an IntEnum to provide a clear and structured way to access the byte positions within the SysEx messages.
Classes
JDXIControlChangeOffset |
|
JDXIProgramChangeOffset |
|
JDXIPitchBendOffset |
|
Model ID Offsets |
|
Tone Name offsets |
|
Sysex Offsets |
|
JDXiSysExMessageLayout |
|
ID Offsets |
|
Device Offsets |
|
Software revision offsets |
|
JDXiIdentitySysExLayout |
Module Contents
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXIControlChangeOffset[source]
Bases:
enum.IntEnumJDXIControlChangeOffset Represents the offsets for JD-Xi Control Change messages. Byte | Description ——————————————————– Status | 0xB0 to 0xBF — Control Change on MIDI channels 1–16 Data 1 | Control Number (0–127) Data 2 | Control Value (0–127)
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXIProgramChangeOffset[source]
Bases:
enum.IntEnumJDXIProgramChangeOffset Represents the offsets for JD-Xi Program Change messages.
Byte | Description
Status | 0xC0 to 0xCF — Program Change on MIDI channels 1–16 Data 1 | Program Number (0–127)
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXIPitchBendOffset[source]
Bases:
enum.IntEnumJDXIPitchBendOffset Represents the offsets for JD-Xi Pitch Bend messages.
Byte | Description
Status | 0xE0 to 0xEF — Pitch Bend on MIDI channels 1–16 Data 1 | Pitch Bend Value (14-bit, split into two bytes)
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXiSysExModelIDOffset[source]
Bases:
enum.IntEnumModel ID Offsets
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXiSysExToneNameOffset[source]
Bases:
enum.IntEnumTone Name offsets
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXiSysExAddressOffset[source]
Bases:
enum.IntEnumSysex Offsets
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXiSysExMessageLayout[source]
JDXiSysExMessageLayout
Represents the offsets for JD-Xi SysEx messages. Byte | Description ——————————————————– SYSEX_START | Start of SysEx message (0xF0) ROLAND_ID | Roland ID (0x41) DEVICE_ID | Device ID (0x10) MODEL_ID_1 | First byte of Model ID (0x00) MODEL_ID_2 | Second byte of Model ID (0x0E) MODEL_ID_3 | Third byte of Model ID (0x00) MODEL_ID_4 | Fourth byte of Model ID (0x00) COMMAND_ID | Command ID (0x00 for Identity Request, 0x01 for Identity Reply) ADDRESS_MSB | Most Significant Byte of Address ADDRESS_UMB | Upper Middle Byte of Address ADDRESS_LMB | Lower Middle Byte of Address ADDRESS_LSB | Least Significant Byte of Address TONE_NAME_START | Start of Tone Name (12 bytes) TONE_NAME_END | End of Tone Name (24 bytes) VALUE | Value (3 bytes, varies by command) CHECKSUM | Checksum byte (calculated from the message) SYSEX_END | End of SysEx message (0xF7)
- for field in self.FIELDS:
raw = slice_bytes(data, field) parsed = field.parser.from_bytes(raw)
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXiIdentitySoftwareOffset[source]
Software revision offsets
- class jdxi_editor.jdxi.midi.message.sysex.offset.JDXiSysExIdentityLayout[source]
JDXiIdentitySysExLayout Represents the offsets for JD-Xi Identity SysEx messages. Pos | Byte | Description ——————————————————– 0 | SYSEX_START | Start of SysEx message (0xF0) 1 | ID_NUMBER | ID Number (0x7E for non-realtime, 0x7F for realtime) 2 | DEVICE_ID | Device ID (0x7F for all devices) 3 | SUB_ID_1 | Sub ID 1 (0x06 for General Information) 4 | SUB_ID_2 | Sub ID 2 (0x01 for Identity Request, 0x02 for Identity Reply) 5 | ROLAND_ID | Roland Manufacturer ID (0x41, 0x10, 0x00) 6-9 | DEVICE_ID_1-4 | Device ID (0x0E for JD-Xi) 10-13 | REVISION_1-4 | Revision bytes x 4 14 | SYSEX_END | End of SysEx message (0xF7)