Skip to content

EZ Web Audio / createOscillator

Function: createOscillator() ​

Call Signature ​

createOscillator(options?): Promise<Oscillator>

Defined in: packages/core/src/index.ts:756

Create an Oscillator for synthesizing audio from waveforms.

Oscillators generate sound from sine, square, sawtooth, or triangle waves. They support filters for tone shaping and ADSR envelopes for professional-quality synthesis.

Parameters ​

options? ​

OscillatorOptions

Optional oscillator configuration (frequency, type, filters, envelope)

Returns ​

Promise<Oscillator>

Promise resolving to an Oscillator instance

Example ​

typescript
import { createOscillator } from 'ez-web-audio'

// Simple sine wave at 440Hz (A4)
const synth = await createOscillator({ frequency: 440, type: 'sine' })
synth.play()
setTimeout(() => synth.stop(), 500)

// With ADSR envelope for piano-like decay
const piano = await createOscillator({
  frequency: 440,
  type: 'triangle',
  envelope: { attack: 0.01, decay: 0.3, sustain: 0.4, release: 0.5 }
})
piano.play()

// Using note name instead of frequency
const a4 = await createOscillator({ note: 'A4', type: 'sine' })
a4.play()

Call Signature ​

createOscillator(audioContext, options?): Promise<Oscillator>

Defined in: packages/core/src/index.ts:757

Create an Oscillator for synthesizing audio from waveforms.

Oscillators generate sound from sine, square, sawtooth, or triangle waves. They support filters for tone shaping and ADSR envelopes for professional-quality synthesis.

Parameters ​

audioContext ​

BaseAudioContext

options? ​

OscillatorOptions

Optional oscillator configuration (frequency, type, filters, envelope)

Returns ​

Promise<Oscillator>

Promise resolving to an Oscillator instance

Example ​

typescript
import { createOscillator } from 'ez-web-audio'

// Simple sine wave at 440Hz (A4)
const synth = await createOscillator({ frequency: 440, type: 'sine' })
synth.play()
setTimeout(() => synth.stop(), 500)

// With ADSR envelope for piano-like decay
const piano = await createOscillator({
  frequency: 440,
  type: 'triangle',
  envelope: { attack: 0.01, decay: 0.3, sustain: 0.4, release: 0.5 }
})
piano.play()

// Using note name instead of frequency
const a4 = await createOscillator({ note: 'A4', type: 'sine' })
a4.play()