Adaptive soundtrack editor · Windows · in development

Music that moves with the game.

Splizebra splits a finished track into sections a game can switch between on the beat. Mark them by ear, test every join, and export the samples with an index your game reads.

Try a state changeRead the manual

How it plays

The game asks.
The music waits for the bar.

Your game only names the state it wants. The change waits for the next bar it can make; the outgoing section fades while the incoming one starts early, by its headstart, so the two meet on the beat. Press a state while it plays.

Join
  1. Calm is looping. Ask for Tension or Combat.

A silent sketch at 89.10 BPM, the tempo of the track in the screenshots. In the app you audition this in Loop adjustment, with Game sequence and Live state switch. In a game, the planned engine plugins do it from the export.

A join: section A fades out over the bar before the incoming beat, while section B's headstart fades in over the same bar. Both meet on B's first beat. bar 7bar 8bar 9bar 10 A · normal 4 B · combat A's fade B's headstart B's marked beat

Who owns a join

The outgoing section owns the fade. The incoming section owns the headstart: audio from before its marked beat, taken from the source track. With a one-bar fade and a one-bar headstart, both begin a bar early and meet on the beat.

A headstart needs audio before the section, so the first section of a track has none to give. The export records what you asked for and what the source allowed.

Hard cut
Section cores butt together.
Microfade
Softens each edge, no overlap.
Crossfade
Overlaps by the fade and headstart, from 1/16 bar to 8 bars, or a fade in milliseconds.

Inside the app

Three workspaces.
Left to right.

Set the beat grid, press Track, and click the waveform each time a new part starts. Each click closes a section at the audible playhead, snapped to the grid, so you listen instead of chasing the cursor. Then give every section a name, a state and a role.

Tap BPM, ÷2, ×2
Fix the detected tempo by ear.
First beat
Move bar 1 onto the downbeat.
Snap
Bar, beat, half or quarter beat, or free.
Role
Loop, Intro, Transition or Outro. A transition lists every state it may lead from and to.
State
Calm, Rising, Tension, Combat, Victory, or one you name.

Hear the sections the way a game will use them: as a generated arrangement, as one join on repeat, or as a change requested in the middle of a bar.

New random sequence
An arrangement from your loops, with intro, outro and eligible transitions around them.
Lock A→B
One join on repeat while you tune either side.
Queue at next bar
Request the next section while the music plays.
State rules
Which states may follow which.
Match next level
Suggests a gain when the next section is much louder or quieter.

One section at a time, without touching the source audio. Every edit here reaches the previews and the exported samples.

±1 frame
Nudge a start or end by a single frame.
Volume curve
Double-click to add points. Changes are heard while the loop plays.
Mute range
Silence part of the loop and keep its length.
Remove time
Cut audio out and shorten the loop.
IN → loop → OUT
Hear the loop enter from one section and leave into another.

Files

Keep the source.
Ship the system.

project.szb

The editable project. Open it again whenever the music changes.

  • source audioembedded, never altered
  • beat grid and markersBPM, first beat, meter, snap
  • sectionsnames, roles, states, transition routes
  • joinsblend, fade, headstart and gain per section
  • Loop Station editsbounds, level, volume curve, cuts

export.zip

What the game loads.

  • samples/
    • a core file per sectionWAV or FLAC
    • pre-roll filesaudio before an incoming beat
    • release filescrossfade audio past a section's end
  • index.jsongrid, sections, roles, states, routes, fades, headstarts, gains, cuts

Output keeps the source's sample rate, channels and format unless you change them, with dither when you reduce bit depth. Before writing, Splizebra checks for unfinished sections and timing problems. The ZIP is samples plus playback instructions: the planned plugins read it for you, and without them your own audio code schedules the samples from index.json.

Planned release

Pay once.
Take it to any engine.

For the composer or team making the music

Splizebra

$35 once

The editor, with the Unity, Unreal and Godot plugins included.

For a developer receiving someone's export

One engine plugin

$5 per engine

Load a composer's Splizebra export in Unity, Unreal or Godot without buying the editor.

These are plans for the full release. Nothing is on sale yet and the plugins are still being written. index.json stays readable for teams that would rather write their own player.