Suggested edits
The mapping step turns the pitch, voices and envelope groups of
layers.json into edits for one synth. It runs in two parts. A
synth-neutral plan decides what the patch should hold, in physical units.
The synth’s adapter then writes each setting to its own controls with its
own laws. This page states the plan.
The output holds the edits, an unrepresentable list for values the synth
cannot reach, and an unwritten list for measured fields the plan leaves
out on purpose. analyze writes the edits and the unrepresentable
entries into each group of layers.json; see
Layer report. The unwritten list stays
in the library. Each unwritten entry names the field by its path in the
group’s values, such as attack_s or glides.curve, and gives one
reason:
| Reason | Meaning |
|---|---|
low_confidence | The field has no estimate, or a low one. |
upper_bound | The field is an upper bound, such as an attack faster than the track can tell. |
not_identifiable | The report cannot separate the value from what hides it, such as a release under a heavy tail. |
curve_not_set | The curve stays at its default; tune it by ear. |
unprobed | The control exists, but no probe has shown what it does. |
Voicing
- Mono, legato and the voice count need a voices verdict of medium
confidence or higher. A
voicesgroup at low confidence writes nothing and listsmono,joins.legatoandmax_polyphony; set them by ear. A low count is no evidence of voicing (see Voices). - A mono stem writes mono on and no voice count.
- Legato is on when a join of medium or high confidence reads legato. It is
off when every such join retriggers. A synth’s legato acts only where notes
overlap, so one legato join needs it on. Joins with no confident verdict
write nothing and list
joins.legato, so legato keeps the template’s setting; set it by ear. - A poly stem writes mono off, legato off and a voice count of
max_polyphony, times 1 unison voice and 1 oscillator. The unison step sets the final count once it knows those numbers.
Glide and pitch drop
- A record of low confidence counts for nothing.
- The glide time is the median
time_sof the confident glides: the full 0 to 100 % time. A time beyond the synth’s maximum lands on the maximum and is listed inunrepresentable. Always-glide is on when one of those glides starts from silence. - No law maps the fitted glide shape
pto a synth’s glide curve, so the curve stays at its default andglides.curvereadscurve_not_set. - The pitch drop is the median
df_stand the mediantau_sof the confident drops. The adapter writes a unipolar envelope route into oscillator pitch. A drop beyond the destination’s range lands on the range, and the rest goes tounrepresentable. The route amount is an interim law, always markeduncalibrateduntil the calibration set measures it. An edit of the drop envelope is markeduncalibratedwhere the registry tags its controlInterim. - Vibrato writes no route here.
Amplitude envelope
- A stage of low confidence writes nothing. An edit’s confidence is the lowest level of the records behind it, capped by the group’s level.
- An attack flagged
attack_is_upper_boundwrites nothing and readsupper_bound. - A hold is written only for a plateau over 10 ms; the envelope layer reads a shorter one as 0.
- The decay runs from the peak to the sustain level. The sustain is the held level from the peak in dB; the adapter’s law turns it into its stored value.
- A release is written only when
release_confidenceis medium or high: the envelope layer leaves no release under a tail heavier than 0.5 or with a residual above 3 dB. Otherwiserelease_sreadsnot_identifiable. - The attack, decay and release curves stay at their defaults and read
curve_not_set. - The tail and the pump have no envelope control. They belong to the space and modulation layers.
- A value equal to the control’s default writes no edit.
Velocity
Velocity gets a path to the level when level_spread_db has a value, read
over at least 3 pooled notes, and exceeds 3 dB. The edit is always low
confidence, as the spread is.