The purpose of this kata is to implement simple oscillators as the first part of our DAW.
The minimal target of this kata is to get started with the Audio API and understand oscillators on a basic level:
- Initializing Web Audio
- Understanding what is an oscillator
- Setting up an oscillator
Complete the following:
- Add a window with controls to start and stop playback
- Attach a Web Audio based sine wave oscillator to the controls so that it plays when you click start and stops when you click stop
- Add a volume control
- Add a control for adjusting oscillator frequency
- Allow adjusting the volume in decibels
- Optional - Add a control that lets the use to change the oscillator type (not just sine)
- Optional - Make the frequency of the oscillator slowly change over time (Hint: make another oscillator and connect it to your oscillator's frequency)
- Optional - Set up a random noise generator
- Optional - Allow mixing between oscillator and random noise
- Optional - Add a window for displaying and debugging application state
- Optional - Add a way to save oscillators
- Optional - Add a way to duplicate oscillators and play multiple at once
- Optional - Implement a theremin to allow adjusting two parameters (volume, frequence for example) of a waveform using a single control. A 2D slider is a good choice for this.
- Nexus - UI helpers for audio interfaces
- classList API
- HTML range input
- UTF media control symbols
- HTML button element
- Web Audio API specification
- Autoplay policy in Chrome
- OscillatorNode
- Oscillator examples
- createPeriodicWave
- Web Audio API reference at MDN
- Using the Web Audio API
- Web Audio API: Why Compose When You Can Code?
- Introduction to the Web Audio API at ui.dev
- Web Audio related libraries on GitHub
- A Different Introduction to the Web Audio API - Great visual explanations
- Exploring FM synthesis
- Various Web Audio API examples by Josh Reiss
- Using Fourier Transforms with Web Audio API
- Profiling Web Audio apps in Chrome
- Get started making sounds
- How synths make sound?
- How to make chiptunes
- Fourier transform (wikipedia)
- What is FM synthesis? The ultimate beginner's guide
- Polyphony and monophony in instruments (wikipedia)
- A Preliminary Theory of Sound Design
- Matrixsynth - Everything synth