mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-13 22:58:34 +00:00
translate parts of tidal "How-tos"
This commit is contained in:
parent
b46330fc7a
commit
3feed90039
69
website/src/pages/recipes/arpeggios.mdx
Normal file
69
website/src/pages/recipes/arpeggios.mdx
Normal file
@ -0,0 +1,69 @@
|
||||
---
|
||||
title: Build Arpeggios
|
||||
layout: ../../layouts/MainLayout.astro
|
||||
---
|
||||
|
||||
import { MiniRepl } from '../../docs/MiniRepl';
|
||||
import { JsDoc } from '../../docs/JsDoc';
|
||||
|
||||
Note: This has been (partly) translated from https://tidalcycles.org/docs/patternlib/howtos/buildarpeggios
|
||||
|
||||
# Build Arpeggios
|
||||
|
||||
This page will teach you how to get started writing arpeggios using different techniques. It is a good way to learn Strudel in a more intuitive way.
|
||||
|
||||
## Arpeggios from notes
|
||||
|
||||
Start with a simple sequence of notes:
|
||||
|
||||
<MiniRepl tune={`note("c a f e").piano().slow(2)`} client:idle />
|
||||
|
||||
Now, let's play one per cycle:
|
||||
|
||||
<MiniRepl tune={`note("<c a f e>").piano().slow(2)`} client:idle />
|
||||
|
||||
On top of that, put a copy of the sequence, offset in time and pitch:
|
||||
|
||||
<MiniRepl
|
||||
tune={`"<c a f e>".off(1/8, add(7))
|
||||
.note().piano().slow(2)`}
|
||||
client:idle
|
||||
/>
|
||||
|
||||
Add some structure to the original sequence:
|
||||
|
||||
<MiniRepl
|
||||
tune={`"<c*2 a(3,8) f(3,8,2) e*2>"
|
||||
.off(1/8, add(7))
|
||||
.note().piano().slow(2)`}
|
||||
client:idle
|
||||
/>
|
||||
|
||||
Reverse in one speaker:
|
||||
|
||||
<MiniRepl
|
||||
tune={`"<c*2 a(3,8) f(3,8,2) e*2>"
|
||||
.off(1/8, add(7))
|
||||
.note().piano()
|
||||
.jux(rev).slow(2)`}
|
||||
client:idle
|
||||
/>
|
||||
|
||||
Let's add another layer:
|
||||
|
||||
<MiniRepl
|
||||
tune={`"<c*2 a(3,8) f(3,8,2) e*2>"
|
||||
.off(1/8, add(7))
|
||||
.off(1/8, add(12))
|
||||
.note().piano()
|
||||
.jux(rev).slow(2)`}
|
||||
client:idle
|
||||
/>
|
||||
|
||||
- added slow(2) to approximate tidals cps
|
||||
- n was replaced with note, because using n does not work as note for samples
|
||||
- legato 2 was removed because it does not work in combination with rev (bug)
|
||||
|
||||
## Arpeggios from chords
|
||||
|
||||
TODO
|
||||
88
website/src/pages/recipes/rhythms.mdx
Normal file
88
website/src/pages/recipes/rhythms.mdx
Normal file
@ -0,0 +1,88 @@
|
||||
---
|
||||
title: Build Rhythms
|
||||
layout: ../../layouts/MainLayout.astro
|
||||
---
|
||||
|
||||
import { MiniRepl } from '../../docs/MiniRepl';
|
||||
import { JsDoc } from '../../docs/JsDoc';
|
||||
import { samples } from '@strudel.cycles/webaudio';
|
||||
|
||||
Note:
|
||||
|
||||
- this has been (partly) translated from https://tidalcycles.org/docs/patternlib/howtos/buildrhythms
|
||||
- this only sounds good with `samples('github:tidalcycles/Dirt-Samples/master')` in prebake
|
||||
|
||||
# Build Rhythms
|
||||
|
||||
This page will teach you how to get started writing rhythms using different techniques. It is a good way to learn Strudel in a more intuitive way.
|
||||
|
||||
## From a simple to a complex rhythm
|
||||
|
||||
Simple bass drum - snare:
|
||||
|
||||
<MiniRepl client:idle tune={`s("bd sd").slow(2)`} />
|
||||
|
||||
Let's pick a different snare sample:
|
||||
|
||||
<MiniRepl client:idle tune={`s("bd sd:3").slow(2)`} />
|
||||
|
||||
Now, we are going to change the rhythm:
|
||||
|
||||
<MiniRepl client:idle tune={`s("bd*2 [~ sd:3]").slow(2)`} />
|
||||
|
||||
And add some toms:
|
||||
|
||||
<MiniRepl client:idle tune={`s("bd*2 [[~ lt] sd:3] lt:1 [ht mt*2]").slow(2)`} />
|
||||
|
||||
Start to transform, shift a quarter cycle every other cycle:
|
||||
|
||||
<MiniRepl
|
||||
client:idle
|
||||
tune={`s("bd*2 [[~ lt] sd:3] lt:1 [ht mt*2]")
|
||||
.every(2, early(.25)).slow(2)`}
|
||||
/>
|
||||
|
||||
Pattern the shift amount:
|
||||
|
||||
<MiniRepl
|
||||
client:idle
|
||||
tune={`s("bd*2 [[~ lt] sd:3] lt:1 [ht mt*2]")
|
||||
.every(2, early("<.25 .125 .5>")).slow(2)`}
|
||||
/>
|
||||
|
||||
Add some patterned effects:
|
||||
|
||||
<MiniRepl
|
||||
client:idle
|
||||
tune={`s("bd*2 [[~ lt] sd:3] lt:1 [ht mt*2]")
|
||||
.every(2, early("<.25 .125 .5>"))
|
||||
.shape("<0 .5 .3>")
|
||||
.room(saw.range(0,.2).slow(4))
|
||||
.slow(2)`}
|
||||
/>
|
||||
|
||||
More transformation:
|
||||
|
||||
<MiniRepl
|
||||
client:idle
|
||||
tune={`s("bd*2 [[~ lt] sd:3] lt:1 [ht mt*2]")
|
||||
.every(2, early("<.25 .125 .5>"))
|
||||
.shape("<0 .5 .3>")
|
||||
.room(saw.range(0,.2).slow(4))
|
||||
.jux(id, rev, x=>x.speed(2))
|
||||
.slow(2)`}
|
||||
/>
|
||||
|
||||
## Another rhythmic construction
|
||||
|
||||
Let's start with a sequence:
|
||||
|
||||
<MiniRepl client:idle tune={`n("0 0 [2 0] [2 3]").s("feel").speed(1.5).slow(2)`} />
|
||||
|
||||
We add a bit of flavour:
|
||||
|
||||
<MiniRepl client:idle tune={`n("0 <0 4> [2 0] [2 3]").s("feel").speed(1.5).slow(2)`} />
|
||||
|
||||
Swap the samples round every other cycle:
|
||||
|
||||
TODO: implement `rot`
|
||||
Loading…
x
Reference in New Issue
Block a user