This fork is maintained as an independent development branch and will continue to sync updates from upstream LMMS. All branch enhancements listed below were developed with AI assistance.
The comparison uses this fork's inherited upstream baseline (a2f57e70c), rather than making claims about future upstream releases. The original upstream README is preserved below.
| Area | Inherited upstream baseline | Enhancements in this branch |
|---|---|---|
| Local automation API | Interactive project editing and the existing LMMS command-line workflow | An optional command API for project queries, track/clip/note edits, instruments, mixing, automation, playback and export, with serialized transactions, undo and rollback. Command reference |
| Composition scripts | Existing editing and arrangement tools | Local JSON scripts, built-in composition helpers, reproducible seeds, assertions and dry-run diffs. Scripts use the same project command bus. Local tools |
| MCP access | No branch-specific local MCP endpoint | An optional bearer-authenticated loopback HTTP MCP server, tool discovery and calls, settings controls, audio previews and exports. It is disabled at runtime by default. MCP guide |
| Windows VST2 hosting | Existing VST2 instruments/effects and remote helpers | Supervised x86/x64 helper processes, crash/hang containment, bounded realtime communication, shell identities and native editor/parameter lifecycle fixes. Validation |
| Windows VST3 hosting and discovery | Existing VST2 instrument/effect entry points | Native VST3 through VeSTige and VstEffect, multiple search roots, categorized discovery, multi-class modules and WaveShell selection; verified Kontakt/editor compatibility fixes. Progress and scope |
| Singing voice tracks | MIDI, sample, pattern and automation tracks | A dedicated SVS track, independent piano editor, capability-driven voice/language/parameter controls, pronunciation dictionaries, phoneme editing, pitch curves and read-only synthesis references. SVS validation |
| SVS plugin development | No branch-specific SVS plugin ABI | A standalone native C ABI / C++ SDK, optional engine settings and catalog/resource queries, examples and conformance tooling, preserving ABI 1.0–1.3 compatibility. SDK |
| DiffSinger | No native DiffSinger engine in this baseline | Native CPU/DirectML duration, pitch, variance, acoustic and vocoder inference; external voicebank discovery and a complete plugin dependency folder. Six local voicebanks validated. Voicebanks are grouped by engine and scanned asynchronously without blocking the interface. Global shared vocoder roots support multiple nested packages, with bundled vocoders taking priority. A0–A4 results |
| SVS rendering and cache | Existing general audio rendering | Incremental rendering split at empty beats/rests, reuse of unaffected segments, current/total progress in Song Editor, frozen complete exports, and SHA256-named audio/tensor caches under cache/SVS. Segment validation |
| SVS visual editing | Existing MIDI piano and clip display | Per-parameter curve colors, pronunciation above notes with original lyrics inside, optional voice pitch-range shading/text, phoneme-prefix display controls, thicker note waveforms and optional Song Editor background waveforms. |
| SVS pitch recordings | No SVS automatic pitch recording workflow | Any AI voice declaring automatic pitch prediction can record new takes, use random or manually fixed seeds, switch saved takes and show pronunciation at the note's upper left with the take number at its upper right. Continuous predicted phrases retain their transitions. |
| Runtime paths | Existing working-directory configuration | Windows defaults use lmms-workspace/ beside the executable; bundled paths are saved relatively and resolved against the executable directory. SVS caches follow the configured working directory. |
| Interface and themes | Original LMMS controls, canvases and plugin panels | Compact flat controls, vector state assets, rounded clips, modernized editor/host panels and native-window validation, retaining existing fixed instrument artwork. UI acceptance |
| Piano-roll guides and notation | Standard pitch labels and existing MIDI editing controls | Optional pitch/time alignment guides, standard pitch/frequency hover labels and enlarged numbered notation with octave dots. Global tonic/reference defaults plus temporary per-window reference overrides; keyboards retain standard pitch labels. |
| Editor toolbar overflow | Separate tool groups with native overflow | Controls in the same row share an expandable overflow area; hidden dropdowns remain directly usable. Song Editor and both piano rolls use a theme-configurable SVG overflow icon. |
| SVS synthesis feedback | No singing synthesis status strip | A 4-pixel time-aligned strip above the note grid: yellow while pending/rendering, green for completed audio, red for errors, with a moving shimmer during rendering. All three colors are configurable in style.css; full status/diagnostics remain available on the ruler tooltip. |
| SVS host volume | No engine-independent singing volume curve | Editable host volume automation works across SVS engines independently of voicebank parameters, including playback and export. |
| Singing project interchange | Existing MIDI/project import and export | Isolated LibreSVIP conversion, editable singing notes/pitch, retained accompaniment audio, format-aware import/export defaults and preflight checks. Availability depends on the deployed conversion runtime and format capabilities. |
| Singing voice conversion | No branch-specific SVC tracks or ABI | Independent progressive SVC audio tracks, segmentation and paired caches, a versioned streaming SDK, an RVC API backend, capability-driven controls and A/B audition. Audio clips can be renamed, copied as slices and converted individually. SVC SDK |
| Language coverage | Inherited upstream translation catalogs | Completed Chinese, Japanese, English and Korean coverage for branch features, host panels and native plugin interfaces, using shared translation catalogs and native-window checks. Voicebank README viewing is available from the SVS sidebar. |
| Clip transport | Existing song and clip playback | MIDI/SVS clip previews share transport behavior and follow the Song Editor timeline within clip boundaries; muted singing tracks suspend synthesis. |
| AI cache management | No dedicated SVC/SVS cache settings | A separate AI cache category shows total and per-system disk usage, clears all caches or SVC/SVS independently, and sets one shared total limit (2 GiB by default). A stacked usage bar shows SVC, SVS and available capacity. Oldest cached results across both systems are evicted first; active SVC jobs are protected. SVS usage includes audio, tensor intermediates and legacy caches. Saved results removed from disk may need rendering again when reopening a project. |
Current release validation targets Windows x64, with x86/x64 VST helpers. SVS AI engines can share native CPU/DirectML workers with global backend/device and model memory settings. Idle release defaults to 60 seconds; immediate release and persistent models are also available. Actual per-stage routes, CPU constraints and fallback are reported. Six DiffSinger voicebanks and both available GPUs have passed inference comparisons. GPU validation. The linked records distinguish automated results from pending listening, external-runtime and visual checks.
Some SVS editor interaction and presentation logic was informed by TuneLab, including note/phoneme boundary stretching, curve editing, parameter-area arrangement, numbered-notation tonic selection and the time-aligned synthesis status strip with a looping shimmer. The references include the locally optimized TuneLab implementation under refs/tl_ref; those local changes should not be attributed to every upstream TuneLab release. LMMS uses its own Qt widgets, project model, synthesis scheduler and theme properties to implement these behaviors.
Singing project format conversion uses LibreSVIP, while the original LMMS codebase remains the foundation for arrangement, MIDI, instruments and mixing. These references describe the sources of specific behaviors and integrations, rather than claiming full feature parity with the referenced projects.
The synthesis strip colors can be customized in the theme's lmms--gui--SVSPianoRoll rule using qproperty-synthesisRenderingColor, qproperty-synthesisReadyColor and qproperty-synthesisErrorColor. The toolbar icon is configured by qproperty-icon in the QToolBar QToolButton#qt_toolbar_ext_button rule.
The Paths page selects the AI cache directory, defaulting to cache beside the executable. Directory changes take effect after restarting and do not move existing files. Paths within the executable directory are shown and saved relative to it.
The AI cache category icon is data/themes/default/ai_cache.svg. Themes can replace it through qproperty-icon in the lmms--gui--SetupDialog QPushButton#aiCacheSettingsTab rule in style.css. The stacked usage bar colors are configured by qproperty-svcColor, qproperty-svsColor and qproperty-freeColor in the lmms--gui--AICacheUsageBar rule.
Cross-platform music production software
Website ⦁︎ Releases ⦁︎ User manual ⦁︎ Showcase ⦁︎ Sharing platform ⦁︎ Developer wiki ⦁︎ Internal documentation
LMMS is an open-source cross-platform digital audio workstation designed for music production. It includes an advanced Piano Roll, Beat Sequencer, Song Editor, and Mixer for composing, arranging, and mixing music. It comes with 15+ synthesizer plugins by default, along with VST2 and SoundFont2 support.
- Song-Editor for arranging melodies, samples, patterns, and automation
- Pattern-Editor for creating beats and patterns
- An easy-to-use Piano-Roll for editing patterns and melodies
- A Mixer with unlimited mixer channels and arbitrary number of effects
- Many powerful instrument and effect-plugins out of the box
- Full user-defined track-based automation and computer-controlled automation sources
- Compatible with many standards such as SoundFont2, VST2 (instruments and effects), LADSPA, LV2, GUS Patches, and full MIDI support
- MIDI file importing and exporting
See Compiling LMMS
If you are interested in LMMS, its programming, artwork, testing, writing demo songs, (and improving this README...) or something like that, you're welcome to participate in the development of LMMS!
Information about what you can do and how can be found in the wiki.
Before coding a new big feature, please always file an issue for your idea and suggestions about your feature and about the intended implementation on GitHub, or ask in one of the tech channels on Discord and wait for replies! Maybe there are different ideas, improvements, or hints, or maybe your feature is not welcome/needed at the moment.