@openmixer/omx-contract 2.1.0 → 2.3.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/README.md +18 -2
- package/data/kernels/comp.json +31 -0
- package/data/kernels/delay.json +16 -0
- package/data/kernels/drive.json +44 -0
- package/data/kernels/eq.json +105 -49
- package/data/kernels/geq.json +2 -1
- package/data/kernels/trim.json +27 -0
- package/data/primitives.json +0 -14
- package/dist/ts/omx-contract.d.ts +112 -45
- package/dist/ts/omx-contract.js +148 -52
- package/include/omxcontract/omx_contract_limits.h +60 -0
- package/lib/data.mjs +46 -12
- package/lib/validate.mjs +37 -4
- package/package.json +1 -1
- package/schema/omx-contract.schema.json +2 -2
- package/share/omx-contract/omx-contract.json +296 -86
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openmixer/omx-contract",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"items": {
|
|
5
5
|
"PAN_RANGE": {
|
|
6
6
|
"rel": "data/kernels/balance.json",
|
|
@@ -269,6 +269,36 @@
|
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
271
|
},
|
|
272
|
+
"COMP_KINDS": {
|
|
273
|
+
"rel": "data/kernels/comp.json",
|
|
274
|
+
"kind": "set",
|
|
275
|
+
"doc": "The compressor's character, which picks its detector: `comp` runs the RMS detector, `limiter` the peak detector. The console's comp row carries it (`CompState.kind`, `COMP_KINDS`) and comes up as `comp`.",
|
|
276
|
+
"default": "comp",
|
|
277
|
+
"labels": [
|
|
278
|
+
"Compressor",
|
|
279
|
+
"Limiter"
|
|
280
|
+
],
|
|
281
|
+
"value": [
|
|
282
|
+
"comp",
|
|
283
|
+
"limiter"
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
"DETECTOR_OVERSAMPLINGS": {
|
|
287
|
+
"rel": "data/kernels/comp.json",
|
|
288
|
+
"kind": "set",
|
|
289
|
+
"doc": "The compressor's detector oversampling: `auto` runs the control path at 4x only while the attack is faster than DETECTOR_OVERSAMPLE_AUTO_MS, `off` never, `x4` always (omx-dsp's OMX_DYN_OVS_AUTO, _OFF and _X4, in that order). The console's comp row carries it as the operator's choice (`CompState.detectorOversampling`, spelled auto, off, 4x) and comes up `auto`.",
|
|
290
|
+
"default": "auto",
|
|
291
|
+
"labels": [
|
|
292
|
+
"Auto",
|
|
293
|
+
"Off",
|
|
294
|
+
"4x"
|
|
295
|
+
],
|
|
296
|
+
"value": [
|
|
297
|
+
"auto",
|
|
298
|
+
"off",
|
|
299
|
+
"x4"
|
|
300
|
+
]
|
|
301
|
+
},
|
|
272
302
|
"PROGRAM_RELEASE": {
|
|
273
303
|
"rel": "data/kernels/comp.json",
|
|
274
304
|
"kind": "sheet",
|
|
@@ -465,6 +495,20 @@
|
|
|
465
495
|
}
|
|
466
496
|
}
|
|
467
497
|
},
|
|
498
|
+
"DELAY_PINGPONGS": {
|
|
499
|
+
"rel": "data/kernels/delay.json",
|
|
500
|
+
"kind": "set",
|
|
501
|
+
"doc": "The FX delay's PING-PONG switch: on cross-feeds the two legs' feedback, so each leg's repeats come from the other leg's damped tap and the echoes bounce L<->R (`omx_delay.h`'s `struct omx_fx_delay.pingpong`, read where the feedback is formed). A live control on the console's delay row (`DelayState.pingpong`) and on the omx-delay plugin. Its come-up value is FX_DELAY_PINGPONG_DEFAULT, by reference, so the default keeps one home.",
|
|
502
|
+
"default": "off",
|
|
503
|
+
"labels": [
|
|
504
|
+
"Off",
|
|
505
|
+
"On"
|
|
506
|
+
],
|
|
507
|
+
"value": [
|
|
508
|
+
"off",
|
|
509
|
+
"on"
|
|
510
|
+
]
|
|
511
|
+
},
|
|
468
512
|
"FX_DELAY_PINGPONG_DEFAULT": {
|
|
469
513
|
"rel": "data/kernels/delay.json",
|
|
470
514
|
"kind": "scalar",
|
|
@@ -594,6 +638,50 @@
|
|
|
594
638
|
"tilt"
|
|
595
639
|
]
|
|
596
640
|
},
|
|
641
|
+
"DRIVE_AUTO_GAINS": {
|
|
642
|
+
"rel": "data/kernels/drive.json",
|
|
643
|
+
"kind": "set",
|
|
644
|
+
"doc": "The drive's AUTO-GAIN switch: on, the stage measures its own level change and matches it out (`omx_drive.h`'s `struct omx_drive.auto_gain`, drive-stage spec §4d), so turning the drive up adds colour rather than loudness. A field of the console's drive row (`DriveState.autoGain`), on at come-up there and in omx-dsp's drive face.",
|
|
645
|
+
"default": "on",
|
|
646
|
+
"labels": [
|
|
647
|
+
"Off",
|
|
648
|
+
"On"
|
|
649
|
+
],
|
|
650
|
+
"value": [
|
|
651
|
+
"off",
|
|
652
|
+
"on"
|
|
653
|
+
]
|
|
654
|
+
},
|
|
655
|
+
"DRIVE_STEREO_LINKS": {
|
|
656
|
+
"rel": "data/kernels/drive.json",
|
|
657
|
+
"kind": "set",
|
|
658
|
+
"doc": "The drive's STEREO LINK switch: on, ONE auto-gain path is driven by both legs' summed energy, so the image cannot shift under the level match; off, each leg matches its own (`omx_drive.h`'s `struct omx_drive.stereo_link`, spec §4e). A field of the console's drive row (`DriveState.stereoLink`), on at come-up there and in omx-dsp's drive face.",
|
|
659
|
+
"default": "on",
|
|
660
|
+
"labels": [
|
|
661
|
+
"Off",
|
|
662
|
+
"On"
|
|
663
|
+
],
|
|
664
|
+
"value": [
|
|
665
|
+
"off",
|
|
666
|
+
"on"
|
|
667
|
+
]
|
|
668
|
+
},
|
|
669
|
+
"DRIVE_HF_ROLLOFFS": {
|
|
670
|
+
"rel": "data/kernels/drive.json",
|
|
671
|
+
"kind": "set",
|
|
672
|
+
"doc": "The drive's post-curve HIGH-FREQUENCY ROLL-OFF corner, in Hz: the id is the corner, and 0 names no roll-off (the section does not run: `omx_drive.h`'s `struct omx_drive.hf_on` is 0). The console's drive row offers off, 12000 and 16000 (`DriveState.hfRolloff`, `DRIVE_HF_ROLLOFFS`) and comes up off, as omx-dsp's drive face does.",
|
|
673
|
+
"default": 0,
|
|
674
|
+
"labels": [
|
|
675
|
+
"Off",
|
|
676
|
+
"12 kHz",
|
|
677
|
+
"16 kHz"
|
|
678
|
+
],
|
|
679
|
+
"value": [
|
|
680
|
+
0,
|
|
681
|
+
12000,
|
|
682
|
+
16000
|
|
683
|
+
]
|
|
684
|
+
},
|
|
597
685
|
"DRIVE_BIAS_MAX": {
|
|
598
686
|
"rel": "data/kernels/drive.json",
|
|
599
687
|
"kind": "scalar",
|
|
@@ -601,6 +689,90 @@
|
|
|
601
689
|
"unit": "",
|
|
602
690
|
"value": 0.7071067811865476
|
|
603
691
|
},
|
|
692
|
+
"EQ_HPF_ONS": {
|
|
693
|
+
"rel": "data/kernels/eq.json",
|
|
694
|
+
"kind": "set",
|
|
695
|
+
"doc": "The HPF's switch: off, the filter is not in the EQ's bank at all; on, its one or two Butterworth sections run after the bands. It comes up off, on the console's channel EQ and in omx-dsp's EQ face (see EQ_PASS_FILTER_DEFAULTS).",
|
|
696
|
+
"default": "off",
|
|
697
|
+
"labels": [
|
|
698
|
+
"Off",
|
|
699
|
+
"On"
|
|
700
|
+
],
|
|
701
|
+
"value": [
|
|
702
|
+
"off",
|
|
703
|
+
"on"
|
|
704
|
+
]
|
|
705
|
+
},
|
|
706
|
+
"HPF_FREQ_RANGE": {
|
|
707
|
+
"rel": "data/kernels/eq.json",
|
|
708
|
+
"kind": "travels",
|
|
709
|
+
"doc": "Where the HPF cutoff can sit (low end); mirrors the drawn low-frequency handle.",
|
|
710
|
+
"shape": "travel",
|
|
711
|
+
"value": {
|
|
712
|
+
"min": 20,
|
|
713
|
+
"max": 1000,
|
|
714
|
+
"step": 10,
|
|
715
|
+
"unit": "Hz"
|
|
716
|
+
}
|
|
717
|
+
},
|
|
718
|
+
"FILTER_SLOPES": {
|
|
719
|
+
"rel": "data/kernels/eq.json",
|
|
720
|
+
"kind": "set",
|
|
721
|
+
"doc": "The pass-filter slopes the EQ offers, in dB per octave: the HPF's slope, and by use the LPF's. The id is the slope: 12 is one maximally flat section, 24 the two-section Butterworth.",
|
|
722
|
+
"default": 12,
|
|
723
|
+
"value": [
|
|
724
|
+
12,
|
|
725
|
+
24
|
|
726
|
+
]
|
|
727
|
+
},
|
|
728
|
+
"EQ_LPF_ONS": {
|
|
729
|
+
"rel": "data/kernels/eq.json",
|
|
730
|
+
"kind": "set",
|
|
731
|
+
"doc": "The LPF's switch: off, the filter is not in the EQ's bank at all; on, its one or two Butterworth sections run after the bands and the HPF. It comes up off, on the console's channel EQ and in omx-dsp's EQ face (see EQ_PASS_FILTER_DEFAULTS).",
|
|
732
|
+
"default": "off",
|
|
733
|
+
"labels": [
|
|
734
|
+
"Off",
|
|
735
|
+
"On"
|
|
736
|
+
],
|
|
737
|
+
"value": [
|
|
738
|
+
"off",
|
|
739
|
+
"on"
|
|
740
|
+
]
|
|
741
|
+
},
|
|
742
|
+
"LPF_FREQ_RANGE": {
|
|
743
|
+
"rel": "data/kernels/eq.json",
|
|
744
|
+
"kind": "travels",
|
|
745
|
+
"doc": "Where the LPF cutoff can sit (high end).",
|
|
746
|
+
"shape": "travel",
|
|
747
|
+
"value": {
|
|
748
|
+
"min": 1000,
|
|
749
|
+
"max": 20000,
|
|
750
|
+
"step": 10,
|
|
751
|
+
"unit": "Hz"
|
|
752
|
+
}
|
|
753
|
+
},
|
|
754
|
+
"EQ_BAND_TYPES": {
|
|
755
|
+
"rel": "data/kernels/eq.json",
|
|
756
|
+
"kind": "set",
|
|
757
|
+
"doc": "The generic EQ band shapes, in the order a picker offers them and in the order of the integer a plugin host sees on a band type port. The id is the name; the position is the value. A bell is the shape a band added by the operator starts as.",
|
|
758
|
+
"default": "bell",
|
|
759
|
+
"labels": [
|
|
760
|
+
"Bell",
|
|
761
|
+
"Low Shelf",
|
|
762
|
+
"High Shelf",
|
|
763
|
+
"Notch",
|
|
764
|
+
"All-pass 1st",
|
|
765
|
+
"All-pass 2nd"
|
|
766
|
+
],
|
|
767
|
+
"value": [
|
|
768
|
+
"bell",
|
|
769
|
+
"lowShelf",
|
|
770
|
+
"highShelf",
|
|
771
|
+
"notch",
|
|
772
|
+
"allpass1",
|
|
773
|
+
"allpass2"
|
|
774
|
+
]
|
|
775
|
+
},
|
|
604
776
|
"EQ_FREQ_RANGE": {
|
|
605
777
|
"rel": "data/kernels/eq.json",
|
|
606
778
|
"kind": "travels",
|
|
@@ -649,60 +821,17 @@
|
|
|
649
821
|
"unit": ""
|
|
650
822
|
}
|
|
651
823
|
},
|
|
652
|
-
"
|
|
653
|
-
"rel": "data/kernels/eq.json",
|
|
654
|
-
"kind": "travels",
|
|
655
|
-
"doc": "Where the HPF cutoff can sit (low end); mirrors the drawn low-frequency handle.",
|
|
656
|
-
"shape": "travel",
|
|
657
|
-
"value": {
|
|
658
|
-
"min": 20,
|
|
659
|
-
"max": 1000,
|
|
660
|
-
"step": 10,
|
|
661
|
-
"unit": "Hz"
|
|
662
|
-
}
|
|
663
|
-
},
|
|
664
|
-
"LPF_FREQ_RANGE": {
|
|
665
|
-
"rel": "data/kernels/eq.json",
|
|
666
|
-
"kind": "travels",
|
|
667
|
-
"doc": "Where the LPF cutoff can sit (high end).",
|
|
668
|
-
"shape": "travel",
|
|
669
|
-
"value": {
|
|
670
|
-
"min": 1000,
|
|
671
|
-
"max": 20000,
|
|
672
|
-
"step": 10,
|
|
673
|
-
"unit": "Hz"
|
|
674
|
-
}
|
|
675
|
-
},
|
|
676
|
-
"EQ_BAND_TYPES": {
|
|
824
|
+
"EQ_BAND_ONS": {
|
|
677
825
|
"rel": "data/kernels/eq.json",
|
|
678
826
|
"kind": "set",
|
|
679
|
-
"doc": "
|
|
680
|
-
"default": "bell",
|
|
827
|
+
"doc": "A band's switch. Off, the band is not in the EQ's bank (the slots close up); on, it runs, parked when it is a gain-carrying shape at 0 dB. No come-up value is declared, because the strips differ: the console's channel EQ brings its default bands up on, an omx-eq plugin brings every band up off so a racked instance is a wire.",
|
|
681
828
|
"labels": [
|
|
682
|
-
"
|
|
683
|
-
"
|
|
684
|
-
"High Shelf",
|
|
685
|
-
"Notch",
|
|
686
|
-
"All-pass 1st",
|
|
687
|
-
"All-pass 2nd"
|
|
829
|
+
"Off",
|
|
830
|
+
"On"
|
|
688
831
|
],
|
|
689
832
|
"value": [
|
|
690
|
-
"
|
|
691
|
-
"
|
|
692
|
-
"highShelf",
|
|
693
|
-
"notch",
|
|
694
|
-
"allpass1",
|
|
695
|
-
"allpass2"
|
|
696
|
-
]
|
|
697
|
-
},
|
|
698
|
-
"FILTER_SLOPES": {
|
|
699
|
-
"rel": "data/kernels/eq.json",
|
|
700
|
-
"kind": "set",
|
|
701
|
-
"doc": "The pass-filter slopes the EQ offers, in dB per octave. The id is the slope: 12 is one maximally flat section, 24 the two-section Butterworth.",
|
|
702
|
-
"default": 12,
|
|
703
|
-
"value": [
|
|
704
|
-
12,
|
|
705
|
-
24
|
|
833
|
+
"off",
|
|
834
|
+
"on"
|
|
706
835
|
]
|
|
707
836
|
},
|
|
708
837
|
"EQ_MAX_BANDS": {
|
|
@@ -2151,6 +2280,36 @@
|
|
|
2151
2280
|
}
|
|
2152
2281
|
}
|
|
2153
2282
|
},
|
|
2283
|
+
"TRIM_RANGE": {
|
|
2284
|
+
"rel": "data/kernels/trim.json",
|
|
2285
|
+
"kind": "travels",
|
|
2286
|
+
"doc": "The digital input trim, in dB: the console's fine head gain, applied first in a channel's lane as a click-free ramp from the last block's gain to this one (openmixer's TRIM_RANGE, -24..+24 dB in 0.1 dB steps, spelled minDb/maxDb/stepDb there). It comes up at 0 dB, the trim a channel has when none is set. omx-dsp's trim face takes it as `trim_db`.",
|
|
2287
|
+
"shape": "travel",
|
|
2288
|
+
"value": {
|
|
2289
|
+
"min": -24,
|
|
2290
|
+
"max": 24,
|
|
2291
|
+
"step": 0.1,
|
|
2292
|
+
"unit": "dB",
|
|
2293
|
+
"default": 0,
|
|
2294
|
+
"defaultFrom": "desk"
|
|
2295
|
+
}
|
|
2296
|
+
},
|
|
2297
|
+
"TRIM_TRAVELS": {
|
|
2298
|
+
"rel": "data/kernels/trim.json",
|
|
2299
|
+
"kind": "travels",
|
|
2300
|
+
"doc": "The trim as a table with the one field `trimDb`, the name the trim row and the omx-strip plugin store; generated from the trim kernel's control, so the travel has one home.",
|
|
2301
|
+
"shape": "table",
|
|
2302
|
+
"value": {
|
|
2303
|
+
"trimDb": {
|
|
2304
|
+
"min": -24,
|
|
2305
|
+
"max": 24,
|
|
2306
|
+
"step": 0.1,
|
|
2307
|
+
"unit": "dB",
|
|
2308
|
+
"default": 0,
|
|
2309
|
+
"defaultFrom": "desk"
|
|
2310
|
+
}
|
|
2311
|
+
}
|
|
2312
|
+
},
|
|
2154
2313
|
"BUTTERWORTH_Q": {
|
|
2155
2314
|
"rel": "data/primitives.json",
|
|
2156
2315
|
"kind": "scalar",
|
|
@@ -2254,22 +2413,6 @@
|
|
|
2254
2413
|
}
|
|
2255
2414
|
}
|
|
2256
2415
|
},
|
|
2257
|
-
"TRIM_TRAVELS": {
|
|
2258
|
-
"rel": "data/primitives.json",
|
|
2259
|
-
"kind": "travels",
|
|
2260
|
-
"doc": "The digital input trim as a travel: openmixer's TRIM_RANGE (packages/declarations, -24..+24 dB in 0.1 dB steps, spelled minDb/maxDb/stepDb there and OMX_TRIM_RANGE_*_DB in omx-dsp's header), coming up at 0 dB, the trim a channel has when none is set. The omx-strip plugin's trim reads it. A table with the one field `trimDb`, the name the trim row and the plugin store; not rendered to C, which already spells TRIM_RANGE its own way.",
|
|
2261
|
-
"shape": "table",
|
|
2262
|
-
"value": {
|
|
2263
|
-
"trimDb": {
|
|
2264
|
-
"min": -24,
|
|
2265
|
-
"max": 24,
|
|
2266
|
-
"step": 0.1,
|
|
2267
|
-
"unit": "dB",
|
|
2268
|
-
"default": 0,
|
|
2269
|
-
"defaultFrom": "desk"
|
|
2270
|
-
}
|
|
2271
|
-
}
|
|
2272
|
-
},
|
|
2273
2416
|
"PARAM_SCALES": {
|
|
2274
2417
|
"rel": "data/primitives.json",
|
|
2275
2418
|
"kind": "set",
|
|
@@ -2486,6 +2629,16 @@
|
|
|
2486
2629
|
"kind": "travel",
|
|
2487
2630
|
"global": "COMP_LIMITS",
|
|
2488
2631
|
"table": "COMP_LIMITS"
|
|
2632
|
+
},
|
|
2633
|
+
{
|
|
2634
|
+
"name": "kind",
|
|
2635
|
+
"kind": "choice",
|
|
2636
|
+
"global": "COMP_KINDS"
|
|
2637
|
+
},
|
|
2638
|
+
{
|
|
2639
|
+
"name": "detectorOversampling",
|
|
2640
|
+
"kind": "choice",
|
|
2641
|
+
"global": "DETECTOR_OVERSAMPLINGS"
|
|
2489
2642
|
}
|
|
2490
2643
|
]
|
|
2491
2644
|
},
|
|
@@ -2554,6 +2707,11 @@
|
|
|
2554
2707
|
"name": "mix",
|
|
2555
2708
|
"kind": "travel",
|
|
2556
2709
|
"global": "DELAY_MIX_RANGE"
|
|
2710
|
+
},
|
|
2711
|
+
{
|
|
2712
|
+
"name": "pingpong",
|
|
2713
|
+
"kind": "choice",
|
|
2714
|
+
"global": "DELAY_PINGPONGS"
|
|
2557
2715
|
}
|
|
2558
2716
|
]
|
|
2559
2717
|
},
|
|
@@ -2593,50 +2751,92 @@
|
|
|
2593
2751
|
"name": "band",
|
|
2594
2752
|
"kind": "choice",
|
|
2595
2753
|
"global": "DRIVE_BANDS"
|
|
2754
|
+
},
|
|
2755
|
+
{
|
|
2756
|
+
"name": "autoGain",
|
|
2757
|
+
"kind": "choice",
|
|
2758
|
+
"global": "DRIVE_AUTO_GAINS"
|
|
2759
|
+
},
|
|
2760
|
+
{
|
|
2761
|
+
"name": "stereoLink",
|
|
2762
|
+
"kind": "choice",
|
|
2763
|
+
"global": "DRIVE_STEREO_LINKS"
|
|
2764
|
+
},
|
|
2765
|
+
{
|
|
2766
|
+
"name": "hfRolloff",
|
|
2767
|
+
"kind": "choice",
|
|
2768
|
+
"global": "DRIVE_HF_ROLLOFFS"
|
|
2596
2769
|
}
|
|
2597
2770
|
]
|
|
2598
2771
|
},
|
|
2599
2772
|
"eq": {
|
|
2600
2773
|
"controls": [
|
|
2601
2774
|
{
|
|
2602
|
-
"name": "
|
|
2603
|
-
"kind": "
|
|
2604
|
-
"global": "
|
|
2605
|
-
},
|
|
2606
|
-
{
|
|
2607
|
-
"name": "gain",
|
|
2608
|
-
"kind": "travel",
|
|
2609
|
-
"global": "EQ_GAIN_RANGE"
|
|
2775
|
+
"name": "hpfOn",
|
|
2776
|
+
"kind": "choice",
|
|
2777
|
+
"global": "EQ_HPF_ONS"
|
|
2610
2778
|
},
|
|
2611
2779
|
{
|
|
2612
|
-
"name": "
|
|
2780
|
+
"name": "hpfFreq",
|
|
2613
2781
|
"kind": "travel",
|
|
2614
|
-
"global": "
|
|
2782
|
+
"global": "HPF_FREQ_RANGE"
|
|
2615
2783
|
},
|
|
2616
2784
|
{
|
|
2617
|
-
"name": "
|
|
2618
|
-
"kind": "
|
|
2619
|
-
"global": "
|
|
2785
|
+
"name": "hpfSlope",
|
|
2786
|
+
"kind": "choice",
|
|
2787
|
+
"global": "FILTER_SLOPES"
|
|
2620
2788
|
},
|
|
2621
2789
|
{
|
|
2622
|
-
"name": "
|
|
2623
|
-
"kind": "
|
|
2624
|
-
"global": "
|
|
2790
|
+
"name": "lpfOn",
|
|
2791
|
+
"kind": "choice",
|
|
2792
|
+
"global": "EQ_LPF_ONS"
|
|
2625
2793
|
},
|
|
2626
2794
|
{
|
|
2627
2795
|
"name": "lpfFreq",
|
|
2628
2796
|
"kind": "travel",
|
|
2629
2797
|
"global": "LPF_FREQ_RANGE"
|
|
2630
2798
|
},
|
|
2799
|
+
{
|
|
2800
|
+
"name": "lpfSlope",
|
|
2801
|
+
"kind": "choice",
|
|
2802
|
+
"global": "FILTER_SLOPES"
|
|
2803
|
+
},
|
|
2631
2804
|
{
|
|
2632
2805
|
"name": "bandType",
|
|
2633
2806
|
"kind": "choice",
|
|
2634
|
-
"global": "EQ_BAND_TYPES"
|
|
2807
|
+
"global": "EQ_BAND_TYPES",
|
|
2808
|
+
"count": "EQ_BAND_COUNTS"
|
|
2809
|
+
},
|
|
2810
|
+
{
|
|
2811
|
+
"name": "freq",
|
|
2812
|
+
"kind": "travel",
|
|
2813
|
+
"global": "EQ_FREQ_RANGE",
|
|
2814
|
+
"count": "EQ_BAND_COUNTS"
|
|
2815
|
+
},
|
|
2816
|
+
{
|
|
2817
|
+
"name": "gain",
|
|
2818
|
+
"kind": "travel",
|
|
2819
|
+
"global": "EQ_GAIN_RANGE",
|
|
2820
|
+
"count": "EQ_BAND_COUNTS"
|
|
2821
|
+
},
|
|
2822
|
+
{
|
|
2823
|
+
"name": "q",
|
|
2824
|
+
"kind": "travel",
|
|
2825
|
+
"global": "EQ_Q_RANGE",
|
|
2826
|
+
"count": "EQ_BAND_COUNTS",
|
|
2827
|
+
"when": [
|
|
2828
|
+
{
|
|
2829
|
+
"control": "bandType",
|
|
2830
|
+
"is": "notch",
|
|
2831
|
+
"global": "EQ_NOTCH_Q_RANGE"
|
|
2832
|
+
}
|
|
2833
|
+
]
|
|
2635
2834
|
},
|
|
2636
2835
|
{
|
|
2637
|
-
"name": "
|
|
2836
|
+
"name": "bandOn",
|
|
2638
2837
|
"kind": "choice",
|
|
2639
|
-
"global": "
|
|
2838
|
+
"global": "EQ_BAND_ONS",
|
|
2839
|
+
"count": "EQ_BAND_COUNTS"
|
|
2640
2840
|
}
|
|
2641
2841
|
]
|
|
2642
2842
|
},
|
|
@@ -2735,7 +2935,8 @@
|
|
|
2735
2935
|
{
|
|
2736
2936
|
"name": "band",
|
|
2737
2937
|
"kind": "travel",
|
|
2738
|
-
"global": "GEQ_BAND_RANGE"
|
|
2938
|
+
"global": "GEQ_BAND_RANGE",
|
|
2939
|
+
"count": "GEQ_BANDS"
|
|
2739
2940
|
}
|
|
2740
2941
|
]
|
|
2741
2942
|
},
|
|
@@ -3003,6 +3204,15 @@
|
|
|
3003
3204
|
"global": "TREMOLO_MODES"
|
|
3004
3205
|
}
|
|
3005
3206
|
]
|
|
3207
|
+
},
|
|
3208
|
+
"trim": {
|
|
3209
|
+
"controls": [
|
|
3210
|
+
{
|
|
3211
|
+
"name": "trimDb",
|
|
3212
|
+
"kind": "travel",
|
|
3213
|
+
"global": "TRIM_RANGE"
|
|
3214
|
+
}
|
|
3215
|
+
]
|
|
3006
3216
|
}
|
|
3007
3217
|
}
|
|
3008
3218
|
}
|