or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

Files

docs

components.mdcore.mdeffects.mdevents.mdindex.mdinstruments.mdsignals.mdsources.md

effects.mddocs/

0

# Audio Effects

1

2

Comprehensive collection of audio effects including reverbs, delays, modulation, and distortion effects for processing audio signals.

3

4

## Capabilities

5

6

### Reverb Effects

7

8

Spatial reverb effects for creating sense of space and ambience.

9

10

```typescript { .api }

11

/**

12

* Convolution reverb using impulse responses

13

*/

14

class Reverb {

15

constructor(roomSize?: NormalRange);

16

17

/** Room size parameter */

18

roomSize: NormalRange;

19

20

/** Presets for different room types */

21

presets: {[name: string]: string};

22

23

/** Generate impulse response */

24

generate(): Promise<this>;

25

26

/** Connect to destination */

27

connect(destination: AudioNode): this;

28

}

29

30

/**

31

* Freeverb algorithm reverb

32

*/

33

class Freeverb {

34

constructor(roomSize?: NormalRange, dampening?: NormalRange);

35

36

/** Room size parameter */

37

roomSize: Signal<"normalRange">;

38

39

/** Dampening parameter */

40

dampening: Signal<"frequency">;

41

42

/** Wet/dry mix */

43

wet: Signal<"normalRange">;

44

}

45

46

/**

47

* John Chowning reverb algorithm

48

*/

49

class JCReverb {

50

constructor(roomSize?: NormalRange);

51

52

/** Room size parameter */

53

roomSize: Signal<"normalRange">;

54

}

55

```

56

57

### Delay Effects

58

59

Time-based delay effects for echoes and rhythmic patterns.

60

61

```typescript { .api }

62

/**

63

* Delay with feedback control

64

*/

65

class FeedbackDelay {

66

constructor(delayTime?: Time, feedback?: NormalRange);

67

68

/** Delay time */

69

delayTime: Signal<"time">;

70

71

/** Feedback amount */

72

feedback: Signal<"normalRange">;

73

74

/** Wet/dry mix */

75

wet: Signal<"normalRange">;

76

77

/** Connect to destination */

78

toDestination(): this;

79

}

80

81

/**

82

* Stereo ping-pong delay

83

*/

84

class PingPongDelay {

85

constructor(delayTime?: Time, feedback?: NormalRange);

86

87

/** Delay time */

88

delayTime: Signal<"time">;

89

90

/** Feedback amount */

91

feedback: Signal<"normalRange">;

92

93

/** Wet/dry mix */

94

wet: Signal<"normalRange">;

95

}

96

```

97

98

### Modulation Effects

99

100

Effects that modulate audio parameters over time.

101

102

```typescript { .api }

103

/**

104

* Chorus effect with multiple delayed voices

105

*/

106

class Chorus {

107

constructor(frequency?: Frequency, delayTime?: number, depth?: NormalRange);

108

109

/** LFO frequency */

110

frequency: Signal<"frequency">;

111

112

/** Delay time */

113

delayTime: number;

114

115

/** Modulation depth */

116

depth: NormalRange;

117

118

/** LFO type */

119

type: ToneOscillatorType;

120

121

/** Spread between voices */

122

spread: Degrees;

123

124

/** Start the LFO */

125

start(time?: Time): this;

126

127

/** Stop the LFO */

128

stop(time?: Time): this;

129

}

130

131

/**

132

* Phaser effect

133

*/

134

class Phaser {

135

constructor(frequency?: Frequency, octaves?: number, baseFrequency?: Frequency);

136

137

/** LFO frequency */

138

frequency: Signal<"frequency">;

139

140

/** Number of octaves */

141

octaves: number;

142

143

/** Base frequency for filtering */

144

baseFrequency: Frequency;

145

146

/** Feedback amount */

147

Q: Signal<"positive">;

148

}

149

150

/**

151

* Tremolo (amplitude modulation)

152

*/

153

class Tremolo {

154

constructor(frequency?: Frequency, depth?: NormalRange);

155

156

/** LFO frequency */

157

frequency: Signal<"frequency">;

158

159

/** Modulation depth */

160

depth: Signal<"normalRange">;

161

162

/** LFO type */

163

type: ToneOscillatorType;

164

165

/** Spread for stereo tremolo */

166

spread: Degrees;

167

168

/** Start the LFO */

169

start(time?: Time): this;

170

171

/** Stop the LFO */

172

stop(time?: Time): this;

173

}

174

175

/**

176

* Vibrato (frequency modulation)

177

*/

178

class Vibrato {

179

constructor(frequency?: Frequency, depth?: NormalRange);

180

181

/** LFO frequency */

182

frequency: Signal<"frequency">;

183

184

/** Modulation depth */

185

depth: Signal<"normalRange">;

186

187

/** LFO type */

188

type: "sine" | "square" | "triangle" | "sawtooth";

189

}

190

191

/**

192

* Auto-filter (filter sweep)

193

*/

194

class AutoFilter {

195

constructor(frequency?: Frequency, baseFrequency?: Frequency, octaves?: number);

196

197

/** LFO frequency */

198

frequency: Signal<"frequency">;

199

200

/** Modulation depth */

201

depth: Signal<"normalRange">;

202

203

/** Base frequency */

204

baseFrequency: Frequency;

205

206

/** Number of octaves to sweep */

207

octaves: number;

208

209

/** LFO type */

210

type: ToneOscillatorType;

211

212

/** Start the LFO */

213

start(time?: Time): this;

214

215

/** Stop the LFO */

216

stop(time?: Time): this;

217

218

/** Filter instance for additional configuration */

219

readonly filter: Filter;

220

}

221

222

/**

223

* Auto-panner

224

*/

225

class AutoPanner {

226

constructor(frequency?: Frequency);

227

228

/** LFO frequency */

229

frequency: Signal<"frequency">;

230

231

/** Modulation depth */

232

depth: Signal<"normalRange">;

233

234

/** LFO type */

235

type: ToneOscillatorType;

236

237

/** Start the LFO */

238

start(time?: Time): this;

239

240

/** Stop the LFO */

241

stop(time?: Time): this;

242

}

243

244

/**

245

* Auto-wah effect

246

*/

247

class AutoWah {

248

constructor(baseFrequency?: Frequency, octaves?: number, sensitivity?: Decibels);

249

250

/** Base frequency */

251

baseFrequency: Frequency;

252

253

/** Number of octaves */

254

octaves: number;

255

256

/** Input sensitivity */

257

sensitivity: Decibels;

258

259

/** Filter Q */

260

Q: Signal<"positive">;

261

262

/** Follower gain */

263

gain: Signal<"decibels">;

264

}

265

```

