Skip to content

Plugins

Plugin parameters are stored as normalized float32 values from 0 to 1 (see plugin records). The reader converts the parameters listed here; any other parameter is printed raw with --all. compose never touches plugins: they are kept byte for byte.

Where plugins are stored:

Where Location Records
track / bus insert slots 1–6 FLStudioModelBA bmd:<Name>:<ID> with kind, column, slot 0–5, owner 2
track built-in FX FLStudioModelBA slot 6 Voice Isolation, 7 Dialogue Leveler, 8 Dialogue Separator, 9 Music Remixer, 10 Ducker
clip built-in FX the clip's own FieldsBlob see Clips & edits

Conversion formulas

p is the stored normalized value.

Plugin Parameter UI value
De-Esser BMDDeesser::RANGE (frequency) 700 · (9000 / 700)^p Hz, shown with 3 significant digits
BMDDeesser::AMOUNT 100 · p %
BMDDeesser::MODE 0 = narrow band, 0.5 = centered bell
Deesser::REACTION 0.5 = medium (only value seen)
BMDDeesser::ESS_ONLY flag (“S only”)
Vocal Channel BMDVocalChannel::COMP_THRES −40 + 40p dB
BMDVocalChannel::COMP_RATIO 1.1 + 5.9p (x:1)
BMDVocalChannel::COMP_GAIN 20p dB
BMDVocalChannel::COMP_REACTION as-is (0–1)
HPF_IN / EQ_IN / COMP_IN flags (high-pass, EQ, compressor sections)
Limiter BMDLimiter::INPUT_GAIN −18 + 36p dB
BMDLimiter::THRESHOLD (ceiling) −24 + 24p dBTP
BMDLimiter::RELEASE lookup: 0.8829 = 190.55 ms (only value calibrated)
BMDLimiter::SOFT flag
Voice Isolation (track built-in slot 6, or clip) BMDVoiceIsolationControl::DRY_MIX 100 · p = amount (37 → 0.3701, 82 → 0.8201, 55 → 0.55)
Dialogue Leveler (clip) UI_BAS_PRESET mode = 3p: 0 allow wider dynamics, 1 optimize moderate levels, 2 more lift for low levels, 3 lift soft whispery sources
UI_ADV_RIDER_ON / UI_BAS_LIFTER_ON / UI_BAS_CLEANER_ON flags: reduce loud dialogue / lift soft dialogue / background reduction
UI_BAS_OUTPUT_GAIN 6p dB (range 0–6 dB)

A flag is ON when p ≥ 0.5. A lookup value that is not in the table prints 未較正(raw=…).

Generated from the map

Plugin Parameter Label Kind Stored value → UI Mark
Voice Isolation BMDVoiceIsolationControl::DRY_MIX amount linear 0 + (100 − 0) × p ² two_point
Dialogue Leveler UI_BAS_PRESET mode enum 0 → 0 ALLOW_WIDER_DYNAMICS, 0.333333 → 1 OPTIMIZE_MODERATE_LEVELS, 0.666667 → 2 MORE_LIFT_FOR_LOW_LEVELS, 1 → 3 LIFT_SOFT_WHISPERY_SOURCES direct
Dialogue Leveler UI_ADV_RIDER_ON reduce_loud flag ≥ 0.5 = on direct
Dialogue Leveler UI_BAS_LIFTER_ON lift_soft flag ≥ 0.5 = on direct
Dialogue Leveler UI_BAS_CLEANER_ON background_reduction flag ≥ 0.5 = on direct
Dialogue Leveler UI_BAS_OUTPUT_GAIN output_gain linear 0 + (6 − 0) × p dB ² two_point
De-Esser BMDDeesser::RANGE freq log 700 × (9000 / 700)^p Hz ² two_point
De-Esser BMDDeesser::MODE mode enum 0 → narrow band, 0.5 → centered bell ※ calib
De-Esser BMDDeesser::AMOUNT amount linear 0 + (100 − 0) × p % ² two_point
De-Esser Deesser::REACTION reaction enum 0.5 → medium ※ calib
De-Esser BMDDeesser::ESS_ONLY s_only flag ≥ 0.5 = on direct
Vocal Channel BMDVocalChannel::HPF_IN hp_on flag ≥ 0.5 = on direct
Vocal Channel BMDVocalChannel::EQ_IN eq_on flag ≥ 0.5 = on direct
Vocal Channel BMDVocalChannel::COMP_IN comp_on flag ≥ 0.5 = on direct
Vocal Channel BMDVocalChannel::COMP_THRES threshold linear -40 + (0 − -40) × p dB ² two_point
Vocal Channel BMDVocalChannel::COMP_RATIO ratio linear 1.1 + (7 − 1.1) × p :1 ² two_point
Vocal Channel BMDVocalChannel::COMP_REACTION response linear 0 + (1 − 0) × p direct
Vocal Channel BMDVocalChannel::COMP_GAIN gain linear 0 + (20 − 0) × p dB ² two_point
Limiter BMDLimiter::INPUT_GAIN input linear -18 + (18 − -18) × p dB ² two_point
Limiter BMDLimiter::THRESHOLD ceiling linear -24 + (0 − -24) × p dBTP ² two_point
Limiter BMDLimiter::RELEASE release enum 0.882927 → 190.55 ms ※ calib
Limiter BMDLimiter::SOFT soft flag ≥ 0.5 = on direct

Linear formulas (min + (max − min) × p) were fixed with two or more UI points and the knob scale (range) seen in the UI (two_point); lookups (calib) hold only the values that were read on the UI.

Track Voice Isolation on/off

The track built-in Voice Isolation (slot 6) has no on/off parameter. It is bit 0x10 of the record's u32 state flags at offset 272 from the tag:

Bit 0x10 Meaning
clear enabled
set disabled — the amount stays stored
  • Verified by toggling it in the UI on two tracks: only that one byte changes (the two records are 768 bytes apart), and the amount is unchanged.
  • Verified with the scripting API Timeline.SetVoiceIsolationState: the API then reports amount 0 for a disabled track, although the stored amount stays.
  • The parameter registry (marker 0x77668866) also changes, but it is not needed to read the state.
  • Unused built-in slots also carry 0x10. For insert plugins (2 has been seen) and the other built-in FX the flags are not decoded; --all prints them as state_flags.

The reader prints it as Voice Isolation.enabled (ON / OFF), usable in --expect.

Not decoded

  • Plugin bypass (insert slots).
  • Track-level Dialogue Leveler settings: the track record carries no UI_… parameters until they are set in the UI, and they cannot be set through the API.
  • Parameters of other plugins (Vocal Channel EQ bands, Dialogue Separator, Music Remixer, Ducker, third-party plugins): raw with --all.