- Home
- Game Audio Middleware
- Second Music System
On the recordRead 8 Oct 202624 facts
Second Music System
On the record
- Adaptive soundtracks
- Compositions can shift and branch in response to game conditions and events, with little programmer or scripter support.github.com · read 4 Oct 2026
- Audio handling
- SMS handles fades, crossfades, branches, and multithreaded loading so the engine integration mainly provides the required plumbing.github.com · read 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.github.com · read 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.github.com · read 4 Oct 2026
- Composer controls
- Compositions can shift and branch in response to game conditions and events, using the SMS soundtrack language.github.com · read 8 Oct 2026
- Composer workflow
- Composers currently create soundtracks directly in SMS's soundtrack language, which requires some programming.github.com · read 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.github.com · read 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.github.com · read 8 Oct 2026
- Dynamic playback
- It supports crossfading related sounds, branching between movements, overlapping independent flows, and weaving sounds of varying lengths and repetitions.github.com · read 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.github.com · read 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.github.com · read 8 Oct 2026
- License
- The project is dual licensed under Apache License 2.0 or MIT, at the user's option.github.com · read 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.github.com · read 8 Oct 2026
- Loading behavior
- Flows begin playback after required components are loaded; precaching can keep flows ready for time-sensitive playback.github.com · read 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.github.com · read 4 Oct 2026
- Memory
- Sounds are preloaded and fully decoded by default, while individual sounds can instead be streamed to save memory.github.com · read 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.github.com · read 4 Oct 2026
- Mixing features
- It supports crossfading related sounds, branching between movements, overlapping independent flows, and combining sounds of varying lengths and repetitions.github.com · read 4 Oct 2026