import { DiscreteFrequency, InputChannel, OutputChannel, CrossoverFilter, PEQBand, PEQFilter, DelayUnit, } from './types'; export const INPUT_ORDER: InputChannel[] = [ InputChannel.InA, InputChannel.InB, InputChannel.InC, InputChannel.InD, ]; export const OUTPUT_ORDER: OutputChannel[] = [ OutputChannel.Out1, OutputChannel.Out2, OutputChannel.Out3, OutputChannel.Out4, OutputChannel.Out5, OutputChannel.Out6, OutputChannel.Out7, OutputChannel.Out8, ]; export const DISCRETE_FREQUENCIES: Record = { [DiscreteFrequency.F20]: 20, [DiscreteFrequency.F25]: 25, [DiscreteFrequency.F31_5]: 31.5, [DiscreteFrequency.F40]: 40, [DiscreteFrequency.F50]: 50, [DiscreteFrequency.F63]: 63, [DiscreteFrequency.F80]: 80, [DiscreteFrequency.F100]: 100, [DiscreteFrequency.F125]: 125, [DiscreteFrequency.F160]: 160, [DiscreteFrequency.F200]: 200, [DiscreteFrequency.F250]: 250, [DiscreteFrequency.F315]: 315, [DiscreteFrequency.F400]: 400, [DiscreteFrequency.F500]: 500, [DiscreteFrequency.F630]: 630, [DiscreteFrequency.F800]: 800, [DiscreteFrequency.F1000]: 1000, [DiscreteFrequency.F1250]: 1250, [DiscreteFrequency.F1600]: 1600, [DiscreteFrequency.F2000]: 2000, [DiscreteFrequency.F2500]: 2500, [DiscreteFrequency.F3150]: 3150, [DiscreteFrequency.F4000]: 4000, [DiscreteFrequency.F5000]: 5000, [DiscreteFrequency.F6300]: 6300, [DiscreteFrequency.F8000]: 8000, [DiscreteFrequency.F10000]: 10000, [DiscreteFrequency.F12500]: 12500, [DiscreteFrequency.F16000]: 16000, [DiscreteFrequency.F20000]: 20000, }; // ------ GEQ constants ------ export const GEQ_BANDS_LABEL = [ { frequency: DiscreteFrequency.F20, label: '20' }, { frequency: DiscreteFrequency.F25, label: '25' }, { frequency: DiscreteFrequency.F31_5, label: '31.5' }, { frequency: DiscreteFrequency.F40, label: '40' }, { frequency: DiscreteFrequency.F50, label: '50' }, { frequency: DiscreteFrequency.F63, label: '63' }, { frequency: DiscreteFrequency.F80, label: '80' }, { frequency: DiscreteFrequency.F100, label: '100' }, { frequency: DiscreteFrequency.F125, label: '125' }, { frequency: DiscreteFrequency.F160, label: '160' }, { frequency: DiscreteFrequency.F200, label: '200' }, { frequency: DiscreteFrequency.F250, label: '250' }, { frequency: DiscreteFrequency.F315, label: '315' }, { frequency: DiscreteFrequency.F400, label: '400' }, { frequency: DiscreteFrequency.F500, label: '500' }, { frequency: DiscreteFrequency.F630, label: '630' }, { frequency: DiscreteFrequency.F800, label: '800' }, { frequency: DiscreteFrequency.F1000, label: '1k' }, { frequency: DiscreteFrequency.F1250, label: '1.25k' }, { frequency: DiscreteFrequency.F1600, label: '1.6k' }, { frequency: DiscreteFrequency.F2000, label: '2k' }, { frequency: DiscreteFrequency.F2500, label: '2.5k' }, { frequency: DiscreteFrequency.F3150, label: '3.15k' }, { frequency: DiscreteFrequency.F4000, label: '4k' }, { frequency: DiscreteFrequency.F5000, label: '5k' }, { frequency: DiscreteFrequency.F6300, label: '6.3k' }, { frequency: DiscreteFrequency.F8000, label: '8k' }, { frequency: DiscreteFrequency.F10000, label: '10k' }, { frequency: DiscreteFrequency.F12500, label: '12.5k' }, { frequency: DiscreteFrequency.F16000, label: '16k' }, { frequency: DiscreteFrequency.F20000, label: '20k' }, ] as const; export const GEQ_GAIN_MIN = -12; export const GEQ_GAIN_MAX = 12; export const GEQ_GAIN_STEP = 0.1; export const GEQ_CURVE_Q = 8.65 * 0.5; // ------ Filter constants ------ export const CROSSOVER_FILTER_LABEL: { value: CrossoverFilter; label: string }[] = [ { value: CrossoverFilter.Bw6, label: 'BW-6' }, { value: CrossoverFilter.Bw12, label: 'BW-12' }, { value: CrossoverFilter.Bw18, label: 'BW-18' }, { value: CrossoverFilter.Bw24, label: 'BW-24' }, { value: CrossoverFilter.Bw30, label: 'BW-30' }, { value: CrossoverFilter.Bw36, label: 'BW-36' }, { value: CrossoverFilter.Bw42, label: 'BW-42' }, { value: CrossoverFilter.Bw48, label: 'BW-48' }, { value: CrossoverFilter.Lk12, label: 'LR-12' }, { value: CrossoverFilter.Lk24, label: 'LR-24' }, { value: CrossoverFilter.Lk36, label: 'LR-36' }, { value: CrossoverFilter.Lk48, label: 'LR-48' }, ]; export const PEQ_BANDS_ORDER: PEQBand[] = [ PEQBand.B1, PEQBand.B2, PEQBand.B3, PEQBand.B4, PEQBand.B5, PEQBand.B6, PEQBand.B7, PEQBand.B8, ]; export const PEQ_Q_RANGES: Record = { [PEQFilter.Peak]: [0.4, 128.0], [PEQFilter.LowShelf]: [0.4, 3.0], [PEQFilter.HighShelf]: [0.4, 3.0], [PEQFilter.Lp6Db]: [0.4, 3.0], [PEQFilter.Lp12Db]: [0.4, 3.0], [PEQFilter.Hp6Db]: [0.4, 3.0], [PEQFilter.Hp12Db]: [0.4, 3.0], [PEQFilter.AllPass1]: [0.4, 128.0], [PEQFilter.AllPass2]: [0.4, 128.0], }; export const PEAK_Q_VALUES = [ 0.4, 0.42, 0.45, 0.47, 0.5, 0.53, 0.56, 0.59, 0.63, 0.67, 0.71, 0.75, 0.79, 0.84, 0.89, 0.94, 1.0, 1.06, 1.12, 1.19, 1.26, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.4, 2.5, 2.7, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, 4.2, 4.5, 4.8, 5.0, 5.3, 5.7, 6.0, 6.3, 6.7, 7.1, 7.6, 8.0, 8.5, 9.0, 9.5, 10.1, 10.7, 11.3, 12.0, 12.7, 13.5, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 23.0, 24.0, 25.0, 27.0, 29.0, 30.0, 32.0, 34.0, 36.0, 38.0, 40.0, 43.0, 45.0, 48.0, 51.0, 54.0, 57.0, 60.0, 64.0, 68.0, 72.0, 76.0, 81.0, 85.0, 91.0, 96.0, 102.0, 108.0, 114.0, 121.0, 128.0, ] as const; export const PEQ_FILTERS_LABEL: { value: PEQFilter; label: string }[] = [ { value: PEQFilter.Peak, label: 'Peak' }, { value: PEQFilter.LowShelf, label: 'Low Shelf' }, { value: PEQFilter.HighShelf, label: 'High Shelf' }, { value: PEQFilter.Lp6Db, label: 'Low Pass 6 dB/oct' }, { value: PEQFilter.Lp12Db, label: 'Low Pass 12 dB/oct' }, { value: PEQFilter.Hp6Db, label: 'High Pass 6 dB/oct' }, { value: PEQFilter.Hp12Db, label: 'High Pass 12 dB/oct' }, { value: PEQFilter.AllPass1, label: 'All Pass 1' }, { value: PEQFilter.AllPass2, label: 'All Pass 2' }, ]; export const FREQUENCY_MIN = 19.7; export const FREQUENCY_MAX = 20160; export const FREQUENCY_QUANTIZATION = 300; // ------ Matrix constants ------ export const MATRIX_GAIN_MIN = -60; export const MATRIX_GAIN_MAX = 0; export const MATRIX_GAIN_STEP = 0.1; // ------ Delay constants ------ export const DELAY_RANGES: Record = { [DelayUnit.Millisecond]: [0, 680.0], [DelayUnit.Meter]: [0, 233.58], [DelayUnit.Feet]: [0, 766.329], }; // ------ Graph constants ------ export const GRAPH_X_MIN = 10; export const GRAPH_X_MAX = 30000; export const GRAPH_Y_MIN = -21; export const GRAPH_Y_MAX = 21; // ------ App ------ export type SidebarId = | 'overview' | 'gain' | 'gate' | 'compressor' | 'limiter' | 'delay' | 'matrix' | 'geq' | 'ina' | 'inb' | 'inc' | 'ind' | 'out1' | 'out2' | 'out3' | 'out4' | 'out5' | 'out6' | 'out7' | 'out8' | 'miscellaneous';