266

267

### Distortion Effects

268

269

Effects that add harmonic content and saturation.

270

271

```typescript { .api }

272

/**

273

* Waveshaping distortion

274

*/

275

class Distortion {

276

constructor(distortion?: NormalRange);

277

278

/** Distortion amount */

279

distortion: NormalRange;

280

281

/** Oversampling factor */

282

oversample: "none" | "2x" | "4x";

283

284

/** Wet/dry mix */

285

wet: Signal<"normalRange">;

286

}

287

288

/**

289

* Bit crusher for digital distortion

290

*/

291

class BitCrusher {

292

constructor(bits?: number);

293

294

/** Bit depth */

295

bits: Signal<"positive">;

296

297

/** Wet/dry mix */

298

wet: Signal<"normalRange">;

299

}

300

301

/**

302

* Chebyshev waveshaping

303

*/

304

class Chebyshev {

305

constructor(order?: number);

306

307

/** Polynomial order */

308

order: number;

309

310

/** Oversampling factor */

311

oversample: "none" | "2x" | "4x";

312

313

/** Wet/dry mix */

314

wet: Signal<"normalRange">;

315

}

316

```

317

318

### Pitch Effects

319

320

Effects that manipulate pitch and frequency content.

321

322

```typescript { .api }

323

/**

324

* Real-time pitch shifting

325

*/

326

class PitchShift {

327

constructor(shift?: number);

328

329

/** Pitch shift in semitones */

330

pitch: Signal<"cents">;

331

332

/** Window size for granular processing */

333

windowSize: number;

334

335

/** Delay time */

336

delayTime: Time;

337

338

/** Feedback amount */

339

feedback: Signal<"normalRange">;

340

341

/** Wet/dry mix */

342

wet: Signal<"normalRange">;

343

}

344

345

/**

346

* Frequency domain shifting

347

*/

348

class FrequencyShifter {

349

constructor(frequency?: Frequency);

350

351

/** Frequency shift amount */

352

frequency: Signal<"frequency">;

353

354

/** Wet/dry mix */

355

wet: Signal<"normalRange">;

356

}

357

```

358

359

### Stereo Effects

360

361

Effects that manipulate stereo field and imaging.

362

363

```typescript { .api }

364

/**

365

* Stereo width adjustment

366

*/

367

class StereoWidener {

368

constructor(width?: NormalRange);

369

370

/** Stereo width (0 = mono, 1 = normal, >1 = wider) */

371

width: Signal<"normalRange">;

372

}

373

```

374

375

**Usage Examples:**

376

377

```typescript

378

import { Synth, Reverb, FeedbackDelay, Chorus, start } from "tone";

379

380

await start();

381

382

// Create synth with effects chain

383

const synth = new Synth();

384

const chorus = new Chorus(4, 2.5, 0.5);

385

const delay = new FeedbackDelay("8n", 0.3);

386

const reverb = new Reverb(0.4);

387

388

// Connect in series

389

synth.chain(chorus, delay, reverb, Tone.getDestination());

390

391

// Play with effects

392

synth.triggerAttackRelease("C4", "4n");

393

394

// Animate effect parameters

395

reverb.roomSize = 0.8;

396

delay.feedback.rampTo(0.6, 2);

397

chorus.frequency.rampTo(8, 4);

398

```

399

400

## Types

401

402

```typescript { .api }

403

type BiquadFilterType = "lowpass" | "highpass" | "bandpass" | "lowshelf" | "highshelf" | "notch" | "allpass" | "peaking";

404

405

type ToneOscillatorType = "sine" | "square" | "triangle" | "sawtooth" | "sine2" | "sine3" | "sine4" | "sine5" | "sine6" | "sine7" | "sine8" | "triangle2" | "triangle3" | "triangle4" | "triangle5" | "triangle6" | "triangle7" | "triangle8" | "square2" | "square3" | "square4" | "square5" | "square6" | "square7" | "square8" | "sawtooth2" | "sawtooth3" | "sawtooth4" | "sawtooth5" | "sawtooth6" | "sawtooth7" | "sawtooth8" | string;

406

407

interface FeedbackDelayOptions {

408

delayTime: Time;

409

feedback: NormalRange;

410

wet: NormalRange;

411

maxDelay: number;

412

}

413

414

interface ReverbOptions {

415

roomSize: NormalRange;

416

dampening: NormalRange;

417

}

418

419

interface ChorusOptions {

420

frequency: Frequency;

421

delayTime: number;

422

depth: NormalRange;

423

type: "sine" | "square" | "triangle" | "sawtooth";

424

spread: Degrees;

425

}

426

427

interface DistortionOptions {

428

distortion: NormalRange;

429

oversample: "none" | "2x" | "4x";

430

wet: NormalRange;

431

}

432

```