Making Techno Reactive with RxJS

Key learning objective: stronger intuition of how RxJS works by applying it to music
Minor learning objectives:
* basics of techno music
* a few operators (likely including interval, delay, maybe another)
* how to combine streams together with user interaction

Throughout the talk, starting with the "kick drum" section, I'll be performing techno music via livecoding with RxJS. More details in the outline.

Outline:
* Brief intro, "Everything is a stream" - Andre Staltz
* Brief explanation of techno (groove and technology aesthetics, created by black and lgbt musicians in detroit)
* Live code a kick drum on the beat, explaining the interval operator and subscribe
* Live code a hihat on the offbeat, explaining the delay operator (kick and hihat continue, making a beat. May add more musical elements to make it fun)
* Live code a filter, explaining how DJs use filters when performing to increase and release tension. Instead of making it static, this filter is controlled by an observable dial. Explain the operators that connect the dial with the rest of the live system. The dial adds a human element to the steady groove. It allows me as a performer to connect with the audience. Then use the dial to create and release tension in a musically satisfying way.
* Concluding points: RxJS is great for connecting the human element with systems. Streams can be user interactions, beats, or pretty much anything else in time. Like techno music, apps combine technology with the human element, so RxJS is a great fit for both.

Asset 2.png