0:00/0:00
// Vado via — Drupi
// 104 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 112 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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.
// bass · electric bass finger
const bass = note(`<
~@9 A B A B C@3 D E F G H I@4 J@3 K@8 L@8 M@2 N O P Q R S@8 T@2 U V@7 W@2 X@2 Y Z@3 AA@7 AB@6 AC AD@2 AE AF@4 AG@2 AH
AI@2 AJ@3 AK@6
>`.pickRestart({
A: "d2@15 ~", B: "g2@15 ~ a2@16", C: "[d2@22 ~@2 c#2@5 b1@10 ~ a1@5 g#1@10 ~ e1@5 a1@30 ~@2 a1 ~@2]/3", D: "a1@31 ~",
E: "d2@26 ~ a1@2 g#1@2 ~", F: "g1@14 ~@2 a1@12 ~ c#2@2 ~", G: "d2@25 ~@2 d2@2 f#2@3",
H: "g2@6 ~@2 g2 ~@2 g2@2 g#2@3 a2@13 ~@3",
I: "[d3@23 ~ c#3@4 ~ b2@10 ~ a2@5 g#2@11 e2@5 a2@11 f2@5 a#2@9 ~@2 f#2@5 b2@14 ~@2 f#2@2 ~ b1@7 ~ a1@2 ~ b1@2 a1@2 ~]/4",
J: "[g1@11 ~@2 d2@2 g1@8 g#1@3 ~@2 g#1@2 ~ a1@4 ~ d2@2 ~ f#1@7 g1@7 ~ g#1@4 ~ a1 ~@2 g1@11 ~ d2@2 ~ g1@8 g#1@3 ~@2 g#1@2 a1@4]/3",
K: "[~@2 d2@2 c#2@8 b1@7 ~ a1@4 ~ a1 ~ g1@12 ~ d2@2 ~ g1@7 g#1@3 ~@3 g#1@2 a1@10 ~@3 a1@2 a2@14 ~@2 a#2@29 ~@2 b2@30 ~ a2@60 ~ d2@30 ~@2 g2@12]/8",
L: "[~@4 a2@16 d2@30 ~@2 g2@15 ~ a2@16 d2@30 ~@2 g2@15 ~ a2@16 d2@30 ~@2 g2@15 ~ a2@16 d2@30 ~@2 g2@12]/8",
M: "[~@4 a2@16 d3@23 ~ c#3@4 ~ b2@10 ~ a2@4]/2", N: "~ g#2@11 e2@5 a2@11 f2@4", O: "~ a#2@9 ~@2 f#2@5 b2@14 ~",
P: "~ f#2@2 ~ b1@7 ~ a1@2 b1@2 ~ a1@2 ~ g1@11 ~", Q: "d2@2 ~ g1@8 g#1@3 ~@2 g#1@2 a1@4 ~@2 d2@2 c#2@6",
R: "~@2 b1@7 a1@4 ~@2 f#1 ~ g1@11 ~@2 d2@2",
S: "[~ f#1@7 g1@3 ~@2 g#1@2 ~ a1@4 ~ d2@2 ~ c#2@7 b1@7 ~ a1@4 ~ a1 ~@2 g1@12 ~ d2@2 g1@8 g#1@3 ~@2 g#1@2 ~ a1@10 ~@2 a1@3 a2@14 ~ a#2@29 ~@2 b2@30 ~ a2@61 ~ d2@24]/8",
T: "[~@7 g2@15 a2@15 d2@27]/2", U: "~@4 g2@15 ~ a2@12",
V: "[~@3 d2@22 ~ c#2@4 ~ b1@9 ~ a1@4 ~@2 g#1@10 e1@4 ~ a1@26 c#2@7 e2@5 ~ a2@15 ~@3 a2@5 a1@2 d2@28 ~@3 g2@9 ~ g2@2 ~ g#2@2 a2@2 ~ e2@5 a1@7 ~ d2@25 ~@3 d2@2 ~ g2@5]/7",
W: "[~@5 g2@2 ~ g#2@2 a2@3 e2@4 ~ a1@6 ~ d3@22 ~@2 c#3@4 ~ b2@10]/2",
X: "[a2@5 g#2@10 e2@4 ~@2 a2@10 f2@5 a#2@9 ~ f#2@5 b2@13]/2", Y: "~@3 f#2@2 b1@6 ~@2 a1@2 ~ b1@2 a1@2 ~ g1@11",
Z: "[~@2 d2@2 g1@8 g#1@3 ~@2 g#1@2 ~ a1@4 ~ d2@2 c#2@8 b1@7 ~ a1@4 ~ f#1 ~ g1@11 ~@2 d2@2 ~ f#1@7 g1@3 ~@3 g#1@2 a1@4 ~ d2@2 ~ c#2@7]/3",
AA: "[~ b1@7 a1@4 ~ a1 ~@2 g1@12 ~ d2@2 g1@8 g#1@3 ~@2 g#1@2 ~ a1@10 ~@3 a1@2 a2@14 ~@2 a#2@29 ~ b2@30 ~ a2@61 ~ d2@23]/7",
AB: "[~@9 g2@15 ~ a2@16 d2@29 ~@3 g2@15 a2@16 d2@29 ~@3 g2@15 a2@16 d3@3 a2@2 d2@6 ~@2 a1 ~@2 d2@9]/6",
AC: "~ a1 ~@2 g#1 ~ g1@8 ~@3 g1 ~ g#1 ~@2 a1@6 ~@2 b1 ~",
AD: "[c2 ~@2 c#2 ~ d2@9 ~@4 a1 ~@2 d2@8 ~@2 d2@2 ~ f#2 ~ g2@5 ~@3 e2@2 g2 ~@2 g#2 ~ a2@3 e2 ~ a2@2 ~ a1@5]/2",
AE: "~@3 d2@3 ~@2 a1@2 d2@10 ~@3 a1@2 d2@4 ~ f#2@2",
AF: "[~ g2@4 ~@3 e2@2 ~ g2@2 ~ g#2 ~ a2@5 e2@7 ~ a1@2 d2@4 ~ a1@2 d2@4 ~ a1 ~@2 d2@9 ~ a1@2 g#1@2 ~ g1@6 ~ d2@5 g1@2 ~ a1@7 a1@2 ~@5 d2@3 ~@2 a1@2 ~ d2@7 a2@7 ~ d3@5 d2@2 g2@7 ~]/4",
AG: "[e2@2 g2@2 ~ g#2@2 a2@4 ~ e2@5 a1@4 ~ d2@2 ~@3 d2@2 f#2@7 ~ g1@7 g#1@5 a1@2 ~ g1@7 d2@2 ~ g1@2]/2",
AH: "g#1@2 a1@7 ~ c#2@7 d2@5 b2@2 ~ a#2@5 d2@2",
AI: "[a2@6 ~@2 d2@2 a2@2 ~ g#2@2 g2@7 e2@2 ~ g2@2 g#2@2 ~ a2@5 e2@2 a1@6 ~@2 d2@12 a1@2 ~ d2@2 a1 ~]/2",
AJ: "[~ d2@7 f#2@2 g2@8 ~@2 g2@2 ~ g#2@2 a2@14 ~ g2@23 g3@15 d3@8 a2@10]/3", AK: "[~@7 d2@173 ~@12]/6",
})).s("gm_electric_bass_finger").gain(0.4)
// chords · piano
const piano = note(`<
~@7 A B C D E F G@3 H C D E F I@4 J@8 ~@9 K@4 L M@2 N@8 ~ O@4 P@3 Q@6 R@4 S@7 ~ T@4 U@6 V@3 W@4 X@2 Y Z@6 ~@3
>`.pickRestart({
A: "d4@16 [g3,b3,d4]@15 ~", B: "[a1,a2,e3,g3,a3,c#4]", C: "[d2,d3,f#3,a3,d4]",
D: "[g1,g2,g3,b3,d4] [a1,a2,a3,c#4,e4]", E: "[d2,d3,f#3,a3,d4]@31 ~", F: "[g1,g2,g3,b3,d4]@16 [a1,a2,a3,c#4,e4]@15 ~",
G: "[[d2,d3,f#3,a3,d4]@23 ~ [c#2,c#3,a3,c#4,e4]@5 [b1,b2,f#3,b3,d4]@10 ~ [a1,a2,e3,a3,c#4]@5 [g#1,g#2,g#3]@10 ~ [e1,e2,g#3,d4]@4 ~ [g3,b3,d4]@34 ~, ~@15 [e3,b3]@5 ~@12]/3", // D A Bm A G# E7 G E5
H: "[e3,a3,c#4] [a3,c#4], ~@2 e3 ~", // A
I: "[[d2,d3,f#3,a3,d4]@24 [c#2,c#3,a3,c#4,e4]@5 [b1,b2,f#3,b3,d4]@10 ~ [a1,a2,e3,a3,c#4]@5 [g#1,g#2,e3,g#3]@11 [e1,e2,e3]@5 [a1,a2,a3]@11 [f1,f2]@5 [a#1,a#2,f#3]@11 [f#1,f#2]@5 [b3,d4]@27 [f#3,b3,d4]@8, ~@45 b3@16 [e3,c#4]@16 [a#3,c#4]@16 [b1,b2]@35, ~@93 f#3@24 ~@11]/4", // D A Bm A C#m E A F …
J: "[[g1,g2,b3,d4,g4]@13 ~@10 [b3,d4,g4]@8 a3@6 ~@2 a3@4 ~@11 d4@5 d4@3 [b3,d4,g4]@12 ~@8 b3@3 ~@5 [b3,d4,g4]@2 d3@7 ~@17 [a3,d4,f#4]@7 [g1,b3,d4,g4]@13 ~@8 b3@2 [g2,b3,d4,g4]@7 ~ [d3,d4]@13 ~@8 [a3,d4]@2 a3@8 [a#3,c#4,e4]@20 e4@10 ~ b1@30 ~@10, ~@13 [b3,d4,g4]@8 g2@10 d3@20 d3@10 ~ g1@15 g1@13 ~@2 [d2,d4,f#4]@15 ~ d2@15 g2@18 g2@5 ~@8 d2@31 a#1@31 ~@40, ~@15 g1@15 ~ [d2,d4,f#4]@13 [d4,f#4,a4]@10 [f#4,a4,d5]@8 a3@2 ~@10 [d4,g4]@12 ~@19 [d4,f#4,a4]@9 ~@40 f#4@21 f#4@10 ~@71, ~@46 d2@15 ~ g2@18 g2@5 g2@8 ~@7 d3@13 d3@5 ~@21 g1@15 ~@15 d3@15 ~ a#2@15 ~@56, ~@74 b3@8 ~@10 a3@22 ~@22 [b3,d4,g4]@10 ~@8 a3@8 ~@5 [a3,d4]@8 ~@81]/8", // G D G D D5 A#dim G D …
K: "[~@4 [a1,a2,a3,c#4,e4]@16 [d2,d3,f#3,a3,d4]@31 ~ [g1,g2,g3,b3,d4]@16 [a1,a2,a3,c#4,e4]@15 ~ [d2,d3,f#3,a3,d4]@24 [c#2,c#3,a3,c#4,e4]@5 [b1,b2,f#3,b3,d4]@10 ~ [a1,a2,e3,a3,c#4]@4]/4", // A D G A D A Bm A
L: "~ [g#1,g#2,e3,g#3]@11 [e1,e2,e3]@5 [a1,a2,a3]@11 [f1,f2]@4, ~ b3@16 [e3,c#4]@15", // C#m E A F C#m
M: "[~ [a#1,a#2,f#3]@11 [f#1,f#2]@5 [b3,d4]@27 [f#3,b3,d4]@8 [g1,g2,b3,d4,g4]@12, ~ [a#3,c#4]@16 [b1,b2]@35 ~@12, ~@17 f#3@24 ~@23]/2", // D#m F# Bm G A#m B
N: "[~@11 [b3,d4,g4]@7 a3@6 ~@2 a3@4 ~@11 [f#4,a4,d5]@6 d4@2 [g1,b3,d4,g4]@13 ~@15 [b3,d4,g4]@3 d3@7 ~@16 [a3,d4,f#4]@7 ~ [g1,b3,d4,g4]@13 ~@7 b3@2 ~ [g2,b3,d4,g4]@7 ~ d4@12 ~@8 [a3,d4]@3 a3@7 [a#3,c#4,e4]@21 e4@10 b1@30 ~@23, [b3,d4,g4]@8 g2@10 d3@21 d3@10 ~@13 b3@8 b3@4 ~@6 a3@22 ~@22 b3@7 ~@11 d3@15 d3@15 a#1@31 ~@53, ~@3 g1@15 [d2,d4,f#4]@13 [d4,f#4,a4]@10 d4@5 ~@3 a3@2 ~@11 [d4,g4]@12 ~@14 d3@13 d3@5 ~@20 g1@15 ~ a3@7 ~@5 [a3,d4]@8 ~@10 a#2@15 ~@69, ~@34 d2@15 g2@16 g1@13 ~@15 [d4,f#4,a4]@9 ~@22 [d4,g4]@10 ~@8 f#4@20 f#4@10 ~@84, ~@67 g2@5 g2@8 [d2,d4,f#4]@15 d2@15 ~ g2@18 g2@5 ~@8 d2@31 ~@83]/8", // G D G D G D5 A#dim G …
O: "[~@8 [d2,d3,f#3,a3,d4]@30 ~ [g1,g2,g3,b3,d4]@15 [a1,a2,a3,c#4,e4]@15 [d2,d3,f#3,a3,d4]@30 ~ [g1,g2,g3,b3,d4]@15 ~ [a1,a2,a3,c#4,e4]@12]/4", // D G A D G A
P: "[~@3 [d2,d3,f#3,a3,d4]@23 [c#2,c#3,a3,c#4,e4]@4 ~ [b1,b2,f#3,b3,d4]@10 [a1,a2,e3,a3,c#4]@4 ~@2 [g#1,g#2,g#3]@10 [e1,e2,g#3,d4]@4 ~ [g3,b3,d4]@33 [e3,a3,c#4], ~@47 [e3,b3]@14 ~@35]/3", // D A Bm A G# E7 G A …
Q: "[~@15 [a3,c#4]@15 [d2,d3,f#3,a3,d4]@30 ~ [g1,g2,g3,b3,d4]@15 [a1,a2,a3,c#4,e4]@15 ~ [d2,d3,f#3,a3,d4]@30 ~ [g1,g2,g3,b3,d4]@15 [a1,a2,a3,c#4,e4]@15 [d2,d3,f#3,a3,d4]@23 ~ [c#2,c#3,a3,c#4,e4]@5 [b1,b2,f#3,b3,d4]@10, ~@15 e3@8 ~@169]/6", // A D G A D G A D …
R: "[[a1,a2,e3,a3,c#4]@5 [g#1,g#2,e3,g#3]@10 [e1,e2,e3]@5 ~ [a1,a2,a3]@10 [f1,f2]@5 [a#1,a#2,f#3]@10 [f#1,f#2]@5 [b3,d4]@26 [f#3,b3,d4]@8 [g1,g2,b3,d4,g4]@13 ~@10 [b3,d4,g4]@8 a3@6 ~ a3@4 ~, ~@5 b3@15 ~ [e3,c#4]@15 [a#3,c#4]@15 [b1,b2]@33 ~@16 g1@15 ~@13, ~@51 f#3@23 ~@24 [b3,d4,g4]@10 ~@20, ~@105 g2@10 ~ [d2,d3,d4,f#4]@12]/4", // A C#m E A F D#m F# Bm …
S: "[~@11 d4@5 d4@2 [g1,b3,d4,g4]@13 ~@10 g2@6 [b3,d4,g4]@2 d3@7 ~@16 [a3,d4,f#4]@7 ~ [g1,b3,d4,g4]@13 ~@8 b3@2 [g2,b3,d4,g4]@7 ~ [d3,d4]@13 ~@7 [a3,d4]@3 a3@8 [a#3,c#4,e4]@20 e4@10 b1@30 ~@22, [d4,f#4,a4]@8 d3@10 a3@2 ~@11 b3@8 b3@4 ~@6 a3@22 ~@22 [b3,d4,g4]@10 ~@8 a3@8 ~@5 [a3,d4]@7 ~@93, ~@3 d2@15 g2@16 g1@13 ~@15 [d4,f#4,a4]@9 ~@40 f#4@20 f#4@10 ~@83, ~@11 [f#4,a4,d5]@8 ~@12 [d4,g4]@12 ~@14 d3@13 d3@5 ~@20 g1@15 ~@16 d3@15 ~ a#2@15 ~@67, ~@36 g2@5 ~@8 [d2,d4,f#4]@15 ~ d2@15 g2@18 g2@5 ~@8 d2@31 a#1@31 ~@51]/7", // G D G D D5 A#dim D G …
T: "[~@17 [f#3,a3]@13 ~@3 [f#3,a3]@4 ~ [g3,b3]@8 ~@3 [g3,b3]@4 ~ [e3,a3,c#4]@8 ~@3 [a3,c#4]@7 ~@9 [f#3,a3]@13 ~@3 [f#3,a3]@3 ~@2 [g3,b3]@8 ~@3 [g3,b3]@3 ~@2 [e3,a3,c#4]@8 e3@2, ~@9 d3@18 ~@3 d3@15 ~ d3@6 ~@10 e3@10 ~ d3@18 ~@3 d3@14 ~@2 d3@6 ~@12]/4", // F#m G A F#m G A
U: "[[a3,c#4]@6 ~@10 [f#3,a3]@13 ~@3 [f#3,a3]@4 ~ [g3,b3]@8 ~@3 [g3,b3]@4 ~ [e3,a3,c#4]@8 ~@2 [a3,c#4]@7 ~@9 [f#3,a3]@12 ~@3 [f#3,a3]@3 ~@3 [g3,b3]@7 ~@3 [g3,b3]@3 ~@2 [e3,a3,c#4]@8 ~@3 [a3,c#4]@6 ~@9 [f#3,a3]@13 ~@2 [f#3,a3]@4 ~@2 [g3,b3]@7 ~@3 [g3,b3]@3 ~@2 [e3,a3,c#4]@7 ~@3 [a3,c#4]@5, ~@8 d3@18 ~@3 d3@15 ~ d3@6 ~@10 e3@9 ~ d3@18 ~@3 d3@13 ~@2 d3@6 ~@10 e3@9 ~ d3@18 ~@3 d3@15 d3@6 ~@9 e3@8]/6", // A F#m G A F#m G A F#m …
V: "[~@10 [f#3,a3]@12 ~@3 [f#3,a3]@3 ~@2 [g3,b3]@7 ~@3 [g3,b3]@3 ~@3 [e3,a3,c#4]@7 ~@3 [a3,c#4]@6 ~@8 [f#3,a3]@12 ~@3 [f#3,a3]@4 ~ [g3,b3]@6, ~@3 d3@17 ~@3 d3@13 ~@2 d3@5 ~@10 e3@9 ~ d3@17 ~@3 d3@13]/3", // F#m G A F#m G
W: "[~@4 [g3,b3]@3 ~@2 [e3,a3,c#4]@7 ~@3 [a3,c#4]@6 ~@9 [f#3,a3]@12 ~@3 [f#3,a3]@3 ~@2 [g3,b3]@7 ~@3 [g3,b3]@3 ~@2 [e3,a3,c#4]@7 ~@2 [a3,c#4]@6 ~@9 [f#3,a3]@12 ~@3 [f#3,a3]@4 ~ [g3,b3]@8 ~@2 [g3,b3]@3 ~@2, ~@2 d3@6 ~@9 e3@9 d3@17 ~@3 d3@13 ~@2 d3@5 ~@10 e3@9 ~ d3@17 ~@3 d3@14 ~ d3@6 ~]/4", // G A F#m G A F#m G
X: "[[e3,a3,c#4]@7 ~@3 [a3,c#4]@6 ~@9 [f#3,a3]@12 ~@3 [f#3,a3]@3 ~@2 [g3,b3]@7 ~@2 [g3,b3]@3 ~@2 [e3,a3,c#4]@5, ~@7 e3@9 ~ d3@17 ~@3 d3@13 ~@2 d3@5 ~@7]/2", // A F#m G A
Y: "~@5 [a3,c#4]@6 ~@9 [f#3,a3]@12, ~@3 e3@9 ~ d3@17 ~@2", // A F#m
Z: "[~@3 [f#3,a3]@4 ~ [g3,b3]@7 ~@3 [g3,b3]@3 ~@2 [e3,a3,c#4]@7 ~@3 [a3,c#4]@6 ~ [d3,g3,b3]@30 ~ [g3,b3,d4]@15 [b3,d4,g4]@17 [d2,d3,a3,d4,f#4]@64 ~@25, ~ d3@14 d3@6 ~@9 e3@9 ~ [g1,g2]@63 ~@89]/6", // F#m G A G D G
})).s("gm_piano").gain(0.34).pan(0.7)
// chords · piano · soft notes
const piano_soft = note(`<
~@7 A ~@8 B ~@6 C D ~@5 E F@4 ~@5 G@3 ~@4 H I ~@4 J K@5 ~@6 L ~@6 M N ~@4 O P@5 ~@28
>`.pickRestart({
A: "[a1,a2]@31 ~, [g3,b3] ~", B: "~@3 e3", C: "~@24 f#3@5 ~@3", D: "~@21 f#3@3 ~@8", E: "~@2 a3@5 ~@10 d4@8 ~@7",
F: "[~@13 [g3,a#3,c#4]@10 ~ [b2,f#3,b3,d4]@30 ~ [a1,a2,e3,a3,c#4]@57 ~@16, ~@6 g3@7 ~@115, ~@8 a#2@15 ~@105]/4", // Gdim Bm A
G: "[~@5 [d2,d3,f#3,a3,d4]@8 [g1,g2,g3,b3,d4]@4 ~@7]/3", H: "~@12 f#3@5 ~@15", I: "~@9 f#3@3 ~@20",
J: "~@21 a3@5 ~@6",
K: "[~@5 d4@8 ~@20 [g3,a#3,c#4]@10 [b2,f#3,b3,d4]@30 ~ [a1,a2,e3,a3,c#4]@58 ~@28, ~@25 g3@8 ~@127, ~@28 a#2@15 ~@117]/5", // Gdim Bm A
L: "~@23 e3@8 ~", M: "~@14 f#3@5 ~@13", N: "~@10 f#3@3 ~@19", O: "~@23 a3@5 ~@4",
P: "[~@6 d4@8 ~@20 [g3,a#3,c#4]@10 [b2,f#3,b3,d4]@30 ~ [a1,a2,e3,a3,c#4]@58 ~@27, ~@13 g3@4 ~@63, ~@29 a#2@15 ~@116]/5", // Gdim Bm A
})).s("gm_piano").gain(0.17).pan(0.7)
// other · string ensemble 2
const string_ensemble_2 = note(`<
~ A B A B C@4 D E D E F ~@3 G E G E F ~@3 H@6 I@7 J@8 ~@2 K@7 L@3 M@4 N ~@2 O@3 P@3 ~@2 Q@7 R@3 S@8 T@2 U V@6 W@4 X@8
>`.pickRestart({
A: "d4@5 a3@26 ~, d2", B: "[g2,b3] [a2,c#4]",
C: "[d4@5 a3@18 ~ c#3@5 b2@5 ~@6 a2@5 g#2@5 ~@6 e2@5 a2@64 ~@3, d3@21 ~@107]/4", D: "d4@5 a3@26 ~", E: "b3 c#4",
F: "d4@5 a3@19 ~@8", G: "d4@5 a3@27",
H: "[[b3,d4,g4]@28 [a3,d4,f#4]@33 [b3,d4,g4]@28 ~ [a3,d4,f#4]@33 [b3,d4,g4]@28 [a3,d4,f#4]@33 ~ e4@7]/6", // G D G D G D
I: "[~@24 d4@76 c#4@7 ~@8 d4@5 ~ a3@26 b3@16 c#4@16 d4@5 ~ a3@26 b3@13]/7",
J: "[~@3 c#4@16 d4@5 ~ a3@26 b3@16 c#4@16 d4@5 ~ a3@26 b3@16 c#4@16 d4@5 ~ a3@26 b3@16 c#4@16 d4@5 ~ a3@19 ~@20]/8",
K: "[~@19 [b3,d4,g4]@28 ~ [a3,d4,f#4]@33 [b3,d4,g4]@28 [a3,d4,f#4]@33 ~ [b3,d4,g4]@28 [a3,d4,f#4]@33 e4@20]/7", // G D G D G D
L: "[~@11 d4@77 c#4@8]/3", M: "[~@8 d4@5 a3@25 b3@15 ~ c#4@15 d4@5 a3@26 b3@15 c#4@13]/4", N: "~@3 d4@5 a3@18 ~@6",
O: "[~@30 d4@5 a3@26 b3@15 c#4@15 ~ d4@4]/3", P: "[~ a3@25 b3@15 ~ c#4@15 d4@5 a3@18 ~@16]/3",
Q: "[~@21 [b3,d4,g4]@28 [a3,d4,f#4]@33 [b3,d4,g4]@28 [a3,d4,f#4]@33 ~ [b3,d4,g4]@28 [a3,d4,f#4]@33 e4@19]/7", // G D G D G D
R: "[~@12 d4@77 c#4@7]/3",
S: "[~@9 d4@5 a3@27 b3@16 c#4@16 d4@5 a3@26 b3@16 c#4@16 d4@5 a3@26 b3@16 c#4@16 d4@5 a3@26 b3@15 ~ c#4@10]/8",
T: "[~@5 d4@5 a3@26 b3@15 c#4@13]/2", U: "~@2 d4@5 ~ a3@24",
V: "[~ b3@15 c#4@15 d4@5 a3@25 b3@14 c#4@15 d4@5 a3@25 b3@15 c#4@15 d4@5 a3@24 b3@13]/6",
W: "[~@2 c#4@15 d4@5 a3@25 b3@15 c#4@15 d4@5 a3@24 b3@15 c#4@7]/4", X: "[~@2 d4@59 ~@3]/8",
})).s("gm_string_ensemble_2").gain(0.28).pan(0.8)
// chords · string ensemble 2
const string_ensemble_2_2 = note(`<
~ A B A B C@3 D A B A B E@3 F G H G H I@4 J@6 K@7 L@8 M@8 N@2 O@2 P@4 Q R@8 S@8 T@4 U@8 V@2 W X@6 Y@4 Z@8
>`.pickRestart({
A: "[d4,f#4]", B: "[e4,g4] [f#4,a4]",
C: "[[d4,f#4,a4]@21 ~@3 [f#4,a4]@5 [f#4,b4]@5 ~@6 [a4,c#5]@5 [g#4,d5]@5 ~@6 [e4,f#5]@5 [d4,g4,b4]@35]/3", // D F#m B5 A G#dim Esus2 G
D: "[c#4,e4,a4]", // A
E: "[[d4,f#4,a4]@21 ~@3 [f#4,a4]@5 [f#4,b4]@5 ~@6 [a4,c#5]@5 [g#4,d5]@5 ~@6 [e4,f#5]@5 ~@19 d5@15 ~, ~@61 [d4,g4,b4]@35]/3", // D F#m B5 A G#dim Esus2 G
F: "[c#4,e4,a4,c#5]", G: "[d4,f#4,f#5,a5]", H: "[e4,g4,g5,b5] [f#4,a4,a5,c#6]",
I: "[[d4,f#4,a4]@21 ~@3 [f#4,a4,g5,c#6]@5 [f#5,b5]@11 [a4,c#5,f#5,a5]@5 [e5,g#5]@11 [e4,b4,e5]@5 [e5,g5]@32 [d5,f#5]@35, [a5,d6]@24 ~@5 [f#4,b4]@5 ~@11 [g#4,d5]@5 ~@78]/4", // D F#m B5 F#m E E5 Em D …
J: "[g6@28 f#6@33 g6@28 ~ f#6@33 g6@28 f#6@33 ~ [g4,g5]@7, d6@61 d6@62 d6@62 ~@7]/6", // G
K: "[[c#4,c#5]@8 [d4,d5]@8 [e4,e5]@7 [f#4,f#5]@8 [b3,b4]@8 [c#4,c#5]@7 d4@8 ~@46 c#5@7 ~@8 [d4,f#4]@32 [e4,g4]@16 [f#4,a4]@16 [d4,f#4]@32 [e4,g4]@13, ~@23 d5@26 ~@63, ~@54 [a4,e5]@53 ~@117, ~@85 g5@22 ~@117]/7", // C# D E F# B C# D Em …
L: "[~@3 [f#4,a4]@16 [d4,f#4]@32 [e4,g4]@16 [f#4,a4]@16 ~ [f#5,a5]@31 ~ [g5,b5]@15 ~ [a5,c#6]@15 ~ [f#5,a5]@31 ~ [g5,b5]@15 ~ [a5,c#6]@15 ~ [a5,d6]@23 ~ [g5,c#6]@5 [f#5,b5]@10 ~ [f#5,a5]@4, ~@83 [d4,f#4]@32 [e4,g4]@16 [f#4,a4]@16 [d4,f#4]@32 [e4,g4]@16 [f#4,a4]@16 [d4,f#4,a4]@21 ~@3 [f#4,a4]@5 ~ [f#4,b4]@5 ~@5 [a4,c#5]@5]/8", // F#m D Em F#m G A F#m G …
M: "[~ [e5,g#5]@10 ~ [b4,e5]@5 [e5,g5]@32 [d5,f#5]@34 g6@28 f#6@33 ~ g6@28 f#6@33 g6@28 ~ f#6@21, ~ [g#4,d5]@5 ~@5 e4@5 ~@67 d6@62 d6@61 d6@50]/8", // E E5 Em D G#dim
N: "[~@12 [g4,g5]@8 [c#4,c#5]@8 [d4,d5]@7 [e4,e5]@8 [f#4,f#5]@8 [b3,b4]@7 [c#4,c#5]@6]/2", // G C# D E F# B C#
O: "[~ d4@4 ~@23 c#5@4, ~ d5@26 ~@5, ~@5 [a4,e5]@27, ~@41 g5@23]/2", // A5
P: "[~@7 [d4,f#4]@31 [e4,g4]@15 ~ [f#4,a4]@15 [d4,f#4]@31 [e4,g4]@15 [f#4,a4]@13]/4", // D Em F#m D Em F#m
Q: "~@3 [d4,f#4,a4]@20 ~@3 [f#4,a4]@5 [f#4,b4]", // D F#m B5
R: "[~@9 [a4,c#5]@5 [g#4,d5]@5 ~@6 [e4,f#5]@5 ~@18 d5@14 ~ [c#4,e4,a4,c#5]@31 [d4,f#4,f#5,a5]@31 [e4,g4,g5,b5]@15 [f#4,a4,a5,c#6]@15 ~ [d4,f#4,f#5,a5]@30 ~ [g5,b5]@15 [f#4,a4,a5,c#6]@15 [d4,f#4,a4]@20 ~@4 [g5,c#6]@4 ~ [f#5,b5]@10, ~@30 [d4,g4,b4]@33 ~@123 [e4,g4]@15 ~@16 [a5,d6]@23 [f#4,a4]@5 [f#4,b4]@5 ~@6]/8", // A G#dim Esus2 A D Em F#m D …
S: "[[a4,c#5,f#5,a5]@5 [e5,g#5]@10 [e4,b4,e5]@5 ~ [e5,g5]@30 [d5,f#5]@33 g6@28 ~ f#6@33 g6@28 f#6@33 ~ g6@28 f#6@20, ~@5 [g#4,d5]@5 ~@74 d6@62 d6@62 d6@48]/8", // F#m E E5 Em D G#dim
T: "[~@13 [g4,g5]@8 [c#4,c#5]@8 [d4,d5]@7 [e4,e5]@8 [f#4,f#5]@8 [b3,b4]@8 [c#4,c#5]@7 d4@8 ~@46 c#5@7, ~@67 d5@52 ~@9, ~@75 [a4,e5]@53, ~@53 g5@11]/4", // G C# D E F# B C# A5
U: "[~@9 [d4,f#4]@32 [e4,g4]@16 [f#4,a4]@16 [d4,f#4]@31 [e4,g4]@16 [f#4,a4]@16 [d4,f#4]@31 [e4,g4]@16 [f#4,a4]@16 [d4,f#4]@31 [e4,g4]@15 [f#4,a4]@11]/8", // D Em F#m D Em F#m D Em …
V: "[~@5 [d4,f#4]@31 [e4,g4]@15 [f#4,a4]@13]/2", W: "~ [d4,f#4]@15",
X: "[~ [e4,g4]@15 [f#4,a4]@15 [d4,f#4,f#5,a5]@29 ~ [g5,b5]@14 ~ [a5,c#6]@14 [d4,f#4,f#5,a5]@30 [e4,g4,g5,b5]@15 [f#4,a4,a5,c#6]@15 [d4,f#4,f#5,a5]@29 ~ [g5,b5]@12, ~@60 [e4,g4]@15 [f#4,a4]@15 ~@89 [e4,g4]@13]/6", // Em F#m D G A D Em F#m …
Y: "[~@2 [f#4,a4,a5,c#6]@15 [d4,f#4,f#5,a5]@30 [e4,g4,g5,b5]@15 [f#4,a4,a5,c#6]@14 ~ [f#5,a5]@29 [e4,g4,g5,b5]@15 [f#4,a4,a5,c#6]@7, ~@38 [d4,f#4]@15 ~@11]/4", // F#m D Em F#m Em F#m D
Z: "[~@8 [g4,b4,g6]@63 [f#4,a4,f#6]@173 ~@12, ~@2 d6@59 ~@3]/8", // G F#m
})).s("gm_string_ensemble_2").gain(0.23).pan(0.2)
// drums · kick
const kick = s("bd").struct(`<
~@9 A@4 B C ~@2 A D A D B C@2 E F G H I J K ~@3 L@11 M N@2 O P Q R S T U ~@3 V W X Y Z AA ~ AB ~ AC ~ AD AE AF AG D AH
P Q R S AI ~@3 AJ@4 V@2 W AK X Y AL AM ~ AN ~ AO AH AP AQ AR AS AT AU AV ~@5
>`.pickRestart({
A: "x", B: "x ~@28 x ~@2", C: "~@8 x ~@4 x ~@10 x ~@4 x ~@2", D: "~@21 x ~@10", E: "~@8 x ~@12 x ~@10",
F: "x ~@12 x ~@14 x ~@2 x", G: "~@12 x ~@14 x ~@2 x ~", H: "~@5 x ~@7 x!2 ~", I: "~@9 x ~@15 x ~ x ~@4",
J: "~@4 x ~@7 x!2 ~@2", K: "~@7 x ~@14 x ~@2 x ~@6", L: "~@5 x ~@2", M: "~@17 x ~@10 x ~@3",
N: "~ x ~@10 x ~@4 x ~@10 x ~@3", O: "~@9 x ~@10 x ~@11", P: "x ~@15 x ~ x ~@12 x", Q: "~@15 x ~ x ~@12 x ~",
R: "~@13 x ~@2 x ~@12 x ~@2", S: "~@12 x ~@2 x ~@12 x ~@3", T: "~@11 x ~@2 x ~@11 x ~@5", U: "~@5 x!2 ~@9",
V: "~ x ~@2", W: "~@7 x ~@24", X: "~@5 x ~@26", Y: "~ x ~@6", Z: "~@3 x ~@27 x", AA: "~@9 x ~@5 x ~@9 x ~@4 x ~",
AB: "~@15 x", AC: "~@9 x ~@4 x ~", AD: "~@15 x ~@9 x ~@6", AE: "~@11 x ~@4", AF: "x ~@4 x ~@9 x ~@5 x ~@9 x",
AG: "~@4 x ~@9 x ~@4 x ~@10 x ~", AH: "~@2 x ~@14 x ~@2 x ~@11", AI: "~@11 x ~@2 x ~@17", AJ: "~@9 x ~@22",
AK: "~@3 x ~@12", AL: "~@3 x ~@28", AM: "~@21 x ~@9 x", AN: "~@17 x ~@8 x ~@5", AO: "~@6 x ~@4 x ~@4",
AP: "x ~@14 x ~ x ~@12 x ~", AQ: "~@13 x ~ x ~@11 x ~@4", AR: "~@10 x ~@2 x ~@11 x ~@6", AS: "~@8 x ~ x ~@12 x ~@8",
AT: "~@6 x ~ x ~@12 x ~@10", AU: "~@4 x ~@2 x ~@12 x ~@11", AV: "~@4 x ~@2 x ~@24",
})).gain(0.42)
// drums · clap
const clap = s("cp").struct("<~@83 A@4 B@2 C D E F G H I J K L M N O P Q B R ~@6>".pickRestart({
A: "~@9 x!5 ~@18", B: "~@8 x!5 ~@19", C: "~@7 x!5 ~@20", D: "~@6 x!5 ~@21", E: "~@5 x!5 ~@22", F: "~@4 x!5 ~@23",
G: "~@3 x!4 ~@25", H: "~ x!5 ~@25 x", I: "x!4 ~@25 x!3", J: "x ~@25 x!5 ~", K: "~@24 x!5 ~@3", L: "~@22 x!5 ~@5",
M: "~@20 x!4 ~@8", N: "~@17 x!5 ~@10", O: "~@15 x!5 ~@12", P: "~@13 x!4 ~@15", Q: "~@10 x!5 ~@17", R: "~@7 x!4 ~@21",
})).gain(0.14)
// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@83 A@4 B@2 C D E F G H I J K L M N O P Q B D ~@6>".pickRestart({
A: "~@14 x!2 ~@16", B: "~@13 x!2 ~@17", C: "~@12 x!2 ~@18", D: "~@11 x!2 ~@19", E: "~@10 x!2 ~@20", F: "~@9 x!2 ~@21",
G: "~@7 x!2 ~@23", H: "~@6 x!2 ~@24", I: "~@4 x!2 ~@26", J: "~ x!2 ~@28 x", K: "x ~@28 x!2 ~", L: "~@27 x ~@4",
M: "~@24 x!2 ~@6", N: "~@22 x!2 ~@8", O: "~@20 x!2 ~@10", P: "~@17 x!2 ~@13", Q: "~@15 x!2 ~@15",
})).gain(0.05)
// drums · snare
const snare = s("sd").struct(`<
~@17 A B A B ~@4 C D E F G H ~@18 I J K L A ~@12 M N O P ~@4 Q I J K L ~@14 L R M S T U V J W X Y Z T ~@6
>`.pickRestart({
A: "~@29 x ~@2", B: "~@13 x ~@2 x ~@15", C: "~@15 x ~@16", D: "~@7 x ~@8", E: "~@13 x ~@18", F: "~@3 x ~@4",
G: "~@11 x ~@20", H: "~@9 x ~@22", I: "~@3 x ~@28", J: "~ x ~@14", K: "~ x ~@29 x", L: "~@15 x", M: "~@13 x ~@2",
N: "~@5 x!2 ~@9", O: "~@3 x", P: "~@4 x!2 ~@10", Q: "~ x ~@6", R: "~@7 x!2 ~@7", S: "~@9 x ~@2 x ~@19",
T: "~@11 x ~@4", U: "~@5 x ~ x ~@24", V: "~@5 x ~@26", W: "x ~@14 x", X: "~@7 x", Y: "~@25 x ~@6", Z: "~@23 x ~@8",
})).gain(0.37)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@17 A B A B ~@45 C D E F ~@23 G B C H I J ~@13>".pickRestart({
A: "~@24 x ~@2 x ~@4", B: "~@8 x ~@2 x ~@20", C: "~@21 x ~@2 x ~@7", D: "~@5 x ~ x ~@24", E: "~@19 x ~@2 x ~@9",
F: "~@2 x ~@2 x ~@26", G: "~@25 x ~@2 x ~@3", H: "~@4 x ~@2 x ~@24", I: "~@17 x ~ x ~@12", J: "x!2 ~@14",
})).gain(0.19)
// drums · low tom
const low_tom = s("lt").struct(`<
~@18 A ~ A ~@3 B ~@9 C ~@12 D E ~@8 F G ~@8 H ~ I ~@2 J ~@9 K L ~@10 M ~ N ~ O ~@13
>`.pickRestart({
A: "~@13 x ~@2 x ~@15", B: "~@7 x ~@16 x ~@7", C: "~@7 x ~ x ~@2 x ~ x ~@17", D: "~@27 x ~@4", E: "~@11 x ~@20",
F: "~@27 x ~ x ~@2", G: "x ~@2 x ~@28", H: "~@5 x!2 ~@9", I: "~@4 x!2 ~@10", J: "~@29 x ~@2", K: "~@28 x ~@2 x",
L: "~ x ~@2 x ~@27", M: "~@14 x ~ x ~@7 x ~ x ~@2 x ~@2", N: "~@9 x ~@2 x ~@19", O: "~@5 x ~ x ~@24",
})).gain(0.33)
// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@18 A ~ A ~@46 B ~ C ~@24 A ~ D ~ E ~@13>".pickRestart({
A: "~@8 x ~@2 x ~@20", B: "~@5 x ~ x ~@24", C: "~@2 x ~@2 x ~@26", D: "~@4 x ~@2 x ~@24", E: "x!2 ~@14",
})).gain(0.19)
// drums · hihat
const hihat = s("hh").struct(`<
~@9 A@5 B A ~ A@5 B C ~ D E F G H I ~@4 J@10 K L ~ M N O P Q R S ~@3 T U V W X Y A ~ Z AA AB AC AD AE ~ AF AG N AH AI
// … 70 more lines
More by Drupi
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.