The purpose of this kata is to get familiar with the idea of music sequencing and its impact on music production.
The minimal target of this kata is to understand the basic ideas behind sequencing:
- Setting up a minimal sequencer to allow definition of simple songs manually
- Understanding different forms of sequencing
Complete the following:
- Set up a window with a simple piano roll user interface that contains rows of toggleable buttons. Each row represents a sequence of steps and each column represents a note within the step.
- Write a sequencer that plays the notes that are currently activated in the piano roll. When a button is enabled, a note should be played. When disabled, nothing should happen. In the first phase, it is enough to play monophonically, supporting only one note per column.
- Optional - Make the sequencer polyphonic, support playing multiple notes per column.
- Optional - Allow adjusting tempo.
- Optional - Allow setting up multiple tracks. For example, you could associate a sequencer window to a specific instrument and allow creation of multiple sequencer windows to model the feature.
- Optional - Implement a drum machine. This is similar to the first task but instead of notes, each row should trigger different drum instruments and play samples.
- Optional - Match the four oscillators of the original 8-bit Nintendo and allow composing using them
- Optional - Allow playback of notes and play some legendary tune (Mario, Zelda, ...) through your system. To do this, you might need to implement some form of parser depending on the notation (pun intended).
- Understanding The Web Audio Clock
- A Tale of Two Clocks
- Advanced techniques: Creating and sequencing audio
- Sequencer example
- Using IIR Filters
- Web audio spatialization basics
- WASM SYNTH, or, how music taught me the beauty of math
- WebularSynth
- webaudio-tinysynth
- akx/tlfe-soundthing
- akx's Web Audio demos
- Web Audio/MIDI Samples by Google Chrome Web Audio team
- Beat and tempo explained
- Music tracker (wikipedia)
- Classic drum patterns
- Instructions on how to write music
- Sonata form
- Using Tonnetz Tone Mesh To Understand Jazz Harmony
- Roland50 Studio
- iO-808
- The Mini Moog Factory
- GarageBand
- SuperCollider
- VCV Rack - The Eurorack simulator
- Native Instruments
- Online synths
- mmontag/dx7-synth-js
- Global Sequencer
- Amped Studio
- Yamaha DX7 (wikipedia)
- Roland MT-32 (wikipedia)
- Richard Devine's Eurorack setup
- GROOVE systems
- websid
- I Dream of Wires
- Sisters with Transistors
- Subharcord
- 808: The Film
- Wendy Carlos and her Moog synthesizer
- 2nd Reality - Skaven - Impulse Tracker
- Tubular Bells (wikipedia)
- Popcorn (wikipedia) - song
- Relax (wikipedia)
- Sweet Dreams (wikipedia)
- Kreuzspiel – Stockhausen
- Rituals - Venice #20
- Kraftwerk
- Daft Punk
- Brian Eno
- Jan Hammer
- Herbie Hancock
- Skaven
- Olivier Messiaen
- Vangelis
- A Schenkerian analysis of the seven symphonies of Jean Sibelius
- Erkki Kurenniemi
- Drum Machine 101 Ep. 1 - First Steps | How to program your first beat on any drum machine - Also episodes 2 and 3.