LIBSONARE
Physical Model TunerTune libsonare's physical-model engines live, then export the patch
LOCAL ONLY
OSS DEMO

Everything runs locally on your device and nothing is sent anywhere. This is an open-source demo, not a service.

Idle
EnginePianoPeak-∞ dB
An OSS contribution tool — help voice the built-in instruments

libsonare's twelve physical-model engines hardcode their deep parameters in C++. This tuner runs a parity-verified TypeScript port of those cores so you can adjust every parameter live, compare against the libsonare original and an imported reference WAV, and export the tuned values as JSON. It is not a demo: share a JSON you are happy with as a GitHub issue and the author may fold it into a future built-in instrument update.

Synthesizer docs
PM-9PHYSICAL MODEL VOICE TUNER
Contribution target

Pick the GM/GS voice this patch fills in

GM program
SlotGM · 000 · Acoustic Grand Piano

This tags your patch for one GM/GS slot and sets the A/B "original" to libsonare's current built-in fallback voice for it — so you tune against today's sound. A shared patch may be folded into that slot of the GM fallback bank.

Exciter model

PianoSlot model

Stiff strings, felt hammer, soundboard.

Voice with a different model

The target slot uses the model above. A patch tuned on a different model can't fill this slot — override only if you're proposing the model itself (e.g. an ethnic voice).

Strings
Keyboard
Mallets
Percussion
Winds
Voice

A / B compare

Play a note or press Compare to render the traces.
OriginalAdjustedΔ
Spectral match0.0%
RMS error0.0%
Error vs: Original

The original is the libsonare core rendering this engine at its baseline. Tune the parameters and watch the adjusted trace diverge.

Import a reference sound (WAV) and, optionally, its note as a one-note MIDI file — then auto-fit searches the core parameters to approximate it. The result is a starting point for the slot, not a finished voice.

Signal chain

Resonator body
NoneSlot body
Use a different body

The instrument implies the resonator above. Swap it only if you mean to reshape the corpus — the mix knob still fine-tunes how much of it you hear.

Body mix
0%
Drive
0%
Gain
80%

Amp envelope

Attack
6 ms
Decay
100000 ms
Sustain
100%
Release
700 ms

Sound shaping

Aim by ear: each slider moves several deep parameters together in one musical direction. Fine-tune the individual values under Model parameters below.

Brightness64%
Dull and mellow → bright and present.
Hammer hardness50%
Soft felt (mellow) → hard hammer (bright, sharp).
Sustain67%
Short and damped → long, singing ring.
Detune20%
Pure unison → wider, honky-tonk beating.
Soundboard42%
Dry → resonant soundboard bloom.
Model parameters13

Grouped by physical layer — the signal flows top to bottom: exciter → resonator → coupling → body → dynamics.

ExciterThe energy source — pluck, hammer, bow, breath or strike — and its contact point and character.
Strike position
0.085
Hammer felt
2.50
Hammer contact ms
1.20 ms
ResonatorThe vibrating body — string, bore, bar or membrane: its tuning, decay and damping.
Decay fast
3.00 s
Decay slow
12.0 s
Decay stretch
0.70
Brightness
0.75
Dispersion
1.00
CouplingSecondary paths coupled in — extra strings, sympathetic resonance, vents, ranks.
Unison strings
3
Detune
1.6 ¢
Body & RadiationHow the vibration reaches the air — soundboard, shell, bell, pickup, output.
Soundboard
0.25
Articulation & DynamicsHow the gesture shapes the note — velocity response, attack/release, expression.
Hammer dynamics
0.00
Release damp
0.10 s

MIDI phrase

Web MIDI is not available in this browser. Chrome and Edge support USB MIDI keyboards.

Patch

The exported JSON mirrors the C++ *PatchParams struct 1:1 — feed it back to libsonare.

Happy with a voice? Share the JSON as a GitHub issue — the author may fold good patches into a future built-in instrument update.

Octave
C3

Click or tap the keys, or play with your computer keyboard: A W S E D F T G Y H U J K. Use Z / X to shift the octave. Struck and plucked voices (piano, guitar, mallets, drums) ring out naturally when you release; bowed, wind and organ voices sound while held and fade on release.