From edf2fb9781d4f2f7f8ef150fd609f21fd7e54eb1 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Mon, 6 Jun 2022 22:39:51 +0200 Subject: [PATCH] more slides + style --- talk/MaxiRepl.jsx | 20 +- talk/Slides.jsx | 1 + talk/deck.mdx | 379 ++++++++++++++++++++++++++--------- talk/main.jsx | 2 +- talk/public/codeandmusic.png | Bin 0 -> 35375 bytes 5 files changed, 297 insertions(+), 105 deletions(-) create mode 100644 talk/public/codeandmusic.png diff --git a/talk/MaxiRepl.jsx b/talk/MaxiRepl.jsx index 78213974b..388b974fe 100644 --- a/talk/MaxiRepl.jsx +++ b/talk/MaxiRepl.jsx @@ -44,7 +44,7 @@ export function MaxiRepl({ code, canvasHeight = 500 }) { cleanupUi(); }, [exampleIndex]); return ( -
+
{examples.length > 1 && (
{examples.map((c, i) => ( @@ -56,16 +56,14 @@ export function MaxiRepl({ code, canvasHeight = 500 }) { ))}
)} -
- <_MiniRepl - key={exampleIndex} - tune={examples[exampleIndex]} - defaultSynth={defaultSynth} - hideOutsideView={true} - theme={materialPalenightLarge} - init={ready} - /> -
+ <_MiniRepl + key={exampleIndex} + tune={examples[exampleIndex]} + defaultSynth={defaultSynth} + hideOutsideView={true} + theme={materialPalenightLarge} + init={ready} + /> + + +
+ +- How to represent and control music with code? +- How to leverage unique features of computing? +- How to break loose from old conventions? + +
+ +
+ +## About Me + +
+ +- 💻 Studied Computer Science and Media, working as a software developer by day +- 🎺 Trumpet Player, studied Jazz and Popular Music +- 🎤 Dilettante Music Producer of all kinds of genres +- 💿 ocassionally publishes music with Lui Mafuta & Puste +- 🔌 Modular Synth & Electronics Lover, Dilettante DJ .. +- 💌 Coding Blog: [Loophole Letters](https://loophole-letters.vercel.app/) +- 👀 Loves visualizations + +
+ + {/* */} + + + + + {/* */} + {/* + */} +
+ +
+ +
+ ## What is Live Coding? @@ -30,7 +79,13 @@ import ImgTile from './ImgTile'; Roberts & Wakefield, 2016 -

Screenshot: "Olivia Jack - Hydra, Live Coding Visuals in the Browser"

+

+ Screenshot: "Olivia Jack -{' '} + + Hydra + + , Live Coding Visuals in the Browser".{' '} +

@@ -45,7 +100,12 @@ import ImgTile from './ImgTile';
-

Screenshot: "Yaxu & hellocatfood - LIVE code for Noise Quest"

+

+ Screenshot:{' '} + + "Yaxu & hellocatfood - LIVE code for Noise Quest" + +

@@ -67,7 +127,12 @@ import ImgTile from './ImgTile';
-

Screenshot: "Algorave 10th Birthday March 2022 - froos"

+

+ Screenshot:{' '} + + "Algorave 10th Birthday March 2022 - froos" + +

@@ -76,13 +141,84 @@ import ImgTile from './ImgTile'; ", - "<[f3,c4] [f3,b3] [e3,b3]@2>" - .early(1/4).struct("x(3,8)".slow(2))) - .transpose("<0 1>/4".early(1/4)) - .tone((await piano()).toDestination()) - .pianoroll({overscan:2})`, - `"0 4 <5 7> 2" + `// froos - xylophone on the floor +const t = x => x.scaleTranspose("<0 2 4 3>/4").transpose(-2) +const s = x => x.scale( + cat('C3 minor pentatonic','G3 minor pentatonic') + .slow(4)) +const delay = new FeedbackDelay(1/8, .6).chain(vol(0.1), out()); +const chorus = new Chorus(1,2.5,0.5).start(); +stack( + // melody + "<<10 7> <8 3>>/4".struct("x*3").apply(s) + .scaleTranspose("<0 3 2> <1 4 3>") + .superimpose(scaleTranspose(2).early(1/8)) + .apply(t).tone(polysynth().set({ + ...osc('triangle4'), + ...adsr(0,.08,0) + }) + .chain(vol(0.2).connect(delay),chorus,out())) + .mask("<~@3 x>/16".early(1/8)), + // pad + "[1,3]/4".scale('G3 minor pentatonic').apply(t) + .tone(polysynth().set({ + ...osc('square2'), + ...adsr(0.1,.4,0.8) + }).chain(vol(0.2),chorus,out())).mask("<~ x>/32"), + // xylophone + "c3,g3,c4".struct("").fast("<1 <2!3 [4 8]>>") + .apply(s) + .scaleTranspose("<0 <1 [2 [3 <4 5>]]>>").apply(t) + .tone(polysynth().set({ + ...osc('sawtooth4'), + ...adsr(0,.1,0) + }).chain(vol(0.4).connect(delay),out())) + .mask("/16".early(1/8)), + // bass + "c2 [c2 ~]*2".scale('C hirajoshi').apply(t) + .tone(synth({ + ...osc('sawtooth6'), + ...adsr(0,.03,.4,.1) + }).chain(vol(0.4),out())), + // kick + "*2".tone(membrane().chain(vol(0.8),out())), + // snare + "~ ".tone(noise().chain(vol(0.8),out())), + // hihat + "c3*4".transpose("[-24 0]*2").tone(metal(adsr(0,.02)) + .chain(vol(0.5).connect(delay),out())) +).slow(1)`, + // + `// froos - giant steps, chiptune version +stack( + // melody + seq( + "[F#5 D5] [B4 G4] Bb4 [B4 A4]", + "[D5 Bb4] [G4 Eb4] F#4 [G4 F4]", + "Bb4 [B4 A4] D5 [D#5 C#5]", + "F#5 [G5 F5] Bb5 [F#5 [F#5 ~@3]]", + ), + // chords + seq( + "[B^7 D7] [G^7 Bb7] Eb^7 [Am7 D7]", + "[G^7 Bb7] [Eb^7 F#7] B^7 [Fm7 Bb7]", + "Eb^7 [Am7 D7] G^7 [C#m7 F#7]", + "B^7 [Fm7 Bb7] Eb^7 [C#m7 F#7]" + ) + .struct("~ [x ~]".fast(4*8)) + .voicings(['E3', 'G4']), + // bass + seq( + "[B2 D2] [G2 D2] [Eb2 Bb2] [A2 D2]", + "[G2 Bb2] [Eb2 F#2] [B2 F#2] [F2 Bb2]", + "[Eb2 Bb2] [A2 D2] [G2 D2] [C#2 F#2]", + "[B2 F#2] [F2 Bb2] [Eb2 Bb2] [C#2 F#2]" + ) + .struct("x ~".fast(4*8)) +).slow(25)`, + // + `// froos - piano tune #3829 +"0 4 <5 7> 2" .off(1/16,x=>x.add(5).color('salmon')) .echo(4,.125,.7) .scale(cat( @@ -92,7 +228,45 @@ import ImgTile from './ImgTile'; .slow(4) .tone((await piano()).toDestination()) .pianoroll({ cycles:16, fold:1, vertical:0 })`, - `samples({ + // + `// froos - if so what else +const mix = (key) => vol({ + chords: .2, + lead: 0.8, + bass: .4, + snare: .95, + kick: .9, + hihat: .35, +}[key]||0); +const delay = new FeedbackDelay(1/6, .3).chain(vol(.7), out()); +const delay2 = new FeedbackDelay(1/6, .2).chain(vol(.15), out()); +const chorus = new Chorus(1,2.5,0.5).start(); +// instruments +const instr = (instrument) => ({ + organ: polysynth().set({...osc('sawtooth4'), ...adsr(.01,.2,0)}).chain(mix('chords').connect(delay),out()), + lead: polysynth().set({...osc('triangle4'),...adsr(0.01,.05,0)}).chain(mix('lead').connect(delay2), out()), + bass: polysynth().set({...osc('sawtooth8'),...adsr(.02,.05,.3,.2)}).chain(mix('bass'),lowpass(3000), out()), + pad: polysynth().set({...osc('square2'),...adsr(0.1,.4,0.8)}).chain(vol(0.15),chorus,out()), + hihat: metal(adsr(0, .02, 0)).chain(mix('hihat'), out()), + snare: noise(adsr(0, .15, 0.01)).chain(mix('snare'), lowpass(5000), out()), + kick: membrane().chain(mix('kick'), out()) +}[instrument]); +// harmony +const t = transpose("<0 0 1 0>/8"); +const sowhat = scaleTranspose("0,3,6,9,11"); +// track +stack( + "[<0 4 [3 [2 1]]>]/4".struct("[x]*3").mask("[~ x ~]").scale('D5 dorian').off(1/6, scaleTranspose(-7)).off(1/3, scaleTranspose(-5)).apply(t).tone(instr('lead')).mask("<~ ~ x x>/8"), + "< <[d3 ~] [c3 f3] g3>>".scale('D dorian').apply(sowhat).apply(t).tone(instr('organ')).mask("/8"), + "<[d2 [d2 ~]*3]!3 >".apply(t).tone(instr('bass')), + "c1*6".tone(instr('hihat')), + "~ c3".tone(instr('snare')), + "<[c1@5 c1] >".tone(instr('kick')), + "[2,4]/4".scale('D dorian').apply(t).tone(instr('pad')).mask("/8") +).fast(6/8)`, + // + `// froos - strudel schneckno +samples({ clubkick: 'clubkick/2.wav', sd: ['808sd/SD0010.WAV','808sd/SD0050.WAV'], hh: 'hh/000_hh3closedhh.wav', @@ -103,26 +277,113 @@ stack( s(",[~ ],hh(3,4,2)").n("<0 1 2>").speed(.8), n("<0 1*2 4(3,8) 2>").speed(.6).off(1/8,x=>x.speed(1.2).degradeBy(.5)).s("jvbass") ).reset(">").cutoff(perlin.slow(7).range(100,20000)).webdirt().slow(3/2)`, - `stack( + `stack( // drum pattern by yaxu "24*2 [~ 25]".chunk(4, x => x.sub("12").fast(2)) .tone(membrane().toDestination()), "~ x ~ x".every(2, x => x.fast(2)).iter(4) .tone(noise().toDestination()), "c4*8".add(saw.mul(12).slow(1.5)).degrade(0.05) .tone(metal().set(adsr(0,.06,0,0)).chain(vol(0.5),out())) -) -// by yaxu`, - `"c3 d3 eb3 g3".iter(4).every(3,x=>x.transpose(7)) // TODO: bug when using .every on initial load - .superimpose( - x=>x.late(1/8).transpose(7).color('white'), - x=>x.late(1/4).transpose(12).color('yellow'), - ) - .velocity(rand.range(.5,1)) - .legato(rand.range(.5,2).slow(2)) - .slow(2) - //.degradeBy(.2) - .tone((await piano()).toDestination()) - .pianoroll({minMidi:40,maxMidi:80})`, +)`, + ]} +/> + + + +## How it started + +![strudel port quote](https://loophole-letters.vercel.app/img/strudel-port.png) + +
+ +- Started by Alex McLean, based on a port of a port of a rewrite of Tidal +- I implemented the REPL +- Help from Tidal Community Members +- Started with Tone.js, then added Web MIDI, OSC and Web Audio API outputs +- Inspired by: Tidal Vortex, Gibber, Estuary, Hydra, WAGS and Feedforward. + +
+ +
+ +## REPL = Read Eval Play Loop + +
+ +1. Read: User code is parsed, syntax sugar is dissolved +2. Eval: Transformed code is evaluated, creating a **Pattern** +3. Play: The **Pattern** is queried for events, which trigger sounds and effects +4. Loop: The new output is fed back into the ears of the human, informing the next move + +
+ +
+ +## Mini Notation + +
+ +- Embedded Domain Specific Language +- PEG.js grammar based on krill by Marc Resibois +- \* \[\] ~ , / <\> ! @ \(\) + +
+ +\` + .legato(.95), + // sub melody + \`< + [~ g4]!2 [~ ab4]!2 [~ a4]!2 [~ bb4]!2 + [~ a4]!2 [~ g4]!2 [d4 e4] [f4 gb4] ~!2 + [~ g4]!2 [~ ab4]!2 [~ a4]!2 [~ bb4]!2 + [~ a4]!2 [~ g4]!2 [d4 e4] [f4 gb4] ~!2 + [~ c5]!4 [~ a4]!2 [[c4 ~] [d4 ~]] [[eb4 ~] [e4 ~]] + [~ c5]!4 [~ eb5]!2 [g4*2 [f4 ~]] [[e4 ~] [d4 ~]] + >\`, + // bass + \`< + c3!7 a3 f3!2 + e3!2 ~!4 + c3!7 a3 f3!2 + e3!2 ~!4 + f3!2 e3!2 d3!2 ~!2 + f3!2 e3!2 ab3!2 ~!2 + >\` + .legato(.5) +).fast(2).pianoroll({fold:1,cycles:8,overscan:8})`, ]} /> @@ -150,58 +411,6 @@ s("hh").struct("x!3 ~ x!2 ~ x ~ x!2 ~").speed(.8)
-## Polyrhythms vs Polyphony - - - -## About Me - -
- -- 💻 Studied Computer Science and Media, working as a software developer by day -- 🎺 Trumpet Player, studied Jazz and Popular Music -- 🎤 Dilettante Music Producer of all kinds of genres -- 💿 ocassionally publishes music with Lui Mafuta & Puste -- 🔌 Modular Synth & Electronics Lover, Dilettante DJ .. -- 💌 Coding Blog: [Loophole Letters](https://loophole-letters.vercel.app/) -- ✨ Started live coding music not too long ago - -
- - {/* */} - - - - - {/* */} - {/* - */} -
- -
- -
- - -## How it started - - - - -## Mini Notation - - - - ## Continuous Signals - - - -## From Haskell to Python to JavaScript - -
- -| Project | Language | Description | -| -------------- | ---------- | --------------------------------- | -| Tidal Cycles | Haskell | original haskell implementation | -| Remake | Haskell | Tidal Cycles rewrite from scratch | -| Tidal Vortex | Python | Port of Remake to Python | -| Strudel Cycles | JavaScript | Port of Vortex to Javascript | - -
-
diff --git a/talk/main.jsx b/talk/main.jsx index 391841d17..d361f1b2e 100644 --- a/talk/main.jsx +++ b/talk/main.jsx @@ -6,7 +6,7 @@ import '@strudel.cycles/react/dist/style.css'; ReactDOM.render( -
+
, diff --git a/talk/public/codeandmusic.png b/talk/public/codeandmusic.png new file mode 100644 index 0000000000000000000000000000000000000000..a30910d8aa773014ebee2479a4ad9aa4ea2e3f56 GIT binary patch literal 35375 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