
Security News
Axios Maintainer Confirms Social Engineering Attack Behind npm Compromise
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.
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
# Test MDMI connectivity with ping/pong
mdmi ping
# Test with custom timeout
mdmi ping --timeout 10.0
# 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
FAQs
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.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.