jevstrudel.git / website / src / pages / recipes / arpeggios.mdx
arpeggios.mdx69 lines · 1.5 KB · raw
1---
2title: Build Arpeggios
3layout: ../../layouts/MainLayout.astro
4---
5
6import { MiniRepl } from '../../docs/MiniRepl';
7import { JsDoc } from '../../docs/JsDoc';
8
9Note: This has been (partly) translated from https://tidalcycles.org/docs/patternlib/howtos/buildarpeggios
10
11# Build Arpeggios
12
13This 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.
14
15## Arpeggios from notes
16
17Start with a simple sequence of notes:
18
19<MiniRepl tune={`note("c a f e").piano().slow(2)`} client:idle />
20
21Now, let's play one per cycle:
22
23<MiniRepl tune={`note("<c a f e>").piano().slow(2)`} client:idle />
24
25On top of that, put a copy of the sequence, offset in time and pitch:
26
27<MiniRepl
28  tune={`"<c a f e>".off(1/8, add(7))
29  .note().piano().slow(2)`}
30  client:idle
31/>
32
33Add some structure to the original sequence:
34
35<MiniRepl
36  tune={`"<c*2 a(3,8) f(3,8,2) e*2>"
37  .off(1/8, add(7))
38  .note().piano().slow(2)`}
39  client:idle
40/>
41
42Reverse in one speaker:
43
44<MiniRepl
45  tune={`"<c*2 a(3,8) f(3,8,2) e*2>"
46  .off(1/8, add(7))
47  .note().piano()
48  .jux(rev).slow(2)`}
49  client:idle
50/>
51
52Let's add another layer:
53
54<MiniRepl
55  tune={`"<c*2 a(3,8) f(3,8,2) e*2>"
56  .off(1/8, add(7))
57  .off(1/8, add(12))
58  .note().piano()
59  .jux(rev).slow(2)`}
60  client:idle
61/>
62
63- added slow(2) to approximate tidals cps
64- n was replaced with note, because using n does not work as note for samples
65- legato 2 was removed because it does not work in combination with rev (bug)
66
67## Arpeggios from chords
68
69TODO