Files
dsp-thomann-interface/src/features/dsp408/constants.ts
T

210 lines
6.8 KiB
TypeScript

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, number> = {
[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, readonly [number, number]> = {
[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, [number, number]> = {
[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';