~/talk

Sounds of Structure - Music Modelling with ADT's

Talkat Scala Days 2023 Madrid · 2023-09-12..09-14· [creative-coding, scala]
links:none on file
slides:none on file

Shows a working music sequencer built in Scala using algebraic data types and structural recursion, outputting audio via Scala.js + Tone.js (Web Audio). Models notes, rests, melodies, harmony and drums with sealed ADTs, replaces raw velocity with a custom type that maps 128 MIDI values into eight buckets, and uses builder methods to form a readable DSL. Live demo assembles multivoice songs from four voice samples, plays arranged bass/drums/piano and exposes where the JS wrapper caused runtime mismatches.

AI-written summary · about

  1. 0:00Introduction
  2. 1:09Talk outline
  3. 2:12From musician to developer
  4. 5:44Live demo setup
  5. 8:17Algebraic data types
  6. 10:01ADTs for music basics
  7. 11:46Evolving note structure
  8. 14:15Type safety with velocity
  9. 18:53Discretized velocity solution
  10. 21:00Structural recursion
  11. 24:53Benefits of ADTs and structural recursion
  12. 25:56ADT music challenges
  13. 27:00Music DSL with builders
  14. 30:53Song structure definition
  15. 32:19Complete song playback
  16. 33:40Live demo: rock song
  17. 41:16Summary
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.