MIDIopsy Workflow: Diagnose and Fix Common MIDI Problems Fast
Overview
A fast, repeatable workflow for inspecting MIDI files, identifying common issues, and applying targeted fixes so files play reliably across DAWs and instruments.
1) Preparation
- Backup: Save a copy of the original MIDI file.
- Tools: Use a MIDI inspector/editor (e.g., MIDI-OX, Sekaiju, DAW MIDI editor, or specialized scripts).
2) Quick automated checks
- File integrity: Load file to confirm no load errors.
- Tempo/Time signature scan: Verify declared tempo and time signature events.
- Track count & naming: Note track/channel assignments and any empty tracks.
- Channel map: Ensure channels 10/percussion usage is intended.
3) Note data diagnostics
- Out-of-range notes: Detect notes outside instrument ranges.
- Overlapping duplicates: Find overlapping identical notes that may cause stuck notes.
- Zero-length notes: Identify notes with zero or near-zero duration.
- Velocity anomalies: Spot inconsistent velocity distributions (e.g., all same velocity).
4) Controller & CC issues
- CC spikes: Find sudden large CC jumps (e.g., CC1, CC7, CC64).
- Unmapped CCs: List CC numbers that target no device parameter.
- Sustain behavior: Check CC64 placement and paired note-offs.
5) Program/change and patching problems
- Program changes: Ensure correct bank/program events precede notes.
- Bank select pairing: Confirm MSB/LSB bank selects are present if needed.
- Patch mismatches: Map GM vs. synth-specific patches.
6) Timing & quantization
- Swing/groove artifacts: Detect tempo grid misalignments.
- Humanization extremes: Identify excessive timing variance.
- PPQ/resolution issues: Compare file PPQ to project; resample if necessary.
7) Fixes (ordered, non-destructive)
- Normalize velocities: Apply a sensible velocity curve or scaling.
- Merge/split tracks: Reassign channels and consolidate instrument parts.
- Remove duplicates & zero-length notes: Delete or merge offending notes.
- Insert proper note-offs: Fix stuck notes by adding note-off events or CC64 resets.
- Correct program/bank events: Insert bank/program changes at track start.
- Flatten timing (optional): Quantize lightly or manually adjust problematic notes.
- Clean CC envelopes: Smooth spikes, filter unused CCs.
8) Validation
- Playback test: Listen in target DAW and with intended instruments.
- Cross-DAW check: Load in a second host to ensure compatibility.
- Edge-case test: Test percussion mapping, controller responsiveness, and fastest tempos.
9) Documentation & delivery
- Change log: Record fixes applied (e.g., “removed 12 duplicate notes; normalized velocities +10%”).
- Export versions: Save one cleaned file and keep the original.
- Notes for recipient: Briefly list any remaining limitations or required synth mappings.
10) Automation & scripting
- Batch scripts: Create scripts for recurring fixes (e.g., remove CCs, normalize velocities).
- Preset checks: Store inspection presets per target synth/format.
Quick checklist (use during cleanup)
- Backup ✓
- Load & scan ✓
- Fix duplicates/zero-length ✓
- Normalize velocities ✓
- Insert program/bank changes ✓
- Test playback in DAW(s) ✓
- Save cleaned copy + changelog ✓
Use this workflow to quickly triage MIDI files and produce consistent, playable results across setups.