jdxi_editor.ui.windows.midi.debugger
MIDI Debugger for monitoring and interacting with MIDI commands and SysEx messages.
This class provides a graphical user interface (GUI) for sending, decoding, and logging MIDI messages, including SysEx messages. It allows the user to input MIDI commands in hexadecimal format, send them to a connected MIDI device, and view the decoded output for further analysis. The debugger supports both standard MIDI messages and Roland-specific address-based SysEx messages, including their parameters, values, and checksums.
Key Features: - Send MIDI messages in hexadecimal format to a MIDI device. - Decode Roland SysEx messages with detailed information, including areas, commands, and parameters. - Display decoded message data in a readable table format. - Log responses from MIDI devices, including message sending success and failure information. - Validate checksum for SysEx messages to ensure message integrity. - Provides an easy-to-use interface with instructions, buttons, and output areas for effective debugging.
- jdxi_editor.ui.windows.midi.debugger.SYSEX_AREAS
Mappings for SysEx area IDs to their human-readable names.
- Type:
- jdxi_editor.ui.windows.midi.debugger.COMMANDS
Mappings for SysEx command IDs to their human-readable names.
- Type:
- jdxi_editor.ui.windows.midi.debugger.SECTIONS
Mappings for SysEx section IDs to their human-readable names.
- Type:
- jdxi_editor.ui.windows.midi.debugger.GROUPS
Mappings for SysEx group IDs to their human-readable names.
- Type:
- jdxi_editor.ui.windows.midi.debugger.PARAMETERS
Mappings for SysEx parameter IDs to their human-readable names.
- Type:
- jdxi_editor.ui.windows.midi.debugger.__init__(self, midi_helper, parent=None)
Initializes the MIDI debugger with a MIDI helper.
- jdxi_editor.ui.windows.midi.debugger._decode_sysex_new(self, message)
Decodes a SysEx message in the new format.
- jdxi_editor.ui.windows.midi.debugger._decode_sysex_15(self, message)
Decodes a 15-byte SysEx address message.
- jdxi_editor.ui.windows.midi.debugger._decode_sysex(self, message)
Decodes a general SysEx message.
- jdxi_editor.ui.windows.midi.debugger._decode_current(self)
Decodes the currently entered MIDI message from the input field.
- jdxi_editor.ui.windows.midi.debugger._send_commands(self)
Sends the entered MIDI commands to the connected MIDI device.
- jdxi_editor.ui.windows.midi.debugger.log_response(self, text)
Logs a response message to the response log.
- jdxi_editor.ui.windows.midi.debugger.handle_midi_response(self, message)
Handles incoming MIDI messages and logs them.
This class is useful for MIDI developers, musicians, and anyone working with MIDI devices, providing both real-time MIDI debugging and SysEx message analysis capabilities.
Attributes
Classes
Base class for protocol classes. |
|
Functions
|
Get the name of a SysEx byte value using a given enum class. |
|
Parse a SysEx message and return the name and byte value of the specified parameter. |
|
Parses JD-Xi tone parameters from SysEx data for Digital, Analog, and Digital Common types. |
Module Contents
- class jdxi_editor.ui.windows.midi.debugger.EnumWithAddress[source]
Bases:
ProtocolBase class for protocol classes.
Protocol classes are defined as:
class Proto(Protocol): def meth(self) -> int: ...
Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing), for example:
class C: def meth(self) -> int: return 0 def func(x: Proto) -> int: return x.meth() func(C()) # Passes static type check
See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:
class GenProto(Protocol[T]): def meth(self) -> T: ...
- jdxi_editor.ui.windows.midi.debugger.parse_sysex_byte(byte_value: int, enum_cls: EnumWithAddress) str[source]
Get the name of a SysEx byte value using a given enum class.
- Parameters:
byte_value – int
enum_cls – EnumWithAddress
- Returns:
name of the parameter or “Unknown” if not found
- jdxi_editor.ui.windows.midi.debugger.parse_sysex_message(message: bytes, enum_cls: EnumWithAddress) Tuple[str, int][source]
Parse a SysEx message and return the name and byte value of the specified parameter.
- Parameters:
message – str
enum_cls – EnumWithAddress
- Returns:
Tuple containing the name and byte value
- jdxi_editor.ui.windows.midi.debugger.parse_parameter(offset: int, parameter_type: picomidi.sysex.parameter.address.AddressParameter) str[source]
Parses JD-Xi tone parameters from SysEx data for Digital, Analog, and Digital Common types.
- Parameters:
offset – int - The offset in the SysEx message where the parameter starts.
parameter_type – AddressParameter - The parameter type to parse.
- Returns:
str name
- class jdxi_editor.ui.windows.midi.debugger.MIDIDebugger(midi_helper: jdxi_editor.midi.io.helper.MidiIOHelper, parent: PySide6.QtWidgets.QWidget = None)[source]
Bases:
PySide6.QtWidgets.QMainWindow