The purpose of this kata is to understand the use of sampling in music production and learn how to do sample playback in Web Audio.
The minimal target of this kata is to get acquainted with the concept of sampling:
- Loading a sample
- Setting up multiple sampled instruments
- Understanding the basic theory behind sampling
Complete the following:
- Set up a window where to load custom, sampled instruments
- Define several custom instruments using samples. Piano and different types of drums (see @teropa/drumkit) are good examples. You can find free-to-use samples on places like freesound.org.
- Optional - Make the samples play at different pitches (i.e., notes) by changing the playback rate.
- Optional - Load and play a looping sample such as the Amen break.
- Optional - Refactor your code to use a Tone.js Sampler
- Optional - Add an audio visualizer window to show the current waveform
- Optional - Figure out where the standard 44100 Hz and 48000 Hz sampling frequencies come from and what the implications of this limit for signal processing
- Optional - Record user audio to use as an instrument. See reference.
- Loading sound (MDN)
- High-resolution real-time spectrum analyzer and music player using Web Audio and Canvas APIs
- Getting started with Web Audio API - Note that this uses an outdated, Chrome-specific API so you have to doublecheck the API calls (
start
instead ofnoteOn
etc.)!
- Sample rates and audio sampling: a guide for beginners
- Every noise at once
- Ishkur's guide to music
- Nyquist frequency
- Foley (wikipedia)
- How Music Affects Your Productivity
- Why do people love electronic music?
- Loudness war
- Interactive Sound and Visuals: A Tone.js and p5.js Beginner's Guide - Paid course
- Web Audio Synthesis & Visualization - Paid course
- Realtime Music Visualizer
- Visualizations with Web Audio API
- May the 4th be with you, in a new documentary on the sounds of Skywalker
- Behind the Mac: Skywalker Sound | Apple (video)
- Why Does Tears Of The Kingdom Sound So Good? - Good intro to tonality