Music And Sound Generation

August 2, 2026 ยท View on GitHub

ModelFamilyMain Route(s)Quick Start
ACE-Stepace_steptext-to-music, edit, cover, repaintACE-Step
Stable Audiostable_audiomusic, SFX, init-audio, inpaintStable Audio
HeartMuLaheartmulalyrics/tags to musicHeartMuLa

Use --task gen for models that generate music, sound effects, or audio from text and optional audio conditioning. These models are not TTS models: text chunking for speech TTS does not apply unless a model explicitly documents a long-output mode.

Common CLI shape:

audiocpp_cli --task gen --family <family> --model <model-dir> --backend cuda ...

ACE-Step

ACE-Step generates and edits music from prompts, lyrics, and optional source audio. See ace_step.md for the full route manual.

FieldValue
Familyace_step
Model directorymodels/Ace-Step1.5
Taskgen
Routestext2music, complete, lego, extract, cover, cover-nofsq, repaint
Main inputsPrompt text, optional lyrics, optional source audio depending on route
Languages19+ lyric languages supported by the model
audiocpp_cli --task gen --family ace_step --model models/Ace-Step1.5 --backend cuda --task-route text2music --text "cinematic synth pop with clear vocals" --lyrics "We rise with the morning light" --duration-seconds 60 --out song.wav
OptionValuesDefaultMeaning
--task-routetext2music, complete, lego, extract, cover, cover-nofsq, repainttext2musicACE-Step operation.
--texttextrequiredMusic prompt or edit instruction.
--lyricstextempty stringVocal lyrics.
--audioWAV pathnot setSource audio for edit/extract/cover routes.
--duration-secondsfloat, -1 for auto-1Target duration.
--num-inference-stepsinteger8Diffusion denoising steps.
--guidance-scalefloat1.0Diffusion guidance scale.
`--session-option ace_step.mem_saver=truefalse`boolfalse

Stable Audio

Stable Audio generates music or sound effects from text. It can also use source audio for init-audio or inpainting workflows. See stable_audio.md for the full Stable Audio manual.

FieldValue
Familystable_audio
Model directoriesmodels/stable-audio-3-small-music, models/stable-audio-3-small-sfx, models/stable-audio-3-medium
Taskgen
ModesText-to-music, text-to-SFX, init-audio, inpainting
Main inputsPrompt text; optional source audio for audio-conditioned modes
Languagesen prompts

Text to music:

audiocpp_cli --task gen --family stable_audio --model models/stable-audio-3-small-music --backend cuda --text "uplifting house music with bright synths and festival drums" --duration-seconds 30 --out music.wav

Inpainting:

audiocpp_cli --task gen --family stable_audio --model models/stable-audio-3-small-music --backend cuda --audio input.wav --text "replace the masked sections with a tight snare fill" --duration-seconds 10 --request-option audio_input_kind=inpaint_audio --request-option inpaint_mask_start_seconds=2.5 --request-option inpaint_mask_end_seconds=3.5 --out inpaint.wav
OptionValuesDefaultMeaning
--textprompt textrequiredMusic or sound-effect prompt.
--audioWAV pathnot setSource audio for init-audio or inpainting.
--duration-secondsseconds[,seconds...]120Target duration per prompt. Use one value for all prompts, or one comma-separated value per Stable Audio batch_size item.
--num-inference-stepsinteger8RF diffusion steps.
--guidance-scalefloat1.0Classifier-free guidance scale.
--request-option audio_input_kind=<kind>init_audio, inpaint_audioinit_audio when --audio is providedHow the source audio is used.
--request-option init_noise_level=<float>0..11.0Strength for init-audio conditioning.
--request-option inpaint_mask_start_seconds=<list>comma-separated secondsnot setInpaint region start times.
--request-option inpaint_mask_end_seconds=<list>comma-separated secondsnot setInpaint region end times.
`--session-option stable_audio.mem_saver=truefalse`boolfalse

HeartMuLa

