A desktop app for local AI music generation, built on acestep.cpp and GGML. Describe a song with a style caption and lyrics and get stereo audio back, generated entirely on your own hardware with no cloud, API keys or subscription. Three music models run natively in the C++ engine and switch from the toolbar: ACE-Step 1.5, MiniMax-Music3 and YuE2.
Questions, feedback, or want to share what you've made? Join the Discord. It's where I'm most active for HOT-Step discussion and support.
Train style adapters for all three models inside the app, with no Python and no external tools. Point it at a folder of songs and it runs the whole pipeline: dataset labelling (local BPM/key analysis, lyrics, and AI captions from a model running on your machine), preprocessing, then native C++/GGML training on your GPU. YuE2 adds a Joint Training method that trains its AR and NAR adapters in one run. Training against a quantized base brings the MiniMax-Music3 VRAM floor from 31.4 GB down to about 10 GB. Runs pause, resume, survive a restart and render an audio preview at every checkpoint.
Still rough in places and GPU-hungry. Find it in the sidebar as Training, and read Training Studio first.
Portable releases, no installation needed: extract and run. Node.js is bundled.
| Platform | Variants |
|---|---|
| Windows (x64) | CUDA (NVIDIA), Vulkan (AMD/Intel/NVIDIA), CPU |
| Linux (x64) | CUDA (NVIDIA), Vulkan (AMD/Intel/NVIDIA), ROCm (AMD), CPU |
| macOS (Apple Silicon) | Metal |
Use CUDA on an NVIDIA card, Vulkan on AMD or Intel, and CPU only if there is no usable GPU, since it is much slower. There are several CUDA builds for different card generations; Getting started has the table that says which file to take.
- Download the archive for your platform and GPU, and extract it into a folder of its own.
- Run
HOT-Step.baton Windows, or./HOT-Step.shfrom a terminal on Linux and macOS. - Your browser opens at
http://localhost:3001. Leave the console window open; closing it stops the app. - The Model Manager opens on first launch. Download the Quick Start pack from the ACE-Step 1.5 tab (about 9 GB), then click Restart in the sidebar.
- Write a style description and lyrics in Custom-Gen and click Generate. The full walkthrough is in Getting started.
- Three music models, one app. ACE-Step 1.5, MiniMax-Music3 and YuE2 run in the same engine process. The backend picker in the global bar appears whenever two or more backends are registered, and the bar hides controls that do nothing on the active model. See Backends.
- Training Studio. Style adapters for every backend, trained on your own GPU. See Training Studio.
- Auto-Gen and Custom-Gen. Pick a genre and let the language model write the caption, lyrics and title, or set every field yourself. See Auto-Gen and Custom-Gen.
- Lyric Studio. A lyrics workspace with artist profiles, several LLM providers, bulk generation and the same generation controls as Custom-Gen. See Lyric Studio.
- Cover and Repaint. Make style-matched covers of a reference track, or regenerate one region of a song and keep the rest (ACE-Step 1.5). See Cover Studio and Repaint Studio.
- Stem separation. BS-RoFormer, Mel-Band RoFormer, MDX23C and Leap Xe running in native GGML, with a mixer and ZIP export. See Stem Separator.
- MIDI Studio. Audio-to-MIDI transcription on a native GGML port of MuScriptor, with a live piano roll and playback. See MIDI Studio.
- Lua plugins. Solvers, schedulers, guidance modes and postprocess steps are Lua files: drop one into
engine/plugins/and it appears in the UI at the next launch, no rebuild. See Plugins and Plugin authoring. - LoRA and LoKr adapters. Merge or runtime mode, per-group strengths, stacking, and per-section masking from the lyrics. See Adapters.
- Post-processing chain. Mastering against a reference track, a VST3 host, StableStep refinement through Stable Audio 3, PP-VAE and denoising. See Generation.
- Model Manager. Starter packs and every model file, downloaded in the app with resumable progress, including importance-matrix quants that keep the small sizes usable. See Model Manager and Model files.
The full list, one line per feature, is in FEATURES.md.
Browse your generated songs as a cover art grid with AI-generated artwork, quality scores, and audio metadata. The right sidebar shows a live playlist and engine terminal output. The bottom bar has a waveform visualizer with section markers (verse, chorus, bridge) and real-time synced lyrics.
AI-driven music creation: pick a genre, set a vocal mode, and the LLM handles the rest. The song details panel shows full generation metadata: models used, solver, scheduler, CFG scale, key signature, time signature, and duration.
A lyrics workspace. Browse artists and albums on the left, view and edit AI-generated lyrics with structural section tags in the centre, and manage your generation queue on the right. Supports multiple LLM providers for lyric generation and refinement.
Upload a reference track for automatic BPM and key detection via Essentia analysis. The engine extracts style descriptions, lyrics, and structural metadata. Cover settings include structure fidelity, source preservation, pitch shift with key transposition, and tempo scaling.
Curated starter packs for different hardware tiers, from minimal setups to Blackwell-optimized configurations. Download individual GGUF models, stem separation networks, and CUDA runtime libraries from Hugging Face without leaving the app.
- Documentation index: every page, for users and contributors.
- FEATURES.md: one line per feature, each linking to its page.
- Getting started: download, first launch, first model pack, first song.
- Backends: what each of the three models does, and a capability matrix.
- Getting higher quality output: quants, prompts, steps, and a per-backend cheat sheet.
- Troubleshooting: logs, common failures, and what to put in a bug report.
For contributors:
- Architecture: the engine, server and UI tiers, and how a request flows through them.
- Building from source: prerequisites, the dev loop, engine rebuild rules, packaging.
- Writing and maintaining the docs: layout, page template, and the docs checker.
- AGENTS.md: project rules for coding agents.
| Platform | GPU backends | Pre-built release |
|---|---|---|
| Windows x64 | CUDA, Vulkan, CPU | Yes |
| Linux x64 | CUDA, Vulkan, ROCm, CPU | Yes |
| macOS Apple Silicon | Metal | Yes |
Most people should use a release. To build it yourself, including the engine, the dev loop and portable packaging, follow Building from source.
Every session writes its logs to a new folder under logs/ next to the launcher: node_console.log, ace_engine.log, and one gen_*.log per generation.
Troubleshooting covers the common failures (no models found, out of VRAM, GPU not used, macOS blocking the app) and what to attach to an issue.
Questions rather than bugs go to the Discord.
- ACE-Step 1.5: the AI music generation model by ACE Studio and StepFun.
- acestep.cpp: the C++ GGML inference engine by ServeurpersoCom.
- minimaxmusic.cpp: ServeurpersoCom's independent MiniMax-Music3 port. HOT-Step's MM3 split-model format follows its per-component design, reused with the author's blessing.
- MiniMax-Music3: text-to-music model by MiniMax, powering HOT-Step's second backend through our native C++/GGML port (GGUF conversion). The MM3 Structured Caption format is MiniMax's design. Weights under the MiniMax-Music3 Community License.
- YuE2: text-to-music model by m-a-p (Multimodal Art Projection), powering HOT-Step's third backend through our native C++/GGML port (GGUF conversion). Weights under CC BY-NC 4.0. The authors have clarified that individuals (creators, musicians, researchers) may use the model and its outputs freely, including commercially; only companies need a commercial licence (gezhang@umich.edu).
- MOSS-Music-8B-Instruct: music understanding and captioning model by the OpenMOSS Team, powering local dataset captioning in Training Studio through our native GGML port (GGUF conversion). Local captioning in a free tool was only possible because they released it under Apache 2.0.
- HOT-Step 9000: the Python-based sister project.
- Alexander Allan (MDMAchine): the STORM solver plugin (adaptive STORK/DPM++3M hybrid) and the MD Audio Tiled Core postprocess plugin (tiled VAE decode with OLA crossfading, dual-pass merge, and a DSP chain).
- ComfyUI_MusicTools: the Vocal Naturalizer DSP algorithm by Jean Kassio (MIT License).
- JK-AceStep-Nodes: the Audio Quality Evaluator metrics by Jean Kassio (MIT License).
- Stability AI: Stable Audio 3 (diffusion transformer, SAME-L autoencoder and T5Gemma text encoder), powering the StableStep refiner through our native ONNX/GGML conversions, distributed under the Stability AI Community License. Powered by Stability AI.
- MuScriptor: multi-instrument music transcription model by Kyutai and Mirelo (Simon Rouard, Michael Krause, Axel Roebel, Carl-Johann Simon-Gabriel, Alexandre Défossez, arXiv:2607.08168), powering MIDI Studio through our native GGML port (code MIT, model weights CC BY-NC 4.0).
HOT-Step CPP is released under the MIT License. See LICENSE.
Some parts carry their own terms:
engine/is MIT, copyright the acestep.cpp authors. See engine/LICENSE.- MDMAchine's plugins (most of the
md_*files underplugins/, andstorm_sampler_core.lua) are GPLv3. Each one says so in its header, and the header decides. Releases ship them as source alongside the MIT code, so a release as a whole must meet the GPLv3's terms. The rest of the code remains MIT. - Model weights are not covered by this licence. Each model is under its own terms, listed in the credits above.
Contributions are accepted under the repository licence (MIT) unless a file says otherwise.
- Alexander Allan (MDMAchine), for ongoing and generous contributions: the STORM solver and MD Audio Tiled Core postprocess plugins, the real-time VST3 monitoring UX (chain presets, live monitor transport, pause/resume/restart), and a run of JUCE VST3 hosting crash fixes in the engine. This project is better for it.
- AI-Toolkit: inspiration for HOT-Step's YuE2 Joint Training method.
- MotherSuperior (kytr.ai, Hugging Face): the original YuE2 encoder that turns songs into the codes the YuE2 trainers learn from.
MiniMax released MiniMax-Music3's weights but not its audio encoder, the piece that turns audio into the RVQ codes the model is trained on. Without one, nobody outside MiniMax could build a training set or train an adapter. A group in the Discord reconstructed it in the open, and HOT-Step's MM3 training exists because they did.
- bghira designed the encoder architecture everyone else built on, and published the first working open encoder along with the corpus to train it.
- PurpleOrc trained that architecture from scratch on a 53,000-track corpus built with a deliberate push on non-English lyrics, producing the encoder that took the crown and held it.
- Mothersuperior (kytr.ai) generated distillation corpora on rented L40S fleets, pooled them with everyone else's, and published the pooled encoders back to the group.
- Serveurperso contributed a pilot corpus and hidden-state encoders, and measured the real ceiling: decoding from the exact teacher hidden state scores 0.9326, so the semantic top-1 wall everyone kept hitting was the teacher's own sampling entropy, not something more data could train past. That saved the group a lot of wasted compute.
- testerf, redsitouwu and afkaf ran evaluations, argued the metrics into shape, and caught the trap that cross-entropy measures plausibility to the frozen LM rather than fidelity to the audio. That is why the group's gate became CE as a sanity floor, code diversity as an alarm, and a listening test as the verdict.
Thank you, all of you. It was collaborative reverse engineering done in the open, and it unlocked a feature this project could not have shipped alone.
If HOT-Step is useful to you, consider giving it a star. It really helps.




