@effetune/dsp 0.4.0 → 0.6.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.
@@ -0,0 +1,15 @@
1
+ export const DENORMAL_NOISE_AMPLITUDE = 1e-19;
2
+
3
+ export function addDenormalNoise(audio, channelCount, frameCount, frameOrigin) {
4
+ const first = (frameOrigin & 1) === 0
5
+ ? DENORMAL_NOISE_AMPLITUDE
6
+ : -DENORMAL_NOISE_AMPLITUDE;
7
+ for (let channel = 0; channel < channelCount; channel++) {
8
+ const offset = channel * frameCount;
9
+ let noise = first;
10
+ for (let frame = 0; frame < frameCount; frame++) {
11
+ audio[offset + frame] += noise;
12
+ noise = -noise;
13
+ }
14
+ }
15
+ }
package/dist/effect.js CHANGED
@@ -12,6 +12,7 @@ const ASSET_NAMES_BY_EFFECT = new Map([
12
12
  ['FIRCrossover', ['impulseResponse']],
13
13
  ['FiveBandFIRPEQ', ['impulseResponse']],
14
14
  ['GroupDelayEQ', ['impulseResponse']],
15
+ ['GroupDelayPEQ', ['impulseResponse']],
15
16
  ['IRReverb', ['impulseResponse']],
16
17
  ['RoomEQ', ['impulseResponse']]
17
18
  ]);
package/dist/errors.js CHANGED
@@ -2,6 +2,10 @@ export class EffeTuneError extends Error {
2
2
  constructor(message, options) {
3
3
  super(message, options);
4
4
  this.name = new.target.name;
5
+ if (options?.code !== undefined) this.code = options.code;
6
+ if (options?.path !== undefined) this.path = options.path;
7
+ if (options?.nodeId !== undefined) this.nodeId = options.nodeId;
8
+ if (options?.edgeId !== undefined) this.edgeId = options.edgeId;
5
9
  }
6
10
  }
7
11
 
@@ -29,3 +33,20 @@ export function errorFromMessage(errorType, message, fallback) {
29
33
  const ErrorType = ERROR_TYPES[errorType] ?? EffeTuneRuntimeError;
30
34
  return new ErrorType(message || fallback);
31
35
  }
36
+
37
+ // Chain-level validation reports the human-readable message; Graph document
38
+ // normalization needs the machine-readable cause to classify the failure. The
39
+ // detail rides on a symbol key so Chain behaviour, serialization and existing
40
+ // error shapes stay unchanged.
41
+ export const VALIDATION_DETAIL = Symbol.for('effetune.validationDetail');
42
+
43
+ export function withValidationDetail(error, detail) {
44
+ if (error instanceof EffeTuneError && error[VALIDATION_DETAIL] === undefined) {
45
+ error[VALIDATION_DETAIL] = detail;
46
+ }
47
+ return error;
48
+ }
49
+
50
+ export function validationDetail(error) {
51
+ return error?.[VALIDATION_DETAIL];
52
+ }
@@ -1,8 +1,8 @@
1
1
  // Generated by scripts/gen-dsp-library-bindings.mjs. Do not edit.
2
2
  import { Effect } from './effect.js';
3
3
 
