EVERYTHING XIAOMI
Get listed

Second Music System

Second Music System (SMS) is an open-source middleware library for dynamic game music, designed to work with existing game engines.

Place
#21 of 24
Score
5.8
Second Music System's website

What Second Music System is

Second Music System (SMS) is an open-source middleware library for dynamic game music, designed to work with existing game engines. Compositions can change or branch in response to game conditions and events. SMS supports crossfades between related sounds, transitions between movements, overlapping independent flows, and combinations of sounds with different lengths and repetition patterns. The engine supplies a music-file loading hook, passes audio samples to its output, and sends commands for soundtracks, flows, and mixes. Written in Rust, SMS has a C binding for nearly all features; a C++ binding is planned but not yet written. Composers currently build soundtracks in SMS's own language, which requires some programming. Playback waits for required components to load, while precaching can prepare flows ahead of time. Sounds are normally preloaded and decoded in full, though individual sounds can be streamed to save memory. SMS supports real-time playback and offline recording. It is free and available for Windows, macOS, Linux, and self-hosted use.

Good

  • Free and open source
  • Music can react to game conditions and events
  • Supports crossfades, branches, and overlapping flows
  • Individual sounds can be streamed to save memory
  • Supports real-time playback and offline recording

Watch out

  • Composer workflow requires some programming
  • No C++ binding yet
  • Cannot apply complicated filters or change tempo
  • Flows cannot yet be paused and resumed

Who it suits

SMS may suit game developers and composers building adaptive soundtracks for an existing engine, especially those comfortable working with its soundtrack language. It is available to teams using Windows, macOS, or Linux.

Verdict

SMS provides adaptive music playback and mixing for game engines, with streaming and offline recording among its supported capabilities. Its early development status, programming-oriented composer workflow, and stated audio limitations are important considerations.

The facts

Each one read from Second Music System's own pages, with the date it was checked.

What it does

Adaptive soundtracks
Compositions can shift and branch in response to game conditions and events, with little programmer or scripter support.checked 4 Oct 2026
Audio handling
SMS handles fades, crossfades, branches, and multithreaded loading so the engine integration mainly provides the required plumbing.checked 8 Oct 2026
Audio limitations
It cannot do complicated filters or real-time synthesis such as speed or tempo changes, and pausing and resuming a flow is not yet supported.checked 4 Oct 2026
Bindings
The library is written in Rust and provides a C binding for nearly all features; a C++ binding is planned but not yet written.checked 4 Oct 2026
Composer controls
Compositions can shift and branch in response to game conditions and events, using the SMS soundtrack language.checked 8 Oct 2026
Composer workflow
Composers currently create soundtracks directly in SMS's soundtrack language, which requires some programming.checked 4 Oct 2026
Dependency license
By default it uses libsoxr, which is LGPL 2.1 or later, and static linking requires an LGPL-compatible overall license situation.checked 8 Oct 2026
Development status
The project describes itself as early in development, with sparse documentation and tooling and an API and soundtrack format that may change.checked 8 Oct 2026
Dynamic playback
It supports crossfading related sounds, branching between movements, overlapping independent flows, and weaving sounds of varying lengths and repetitions.checked 8 Oct 2026
Engine integration
The engine supplies music-file loading, accepts samples from the SMS Engine, and sends commands to load soundtracks and control flows and mixes.checked 8 Oct 2026
Language bindings
It is written in Rust and has a nearly complete C binding; a C++ binding is planned but not yet written.checked 8 Oct 2026
License
The project is dual licensed under Apache License 2.0 or MIT, at the user's option.checked 8 Oct 2026
Limitations
It cannot apply complicated filters or realtime synthesis such as speed and tempo changes, and pausing and resuming a flow is not yet supported.checked 8 Oct 2026
Loading behavior
Flows begin playback after required components are loaded; precaching can keep flows ready for time-sensitive playback.checked 4 Oct 2026
Maturity
The project describes itself as early in development, with sparse documentation and tooling, performance that could improve, and an API and soundtrack format that may change.checked 4 Oct 2026
Memory
Sounds are preloaded and fully decoded by default, while individual sounds can instead be streamed to save memory.checked 8 Oct 2026
Memory and streaming
Sounds are preloaded and decoded in full by default, while individual sounds can instead be streamed to save memory.checked 4 Oct 2026
Mixing features
It supports crossfading related sounds, branching between movements, overlapping independent flows, and combining sounds of varying lengths and repetitions.checked 4 Oct 2026
Preloading
Flows can be precached so they are ready when playback is needed, since playback waits for necessary components to load.checked 8 Oct 2026
Product
Second Music System is a middleware library for dynamic music that is designed to integrate into existing game engines.checked 8 Oct 2026
Realtime and recording
The library is designed for realtime playback and offline recording, with foreground loading recommended for consistent recording results.checked 8 Oct 2026
Recording
The library supports offline recording as well as real-time playback, and recommends foreground loading for consistent recordings.checked 4 Oct 2026
Release status
The releases page lists v0.1.0-6 as a pre-release test release for a GitHub Actions workflow.checked 4 Oct 2026
Threading
Loading runs in background threads and can use multiple hardware threads; streamed sounds are currently decoded in one thread.checked 4 Oct 2026

Alternatives to Second Music System

All alternatives
  1. 1Unity logo

    Unity

    Free planAndroidiOSWebAPI
    8.4Free plan
  2. 2Unity Version Control logo

    Unity Version Control

    Free planWebAPILinuxmacOS
    8.1Free plan
  3. 3

    Audiokinetic Wwise

    Free planAndroidiOSLinuxmacOS
    7.4$8,000 one-time
  4. 4Amplitude Audio SDK logo

    Amplitude Audio SDK

    Free planAndroidiOSLinuxmacOS
    6.8Free plan
  5. 5Elias logo

    Elias

    AndroidiOSmacOSWindows
    6.8€5,850 one-time
  6. 6

    irrKlang

    Free planLinuxmacOSWindows
    6.8€65 one-time