From a7933d622fb3d3e1d60245a059655ace1b508c9b Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 24 Sep 2023 22:29:55 +0100 Subject: [PATCH] initial import of Lucy's worksheet --- website/src/config.ts | 1 + website/src/pages/workshop/bournemouth.mdx | 168 +++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 website/src/pages/workshop/bournemouth.mdx diff --git a/website/src/config.ts b/website/src/config.ts index ba9b06667..72c8b46db 100644 --- a/website/src/config.ts +++ b/website/src/config.ts @@ -62,6 +62,7 @@ export const SIDEBAR: Sidebar = { { text: 'Pattern Effects', link: 'workshop/pattern-effects' }, { text: 'Recap', link: 'workshop/recap' }, { text: 'Workshop in German', link: 'de/workshop/getting-started' }, + { text: 'Bournemouth workshop', link: 'workshop/bournemouth' }, ], 'Making Sound': [ { text: 'Samples', link: 'learn/samples' }, diff --git a/website/src/pages/workshop/bournemouth.mdx b/website/src/pages/workshop/bournemouth.mdx new file mode 100644 index 000000000..34660afb7 --- /dev/null +++ b/website/src/pages/workshop/bournemouth.mdx @@ -0,0 +1,168 @@ +--- +title: Bournemouth workshop worksheet +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '@src/docs/MiniRepl'; +import Box from '@components/Box.astro'; +import QA from '@components/QA'; + +## Getting started + +This is how we write a basic pattern in strudel + + + +you play the sound by pressing the play button or hitting ctrl and enter + +you can stop the sound by hitting ctrl + . + +what happens if we put more sounds in the pattern? + + +even more? + + +(etc etc) + +this is because strudel has a consistent 'cycle' running in the background +any sounds in the pattern will run within that cycle +and strudel will try to space them evenly in time +unless we give explicit instructions for them not to +we'll learn how to do that later + +this means that the pulse of the pattern is dictated by the number of elements + + + +//vs + + + +later on when we learn how to play multiple patterns at once +this gives us some fun opportunities to play with rhythm + +try some other sounds +insect wind jazz metal east crow casio space numbers + +the green writing inside the speech marks has its own set of rules +we call this the 'mininotation' and it's the core of how strudel generates patterns + +we can speed things up with * + + + + + + + +or slow them down with / + + + +the snare only sounds every other cycle + +we can choose different sounds from a set using : + + + + + +the computer starts counting at 0, so casio:0 is the same as casio + +we can add a rest using ~ + + + +we can create more variation with sub-sequences +we do this by breaking our steps down into mini patterns using [] + + + + + +you can nest sequences within sequences for dense patterns + + + +we can also schedule events across multiple cycles using <> + + ~ casio:5")`} dirt /> + +we can add some easy randomness using ? +? means the following sound will play with 50% probability + + + + + +## chaining functions (and making it sound more interesting) + +there's also a shorthand for selecting the sample or the note of a synth +note that we chain functions together with . + + + +we use a function called n and some mininotation to create a pattern of numbers + + + +this next part is a bit confusing, don't worry too much if it doesn't make sense right now + +because strudel always takes the rhythm from the first pattern +we can't do this + + + +because strudel thinks there's only one event in the pattern + +but if we write the n pattern first then that gives us what we want + + + +we can use note to do the same thing with pitch + + + +or we can combine the two + +")`} dirt /> + +and we can make use of the mininotation we learned above in the note or n pattern + + 5").sound("casio ")`} dirt /> + +strudel does its best to map the two patterns together +based on when each event in the pattern starts + + +## Effects +ok, let's try some effects + + ~ casio:5")`} dirt /> + +the vowel effect is a kind of filter +note that we chain functions together using . + + ~ casio:5").vowel("a")`} dirt /> + +we can use mini-notation to create a pattern in the effect + + ~ casio:5").vowel("")`} dirt /> + + ~ casio:5").vowel("a e i")`} dirt /> + +most effects take a pattern of numbers + + ~ casio:5").pan("0 1")`} dirt /> + +pan moves the signal left and right + + +room is reverb + + ~ casio:5").room("<0 0 1 2>")`} dirt /> + +we can chain effects together + + ~ casio:5").room("<0 0 1 2>").pan("0 1").vowel("")`} dirt />