HeartMuLa generates music from lyrics and tags. The upstream reference treats tags as style/control text: it lowercases them and wraps them with special tag tokens internally. The audio.cpp integration follows that behavior and does not use speaker-reference audio.

FieldValue
Familyheartmula
Model directorymodels/HeartMuLa
Taskgen
ModesLyrics/tags to music; optional infinite mode for longer outputs
Main inputs--lyrics plus comma-separated tags
LanguagesMultilingual lyrics supported by the model
Reference audioNot consumed by this integration
Tag formatFree-form comma-separated descriptors such as genre, mood, instruments, tempo, and vocals
audiocpp_cli --task gen --family heartmula --model models/HeartMuLa --backend cuda --text "a bright pop chorus with drums" --lyrics "We rise with the morning light" --request-option tags=pop,bright,drums --out song.wav

Long output mode:

audiocpp_cli --task gen --family heartmula --model models/HeartMuLa --backend cuda --text "long cinematic pop song" --lyrics "Verse one begins with a quiet street. The chorus opens wide." --request-option tags=pop,cinematic,drums,vocal --duration-seconds 300 --request-option infinite_mode=true --out song_long.wav
OptionValuesDefaultMeaning
--texttextrequiredMusic prompt or short description.
--lyricstextempty stringLyrics for generated music.
--request-option tags=<text>comma-separated textrequiredMusic tags; the model path wraps them as tag tokens internally.
--request-option duration_sec=<seconds>seconds120Maximum generated duration.
--temperaturefloat1.0Music-token sampling temperature.
--top-kinteger50Music-token top-k sampling limit.
--guidance-scalefloat1.5MuLa classifier-free guidance scale.
--num-inference-stepsinteger10Codec flow solver steps.
--request-option codec_duration_sec=<seconds>seconds29.76Codec detokenization chunk duration.
--request-option codec_guidance_scale=<float>float1.25Codec classifier-free guidance scale.
`--request-option infinite_mode=truefalse`boolfalse
--text-chunk-sizechars4096Text chunk size for infinite mode.
--request-option infinite_chunk_audio_duration_ms=<n>milliseconds240000Per-chunk audio cap for infinite mode.
--seedinteger1234Generation seed.
--session-option heartmula.weight_type=<type>native, f32, f16, bf16, q8_0nativeMuLa and codec weight storage type.
--session-option heartmula.generator_weight_type=<type>native, f32, f16, bf16, q8_0heartmula.weight_type or nativeMuLa music-token generator weight storage type.
--session-option heartmula.codec_weight_type=<type>native, f32, f16, bf16, q8_0heartmula.weight_type or nativeCodec weight storage type.
`--session-option heartmula.mem_saver=truefalse`boolfalse

Compatibility mapping:

Legacy optionSchema-v1 option
duration_secondsduration_sec
codec_durationcodec_duration_sec
infinite_chunk_audio_length_msinfinite_chunk_audio_duration_ms
heartmula.mula_weight_typeheartmula.generator_weight_type
heartmula.mula_weight_context_mbheartmula.generator_weight_context_mb
heartmula.mula_constant_context_mbheartmula.generator_constant_context_mb
heartmula.mula_backbone_prefill_graph_arena_mbheartmula.backbone_prefill_graph_arena_mb
heartmula.mula_backbone_step_graph_arena_mbheartmula.backbone_step_graph_arena_mb
heartmula.mula_decoder_prefill_graph_arena_mbheartmula.decoder_prefill_graph_arena_mb
heartmula.mula_decoder_step_graph_arena_mbheartmula.decoder_step_graph_arena_mb
heartmula.mula_frame_embedding_graph_arena_mbheartmula.frame_embedding_graph_arena_mb
heartmula.codec_flow_estimator_graph_arena_mbheartmula.flow_estimator_graph_arena_mb
heartmula.codec_conditioning_graph_arena_mbheartmula.conditioning_graph_arena_mb
heartmula.codec_scalar_decoder_graph_arena_mbheartmula.scalar_decoder_graph_arena_mb

For the full backend memory-arena controls, use audiocpp_cli --help --model <model-dir> --family heartmula.