Collaborative Music with Elm and Phoenix
summary
Builds a collaborative music editor using an Elm frontend with Web Audio and ports and a Phoenix backend using Phoenix channels and a GenServer per song. The app starts with two tracks and 20 slots, ticks the playhead by BPM, loads soundfonts, and pushes the entire song state (currently replaces the local song on each update and also broadcasts state every second). The codebase is a few pages, works live in demo, and was implemented in a few days.
AI-written summary · about
chapters (9)
- 0:00Start
- 1:22FUNDAMENTALS AND HISTORY
- 3:21IT'S THE ABSTRACTION!
- 4:17STUPID MOTIVATING STORY
- 5:36LOL NOT A DISTRIBUTED SYSTEM
- 13:00DEMO INTERLUDE
- 18:11UPDATE Msg - Model - Model
- 36:52A HIGH LEVEL OVERVIEW
- 46:52TYPES MAKING INVALID THINGS UNREPRESENTABLE
related talks
04mLightning Talks – Magnus Rex
50mBuilding a collaborative painting canvas with Phoenix
10mMaking Music! In Emacs?!
24mBuilding a Music Learning Game with Elm, Web MIDI, and SVG Animation
04mLightning Talk: Elixir, MIDI and LiveView
19mAudio, Video, and Elm - Best Practices for Multimedia
40mLiveJS: Making Music with JavaScript
28mEmber as Song
