0:00/0:00
// Guantanamera — Digno Garcia
// 100 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 40 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.
// chords · synth strings 1
const synth_strings_1 = note(`<
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM ~
>`.pickRestart({
A: "~@4 [g4,bb4,c5,d5] ~ [g4,bb4,d5] ~@4 [g4,e5] c5 [g4,c5,e5] ~@5 [g4,bb4,d5] ~ [g4,bb4,d5] ~@4 [g4,c5,e5] ~ [g4,bb4,d5] ~@3", // Gm C Gm C Gm
B: "~@2 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,d5] ~ [f4,a4,c5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,d5] ~ [f4,a4,c5] ~@4 [g4,d5]", // F Bb F Bb F G5
C: "bb4 [g4,bb4,d5] ~@5 [g4,c5,e5] ~ [g4,c5,e5] ~@4 [g4,bb4] d5 [g4,bb4,d5] ~@5 [g4,c5,e5] ~ [g4,bb4,d5] ~@4 [a4,c5] f4 [f4,a4,c5]", // Gm C Gm C Gm Am F
D: "~@5 [f4,bb4,d5] d5 [f4,bb4] ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@3 [f4,bb4,d5] [f4,a4] c5 ~@6 [g4,bb4,d5] ~ [g4,bb4,d5] ~@2", // Bb Bb5 F Bb F Gm
E: "~@2 [g4,c5] e5 [g4,c5,e5] ~@5 [g4,bb4,d5] ~ [g4,bb4,d5] ~@4 [g4,c5,e5] ~ [g4,bb4,d5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4", // C5 C Gm C Gm F
F: "[f4,bb4,d5] ~ [f4,a4,c5] ~@4 [f4,c5] a4 ~ [f4,a4,c5] ~@2 [f4,bb4,d5] ~ [f4,a4,c5] ~@6 d5 [g4,bb4] [g4,bb4,d5] ~@5 [g4,c5,e5] ~", // Bb F F5 F Bb F Gm C
G: "[g4,c5,e5] ~@4 [g4,bb4,d5] ~ [g4,bb4,d5] ~@3 [g4,c5,e5] ~ [c5,e5] g4 c5 ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@4 d5 [f4,bb4] f4 [a4,c5] ~", // C Gm C F Bb5 Am
H: "~@9 [c5,d5,f5]!2 ~ [c5,d5,f5] ~@5 [g4,bb4,d5] ~ [g4,bb4,d5] ~@4 [g4,bb4,d5] ~ [g4,bb4,d5] ~@4", // Dm7 Gm
I: "~ [e4,bb4,c5] ~ [e4,bb4,c5] ~@4 [e4,bb4,c5] ~ [e4,bb4,c5] ~@5 [f4,a4,c5] c5 [f4,a4] ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,c5] ~", // C7 F Fsus4
J: "[bb4,c5] f4 ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@5 [d4,f4,bb4] ~ [d4,f4,bb4] ~@4 [e4,g4,c5] ~ [e4,g4,c5] ~", // Bbsus2 F Bb C
K: "~@4 [e4,g4] [e4,g4,c5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@5 [e4,g4,c5] ~ [e4,g4,c5] ~@3", // Em C F Bb C
L: "~ [e4,g4,c5] ~ [e4,g4,c5] ~@5 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 e4 [bb4,d5] d5 [e4,bb4] ~@4 [e4,bb4,c5]", // C Bb Edim C7
M: "~ [e4,bb4,c5] ~@5 [f4,a4,c5]!2 ~@5 [g4,bb4,d5] ~ [g4,bb4,d5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@5 [e4,bb4,c5] ~ [e4,bb4,c5]", // C7 F Gm Bb C7
N: "~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@5 [f4,bb4,d5]!2 ~@5 [g4,bb4,e5] ~ [g4,bb4,e5] ~@4 g4 [bb4,e5] g4 [bb4,e5] ~@2", // Bb Edim Bbdim
O: "~@2 [f4,g4,bb4,d5] ~ [f4,g4,bb4,d5] ~@4 [f4,g4,bb4,d5] ~ [f4,g4,bb4,d5] ~@5 [e4,g4,bb4,c5] ~ [e4,g4,bb4,c5] ~@4 [e4,g4,bb4,c5] ~ [e4,g4,bb4,c5] ~@5", // Gm7 C7
P: "[f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [g4,e5] bb4 [g4,bb4,e5] ~@5 [g4,bb4,e5] ~ [g4,bb4,e5] ~@4 f4 [a4,c5] [f4,a4,c5]", // F Bb C Edim Am F
Q: "~@5 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [g4,bb4,e5] ~ [g4,bb4,e5] ~@5 [g4,bb4,e5] ~ [g4,bb4,e5] ~@4 [g4,bb4,d5] ~ [g4,bb4,d5] ~@2", // Bb Edim Gm
R: "~@3 [g4,bb4,d5] ~ [g4,bb4,d5] ~@4 [e4,bb4,c5] ~ [e4,bb4,c5] ~@4 [e4,bb4,c5] ~ [e4,bb4,c5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4", // Gm C7 F
S: "[f4,a4,c5] ~ [f4,a4,c5] ~@5 [f4,bb4,c5] ~ [f4,bb4,c5] ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@5 [f4,a4,c5]!2 ~@5 [d4,f4,bb4] ~", // F Fsus4 F Bb
T: "[d4,f4,bb4] ~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4] ~ [e4,g4,c5] ~@4 [f4,c5] a4 [f4,a4,c5] ~@5 [f4,bb4,d5] d5 [f4,bb4] ~", // Bb C Em C F5 F Bb Bb5
U: "~@3 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4,c5]!2 ~@5 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [f4,d5] bb4 [f4,bb4,d5] ~@4", // C Bb Dm Bb
V: "~ [e4,bb4,d5] ~ [e4,bb4,d5] ~@5 [e4,bb4,c5]!2 ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [g4,bb4,d5] ~ [g4,bb4,d5] ~@5 [f4,bb4,d5]", // Em7b5 C7 F Gm Bb
W: "f4 [bb4,d5] ~@4 [e4,bb4,c5] ~ [e4,bb4,c5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@5 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [g4,bb4,e5] ~ [g4,bb4,e5] ~", // Bb C7 Bb Edim
X: "~@4 [g4,bb4,e5] g4 [bb4,e5] ~@4 [f4,g4,bb4,d5] ~ [f4,g4,bb4,d5] ~@5 [f4,g4,bb4,d5] ~ [f4,g4,bb4,d5] ~@4 [e4,g4,bb4,c5] ~ [e4,g4,bb4,c5] ~@3", // Edim Bbdim Gm7 C7
Y: "~ [g4,c5] [e4,bb4] [e4,g4,bb4,c5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@5 [g4,bb4,e5] ~ [g4,bb4,e5] ~@4 [g4,bb4,e5]", // C5 Edim C7 F Bb Edim
Z: "~ [g4,bb4,e5] ~@5 [f4,a4,c5] [f4,c5] a4 ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@5 [g4,bb4,e5]!2 ~@5 [g4,bb4,e5] ~ [g4,bb4,e5]", // Edim F F5 Bb Edim
AA: "~@4 g4 [bb4,d5] [g4,bb4,d5] ~@5 [g4,bb4,d5] g4 [bb4,d5] ~@4 [e4,bb4,c5] ~ [e4,bb4,c5] ~@5 [e4,bb4,c5] [e4,c5] bb4 ~@2", // Bb Gm Bb C7 C
AB: "~@2 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,c5] a4 [f4,a4,c5] ~@5 [f4,bb4,c5] ~ [f4,bb4,c5] ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@5", // F F5 F Fsus4 F
AC: "[f4,a4,c5] ~ [f4,a4,c5] ~@4 [d4,f4,bb4] ~ [d4,f4,bb4] ~@5 [e4,g4,c5] ~ [e4,g4,c5] ~@4 [e4,g4] ~ [e4,g4,c5] ~@5 [f4,a4,c5]!2", // F Bb C Em C F
AD: "~@5 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@5 [e4,g4,c5] ~ [e4,g4,c5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@2", // Bb C Bb
AE: "~@3 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [e4,bb4,d5] ~ [e4,bb4,d5] ~@5 [e4,bb4,c5]!2 ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4", // Bb Em7b5 C7 F
AF: "[g4,d5] bb4 [g4,bb4,d5] ~@5 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [e4,bb4,c5] ~ [e4,bb4,c5] ~@5 [f4,bb4,d5] ~ [f4,bb4,d5] ~@4 [f4,bb4,d5] ~", // G5 Gm Bb C7 Bb
AG: "[f4,bb4,d5] ~@4 g4 [bb4,e5] [g4,e5] bb4 ~@4 [g4,bb4,e5] ~ [g4,bb4,e5] ~@4 [f4,g4,bb4,d5] ~ [f4,g4,bb4,d5] ~@5 [f4,g4,bb4,d5] ~ [f4,g4,bb4,d5] ~", // Bb Bbdim C Edim Gm7
AH: "~@3 [e4,g4,bb4,c5] ~ [e4,g4,bb4,c5] ~@5 [e4,g4,bb4,c5] ~ [e4,g4,bb4,c5] ~@4 [f4,a4,c5] ~ [f4,a4,c5] ~@5 [f4,bb4,d5] f4 [bb4,d5] ~@3", // C7 F Bb
AI: "~ [g4,bb4,e5] ~ [g4,bb4,e5] ~@4 [g4,bb4,e5] ~ [g4,bb4,e5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@5 [g4,bb4,e5]", // Edim F Bb Edim
AJ: "~ [g4,bb4,e5] ~@4 [g4,bb4,e5] ~ [g4,bb4,e5] ~@5 [g4,bb4,d5] bb4 [g4,d5] ~@4 [g4,bb4,d5] ~ [g4,bb4,d5] ~@4 [e4,c5] bb4 [bb4,c5] e4", // Edim Gm G5 Gm C Bbsus2
AK: "~@4 [e4,bb4,c5] ~ [e4,bb4,c5] ~@4 [f4,c5] a4 [f4,a4,c5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,c5] ~ [f4,bb4,c5] ~@3", // C7 F5 F Fsus4
AL: "~@2 [f4,a4,c5]!2 ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4 f4 [d4,bb4] [f4,bb4] d4 ~@4 [e4,g4,c5] ~ [e4,g4,c5] ~@4 [e4,g4]", // F Gm Bb5 C Em
AM: "~ [e4,g4,c5] ~@5 [f4,a4,c5] ~ [f4,a4,c5] ~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~@5 [e4,g4,c5]!2 ~@5 [e4,g4,c5] ~ [e4,g4,c5]", // C F Bb C
})).s("gm_synth_strings_1").gain(0.36)
// chords · piano
const piano = note("<A B C D@2 E F G H I J K L M@2 N O P Q R S@3 T@2 U V W X Y@3 Z AA@2 AB AC AD AE AF>".pickRestart({
A: "~@4 d5@2 bb4 ~ [c4,g4,e5]@4 c5 [g3,g4] d5 ~@2 [g3,g4,d5]@2 ~@2 bb4 ~ [c4,g4,c5,e5]@2 ~@2 [c4,g4,c5] ~@4, ~@2 g4@4 ~@2 c5 ~@23, ~@4 g3 ~@27", // C G G5 C C5
B: "f4 ~ [f4,c5]@2 a4 ~ [bb3,f4,bb4,d5]@2 ~ [bb3,f4,bb4] ~ [f3,f4,a4,c5] ~@3 [f3,f4,c5]@3 ~ a4 ~ [bb3,f4,bb4,d5]!2 ~ [f3,f4,a4,c5] ~@4 g4 ~@2, ~@2 f3 ~@29", // F5 Bb Bb5 F F5 Bb F
C: "~ bb4 ~ [c4,g4,c5,e5]@3 ~ [c4,g4,c5] ~ [g3,g4,bb4,d5] ~@3 [g3,g4,d5]@2 ~ [g4,bb4] ~ [c4,g4,c5,e5] ~@3 [g3,g4,bb4,d5] ~@4 f4 ~@2 [f3,f4,a4,c5] [f3,f4,a4], [g3,g4,d5]@3 b3 ~@9 bb4 ~@18", // C C5 Gm G5 Gm C Gm F …
D: "[~ [bb3,f4,bb4,d5]@2 ~@2 [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~@2 [f3,a4,c5]@2 ~@2 f4 ~ [bb3,f4,bb4,d5] ~ [bb3,f4,bb4,d5] ~ [f3,f4,a4,c5] ~@4 g3@2 d5@2 bb4 ~ [c4,g4,c5,e5]@3 ~ c5 [g4,bb4,d5] g3 ~@2 [g3,bb4]@2 ~@2 bb4 ~ [c4,g4,c5,e5]!2 ~ [g3,g4,bb4,d5] ~@5 f4 ~ [f3,f4,c5]@2 a4 ~ [bb3,f4,bb4,d5]@2 ~, ~@10 f4 ~@14 g4@5 ~@10 [g4,d5] ~@23, ~@27 g3 ~@36]/2", // Bb F Bb F C Gm C Gm …
E: "[f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@3 f4 [bb3,f4,bb4,d5] ~ [bb3,f4,bb4,d5] ~ [f3,f4,a4,c5] ~@4 g4 ~@2 [g3,g4,bb4,d5] ~@2 [c4,g4,c5,e5]@3 ~@3", // F Bb F Gm C
F: "[g3,g4,bb4,d5] ~@3 [g4,bb4]@2 ~ g4 ~ [c4,g4,c5,e5] ~ [c4,g4,c5,e5] ~ [g3,g4,bb4,d5] ~@4 f3 ~ c5@2 a4 ~ [bb3,f4,bb4,d5]@3 ~@3 [f3,f4,a4,c5] ~, ~@3 d5@2 ~@13 f4@4 ~@10, ~@4 g3 ~@15 f3 ~@11", // Gm C Gm Bb F
G: "~ [c4,f4,g4,c5] ~@3 [c4,g4,c5]@2 ~@2 [c4,g4,c5] ~ [c4,e4,g4,c5] ~@2 [g3,g4,bb4,d5] ~@3 [g3,g4,bb4,d5] ~ [g3,g4,bb4,d5] g3 [g4,bb4,d5] [bb4,d5] [g3,g4] ~@2 [g3,g4,bb4,d5] ~@3 [g3,g4,bb4,d5]", // Csus4 C5 C Gm Bb G Gm
H: "~@3 [g3,bb4,d5] ~ [c4,e4,bb4,c5]!2 ~ [c4,e4,bb4,c5] ~ [c4,bb4,c5] ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~ [f3,f4,a4,c5]!2 ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@2", // Gm C7 F
I: "~ [f3,f4,a4,c5] [c4,e4,g4,c5] ~ [c4,e4,g4,c5] ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@2 f3 [f4,a4,c5] f3 ~ bb4@2 f4@2 d5 ~ [f4,c5] ~@2 [c4,e4,c5] ~@3 [c4,e4,c5] ~, ~@17 [bb3,d4]@4 ~@2 c4@2 ~@7", // F C F F5 C Bb
J: "[c4,e4,c5] ~ c3 ~ d3 ~ e3 [f3,f4] [a4,c5] ~@2 [f3,f4] ~ a4 ~@2 f4 ~@2 [bb3,d5] c5 [c4,e4] ~@2 [c4,e4,c5] ~@3 [c4,e4,c5] ~ [c4,e4,c5] c3, ~@11 c5@2 ~@2 [bb3,d4,bb4]@3 ~@14", // C F Am F Bb C Bb
K: "~@2 d3 e3 ~ [d4,bb4]@4 f4@2 d4 ~@2 f4@2 d4 ~ [e4,bb4] ~@3 [c3,e4,bb4]@4 g4 [bb3,e4]@2 g4@2 [c3,e4], ~@5 bb2@8 [bb3,d4,bb4]@4 ~ c3@2 ~@7 bb4@4 ~", // Gm Edim C7 Bbdim C Bb
L: "~ g3 ~ [f3,c4,a4]@4 f4 c4 ~@3 d4@2 bb3 ~ [c3,g4]@2 ~ bb3@2 e4@2 bb3 ~ bb3@4 e4@2 bb3, ~@10 [bb2,g3,g4]@4 ~@2 e4 ~@2 [c3,g4]@4 ~@2 [c3,g4]@7", // F C5 Eb C5
M: "[~ f4@3 [bb2,d4]@2 bb3 ~ [bb2,bb3,f4]@2 d4@2 bb3 ~ [c3,bb3] ~@2 [c3,bb3,g4]@2 e4@2 bb3 ~ [c3,bb3,g4]@2 e4@2 d4@3 [a2,bb3,g4]@4 d4 ~ bb3 ~@2 d4@2 bb3 ~ [bb3,g4] ~@3 [c3,bb3,g4]@4 ~@3 e4@2 bb3 ~ f3 ~ [f2,a3,f4]@4, ~ f3 ~@12 g4@2 ~@20 g4@6 ~@9 e4@2 c3@3 ~@8, ~@38 [g2,bb3]@3 ~@2 c3@2 ~@7 g4@5 ~@7, ~@26 bb3 ~@5]/2", // Bb Bb5 C7 Eb C7 F Gm
N: "[c3,c4] ~ f3 ~@2 f4@2 [c5,d5] ~ [e4,c5] ~@3 [e4,c5]@2 ~@2 [e4,c5] [e4,c5]@3 ~ c3 ~ g3 ~ [f3,c4,a4]@4 ~ [c3,c4], ~@3 [bb2,d4]@4 ~@2 c3@2 ~@2 c3 ~@4 c3 ~@11 [f2,f4]@2, ~@2 bb4 ~@13", // C Csus2 C F C Bb F
O: "~ [d4,bb4]@2 f4@2 d5 ~ [c3,e4,c5]@2 ~@2 c5@2 ~ [c3,e4,c5] ~ [c3,e4,c5]@3 ~@3 [e4,bb4] ~ [g3,g4,bb4,d5] ~@2 [g3,g4,bb4,d5] ~ [g3,g4,bb4,d5] ~ [g3,g4,bb4,d5], ~ bb2@5 ~@4 [c3,e4]@2 ~@20", // Gm C Edim Gm C
P: "~ [g3,g4,bb4,d5] ~@3 [g3,g4,bb4,d5] ~@2 [g3,g4,bb4,d5] ~@3 [g3,bb4,d5] ~ [c4,e4,bb4,c5] [c4,e4,c5] bb4!2 [c4,e4,c5] [c4,bb4,c5] ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~ [f3,f4,a4,c5]!2 ~", // Gm C7 C C7 F
Q: "~@2 [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~ [c4,e4,g4,c5]!2 ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~ f3 ~@2 f4@2 d5 ~, ~@13 [bb3,d4]@2 ~, ~@27 bb4@2 ~@3", // F C F Bb
R: "[f4,c5] ~@2 e4 [c4,c5] ~@3 [c4,e4,c5]!2 ~ c3 ~ d3 ~ e3 ~ [f3,f4,a4,c5] ~@3 [f3,f4] a4 ~ [bb3,d4,bb4]@2 f4 ~ [bb3,d5] ~ [c4,e4,c5] ~, c4@2 ~@19 c5@2 ~@9", // F5 C F Bb C
S: "[~ [c4,e4,c5] ~@3 [c4,e4,c5] ~ [c4,e4,c5] ~ c3 ~ d3 ~ e3 [d4,bb4]@4 f4@2 d4 ~@2 f4@3 d4 [e4,bb4] ~@3 [c3,e4,bb4]@4 g4 ~@2 g4@3 [c3,e4] g3 ~ [c4,a4]@4 f4 ~ c4 ~@2 d4@2 bb3 ~ [c3,g4]@2 ~@2 bb3@2 e4@2 bb3 bb3@3 ~ e4@2 bb3 ~ f4@4 ~ bb3 ~ [bb2,bb3,f4]@2 d4@2 bb3 ~ [c3,bb3,g4] ~@2 [c3,bb3,g4]@3 ~ bb3 ~, ~@14 bb2@8 [bb3,d4,bb4]@4 ~ c3@2 ~@8 [bb3,e4,bb4]@3 ~@4 f3@3 ~@4 [bb2,g3]@5 ~@5 [c3,g4]@4 ~ [c3,g4]@7 ~ f3 ~@3 [bb2,d4]@2 ~@16, ~@52 g4@3 ~@2 e4 ~@35 e4@2 ~]/3", // C Gm Edim C7 C F C5 Bb5 …
T: "[[c3,bb3,g4]@2 e4@2 d4@3 ~ [bb3,g4]@3 d4 ~ bb3 ~ [g2,bb3]@2 d4@2 bb3 ~ [bb3,g4] ~@2 [c3,bb3,g4]@4 e4@2 [c3,bb3]@2 e4@2 bb3 f3 ~ [f2,f4]@4 [c3,c4] ~ f3 ~@2 f4@2 ~ [c5,d5] c5 e4 ~@2 [c3,e4,c5]@2 ~@2 [e4,c5] ~ [c3,e4,c5]@3 c3, ~@8 a2@2 ~@3 g4@5 ~@3 c3@2 ~@7 g4@5 ~@2 a3@3 ~@5 [bb2,d4]@4 ~ c3@2 ~@12, ~@45 bb4@2 ~@17]/2", // C7 Eb Gm Eb C7 F C Csus2 …
U: "~ g3 ~ [f3,c4,a4]@4 [f2,f4]@2 [c3,c4] ~@2 f4@2 d5 ~ [c3,e4,c5]@2 ~@2 [e4,c5]@2 ~@2 [c3,e4,c5] [c3,e4,c5]@3 ~@3 [e4,bb4], ~@10 [bb2,d4]@4 ~@5 c3@2 ~@11, ~@11 bb4@2 ~@19", // F C Edim Bb
V: "~ [g3,g4,bb4,d5] ~@3 [g3,g4,bb4,d5]!2 ~ [g3,g4,bb4,d5] ~ [g3,g4,bb4,d5] ~@3 [g3,g4,bb4,d5] ~@2 [g3,g4,bb4,d5] ~@3 [g3,bb4,d5] ~ [c4,e4,bb4,c5] ~ [c4,e4,bb4,c5] ~ [c4,e4,bb4,c5] ~ [c4,bb4,c5] ~ [f3,f4,a4,c5]", // Gm C7 F
W: "~@2 [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@2 [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~ [c4,e4,g4,c5]!2 ~ [a4,c5] [f3,f4] ~@2 [f3,f4,a4,c5] ~@3", // F C Am F
X: "[f3,f4,a4,c5] ~ f3 ~@2 f4@2 d5 ~ [f4,c5] ~@3 [c4,e4,c5] ~@3 [c4,e4,c5] c5 [c4,e4] c3 ~ d3 ~ e3 ~ [f3,f4,a4,c5] ~@3 [f3,f4] ~, ~@3 [bb3,d4]@4 ~@2 c4@2 ~@21, ~@2 bb4 ~@12 c5", // F F5 C F Bb
Y: "[a4 [bb3,d4,bb4]@2 f4 ~ [bb3,d5] ~ [c4,e4,c5] ~@3 [c4,e4,c5] ~@2 [c4,e4,c5] ~ [c4,e4,c5] ~ c3 ~ d3 ~ e3 ~@4 f4@2 d4 ~@3 f4@2 d4 ~ [e4,bb4] ~@2 [c3,e4,bb4]@4 g4 ~ e4@2 g4@2 [c3,e4] ~ g3 [f3,c4,a4]@4 f4 ~ c4 ~@3 d4@2 bb3 e4 g4@2 ~ bb3@2 e4@2 bb3 ~@4 e4@2 bb3 ~ f4@4 [bb2,d4]@2 bb3 ~@2 d4@2 bb3 ~, ~@24 bb2@10 ~@3 c3@2 ~@7 bb3 ~@14 [bb2,g3,g4]@4 ~ c3@2 ~@2 [c3,g4]@4 ~ bb3@4 ~@4 f3 ~@6 bb3@2 ~@4, ~@24 [d4,bb4]@6 ~ [bb3,d4,bb4]@4 ~@11 bb4@4 ~@25 g4@7 ~@9 f4@3 ~@2, ~@76 c3@5 ~@9 bb2@4 ~@2]/3", // Bb C Edim C7 C F Bb Eb …
Z: "[c3,bb3] ~@3 [c3,g4]@2 e4@2 bb3 [c3,bb3]@2 e4@2 d4@3 ~ [a2,bb3,g4]@4 d4 ~ bb3 [g2,bb3]@2 d4@2 bb3 ~ [bb3,g4] ~, g4@2 ~ bb3@3 ~@3 g4@4 ~@10 g4@5 ~@2 c3@2", // C7 C5 C7 Eb Gm Eb
AA: "[~@2 [c3,g4]@3 e4@2 [c3,bb3]@2 e4@2 bb3 ~ f3 ~@4 [c3,c4] ~ f3 ~ bb4@2 f4@2 [c5,d5] ~ [c3,e4]@2 ~ [c3,e4,c5]@2 ~@2 [e4,c5] ~ [c3,e4,c5]@3 ~ c3 ~ g3 [f3,c4,a4]@4 [f2,f4]@2 [c3,c4] ~@2 f4@2 d5 ~ [c3,e4,c5]@2 ~@2 [c3,e4,c5]@2 ~, ~ bb3@4 ~@2 g4@5 ~@2 f4@5 ~@9 c5 ~@35, ~@14 a3@3 ~@47, ~@15 f2@5 ~@2 [bb2,d4]@4 ~@26 [bb2,d4,bb4]@4 ~@8]/2", // C5 C7 C Csus2 C F C Bb
AB: "~ [c3,e4,c5] ~ [c3,e4,c5]@3 ~@2 [e4,bb4] ~ [g3,g4,bb4,d5] ~@3 [g3,g4,bb4,d5] ~ [g3,g4,bb4,d5] ~ [g3,g4,bb4,d5]!2 ~@3 [g3,g4,bb4,d5] ~@3 [g3,g4,bb4,d5] ~@3 [g3,bb4,d5]", // C Edim Gm
AC: "[c4,e4,c5] bb4 [c4,e4,bb4,c5] ~ [c4,e4,bb4,c5] ~ [c4,bb4,c5] ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5]!2 ~ [f3,f4,a4,c5] ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@2 [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~ [c4,e4,g4,c5] ~", // C C7 F C
AD: "[c4,e4,g4,c5] ~ [f3,f4,a4,c5] ~@3 [f3,f4,a4,c5] ~@2 [f3,f4,a4,c5] ~ f3 ~ bb4@2 f4@2 d5 ~ [f4,c5] ~@2 [c4,e4,c5] ~@3 [c4,e4,c5] ~ [c4,e4,c5] c3 ~@2, ~@13 [bb3,d4]@4 ~@2 c4@2 ~@11", // C F F5 C Bb
AE: "d3 e3 ~ [f3,f4,a4,c5] ~@3 [f3,f4] ~ a4 ~@2 f4 ~ [bb3,d5] ~ [c4,e4,c5] ~@3 [c4,e4,c5] ~@3 [c4,e4,c5]!2 ~ c3 ~ d3 ~ e3, ~@7 c5@2 ~ bb4@2 ~@20, ~@11 [bb3,d4]@3 ~@18", // F Bb C Bb
AF: "~ [a3,f4] ~@2 a4@2 ~@2 [d4,bb4]@2 f4 ~ d5 ~ [c3,e4,c5]@2 ~@16, ~ [f2,f3]@5 ~@2 bb2@5 ~@19, ~@4 c4 ~@27", // Dm Gm C F
})).s("gm_piano").gain(0.36)
// other · trumpet
const trumpet = note("<A B C@3 D E F G H I@2 J K@2 L@3 M N@2 O P Q@3 R S T@3 U V W X Y Z AA@2 AB>".pickRestart({
A: "g2@5 ~ d3@2 c3@3 ~@2 g2@2 ~@2 g2@2 ~@2 d3@2 c3 c3@2 d3@2 c3@2 f2@2",
B: "~@5 c3@3 ~@3 f2@2 ~@2 f2@2 ~@3 c3 ~ c3@2 d3@2 c3 ~ g2@4, ~@4 d3@2 ~@13 d3@2 ~@11",
C: "[~ d3@2 c3 ~@5 g2@2 ~ g2@2 ~@2 d3@2 c3 ~ c3@2 d3@2 c3@2 f2@3 ~@2 d3@2 c3@3 ~@3 f2@2 ~ f2@2 ~@2 d3@2 c3 ~ c3 ~ f3@3 g2@4 ~@2 d3@2 c3@4 ~ g2@2 ~@2 g2@2 ~@3 c3 ~ c3@2 d3@2 c3@2 f2@4 ~@3 c3@3 ~, ~@76 d3@2 ~@13 d3@2 ~@3]/3",
D: "~@2 f2@2 ~@2 f2@2 ~@2 d3 c3 ~ c3@2 d3@2 c3@2 g2@3 ~@2 d3@2 c3@3 ~@3",
E: "g2@2 ~ g2@2 ~@2 d3@2 c3 ~ c3@2 d3@2 ~ f2@4 ~@2 d3@2 c3@3 ~ d3 f2@2 ~, ~@15 c3@2 ~@15",
F: "~ c2@3 ~ c2@2 ~@2 c2 e2 ~ e2@2 g2@4 ~@2 g2@2 d3@3 ~@2 d3@2 c3@3",
G: "~@3 c3@2 c2@3 ~@2 c2 ~ f2@3 ~@2 f2@2 c3@3 ~@3 c3@2 c2@3 ~@2",
H: "c2@2 c3@3 ~@3 c3@2 f2@3 ~@2 f2@2 bb2@3 ~@4 c3@3 ~@3 c3 ~, ~@23 bb2@2 ~@7",
I: "[c3 ~ c2 d2 ~ e2 ~ f2@3 ~@3 f2@2 bb2@3 ~@2 bb2 ~ c3@2 ~@4 c3 ~ c3 c3@2 d3@2 e3@2 bb2@3 ~@4 f3@4 ~@2 f3 ~ c3@4 ~ c3@2 c2@4 ~, ~@43 bb2@2 ~@19]/2",
J: "~@3 f2@4 ~ f2@2 bb2@4 ~@2 bb2@2 c3@3 ~@2 c3@2 c2@3 ~@4",
K: "[~ bb2@3 ~@2 bb2 ~ bb2@4 ~ bb2@2 c3@3 ~@3 c3@2 c2@4 ~@3 g2@4 ~@2 g2 ~ g2@4 ~ g2@2 c3@3 ~@3 c3!2 ~ c2@2 d2@2 e2@2 f2@4]/2",
L: "[~ f2@2 bb2@4 ~@2 bb2@2 c3@3 ~@2 c3 ~ c3@2 c2@2 d2@2 e2@2 f2@4 ~ f2@2 bb2@4 ~@3 c3@4 ~@2 c3 ~ c3@2 c2@2 ~ e2 ~@2 g2@4 ~ g2@2 d3@4 ~ d3@2 c3@3 ~@3 c3@2 c2@3 ~@2 c2 ~ f2@3 ~@3 f2@2 c3@3, ~@39 bb2@2 ~@11 d2@2 ~@42]/3",
M: "~@2 c3@2 c2@3 ~@2 c2@2 ~ c3@3 ~@2 c3@2 f2@3 ~@4 bb2@3 ~@3, ~@25 f2@2 ~@5",
N: "[bb2@2 c3@3 ~@2 c3 ~ c3 ~ c2 ~ d2 ~ e2 ~ f2@3 ~@2 f2@2 bb2@3 ~@2 bb2 ~ c3@2 ~@4 c3 ~ c3 ~@2 d3@2 e3@2 bb2@3 ~@3 bb2 ~ f3@3 ~@2 f3 ~ c3@3, ~@41 c3@2 ~@21]/2",
O: "~@3 c3@2 c2@3 ~@4 f2@4 ~@2 f2@2 bb2@4 ~ bb2@2 c3@3 ~@2",
P: "c3@2 c2@3 ~@5 bb2@3 ~@2 bb2 ~ bb2@4 ~@3 c3@4 ~@2 c3@2, ~@23 bb2@2 ~@7",
Q: "[c2@4 ~@3 g2@4 ~@2 g2 ~ g2@4 ~ g2@2 c3@3 ~@3 c3 ~ c3 c2@2 d2@2 e2@2 f2@4 ~@2 f2@2 bb2@4 ~ bb2@2 c3@3 ~@2 c3 ~ c3@2 c2@2 d2@2 e2@2 f2@4 ~ f2@2 bb2@4 ~@2 bb2@2 c3@4 ~ c3 ~ c3@2 c2@2 d2@2 e2]/3",
R: "~ g2@4 ~ g2@2 d3@3 ~@4 c3@3 ~@3 c3@2 c2@3 ~@3 c2 f2@2, ~@7 d3 ~@8",
S: "~@4 f2@2 c3@3 ~@2 c3@2 c2@3 ~@3 c2@2 c3@3 ~@2 c3@2 f2@3 ~",
T: "[~@2 f2@2 bb2@3 ~@2 bb2@2 c3@3 ~@3 c3!2 ~ c2 ~ d2 ~ e2 ~ f2@3 ~@2 f2@2 bb2@3 ~@3 bb2 ~ c3@2 ~@3 c3 ~ c3 ~ c3@2 d3@2 e3@2 bb2@3 ~@2 bb2@2 f3@4 ~@2 f3 c3@4 ~@2 c3@2 c2@3 ~@4 f2@4 ~@2 f2@2 bb2@3]/3",
U: "~@2 bb2@2 c3@3 ~@4 c2@4 ~@4 bb2@3 ~@2 bb2 ~ bb2@4 ~@2, ~@5 c3 ~@10",
V: "bb2@2 c3@4 ~ c3@2 c2@4 ~@4 g2@4 ~ g2 ~ g2@4 ~@2 g2@2",
W: "c3@3 ~@2 c3 ~ c3 ~ c2@2 d2@2 ~ f2@5 ~ f2@2 bb2@4 ~ bb2@2 c3@3, ~@13 e2@2 ~@17",
X: "~@3 c3 ~@2 c2@2 ~ d2@2 ~ f2@4 ~@3 bb2@4 ~@2 bb2@2 c3@4 ~, ~@5 c3@2 ~@4 e2@2 ~@5 f2@2 ~@12",
Y: "~ c3 c3@2 c2@2 d2@2 e2 ~ g2@3 ~@2 g2 ~@2 d3@2 ~@3 d3@2 c3@3 ~@2 c3@2",
Z: "c2@2 ~@4 g2@2 f2@4 ~ f2@2 c3@2 ~@5 c2@2 ~@4 c2@2 c3@2, ~@21 c3@2 ~@9",
AA: "[~@3 g2@2 ~ f2@4 ~ f2@2 bb2@3 ~@2 bb2@2 c3@2 ~@4 c3@2 ~ c2@2 d2@2 e2@2 f2@2 ~@4 f2@2 bb2@3 ~@2 bb2@2 c3@2 ~@3 c3 ~ c3 ~ c2 ~ g2 ~ c3]/2",
AB: "~ f2@3 ~@2 a2 ~ bb2 ~ b2@2 ~@2 c3@4 ~@3 f3@2 f2@4 ~@5",
})).s("gm_trumpet").gain(0.36)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F G H I J K L M N O P Q R F S T U V W X Y Z AA C AB AC AD AE AF AG AH AI AJ AK AL
>`.pickRestart({
A: "x ~@10 x ~@3 x ~@14 x ~", B: "~@9 x ~@3 x ~@4 x ~@9 x ~@3", C: "~@7 x ~@3 x ~@14 x ~@5",
D: "~@5 x ~@2 x ~@14 x ~@8", E: "~@2 x ~@3 x ~@14 x ~@10", F: "x ~@3 x ~@4 x ~@9 x ~@10 x ~",
G: "~ x ~@11 x ~@2 x ~@10 x ~@3 x", H: "~@12 x ~ x ~@10 x ~@3 x ~@2", I: "~@12 x ~@10 x ~@3 x ~@4",
J: "x ~@8 x ~@11 x ~@2 x ~@7", K: "~@7 x ~@10 x ~@3 x ~@9", L: "~@5 x ~@5 x!2 ~@7 x ~@4 x ~ x ~@4",
M: "~@3 x ~@4 x ~ x ~@6 x ~@5 x ~ x ~@6", N: "x ~@5 x ~ x ~@6 x ~@5 x ~ x ~@6 x ~",
O: "~@4 x!2 ~@7 x ~@5 x!2 ~@7 x ~@3", P: "~ x ~ x ~@5 x ~@3 x ~@2 x ~ x ~@7 x ~@4 x",
Q: "~ x ~@5 x ~@2 x ~@3 x ~ x ~@6 x ~@8", R: "~@3 x ~@2 x ~@14 x ~@10", S: "~@2 x ~@13 x ~@11 x ~@2 x",
T: "~@14 x ~@5 x ~ x ~@6 x ~@2", U: "~@3 x!2 ~@7 x ~@4 x ~ x ~@7 x ~@4", V: "x ~ x ~@7 x ~@4 x ~ x ~@6 x ~@5 x ~",
W: "x ~@6 x ~@5 x ~ x ~@6 x ~@5 x ~ x ~", X: "~@5 x ~@5 x ~ x ~@4 x ~@3 x ~@2 x ~ x ~@4",
Y: "~@3 x ~@4 x ~ x ~@5 x ~@2 x ~@3 x ~ x ~@6", Z: "~ x ~@10 x ~@2 x ~@14 x ~", AA: "~@9 x ~@3 x ~@5 x ~@8 x ~@3",
AB: "~@5 x ~@3 x ~@13 x ~@5 x ~ x", AC: "~@6 x ~@5 x ~ x ~@6 x ~@5 x ~ x ~@2",
AD: "~@4 x ~@5 x!2 ~@7 x ~@4 x ~ x ~@5", AE: "~@2 x ~@4 x ~ x ~@7 x ~@4 x ~ x ~@6 x",
AF: "~@5 x ~ x ~@6 x ~@5 x ~ x ~@4 x ~@3 x", AG: "~@3 x ~ x ~@6 x ~@5 x!2 ~@5 x ~@3 x ~@2",
AH: "x ~ x ~@7 x ~@10 x ~@3 x ~@6", AI: "~@7 x ~@11 x ~@2 x ~@5 x ~@3", AJ: "~@5 x ~@10 x ~@3 x ~@10 x",
AK: "~@3 x ~@10 x ~@3 x ~@12 x", AL: "~ x ~@6 x ~ x ~@3 x ~@17",
})).gain(0.41)
// drums · rim
const rim = s("rim").struct("<A B C D E F G H I J K ~@5 L M N G O ~@5 P Q R S ~@5 T U V W ~>".pickRestart({
A: "~@4 x ~@4 x ~@3 x ~@3 x ~@5 x ~@8", B: "~@2 x ~@4 x ~@3 x ~@3 x ~@4 x ~@10 x",
C: "~@5 x ~@3 x ~@2 x ~@5 x ~@10 x ~@2", D: "~@3 x ~@2 x ~@3 x ~@5 x ~@10 x ~@4",
E: "x ~@3 x ~@3 x ~@4 x ~@11 x ~@4 x ~", F: "~@2 x ~@3 x ~@4 x ~@10 x ~@5 x ~@3",
G: "x ~@2 x ~@5 x ~@10 x ~@5 x ~@2 x ~@2", H: "~ x ~@5 x ~@10 x ~@4 x ~@3 x ~@3 x",
I: "~@4 x ~@10 x ~@5 x ~@3 x ~@3 x ~@2", J: "~@2 x ~@10 x ~@5 x ~@3 x ~@2 x ~@5",
K: "x ~@10 x ~@5 x ~@2 x ~@3 x ~@4 x ~@2", L: "~@27 x ~@4", M: "~ x ~@2 x ~@3 x ~@5 x ~@10 x ~@4 x ~",
N: "~@2 x ~@3 x ~@4 x ~@10 x!2 ~@4 x ~@3", O: "~ x ~@5 x ~@24", P: "~@4 x ~@5 x ~@2 x ~@3 x ~@5 x ~@8",
Q: "~@2 x ~@5 x ~@2 x ~@3 x ~@5 x ~@10", R: "x ~@4 x ~@3 x ~@3 x ~@4 x ~@10 x ~@2", S: "~@3 x ~@3 x ~@2 x ~@5 x ~@15",
T: "~@13 x ~@5 x ~@3 x ~@3 x ~@4", U: "x ~@10 x ~@5 x ~@3 x ~@2 x ~@5 x ~", V: "~@9 x ~@4 x ~@3 x ~@3 x ~@4 x ~@4",
W: "~@7 x ~@4 x ~@3 x ~@3 x ~@4 x ~@6",
})).gain(0.46)
// drums · snare
const snare = s("sd").struct("<~@11 A B C D E F ~@3 G H I J K L ~@3 M N O P Q R S ~@4>".pickRestart({
A: "~@9 x ~@6 x ~@6 x ~@7 x", B: "~@6 x ~@7 x ~@6 x ~@7 x ~@2", C: "~@4 x ~@6 x ~@7 x ~@6 x ~@5",
D: "~@2 x ~@6 x ~@7 x ~@6 x ~@7", E: "x ~@6 x ~@12 x ~ x ~ x ~@4 x ~@2", F: "~@5 x ~@12 x ~ x!2 ~@10",
G: "~@18 x ~@6 x ~@6", H: "~ x ~@6 x ~@7 x ~@6 x ~@7 x", I: "~@6 x ~@6 x ~@7 x ~@6 x ~@3",
J: "~@4 x ~@6 x ~@6 x ~@7 x ~@5", K: "~ x ~@7 x ~@6 x ~@12 x ~ x", L: "~ x ~@4 x ~@7 x ~@12 x ~ x!3", M: "~@27 x ~@4",
N: "~@3 x ~@6 x ~@6 x ~@7 x ~@6", O: "x ~@7 x ~@6 x ~@7 x ~@6 x ~", P: "~@5 x ~@7 x ~@6 x ~@7 x ~@3",
Q: "~@3 x ~@7 x ~@6 x ~@6 x ~@6", R: "~@7 x!2 ~ x ~@5 x ~@6 x ~@8", S: "~@4 x ~ x!3 ~@23",
})).gain(0.41)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@15 A B ~@7 C D ~@7 E F G ~@4>".pickRestart({
A: "~@13 x!2 ~ x ~ x ~@13", B: "~@5 x!4 ~@7", C: "~@22 x ~ x!2 ~ x ~@4", D: "~@19 x ~ x ~ x ~ x ~@6", E: "~@31 x",
F: "~ x ~ x ~ x ~@23 x ~ x", G: "~ x!2 ~@29",
})).gain(0.15)
// drums · clap
const clap = s("cp").struct("<~@11 A B C D E F ~@3 G H I J K L ~@3 M N O P Q H R ~@4>".pickRestart({
A: "~@9 x ~@6 x ~ x ~@4 x ~@7 x", B: "~ x ~@4 x ~@7 x ~ x ~@4 x ~@7 x ~ x", C: "~@4 x ~@6 x ~ x ~@5 x ~@6 x ~ x ~@3",
D: "~@2 x ~@6 x ~ x ~@5 x ~@6 x ~ x ~@5", E: "x ~@6 x ~ x ~@4 x ~@7 x ~ x ~@4 x ~@2",
F: "~@5 x ~ x ~@4 x ~@7 x!2 ~@10", G: "~@18 x ~@6 x ~ x ~@4", H: "~ x ~@6 x ~ x ~@5 x ~@6 x ~ x ~@5 x",
I: "~@6 x ~ x ~@5 x ~@6 x ~ x ~@4 x ~@3", J: "~@4 x!2 ~@5 x ~@7 x!2 ~@5 x ~@5",
K: "~ x ~ x ~@5 x ~@6 x ~ x ~@5 x ~@6 x", L: "~ x ~@5 x ~@6 x ~ x ~@5 x ~@6 x ~ x", M: "~@27 x ~@4",
N: "~@3 x!2 ~@5 x ~@6 x ~ x ~@5 x ~@6", O: "x ~ x ~@5 x ~@6 x ~ x ~@5 x ~@6 x ~",
P: "x ~@4 x ~@7 x ~ x ~@4 x ~@7 x ~ x ~", Q: "~@3 x ~@7 x ~ x ~@4 x ~@6 x ~ x ~@4", R: "~@3 x!2 ~@11",
})).gain(0.46)
// drums · hihat
const hihat = s("hh").struct("<~@11 A B C D E F ~@3 G H I J K L ~@3 M N O P Q R S ~@2 T ~>".pickRestart({
A: "~@5 x ~ x ~@3 x ~ x!2 ~@5 x ~ x ~@4 x ~ x ~@2", B: "~@3 x ~ x ~@2 x ~ x ~ x ~@4 x ~ x ~@3 x ~ x ~ x ~@4",
C: "~ x!2 ~@3 x ~ x ~ x ~@4 x ~ x ~@3 x ~ x ~ x ~@4 x ~", D: "x ~@3 x ~ x!2 ~@5 x ~ x ~@3 x!2 ~ x ~@5 x ~ x ~",
E: "~@2 x!2 ~ x ~@5 x ~ x ~@2 x ~ x ~ x ~@5 x!2 ~@3 x", F: "~ x ~ x ~@5 x ~@4 x ~ x ~ x ~@13",
G: "~@14 x ~ x ~@3 x ~ x!2 ~@5 x ~ x", H: "~@4 x ~ x ~@5 x ~ x ~@3 x!2 ~ x ~@5 x ~ x ~@2",
I: "x ~ x ~ x ~@5 x!2 ~@3 x ~ x ~ x ~@4 x ~ x ~@3 x ~", J: "x ~ x ~@4 x ~ x ~@3 x ~ x ~ x ~@4 x ~ x ~@3 x ~ x ~",
K: "x ~@4 x ~ x ~@3 x ~ x!2 ~@5 x ~ x ~@2 x ~@2 x!2 ~@2", L: "~@3 x ~ x ~@2 x ~ x ~ x ~@5 x ~@4 x ~ x ~ x ~@4",
M: "~@23 x ~ x ~@3 x ~ x", N: "~ x ~@4 x ~ x ~@5 x ~ x ~@4 x ~ x ~@3 x ~ x!2 ~",
O: "~@4 x ~ x ~@3 x!2 ~ x ~@5 x ~ x ~@3 x!2 ~ x ~@3", P: "~@2 x ~ x ~@2 x ~ x ~ x ~@5 x!2 ~@3 x ~ x ~ x ~@5",
Q: "x!2 ~@3 x ~ x ~ x ~@4 x ~ x ~@3 x ~ x ~ x ~@4 x ~ x", R: "~@3 x ~ x ~ x ~@4 x ~ x ~@3 x ~ x!2 ~@5 x ~@4",
S: "~ x!2 ~ x ~@5 x ~@14 x ~@6", T: "~@20 x ~@6 x ~@3 x",
})).gain(0.36)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@11 A ~@4 B ~@4 C ~@3 D ~@4 E ~@3 F G H I J ~>".pickRestart({
// … 84 more lines
More by
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.