9:41
{{ mTitle }}
The audio engine failed to load: {{ engineErrorText }}

Projects

Humanize separated Suno stems, compare them with the originals, and export WAVs for mixing in REAPER.

New project

Stems are decoded and processed in this browser. Nothing is uploaded.

The tempo places drum timing and dynamics variation on beats and bars. It assumes a constant tempo; without it, variation follows a slow drift.
No stems at hand?
Stems · {{ draftCount }}
{{ f.name }} {{ f.metaText }}
{{ w.text }}

{{ projName }}

{{ projectMeta }}{{ persistLabel }}
{{ persistErr }}
{{ conflictText }}
{{ f.label }}· {{ f.note }}
Preparing stems…
{{ busyText }}
{{ memWarnText }}
{{ timeText }}
{{ lufsText }}
Original Humanized Space play/pause · A switch · click waveform to seek
Stems · {{ stemCount }}
Click a stem for advanced settings
{{ s.idx }} {{ s.typeLabel }} {{ s.name }}
{{ s.sourceShort }}
{{ s.statusText }}

{{ relinkName }}

{{ relinkMsg }}

Settings, presets, variation seeds and output trim are restored. Choose the original files to continue; each one is checked by SHA-256, so only the exact same audio is accepted. {{ relinkCount }}.

{{ m.name }}{{ m.type }} · {{ m.meta }} SHA-256 {{ m.hash }}
{{ busyText }}
{{ projectMeta }}{{ persistLabel }}
Preparing stems…
{{ busyText }}
{{ timeText }}
{{ s.typeLabel }}{{ s.mLine }}
Export and parameter editing are on desktop. Preset changes made here re-render straight away.

Compare sources · {{ cmpInstrument }}

Listen to both separations in sync. The measurements describe the signals; they don't decide which separation sounds better.

{{ timeText }}
{{ cmpLufsText }}
A · {{ cmpAFull }} B · {{ cmpBFull }}
Shaded spans mark suspected artifacts (below). Both waveforms are drawn on the project timeline with B's offset applied. Space play/pause · A switch.
Timing alignment Estimating the offset by cross-correlation… {{ alignHeadline }} {{ alignDetail }}
Offset of B relative to A{{ offDisplay }}
A whole-sample shift applied to B in playback, processing and export. Nothing is time-stretched and the source audio is not modified.
Suspected artifacts Spans where one version is more than 6 dB louder or quieter than the other over 50 ms, after the overall level difference is removed. Dropouts, bleed and smearing often show up here. Click a span to listen. Scanning… {{ noRegionsText }}
Measurements · original stems
MeasurementA · {{ cmpALabel }}B · {{ cmpBLabel }}
{{ m.label }}{{ m.a }}{{ m.b }}
Active version Only the active version is humanized, heard in the mix and exported. The other keeps its own settings and can be switched back at any time.

Settings

Export
Sample rate and length always match the source stem. Nothing is resampled or trimmed.
Tokens: {n} track number, {stem} instrument, {source} stem source, {project} project name, {file} original file name.
Example: {{ namingExample }}
Playback
Default presets for new projects
{{ d.label }}
Storage on this device
{{ k.label }}{{ k.value }}
Projects and original audio are saved automatically in this browser (IndexedDB). Browser storage can still be cleared by the user or evicted by the browser, even when persistent storage is granted, so keep complete backups of important projects. {{ storageErr }}
Backups Export a backup from a project's page: metadata only (settings, presets, seeds, hashes, research records) or complete (also the original source audio). A complete backup restores the project on another computer.
Cloud sync (optional) {{ cloudState }} Audio stays on this device. When sync is on, project settings, source hashes and research records are sent to your own CM Humanizer Supabase project. Nothing is uploaded before you sign in and switch sync on.
Use the publishable (or legacy anon) key. Secret and service-role keys are refused. See SUPABASE_SETUP.md.
{{ lastSyncText }}
{{ conflictCountText }} {{ blockedText }} {{ cloudErr }}
Processing and REAPER

Decoding, processing, loudness measurement and WAV encoding all run in this browser. Originals are never changed; each render is rebuilt from the source with the stem's settings and variation number.

In REAPER, select all exported files, drag them to the start of the arrange view and choose one track per file. They line up sample-for-sample with the originals.

Architecture note: what runs locally and what needs a backend
{{ sheetPreset }}

{{ sheetTitle }}

{{ k.label }}{{ k.value }}
Fine-tune these values on desktop.
Active version
Ready to save If the download didn't start, save the file from here.
{{ f.name }} {{ f.sizeText }}
Save
{{ toast }}