0:00/0:00
// A chi — Leali
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 6 string ensemble 2 (copy of ch 5 synth strings 1)
// note: Full arrangement: all 95 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · piano
const piano = note("<A@7 B@8 C@8 D@4 E@7 F@8 G@4 H@5 I@6 J@8 K@4 L@3 M@3 N@7 O@8 P@4 ~>".pickRestart({
A: "[[e3,g3]@15 ~@36 [c4,d4]@10 ~@51 e4@10 ~@87 a3@5 [g3,a3,b3]@10, [e4,g4]@61 [c4,e4]@21 g4@41 ~@14 e3@16 d4@10 g4@41 g3@10 ~@10, c2@30 g3@16 c2@15 c2@61 [e2,g3,e4]@41 b3@10 d4@51, c4@20 g3@5 c4@25 g3@11 g3@26 e4@15 g3@20 d4@20 d5@37 b3@5 g3@15 e3@25, ~@15 c3@77 c4@30 b3@21 g4@5 b4@35 ~ e2@40]/7", // Em Csus2 G Em C Em
B: "[~ [g3,a3]@9 ~ [g3,a3]@10 g3@15 ~@11 f3@5 ~@25 a3@5 f3@15 ~@11 a3@5 ~@26 a3@5 ~@56 g3@4 ~@21 [e3,a3]@10 ~ [e3,a3,d4]@20, ~ c4@20 c4@51 f3@10 a3@26 ~@5 a3@25 ~@6 g3@20 b3@5 e4@5 g3@16 e3@14 ~ [a3,c#4]@20 ~@31, ~@10 d4@11 f2@31 [f3,a3]@15 f2@15 [f2,e4]@31 [f2,f3,d4]@31 e2@60 ~@16 a1@36, ~@21 a3@31 d4@31 ~@20 f3@10 ~@20 c4@10 ~@16 e3@15 [b3,g4]@21 e4@9 ~@21 c#4@31, ~@36 c3@46 ~@15 c3@46 ~@11 b2@50 ~ a2@51]/8", // Gsus2 A5 Dsus2 A F Fmaj7 Dm Em
C: "[[e3,a3,e4]@10 ~@51 d4@11 e4@15 ~@5 [a3,d4]@10 ~@26 g3@5 g3@15 ~@11 c4@4 ~ b3@2 ~@2 b3@3 ~@18 b3@5 ~@57 c5@4 ~, ~@10 [d2,f3,a3]@46 d3@17 ~@14 d3@16 ~@19 d3@11 ~@15 c3@16 ~@15 b2@15 e4@20 c4@11 g4@20 d5@9 ~@2, ~@10 f4@26 a4@37 ~@60 c4@26 ~@12 b3@18 ~@5 c2@46 b1@15 ~, ~@26 d3@15 f4@32 ~@29 [g2,b3,d#4]@31 [c2,e4]@29 ~@2 [b1,e4]@30 c4@15 c3@46 ~, ~@31 d4@20 e4@21 [g2,f3,b3]@31 ~@50 g3@9 ~@2 g3@20 g3@36 e4@35 ~]/8", // A5 D5 Dm Gaug C E5 G7
D: "[~@56 a3@5 ~@26 g3@5 ~@20 a3@9 ~ [f2,g#3,c4]@6, [a1,a4]@61 [a3,d4]@15 d3@31 d2@15 ~@6, ~@15 a2@25 a3@6 g3@16 ~@9 a2@50 ~@7, ~@20 e4@10 c4@20 e4@11 f#4@60 ~@7, ~@25 e3@36 d2@20 f#3@11 a3@10 d4@20 ~@6]/4", // Fm A D5
E: "[~@15 [g#3,c4]@10 ~@25 g#3@5 ~@26 d4@5 g1@15 ~@11 d4@5 ~@41 g4@5 [c2,b3,d4]@15 c2@20 ~@21 e4@5, ~@4 c3@21 [g#3,c4]@15 f2@5 c4@10 ~ [f3,a3]@30 d4@21 e4@10 c4@46 g4@15 e4@21 c2@5 e5@5 g4@15, ~@10 f3@46 g2@61 g3@20 g4@6 e4@10 g3@5 e4@20 c4@46, ~@15 g4@41 ~@15 g1@15 [g3,b3]@31 c2@46 g3@61, ~@25 f4@30 ~ d4@20 f4@11 ~@15 g1@15 e4@15 c3@92]/7", // G# G G# F G
F: "[~@5 g3@10 ~ g3@15 ~@30 d4@16 ~@25 g3@5 ~ [g3,b3]@10 [g3,b3]@10 [g3,b3,e4]@10 ~@56 d4@5 ~@31 f3@5 ~@16 f4@5, c4@14 ~@2 [e2,e4]@30 b3@31 [b3,e4]@31 e4@10 d4@20 c4@20 ~ c4@5 a4@5 f4@10 e4@10 c4@10 ~ [a3,c4]@25 a3@5 f2@10 a3@6 c4@10, ~@16 b3@25 a3@36 g3@20 e3@41 ~@16 f3@46 g3@20 g3@36, ~@31 e3@47 ~@14 b2@46 ~@10 c3@51 ~@16 c3@41, ~@36 g3@41 e2@61 [f2,g3,a3]@61 ~ f2@27 c4@8 f3@21]/8", // G Em E E5 Am F
G: "[c4@5 ~@51 [g3,b3,d4]@10 ~@21 [g3,a3,d4]@10 ~@25 g3@5 ~, ~@5 [e2,g3,b3]@25 e4@6 d4@10 e4@20 [g3,a3]@20 ~@11 g3@25 ~@6, ~@5 e4@20 g4@21 [g3,b3]@5 e3@15 [a1,c#4]@32 ~@19 g4@10 ~, ~@10 b2@26 e2@31 ~@30 [a1,a3,e4]@30 ~, ~@20 e3@16 [g3,b3]@5 b2@26 ~@15 a2@17 ~@13 a2@15 ~]/4", // G Gsus2 Em Gsus2 G A A5 G
H: "[~@46 [d2,f3,a3,f4]@13 ~@53 g3@10 ~@26 e4@5 [b1,f#4]@5 b3@2, d2@25 a3@5 d4@29 ~@2 c4@15 f3@10 c5@6 f4@4 c4@11 f2@15 [c2,g3,c4]@31 ~@7, d4@20 f3@26 ~@15 [g#3,d4]@61 e4@26 ~@5 d#4@3 ~@4, a3@15 d3@44 ~@7 c3@58 ~@13 c3@16 ~@7, f3@5 a2@54 ~@2 f2@20 g4@43 ~@19 g4@11 ~@6]/5", // Dm B5 C5 G#dim
I: "[~@3 [b2,d#4]@5 ~@10 [a#2,a#3]@6 ~@20 a3@10 [a1,d4,f4]@16 [a2,e4,g4]@15 ~@56 f4@5 ~@21 [g#3,c4,d4,f4]@10 [g1,g3,c4,d4,g4]@15, ~@8 [a#1,d4,a#4]@16 [a1,c#4,e4]@32 ~@29 d2@62 ~@15 f3@15 ~@15, ~@13 f4@11 ~@9 a3@10 ~@11 a3@41 a2@52 ~@9 c3@21 ~@15, ~@38 a2@17 ~@30 f4@20 f3@5 g3@5 a3@10 c4@11 d4@10 [g#3,c4,d4]@20 ~@26, ~@85 d4@15 d3@46 [f2,g4]@30 ~@16]/6", // B A# Dm A7 Dm7b5 Gsus4 A# A …
J: "[~@10 g3@4 ~@17 [g4,e5]@5 [g4,e5]@5 ~@5 [e4,c5]@5 [e4,c5]@5 ~@6 [c4,g4]@5 [c4,g4]@5 [c4,g4]@4 ~ [d#4,g#4]@2 ~@3 [c4,d#4,g#4]@5 g#4@5 [g#4,d#5]@5 [g#4,d#5]@5 g#4@5 [d#4,g#4,c5]@5 ~ [d#4,g#4,c5]@5 [d#4,g#4,c5]@4 ~@11 [c4,d#4]@5 ~@51 g#3@5 ~@31 c4@5 ~@15 [c#3,f4]@11, [g2,b3,d4,g4]@15 c2@6 g2@55 ~ g#1@45 ~ [g#1,g#3]@15 f4@15 c#3@21 g#3@10 f4@25 g#3@16 g#3@31, ~@16 g3@60 ~ c4 ~@9 c4@35 ~ c4@10 ~@5 c#4@74 f4@13 d#3@3 ~@28, ~@16 c4@25 e5@35 ~@11 d#4@15 d#5@20 ~@6 [a#3,c#4]@10 g#3@26 f4@5 c#2@25 g#3@5 [c#2,g#4]@29 ~@2 [c#2,f3,c#4]@26, ~@16 e4@10 c3@15 g4@5 c2@10 [e4,c5]@6 c3@14 ~@16 g#2@46 c#2@21 g#4@37 c#3@26 c#3@6 ~@28]/8", // C C5 G#5 G# G#5 G# Cm C# …
K: "[f3@4 ~@36 f2@10 ~@47 f4@10 ~@10 [d#4,f4,a#4]@9 ~ c#4, ~@5 g#3@51 c4@2 c3@28 c4@6 d#4@5 f2@10 [d#4,f4,g#4]@5 f2@14 ~@2, ~@5 f2@20 g#4@36 f4@20 g#3@45 ~@2, ~@5 c4@15 f3@36 d#4@10 f3@60 ~@2, ~@5 d#4@10 c3@10 d#4@5 f4@5 c4@15 f2@26 g3@50 ~@2]/4", // D#sus2 Fm7
L: "[~@25 a#3@5 ~@62 f#4@4, f#4@56 a#3@5 f#2@20 a#3@10 f#2@5, f#1@30 f#2@15 f#3@5 c#4@21 a#3@5 f#3@20, ~@9 f#2@21 c4@56 c#4@10, ~@14 a#3@5 f#3@12 ~@9 c#3@56]/3",
M: "[~@21 f#4@5 ~@56 f4@5 ~@5 a#3@4, [c#3,a#3]@26 f2@26 f4@5 c4@5 g#3@25 ~@9, ~@5 c#4@21 f4@10 f3@36 [f2,f4]@5 g#4@9 ~@10, ~@11 f#3@15 ~@5 c3@56 ~ a#1@8, ~@11 f#4@5 a#4@10 ~@5 g#3@5 c4@5 f4@5 g#4@21 c4@20 d4@9]/3", // F# F
N: "[~@37 f5@14 ~@53 f#4@10 ~@56 a3@5 ~@26 f4@5 ~@10 [c3,c4]@5 ~ f#4@2, ~@2 a#2@20 [a#3,c5]@5 d5@5 d#5@19 ~@12 a#3@35 a#4@16 g#4@15 c#4@11 a4@5 [c#4,d#4]@9 f#4@6 [a3,c#4]@5 d#4@10 [c#2,g#3,c#4]@31 [c2,g4]@15 b1@3, ~@7 [f3,d4]@45 ~ [d#2,d#5]@61 [f#2,c#5]@61 f4@25 ~@11 e4@10 ~@3, ~@6 f4@20 ~@3 d#3@28 ~@5 f#3@26 ~@7 c#3@8 ~@9, ~@17 a#4@35 ~@6 a#4@5 f#4@10 d#4@5 f#4@5 f4@5 f#4@6 d#4@20 ~@5 a4@16 g#4@41 ~@20 g#4@10 ~@18]/7", // C A#sus2 C#sus2 A C#5 C5 Dm D# …
O: "[~@2 [b2,d#4]@10 ~@52 f4@9 ~@57 [d#3,f#4]@5 ~@26 a3@5 ~@25 g#3@4 ~@32 [f4,g#4]@15 ~@11 c#4@3, ~@13 a#1@61 d#2@26 a#4@35 [f#2,c#4,f#4]@30 ~ [g#1,c#4]@30 ~ c#2@10 c#3@20 c#5@16 [f4,g#4]@13, ~@13 f4@40 d4@5 f3@15 ~ d#4@20 d#5@41 a3@25 ~@6 g#3@25 ~@6 f4@15 f5@44, ~@17 d4@16 a#3@41 a#3@31 f#4@4 [f4,g#4]@11 d#2@15 d#4@20 ~ d#4@10 d#4@20 d#4@10 ~ c#4@15 [g#4,c#5]@10 c#2@34, ~@22 a#2@6 f3@15 [a#2,g#3]@30 ~ f#4@15 d#3@25 f#4 d#4@10 a#3@11 ~@14 f#3@15 ~@16 [g#2,g#4]@15 ~@5 g#3@55]/8", // B D#m Fm F#5 C#5 Fm C#5 A#7 …
P: "[~@32 c#5@5 ~@20 a4@6 ~ c#4@29 [c#1,d#3,f3,g#3,c#4]@34 ~, ~@2 [f#2,c#4,f#4]@61 g#4@63 ~@2, ~@2 a4@20 [c#5,f#5]@5 a5@10 f#5@27 ~@64, ~ c#5@10 c#6@21 ~@32, ~@17 f#3@20 c#5@5 d#5@6 a4@5 c#5@11 [c#2,f4]@63 ~]/4", // C# F#5 C#
})).s("gm_piano").gain(0.62)
// chords · synth strings 1
const synth_strings_1 = note("<A@7 B@8 C@4 D@7 E@2 F G@8 H I@4 J@8 K L@4 M@6 N@4 O@7 P@4 Q@6 R@5 S@8>".pickRestart({
A: "[c4@121 ~ [b3,d4]@102, [g3,e4]]/7", // Bm C
B: "[~@21 [f3,a3]@122 ~@92 a#3@21, ~@20 c4@123 b3@92 ~@21, ~@143 d4@61 c#4@52, ~@9 g3@7]/8", // F
C: "[~@101 d#4@27, ~@9 a3@63 ~@56, ~@5 d4@46 ~@13, ~@10 d3@34 ~@27 b3@57, ~@11 f3@117]/4",
D: "[~@35 b3@31 ~@153 d3@5, ~@5 g3@188 ~@31, ~@5 c4@30 ~@31 c4@158, ~ e4@31, ~@4 a3@3]/7",
E: "[~@25 d4@31 e4@8, ~@25 [f3,g#3]@39]/2", F: "~@23 f3@9, ~ d4@3, ~@11 [d3,a3]@5",
G: "[~@22 g2@30 ~@20 g4@89 c5@15 b3@80, ~@21 g3@235, ~@21 b3@31 e4@204, ~@52 c4@125 ~@79, ~@52 c3@34 ~@90 b4@61 ~@19]/8",
H: "~@11 g4@16 b4@5", I: "[~@41 d4@30 e4@31 d4@26, ~@9 [f3,c4,a4]@119, ~@5 a3@59]/4",
J: "[~@96 a#3@28 ~@3 b3 ~@91 d4@15 ~@16 g3@6, ~@4 e4@184 ~@61 e4@7, ~@4 g3@124 ~@59 f4@63 ~@6, ~@4 e3@61 c#4@63 c4@92 ~@14 c4@22, ~@35 b3@60 ~@32 a3@61 [f3,g#3]@63 ~@5]/8", // Fm
K: "~@10 g4@14 ~ [f#3,b3]@7, ~@3 f#4", // B5
L: "[~@7 [f3,a#3,f4]@16 ~@61 [d3,f3,d4]@44, ~@23 e4@61 ~@44, ~@24 e3@61 ~@43, ~@19 g3@23 ~@22, ~@53 a3@75]/4", // A#5 Dm
M: "[~@16 g#3@32 c4@16 b3@15 ~@20 g4@41 ~@30 f4@16 d#4@6, ~@2 f4@77 e4@61 f#4@30 ~@22, ~@16 d4@63 c4@113, ~@16 g3@31 g#3@17, ~@141 d#4@44 ~@7]/6",
N: "[~@55 f5@9 f#5@7 ~@30 d#4@17 f4@10, ~@10 c#4@115 ~@3, ~@5 [f4,g#4]@55 ~@4, ~@71 g#5@57]/4", // Fm
O: "[~@35 c5@15 c#5@16 ~@30 c#4@15 ~ c5@14 ~@93 g#3@5, ~ g#4@55, ~@4 c4@93 ~@14 d#4@16 [f#3,a#3,c#4,f#4]@97, ~@33 d#5@23 ~@7 [a#4,c#5]@46 c5@3]/7", // F# A#m
P: "[~@9 c#5@16 ~ c5@45 f5@15 ~@32 f#5@10, ~@25 c4@62 a#2@41, ~@25 [f3,g#3]@61 d4@42, ~@25 d#4@46 f4@57, ~@43 g#5@15 b3@6]/4", // Fm
Q: "[~@5 f5@14 ~@48 f4@14 ~ f#4@15 ~@30 f#4@15 ~@2 g#4@30 [e3,g3,c4,g4]@14 f#4 [d#3,b3,f#4]@3, ~@19 f#3@123 f3@33 ~@13 f#3@4, ~@20 [d#3,a#3]@62 c#4@93 ~@17, ~@20 f#5@31 a#4@31 [c#3,f5]@15 g#4@14 a4@31 g#4@2 ~@48, ~@36 d#4@31 ~@14 a3@62 g#3@31 ~@18]/6", // C B D#5 C#
R: "[~@28 d5@15 [g#3,b3,f#4,d#5]@16 [g#4,f5]@14 f#5 a#4 ~@29 f4@16 f5@14 ~@17 g#4@9, ~@12 [d3,f4]@61 d#4 f#5@46 f#4@30 ~@10, ~@12 [f3,a#3]@32 ~@15 a#3@75 f#5@26, ~@59 g#3 ~@13 f#3@87, ~@74 d#3@61 [a3,c#4]@25]/5", // G#m7 C# Dm A#5 A
S: "[~@5 g#5@15 ~ c6@15 c#6@15 ~@2 d#5@2 ~@12 c#5@16 g#4@14 ~@16 a5@14 ~ g#4@15 ~@16 [f3,f4]@61 ~@36, ~@5 g#3@92 f#4@32 ~@14 f#4@15 g#3@61 ~@37, ~@5 f#4@31 [c#3,c#4]@192 ~@28, ~@20 c4@16 f4@47 ~@14 [f#3,a3]@62 g#4@58 ~@39, ~@51 g#5 f5@2 ~@12 f5@17 c#5@32 ~@12 f#5@17 c#5@74 ~@38]/8", // F C# F#m
})).s("gm_synth_strings_1").gain(0.31)
// bass · fretless bass
const bass = note(`<
A@7 B@7 C@2 D@2 E@4 F@4 G@8 H@5 I@2 J@2 K L M@6 N@6 O@2 P@2 Q R@2 S@2 T@2 U@8 V@6 W@3 X@2 Y@2 Z AA AB@3 ~
>`.pickRestart({
A: "[c2@25 g1@5 c2@26 g1@5 c2@23 ~@2 c2@2 ~@3 c2@15 ~ e2@15 e1@23 ~@2 e1@3 ~@3 e1@26 ~@4 e1@23 ~@3 e1@3 ~@2 e1@10]/7",
B: "[~@5 g1@15 ~ f1@23 ~@2 f1@2 ~@3 f1@29 ~@2 f1@22 ~@3 f1@3 ~@3 f1@30 e1@23 ~@3 e1@3 ~@2 e1@15 g1@16 a1@19]/7",
C: "[~@6 a1@3 ~@2 a1@15 ~ c#1@15 d1@22]/2", D: "[~@3 d1@3 ~@3 d1@30 g1@25]/2",
E: "[~ d2@5 d#2@23 ~@2 d#2@6 c2@23 ~@2 c2@5 b1@23 ~@3 b1@5 c2@28 ~@2]/4",
F: "[~ c2@15 b1@15 a1@23 ~@3 a1@3 ~@2 a1@30 d1@23 ~@3 d1@3 ~@2 d1@5]/4",
G: "[~@10 d2@16 f1@22 ~@3 f1@2 ~@4 f1@23 ~@2 f1@5 g1@22 ~@4 g1@3 ~@2 g1@20 a1@5 b1@6 c2@23 ~@2 c2@3 ~@2 c2@29 ~@2 c2@23 ~@2 c2@3 ~@3 c2@15]/8",
H: "[g1@15 e1@23 ~@3 e1@3 ~@2 e1@27 ~@4 e1@23 ~@2 e1@3 ~@2 e1@24 ~@2 e1@5 f1@22]/5",
I: "[~@3 f1@3 ~@2 f1@28 ~@3 f1@23 ~@2]/2", J: "[~ f1@3 ~@2 f1@23 ~@2 f1@5 e1@23 ~@3 e1@2]/2", K: "~@3 e1@15 b1@14",
L: "~@2 a1@22 ~@3 a1@3 ~@2",
M: "[a1@15 ~ c#2@15 d2@28 ~@3 d2@10 a1@10 d1@10 f1@23 ~@3 f1@2 ~@3 f1@18 ~@3 f1@5 g1@5 c2@23 ~@2 c2@5 b1@8]/6",
N: "[~@8 a#1@15 a1@24 ~@2 a1@3 ~@2 a1@20 e1@5 c#1@5 d1@24 ~@2 d1@5 f1@15 a1@16 f1@23 ~@2 f1@5 g1@16]/6",
O: "[~@5 g1@5 b1@5 c2@14 ~ c2@12 ~@4 c2@18]/2",
P: "[~@2 c2@5 g1@5 g#1@11 ~@5 g#1@9 ~ g#1@3 ~@2 g#1@2 ~@3 g#1@2 ~@3 g#1@2 ~@3 g#1@6]/2", Q: "a#1@5 c2@5 c#2@22",
R: "[~@3 c#2@4 ~ c#2@16 g#1@15 c#2@23 ~@2]/2", S: "[~ c#2@3 ~@2 c#2@15 g#1@10 d#1@5 f1@23 ~@3 f1@2]/2",
T: "[~@3 f1@20 g#1@6 c2@5 f1@23 ~@2 f1@3 ~@2]/2",
U: "[f1@20 ~ g#1@5 g1@5 f#1@24 ~@2 f#1@3 ~@2 f#1@25 ~@5 f#1@22 ~@4 f#1@3 ~@2 f#1@20 a#1@5 c#2@5 ~ f1@23 ~@2 f1@3 ~@2 f1@20 ~ c2@5 d#2@5 a#1@19 ~ a#1@2 ~@4 a#1@10 g#1@5]/8",
V: "[d1@5 d#1@5 f1@5 f#1@5 d#1@23 ~@3 d#1@3 ~@2 d#1@20 a#1@5 ~ d#2@5 f#1@20 f#1@2 ~@3 f#1@3 ~@2 f#1@20 ~ c#2@5 f#1@5 c#2@20 f1@5 c#2@6 c2@5 e1@5 c2@5 b1@3]/6",
W: "[~@2 d#1@5 b1@5 a#1@24 ~@2 a#1@3 ~@2 a#1@20 d2@5 ~ d1@5 d#1@22]/3",
X: "[~@3 d#1@3 ~@2 d#1@15 ~ f1@15 f#1@23 ~@2]/2",
Y: "[~ f#1@4 ~ g#1@15 c2@14 ~ c#2@8 ~@2 c#2@2 ~@4 c#2@8 ~@2 c#2@2]/2", Z: "~@3 c#2@10 c#2 ~@4 c#2@9 ~ c#2@4",
AA: "~@2 f#1@9 ~ f#1@2 ~@3 f#1@8 ~@2 f#1@2 ~@3", AB: "[f#1@13 ~@3 f#1@9 ~ g#1@5 c#2@20 g#1@11 c#1@31 ~@3]/3",
})).s("gm_fretless_bass").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 S T U V W X Y C D E F G Z I J K L M AA O P AB R S T U V W X AC C D AD F G AE I J
AF L M AG AH AI AJ R S AK U V AL X AC C D AD F G AE I J AF L M AM O P AJ R AN AK U V AO ~@3
>`.pickRestart({
A: "x ~@24 x ~@4 x ~", B: "~@24 x ~@4 x ~@2", C: "~@22 x ~@4 x ~@4", D: "~@21 x ~@4 x ~@5", E: "~@19 x ~@5 x ~@6",
F: "~@18 x ~@4 x ~@8", G: "~@17 x ~@4 x ~@9", H: "~@15 x ~@5 x ~@10", I: "~@14 x ~@4 x ~@12", J: "~@13 x ~@4 x ~@13",
K: "~@11 x ~@5 x ~@14", L: "~@10 x ~@4 x ~@16", M: "~@9 x ~@4 x ~@17", N: "~@8 x ~@4 x ~@18", O: "~@6 x ~@4 x ~@20",
P: "~@5 x ~@4 x ~@21", Q: "~@4 x ~@4 x ~@22", R: "~@2 x ~@4 x ~@24", S: "~ x ~@4 x ~@24 x", T: "~@5 x ~@24 x ~",
U: "~@3 x ~@25 x ~@2", V: "~@2 x ~@24 x ~@4", W: "~ x ~@24 x ~@4 x", X: "~@25 x ~@4 x ~", Y: "~@23 x ~@5 x ~@2",
Z: "~@21 x ~@10", AA: "~@7 x ~@5 x ~@18", AB: "~@3 x ~@5 x ~@22", AC: "~@23 x ~@4 x ~@3", AD: "~@19 x ~@4 x ~@7",
AE: "~@15 x ~@4 x ~@11", AF: "~@11 x ~@4 x ~@15", AG: "~@7 x ~@4 x ~@15 x ~@3",
AH: "~@6 x ~@4 x ~@4 x ~@4 x ~@4 x ~@5", AI: "x ~@4 x ~@4 x ~@21", AJ: "~@3 x ~@4 x ~@23", AK: "~@2 x ~@12 x",
AL: "x ~@25 x ~@4 x", AM: "~@7 x ~@4 x ~@19", AN: "~ x ~@4 x ~@25", AO: "x ~@30 x",
})).gain(0.36)
// drums · snare
const snare = s("sd").struct(`<
A B C D E F G H I J K L M N O P Q R S T U V W A B C D E F X Y I Z K AA M N AB P Q AC S T AD V W AE B C AF E F X H I Z
K AA M N AG P Q AC S T AD V W AE B C AF E F X H I Z K AA M N AB P Q AC AH T AD V AI ~@3
>`.pickRestart({
A: "~@15 x ~@16", B: "~@13 x ~@18", C: "~@3 x ~@4", D: "~@11 x ~@20", E: "~@9 x ~@22", F: "~ x ~@2", G: "~@7 x ~@24",
H: "~@5 x ~@26", I: "~ x ~@6", J: "~@3 x ~@28", K: "~ x ~@30", L: "x ~@30 x", M: "~@29 x ~@2", N: "~@7 x",
O: "~@27 x ~@4", P: "~@25 x ~@6", Q: "~@3 x", R: "~@23 x ~@8", S: "~@21 x ~@10", T: "~@5 x ~@2", U: "~@19 x ~@12",
V: "~@17 x ~@14", W: "~ x", X: "~@3 x ~@12", Y: "x ~@4 x ~@26", Z: "~ x ~@14", AA: "x ~@14 x", AB: "~@13 x ~@2",
AC: "~@11 x ~@4", AD: "~@9 x ~@6", AE: "~@7 x ~@8", AF: "~@5 x ~@10", AG: "~@21 x ~@4 x ~@5", AH: "~@16 x ~@4 x ~@10",
AI: "~@11 x ~@4 x ~@15",
})).gain(0.4)
// drums · low tom
const low_tom = s("lt").struct("<~@30 A ~@30 B ~@26 C ~@2 D ~@3>".pickRestart({
A: "~@9 x ~@6", B: "~@7 x ~@24", C: "~ x ~@14", D: "~@7 x",
})).gain(0.4)
// drums · hihat
const hihat = s("hh").struct(`<
A B C D E F C G H F I J K L M N O P Q R S C Q T U C V W F X Y K L I N K Z M N O AA Q R B C D E F C G K F X J K L M N O
AB AC AD ~@33
>`.pickRestart({
A: "x ~@4 x ~ x ~@2 x ~@4 x ~@4 x ~@4 x ~@4 x ~", B: "~@3 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@2",
C: "~@2 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4", D: "x ~@5 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x",
E: "~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~", F: "~@3 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@3",
G: "x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x", H: "~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~",
I: "~ x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4", J: "x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@5 x",
K: "~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@2", L: "~@2 x ~@5 x ~@4 x ~@4 x ~@4 x ~@4 x ~@3",
M: "~ x ~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4", N: "x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~",
O: "~@3 x ~@5 x ~@4 x ~@4 x ~@4 x ~@4 x ~@2", P: "~@2 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@3",
Q: "~ x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x", R: "~@5 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~",
S: "~@3 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@2", T: "~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~",
U: "~@3 x ~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~@2", V: "x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@4 x",
W: "~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~", X: "~ x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@4",
Y: "x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x", Z: "~@2 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@3",
AA: "~@2 x ~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~@3", AB: "~@2 x ~@4 x ~@5 x ~@3 x ~@5 x ~@4 x ~@3",
AC: "~ x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@5", AD: "x ~@4 x ~@26",
})).gain(0.28)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
~ A B C D E F G H I J K L M N O P Q R S T U V W A B C D E F G H I J K L M N X P Q Y S T Z V W AA B C AB E AC G H AD J
K AE M N ~@34
>`.pickRestart({
A: "~@3 x ~@12", B: "~ x ~@6", C: "~@3 x ~@28", D: "~ x ~@14", E: "x ~@30 x", F: "~@15 x", G: "~@7 x",
H: "~@27 x ~@4", I: "~@13 x ~@2", J: "~@3 x", K: "~@23 x ~@8", L: "~@11 x ~@4", M: "~@5 x ~@2", N: "~@19 x ~@12",
O: "~@9 x ~@6", P: "~ x", Q: "~@15 x ~@16", R: "~@7 x ~@8", S: "~@3 x ~@4", T: "~@11 x ~@20", U: "~@5 x ~@10",
V: "~ x ~@2", W: "~@7 x ~@24", X: "~@17 x ~@14", Y: "~@13 x ~@18", Z: "~@9 x ~@22", AA: "~@5 x ~@26", AB: "~ x ~@30",
AC: "~@29 x ~@2", AD: "~@25 x ~@6", AE: "~@21 x ~@10",
})).gain(0.16)
// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@30 B ~@25 C ~@3 D ~@3>".pickRestart({
A: "~@13 x ~ x ~@16", B: "~@2 x ~@2 x ~@26", C: "~@29 x ~ x", D: "~@23 x ~@2 x ~@5",
})).gain(0.4)
// drums · high tom
const high_tom = s("ht").struct("<~@30 A ~@29 B C ~@25 D ~@3 E ~@3>".pickRestart({
A: "~@4 x!2 ~@10", B: "~@29 x ~@2", C: "x", D: "~@23 x ~@2 x ~@5", E: "~@18 x ~@2 x ~@10",
})).gain(0.36)
// drums · crash
const crash = s("cr").struct("<~@30 A ~@7 B ~@22 B ~@12 C ~@5 D ~@3 B ~ E ~ F G H I ~@3>".pickRestart({
A: "~@20 x!2 ~@10", B: "~@5 x ~@10", C: "~@23 x ~@8", D: "~@15 x ~@16", E: "~@7 x ~@24", F: "~ x ~@6",
G: "~@3 x ~@28", H: "~ x ~@14", I: "~@31 x",
})).gain(0.36)
// drums · ride
const ride = s("rd").struct(`<
A ~@14 B ~@12 C ~@16 D ~@9 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 N AK P M AL ~@3
>`.pickRestart({
A: "x", B: "~@5 x ~@10", C: "~@23 x ~@8", D: "~@31 x", E: "~@9 x ~@6", F: "~ x", G: "~@15 x ~@14 x ~",
H: "~@14 x ~@14 x ~@2", I: "~@13 x ~@14 x ~@3", J: "~ x ~@9 x ~@10 x ~@9", K: "~@15 x ~@4 x ~@4 x ~@4 x ~",
L: "~@3 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~ x", M: "~@2 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4",
N: "~ x ~@4 x ~@4 x ~ x ~@2 x ~@4 x ~@4 x ~@4 x", O: "~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~ x ~@2 x ~",
P: "~@3 x ~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~@2", Q: "~@2 x ~@4 x ~ x ~@2 x ~@4 x ~@4 x ~@4 x ~@4",
R: "x ~@4 x ~@5 x ~@4 x ~@4 x ~ x ~@2 x ~@4 x", S: "~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~",
T: "~@3 x ~@4 x ~@4 x ~@4 x ~@2 x ~ x ~@4 x ~@3", U: "~ x ~@5 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4",
V: "x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x", W: "~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@5 x ~",
X: "~@3 x ~@4 x ~@4 x ~ x ~@2 x ~@4 x ~@4 x ~@2 x", Y: "~ x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~ x ~@2",
Z: "x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~", AA: "~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@2 x ~ x ~@2",
AB: "~@2 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@3", AC: "~ x ~@4 x ~@2 x ~ x ~@4 x ~@4 x ~@4 x ~@5",
AD: "x ~@4 x ~ x ~@2 x ~@4 x ~@4 x ~@4 x ~@4 x ~", AE: "~@3 x ~@5 x ~@4 x ~@4 x ~@4 x ~@4 x ~@2",
AF: "~@2 x ~@4 x ~@4 x ~@4 x ~@2 x ~ x ~@5 x ~@3", AG: "~ x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x",
AH: "~@5 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~", AI: "~ x ~ x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@2",
AJ: "~@2 x ~@4 x ~@4 x ~@2 x ~ x ~@4 x ~@4 x ~@4", AK: "~@9 x ~@2 x ~@2 x ~@4 x ~@4 x ~@4 x ~",
AL: "x ~@4 x ~@2 x ~@2 x ~@4 x ~@4 x ~@4 x ~@5",
})).gain(0.36)
stack(piano, synth_strings_1, bass, kick, snare, low_tom, hihat, hihat_soft, mid_tom, high_tom, crash, ride)
More by Leali
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.