UNPKG

x32-osc

Version:

X32/M32 interface to all OSC parameters and meters

1,035 lines 116 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.x32Enums = exports.x32NodeStructure = void 0; //: {[K: string]: string[]} var x32Enums = { inBlocks: [ 'AN1-8', 'AN9-16', 'AN17-24', 'AN25-32', 'A1-8', 'A9-16', 'A17-24', 'A25-32', 'A33-40', 'A41-48', 'B1-8', 'B9-16', 'B17-24', 'B25-32', 'B33-40', 'B41-48', 'CARD1-8', 'CARD9-16', 'CARD17-24', 'CARD25-32', 'UIN1-8', 'UIN9-16', 'UIN17-24', 'UIN25-32', ], auxInBlocks: [ 'AUX1-4', 'AN1-2', 'AN1-4', 'AN1-6', 'A1-2', 'A1-4', 'A1-6', 'B1-2', 'B1-4', 'B1-6', 'CARD1-2', 'CARD1-4', 'CARD1-6', 'UIN1-2', 'UIN1-4', 'UIN1-6', ], extOutBlocks: [ 'AN1-8', 'AN9-16', 'AN17-24', 'AN25-32', 'A1-8', 'A9-16', 'A17-24', 'A25-32', 'A33-40', 'A41-48', 'B1-8', 'B9-16', 'B17-24', 'B25-32', 'B33-40', 'B41-48', 'CARD1-8', 'CARD9-16', 'CARD17-24', 'CARD25-32', 'OUT1-8', 'OUT9-16', 'P161-8', 'P169-16', 'AUX/CR', 'AUX/TB', 'UOUT1-8', 'UOUT9-16', 'UOUT17-24', 'UOUT25-32', 'UOUT33-40', 'UOUT41-48', 'UIN1-8', 'UIN9-16', 'UIN17-24', 'UIN25-32', ], outBlocks1: [ 'AN1-4', 'AN9-12', 'AN17-20', 'AN25-28', 'A1-4', 'A9-12', 'A17-20', 'A25-28', 'A33-36', 'A41-44', 'B1-4', 'B9-12', 'B17-20', 'B25-28', 'B33-36', 'B41-44', 'CARD1-4', 'CARD9-12', 'CARD17-20', 'CARD25-28', 'OUT1-4', 'OUT9-12', 'P161-4', 'P169-12', 'AUX/CR', 'AUX/TB', 'UOUT1-4', 'UOUT9-12', 'UOUT17-20', 'UOUT25-28', 'UOUT33-36', 'UOUT41-44', 'UIN1-4', 'UIN9-12', 'UIN17-20', 'UIN25-28', ], outBlocks2: [ 'AN5-8', 'AN13-16', 'AN21-24', 'AN29-32', 'A5-8', 'A13-16', 'A21-24', 'A29-32', 'A37-40', 'A45-48', 'B5-8', 'B13-16', 'B21-24', 'B29-32', 'B37-40', 'B45-48', 'CARD5-8', 'CARD13-16', 'CARD21-24', 'CARD29-32', 'OUT5-8', 'OUT13-16', 'P165-8', 'P1613-16', 'AUX/CR', 'AUX/TB', 'UOUT5-8', 'UOUT13-16', 'UOUT21-24', 'UOUT29-32', 'UOUT37-40', 'UOUT45-48', 'UIN5-8', 'UIN13-16', 'UIN21-24', 'UIN29-32', ], color: ['OFF', 'RD', 'GN', 'YE', 'BL', 'MG', 'CY', 'WH', 'OFFi', 'RDi', 'GNi', 'YEi', 'BLi', 'MGi', 'CYi', 'WHi'], inputSource: (function () { var inputSource = ['OFF']; for (var i = 1; i <= 32; i++) inputSource.push('In' + i.toString().padStart(2, '0')); for (var i = 1; i <= 6; i++) inputSource.push('Aux ' + i); inputSource.push('USB L'); inputSource.push('USB R'); for (var i = 1; i <= 4; i++) { inputSource.push('Fx ' + i + 'L'); inputSource.push('Fx ' + i + 'R'); } for (var i = 1; i <= 16; i++) inputSource.push('Bus ' + i.toString().padStart(2, '0')); return inputSource; })(), fx14Type: [ 'HALL', 'AMBI', 'RPLT', 'ROOM', 'CHAM', 'PLAT', 'VREV', 'VRM', 'GATE', 'RVRS', 'DLY', '3TAP', '4TAP', 'CRS', 'FLNG', 'PHAS', 'DIMC', 'FILT', 'ROTA', 'PAN', 'SUB', 'D/RV', 'CR/R', 'FL/R', 'D/CR', 'D/FL', 'MODD', 'GEQ2', 'GEQ', 'TEQ2', 'TEQ', 'DES2', 'DES', 'P1A', 'P1A2', 'PQ5', 'PQ5S', 'WAVD', 'LIM', 'CMB', 'CMB2', 'FAC', 'FAC1M', 'FAC2', 'LEC', 'LEC2', 'ULC', 'ULC2', 'ENH2', 'ENH', 'EXC2', 'EXC', 'IMG', 'EDI', 'SON', 'AMP2', 'AMP', 'DRV2', 'DRV', 'PIT2', 'PIT', ], fx58Type: [ 'GEQ2', 'GEQ', 'TEQ2', 'TEQ', 'DES2', 'DES', 'P1A', 'P1A2', 'PQ5', 'PQ5S', 'WAVD', 'LIM', 'FAC', 'FAC1M', 'FAC2', 'LEC', 'LEC2', 'ULC', 'ULC2', 'ENH2', 'ENH', 'EXC2', 'EXC', 'IMG', 'EDI', 'SON', 'AMP2', 'AMP', 'DRV2', 'DRV', 'PHAS', 'FILT', 'PAN', 'SUB', ], fxSource: [ 'INS', 'MIX1', 'MIX2', 'MIX3', 'MIX4', 'MIX5', 'MIX6', 'MIX7', 'MIX8', 'MIX9', 'MIX10', 'MIX11', 'MIX12', 'MIX13', 'MIX14', 'MIX15', 'MIX16', 'M/C', ], outputSource: (function () { var outputSource = ['OFF', 'Main L', 'Main R', 'M/C']; for (var i = 1; i <= 16; i++) outputSource.push('MixBus ' + i.toString().padStart(2, '0')); for (var i = 1; i <= 6; i++) outputSource.push('Matrix ' + i.toString()); for (var i = 1; i <= 32; i++) outputSource.push('DirectOut Ch ' + i.toString().padStart(2, '0')); for (var i = 1; i <= 8; i++) outputSource.push('DirectOut Aux ' + i.toString()); for (var i = 1; i <= 4; i++) { outputSource.push('DirectOut FX ' + i + 'L'); outputSource.push('DirectOut FX ' + i + 'R'); } outputSource.push('Monitor L', 'Monitor R', 'Talkback'); return outputSource; })(), delayFactor: ['1/4', '3/8', '1/2', '2/3', '1', '4/3', '3/2', '2', '3'], dlyPattern: ['1/4', '1/3', '3/8', '1/2', '2/3', '3/4', '1', '1/4X', '1/3X', '3/8X', '1/2X', '2/3X', '3/4X', '1X'], pq5MidFreq: ['200', '300', '500', '700', '1k', '1k5', '2k', '3k', '4k', '5k', '7k'], cmbRatio: ['1.1', '1.2', '1.3', '1.5', '1.7', '2', '2.5', '3', '3.5', '4', '5', '7', '10', 'LIM'], }; exports.x32Enums = x32Enums; var x32TalkbackDefinition = { level: { _type: 'level161' }, dim: { _type: 'enum', _enum: ['OFF', 'ON'] }, latch: { _type: 'enum', _enum: ['OFF', 'ON'] }, destmap: { _type: 'bitmap', _size: 18 }, }; var x32UserctrlDefinition = { color: { _type: 'enum', _enum: x32Enums.color }, enc: (function () { var enc = {}; for (var i = 1; i <= 4; i++) enc["'" + i.toString()] = { _type: 'encString' }; return enc; })(), btn: (function () { var btn = {}; for (var i = 5; i <= 12; i++) btn["'" + i.toString()] = { _type: 'btnString' }; return btn; })(), }; var x32FilterDefinition = { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, type: { _type: 'enum', _enum: ['LC6', 'LC12', 'HC6', 'HC12', '1.0', '2.0', '3.0', '5.0', '10.0'] }, f: { _type: 'exponential', _min: 20, _max: 20000, _steps: 200, _decimals: 1, _freq: true }, }; var x32MtxDynDefinition = { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, mode: { _type: 'enum', _enum: ['COMP', 'EXP'] }, det: { _type: 'enum', _enum: ['PEAK', 'RMS'] }, env: { _type: 'enum', _enum: ['LIN', 'LOG'] }, thr: { _type: 'linear', _min: -60.0, _max: 0.0, _step: 0.5, _decimals: 1 }, ratio: { _type: 'enum', _enum: ['1.1', '1.3', '1.5', '2.0', '2.5', '3.0', '4.0', '5.0', '7.0', '10', '20', '100'] }, knee: { _type: 'linear', _min: 0.0, _max: 5.0, _step: 1.0 }, mgain: { _type: 'linear', _min: 0.0, _max: 24.0, _step: 0.5, _decimals: 2, _maxDigits: 3 }, attack: { _type: 'linear', _min: 0.0, _max: 120.0, _step: 1.0 }, hold: { _type: 'exponential', _min: 0.02, _max: 2000, _steps: 100, _decimals: 2, _maxDigits: 3 }, release: { _type: 'exponential', _min: 5, _max: 4000, _steps: 100, _decimals: 0 }, pos: { _type: 'enum', _enum: ['PRE', 'POST'] }, mix: { _type: 'linear', _min: 0, _max: 100, _step: 5 }, auto: { _type: 'enum', _enum: ['OFF', 'ON'] }, filter: x32FilterDefinition, }; var x32DynDefinition = { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, mode: { _type: 'enum', _enum: ['COMP', 'EXP'] }, det: { _type: 'enum', _enum: ['PEAK', 'RMS'] }, env: { _type: 'enum', _enum: ['LIN', 'LOG'] }, thr: { _type: 'linear', _min: -60.0, _max: 0.0, _step: 0.5, _decimals: 1 }, ratio: { _type: 'enum', _enum: ['1.1', '1.3', '1.5', '2.0', '2.5', '3.0', '4.0', '5.0', '7.0', '10', '20', '100'] }, knee: { _type: 'linear', _min: 0.0, _max: 5.0, _step: 1.0 }, mgain: { _type: 'linear', _min: 0.0, _max: 24.0, _step: 0.5, _decimals: 2, _maxDigits: 3 }, attack: { _type: 'linear', _min: 0.0, _max: 120.0, _step: 1.0 }, hold: { _type: 'exponential', _min: 0.02, _max: 2000, _steps: 100, _decimals: 2, _maxDigits: 3 }, release: { _type: 'exponential', _min: 5, _max: 4000, _steps: 100, _decimals: 0 }, pos: { _type: 'enum', _enum: ['PRE', 'POST'] }, keysrc: { _type: 'virtualEnum', _enum: x32Enums.inputSource }, mix: { _type: 'linear', _min: 0, _max: 100, _step: 5 }, auto: { _type: 'enum', _enum: ['OFF', 'ON'] }, filter: x32FilterDefinition, }; var x32InsertDefinition = { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, pos: { _type: 'enum', _enum: ['PRE', 'POST'] }, sel: { _type: 'enum', _enum: [ 'OFF', 'FX1L', 'FX1R', 'FX2L', 'FX2R', 'FX3L', 'FX3R', 'FX4L', 'FX4R', 'FX5L', 'FX5R', 'FX6L', 'FX6R', 'FX7L', 'FX7R', 'FX8L', 'FX8R', 'AUX1', 'AUX2', 'AUX3', 'AUX4', 'AUX5', 'AUX6', ], }, }; function x32EqDefinition(bands, main) { var eq = { on: { _type: 'enum', _enum: ['OFF', 'ON'] } }; var type = { _type: 'enum', _enum: ['LCut', 'LShv', 'PEQ', 'VEQ', 'HShv', 'HCut'] }; if (main) type = { _type: 'enum', _enum: [ 'LCut', 'LShv', 'PEQ', 'VEQ', 'HShv', 'HCut', 'BU6', 'BU12', 'BS12', 'LR12', 'BU18', 'BU24', 'BS24', 'LR24', ], }; var band = { type: type, f: { _type: 'exponential', _min: 20, _max: 20000, _steps: 200, _decimals: 1, _freq: true }, g: { _type: 'linear', _min: -15.0, _max: 15, _step: 0.25, _decimals: 2, _maxDigits: 3, _plusSign: true }, q: { _type: 'exponential', _min: 10, _max: 0.3, _steps: 71, _decimals: 1, _maxDigits: 2 }, }; for (var i = 1; i <= bands; i++) { eq["'" + i.toString()] = band; } return eq; } function x32MixDefinition(sendsCount, main, mono, bus) { var mixDefinition = { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, fader: { _type: 'level' }, }; if (!main) mixDefinition.st = { _type: 'enum', _enum: ['OFF', 'ON'] }; if (!mono) mixDefinition.pan = { _type: 'linear', _min: -100.0, _max: 100.0, _step: 2.0, _plusSign: true, }; if (!main) { mixDefinition.mono = { _type: 'enum', _enum: ['OFF', 'ON'] }; mixDefinition.mlevel = { _type: 'level161' }; } for (var i = 1; i < sendsCount; i += 2) //mixDefinition['\'' + i.toString().padStart(2, '0')] = x32MixSendNode(i); mixDefinition = __assign(__assign({}, mixDefinition), x32MixSendNode(i, main || bus)); return mixDefinition; } function x32MixSendNode(oddNumber, main) { var _a; var typeEnum = ['IN/LC', '<-EQ', 'EQ->', 'PRE', 'POST']; if (!main) typeEnum.push('GRP'); var commonLeaves = { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, level: { _type: 'level161' }, }; var mixSendOdd = { pan: { _type: 'linear', _min: -100.0, _max: 100.0, _step: 2.0, _plusSign: true }, type: { _type: 'enum', _enum: typeEnum }, panFollow: { _type: 'virtualEnum', _enum: ['OFF', 'ON'] }, }; return _a = {}, _a["'" + oddNumber.toString().padStart(2, '0')] = __assign(__assign({}, commonLeaves), mixSendOdd), _a["'" + (oddNumber + 1).toString().padStart(2, '0')] = commonLeaves, _a; } var x32ChannelDefinition = { config: { name: { _type: 'string' }, icon: { _type: 'icon' }, color: { _type: 'enum', _enum: x32Enums.color }, source: { _type: 'virtualEnum', _enum: x32Enums.inputSource }, }, delay: { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, time: { _type: 'linear', _min: 0.3, _max: 500.0, _step: 0.1, _decimals: 1 }, }, preamp: { trim: { _type: 'linear', _min: -18, _max: 18, _step: 0.25, _decimals: 1, _plusSign: true }, invert: { _type: 'enum', _enum: ['OFF', 'ON'] }, hpon: { _type: 'enum', _enum: ['OFF', 'ON'] }, hpslope: { _type: 'enum', _enum: ['12', '18', '24'] }, hpf: { _type: 'exponential', _min: 20, _max: 400, _steps: 100, _decimals: 0 }, }, gate: { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, mode: { _type: 'enum', _enum: ['EXP2', 'EXP3', 'EXP4', 'GATE', 'DUCK'] }, thr: { _type: 'linear', _min: -80.0, _max: 0.0, _step: 0.5, _decimals: 1 }, range: { _type: 'linear', _min: 3.0, _max: 60.0, _step: 1.0, _decimals: 1 }, attack: { _type: 'linear', _min: 0.0, _max: 120.0, _step: 1.0 }, hold: { _type: 'exponential', _min: 0.02, _max: 2000, _steps: 100, _decimals: 2, _maxDigits: 3 }, release: { _type: 'exponential', _min: 5, _max: 4000, _steps: 100, _decimals: 0 }, keysrc: { _type: 'virtualEnum', _enum: x32Enums.inputSource }, filter: x32FilterDefinition, }, dyn: x32DynDefinition, insert: x32InsertDefinition, eq: x32EqDefinition(4), mix: x32MixDefinition(16), grp: { dca: { _type: 'bitmap', _size: 8 }, mute: { _type: 'bitmap', _size: 6 }, }, automix: { group: { _type: 'enum', _enum: ['OFF', 'X', 'Y'] }, weight: { _type: 'linear', _min: -12.0, _max: 12.0, _step: 0.5, _decimals: 1, _plusSign: true }, }, }; var x32AuxDefinition = { config: { name: { _type: 'string' }, icon: { _type: 'icon' }, color: { _type: 'enum', _enum: x32Enums.color }, source: { _type: 'virtualEnum', _enum: x32Enums.inputSource }, }, preamp: { trim: { _type: 'linear', _min: -18, _max: 18, _step: 0.25, _decimals: 1, _plusSign: true }, invert: { _type: 'enum', _enum: ['OFF', 'ON'] }, }, eq: x32EqDefinition(4), mix: x32MixDefinition(16), grp: { dca: { _type: 'bitmap', _size: 8 }, mute: { _type: 'bitmap', _size: 6 }, }, }; var x32FxrtnDefinition = { config: { name: { _type: 'string' }, icon: { _type: 'icon' }, color: { _type: 'enum', _enum: x32Enums.color }, }, eq: x32EqDefinition(4), mix: x32MixDefinition(16), grp: { dca: { _type: 'bitmap', _size: 8 }, mute: { _type: 'bitmap', _size: 6 }, }, }; var x32BusDefinition = { config: { name: { _type: 'string' }, icon: { _type: 'icon' }, color: { _type: 'enum', _enum: x32Enums.color }, }, dyn: x32DynDefinition, insert: x32InsertDefinition, eq: x32EqDefinition(6), mix: x32MixDefinition(6, false, false, true), grp: { dca: { _type: 'bitmap', _size: 8 }, mute: { _type: 'bitmap', _size: 6 }, }, }; var x32MtxDefinition = { config: { name: { _type: 'string' }, icon: { _type: 'icon' }, color: { _type: 'enum', _enum: x32Enums.color }, }, preamp: { invert: { _type: 'enum', _enum: ['OFF', 'ON'] }, }, dyn: x32MtxDynDefinition, insert: x32InsertDefinition, eq: x32EqDefinition(6, true), mix: { on: { _type: 'enum', _enum: ['OFF', 'ON'] }, fader: { _type: 'level' }, }, grp: { dca: { _type: 'bitmap', _size: 8 }, mute: { _type: 'bitmap', _size: 6 }, }, }; var x32FxConditional = { HALL: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.2, _max: 5, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 2, _max: 100, _step: 2 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 24, _decimals: 1, _freq: true }, { _name: 'Diffuse', _type: 'linear', _min: 1, _max: 30, _step: 1 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Bass Multi', _type: 'exponential', _min: 0.5, _max: 2, _steps: 50, _decimals: 2 }, { _name: 'Spread', _type: 'linear', _min: 0, _max: 50, _step: 1 }, { _name: 'Shape', _type: 'linear', _min: 0, _max: 250, _step: 5 }, { _name: 'Mod Speed', _type: 'linear', _min: 0, _max: 100, _step: 5 }, ], AMBI: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.2, _max: 7.3, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 2, _max: 100, _step: 2 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 24, _decimals: 1, _freq: true }, { _name: 'Diffuse', _type: 'linear', _min: 1, _max: 30, _step: 1 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Modulate', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Tail Gain', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], RPLT: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.3, _max: 29, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 4, _max: 39, _step: 1 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 24, _decimals: 1, _freq: true }, { _name: 'Diffuse', _type: 'linear', _min: 0, _max: 100, _step: 4 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Bass Multi', _type: 'exponential', _min: 0.25, _max: 4, _steps: 52, _decimals: 2 }, { _name: 'Spread', _type: 'linear', _min: 0, _max: 50, _step: 1 }, { _name: 'Attack', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Spin', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Echo L', _type: 'linear', _min: 0, _max: 1200, _step: 5 }, { _name: 'Echo R', _type: 'linear', _min: 0, _max: 1200, _step: 5 }, { _name: 'Echo Feed L', _type: 'linear', _min: -100, _max: 100, _step: 2 }, { _name: 'Echo Feed R', _type: 'linear', _min: -100, _max: 100, _step: 2 }, ], ROOM: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.3, _max: 29, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 4, _max: 76, _step: 2 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 24, _decimals: 1, _freq: true }, { _name: 'Diffuse', _type: 'linear', _min: 0, _max: 100, _step: 4 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Bass Multi', _type: 'exponential', _min: 0.25, _max: 4, _steps: 52, _decimals: 2 }, { _name: 'Spread', _type: 'linear', _min: 0, _max: 50, _step: 1 }, { _name: 'Shape', _type: 'linear', _min: 0, _max: 250, _step: 5 }, { _name: 'Spin', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Echo L', _type: 'linear', _min: 0, _max: 1200, _step: 5 }, { _name: 'Echo R', _type: 'linear', _min: 0, _max: 1200, _step: 5 }, { _name: 'Echo Feed L', _type: 'linear', _min: -100, _max: 100, _step: 2 }, { _name: 'Echo Feed R', _type: 'linear', _min: -100, _max: 100, _step: 2 }, ], CHAM: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.3, _max: 29, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 4, _max: 76, _step: 2 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 24, _decimals: 1, _freq: true }, { _name: 'Diffuse', _type: 'linear', _min: 0, _max: 100, _step: 4 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Bass Multi', _type: 'exponential', _min: 0.25, _max: 4, _steps: 52, _decimals: 2 }, { _name: 'Spread', _type: 'linear', _min: 0, _max: 50, _step: 1 }, { _name: 'Shape', _type: 'linear', _min: 0, _max: 250, _step: 5 }, { _name: 'Spin', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Reflection L', _type: 'linear', _min: 0, _max: 500, _step: 5 }, { _name: 'Reflection L', _type: 'linear', _min: 0, _max: 500, _step: 5 }, { _name: 'Reflection Gain L', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Reflection Gain R', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], PLAT: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.5, _max: 10, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 2, _max: 100, _step: 2 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 24, _decimals: 1, _freq: true }, { _name: 'Diffuse', _type: 'linear', _min: 1, _max: 30, _step: 1 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Bass Multi', _type: 'exponential', _min: 0.5, _max: 2, _steps: 50, _decimals: 2 }, { _name: 'Xover', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 2 }, { _name: 'Mod Depth', _type: 'linear', _min: 1, _max: 50, _step: 1 }, { _name: 'Mod Speed', _type: 'linear', _min: 0, _max: 100, _step: 5 }, ], VREV: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 120, _step: 2 }, { _name: 'Decay', _type: 'linear', _min: 0.4, _max: 4.5, _step: 0.1, _decimals: 1 }, { _name: 'Modulate', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Vintage', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Position', _type: 'enum', _enum: ['FRONT', 'REAR'] }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 10000, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Lo Multiply', _type: 'exponential', _min: 0.5, _max: 2, _steps: 50, _decimals: 2 }, { _name: 'Hi Multiply', _type: 'exponential', _min: 0.25, _max: 1, _steps: 50, _decimals: 2 }, ], VRM: [ { _name: 'Reverb Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.1, _max: 20, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 2, _max: 100, _step: 2 }, { _name: 'Density', _type: 'linear', _min: 1, _max: 30, _step: 1 }, { _name: 'ER Level', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Multiply', _type: 'exponential', _min: 0.1, _max: 10, _steps: 50, _decimals: 2 }, { _name: 'Hi Multiply', _type: 'exponential', _min: 0.1, _max: 10, _steps: 50, _decimals: 2 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'ER Left', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'ER Right', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Freeze', _type: 'enum', _enum: ['OFF', 'ON'] }, ], GATE: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'linear', _min: 140, _max: 1000, _step: 17.2, _decimals: 0 }, { _name: 'Attack', _type: 'linear', _min: 0, _max: 30, _step: 1 }, { _name: 'Density', _type: 'linear', _min: 1, _max: 50, _step: 1 }, { _name: 'Spread', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Shv Freq', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Hi Shv Gain', _type: 'linear', _min: -30, _max: 0, _step: 0.5, _decimals: 1 }, { _name: 'Diffuse', _type: 'linear', _min: 1, _max: 30, _step: 1 }, ], RVRS: [ { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 140, _max: 1000, _steps: 50, _decimals: 0 }, { _name: 'Rise', _type: 'linear', _min: 0, _max: 50, _step: 1 }, { _name: 'Diffuse', _type: 'linear', _min: 1, _max: 30, _step: 1 }, { _name: 'Spread', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Level', _type: 'linear', _min: -12, _max: 12, _step: 0.5, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Shv Freq', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Hi Shv Gain', _type: 'linear', _min: -30, _max: 0, _step: 0.5, _decimals: 1 }, ], DLY: [ { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Time', _type: 'linear', _min: 1, _max: 3000, _step: 1 }, { _name: 'Mode', _type: 'enum', _enum: ['ST', 'X', 'M'] }, { _name: 'Factor L', _type: 'enum', _enum: x32Enums.delayFactor }, { _name: 'Factor R', _type: 'enum', _enum: x32Enums.delayFactor }, { _name: 'Offset L/R', _type: 'linear', _min: -100, _max: 100, _step: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Feed Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Feed Left', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Feed Right', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Feed Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, ], '3TAP': [ { _name: 'Time', _type: 'linear', _min: 1, _max: 3000, _step: 1 }, { _name: 'Gain Base', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Pan Base', _type: 'linear', _min: -100, _max: 100, _step: 5 }, { _name: 'Feedback', _type: 'linear', _min: 0, _max: 100, _step: 2, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Factor A', _type: 'enum', _enum: x32Enums.delayFactor }, { _name: 'Gain A', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Pan A', _type: 'linear', _min: -100, _max: 100, _step: 5 }, { _name: 'Factor B', _type: 'enum', _enum: x32Enums.delayFactor }, { _name: 'Gain B', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Pan B', _type: 'linear', _min: -100, _max: 100, _step: 5 }, { _name: 'Cross Feed', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Mono', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Dry', _type: 'enum', _enum: ['OFF', 'ON'] }, ], '4TAP': [ { _name: 'Time', _type: 'linear', _min: 1, _max: 3000, _step: 1 }, { _name: 'Gain Base', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Feedback', _type: 'linear', _min: 0, _max: 100, _step: 2, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Spread', _type: 'linear', _min: 0, _max: 6, _step: 1 }, { _name: 'Factor A', _type: 'enum', _enum: x32Enums.delayFactor }, { _name: 'Gain A', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Factor B', _type: 'enum', _enum: x32Enums.delayFactor }, { _name: 'Gain B', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Factor C', _type: 'enum', _enum: x32Enums.delayFactor }, { _name: 'Gain c', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Cross Feed', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Mono', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Dry', _type: 'enum', _enum: ['OFF', 'ON'] }, ], CRS: [ { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 5, _steps: 100, _decimals: 2 }, { _name: 'Depth L', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Depth R', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Delay L', _type: 'exponential', _min: 0.5, _max: 50, _steps: 50, _decimals: 1 }, { _name: 'Delay R', _type: 'exponential', _min: 0.5, _max: 50, _steps: 50, _decimals: 1 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Wave', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Spread', _type: 'linear', _min: 0, _max: 100, _step: 5 }, ], FLNG: [ { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 5, _steps: 100, _decimals: 2 }, { _name: 'Depth L', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Depth R', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Delay L', _type: 'exponential', _min: 0.5, _max: 20, _steps: 50, _decimals: 1 }, { _name: 'Delay R', _type: 'exponential', _min: 0.5, _max: 20, _steps: 50, _decimals: 1 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Feed Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Feed Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Feed', _type: 'linear', _min: -90, _max: 90, _step: 5 }, ], PHAS: [ { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 5, _steps: 100, _decimals: 2 }, { _name: 'Depth', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Resonance', _type: 'linear', _min: 0, _max: 80, _step: 2 }, { _name: 'Base', _type: 'linear', _min: 0, _max: 50, _step: 2 }, { _name: 'Stages', _type: 'linear', _min: 2, _max: 12, _step: 1 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Wave', _type: 'linear', _min: -50, _max: 50, _step: 5 }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Env. Modulation', _type: 'linear', _min: -100, _max: 100, _step: 5 }, { _name: 'Attack', _type: 'exponential', _min: 10, _max: 1000, _steps: 50, _decimals: 0 }, { _name: 'Hold', _type: 'exponential', _min: 1, _max: 2000, _steps: 50, _decimals: 0 }, { _name: 'Release', _type: 'exponential', _min: 10, _max: 1000, _steps: 50, _decimals: 0 }, ], DIMC: [ { _name: 'Active', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Mode', _type: 'enum', _enum: ['M', 'ST'] }, { _name: 'Dry', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Mode 1', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Mode 2', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Mode 3', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Mode 4', _type: 'enum', _enum: ['OFF', 'ON'] }, ], FILT: [ { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 20, _steps: 150, _decimals: 2 }, { _name: 'Depth', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Resonance', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Base', _type: 'exponential', _min: 20, _max: 15000, _steps: 100, _decimals: 1, _freq: true }, { _name: 'Mode', _type: 'enum', _enum: ['LP', 'HP', 'BP', 'NO'] }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Wave', _type: 'enum', _enum: ['TRI', 'SIN', 'SAW', 'SAW-', 'RMP', 'SQU', 'RND'] }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Env. Modulation', _type: 'linear', _min: -100, _max: 100, _step: 2 }, { _name: 'Attack', _type: 'exponential', _min: 10, _max: 250, _steps: 50, _decimals: 0 }, { _name: 'Release', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Drive', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Pole', _type: 'enum', _enum: ['2POL', '4POL'] }, { _name: 'Side Chain', _type: 'enum', _enum: ['OFF', 'ON'] }, ], ROTA: [ { _name: 'Lo Speed', _type: 'exponential', _min: 0.1, _max: 4, _steps: 100, _decimals: 2 }, { _name: 'Hi Speed', _type: 'exponential', _min: 2, _max: 10, _steps: 100, _decimals: 2 }, { _name: 'Accelerate', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Distance', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Balance', _type: 'linear', _min: -100, _max: 100, _step: 5 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Stop', _type: 'enum', _enum: ['RUN', 'STOP'] }, { _name: 'Speed', _type: 'enum', _enum: ['SLOW', 'FAST'] }, ], PAN: [ { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 5, _steps: 100, _decimals: 2 }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Wave', _type: 'linear', _min: -50, _max: 50, _step: 5 }, { _name: 'Depth', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Env. Speed', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Env. Depth', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Attack', _type: 'exponential', _min: 10, _max: 1000, _steps: 50, _decimals: 0 }, { _name: 'Hold', _type: 'exponential', _min: 1, _max: 2000, _steps: 50, _decimals: 0 }, { _name: 'Release', _type: 'exponential', _min: 10, _max: 1000, _steps: 50, _decimals: 0 }, ], SUB: [ { _name: 'Active A', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Range A', _type: 'enum', _enum: ['LO', 'MID', 'HI'] }, { _name: 'Dry A', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Octave-1 A', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Octave-2 A', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Active B', _type: 'enum', _enum: ['OFF', 'ON'] }, { _name: 'Range B', _type: 'enum', _enum: ['LO', 'MID', 'HI'] }, { _name: 'Dry B', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Octave-1 B', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Octave-2 B', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], 'D/RV': [ { _name: 'Time', _type: 'linear', _min: 1, _max: 3000, _step: 1 }, { _name: 'Pattern', _type: 'enum', _enum: x32Enums.dlyPattern }, { _name: 'Feed Hi Cut', _type: 'exponential', _min: 1000, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Feedback', _type: 'linear', _min: 0, _max: 100, _step: 2, _decimals: 1 }, { _name: 'Cross Feed', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Balance', _type: 'linear', _min: -100, _max: 100, _step: 5, _plusSign: true }, { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.1, _max: 5, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 2, _max: 100, _step: 2 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], 'CR/R': [ { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 4, _steps: 100, _decimals: 2 }, { _name: 'Depth', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Delay', _type: 'exponential', _min: 0.5, _max: 50, _steps: 50, _decimals: 1 }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Wave', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Balance', _type: 'linear', _min: -100, _max: 100, _step: 5, _plusSign: true }, { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.1, _max: 5, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 2, _max: 100, _step: 2 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], 'FL/R': [ { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 4, _steps: 100, _decimals: 2 }, { _name: 'Depth', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Delay', _type: 'exponential', _min: 0.5, _max: 20, _steps: 50, _decimals: 1 }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Feed', _type: 'linear', _min: -90, _max: 90, _step: 5 }, { _name: 'Balance', _type: 'linear', _min: -100, _max: 100, _step: 5, _plusSign: true }, { _name: 'Pre Delay', _type: 'linear', _min: 0, _max: 200, _step: 2 }, { _name: 'Decay', _type: 'exponential', _min: 0.1, _max: 5, _steps: 50, _decimals: 2 }, { _name: 'Size', _type: 'linear', _min: 2, _max: 100, _step: 2, _decimals: 1 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], 'D/CR': [ { _name: 'Time', _type: 'linear', _min: 1, _max: 3000, _step: 1 }, { _name: 'Pattern', _type: 'enum', _enum: x32Enums.dlyPattern }, { _name: 'Feed Hi Cut', _type: 'exponential', _min: 1000, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Feedback', _type: 'linear', _min: 0, _max: 100, _step: 2, _decimals: 1 }, { _name: 'Cross Feed', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Balance', _type: 'linear', _min: -100, _max: 100, _step: 5, _plusSign: true }, { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 4, _steps: 100, _decimals: 2 }, { _name: 'Depth', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Delay', _type: 'exponential', _min: 0.5, _max: 50, _steps: 50, _decimals: 1 }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Wave', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], 'D/FL': [ { _name: 'Time', _type: 'linear', _min: 1, _max: 3000, _step: 1 }, { _name: 'Pattern', _type: 'enum', _enum: x32Enums.dlyPattern }, { _name: 'Feed Hi Cut', _type: 'exponential', _min: 1000, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Feedback', _type: 'linear', _min: 0, _max: 100, _step: 2, _decimals: 1 }, { _name: 'Cross Feed', _type: 'linear', _min: 0, _max: 100, _step: 2 }, { _name: 'Balance', _type: 'linear', _min: -100, _max: 100, _step: 5, _plusSign: true }, { _name: 'Speed', _type: 'exponential', _min: 0.05, _max: 4, _steps: 100, _decimals: 2 }, { _name: 'Depth', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Delay', _type: 'exponential', _min: 0.5, _max: 20, _steps: 50, _decimals: 1 }, { _name: 'Phase', _type: 'linear', _min: 0, _max: 180, _step: 5 }, { _name: 'Feed', _type: 'linear', _min: -90, _max: 90, _step: 5 }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], MODD: [ { _name: 'Time', _type: 'linear', _min: 1, _max: 3000, _step: 1 }, { _name: 'Delay Factor', _type: 'enum', _enum: ['1', '1/2', '2/3', '3/2'] }, { _name: 'Feed', _type: 'linear', _min: 0, _max: 100, _step: 2, _decimals: 1 }, { _name: 'Lo Cut', _type: 'exponential', _min: 10, _max: 500, _steps: 50, _decimals: 0 }, { _name: 'Hi Cut', _type: 'exponential', _min: 200, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Depth', _type: 'linear', _min: 0, _max: 100, _step: 5 }, { _name: 'Rate', _type: 'exponential', _min: 0.05, _max: 10, _steps: 100, _decimals: 2 }, { _name: 'Setup', _type: 'enum', _enum: ['PAR', 'SER'] }, { _name: 'Type', _type: 'enum', _enum: ['AMB', 'CLUB', 'HALL'] }, { _name: 'Decay', _type: 'linear', _min: 1, _max: 10, _step: 0.5, _decimals: 1 }, { _name: 'Damping', _type: 'exponential', _min: 1000, _max: 20000, _steps: 50, _decimals: 0, _freq: true }, { _name: 'Balance', _type: 'linear', _min: -100, _max: 100, _step: 5, _plusSign: true }, { _name: 'Mix', _type: 'linear', _min: 0, _max: 100, _step: 2 }, ], GEQ2: [ { _name: '20.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '25.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '31.5 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '40.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '50.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '63.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '80.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '100.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '125.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '160.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '200.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '250.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '315.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '400.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '500.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '630.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '800.0 Hz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '1.00 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '1.25 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '1.60 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '2.00 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '2.50 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '3.15 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '4.00 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '5.00 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '6.30 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '8.00 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '10.0 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '12.5 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '16.0 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '20.0 kHz A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: 'Level A', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '20.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '25.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '31.5 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '40.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '50.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '63.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '80.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '100.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '125.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '160.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '200.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _name: '250.0 Hz B', _type: 'linear', _min: -15, _max: 15, _step: 0.5, _decimals: 1 }, { _na