
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
mdmi-cli
Advanced tools
CLI for controlling the Mega Drive MIDI Interface (MDMI). Helps you load presets from instrument files, clear presets, list WOPN instruments, and test connectivity.
Latest version from PyPI:
pip install mdmi-cli
# Load TFI preset to program 0
mdmi load-preset example.tfi --program 0
# Load DMP preset to program 5
mdmi load-preset example.dmp --program 5
# Load specific WOPN instrument to program 10
mdmi load-preset soundbank.wopn --program 10 --bank 0 --instrument 5 --bank-type melody
# Dump preset from program 5 to DMP file
mdmi dump-preset --program 5 --format dmp --filename my_preset.dmp
# Dump preset with auto-generated filename (preset_5.dmp)
mdmi dump-preset --program 5
# Dump preset to TFI file
mdmi dump-preset --program 10 --format tfi --filename my_preset.tfi
# Dump FM channel parameters from MIDI channel 5 to DMP file
mdmi dump-channel --channel 5 --format dmp --filename channel_5.dmp
# Dump with auto-generated filename (channel_05.dmp)
mdmi dump-channel --channel 5
# Dump to TFI file
mdmi dump-channel --channel 3 --format tfi --filename channel_3.tfi
# List contents of a WOPN file (first 10 instruments per bank)
mdmi list-wopn soundbank.wopn
# List all instruments in WOPN file
mdmi list-wopn soundbank.wopn --full
# Load percussion instrument from WOPN
mdmi load-preset soundbank.wopn --program 20 --bank 0 --instrument 3 --bank-type percussion
# Clear preset at program 5
mdmi clear-preset --program 5
# Clear all presets (with confirmation)
mdmi clear-all-presets
# Clear all presets (skip confirmation)
mdmi clear-all-presets --confirm
# Continuously ping MDMI (stop with Ctrl+C)
mdmi ping
# Send exactly 5 pings
mdmi ping -n 5
# Add 16 bytes of extra packet data
mdmi ping --size 16
# Use a custom timeout
mdmi ping --timeout 10.0
ping now behaves like a standard network ping: it runs continuously by default, supports -n/--count to stop after a fixed number of packets, and supports --size to append additional packet data after the ping ID.
# Run continuous ping/pong latency test (stop with Ctrl+C)
mdmi perf-test
# Run test for specific duration with custom interval
mdmi perf-test --duration 30 --interval 0.05
# Customize histogram filename
mdmi perf-test --hist-filename my_latency_test.png
# Test with custom timeout for individual pings
mdmi perf-test --timeout 1.0 --duration 60
# List all available MIDI input and output ports
mdmi list-ports
All commands support these common options:
# Use specific MIDI ports instead of environment variables
mdmi load-preset example.tfi --program 0 --midi-out "IAC Driver Bus 1"
# Commands with bidirectional communication support input ports
mdmi ping --midi-out "IAC Driver Bus 1" --midi-in "IAC Driver Bus 2"
mdmi dump-preset --program 5 --midi-out "Port 1" --midi-in "Port 2"
# Test with fake interface (no real MIDI hardware required)
mdmi load-preset example.tfi --program 0 --dry-run
mdmi perf-test --dry-run --duration 5
mdmi ping --dry-run
# Custom timeouts for bidirectional commands
mdmi ping --timeout 10.0
mdmi dump-preset --program 3 --timeout 5.0
MDMI_MIDI_OUT: Default MIDI output port nameMDMI_MIDI_IN: Default MIDI input port nameMDMI_MIDI_PORT: Legacy fallback for MIDI output port--midi-out TEXT: MIDI output port name (overrides environment variables)--midi-in TEXT: MIDI input port name for bidirectional commands (overrides MDMI_MIDI_IN)--dry-run: Use fake MIDI interface for testing--timeout FLOAT: Timeout for bidirectional commands (default varies by command)# Install cli (from source)
make install
# Run tests
make test
mdmi/__init__.pygit tag v...git push --tagsFAQs
CLI tool for working with the Mega Drive MIDI Interface (MDMI)
We found that mdmi-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.