This document outlines the vision, current state, and planned development phases for MIDIMon.
Transform any MIDI controller into an advanced, context-aware macro pad with professional-grade feedback and timing-based triggers.
MIDIMon aims to be the most powerful and flexible MIDI controller mapping system for modern workflows, enabling:
- Musicians to control DAWs and effects with velocity-sensitive, multi-layer mappings
- Developers to streamline coding workflows with mode-based hotkey systems
- Content creators to manage streaming, recording, and editing with physical controls
- Power users to replace expensive dedicated macro pads with affordable MIDI controllers
- Music Producers: DAW control, plugin automation, live performance triggers
- Software Developers: Build tools, debuggers, Git workflows, IDE shortcuts
- Streamers & Content Creators: OBS control, scene switching, audio routing
- Power Users: System automation, application launchers, window management
Unlike existing MIDI mapping tools, MIDIMon provides:
- Advanced Timing: Long press, double-tap, chord detection out of the box
- Velocity Sensitivity: Different actions for soft/medium/hard pad hits
- Full RGB Feedback: Not just on/off LEDs, but animated schemes and reactive color
- Mode System: Multiple mapping sets, context-aware switching
- Open Source: Fully customizable, extensible, community-driven
- Modern Architecture: Fast Rust core, hot-reload config, cross-platform
Core Triggers (4):
- Note on/off
- Velocity range detection
- Encoder rotation (clockwise/counterclockwise)
- Control Change (CC) messages
Advanced Triggers (5):
- Long press (configurable duration)
- Double-tap (configurable window)
- Note chords (multi-note combinations)
- Aftertouch (pressure sensitivity)
- Pitch bend (touch strip)
Actions (10):
- Keystroke with modifiers
- Text typing
- Application launch
- Shell command execution
- Volume control (up/down/mute/set)
- Mode switching
- Action sequences
- Timed delays
- Mouse clicks
- Repeat actions
LED Feedback (10 Schemes):
- Off, Static, Breathing, Pulse
- Rainbow, Wave, Sparkle
- Reactive (velocity-sensitive)
- VU Meter, Spiral
System Features (7):
- Multi-mode mapping system
- Global mappings (work across all modes)
- Device profile support (.ncmm3 from NI Controller Editor)
- Auto-detect active pad page
- HID shared device access (concurrent with Controller Editor)
- Performance: <1ms latency, 5-10MB memory
- Graceful shutdown with cleanup
- Response Latency: <1ms typical for MIDI events
- Memory Footprint: 5-10MB steady state
- CPU Usage: <1% idle, <5% during active use
- Binary Size: 3-5MB (release build with LTO)
- macOS only (Linux/Windows support planned)
- Single device support (multi-device planned)
- No GUI (config editing requires TOML knowledge)
- Config reload requires restart (hot reload planned)
- No virtual MIDI output (DAW integration limited)
Timeline: 2025-11-11 (initial release) Status: Complete Goal: Preserve working monolithic implementation before architectural migration
Completed Work:
- GitHub repository setup
- Open source documentation (README, LICENSE, CODE_OF_CONDUCT, CONTRIBUTING)
- CI/CD pipeline (GitHub Actions)
- Project governance (GOVERNANCE.md, MAINTAINERS.md, ROADMAP.md, CHANGELOG.md)
- Community infrastructure (issue templates, PR template, SUPPORT.md)
- Documentation site infrastructure (mdBook)
- Developer setup (DEVELOPMENT.md, build scripts, IDE configs)
- Legal compliance (copyright headers, dependency audit)
- Git tag: v0.1.0-monolithic
Deliverables:
- All 26 features working and documented
- Comprehensive open source setup
- Release artifacts (binaries, checksums)
- Foundation for community contributions
Timeline: Q1 2025 (Jan-Mar) Status: Planned Goal: Production-ready documentation and comprehensive test coverage
Key Objectives:
- Complete documentation site content (user guides, reference, troubleshooting)
- Achieve 80%+ test coverage (unit + integration tests)
- Write device compatibility guides
- Create video tutorials and demos
- Improve error messages and debugging tools
- Performance benchmarking and optimization
Deliverables:
- Full documentation site live on GitHub Pages
- Comprehensive test suite with CI integration
- Video demos and tutorials
- Performance baseline established
- Release: v0.2.0
Timeline: Q2 2025 (Apr-Jun) Status: Planned Goal: Extract core engine into reusable library, establish workspace structure
Key Objectives:
- Create
midimon-corecrate (engine abstraction) - Migrate existing code to workspace structure
- Extract device abstraction layer
- Implement config file watching (hot reload)
- Add frontmost app detection (macOS)
- Maintain 100% backward compatibility
Deliverables:
- Workspace:
midimon-core,midimon-daemon - Hot config reload without restart
- Per-app profile switching (context-aware)
- Release: v0.3.0
Timeline: Q3 2025 (Jul-Sep) Status: Planned Goal: User-friendly GUI for configuration and management
Key Objectives:
- Tauri-based menu bar application
- Visual config editor (no TOML knowledge required)
- MIDI Learn mode (click-to-map workflow)
- Live event console for debugging
- Launch-at-startup functionality
- System tray integration
Deliverables:
midimon-guicrate (Tauri v2)- Visual mapping editor
- MIDI Learn workflow
- Auto-start support
- Release: v0.4.0
Timeline: Q4 2025 (Oct-Dec) Status: Planned Goal: Linux and Windows support, multiple simultaneous devices
Key Objectives:
- Linux support (X11, Wayland, udev rules)
- Windows support (USB drivers, input simulation)
- Multi-device simultaneous operation
- Device auto-discovery and hot-plug
- Virtual MIDI output (for DAW routing)
- Advanced mapping: velocity curves, MIDI CC output
Deliverables:
- Cross-platform builds (Linux, Windows)
- Multi-device support
- Virtual MIDI ports
- Release: v0.5.0
Timeline: Q1 2026 (Jan-Mar) Status: Planned Goal: Stable 1.0.0 release with polished UX and ecosystem
Key Objectives:
- API stability guarantee (SemVer commitment)
- Comprehensive device profiles library
- Profile sharing platform (community hub)
- Plugin system for custom actions
- Advanced features (macros, conditional logic, app state)
- Performance tuning and optimization
- Security audit and fuzzing
Deliverables:
- v1.0.0 stable release
- Public API frozen (SemVer guarantees)
- 50+ device profiles
- Plugin ecosystem foundation
- Professional documentation and marketing site
- Core stability and reliability
- Comprehensive documentation
- Cross-platform support (macOS, Linux, Windows)
- GUI configuration tool
- Hot config reload
- Multi-device support
- Tauri UI with MIDI Learn
- Virtual MIDI output
- Per-app profile switching
- Advanced mapping features (velocity curves, conditional actions)
- Community profile library
- Performance optimization
- Plugin system for custom actions
- Web-based config editor
- Cloud sync for configs
- Mobile companion app (iOS/Android)
- DAW integration plugins
- Advanced LED animations
- Machine learning for usage optimization
- Voice control integration
- OSC (Open Sound Control) support
- TouchOSC/Lemur integration
- Hardware module (dedicated device)
- Commercial support offerings
- LED feedback abstraction could be simplified
- Event processor state machine needs documentation
- Config validation errors could be more helpful
- Test coverage gaps in LED schemes
- Platform-specific code not fully abstracted
- Extract device I/O into trait-based abstraction
- Simplify event processing pipeline with state machine pattern
- Improve error handling with
thiserrorand better context - Separate concerns: core engine vs platform integration
- Add property-based testing for event sequences
- 10+ active contributors
- 50+ GitHub stars
- 5+ community-contributed device profiles
- Active GitHub Discussions engagement
- First external PR merged
- 100+ GitHub stars
- 20+ contributors
- 50+ device profiles
- Translation to 3+ languages
- Conference talk or blog post feature
- 500+ GitHub stars
- Establish foundation or fiscal sponsor
- Developer ecosystem (plugins, extensions)
- Commercial support/consulting offerings
- Reference implementation for MIDI mapping standards
- GitHub stars, forks, downloads
- Active users (telemetry opt-in)
- Community-contributed profiles
- Blog posts and tutorials from users
- Test coverage (target: 80%+)
- Bug report velocity (time to first response, time to fix)
- Code review quality (comments, iteration cycles)
- Documentation completeness and accuracy
- Contributor retention rate
- Issue response time
- PR merge time
- Code of Conduct adherence
- Diversity of contributions (not just code)
- Minor Releases: Every 4-6 weeks (v0.x.0)
- Patch Releases: As needed for critical bugs (v0.x.y)
- Major Releases: When breaking changes necessary (v1.0.0)
- Feature freeze (1 week before release)
- Beta testing period (3-7 days)
- Update CHANGELOG.md
- Tag release and build binaries
- Publish GitHub release
- Announce in Discussions, social media
By v1.0.0 and beyond, MIDIMon will be:
- The reference implementation for advanced MIDI controller mapping
- A platform for community-driven device support and profiles
- An ecosystem with plugins, extensions, and integrations
- A standard for velocity-sensitive, timing-aware input mapping
- A community of musicians, developers, and creators
Roadmap Version: 1.0 Last Updated: 2025-11-11 Next Review: Q1 2025
For detailed implementation planning, see docs/implementation-roadmap.md.