A high‑performance renderer for real‑time MIDI events with 16‑track support, advanced beams, velocity dynamics, and a fully modular UI.
Real-Time MIDI Notation is a real‑time multi‑track MIDI renderer written in Python.
It converts incoming MIDI events into live notation, including:
- real‑time note placement
- multi‑track color coding
- velocity‑based dynamics
- beams, stems, barlines
- grid, timeline, and playhead
- full Yamaha 16‑track standard
- real‑time activity meters
- zoom + scroll
This project aims to evolve into a full real‑time engraving engine, similar to MuseScore or LilyPond, but optimized for live MIDI input.
- MIDI visualizers
- DAW companion tools
- real‑time notation engines
- music education software
- live performance analysis
- Yamaha arranger keyboard users
- MIDI debugging and development
Real‑time notation is a non‑trivial engineering challenge.
Most notation engines (MuseScore, LilyPond, Dorico) are offline engravers — they expect complete musical context.
This project solves:
- real‑time note grouping
- real‑time beam detection
- real‑time velocity dynamics
- real‑time multi‑track rendering
- real‑time layout engine (no pre‑analysis)
This makes it ideal for:
- research
- education
- live performance tools
- MIDI hardware development
This engine is suitable for:
- music informatics research
- real‑time systems courses
- MIDI protocol analysis
- digital signal processing labs
- human–computer interaction studies
- music pedagogy and visualization
A full CITATION.cff file will be added for academic referencing.
midi, real-time midi, real-time midi notation, midi notation, midi visualizer,
midi renderer, music notation, pygame, python midi, multi-track midi,
midi to sheet music, yamaha, arranger keyboard, live midi, midi processing,
real-time visualization, midi sheet music, midi score
- real‑time layout engine
- time → X mapping
- pitch → Y mapping
- staff cache (performance boost)
- barlines, grid, timeline ruler
- real‑time playhead
- velocity dynamics (color + size)
- chord grouping
- 8th/16th beam detection
- dynamic stems
- full Yamaha 16‑track support
- track visibility + color integration
- real‑time activity meters
- zoom + scroll
- fully stabilized
- textual MIDI visualization
- drum notation support
- drum stave offset
- timestamps on every line
clear()– reset bufferfilter()– filter by pitch/channel/drums- pygame‑safe fallback
- ideal for debugging
- note mapping
- rhythmic analysis
- BPM detection
- velocity + timing extraction
- basic Rhythm Analyzer
- 16 tracks (Yamaha standard)
- per‑track colors
- volume, visibility, activity
- active track highlighting
- real‑time activity updates
MIDI Input ↓ Processor (timing, rhythm, velocity) ↓ GraphicNotationRenderer ↓ UI Layer (Piano, Roll, Staff, Visualizer) ↓ TrackManager (16‑track control) ↓ Debug Layer (NotationRenderer)
Modular. Extensible. Professional.
src/processor.pysrc/rhythm_analyzer.pysrc/midi_input/midi_note_mapper.pysrc/event_bus.py
core/track_system.pycore/track_manager.py
renderer_new/graphic_renderer.pyrenderer_legacy/notation_renderer.py
ui/ui_manager.pyui/ui_components/*
| Area | Progress | Visual |
|---|---|---|
| GraphicNotationRenderer | 100% | 🟩🟩🟩🟩🟩 |
| NotationRenderer | 100% | 🟩🟩🟩🟩🟩 |
| Processor | 100% | 🟩🟩🟩🟩🟩 |
| Rhythm Analyzer | 100% | 🟩🟩🟩🟩🟩 |
| TrackManager | 100% | 🟩🟩🟩🟩🟩 |
| Pipeline (MIDI → Renderer → UI) | 100% | 🟩🟩🟩🟩🟩 |
- UI Track Switcher improvements
- minor UI polish
- documentation: “How the renderer works”
- real‑time activity meter
- improved layout
- track color integration
- PNG export
- SVG export
- screenshot engine
- multi‑voice notation
- polyphony
- advanced beams
- dynamics
- articulations
- MuseScore / LilyPond‑level engraving
- full notation engine
Real-Time MIDI Notation is now:
- stable
- modular
- professionally structured
- fully functional end‑to‑end
- ready for rapid expansion
This is the foundation of a full real‑time notation engine.
midi • real-time • real-time-midi • midi-visualizer • midi-notation •
midi-processing • music-notation • music-visualization • multi-track •
python • pygame • yamaha • arranger-keyboard • midi-tools •
midi-renderer • live-notation • real-time-visualization