4
- export type EffectType = "LevelMeter" | "Oscilloscope" | "Spectrogram" | "SpectrumAnalyzer" | "StereoMeter" | "ChannelDivider" | "DCOffset" | "FIRCrossover" | "Matrix" | "MultiChannelPanel" | "Mute" | "PolarityInversion" | "StereoBalance" | "Volume" | "Delay" | "TimeAlignment" | "AutoLeveler" | "BrickwallLimiter" | "Compressor" | "Expander" | "Gate" | "MultibandCompressor" | "MultibandExpander" | "MultibandTransient" | "PowerAmpSag" | "TransientShaper" | "BandPassFilter" | "CombFilter" | "EarphoneCableSim" | "FifteenBandGEQ" | "FifteenBandPEQ" | "FiveBandDynamicEQ" | "FiveBandFIRPEQ" | "FiveBandPEQ" | "GroupDelayEQ" | "HiPassFilter" | "LoPassFilter" | "LoudnessEqualizer" | "NarrowRange" | "RoomEQ" | "TiltEQ" | "ToneControl" | "AMRadioSimulator" | "BitCrusher" | "BluetoothSBCSimulator" | "CassetteArtifacts" | "DigitalErrorEmulator" | "DSD64IMDSimulator" | "FMRadioSimulator" | "G726ADPCMSimulator" | "GSMFullRateSimulator" | "HumGenerator" | "MP3CodecSimulator" | "NoiseBlender" | "SimpleJitter" | "SWRadioSimulator" | "TapeArtifacts" | "VinylArtifacts" | "VinylSimulator" | "DopplerDistortion" | "PitchShifter" | "Tremolo" | "WowFlutter" | "Oscillator" | "HornResonator" | "HornResonatorPlus" | "ModalResonator" | "DattorroPlateReverb" | "FDNReverb" | "IRReverb" | "RSReverb" | "DynamicSaturation" | "Exciter" | "HardClipping" | "HarmonicDistortion" | "MultibandSaturation" | "Saturation" | "SubSynth" | "TubeSimulator" | "CrossfeedFilter" | "MSMatrix" | "MultibandBalance" | "StereoBlend";
5
- type RequiredAssetEffectType = "FIRCrossover" | "FiveBandFIRPEQ" | "GroupDelayEQ" | "RoomEQ" | "IRReverb";
4
+ export type EffectType = "LevelMeter" | "Oscilloscope" | "Spectrogram" | "SpectrumAnalyzer" | "StereoMeter" | "ChannelDivider" | "DCOffset" | "FIRCrossover" | "Matrix" | "MultiChannelPanel" | "Mute" | "PolarityInversion" | "StereoBalance" | "Volume" | "Delay" | "TimeAlignment" | "AutoLeveler" | "BrickwallLimiter" | "Compressor" | "Expander" | "Gate" | "MultibandCompressor" | "MultibandExpander" | "MultibandTransient" | "PowerAmpSag" | "TransientShaper" | "BandPassFilter" | "CombFilter" | "EarphoneCableSim" | "FifteenBandGEQ" | "FifteenBandPEQ" | "FiveBandDynamicEQ" | "FiveBandFIRPEQ" | "FiveBandPEQ" | "GroupDelayEQ" | "GroupDelayPEQ" | "HiPassFilter" | "LoPassFilter" | "LoudnessEqualizer" | "NarrowRange" | "RoomEQ" | "TiltEQ" | "ToneControl" | "AMRadioSimulator" | "BitCrusher" | "BluetoothSBCSimulator" | "CassetteArtifacts" | "DigitalErrorEmulator" | "DSD64IMDSimulator" | "FMRadioSimulator" | "G726ADPCMSimulator" | "GSMFullRateSimulator" | "HumGenerator" | "MDSimulator" | "MP3CodecSimulator" | "NoiseBlender" | "SimpleJitter" | "SWRadioSimulator" | "TapeArtifacts" | "VinylArtifacts" | "VinylSimulator" | "AutoFilter" | "AutoPan" | "Chorus" | "DopplerDistortion" | "FrequencyShifter" | "Phaser" | "PitchShifter" | "RotarySpeaker" | "Tremolo" | "WowFlutter" | "Oscillator" | "HornResonator" | "HornResonatorPlus" | "ModalResonator" | "DattorroPlateReverb" | "FDNReverb" | "IRReverb" | "RSReverb" | "DynamicSaturation" | "Exciter" | "HardClipping" | "HarmonicDistortion" | "MultibandSaturation" | "Saturation" | "SubSynth" | "TubeSimulator" | "CrossfeedFilter" | "MSMatrix" | "MultibandBalance" | "PhaseSelectEQ" | "StereoBlend";
5
+ type RequiredAssetEffectType = "FIRCrossover" | "FiveBandFIRPEQ" | "GroupDelayEQ" | "GroupDelayPEQ" | "RoomEQ" | "IRReverb";
6
6
  export type EffectChannel = "all" | "stereo" | "left" | "right" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "34" | "56" | "78";
