fractal-midi 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +200 -0
- package/NOTICE +28 -0
- package/README.md +147 -0
- package/dist/am4/applicability.d.ts +61 -0
- package/dist/am4/applicability.d.ts.map +1 -0
- package/dist/am4/applicability.js +285 -0
- package/dist/am4/blockTypes.d.ts +43 -0
- package/dist/am4/blockTypes.d.ts.map +1 -0
- package/dist/am4/blockTypes.js +48 -0
- package/dist/am4/cacheEnums.d.ts +46 -0
- package/dist/am4/cacheEnums.d.ts.map +1 -0
- package/dist/am4/cacheEnums.js +734 -0
- package/dist/am4/cacheParams.d.ts +3533 -0
- package/dist/am4/cacheParams.d.ts.map +1 -0
- package/dist/am4/cacheParams.js +1996 -0
- package/dist/am4/editorControlLabels.d.ts +45 -0
- package/dist/am4/editorControlLabels.d.ts.map +1 -0
- package/dist/am4/editorControlLabels.js +15894 -0
- package/dist/am4/index.d.ts +28 -0
- package/dist/am4/index.d.ts.map +1 -0
- package/dist/am4/index.js +31 -0
- package/dist/am4/ir/preset.d.ts +24 -0
- package/dist/am4/ir/preset.d.ts.map +1 -0
- package/dist/am4/ir/preset.js +12 -0
- package/dist/am4/ir/transpile.d.ts +9 -0
- package/dist/am4/ir/transpile.d.ts.map +1 -0
- package/dist/am4/ir/transpile.js +19 -0
- package/dist/am4/locations.d.ts +32 -0
- package/dist/am4/locations.d.ts.map +1 -0
- package/dist/am4/locations.js +58 -0
- package/dist/am4/paramNames.d.ts +55 -0
- package/dist/am4/paramNames.d.ts.map +1 -0
- package/dist/am4/paramNames.js +863 -0
- package/dist/am4/paramNamesGenerated.d.ts +41 -0
- package/dist/am4/paramNamesGenerated.d.ts.map +1 -0
- package/dist/am4/paramNamesGenerated.js +183 -0
- package/dist/am4/parameterBridge.d.ts +46 -0
- package/dist/am4/parameterBridge.d.ts.map +1 -0
- package/dist/am4/parameterBridge.js +300 -0
- package/dist/am4/params.d.ts +9577 -0
- package/dist/am4/params.d.ts.map +1 -0
- package/dist/am4/params.js +4537 -0
- package/dist/am4/setParam.d.ts +414 -0
- package/dist/am4/setParam.d.ts.map +1 -0
- package/dist/am4/setParam.js +819 -0
- package/dist/am4/shared/paramHelpers.d.ts +55 -0
- package/dist/am4/shared/paramHelpers.d.ts.map +1 -0
- package/dist/am4/shared/paramHelpers.js +146 -0
- package/dist/am4/symbolicIds.d.ts +11 -0
- package/dist/am4/symbolicIds.d.ts.map +1 -0
- package/dist/am4/symbolicIds.js +587 -0
- package/dist/am4/typeApplicability.d.ts +39 -0
- package/dist/am4/typeApplicability.d.ts.map +1 -0
- package/dist/am4/typeApplicability.js +466 -0
- package/dist/am4/variantResolverTables.d.ts +51 -0
- package/dist/am4/variantResolverTables.d.ts.map +1 -0
- package/dist/am4/variantResolverTables.js +3128 -0
- package/dist/axe-fx-ii/blockTypes.d.ts +45 -0
- package/dist/axe-fx-ii/blockTypes.d.ts.map +1 -0
- package/dist/axe-fx-ii/blockTypes.js +116 -0
- package/dist/axe-fx-ii/index.d.ts +5 -0
- package/dist/axe-fx-ii/index.d.ts.map +1 -0
- package/dist/axe-fx-ii/index.js +18 -0
- package/dist/axe-fx-ii/paramAliases.d.ts +54 -0
- package/dist/axe-fx-ii/paramAliases.d.ts.map +1 -0
- package/dist/axe-fx-ii/paramAliases.js +146 -0
- package/dist/axe-fx-ii/params.d.ts +11502 -0
- package/dist/axe-fx-ii/params.d.ts.map +1 -0
- package/dist/axe-fx-ii/params.js +2847 -0
- package/dist/axe-fx-ii/setParam.d.ts +560 -0
- package/dist/axe-fx-ii/setParam.d.ts.map +1 -0
- package/dist/axe-fx-ii/setParam.js +888 -0
- package/dist/axe-fx-iii/blockTypes.d.ts +87 -0
- package/dist/axe-fx-iii/blockTypes.d.ts.map +1 -0
- package/dist/axe-fx-iii/blockTypes.js +156 -0
- package/dist/axe-fx-iii/enumOverlay.d.ts +73 -0
- package/dist/axe-fx-iii/enumOverlay.d.ts.map +1 -0
- package/dist/axe-fx-iii/enumOverlay.js +236 -0
- package/dist/axe-fx-iii/index.d.ts +9 -0
- package/dist/axe-fx-iii/index.d.ts.map +1 -0
- package/dist/axe-fx-iii/index.js +20 -0
- package/dist/axe-fx-iii/params.d.ts +179 -0
- package/dist/axe-fx-iii/params.d.ts.map +1 -0
- package/dist/axe-fx-iii/params.js +6913 -0
- package/dist/axe-fx-iii/setParam.d.ts +460 -0
- package/dist/axe-fx-iii/setParam.d.ts.map +1 -0
- package/dist/axe-fx-iii/setParam.js +910 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/shared/checksum.d.ts +10 -0
- package/dist/shared/checksum.d.ts.map +1 -0
- package/dist/shared/checksum.js +14 -0
- package/dist/shared/device.d.ts +195 -0
- package/dist/shared/device.d.ts.map +1 -0
- package/dist/shared/device.js +27 -0
- package/dist/shared/index.d.ts +8 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +11 -0
- package/dist/shared/lineage/amp-lineage.json +8313 -0
- package/dist/shared/lineage/axefx2-amp-lineage.json +5871 -0
- package/dist/shared/lineage/axefx2-delay-lineage.json +226 -0
- package/dist/shared/lineage/axefx2-drive-lineage.json +575 -0
- package/dist/shared/lineage/axefx2-reverb-lineage.json +467 -0
- package/dist/shared/lineage/cab-lineage.json +10777 -0
- package/dist/shared/lineage/chorus-lineage.json +173 -0
- package/dist/shared/lineage/compressor-lineage.json +338 -0
- package/dist/shared/lineage/delay-lineage.json +313 -0
- package/dist/shared/lineage/drive-lineage.json +1844 -0
- package/dist/shared/lineage/flanger-lineage.json +313 -0
- package/dist/shared/lineage/phaser-lineage.json +208 -0
- package/dist/shared/lineage/reverb-lineage.json +793 -0
- package/dist/shared/lineage/wah-lineage.json +117 -0
- package/dist/shared/lineageLookup.d.ts +69 -0
- package/dist/shared/lineageLookup.d.ts.map +1 -0
- package/dist/shared/lineageLookup.js +196 -0
- package/dist/shared/packValue.d.ts +40 -0
- package/dist/shared/packValue.d.ts.map +1 -0
- package/dist/shared/packValue.js +105 -0
- package/dist/shared/types.d.ts +23 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +9 -0
- package/package.json +75 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/gen-paramnames-from-resolver.ts — do not hand-edit.
|
|
3
|
+
*
|
|
4
|
+
* Friendly parameter names synthesized from the resolver MISSING set.
|
|
5
|
+
* Each entry is a (cache_id → snake_case_name) binding for a wire address
|
|
6
|
+
* the AM4-Edit variant resolver knows about but `paramNames.ts` has no
|
|
7
|
+
* hand-curated entry for.
|
|
8
|
+
*
|
|
9
|
+
* Source authority chain (firmware-truth):
|
|
10
|
+
* 1. AM4-Edit.exe variant resolver (FUN_1402e3da0)
|
|
11
|
+
* -> src/protocol/variantResolverTables.ts
|
|
12
|
+
* provides (block, parameterName, cache_id) bindings.
|
|
13
|
+
* 2. AM4-Edit.exe BinaryData ZIP -> __block_layout*.xml
|
|
14
|
+
* -> src/protocol/editorControlLabels.ts
|
|
15
|
+
* provides parameterName -> canonical display label.
|
|
16
|
+
* 3. AM4-Edit metadata cache (effectDefinitions_15_2p0.cache)
|
|
17
|
+
* -> samples/captured/decoded/cache-section{2,3}.json
|
|
18
|
+
* provides typecode / a / b / c -> unit + display range.
|
|
19
|
+
*
|
|
20
|
+
* Merge with the hand-curated `paramNames.ts` happens in
|
|
21
|
+
* `scripts/gen-params-from-cache.ts`. Resolver-derived entries are
|
|
22
|
+
* firmware-truth (from AM4-Edit.exe's per-variant dispatcher), so they
|
|
23
|
+
* win on (block, cache_id) → parameterName conflicts. Hand-curated
|
|
24
|
+
* entries from `paramNames.ts` were seeded from hardware captures —
|
|
25
|
+
* messy and occasionally mis-bound — so they yield to the resolver
|
|
26
|
+
* where the two disagree. For THIS regen, the generator only emits to
|
|
27
|
+
* cache_ids where `paramNames.ts` has no entry (the diff's MISSING
|
|
28
|
+
* set), so there is no actual conflict to resolve; the conflict-
|
|
29
|
+
* resolution rule applies to future broader regenerations.
|
|
30
|
+
*
|
|
31
|
+
* Coverage as of regen: 158 new wire-bound friendly names
|
|
32
|
+
* across 11 blocks.
|
|
33
|
+
*
|
|
34
|
+
* Comment beside each entry shows: <canonicalLabel> (<parameterName>) —
|
|
35
|
+
* the canonical AM4-Edit display label as users will see it on screen,
|
|
36
|
+
* paired with the firmware symbolic ID for cross-reference.
|
|
37
|
+
*/
|
|
38
|
+
import type { ParamNameEntry } from './paramNames.js';
|
|
39
|
+
export declare const GENERATED_PARAM_NAMES: Readonly<Record<string, Readonly<Record<number, ParamNameEntry>>>>;
|
|
40
|
+
export declare const GENERATED_PARAM_NAMES_FIRMWARE = "AM4-Edit Mar 20 2026 build";
|
|
41
|
+
//# sourceMappingURL=paramNamesGenerated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paramNamesGenerated.d.ts","sourceRoot":"","sources":["../../src/am4/paramNamesGenerated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAqL3F,CAAC;AAEX,eAAO,MAAM,8BAA8B,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
export const GENERATED_PARAM_NAMES = {
|
|
2
|
+
amp: {
|
|
3
|
+
21: 'proximity', // Proximity (CABINET_PROXIMITY2)
|
|
4
|
+
38: 'master_vol_cap', // Master Vol Cap (DISTORT_MVCAP)
|
|
5
|
+
51: 'hi_reso', // Hi Reso (DISTORT_SPKRHFGAIN)
|
|
6
|
+
57: 'drive', // Drive (DISTORT_SPKRDRIVE)
|
|
7
|
+
71: 'distance', // Distance (CABINET_DYNACAB_Z1)
|
|
8
|
+
72: 'distance_dynacab_z2', // Distance (CABINET_DYNACAB_Z2)
|
|
9
|
+
79: 'frequency', // Frequency (DISTORT_INEQFREQ)
|
|
10
|
+
81: 'overdrive', // Overdrive (DISTORT_DRIVE2)
|
|
11
|
+
86: 'definition', // Definition (DISTORT_DEFINITION)
|
|
12
|
+
87: 'compression', // Compression (DISTORT_CFTHRESH)
|
|
13
|
+
88: 'cfgrid', // DISTORT_CFGRID
|
|
14
|
+
90: 'high_cut', // High Cut (DISTORT_HICUT)
|
|
15
|
+
91: 'dynpres', // DISTORT_DYNPRES
|
|
16
|
+
92: 'dyndepth', // DISTORT_DYNDEPTH
|
|
17
|
+
96: 'tremfreq', // DISTORT_TREMFREQ
|
|
18
|
+
97: 'tremdepth', // DISTORT_TREMDEPTH
|
|
19
|
+
100: 'cathode_resistance', // Cathode Resistance (DISTORT_CBRATIO)
|
|
20
|
+
102: 'dynimp', // DISTORT_DYNIMP
|
|
21
|
+
106: 'indynamics', // DISTORT_INDYNAMICS
|
|
22
|
+
110: 'gridhardness', // DISTORT_GRIDHARDNESS
|
|
23
|
+
114: 'triode2extime', // DISTORT_TRIODE2EXTIME
|
|
24
|
+
115: 'triode2rectime', // DISTORT_TRIODE2RECTIME
|
|
25
|
+
119: 'triode1ratio', // DISTORT_TRIODE1RATIO
|
|
26
|
+
120: 'cfhardness', // DISTORT_CFHARDNESS
|
|
27
|
+
124: 'resolution', // DISTORT_RESOLUTION
|
|
28
|
+
125: 'vccmon', // B+ (DISTORT_VCCMON)
|
|
29
|
+
126: 'gain_gainmon', // Gain (DISTORT_GAINMON)
|
|
30
|
+
127: 'mdmon', // DISTORT_MDMON
|
|
31
|
+
128: 'indynmon', // DISTORT_INDYNMON
|
|
32
|
+
137: 'headroom', // HEADROOM (DISTORT_VPLATEMON)
|
|
33
|
+
138: 'presence_prepresence', // Presence (DISTORT_PREPRESENCE)
|
|
34
|
+
140: 'high_cut_pahicut', // High Cut (DISTORT_PAHICUT)
|
|
35
|
+
145: 'overdrive_volume', // Overdrive Volume (DISTORT_GLOBALMASTER)
|
|
36
|
+
151: 'disablecabsync', // DISTORT_DISABLECABSYNC
|
|
37
|
+
},
|
|
38
|
+
drive: {
|
|
39
|
+
15: 'slew_rate_slew', // Slew Rate (FUZZ_SLEW)
|
|
40
|
+
19: 'bias_bias', // Bias (FUZZ_BIAS)
|
|
41
|
+
40: 'diode_quantity_pdqty', // Diode+ Quantity (FUZZ_PDQTY)
|
|
42
|
+
42: 'diode_quantity', // Diode- Quantity (FUZZ_NDQTY)
|
|
43
|
+
43: 'dry_level', // Dry Level (FUZZ_DRYGAIN)
|
|
44
|
+
44: 'bass_bass', // Bass (FUZZ_BASS)
|
|
45
|
+
49: 'drive_drive2', // Drive (FUZZ_DRIVE2)
|
|
46
|
+
},
|
|
47
|
+
reverb: {
|
|
48
|
+
13: 'high_decay', // High Decay (REVERB_HFRATIO)
|
|
49
|
+
14: 'scattering', // Scattering (REVERB_DIFFUSION)
|
|
50
|
+
16: 'reverbdelay', // REVERB_REVERBDELAY
|
|
51
|
+
17: 'early_level', // Early Level (REVERB_EARLYLEVEL)
|
|
52
|
+
18: 'late_level', // Late Level (REVERB_REVERBLEVEL)
|
|
53
|
+
21: 'depth', // Depth (REVERB_DEPTH)
|
|
54
|
+
22: 'rate', // Rate (REVERB_RATE)
|
|
55
|
+
25: 'diffusion', // Diffusion (REVERB_INPDIFF)
|
|
56
|
+
26: 'diffusion_time', // Diffusion Time (REVERB_INDIFFTIME)
|
|
57
|
+
29: 'pickup_spacing', // Pickup Spacing (REVERB_WIDTH)
|
|
58
|
+
30: 'frequency_1', // Frequency 1 (REVERB_FREQ1)
|
|
59
|
+
31: 'frequency_2', // Frequency 2 (REVERB_FREQ2)
|
|
60
|
+
32: 'q_1', // Q 1 (REVERB_Q1)
|
|
61
|
+
33: 'q_2', // Q 2 (REVERB_Q2)
|
|
62
|
+
34: 'gain_1', // Gain 1 (REVERB_GAIN1)
|
|
63
|
+
35: 'gain_2', // Gain 2 (REVERB_GAIN2)
|
|
64
|
+
37: 'low_decay', // Low Decay (REVERB_LFTIME)
|
|
65
|
+
38: 'xover_frequency', // Xover Frequency (REVERB_LFXOVER)
|
|
66
|
+
41: 'threshold', // Threshold (REVERB_THRESH)
|
|
67
|
+
42: 'release_time', // Release Time (REVERB_RELEASE)
|
|
68
|
+
43: 'early_diffusion', // Early Diffusion (REVERB_EARLYDIFF)
|
|
69
|
+
44: 'early_diff_time', // Early Diff Time (REVERB_EARLYDIFFTIME)
|
|
70
|
+
45: 'early_decay', // Early Decay (REVERB_EARLYDECAY)
|
|
71
|
+
46: 'late_input_mix', // Late Input Mix (REVERB_EARLYSEND)
|
|
72
|
+
49: 'basetype', // REVERB_BASETYPE
|
|
73
|
+
50: 'lfo_phase', // LFO Phase (REVERB_LFOPHASE)
|
|
74
|
+
55: 'pitch_mix', // Pitch Mix (REVERB_PITCHMIX)
|
|
75
|
+
58: 'pitch_feedback', // Pitch Feedback (REVERB_PITCHFDBK)
|
|
76
|
+
60: 'splice_time', // Splice Time (REVERB_PITCHTIME)
|
|
77
|
+
62: 'pitch_modulation', // Pitch Modulation (REVERB_PITCHMOD)
|
|
78
|
+
63: 'voice_balance', // Voice Balance (REVERB_PITCHBAL)
|
|
79
|
+
65: 'feedback', // Feedback (REVERB_PREDLYFDBK)
|
|
80
|
+
66: 'echo_mix', // Echo Mix (REVERB_PREDLYMIX)
|
|
81
|
+
67: 'pitch_high_cut', // Pitch High Cut (REVERB_PITCHLPF)
|
|
82
|
+
69: 'tonetype', // REVERB_TONETYPE
|
|
83
|
+
71: 'low_cut_q', // Low Cut Q (REVERB_LOWQ)
|
|
84
|
+
72: 'high_cut_q', // High Cut Q (REVERB_HIGHQ)
|
|
85
|
+
},
|
|
86
|
+
delay: {
|
|
87
|
+
15: 'tempo_1', // Tempo 1 (MULTITAP_TEMPO1)
|
|
88
|
+
17: 'echo_pan', // Echo Pan (DELAY_DELAYPAN)
|
|
89
|
+
22: 'mod_rate', // Mod Rate (DELAY_RATE1)
|
|
90
|
+
23: 'rate', // Rate (DELAY_RATE2)
|
|
91
|
+
24: 'mod_depth', // Mod Depth (DELAY_DEPTH1)
|
|
92
|
+
25: 'mod_depth_depth2', // Mod Depth (DELAY_DEPTH2)
|
|
93
|
+
30: 'time_r', // Time R (DELAY_TIMER)
|
|
94
|
+
34: 'rotation', // Rotation (DELAY_FEEDLR)
|
|
95
|
+
35: 'lfo_1_type', // LFO 1 Type (MULTITAP_LFOTYPE1)
|
|
96
|
+
36: 'level_l', // Level L (DELAY_LEVELL)
|
|
97
|
+
37: 'level_r', // Level R (DELAY_LEVELR)
|
|
98
|
+
38: 'pan_l', // Pan L (DELAY_PANL)
|
|
99
|
+
39: 'pan_r', // Pan R (DELAY_PANR)
|
|
100
|
+
40: 'modulation_phase', // Modulation Phase (DELAY_LFO1PHASE)
|
|
101
|
+
41: 'lfo_phase', // LFO Phase (DELAY_LFO2PHASE)
|
|
102
|
+
42: 'crossfade_time', // Crossfade Time (DELAY_SPLICETIME)
|
|
103
|
+
56: 'sweep_rate', // Sweep Rate (DELAY_RATE3)
|
|
104
|
+
58: 'sweep_phase', // Sweep Phase (DELAY_LFO3PHASE)
|
|
105
|
+
60: 'sweep_start_freq', // Sweep Start Freq (DELAY_FSTART)
|
|
106
|
+
61: 'sweep_stop_freq', // Sweep Stop Freq (DELAY_FSTOP)
|
|
107
|
+
62: 'sweep_resonance', // Sweep Resonance (DELAY_Q)
|
|
108
|
+
73: 'right_post_delay', // Right Post Delay (DELAY_OFFSET)
|
|
109
|
+
82: 'pan_rate', // Pan Rate (DELAY_RATE4)
|
|
110
|
+
84: 'pan_depth', // Pan Depth (DELAY_DEPTH4)
|
|
111
|
+
85: 'lfo_phase_lfo4phase', // LFO Phase (DELAY_LFO4PHASE)
|
|
112
|
+
},
|
|
113
|
+
chorus: {
|
|
114
|
+
28: 'left_depth', // Left Depth (CHORUS_DEPTHL)
|
|
115
|
+
29: 'center_depth', // Center Depth (CHORUS_DEPTHC)
|
|
116
|
+
30: 'right_depth', // Right Depth (CHORUS_DEPTHR)
|
|
117
|
+
},
|
|
118
|
+
flanger: {
|
|
119
|
+
16: 'dry_delay', // Dry Delay (FLANGER_DRYDELAY)
|
|
120
|
+
19: 'smooth_steps', // Smooth Steps (FLANGER_LFOFILTER)
|
|
121
|
+
23: 'high_cut', // High Cut (FLANGER_LPFREQ)
|
|
122
|
+
24: 'drive', // Drive (FLANGER_DRIVE)
|
|
123
|
+
25: 'low_cut', // Low Cut (FLANGER_HPFREQ)
|
|
124
|
+
26: 'stereo_spread', // Stereo Spread (FLANGER_SPREAD)
|
|
125
|
+
30: 'bass_focus', // Bass Focus (FLANGER_FOCUS)
|
|
126
|
+
32: 'min_time', // Min Time (FLANGER_TMIN)
|
|
127
|
+
33: 'max_time', // Max Time (FLANGER_TMAX)
|
|
128
|
+
35: 'vpo_exponent', // VPO Exponent (FLANGER_VCOK)
|
|
129
|
+
},
|
|
130
|
+
phaser: {
|
|
131
|
+
17: 'min_frequency', // Min Frequency (PHASER_FMIN)
|
|
132
|
+
18: 'max_frequency', // Max Frequency (PHASER_FMAX)
|
|
133
|
+
20: 'bias', // Bias (PHASER_BIAS)
|
|
134
|
+
22: 'feedback_point', // Feedback Point (PHASER_FBTAP)
|
|
135
|
+
23: 'tone', // Tone (PHASER_TONE)
|
|
136
|
+
25: 'q', // Q (PHASER_Q)
|
|
137
|
+
29: 'shape_vcrk', // Shape (PHASER_VCRK)
|
|
138
|
+
30: 'shape', // Shape (PHASER_LFOBETA)
|
|
139
|
+
31: 'high_cut', // High Cut (PHASER_LFOLPF)
|
|
140
|
+
32: 'attack', // Attack (PHASER_ATTACK)
|
|
141
|
+
33: 'release', // Release (PHASER_RELEASE)
|
|
142
|
+
35: 'low_cut', // Low Cut (PHASER_HPF)
|
|
143
|
+
36: 'high_cut_lpf', // High Cut (PHASER_LPF)
|
|
144
|
+
},
|
|
145
|
+
compressor: {
|
|
146
|
+
20: 'compression', // Compression (COMP_SUSTAIN)
|
|
147
|
+
24: 'dynamics', // Dynamics (COMP_DYNAMICS)
|
|
148
|
+
33: 'threshold_thresh2', // Threshold (COMP_THRESH2)
|
|
149
|
+
36: 'ratio_compansion', // Ratio (COMP_COMPANSION)
|
|
150
|
+
37: 'time', // Time (COMP_COMPTIME)
|
|
151
|
+
38: 'transients', // Transients (COMP_COMPMATCH)
|
|
152
|
+
40: 'tone', // Tone (COMP_TONE)
|
|
153
|
+
},
|
|
154
|
+
filter: {
|
|
155
|
+
12: 'q', // Q (FILTER_Q)
|
|
156
|
+
13: 'gain', // Gain (FILTER_GAIN)
|
|
157
|
+
15: 'pan_left', // Pan Left (FILTER_PANL)
|
|
158
|
+
16: 'pan_right', // Pan Right (FILTER_PANR)
|
|
159
|
+
20: 'delay_time', // Delay Time (FILTER_COMBTIME)
|
|
160
|
+
24: 'rate', // Rate (FILTER_LFOFREQ)
|
|
161
|
+
25: 'lfo_duty', // LFO Duty (FILTER_LFODUTY)
|
|
162
|
+
26: 'mod_frequency', // Mod Frequency (FILTER_MODFREQ)
|
|
163
|
+
30: 'resonance', // Resonance (FILTER_EVFQ)
|
|
164
|
+
31: 'start_frequency', // Start Frequency (FILTER_START)
|
|
165
|
+
32: 'stop_frequency', // Stop Frequency (FILTER_STOP)
|
|
166
|
+
34: 'attack_time', // Attack Time (FILTER_ATTACK)
|
|
167
|
+
35: 'release_time', // Release Time (FILTER_RELEASE)
|
|
168
|
+
36: 'sweep_shape', // Sweep Shape (FILTER_BETA)
|
|
169
|
+
39: 'emphasis', // Emphasis (FILTER_EMPH)
|
|
170
|
+
},
|
|
171
|
+
tremolo: {
|
|
172
|
+
14: 'duty', // Duty (TREMOLO_DUTY)
|
|
173
|
+
19: 'start_phase', // Start Phase (TREMOLO_STARTPHASE)
|
|
174
|
+
21: 'crossover_freq', // Crossover Freq (TREMOLO_XOVER)
|
|
175
|
+
22: 'trigger_threshold', // Trigger Threshold (TREMOLO_THRESH)
|
|
176
|
+
23: 'shape', // Shape (TREMOLO_BETA)
|
|
177
|
+
},
|
|
178
|
+
enhancer: {
|
|
179
|
+
16: 'pan_left', // Pan Left (ENHANCER_PANL)
|
|
180
|
+
17: 'pan_right', // Pan Right (ENHANCER_PANR)
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
export const GENERATED_PARAM_NAMES_FIRMWARE = 'AM4-Edit Mar 20 2026 build';
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/bridge-paramnames-to-xml.ts. Do not hand-edit.
|
|
3
|
+
*
|
|
4
|
+
* Joins the hand-curated paramNames.ts to the XML-derived
|
|
5
|
+
* editorControlLabels.ts and exposes the result as a runtime lookup
|
|
6
|
+
* keyed by (block, snake_case_name). Each entry binds:
|
|
7
|
+
* - parameterName: AM4-Edit's internal symbolic ID
|
|
8
|
+
* (e.g. "DISTORT_BRIGHTCAP" — usable as a stable cross-firmware key)
|
|
9
|
+
* - canonicalLabel: the display label AM4-Edit shows on its UI
|
|
10
|
+
* (e.g. "Bright Cap" — used in tool descriptions and agent output
|
|
11
|
+
* so the agent's vocabulary matches what the user reads on screen)
|
|
12
|
+
*
|
|
13
|
+
* This module is a strict refinement layer over paramNames.ts: the
|
|
14
|
+
* underlying wire IDs are unchanged. Only labels and parameterNames
|
|
15
|
+
* are added. Coverage is reached via four passes: display-label
|
|
16
|
+
* match, positional alignment (GEQ/PEQ band patterns), resolver-
|
|
17
|
+
* direct fallback for entries the AM4-Edit dispatcher binds, and a
|
|
18
|
+
* universal block-level register fallback (mix/balance/level/bypass)
|
|
19
|
+
* for wire registers AM4-Edit does not surface in every block UI.
|
|
20
|
+
*/
|
|
21
|
+
export interface ParameterBridgeEntry {
|
|
22
|
+
block: string;
|
|
23
|
+
name: string;
|
|
24
|
+
parameterName: string;
|
|
25
|
+
canonicalLabel: string;
|
|
26
|
+
}
|
|
27
|
+
export declare const PARAMETER_BRIDGE_FIRMWARE = "AM4-Edit Mar 20 2026 build";
|
|
28
|
+
export declare const PARAMETER_BRIDGE: Readonly<Record<string, Readonly<Record<string, {
|
|
29
|
+
readonly parameterName: string;
|
|
30
|
+
readonly canonicalLabel: string;
|
|
31
|
+
}>>>>;
|
|
32
|
+
/**
|
|
33
|
+
* Resolve the AM4-Edit canonical display label and symbolic
|
|
34
|
+
* parameterName for a (block, name) pair from paramNames.ts.
|
|
35
|
+
*
|
|
36
|
+
* Returns undefined if the (block, name) has no XML correspondence
|
|
37
|
+
* yet — the caller should fall back to the snake_case name from
|
|
38
|
+
* paramNames.ts as the display label.
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveBridge(block: string, name: string): {
|
|
41
|
+
parameterName: string;
|
|
42
|
+
canonicalLabel: string;
|
|
43
|
+
} | undefined;
|
|
44
|
+
/** Canonical label for a (block, name), or the original `name`. */
|
|
45
|
+
export declare function preferredDisplayLabel(block: string, name: string): string;
|
|
46
|
+
//# sourceMappingURL=parameterBridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameterBridge.d.ts","sourceRoot":"","sources":["../../src/am4/parameterBridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,yBAAyB,+BAA+B,CAAC;AAEtE,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAAC,CAuQpJ,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GACnD;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GACjD,SAAS,CAGd;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by scripts/bridge-paramnames-to-xml.ts. Do not hand-edit.
|
|
3
|
+
*
|
|
4
|
+
* Joins the hand-curated paramNames.ts to the XML-derived
|
|
5
|
+
* editorControlLabels.ts and exposes the result as a runtime lookup
|
|
6
|
+
* keyed by (block, snake_case_name). Each entry binds:
|
|
7
|
+
* - parameterName: AM4-Edit's internal symbolic ID
|
|
8
|
+
* (e.g. "DISTORT_BRIGHTCAP" — usable as a stable cross-firmware key)
|
|
9
|
+
* - canonicalLabel: the display label AM4-Edit shows on its UI
|
|
10
|
+
* (e.g. "Bright Cap" — used in tool descriptions and agent output
|
|
11
|
+
* so the agent's vocabulary matches what the user reads on screen)
|
|
12
|
+
*
|
|
13
|
+
* This module is a strict refinement layer over paramNames.ts: the
|
|
14
|
+
* underlying wire IDs are unchanged. Only labels and parameterNames
|
|
15
|
+
* are added. Coverage is reached via four passes: display-label
|
|
16
|
+
* match, positional alignment (GEQ/PEQ band patterns), resolver-
|
|
17
|
+
* direct fallback for entries the AM4-Edit dispatcher binds, and a
|
|
18
|
+
* universal block-level register fallback (mix/balance/level/bypass)
|
|
19
|
+
* for wire registers AM4-Edit does not surface in every block UI.
|
|
20
|
+
*/
|
|
21
|
+
export const PARAMETER_BRIDGE_FIRMWARE = 'AM4-Edit Mar 20 2026 build';
|
|
22
|
+
export const PARAMETER_BRIDGE = {
|
|
23
|
+
amp: {
|
|
24
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
25
|
+
"bass": { parameterName: "DISTORT_BASS", canonicalLabel: "Bass" },
|
|
26
|
+
"bright_cap": { parameterName: "DISTORT_BRIGHTCAP", canonicalLabel: "Bright Cap" },
|
|
27
|
+
"compressor_amount": { parameterName: "DISTORT_COMPRESSION", canonicalLabel: "Amount" },
|
|
28
|
+
"compressor_clarity": { parameterName: "DISTORT_CLARITY", canonicalLabel: "Clarity" },
|
|
29
|
+
"compressor_threshold": { parameterName: "DISTORT_THRESHOLD", canonicalLabel: "Threshold" },
|
|
30
|
+
"depth": { parameterName: "DISTORT_DEPTH", canonicalLabel: "Depth" },
|
|
31
|
+
"gain": { parameterName: "DISTORT_DRIVE", canonicalLabel: "Gain" },
|
|
32
|
+
"geq_band_1": { parameterName: "DISTORT_EQ1", canonicalLabel: "Low" },
|
|
33
|
+
"geq_band_2": { parameterName: "DISTORT_EQ2", canonicalLabel: "Mid" },
|
|
34
|
+
"geq_band_3": { parameterName: "DISTORT_EQ3", canonicalLabel: "Treble" },
|
|
35
|
+
"geq_band_4": { parameterName: "DISTORT_EQ4", canonicalLabel: "Presence" },
|
|
36
|
+
"geq_band_5": { parameterName: "DISTORT_EQ5", canonicalLabel: "1K" },
|
|
37
|
+
"geq_band_6": { parameterName: "DISTORT_EQ6", canonicalLabel: "2K" },
|
|
38
|
+
"geq_band_7": { parameterName: "DISTORT_EQ7", canonicalLabel: "4K" },
|
|
39
|
+
"geq_band_8": { parameterName: "DISTORT_EQ8", canonicalLabel: "8K" },
|
|
40
|
+
"high_treble": { parameterName: "DISTORT_HITREBLE", canonicalLabel: "High Treble" },
|
|
41
|
+
"input_trim": { parameterName: "DISTORT_TRIM", canonicalLabel: "Input Trim" },
|
|
42
|
+
"master": { parameterName: "DISTORT_MASTER", canonicalLabel: "Master" },
|
|
43
|
+
"master_vol_trim": { parameterName: "DISTORT_MVTRIM", canonicalLabel: "Master Vol Trim" },
|
|
44
|
+
"mid": { parameterName: "DISTORT_MID", canonicalLabel: "Mid" },
|
|
45
|
+
"out_boost_level": { parameterName: "BLOCK_OUTBOOSTDB", canonicalLabel: "Out Boost Level" },
|
|
46
|
+
"presence": { parameterName: "DISTORT_PRESENCE", canonicalLabel: "Presence" },
|
|
47
|
+
"treble": { parameterName: "DISTORT_TREBLE", canonicalLabel: "Treble" },
|
|
48
|
+
"type": { parameterName: "DISTORT_TYPE", canonicalLabel: "Type" },
|
|
49
|
+
},
|
|
50
|
+
chorus: {
|
|
51
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
52
|
+
"depth": { parameterName: "CHORUS_DEPTH", canonicalLabel: "Depth" },
|
|
53
|
+
"drive": { parameterName: "CHORUS_DRIVE", canonicalLabel: "Drive" },
|
|
54
|
+
"high_cut": { parameterName: "CHORUS_HICUT", canonicalLabel: "High Cut" },
|
|
55
|
+
"lfo_depth_2": { parameterName: "CHORUS_SPREAD", canonicalLabel: "Stereo Spread" },
|
|
56
|
+
"lfo_freq": { parameterName: "CHORUS_LOWCUT", canonicalLabel: "Low Cut" },
|
|
57
|
+
"lfo_phase_pct": { parameterName: "CHORUS_WIDTH", canonicalLabel: "Right\nTime Ratio" },
|
|
58
|
+
"lfo_rate": { parameterName: "CHORUS_RATE2", canonicalLabel: "Rate Right" },
|
|
59
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
60
|
+
"number_of_voices": { parameterName: "CHORUS_VOICES", canonicalLabel: "Number of Voices" },
|
|
61
|
+
"rate": { parameterName: "CHORUS_RATE", canonicalLabel: "Rate" },
|
|
62
|
+
"type": { parameterName: "CHORUS_TYPE", canonicalLabel: "CHORUS_TYPE" },
|
|
63
|
+
"width": { parameterName: "CHORUS_DEPTH2", canonicalLabel: "LFO 2 Depth" },
|
|
64
|
+
},
|
|
65
|
+
compressor: {
|
|
66
|
+
"attack": { parameterName: "COMP_ATTACK", canonicalLabel: "Attack" },
|
|
67
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
68
|
+
"drive": { parameterName: "COMP_DRIVE", canonicalLabel: "Drive" },
|
|
69
|
+
"emphasis": { parameterName: "COMP_EMPHASIS", canonicalLabel: "Emphasis" },
|
|
70
|
+
"look_ahead_time": { parameterName: "COMP_DELAYTIME", canonicalLabel: "Look-Ahead Time" },
|
|
71
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
72
|
+
"ratio": { parameterName: "COMP_RATIO", canonicalLabel: "Ratio" },
|
|
73
|
+
"release": { parameterName: "COMP_RELEASE", canonicalLabel: "Release Time" },
|
|
74
|
+
"sidechain_emphasis_freq": { parameterName: "COMP_EMPHFREQ", canonicalLabel: "Emphasis Freq" },
|
|
75
|
+
"sidechain_frequency": { parameterName: "COMP_FREQ", canonicalLabel: "Frequency" },
|
|
76
|
+
"sidechain_gain": { parameterName: "COMP_GAIN", canonicalLabel: "Gain" },
|
|
77
|
+
"sidechain_high_cut": { parameterName: "COMP_HIGHCUT", canonicalLabel: "High Cut" },
|
|
78
|
+
"sidechain_low_cut": { parameterName: "COMP_LOWCUT", canonicalLabel: "Low Cut" },
|
|
79
|
+
"sidechain_q": { parameterName: "COMP_Q", canonicalLabel: "Q" },
|
|
80
|
+
"threshold": { parameterName: "COMP_THRESH", canonicalLabel: "Threshold" },
|
|
81
|
+
"type": { parameterName: "COMP_TYPE", canonicalLabel: "COMP_TYPE" },
|
|
82
|
+
},
|
|
83
|
+
delay: {
|
|
84
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
85
|
+
"bit_reduction": { parameterName: "DELAY_BITREDUCE", canonicalLabel: "Bit Reduction" },
|
|
86
|
+
"compander_threshold": { parameterName: "DELAY_COMPTHRESH", canonicalLabel: "Threshold" },
|
|
87
|
+
"compander_time": { parameterName: "DELAY_COMPTIME", canonicalLabel: "Time" },
|
|
88
|
+
"diffusion_time": { parameterName: "DELAY_DIFFTIME", canonicalLabel: "Diffusion Time" },
|
|
89
|
+
"diffusor": { parameterName: "DELAY_DIFFUSE", canonicalLabel: "Diffuser" },
|
|
90
|
+
"ducker_release": { parameterName: "DELAY_RELEASE", canonicalLabel: "Release" },
|
|
91
|
+
"ducker_threshold": { parameterName: "DELAY_THRESH", canonicalLabel: "Threshold" },
|
|
92
|
+
"ducking": { parameterName: "DELAY_ATTEN", canonicalLabel: "Ducking" },
|
|
93
|
+
"eq_freq_1": { parameterName: "DELAY_FREQ1", canonicalLabel: "Frequency 1" },
|
|
94
|
+
"eq_freq_2": { parameterName: "DELAY_FREQ2", canonicalLabel: "Frequency 2" },
|
|
95
|
+
"eq_gain_1": { parameterName: "DELAY_GAIN1", canonicalLabel: "Gain 1" },
|
|
96
|
+
"eq_gain_2": { parameterName: "DELAY_GAIN2", canonicalLabel: "Gain 2" },
|
|
97
|
+
"eq_q_1": { parameterName: "DELAY_Q1", canonicalLabel: "Q 1" },
|
|
98
|
+
"eq_q_2": { parameterName: "DELAY_Q2", canonicalLabel: "Q 2" },
|
|
99
|
+
"eq_q_high_low": { parameterName: "DELAY_FILTERQ", canonicalLabel: "Q (High + Low)" },
|
|
100
|
+
"feedback": { parameterName: "DELAY_FEED", canonicalLabel: "Feedback" },
|
|
101
|
+
"feedback_r": { parameterName: "DELAY_FEEDR", canonicalLabel: "Feedback R" },
|
|
102
|
+
"high_cut": { parameterName: "DELAY_HICUT", canonicalLabel: "High Cut" },
|
|
103
|
+
"hold_feedback": { parameterName: "DELAY_HOLDFDBK", canonicalLabel: "Hold Feedback" },
|
|
104
|
+
"input_gain": { parameterName: "DELAY_GAIN", canonicalLabel: "Input Gain" },
|
|
105
|
+
"lfo_depth": { parameterName: "DELAY_DIFFDEPTH", canonicalLabel: "LFO Depth" },
|
|
106
|
+
"lfo_rate": { parameterName: "DELAY_DIFFRATE", canonicalLabel: "LFO Rate" },
|
|
107
|
+
"low_cut": { parameterName: "DELAY_LOCUT", canonicalLabel: "Low Cut" },
|
|
108
|
+
"lr_time_ratio": { parameterName: "DELAY_RATIO", canonicalLabel: "L/R Time Ratio" },
|
|
109
|
+
"master_feedback": { parameterName: "DELAY_MSTRFDBK", canonicalLabel: "Master Feedback" },
|
|
110
|
+
"master_time": { parameterName: "DELAY_MSTRTIME", canonicalLabel: "Master Time" },
|
|
111
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
112
|
+
"motor_speed": { parameterName: "DELAY_SPEED", canonicalLabel: "Motor\nSpeed" },
|
|
113
|
+
"stack_feedback": { parameterName: "DELAY_STACKFDBK", canonicalLabel: "Stack Feedback" },
|
|
114
|
+
"stereo_spread": { parameterName: "DELAY_SPREAD", canonicalLabel: "Stereo Spread" },
|
|
115
|
+
"time": { parameterName: "DELAY_TIME", canonicalLabel: "Time" },
|
|
116
|
+
"type": { parameterName: "DELAY_MODEL", canonicalLabel: "DELAY_MODEL" },
|
|
117
|
+
},
|
|
118
|
+
drive: {
|
|
119
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
120
|
+
"bass": { parameterName: "FUZZ_LOW", canonicalLabel: "Bass" },
|
|
121
|
+
"bit_reduce": { parameterName: "FUZZ_BITREDUCE", canonicalLabel: "Bit Reduce" },
|
|
122
|
+
"drive": { parameterName: "FUZZ_DRIVE", canonicalLabel: "Drive" },
|
|
123
|
+
"geq_band_1": { parameterName: "FUZZ_EQ1", canonicalLabel: "100" },
|
|
124
|
+
"geq_band_10": { parameterName: "FUZZ_EQ10", canonicalLabel: "6400" },
|
|
125
|
+
"geq_band_2": { parameterName: "FUZZ_EQ2", canonicalLabel: "160" },
|
|
126
|
+
"geq_band_3": { parameterName: "FUZZ_EQ3", canonicalLabel: "250" },
|
|
127
|
+
"geq_band_4": { parameterName: "FUZZ_EQ4", canonicalLabel: "400" },
|
|
128
|
+
"geq_band_5": { parameterName: "FUZZ_EQ5", canonicalLabel: "640" },
|
|
129
|
+
"geq_band_6": { parameterName: "FUZZ_EQ6", canonicalLabel: "1000" },
|
|
130
|
+
"geq_band_7": { parameterName: "FUZZ_EQ7", canonicalLabel: "1600" },
|
|
131
|
+
"geq_band_8": { parameterName: "FUZZ_EQ8", canonicalLabel: "2500" },
|
|
132
|
+
"geq_band_9": { parameterName: "FUZZ_EQ9", canonicalLabel: "4000" },
|
|
133
|
+
"high_cut": { parameterName: "FUZZ_HICUT", canonicalLabel: "High Cut" },
|
|
134
|
+
"high_mid": { parameterName: "FUZZ_HIMID", canonicalLabel: "High Mid" },
|
|
135
|
+
"level": { parameterName: "FUZZ_LEVEL", canonicalLabel: "Level" },
|
|
136
|
+
"low_cut": { parameterName: "FUZZ_LOCUT", canonicalLabel: "Low Cut" },
|
|
137
|
+
"mid": { parameterName: "FUZZ_MID", canonicalLabel: "Mid" },
|
|
138
|
+
"mid_freq": { parameterName: "FUZZ_MIDFREQ", canonicalLabel: "Mid Frequency" },
|
|
139
|
+
"mix": { parameterName: "FUZZ_MIX", canonicalLabel: "Blend" },
|
|
140
|
+
"tone": { parameterName: "FUZZ_TONE", canonicalLabel: "Tone" },
|
|
141
|
+
"treble": { parameterName: "FUZZ_TREBLE", canonicalLabel: "Treble" },
|
|
142
|
+
"type": { parameterName: "FUZZ_TYPE", canonicalLabel: "FUZZ_TYPE" },
|
|
143
|
+
},
|
|
144
|
+
enhancer: {
|
|
145
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
146
|
+
"depth": { parameterName: "ENHANCER_DEPTH", canonicalLabel: "Depth" },
|
|
147
|
+
"high_cut": { parameterName: "ENHANCER_HICUT", canonicalLabel: "High Cut" },
|
|
148
|
+
"low_cut": { parameterName: "ENHANCER_LOWCUT", canonicalLabel: "Low Cut" },
|
|
149
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
150
|
+
"type": { parameterName: "ENHANCER_TYPE", canonicalLabel: "ENHANCER_TYPE" },
|
|
151
|
+
"width": { parameterName: "ENHANCER_WIDTH", canonicalLabel: "Width" },
|
|
152
|
+
},
|
|
153
|
+
filter: {
|
|
154
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
155
|
+
"feedback": { parameterName: "FILTER_FEEDBACK", canonicalLabel: "Feedback" },
|
|
156
|
+
"freq": { parameterName: "FILTER_FREQ", canonicalLabel: "Frequency" },
|
|
157
|
+
"high_cut": { parameterName: "FILTER_HICUT", canonicalLabel: "High Cut" },
|
|
158
|
+
"low_cut": { parameterName: "FILTER_LOWCUT", canonicalLabel: "Low Cut" },
|
|
159
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
160
|
+
"order": { parameterName: "FILTER_APORDER", canonicalLabel: "Order" },
|
|
161
|
+
"sensitivity": { parameterName: "FILTER_SENS", canonicalLabel: "Sensitivity" },
|
|
162
|
+
"type": { parameterName: "FILTER_TYPE", canonicalLabel: "Type" },
|
|
163
|
+
},
|
|
164
|
+
flanger: {
|
|
165
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
166
|
+
"depth": { parameterName: "FLANGER_DEPTH", canonicalLabel: "Depth" },
|
|
167
|
+
"feedback": { parameterName: "FLANGER_FEEDBACK", canonicalLabel: "Feedback" },
|
|
168
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
169
|
+
"rate": { parameterName: "FLANGER_RATE", canonicalLabel: "Rate" },
|
|
170
|
+
"type": { parameterName: "FLANGER_TYPE", canonicalLabel: "FLANGER_TYPE" },
|
|
171
|
+
},
|
|
172
|
+
gate: {
|
|
173
|
+
"attack": { parameterName: "GATE_ATTACK", canonicalLabel: "Attack" },
|
|
174
|
+
"attenuation": { parameterName: "GATE_RANGE", canonicalLabel: "Attenuation" },
|
|
175
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
176
|
+
"hold": { parameterName: "GATE_HOLD", canonicalLabel: "Hold" },
|
|
177
|
+
"release": { parameterName: "GATE_RELEASE", canonicalLabel: "Release" },
|
|
178
|
+
"threshold": { parameterName: "GATE_THRESH", canonicalLabel: "Threshold" },
|
|
179
|
+
"type": { parameterName: "GATE_TYPE", canonicalLabel: "GATE_TYPE" },
|
|
180
|
+
},
|
|
181
|
+
geq: {
|
|
182
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
183
|
+
"band_1": { parameterName: "GEQ_GAIN1", canonicalLabel: "100" },
|
|
184
|
+
"band_10": { parameterName: "GEQ_GAIN10", canonicalLabel: "16k" },
|
|
185
|
+
"band_2": { parameterName: "GEQ_GAIN2", canonicalLabel: "160" },
|
|
186
|
+
"band_3": { parameterName: "GEQ_GAIN3", canonicalLabel: "400" },
|
|
187
|
+
"band_4": { parameterName: "GEQ_GAIN4", canonicalLabel: "800" },
|
|
188
|
+
"band_5": { parameterName: "GEQ_GAIN5", canonicalLabel: "500" },
|
|
189
|
+
"band_6": { parameterName: "GEQ_GAIN6", canonicalLabel: "1k" },
|
|
190
|
+
"band_7": { parameterName: "GEQ_GAIN7", canonicalLabel: "2k" },
|
|
191
|
+
"band_8": { parameterName: "GEQ_GAIN8", canonicalLabel: "4k" },
|
|
192
|
+
"band_9": { parameterName: "GEQ_GAIN9", canonicalLabel: "8k" },
|
|
193
|
+
"master_q": { parameterName: "GEQ_MASTERQ", canonicalLabel: "Master Q" },
|
|
194
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
195
|
+
"type": { parameterName: "GEQ_TYPE", canonicalLabel: "GEQ_TYPE" },
|
|
196
|
+
},
|
|
197
|
+
peq: {
|
|
198
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
199
|
+
"channel_1_frequency": { parameterName: "PEQ_FREQ1", canonicalLabel: "Freq 1" },
|
|
200
|
+
"channel_1_gain": { parameterName: "PEQ_GAIN1", canonicalLabel: "Gain 1" },
|
|
201
|
+
"channel_1_q": { parameterName: "PEQ_Q1", canonicalLabel: "Q1" },
|
|
202
|
+
"channel_2_frequency": { parameterName: "PEQ_FREQ2", canonicalLabel: "Freq 2" },
|
|
203
|
+
"channel_2_gain": { parameterName: "PEQ_GAIN2", canonicalLabel: "Gain 2" },
|
|
204
|
+
"channel_2_q": { parameterName: "PEQ_Q2", canonicalLabel: "Q2" },
|
|
205
|
+
"channel_3_frequency": { parameterName: "PEQ_FREQ3", canonicalLabel: "Freq 3" },
|
|
206
|
+
"channel_3_gain": { parameterName: "PEQ_GAIN3", canonicalLabel: "Gain 3" },
|
|
207
|
+
"channel_3_q": { parameterName: "PEQ_Q3", canonicalLabel: "Q3" },
|
|
208
|
+
"channel_4_frequency": { parameterName: "PEQ_FREQ4", canonicalLabel: "Freq 4" },
|
|
209
|
+
"channel_4_gain": { parameterName: "PEQ_GAIN4", canonicalLabel: "Gain 4" },
|
|
210
|
+
"channel_4_q": { parameterName: "PEQ_Q4", canonicalLabel: "Q4" },
|
|
211
|
+
"channel_5_frequency": { parameterName: "PEQ_FREQ5", canonicalLabel: "Freq 5" },
|
|
212
|
+
"channel_5_gain": { parameterName: "PEQ_GAIN5", canonicalLabel: "Gain 5" },
|
|
213
|
+
"channel_5_q": { parameterName: "PEQ_Q5", canonicalLabel: "Q5" },
|
|
214
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
215
|
+
},
|
|
216
|
+
phaser: {
|
|
217
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
218
|
+
"feedback": { parameterName: "PHASER_FEEDBACK", canonicalLabel: "Feedback" },
|
|
219
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
220
|
+
"rate": { parameterName: "PHASER_RATE", canonicalLabel: "Rate" },
|
|
221
|
+
"type": { parameterName: "PHASER_TYPE", canonicalLabel: "Type" },
|
|
222
|
+
},
|
|
223
|
+
reverb: {
|
|
224
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
225
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
226
|
+
"shift_1": { parameterName: "REVERB_SHIFT1", canonicalLabel: "Voice 1 Shift" },
|
|
227
|
+
"shift_2": { parameterName: "REVERB_SHIFT2", canonicalLabel: "Voice 2 Shift" },
|
|
228
|
+
"size": { parameterName: "REVERB_SIZE", canonicalLabel: "Size" },
|
|
229
|
+
"spring_tone": { parameterName: "REVERB_TONE", canonicalLabel: "Tone" },
|
|
230
|
+
"springs": { parameterName: "REVERB_NUMSPRINGS", canonicalLabel: "# of Springs" },
|
|
231
|
+
"time": { parameterName: "REVERB_TIME", canonicalLabel: "Time" },
|
|
232
|
+
"type": { parameterName: "REVERB_TYPE", canonicalLabel: "REVERB_TYPE" },
|
|
233
|
+
},
|
|
234
|
+
rotary: {
|
|
235
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
236
|
+
"drive": { parameterName: "ROTARY_DRIVE", canonicalLabel: "Drive" },
|
|
237
|
+
"high_depth": { parameterName: "ROTARY_HFDEPTH", canonicalLabel: "High Depth" },
|
|
238
|
+
"high_level": { parameterName: "ROTARY_HFLEVEL", canonicalLabel: "High Level" },
|
|
239
|
+
"high_time_constant": { parameterName: "ROTARY_HIGHTIME", canonicalLabel: "High Time Constant" },
|
|
240
|
+
"low_depth": { parameterName: "ROTARY_LFDEPTH", canonicalLabel: "Low Depth" },
|
|
241
|
+
"low_rate_multiplier": { parameterName: "ROTARY_LOWRATE", canonicalLabel: "Low Rate Multiplier" },
|
|
242
|
+
"low_time_constant": { parameterName: "ROTARY_LOWTIME", canonicalLabel: "Low Time Constant" },
|
|
243
|
+
"mic_distance": { parameterName: "ROTARY_MICDIST", canonicalLabel: "Mic Distance" },
|
|
244
|
+
"mic_spacing": { parameterName: "ROTARY_WIDTH", canonicalLabel: "Mic\nSpacing" },
|
|
245
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
246
|
+
"rate": { parameterName: "ROTARY_RATE", canonicalLabel: "Rate" },
|
|
247
|
+
"rotor_length": { parameterName: "ROTARY_HFLENGTH", canonicalLabel: "Rotor Length" },
|
|
248
|
+
"stereo_spread": { parameterName: "ROTARY_SPREAD", canonicalLabel: "Stereo Spread" },
|
|
249
|
+
},
|
|
250
|
+
tremolo: {
|
|
251
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
252
|
+
"depth": { parameterName: "TREMOLO_DEPTH", canonicalLabel: "Depth" },
|
|
253
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
254
|
+
"rate": { parameterName: "TREMOLO_RATE", canonicalLabel: "Rate" },
|
|
255
|
+
"type": { parameterName: "TREMOLO_TYPE", canonicalLabel: "Type" },
|
|
256
|
+
},
|
|
257
|
+
volpan: {
|
|
258
|
+
"attack": { parameterName: "VOLUME_ATTACK", canonicalLabel: "Attack" },
|
|
259
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
260
|
+
"mode": { parameterName: "VOLUME_TYPE", canonicalLabel: "VOLUME_TYPE" },
|
|
261
|
+
"threshold": { parameterName: "VOLUME_THRESHOLD", canonicalLabel: "Threshold" },
|
|
262
|
+
},
|
|
263
|
+
wah: {
|
|
264
|
+
"balance": { parameterName: "BLOCK_PAN", canonicalLabel: "Balance" },
|
|
265
|
+
"drive": { parameterName: "WAH_DRIVE", canonicalLabel: "Drive" },
|
|
266
|
+
"fat": { parameterName: "WAH_MIX", canonicalLabel: "Fat" },
|
|
267
|
+
"graphic_eq_band_1": { parameterName: "WAH_EQ1", canonicalLabel: "160" },
|
|
268
|
+
"graphic_eq_band_2": { parameterName: "WAH_EQ2", canonicalLabel: "250" },
|
|
269
|
+
"graphic_eq_band_3": { parameterName: "WAH_EQ3", canonicalLabel: "400" },
|
|
270
|
+
"graphic_eq_band_4": { parameterName: "WAH_EQ4", canonicalLabel: "640" },
|
|
271
|
+
"graphic_eq_band_5": { parameterName: "WAH_EQ5", canonicalLabel: "1000" },
|
|
272
|
+
"graphic_eq_band_6": { parameterName: "WAH_EQ6", canonicalLabel: "1600" },
|
|
273
|
+
"graphic_eq_band_7": { parameterName: "WAH_EQ7", canonicalLabel: "2500" },
|
|
274
|
+
"graphic_eq_band_8": { parameterName: "WAH_EQ8", canonicalLabel: "4000" },
|
|
275
|
+
"inductor_bias": { parameterName: "WAH_BIAS", canonicalLabel: "Inductor Bias" },
|
|
276
|
+
"low_cut_frequency": { parameterName: "WAH_HPF", canonicalLabel: "Low Cut Frequency" },
|
|
277
|
+
"max_frequency": { parameterName: "WAH_FSTOP", canonicalLabel: "Maximum Frequency" },
|
|
278
|
+
"min_frequency": { parameterName: "WAH_FSTART", canonicalLabel: "Minimum Frequency" },
|
|
279
|
+
"mix": { parameterName: "BLOCK_MIX", canonicalLabel: "Mix" },
|
|
280
|
+
"q_resonance": { parameterName: "WAH_Q", canonicalLabel: "Resonance" },
|
|
281
|
+
"q_tracking": { parameterName: "WAH_TRACK", canonicalLabel: "Q Tracking " },
|
|
282
|
+
"type": { parameterName: "WAH_TYPE", canonicalLabel: "WAH_TYPE" },
|
|
283
|
+
"wah_control": { parameterName: "WAH_CONTROL", canonicalLabel: "Wah Control" },
|
|
284
|
+
},
|
|
285
|
+
};
|
|
286
|
+
/**
|
|
287
|
+
* Resolve the AM4-Edit canonical display label and symbolic
|
|
288
|
+
* parameterName for a (block, name) pair from paramNames.ts.
|
|
289
|
+
*
|
|
290
|
+
* Returns undefined if the (block, name) has no XML correspondence
|
|
291
|
+
* yet — the caller should fall back to the snake_case name from
|
|
292
|
+
* paramNames.ts as the display label.
|
|
293
|
+
*/
|
|
294
|
+
export function resolveBridge(block, name) {
|
|
295
|
+
return PARAMETER_BRIDGE[block]?.[name];
|
|
296
|
+
}
|
|
297
|
+
/** Canonical label for a (block, name), or the original `name`. */
|
|
298
|
+
export function preferredDisplayLabel(block, name) {
|
|
299
|
+
return PARAMETER_BRIDGE[block]?.[name]?.canonicalLabel ?? name;
|
|
300
|
+
}
|