0:00/0:00
// Cara sconosciuta — Pooh
// 120 bpm, 4/4, key A 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: Full arrangement: all 145 bars on a 24-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@5 B@4 C@4 D@7 E@4 ~@37 F G H G H G H G I J K L M J K L N O P Q R S@3 T@2 U@2 ~@18 V@8 W X@2 Y@2 X@2 Z@6 AA@4 AB@2
~@7 AC@3 ~
>`.pickRestart({
A: "[~@24 [c#5,e5]@5 e5@4 a5@4 ~ g5@4 f#5@4 ~ e5@4 ~ e5@4 c#5@4 ~ a4@4 ~ [g2,g4]@12 ~ [a4,e5]@5 e5@4 ~ a5@4 g5@4 ~ f#5@4 e5@4 ~ [c#5,e5]@5 c#5@3 ~ a4@4, ~@23 [e4,a4]@7 ~@8 [b4,d5]@8 ~@5 [e4,a4,c#5]@6 ~@8 [b3,d4,e4]@13 e4@6 ~@22 [e4,a4]@9 ~@5, ~@24 a2@13 ~ g2@13 ~ a2@13 ~@14 a2@13 ~ g2@13 ~ a2@13, ~@38 e5@6 ~@35 c#5@3 ~@11 [b4,d5,e5]@8 ~@19]/5", // C#m G A5 C#m A5 Bm A E7 …
B: "[~ [g3,e4,g4]@12 ~@2 a4@12 ~@2 g3@13 [c#4,e4,a4]@12 ~@2 [g3,b3,d4,e4]@13 ~ [a2,e4]@13 ~ [g3,d4,e4,g4]@12, [b3,d4]@13 a3@12 ~@2 b3@12 ~@3 [a2,a3]@14 ~@40, ~@14 [c#4,e4]@12 ~@2 [d4,e4]@12 ~@29 a3@11 ~@3 b3@12 ~, ~@15 a2@14 g4@12 ~@15 g4@11 ~@3 [c#4,a4]@11 ~@15]/4", // C A Em7 A5 Em7 Bm A C#m …
C: "[~@2 [e4,a4]@12 ~@2 [g3,e4,g4]@13 ~ d5@4 d5@2 b4@2 ~ f#4@4 [c#5,e5]@4 ~ e5@2 c#5@2 ~ g#4@3 ~ [b4,d#5]@5 ~@4 d#5@4 ~ [g#4,c#5,e5]@4 ~@5 e5@4 ~ [b4,d5]@4 ~ d5@2 b4@2 f#4@2, ~ [a3,c#4]@12 ~@2 [b3,d4]@14 [f#4,b4]@5 ~@9 g#4@5 ~@8 g#4@5 ~ g#4@4 ~@10 g#4@8 f#4@5 ~@7, ~@2 a2@13 ~@15 b2@13 c#3@13 ~ g#2@13 ~ c#3@13 ~ b2@11, ~@64 b4@6 ~@8 c#5@5 ~@13]/4", // A5 C C#m B C#m Bm A Bm …
D: "[~@3 [c#5,e5]@4 e5@2 ~ c#5@2 g#4@3 ~@2 d#5@4 g#4@3 ~@2 d#5@4 ~ e5@4 ~@5 e5@3 ~ [c#4,e4,a4]@12 ~@2 [d4,e4,g4]@12 ~@2 [c#4,e4,a4]@12 ~@2 [g3,d4,e4]@13 ~ [a2,e4]@13 ~ g3@12 ~@2 a4@12 ~ [g3,d4,e4,g4]@13 ~ [f#4,b4,d5]@5 d5@2 b4@2 f#4@4, ~@2 g#4@6 ~@8 [g#4,b4]@5 ~@3 b4@6 c#3@13 a3@12 ~@2 b3@12 ~@2 a3@13 ~ b3@12 ~@2 [a3,c#4]@11 ~@3 [b3,d4,e4]@12 ~ a3@12 ~@2 b3@14 ~@14, ~@3 c#3@13 ~ g#2@13 [g#4,c#5]@4 ~ g#4@8 ~ a2@13 ~ g3@13 ~ a2@13 ~@42 a2@14 ~@14 b2@13, ~@37 c#5@5 ~@44 g4@11 ~@3 a4@11 ~@3 g4@11 ~@2 [c#4,e4]@12 ~@29]/7", // C#m A Em7 A Em7 A5 Em7 Bm …
E: "[~ [c#5,e5]@4 ~ e5@2 c#5@2 g#4@3 ~@2 d#5@4 g#4@3 ~@2 d#5@4 ~ [c#5,e5]@4 ~@5 e5@4 ~ d5@4 d5@2 ~ b4@2 f#4@4 [c#5,e5]@4 ~ e5@2 c#5@2 ~ g#4@3 ~ [b4,d#5]@5 ~@5 d#5@4 ~@12, g#4@6 ~@8 [g#4,b4]@5 ~@3 b4@6 g#4@4 ~ g#4@8 ~ [f#4,b4]@5 ~@9 g#4@5 ~@8 g#4@5 ~ g#4@4 ~@17, ~ c#3@13 ~ g#2@13 ~ c#3@13 ~ b2@13 c#3@13 ~ g#2@14 ~@12, ~@36 c#5@5 ~@36 b4@6 ~@13]/4", // C#m B G#m B5
F: "~@12 [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~", G: "[b3,c#4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~",
H: "[b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~", // Bm
I: "[b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [f#4,b4,d5]@4 [f#4,b4,d5]@3 ~ [f#4,b4,d5]@3 ~", // Bm
J: "[f#4,a4,d5]@3 ~ [f#4,a4,d5]@3 ~ [f#4,a4,d5]@3 ~ [d4,g4,b4]@11 ~", // D G
K: "[d4,g4,b4]@11 ~ [c#4,f#4,a4]@3 ~ [c#4,f#4,a4]@2 ~@2 [c#4,f#4,a4]@2 ~@2", // G F#m
L: "[c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~ [d4,f#4,b4]@10 ~@2", // F# Bm
M: "[d4,f#4,b4]@10 ~@2 [f#4,b4,d5]@4 [f#4,b4,d5]@3 ~ [f#4,b4,d5]@3 ~", N: "[d4,f#4,b4]@5 ~ [d4,g4,b4]@5 ~",
O: "[c#4,g4,a4]@5 ~ [b3,d4,g4]@5 ~", P: "[c#4,g4,a4]@11 ~ [c#5,e5]@4 ~ [c#5,e5]@4 [e5,a5]@3",
Q: "~@2 [e5,g5]@4 [d5,f#5]@4 ~ [c#5,e5]@4 ~ [c#5,e5]@4 [a4,c#5]@4", R: "~ [e4,a4]@4 ~ [d4,e4,g4]@13 [c#5,e5]@4 ~",
S: "[[c#5,e5]@4 ~ [e5,a5]@4 [e5,g5]@4 ~ [d5,f#5]@4 [c#5,e5]@4 ~ [c#5,e5]@4 ~ [a4,c#5]@4 [e4,a4]@4 ~ [d4,e4,g4]@13 ~ [d5,f#5]@3 ~ [e5,g5]@3 ~@2 [d5,f#5]@3 ~@2 [c#5,e5]@3 ~ [b4,d5]@3]/3", // C#m A5 Em D C#m A A5 Em7 …
T: "[~@2 [c#5,e5]@3 ~ [d5,f#5]@4 ~ [e5,g5]@3 ~@2 [d5,f#5]@3 ~ [c#5,e5]@14 [d5,f#5]@3 ~@2 [e5,g5]@3 ~ [d5,f#5]@3 ~@2]/2", // C#m D Em D C#m D Em D
U: "[[c#5,e5]@3 ~@2 [b4,d5]@3 ~ [c#5,e5]@3 ~@2 [d5,f#5]@3 ~ [e5,g5]@3 ~@2 [d5,f#5]@3 ~@22]/2", // C#m Bm C#m D Em D
V: "[~@4 [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [b3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4]@2]/8", // Bm Bsus2 F# Bm Bsus2 F# Bm Bsus2 …
W: "~@4 [f#4,b4,d5]@4 [f#4,b4,d5]@3 ~ [f#4,b4,d5]@3 ~ [f#4,a4,d5]@3 ~ [f#4,a4,d5]@3 ~", // Bm D
X: "[[f#4,a4,d5]@3 ~ [d4,g4,b4]@11 ~ [d4,g4,b4]@11 ~ [c#4,f#4,a4]@3 ~ [c#4,f#4,a4]@2 ~@2 [c#4,f#4,a4]@2 ~@2 [c#4,f#4,a#4]@3 ~ [c#4,f#4,a#4]@3 ~]/2", // D G F#m F#
Y: "[[c#4,f#4,a#4]@3 ~ [d4,f#4,b4]@10 ~@2 [d4,f#4,b4]@10 ~@2 [f#4,b4,d5]@4 [f#4,b4,d5]@3 ~ [f#4,b4,d5]@3 ~ [f#4,a4,d5]@3 ~ [f#4,a4,d5]@3 ~]/2", // F# Bm D
Z: "[[c#4,f#4,a#4]@3 ~ [d4,f#4,b4]@10 ~@2 [d4,f#4,b4]@10 ~@2 [d4,g4,b4]@10 ~@2 [c#4,g4,a4]@10 ~@2 [b3,d4,g4]@10 ~@2 [c#4,g4,a4]@11 ~ [e4,a4]@12 ~@2 g3@13 [c#4,e4,a4]@12 ~@2 [g3,b3,d4,e4]@13 ~ [a2,e4]@13, ~@75 [a3,c#4]@12 ~ b3@12 ~@3 [a2,a3]@14 ~@27, ~@76 a2@13 [d4,e4]@12 ~@29 a3@11 ~@3, ~@90 g4@12 ~@15 g4@11 ~@3 [c#4,a4]@11 ~@2]/6", // F# Bm G A7 G A7 A5 A …
AA: "[~ [g3,d4,e4]@13 ~ a2@13 ~ [g3,g4]@13 ~ d5@4 d5@2 b4@2 ~ f#4@4 [c#5,e5]@4 ~ e5@2 c#5@2 ~ g#4@3 ~ [b4,d#5]@5 ~@4 d#5@4 ~ [g#4,c#5,e5]@4 ~@5 e5@3, b3@12 ~@2 [a3,c#4,e4]@12 ~@2 [b3,d4,e4]@14 ~ b2@13 c#3@13 ~ g#2@13 ~ c#3@12, ~ g4@11 ~@3 a4@12 ~@15 [f#4,b4]@5 ~@9 g#4@5 ~@8 g#4@5 ~ g#4@4 ~@10 g#4@7, ~@77 b4@6 ~@8 c#5@5]/4", // Em7 G C#m B C#m A E7 B5
AB: "[~@2 [b4,d5]@4 ~ d5@2 b4@2 f#4@4 ~ [c#5,e5]@4 e5@2 ~ c#5@2 g#4@3 ~@2 d#5@4 g#4@3 ~@2 d#5@4 ~@5, ~ f#4@5 ~@9 g#4@6 ~@8 [g#4,b4]@5 ~@3 b4@6 ~@5, ~@2 b2@13 ~ c#3@13 ~ g#2@14 ~@4]/2", // Bm C#m G#m
AC: "[~@19 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@2 [c#4,e4]@2 ~@19]/3", // C#m
})).s("gm_piano").gain(0.35).pan(0.4)
// bass · fretless bass
const bass = note("<~ A@8 B@7 C@4 D@4 ~@37 E@4 ~@14 F@5 G@5 H@4 ~@14 I@4 ~@14 J@7 K L@4 M@8>".pickRestart({
A: "[a1@28 a1@27 a1@28 a1@28 a1@27 a1@28 a1@26]/8",
B: "[~@2 a1@28 b1@13 c#2@14 g#1@14 c#2@14 b1@14 c#2@14 g#1@13 c#2@14 a1@28]/7", C: "[a1@28 a1@27 a1@28 b1@13]/4",
D: "[~ c#2@14 g#1@14 c#2@13 b1@14 c#2@14 g#1@13 ~@13]/4", E: "[~ b1@2 ~]/2",
F: "[~@12 a2@26 ~@20 a3@3 ~@2 c#4@3 ~ a2@27 ~ a2@25, ~@20 a2@13 ~@27]/5",
G: "[~@3 a3@41 a3@4 ~ c#4@3 ~@2 a3@3 ~ [a2,e3]@41 ~@21, ~ a2@18 ~@21]/5", H: "[~@21 a2@48 ~ a2@5 ~@21]/4",
I: "[~ b1@6 ~@5]/2", J: "[~@4 a1@27 a1@28 a1@28 a1@27 b1@14 c#2@14 g#1@14 c#2@12]/7", K: "~ b1@7 c#2@4",
L: "[~@6 g#1@13 a2@47 ~ a2@29]/4", M: "[~@13 a2@47 ~ a2@54 a2@59 ~@18]/8",
})).s("gm_fretless_bass").gain(0.43)
// bass · synth bass 2
const bass_2 = note(`<
~@23 A@2 B@7 C@7 D E@3 F G@2 H C@7 D E@3 F G@2 I ~ J ~@5 K L M N O P M N Q G I ~@8 R@5 S@7 T U@3 V W@2 X Y Z ~@5 AA@2
AB AC AD AE AB AC AF W X ~@7 AG@2 AH@4 AI@6
>`.pickRestart({
A: "[~@12 a2@23 ~ a2@11 ~, ~ a1@3]/2",
B: "[a2@6 g2@5 ~ a2@23 ~ a2@11 ~ a2@6 g2@4 ~@2 a2@23 ~ a2@11 ~ a2@6 g2@5 ~ a2@23 ~ a2@11 ~ a2@6 g2@5 ~ d2@4 d2@2 ~@2 a1@2 b1@2, ~@12 a1@47 ~ a1@47 ~ a1@48 ~@12]/7",
C: "d2@2 d2 ~ a1 b1 d2@2 d2 ~ a1 b1", D: "d2@2 d2 ~ a1 b1 g1@2 g1 ~ d1 e1", E: "g1@2 g1 ~ d1 e1 g1@2 g1 ~ d1 e1",
F: "g1@2 g1 ~ d1 e1 a1@2 a1 ~ e1 f#1", G: "a1@2 a1 ~ e1 f#1 a1@2 a1 ~ e1 f#1", H: "a1@2 a1 ~ e1 f#1 d2@2 d2 ~ a1 b1",
I: "a1@2 a1 ~ e1 f#1 ~@6", J: "f#2 ~ b2@2 ~@2 b2@2 ~@2 b2@2 ~@12", K: "~ b1", L: "a1@6 g1@2 g1 ~ d1 e1",
M: "g1@2 g1 ~ d1 e1 f#1@2 f#1 ~ c#1 d#1", N: "f#1@2 f#1 ~ c#1 d#1 b1@2 b1 ~ f#1 g#1",
O: "b1@2 b1 ~ f#1 g#1 b1@2 b1 ~ f#1 g#1", P: "a1@2 a1 ~ f#1 g#1 g1@2 g1 ~ d1 e1",
Q: "b1@2 b1 ~ f#1 g#1 a1@2 a1 ~ e1 f#1",
R: "[~@4 a2@23 ~ a2@23 ~ a2@23 ~ a2@23 ~ d2@4 d2@2 ~@2 a1@2 b1@2 d2@4 d2@2 ~@2]/5",
S: "a1 b1 d2@2 d2 ~ a1 b1 d2@2 d2 ~", T: "a1 b1 g1@2 g1 ~ d1 e1 g1@2 g1 ~", U: "d1 e1 g1@2 g1 ~ d1 e1 g1@2 g1 ~",
V: "d1 e1 a1@2 a1 ~ e1 f#1 a1@2 a1 ~", W: "e1 f#1 a1@2 a1 ~ e1 f#1 a1@2 a1 ~", X: "e1 f#1 ~@10",
Y: "~@16 f#2 ~ b2@2 ~@2 b2@2", Z: "~ b2 ~@10", AA: "[~@2 b1@6 a1@6 g1@2 g1 ~ d1 e1 g1@2 g1 ~]/2",
AB: "d1 e1 f#1@2 f#1 ~ c#1 d#1 f#1@2 f#1 ~", AC: "c#1 d#1 b1@2 b1 ~ f#1 g#1 b1@2 b1 ~",
AD: "f#1 g#1 b1@2 b1 ~ f#1 g#1 a1@2 a1 ~", AE: "f#1 g#1 g1@2 g1 ~ d1 e1 g1@2 g1 ~",
AF: "f#1 g#1 a1@2 a1 ~ e1 f#1 a1@2 a1 ~", AG: "[~@19 a1@29]/2", AH: "[~@19 a1@47 ~ a1@29]/4",
AI: "[~@19 a1@48 a1@60 ~@17]/6",
})).s("gm_synth_bass_2").gain(0.64)
// other · electric guitar clean
const electric_guitar_clean = note(`<
~@23 A@8 B C D C D C D C E F G F H I J K L M N O C D C E F G F H I J P ~ Q ~@5 R S@2 T@2 U@2 V@2 W P ~@8 X@8 Y@8 Z@4
AA AB ~@5 AC@7 AD@4 ~@7 AE@2 AF@7 AG AH ~
>`.pickRestart({
A: "[~@12 a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 ~@6 g3@2 [g2,e3]@5 ~ a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 ~@6 g3@2 [g2,e3]@5 ~ a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 ~@2 a2@4 g3@2 [g2,e3]@5 ~ a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 a3@2, ~@12 a2@23 ~ a2@10 a3@6 ~@42 a3@6 ~@42 a3@6 ~@44, ~@48 a2@6 ~@6 a2@23 ~ a2@11 ~ a2@6 ~@6 a2@23 ~ a2@11 ~@13 a2@23 ~ a2@11 ~]/8", // C
B: "a2@4 g3@2 [g2,e3]@5 ~ d4@6 d4@6", C: "c#4@2 d4 c#4@3 b3@6", D: "a3@2 b3 c#4@3 d4@3 d4@3", E: "a3@2 b3 c#4@3 g3@6",
F: "f#3@11 ~ e3@12", G: "f#3@11 ~ g3@11 ~", H: "f#3@11 ~ e3@11 ~", I: "a2 e3", J: "a2@12 e3@11 ~",
K: "a2@11 ~ [a3,d4]@6 [a3,d4]@6", L: "[b3,c#4]@4 d4@2 [b3,c#4]@6 d4@5 ~ d4@5 ~, ~ b3",
M: "a3@2 b3 c#4@3 [a3,d4]@3 [a3,d4]@3, e4@5 ~@7", N: "[b3,c#4]@2 d4 [b3,c#4]@3 d4@2 ~ d4@2 ~, ~ b3",
O: "a3@2 b3 c#4@3 d4@3 d4@3, e4@3 ~@5", P: "a2@11 ~@13", Q: "f#2@2 b2@2 ~@2 b2 ~@3 b2 ~@13", R: "~@12 b2@11 ~",
S: "[a2@11 ~ g2@23 ~ a2@10 ~@2]/2", T: "[a#2@11 ~ b2@23 ~ b2@11 ~]/2", U: "[a2@11 ~ g2@24 a2@12]/2",
V: "[a#2@10 ~@2 b2@23 ~ a2@11 ~]/2", W: "a2@11 ~ a2@11 ~",
X: "[~@4 a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 ~@2 a2@4 g3@2 [g2,e3]@5 ~ a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 ~@2 a2@4 g3@2 [g2,e3]@5 ~ d4@6 d4@6 c#4@4 d4@2 c#4@6 b3@12 a3@4 b3@2 c#4@6 d4@6 d4@6 c#4@4 d4@2 c#4@6 b3@12 a3@4 b3@2 c#4@2, ~@4 a2@23 ~ a2@10 a3@6 ~@8 a2@23 ~ a2@10 a3@6 ~@100]/8", // C
Y: "[~@4 d4@6 d4@6 c#4@4 d4@2 c#4@6 b3@12 a3@4 b3@2 c#4@6 d4@6 d4@6 c#4@4 d4@2 c#4@6 b3@12 a3@4 b3@2 c#4@6 g3@12 f#3@11 ~ e3@12 f#3@11 ~ g3@11 ~ f#3@11 ~ e3@12 f#3@8]/8",
Z: "[~@4 e3@11 ~ a2@12 e3@12 a2@12 e3@11 ~ a2@11 ~@21]/4", AA: "~@16 f#2@2 b2@2 ~@2 b2 ~", AB: "~@2 b2 ~@21",
AC: "[~@4 b2@11 ~ a2@11 ~ g2@23 ~ a2@10 ~@2 a#2@11 ~ b2@23 ~ b2@11 ~ a2@11 ~ g2@24 a2@12 a#2@8]/7",
AD: "[~@4 b2@23 ~ a2@11 ~ a2@11 ~ a2@11 ~ a2@11 ~@21]/4",
AE: "[~@19 a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 [a2,a3]@4 b3, ~@19 a2@23 ~@6]/2", // A
AF: "[~@11 g3@2 [g2,e3]@5 ~ a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 ~@6 g3@2 [g2,e3]@5 ~ a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 ~@2 a2@4 g3@2 [g2,e3]@5 ~ a3@4 a3@2 c#4@3 ~ d4@6 b3@2 c#4@6 a3@4 b3@6 ~@2 a2@4 g3@2 [g2,e3]@5 ~@3 a2 ~@2, ~@5 a3@6 ~@42 a3@6 ~@42 a3@6 ~@42 a3@6 ~@13, ~@7 a2@6 ~@6 a2@23 ~ a2@11 ~ a2@6 ~@6 a2@23 ~ a2@11 ~@13 a2@23 ~ a2@11 ~@18]/7", // C
AG: "~ a2 ~@3 a2 ~@3 a2 ~@3 a2 ~@3 a2 ~@3 a2 ~@2", AH: "~ a2 ~@3 a2 ~@18",
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.4)
// chords · piano
const piano_2 = note(`<
~@31 A B C B D E F G H I J@2 K L K M E F E F E F G H I J@2 K L K ~@31 N@4 O@2 P@2 Q R S@2 T U T ~@38
>`.pickRestart({
A: "~@12 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@4 ~@2", B: "[c#4,e4]@4 f#4@2 e4@5 ~ d4@12, a3 ~",
C: "a3@3 ~ b3@2 c#4@3 ~@3 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@4 ~@2", D: "a3@3 ~ b3@2 c#4@3 ~@3 [a3,d4,f#4]@10 ~@2",
E: "[c#4,e4]@4 f#4@2 e4@5 ~ [a3,d4]@12, a3@5 ~@7", F: "a3@3 ~@3 [a3,d4,f#4]@5 ~",
G: "[c#4,e4]@4 f#4@2 e4@5 ~ d4@12, a3@11 ~ a3@10 ~@2", H: "a3@3 ~@3 [b3,d4,e4,g4]@2 [b3,d4,e4,g4]@2 ~@2",
I: "~@12 [b3,d4,e4,g4]@4 [b3,d4,e4,g4]@3 ~@5", J: "~@12 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~@5",
K: "~@12 [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~@5", L: "~@12 [a3,c#4,e4]@3 ~ [a3,c#4,e4]@4 ~@4", M: "~@6 [a3,d4,f#4]@5 ~",
N: "[~@4 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@4 ~@2 [c#4,e4]@4 f#4@2 e4@5 ~ d4@12 a3@3 ~ b3@2 c#4@2, ~@4 a3@3 ~@5]/2", // D C#m
O: "[~@4 [a3,d4,f#4]@10 ~@2 [c#4,e4]@4 f#4@2 e4@5 ~ [a3,d4]@12 a3@6 ~@2, ~@8 a3@5 ~@11]/2", // D C#m D5
P: "[~@4 [a3,d4,f#4]@10 ~@2 [c#4,e4]@4 f#4@2 e4@5 ~ d4@12 a3@6 ~@2, ~@16 a3@11 ~ a3@10 ~@10]/2", // D C#m
Q: "~ [b3,d4,e4,g4]!2 ~@3", R: "~@4 [b3,d4,e4,g4]@4 [b3,d4,e4,g4]@3 ~@13",
S: "~@4 [b3,d4,e4,g4]@3 ~ [b3,d4,e4,g4]@3 ~@13", T: "~@4 [a3,c#4,e4]@3 ~ [a3,c#4,e4]@3 ~@13",
U: "~@4 [a3,c#4,e4]@3 ~ [a3,c#4,e4]@4 ~@12", // A
})).s("gm_piano").gain(0.25).pan(0.7)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@31 A B@7 C D@2 E F G H I J B J B@4 C D@2 E F G H K ~@30 L@8 M@5 N O ~@38
>`.pickRestart({
A: "~@18 [a3,d4,f#4]@5 ~", B: "~@6 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~", C: "~@6 [a3,d4,f#4]@5 ~@7 [b3,d4,e4,g4]@4 ~@2",
D: "~@6 [b3,d4,e4,g4]@5 ~@7 [b3,d4,e4,g4]@5 ~", E: "~@6 [b3,d4,e4,g4]@6 ~@6 [b3,d4,e4,g4]@5 ~",
F: "~@6 [b3,d4,e4,g4]@5 ~@13", G: "[c#4,e4,a4]@3 ~ [c#4,e4,a4]@5 ~@15", H: "[c#4,e4,a4]@3 ~ [c#4,e4,a4]@4 ~@16",
I: "[a3,c#4,e4,a4]@3 ~ [a3,c#4,e4,a4]@4 ~@10 [a3,d4,f#4]@5 ~", J: "~@6 [a3,c#4,e4]@5 ~@7 [a3,d4,f#4]@5 ~",
K: "[a3,c#4,e4,a4]@3 ~ [a3,c#4,e4,a4]@4 ~@16", // A
L: "[~@10 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@2]/8", // D
M: "[~@10 [b3,d4,e4,g4]@4 ~@8 [b3,d4,e4,g4]@5 ~@7 [b3,d4,e4,g4]@5 ~@7 [b3,d4,e4,g4]@5 ~@7 [b3,d4,e4,g4]@5 ~@7 [b3,d4,e4,g4]@6 ~@6 [b3,d4,e4,g4]@5 ~@7 [b3,d4,e4,g4]@5 ~@13 [c#4,e4,a4]@3 ~ [c#4,e4,a4]@4]/5", // Em7 A
N: "~@16 [c#4,e4,a4]@3 ~ [c#4,e4,a4]@4", O: "~@16 [a3,c#4,e4,a4]@3 ~ [a3,c#4,e4,a4]@4",
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.3)
// other · french horn
const french_horn = note(`<
~@46 A B C D E D F D G H I J@2 K@2 L ~@7 M N O P@2 N O Q@4 ~@12 R@8 S@8 ~@7 T@8 U@3 ~@19
>`.pickRestart({
A: "~@12 a3@6 a3@5 ~", B: "b3@5 ~ b3@5 ~ d4@5 ~ d4@4 ~@2", C: "e4@11 ~ a3@5 ~ a3@5 ~",
D: "b3@5 ~ b3@5 ~ d4@5 ~ d4@5 ~", E: "e4@6 e4@6 a3@5 ~ a3@5 ~", F: "e4@5 ~ e4@5 ~ a3@5 ~ a3@5 ~",
G: "e4@5 ~ e4@5 ~ b3@12", H: "f#3@11 ~ e3@12", I: "f#3@11 ~ b3@11 ~", J: "f#3 e3", K: "a3@11 ~ e3@12", L: "a3 ~",
M: "~ f#4", N: "e4 b3", O: "a3@11 ~ f#4@11 ~", P: "[e4@12 f#4@23 ~ f#4@12]/2", Q: "[e4@12 f#4@23 ~ e4@48 ~@12]/4",
R: "[~@4 a3@12 b3@12 d4@12 e4@11 ~ a3@12 b3@12 d4@12 e4@11 ~ a3@5 ~ a3@5 ~ b3@5 ~ b3@5 ~ d4@5 ~ d4@5 ~ e4@5 ~ e4@5 ~ a3@5 ~ a3@5 ~ b3@5 ~ b3@5 ~ d4@5 ~ d4@5 ~ e4@5 ~ e4@2]/8",
S: "[~@4 b3@12 f#3@11 ~ e3@12 f#3@11 ~ b3@11 ~ f#3@12 e3@12 f#3@12 e3@12 a3@11 ~ e3@12 a3@11 ~ e3@12 a3@12 ~@20]/8",
T: "[~@4 f#4@12 e4@12 b3@12 a3@11 ~ f#4@11 ~ e4@12 f#4@23 ~ f#4@12 e4@12 b3@12 a3@11 ~ f#4@11 ~ e4@12 f#4@20]/8",
U: "[~ e4@12 ~@5]/3",
})).s("gm_french_horn").gain(0.4).pan(0.7)
// other · string ensemble 2
const string_ensemble_2 = note("<~@69 A B C D E B C D E F G ~@35 H@8 I@3 ~@19>".pickRestart({
A: "~ d6", B: "f#6!2", C: "e6 c#6", D: "e6!2", E: "d6!2", F: "c#6 b5", G: "c#6 ~",
H: "[~ d6@3 f#6@3 f#6@3 e6@3 c#6@3 e6@3 e6@3 d6@3 d6@3 f#6@3 f#6@3 e6@3 c#6@3 e6@3 e6@3 d6@2]/8",
I: "[~ d6@3 c#6@3 b5@3 c#6@3 ~@5]/3",
})).s("gm_string_ensemble_2").gain(0.25)
// drums · kick
const kick = s("bd").struct(`<
~@23 A ~ A ~ A ~ A ~ A B@30 ~@8 A B@9 C D E ~ F G H I J ~ J ~ K@15 J ~@8 K@9 ~@8 D ~ D ~ D ~ D ~ D ~@3
>`.pickRestart({
A: "~ x", B: "x!2", C: "~@13 x ~@2 x ~@7", D: "~@19 x ~@4", E: "~@21 x ~ x", F: "~ x ~@6", G: "~@2 x!2 ~@8",
H: "~@5 x ~@6", I: "~@6 x!2 ~@4", J: "~ x ~@4", K: "~ x ~@2 x ~",
})).gain(0.49)
// drums · clap
const clap = s("cp").struct("<~@24 A@8 ~@48 B A C D E F ~ G H@4 ~@42 D@8 ~@3>".pickRestart({
A: "~ x ~@2", B: "~ x ~@10", C: "~@3 x ~@4", D: "~@13 x ~@10", E: "~@17 x ~@6", F: "~@5 x", G: "x", H: "~@11 x",
})).gain(0.55)
// drums · snare
const snare = s("sd").struct(`<
~@30 A B C@14 D C@14 E ~@8 F C@8 E G H I J K L ~ M ~@3 N O P@13 Q ~@9 P@8 Q ~@15 R S ~@3
>`.pickRestart({
A: "x!12", B: "x!6 ~@3 x ~@2", C: "~ x ~ x", D: "~@2 x!2 ~@5 x ~@2", E: "~@2 x!2 ~@8", F: "~@3 x", G: "~ x ~@10",
H: "~ x ~@2", I: "~@3 x ~@4", J: "~@13 x ~@10", K: "~@17 x ~@6", L: "~@5 x", M: "x", N: "~@2 x!10",
O: "x!2 ~@3 x ~@5 x", P: "~@5 x ~@5 x", Q: "~@5 x ~@4 x!2", R: "~@7 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
S: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@6",
})).gain(0.49)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@29 [~@6 x!6] ~@109 [~@19 x ~ x ~ x] [~ x ~ x ~ x ~@18] ~@4>").gain(0.33)
// drums · hihat
const hihat = s("hh").struct(`<
~@31 A B@11 C@4 B@3 C B@7 C@3 D ~@8 A B@8 E F G F H I J K L ~@4 M N@3 O N@7 O@3 P ~@8 M N@8 P ~@19
>`.pickRestart({
A: "~@7 x ~ x!3", B: "x!2 ~ x!5 ~ x!3", C: "x!2 ~ x!3 ~ x ~ x!3", D: "x!2 ~ x!3 ~@6",
E: "x ~ x ~@3 x ~ x ~ x ~@8 x ~@4", F: "~@2 x ~@6 x ~@6 x ~@6 x", G: "~ x ~@2", H: "~@6 x ~@6 x ~@10",
I: "~@10 x ~@6 x ~@6", J: "x ~@5 x ~@6 x ~@6 x ~@3", K: "~@17 x ~@6", L: "x ~@6 x ~@6 x ~@9", M: "~@3 x ~ x!5 ~ x",
N: "x!4 ~ x!5 ~ x", O: "x!2 ~ x ~ x!5 ~ x", P: "x!2 ~@10",
})).gain(0.33)
// drums · low tom
const low_tom = s("lt").struct("<~@70 [x!3 ~@3] ~@44 [~@4 x!2] x ~@28>").gain(0.49)
// drums · open hat
const open_hat = s("oh").struct("<~@31 A B@29 C ~@8 A B@8 C ~ D ~ E ~@2 F G ~@4 H@15 ~@9 H@9 ~@20>".pickRestart({
A: "~@2 x", B: "~ x ~@2 x ~", C: "~ x ~@4", D: "~ x", E: "~@5 x", F: "~ x ~@6", G: "~@7 x", H: "~@2 x ~@2 x",
})).gain(0.33)
// drums · mid tom
const mid_tom = s("mt").struct("<~@69 [~@9 x!4 ~@3 x ~@3 x ~ x ~] ~@45 [~ x!4 ~@3 x ~@3 x ~ x ~@9] ~@29>").gain(0.49)
// … 11 more lines
More by Pooh
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.