From 235f3672aa417c079340f15330a02ae25e2bc298 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Sun, 11 Sep 2022 22:11:25 +0200 Subject: [PATCH] meetup talk --- talk/meetup.mdx | 171 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 123 insertions(+), 48 deletions(-) diff --git a/talk/meetup.mdx b/talk/meetup.mdx index 745a688c7..44d0c5ce9 100644 --- a/talk/meetup.mdx +++ b/talk/meetup.mdx @@ -49,20 +49,20 @@ Alex McLean, Felix Roos & Tidal Cycles Community -## Strudel is.. +## What is Strudel?
-- zero-install live coding editor for the web -- Tidal Cycles port to JavaScript -- a terse language for algorithmic patterns -- for dynamic music sequencing -- algorithmic composition -- live improvisation -- a set of reusable packages -- probably more exciting than your regular DAW +- based on a Tidal Cycles port to JavaScript +- zero-install live coding editor for the web +- algorithmic composition, live improvisation, generative music, music & code education +- a set of reusable packages +- has been used for a hand ful of streamed performances +- was featured on [CDM](https://cdm.link/2022/04/musical-powerful-live-coding-in-the-browser-is-near-with-strudel-usable-now/) +- now supported by [flok](https://flok.clic.cf/) +- presented at Web Audio Conf 2022
@@ -86,6 +86,14 @@ Alex McLean, Felix Roos & Tidal Cycles Community +## Studel @ WAC2022 + +![wac](https://i.imgur.com/yr7UshV.jpg) + +https://youtu.be/KWIotFWVOi4?t=241 + + + ## A Taste of Strudel ],hh(3,4)") // drums @@ -172,14 +179,16 @@ stack(
+- 🌍 based in germany, now living in france near the border - 💻 working as a frontend developer by day, studied Computer Science -- 🎺 Trumpet Player, studied Trumpet for Jazz and Popular Music +- 🎺 studied Trumpet for Jazz and Popular Music, now inactive - 💿 ocassionally publishes music with Lui Mafuta & Puste -- 🔌 Modular Synth & Electronics Lover, Dilettante DJ +- 🔌 Modular Synth & Electronics Lover - 💌 Coding Blog: [loophole-letters.vercel.app](https://loophole-letters.vercel.app/) -- 👀 Loves visualizations +- 🤖 I like to understand music through writing Code +- 🎹 I like to write my own tools to make & practise music -
+
{/* -## Previous related work: [Color Tunes](https://felixroos.github.io/color-tunes/#/explorer) +## Previous Work: [Color Tunes](https://felixroos.github.io/color-tunes/#/explorer) (2018) ![color tunes](https://loophole-letters.vercel.app/img/project-screenshots/color-tunes_explorer.png) @@ -212,7 +221,7 @@ Western Music Theory Explorer / Visualizer -## Previous related work: [Jazzband](https://felixroos.github.io/jazzband/) +## Previous Work: [Jazzband](https://felixroos.github.io/jazzband/) (2019) ![jazzband](https://loophole-letters.vercel.app/img/project-screenshots/jazzband_demo.png) -## Previous related work: Pattern Experiments +## Previous Work: Pattern Experiments (2019) ![pattern experiments](https://loophole-letters.vercel.app/img/project-screenshots/jazzband_demo-patterns.png) - + -## Previous related work: [asdf piano](https://k25w8.csb.app/#voicing-0) +## Previous Work: [asdf piano](https://k25w8.csb.app/#voicing-0) (2020) +
+ - piano voicings with smooth voice leading - playable through a regular computer keyboard - useful for music production - +
-## Previous related work: [Rhythmical](https://github.com/felixroos/rhythmical) +
-## Previous related work: [Rhythmical REPL](https://felixroos.github.io/rhythmical/) +## Previous Work: [Rhythmical REPL](https://felixroos.github.io/rhythmical/) (2020) +
+ - JSON based rhythm format + hacky DSL - group nesting similar to tidal +
+ +
@@ -397,10 +422,11 @@ inspired by ireal pro
-- JavaScript + syntax sugar (transpilation with shift-ast) +- JavaScript + syntax sugar - "Mini Notation" for terse rhythm notation - `seq(c3, [e3, g3])` === `"c3 [e3 g3]"` - All Parameters can be a Pattern +- [Many](https://github.com/tidalcycles/strudel/issues/31) Tidal functions are already implemented + some more
@@ -522,11 +548,13 @@ mini('c3 [e3 g3]') 3. obtain Abstract Syntax Tree (AST) 4. [transform](https://github.com/tidalcycles/strudel/blob/main/packages/mini/mini.mjs#L76) AST into Pattern: `seq('c3', ['e3', 'g3'])` +- Grammar is based on the [krill](https://github.com/Mdashdotdashn/krill) project by Mdashdotdashn +
-[OhmJS Editor](https://ohmjs.org/editor/) +[OhmJS Editor](https://ohmjs.org/editor/#30325d346a6e803cc35344ca218d8636) @@ -578,7 +606,7 @@ mini('c3 [e3 g3]') -## 🕵🏽 Querying Events +## 🕵🏽 Querying Events / Haps Asking a Pattern for Events within a certain time span @@ -586,16 +614,16 @@ Asking a Pattern for Events within a certain time span ```js seq('c3', ['e3', 'g3']) // <--- Pattern - .queryArc(0, 2) // query events within 0 and 2 seconds + .queryArc(0, 2) // query events within 0 and 2 cycles .map((event) => event.showWhole()); // make readable ``` ```js [ - '0/1 -> 1/2: c3', + '0/1 -> 1/2: c3', // cycle 0 '1/2 -> 3/4: e3', '3/4 -> 1/1: g3', - '1/1 -> 3/2: c3', // second time + '1/1 -> 3/2: c3', // cycle 1 '3/2 -> 7/4: e3', '7/4 -> 2/1: g3', ]; @@ -660,7 +688,44 @@ Patterns are wrapped with param functions to compose different properties of the ![waa nodes](./waa-nodes.png) -Supports Web Audio API, Web MIDI, OSC, Speech, Web Serial, ... ? +
+ +- Patterns represent just values in time! +- Suitable for any time based output (music, visuals, movement, .. ?) + +
+ +
+ +## Current Outputs + +
+ +- Web Audio API `.out()` +- MIDI `.midi()` +- OSC `.osc()` +- Serial `.serial()` +- Pianoroll `.pianoroll()` +- Tone.js `.tone()` (deprecated?) +- WebDirt `.webdirt()` (deprecated?) +- Speech `.speak()` (experimental) + +
+ +
+ +## Things I work on + +
+ +- refactor many things (build, tests, docs, examples, packages ..) +- improve midi output +- rework chord voicings +- getting rid of tone.js scheduler [nano-repl](https://raw.githack.com/tidalcycles/strudel/9a2a26e9046b2d848a6c5d38925922a91dbca491/packages/react/examples/nano-repl/dist/index.html) +- improve error handling +- strudel cli / server [pr](https://github.com/tidalcycles/strudel/pull/161) + +
@@ -668,21 +733,31 @@ Supports Web Audio API, Web MIDI, OSC, Speech, Web Serial, ... ?
-- Alternative Sound Backends +- Alternative Sound Backends (Elementary Audio, Faust, glicol ...) - Collaborative Mode - Context Aware Documentation / Completion / Visualization - Port more Tidal Features +- Sound explorer +- Maxi Notation? +- typescript? +- block based evaluation? +- more visuals (hydra integration?) +- Node / block based editor? [blockly](https://developers.google.com/blockly/), [React Flow](https://reactflow.dev/) +- see github repo for discussions issues! +- ableton link?
+
+ ## 🌀 Try it out now
- Strudel REPL: [strudel.tidalcycles.org](https://strudel.tidalcycles.org/?EeNsQ8hdNZwN) - Interactive Tutorial: [strudel.tidalcycles.org/tutorial](https://strudel.tidalcycles.org/tutorial) -- Stay Tuned: [@tidalcycles](https://twitter.com/tidalcycles) - Github: [https://github.com/tidalcycles/strudel](https://github.com/tidalcycles/strudel) +- Contributions are always welcome!