7
7
 
8
8
  export interface CommonEffectOptions {
@@ -555,6 +555,19 @@ export declare class GroupDelayEQ extends Effect {
555
555
 
556
556
  export declare function createGroupDelayEQ(options: GroupDelayEQOptions): GroupDelayEQ;
557
557
 
558
+ export interface GroupDelayPEQOptions extends CommonEffectOptions {
559
+ readonly latencyMode?: "0" | "128" | "256" | "512" | "1024";
560
+ readonly filterDelaySamples?: number;
561
+ readonly assets: IRReverbAssets;
562
+ }
563
+
564
+ export declare class GroupDelayPEQ extends Effect {
565
+ static readonly effectType: "GroupDelayPEQ";
566
+ constructor(options: GroupDelayPEQOptions);
567
+ }
568
+
569
+ export declare function createGroupDelayPEQ(options: GroupDelayPEQOptions): GroupDelayPEQ;
570
+
558
571
  export interface HiPassFilterOptions extends CommonEffectOptions {
559
572
  readonly frequency?: number;
560
573
  readonly slope?: 0 | -12 | -24 | -36 | -48 | -60 | -72 | -84 | -96;
@@ -853,6 +866,20 @@ export declare class HumGenerator extends Effect {
853
866
 
854
867
  export declare function createHumGenerator(options?: HumGeneratorOptions): HumGenerator;
855
868
 
869
+ export interface MDSimulatorOptions extends CommonEffectOptions {
870
+ readonly mode?: "SP (292 kbps)" | "LP2 (132 kbps)" | "LP4 (66 kbps)";
871
+ readonly outputGain?: number;
872
+ readonly mix?: number;
873
+ readonly assets?: never;
874
+ }
875
+
876
+ export declare class MDSimulator extends Effect {
877
+ static readonly effectType: "MDSimulator";
878
+ constructor(options?: MDSimulatorOptions);
879
+ }
880
+
881
+ export declare function createMDSimulator(options?: MDSimulatorOptions): MDSimulator;
882
+
856
883
  export interface MP3CodecSimulatorOptions extends CommonEffectOptions {
857
884
  readonly codecRate?: "22.05 kHz (MPEG-2)" | "44.1 kHz (MPEG-1)";
858
885
  readonly bitrate?: "32" | "48" | "64" | "80" | "96" | "112" | "128" | "160" | "192" | "224" | "256" | "320";
@@ -1004,6 +1031,66 @@ export declare class VinylSimulator extends Effect {
1004
1031
 
1005
1032
  export declare function createVinylSimulator(options?: VinylSimulatorOptions): VinylSimulator;
1006
1033
 
1034
+ export interface AutoFilterOptions extends CommonEffectOptions {
1035
+ readonly mode?: "LFO" | "Envelope";
1036
+ readonly filterType?: "Low-pass" | "Band-pass" | "High-pass";
1037
+ readonly minimumFrequency?: number;
1038
+ readonly maximumFrequency?: number;
1039
+ readonly resonance?: number;
1040
+ readonly mix?: number;
1041
+ readonly rate?: number;
1042
+ readonly waveform?: "Sine" | "Triangle";
1043
+ readonly stereoPhase?: number;
1044
+ readonly sensitivity?: number;
1045
+ readonly attack?: number;
1046
+ readonly release?: number;
1047
+ readonly direction?: "Up" | "Down";
1048
+ readonly assets?: never;
1049
+ }
1050
+
1051
+ export declare class AutoFilter extends Effect {
1052
+ static readonly effectType: "AutoFilter";
1053
+ constructor(options?: AutoFilterOptions);
1054
+ }
1055
+
1056
+ export declare function createAutoFilter(options?: AutoFilterOptions): AutoFilter;
1057
+
1058
+ export interface AutoPanOptions extends CommonEffectOptions {
1059
+ readonly rate?: number;
1060
+ readonly depth?: number;
1061
+ readonly center?: number;
1062
+ readonly width?: number;
1063
+ readonly waveform?: "Sine" | "Triangle";
1064
+ readonly phase?: number;
1065
+ readonly assets?: never;
1066
+ }
1067
+
1068
+ export declare class AutoPan extends Effect {
1069
+ static readonly effectType: "AutoPan";
1070
+ constructor(options?: AutoPanOptions);
1071
+ }
1072
+
1073
+ export declare function createAutoPan(options?: AutoPanOptions): AutoPan;
1074
+
1075
+ export interface ChorusOptions extends CommonEffectOptions {
1076
+ readonly mode?: "Chorus" | "Stereo Chorus" | "Ensemble" | "Flanger" | "Vibrato";
1077
+ readonly rate?: number;
1078
+ readonly delay?: number;
1079
+ readonly depth?: number;
1080
+ readonly voices?: number;
1081
+ readonly stereoSpread?: number;
1082
+ readonly feedback?: number;
1083
+ readonly mix?: number;
1084
+ readonly assets?: never;
1085
+ }
1086
+
1087
+ export declare class Chorus extends Effect {
1088
+ static readonly effectType: "Chorus";
1089
+ constructor(options?: ChorusOptions);
1090
+ }
1091
+
1092
+ export declare function createChorus(options?: ChorusOptions): Chorus;
1093
+
1007
1094
  export interface DopplerDistortionOptions extends CommonEffectOptions {
1008
1095
  readonly coilForce?: number;
1009
1096
  readonly speakerMass?: number;
@@ -1019,6 +1106,46 @@ export declare class DopplerDistortion extends Effect {
1019
1106
 
1020
1107
  export declare function createDopplerDistortion(options?: DopplerDistortionOptions): DopplerDistortion;
1021
1108
 
1109
+ export interface FrequencyShifterOptions extends CommonEffectOptions {
1110
+ readonly mode?: "Shift" | "Ring Mod" | "Barber-pole";
1111
+ readonly shift?: number;
1112
+ readonly carrierFrequency?: number;
1113
+ readonly minimumShift?: number;
1114
+ readonly maximumShift?: number;
1115
+ readonly rate?: number;
1116
+ readonly direction?: "Up" | "Down";
1117
+ readonly stereoPhase?: number;
1118
+ readonly mix?: number;
1119
+ readonly assets?: never;
1120
+ }
1121
+
1122
+ export declare class FrequencyShifter extends Effect {
1123
+ static readonly effectType: "FrequencyShifter";
1124
+ constructor(options?: FrequencyShifterOptions);
1125
+ }
1126
+
1127
+ export declare function createFrequencyShifter(options?: FrequencyShifterOptions): FrequencyShifter;
1128
+
1129
+ export interface PhaserOptions extends CommonEffectOptions {
1130
+ readonly mode?: "Classic" | "Barber-pole";
1131
+ readonly rate?: number;
1132
+ readonly centerFrequency?: number;
1133
+ readonly range?: number;
1134
+ readonly stages?: 2 | 4 | 6 | 8 | 10 | 12;
1135
+ readonly feedback?: number;
1136
+ readonly stereoPhase?: number;
1137
+ readonly direction?: "Up" | "Down";
1138
+ readonly mix?: number;
1139
+ readonly assets?: never;
1140
+ }
1141
+
1142
+ export declare class Phaser extends Effect {
1143
+ static readonly effectType: "Phaser";
1144
+ constructor(options?: PhaserOptions);
1145
+ }
1146
+
1147
+ export declare function createPhaser(options?: PhaserOptions): Phaser;
1148
+
1022
1149
  export interface PitchShifterOptions extends CommonEffectOptions {
1023
1150
  readonly pitchShift?: number;
1024
1151
  readonly fineTune?: number;
@@ -1034,6 +1161,26 @@ export declare class PitchShifter extends Effect {
1034
1161
 
1035
1162
  export declare function createPitchShifter(options?: PitchShifterOptions): PitchShifter;
1036
1163
 
1164
+ export interface RotarySpeakerOptions extends CommonEffectOptions {
1165
+ readonly speedState?: "Stop" | "Slow" | "Fast";
1166
+ readonly speed?: number;
1167
+ readonly acceleration?: number;
1168
+ readonly crossover?: number;
1169
+ readonly rotorBalance?: number;
1170
+ readonly stereoWidth?: number;
1171
+ readonly dopplerDepth?: number;
1172
+ readonly amplitudeDepth?: number;
1173
+ readonly mix?: number;
1174
+ readonly assets?: never;
1175
+ }
1176
+
1177
+ export declare class RotarySpeaker extends Effect {
1178
+ static readonly effectType: "RotarySpeaker";
1179
+ constructor(options?: RotarySpeakerOptions);
1180
+ }
1181
+
1182
+ export declare function createRotarySpeaker(options?: RotarySpeakerOptions): RotarySpeaker;
1183
+
1037
1184
  export interface TremoloOptions extends CommonEffectOptions {
1038
1185
  readonly rate?: number;
1039
1186
  readonly depth?: number;
@@ -1195,6 +1342,7 @@ export interface IRReverbOptions extends CommonEffectOptions {
1195
1342
  readonly latency?: 0 | 128 | 256 | 512 | 1024;
1196
1343
  readonly convolutionRate?: "auto" | "full" | "half" | "quarter";
1197
1344
  readonly wetLevel?: number;
1345
+ readonly dryEnabled?: boolean;
1198
1346
  readonly dryLevel?: number;
1199
1347
  readonly preDelay?: number;
1200
1348
  readonly assets: IRReverbAssets;
@@ -1345,7 +1493,7 @@ export declare function createSubSynth(options?: SubSynthOptions): SubSynth;
1345
1493
 
1346
1494
  export interface TubeSimulatorOptions extends CommonEffectOptions {
1347
1495
  readonly inputVolume?: number;
1348
- readonly tube?: "12AX7" | "12AT7" | "12AU7";
1496
+ readonly tube?: "12AX7" | "12AT7" | "12AU7" | "Bypass";
1349
1497
  readonly bias?: number;
1350
1498
  readonly plateVoltage?: number;
1351
1499
  readonly sourceImpedance?: number;
@@ -1354,8 +1502,8 @@ export interface TubeSimulatorOptions extends CommonEffectOptions {
1354
1502
  readonly mix?: number;
1355
1503
  readonly inputReference?: number;
1356
1504
  readonly negativeFeedback?: number;
1357
- readonly outputStage?: "Line" | "Power";
1358
- readonly powerTube?: "EL84" | "EL34";
1505
+ readonly outputStage?: "Line" | "Power" | "SingleEnded";
1506
+ readonly powerTube?: "EL84" | "EL34" | "6L6GC" | "KT88";
1359
1507
  readonly powerBPlus?: number;
1360
1508
  readonly cathodeResistor?: number;
1361
1509
  readonly screenTap?: "0" | "20" | "43";
@@ -1364,6 +1512,10 @@ export interface TubeSimulatorOptions extends CommonEffectOptions {
1364
1512
  readonly actualSpeakerLoad?: number;
1365
1513
  readonly safetyTrim?: number;
1366
1514
  readonly autoGainReduction?: boolean;
1515
+ readonly seTube?: "300B" | "2A3";
1516
+ readonly seBPlus?: number;
1517
+ readonly seCathodeResistor?: number;
1518
+ readonly sePrimaryImpedance?: "2.5" | "3.5" | "5.0";
1367
1519
  readonly assets?: never;
1368
1520
  }
1369
1521
 
@@ -1419,6 +1571,32 @@ export declare class MultibandBalance extends Effect {
1419
1571
 
1420
1572
  export declare function createMultibandBalance(options?: MultibandBalanceOptions): MultibandBalance;
1421
1573
 
1574
+ export interface PhaseSelectEQOptions extends CommonEffectOptions {
1575
+ readonly regionEnabled?: readonly [boolean, boolean, boolean, boolean, boolean];
1576
+ readonly outerFrequencyLow?: readonly [number, number, number, number, number];
1577
+ readonly coreFrequencyLow?: readonly [number, number, number, number, number];
1578
+ readonly coreFrequencyHigh?: readonly [number, number, number, number, number];
1579
+ readonly outerFrequencyHigh?: readonly [number, number, number, number, number];
1580
+ readonly outerPhaseLow?: readonly [number, number, number, number, number];
1581
+ readonly corePhaseLow?: readonly [number, number, number, number, number];
1582
+ readonly corePhaseHigh?: readonly [number, number, number, number, number];
1583
+ readonly outerPhaseHigh?: readonly [number, number, number, number, number];
1584
+ readonly gain?: readonly [number, number, number, number, number];
1585
+ readonly regionSolo?: readonly [boolean, boolean, boolean, boolean, boolean];
1586
+ readonly outerBalanceLow?: readonly [number, number, number, number, number];
1587
+ readonly coreBalanceLow?: readonly [number, number, number, number, number];
1588
+ readonly coreBalanceHigh?: readonly [number, number, number, number, number];
1589
+ readonly outerBalanceHigh?: readonly [number, number, number, number, number];
1590
+ readonly assets?: never;
1591
+ }
1592
+
1593
+ export declare class PhaseSelectEQ extends Effect {
1594
+ static readonly effectType: "PhaseSelectEQ";
1595
+ constructor(options?: PhaseSelectEQOptions);
1596
+ }
1597
+
1598
+ export declare function createPhaseSelectEQ(options?: PhaseSelectEQOptions): PhaseSelectEQ;
1599
+
1422
1600
  export interface StereoBlendOptions extends CommonEffectOptions {
1423
1601
  readonly stereo?: number;
1424
1602
  readonly assets?: never;
@@ -1467,6 +1645,7 @@ export interface EffectOptionsByType {
1467
1645
  readonly FiveBandFIRPEQ: FiveBandFIRPEQOptions;
1468
1646
  readonly FiveBandPEQ: FiveBandPEQOptions;
1469
1647
  readonly GroupDelayEQ: GroupDelayEQOptions;
1648
+ readonly GroupDelayPEQ: GroupDelayPEQOptions;
1470
1649
  readonly HiPassFilter: HiPassFilterOptions;
1471
1650
  readonly LoPassFilter: LoPassFilterOptions;
1472
1651
  readonly LoudnessEqualizer: LoudnessEqualizerOptions;
@@ -1484,6 +1663,7 @@ export interface EffectOptionsByType {
1484
1663
  readonly G726ADPCMSimulator: G726ADPCMSimulatorOptions;
1485
1664
  readonly GSMFullRateSimulator: GSMFullRateSimulatorOptions;
1486
1665
  readonly HumGenerator: HumGeneratorOptions;
1666
+ readonly MDSimulator: MDSimulatorOptions;
1487
1667
  readonly MP3CodecSimulator: MP3CodecSimulatorOptions;
1488
1668
  readonly NoiseBlender: NoiseBlenderOptions;
1489
1669
  readonly SimpleJitter: SimpleJitterOptions;
@@ -1491,8 +1671,14 @@ export interface EffectOptionsByType {
1491
1671
  readonly TapeArtifacts: TapeArtifactsOptions;
1492
1672
  readonly VinylArtifacts: VinylArtifactsOptions;
1493
1673
  readonly VinylSimulator: VinylSimulatorOptions;
1674
+ readonly AutoFilter: AutoFilterOptions;
1675
+ readonly AutoPan: AutoPanOptions;
1676
+ readonly Chorus: ChorusOptions;
1494
1677
  readonly DopplerDistortion: DopplerDistortionOptions;
1678
+ readonly FrequencyShifter: FrequencyShifterOptions;
1679
+ readonly Phaser: PhaserOptions;
1495
1680
  readonly PitchShifter: PitchShifterOptions;
1681
+ readonly RotarySpeaker: RotarySpeakerOptions;
1496
1682
  readonly Tremolo: TremoloOptions;
1497
1683
  readonly WowFlutter: WowFlutterOptions;
1498
1684
  readonly Oscillator: OscillatorOptions;
@@ -1514,6 +1700,7 @@ export interface EffectOptionsByType {
1514
1700
  readonly CrossfeedFilter: CrossfeedFilterOptions;
1515
1701
  readonly MSMatrix: MSMatrixOptions;
1516
1702
  readonly MultibandBalance: MultibandBalanceOptions;
1703
+ readonly PhaseSelectEQ: PhaseSelectEQOptions;
1517
1704
  readonly StereoBlend: StereoBlendOptions;
1518
1705
  }
1519
1706
 
@@ -1553,6 +1740,7 @@ export interface EffectClassByType {
1553
1740
  readonly FiveBandFIRPEQ: FiveBandFIRPEQ;
1554
1741
  readonly FiveBandPEQ: FiveBandPEQ;
1555
1742
  readonly GroupDelayEQ: GroupDelayEQ;
1743
+ readonly GroupDelayPEQ: GroupDelayPEQ;
1556
1744
  readonly HiPassFilter: HiPassFilter;
1557
1745
  readonly LoPassFilter: LoPassFilter;
1558
1746
  readonly LoudnessEqualizer: LoudnessEqualizer;
@@ -1570,6 +1758,7 @@ export interface EffectClassByType {
1570
1758
  readonly G726ADPCMSimulator: G726ADPCMSimulator;
1571
1759
  readonly GSMFullRateSimulator: GSMFullRateSimulator;
1572
1760
  readonly HumGenerator: HumGenerator;
1761
+ readonly MDSimulator: MDSimulator;
1573
1762
  readonly MP3CodecSimulator: MP3CodecSimulator;
1574
1763
  readonly NoiseBlender: NoiseBlender;
1575
1764
  readonly SimpleJitter: SimpleJitter;
@@ -1577,8 +1766,14 @@ export interface EffectClassByType {
1577
1766
  readonly TapeArtifacts: TapeArtifacts;
1578
1767
  readonly VinylArtifacts: VinylArtifacts;
1579
1768
  readonly VinylSimulator: VinylSimulator;
1769
+ readonly AutoFilter: AutoFilter;
1770
+ readonly AutoPan: AutoPan;
1771
+ readonly Chorus: Chorus;
1580
1772
  readonly DopplerDistortion: DopplerDistortion;
1773
+ readonly FrequencyShifter: FrequencyShifter;
1774
+ readonly Phaser: Phaser;
1581
1775
  readonly PitchShifter: PitchShifter;
1776
+ readonly RotarySpeaker: RotarySpeaker;
1582
1777
  readonly Tremolo: Tremolo;
1583
1778
  readonly WowFlutter: WowFlutter;
1584
1779
  readonly Oscillator: Oscillator;
@@ -1600,6 +1795,7 @@ export interface EffectClassByType {
1600
1795
  readonly CrossfeedFilter: CrossfeedFilter;
1601
1796
  readonly MSMatrix: MSMatrix;
1602
1797
  readonly MultibandBalance: MultibandBalance;
1798
+ readonly PhaseSelectEQ: PhaseSelectEQ;
1603
1799
  readonly StereoBlend: StereoBlend;
1604
1800
  }
1605
1801