0:00/0:00
// Io ti aspettero — Pooh
// 137 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 171 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(137/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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass finger
const bass = note(`<
~ A@2 B C D@3 E@2 F@2 G@2 H@2 E@2 F@2 G@2 I@2 E@2 J@2 K L M@2 N O J P Q R S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z AA AB AC AD AE
AB AF AG AD AH AI AJ AK AL AM AN AO AP@2 AQ AR AS AT AU AV AW AX AQ AY AS AT AU AZ BA@2 AD BB AB BC BD BE AB BF AD AE
AB@2 BD BE AB BG AD AE AB AF BH BI BJ BK AJ AK AL BL BM BN BO BP AQ AR AS AT AU AV BQ BR AQ AY AS AT AU BS BT BU AQ AY
AS AT BV BW BX BY BZ CA AS AT AU CB CC CD AQ AR AS AT AU AV CE CF CG@2 CH@2 CI@3 CJ@4
>`.pickRestart({
A: "[d3@2 c#3 b2@5]/2", B: "f#2@13 ~@3", C: "e2@6 e1 f#1", D: "[g1@7 ~ e1@2 ~@2 a1@27 ~ a1@8]/3", E: "d2/2",
F: "f#2/2", G: "e2/2", H: "[f#2@11 ~@9 c#3@8 f#2@2 ~@2, ~@12 f#2@15 ~@5]/2", I: "[f#2@11 ~ f#2@12 c#3@6 f#2@2]/2",
J: "f#2", K: "a2", L: "d2", M: "[g2@3 f#2]/2", N: "e2@15 ~", O: "a2 g2", P: "b2 a2", Q: "g2@11 ~ g2@4", R: "a2 a1",
S: "[d3@8 c#3 ~@3 b2@8 ~@4 a1@8]/2", T: "[d1@5 ~ d1@10]/2", U: "[f#1@11 ~ f#1@17 ~ f#1 ~]/2",
V: "[e1@12 e2@16 e1@3 ~]/2", W: "[f#1@11 ~ f#1@14 ~@2 f#1@2 e1@2]/2", X: "[d1@5 ~ d1@7 ~ d1 e1]/2",
Y: "[f#1@11 ~ f#1@14 ~@2 f#1@2 ~@2]/2", Z: "e1@12 e3@2 b2 ~", AA: "e3@8 e1@4 f1@3 ~", AB: "f#1@5 ~ f#1 ~",
AC: "f#1@9 ~ f#1 ~ f#1@2 e1@2", AD: "d1@5 ~ d1 ~", AE: "d1@5 ~ d1 e1", AF: "f#1@5 ~ f#1 g1", AG: "a1@5 ~ a1@2",
AH: "g1@9 ~@3 g1@2 ~@2", AI: "g1 f#1", AJ: "e1@9 ~@3 e1@4", AK: "a1 g1", AL: "f#1@9 ~@3 f#1@2 a#1@2",
AM: "b1@8 a1@7 ~", AN: "g1@8 ~@2 d1 ~ g1@2 e1@2", AO: "a1@11 ~ e3@2 a2@2",
AP: "[d3@2 a2@2 d3@2 a2@4 d2@2 d3@14 a2 ~ d2@2 a1@2]/2", AQ: "~@2 g2@4 g1 d1, g1@11 ~@5",
AR: "g1@6 d1@2 g1@3 ~ g1@2 a1@2", AS: "b1@13 ~ f#1@2", AT: "b1@2 f#1 ~ b1@4 f#1@4 b1@4", AU: "c2@8 c2@3 ~ c2@2 g1@2",
AV: "c1 ~ c1@3 ~ e1 d1", AW: "g1@13 ~ d1@2", AX: "g1 d1 a1 d1 a#1 b1 a1@2", AY: "g1@2 d1@2 g1@5 ~ g1 ~ g1@2 a1@2",
AZ: "c1 ~ c1@4 d1@2", BA: "[g1@3 ~]/2", BB: "d1@7 ~", BC: "f#1@10 ~@2 f#1@3 ~", BD: "e1@9 ~@3 e1@2 ~@2",
BE: "e1@2 e2 e1", BF: "~@2 c#3@4 f#1 e1, f#1@5 ~@3", BG: "f#1@2 c#2@2 f#2 c#2 f#1 e1", BH: "a1@5 ~ e2@2",
BI: "d2@8 a1@4 d1@3 ~", BJ: "g1@9 ~@3 g1@2 d1@2", BK: "g1@5 ~ g1@2 f#1@5 ~ f#1@2", BL: "b1@8 a1@5 ~ a1@2",
BM: "g1@8 ~@2 d1 ~ g1 ~ e1 ~", BN: "a1@4 a1@5 ~ a1 ~ a1@2 e1@2", BO: "d2@2 a1@2 d1@2 d2@2 d1@4 ~@2 d1 ~",
BP: "d1@2 d1@3 ~ d1 ~ d1@3 ~ e1 ~ d1 ~", BQ: "g1@5 ~ d2@2 g2@2 d2@2 a2@2 d2@2", BR: "a#2 b2 a2 g2 e2 d2 a#1 a1",
BS: "c1@4 e1@4 f1@5 ~ d1@2", BT: "g1@5 ~ b1@2 d2@2 g2@3 ~ g2 ~", BU: "d3@2 g3@3 ~ g3 ~ g3@2 d3 ~ g2@2 d2@2",
BV: "c2@9 ~ c2 ~ f#2@2 g2@2", BW: "c3@2 g2@2 c2@3 c1 g1@4 d1@2 e1@2", BX: "g1@5 ~ g1@2 d2@2 g2@2 g1@4",
BY: "~@2 g1@3 ~ g1@3 ~ g1@3 ~ d1@2", BZ: "g1@2 g2@2 ~@2 g1 d1", CA: "g1@2 ~@2 g1@5 ~ g1 ~ a1@2 g1@2",
CB: "c1@2 ~@2 c1@3 ~@3 e1@2 f1@2 f#1@2", CC: "g1 g1@2 d2", CD: "g2@2 d2 g2 a2 e2 g2 d2", CE: "g1@5 ~ d2 g1",
CF: "g2@11 ~ e2@2 d2@2", CG: "[g1@7 ~ f#1@2 ~@2 e1@8 e2@7 ~ e2@2 d2 ~]/2",
CH: "[b1@4 f#1@4 b1@3 ~ a1@14 ~@2 a1@2 b1@2]/2", CI: "[c2!2 a1 d1@9]/3", CJ: "[g1@29 ~@3]/4",
})).s("gm_electric_bass_finger").gain(0.72)
// other · pad bowed
const pad_bowed = note("<~@4 A ~@3 B C ~@10 B D ~@22 B D ~@117 E@2 ~@6>".pickRestart({
A: "~ d5 d6 d5", B: "~@8 d5@5 ~@3", C: "a4 ~ d4 ~", D: "a4@5 ~@3 d4@5 ~@3", E: "[~ d5 d6 d5@2 ~@3]/2",
})).s("gm_pad_bowed").gain(0.64).pan(0.3)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
~@5 A@3 ~@14 B@2 C@2 D@2 E@4 F@3 G H@2 I@2 ~@12 J@2 K@2 L@2 D@2 E@4 F@3 G M@2 N@2 O P Q R S@2 T@2 O P Q R S@2 U@2 ~@4
V W X Y Z AA ~@2 J@2 AB@2 C@2 D@2 E@4 F@3 G M@2 N@2 O P Q R S@2 T@2 O P Q R S@2 T@2 O P Q R S@2 T@2 O P Q R S@2 T@2 O
P Q R S@2 AC@2 AD@2 AE@2 AF@3 AG@4
>`.pickRestart({
A: "[[b3,d4,f#4]@12 [a3,d4,e4]@35 ~]/3", B: "[b3@15 ~ a#3@16, [c#4,f#4]]/2", C: "[a3,d4,f#4]/2", D: "[b3,c#4,e4]/2",
E: "[[c4,e4]@3 f#4 [a3,a4]@2 [g3,g4] [f#3,a3], a3 ~, ~@3 d4@5]/4", F: "[e3@2 a3 g3 f#3@2, [b3,d4] [c#4,e4]]/3",
G: "[b3,c#4] [a3,d4], f#4", H: "[[g3,b3]@16 ~@8 c#4@7 ~, d4@3 ~, ~ [a3,e4]]/2",
I: "[[a3,d4,f#4]@2 [c#4,e4] [a3,b3]@2 [g3,b3]@3, ~@3 d4@5]/2", J: "~@2 a4 ~ d5@2 a4 ~", K: "[b3 a#3, f#4@31 ~]/2",
L: "[a3,f#4]/2", M: "[[b3,g4]@16 ~@8 c#4@7 ~, d4@3 ~, ~ [e4,a4]]/2", N: "[g4 f#4, [a4,d5]]/2", O: "g5@7 ~ f#5@8",
P: "d5 b4", Q: "e5@7 ~ d#5@8", R: "b4 a4", S: "[a4@2 b4@2 g4@27 ~]/2", T: "[[d4,g4]@15 ~]/2", U: "[[d4,g4]@3 ~]/2",
V: "~@2 d5 ~", W: "d5@5 ~@3 d5@6 ~@2", X: "~@7 e4@8 ~", Y: "f#4@15 ~", Z: "~@2 a4@2 d5@2 a4 ~",
AA: "~@4 a4@3 ~ d5@4 a4@3 ~", AB: "[f#4@31 ~]/2", AC: "[d4@27 ~ g4@2 a4@2, g4@25 ~@7]/2",
AD: "[[g4,b4]@2 [f#4,a4] [c4,e4,g4]@5, d4@3 ~@5]/2", AE: "[[b3,f#4]@2 [b3,a4] [a3,c4,g4]@4 ~, d4@3 ~@5]/2",
AF: "[[c4,e4,g4]@12 [g3,c4,e4]@35 ~]/3", AG: "[[b3,d4,g4]@29 ~@3]/4",
})).s("gm_string_ensemble_2").gain(0.4).pan(0.6)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
A B@4 C@3 ~@6 D@4 E@2 F@2 G@2 H@4 I J K L M@3 N O P Q@2 R@6 S@2 T@6 U V W@4 X@2 Y@2 Z AA@2 AB AC AD AE AF ~@16 AG@2
AH@2 AI@2 AJ AK@5 AL@2 AM AN ~@67
>`.pickRestart({
A: "~@6 d4 e4",
B: "[[f#4,a4]@4 [e4,a4] ~ d4@4 b3@4 ~@4 a3@2 [f#3,e4]@2 [e3,d4]@8 d4 e4, ~@12 a4@16 ~@4 f#3@7 ~@25, ~@20 a3 ~@7 a3@8 ~@28]/4", // F#m A5 F#7 E7
C: "[f#4@4 d4@4 a3@3 ~ e4@35 ~, ~@12 d4 ~@35]/3", D: "[~@8 b3@8 a#3@15 ~ f#4@30 ~@2, ~@4 f#3@26 ~ [a3,d4]@31 ~@2]/4",
E: "[[a3,e4]@12 e4@19 ~, ~@3 b3@2 ~@3]/2", F: "[~@12 [g3,a3,d4]@19 ~]/2", G: "[~@4 b3@4 a#3@7 ~, f#3@15 ~]/2",
H: "[~@6 a4@9 ~ e4@12 ~@4, d4@30 ~ a3@16 ~@17]/4", I: "e4@15 ~, c4@13 ~@3", J: "[c4,e4] [d4,f#4]", K: "a4, d4@7 ~",
L: "[d4,g4]@15 g3", M: "[d4@15 ~ d4@8 e4@7 f#3 e4@16, g4@24 ~@7 a#3@16 ~]/3", N: "[c#4,f#4] [d4,f#4]",
O: "[g3,d4]@15 ~", P: "e4@11 ~ d4@2 e4@2, a3@7 ~",
Q: "[f#4@2 ~@2 d4@2 ~@2 [a3,e4]@2 ~@2 [a3,d4]@8 [g3,b3]@11 ~, a3@7 ~@13 a3 ~@11]/2", // A5 D5 G
R: "[~@12 a4@22 ~@18 f#4@15 ~@9 d4@19 ~, ~@4 e4@27 ~@9 a3@23 ~@5 a3@26 ~@2, ~@8 d4@23 ~@5 e3@16 ~@20 g3@22 ~@2, ~@44 c#4@19 ~@33]/6",
S: "[~@12 b3@4 a#3@15 ~, b3@11 ~@21, ~@8 f#3@21 ~@3]/2",
T: "[~@12 e4@23 ~@17 f#4@15 ~@9 [d4,e4]@18 ~@2, ~@4 e4@8 a4@19 ~@9 a3@23 ~@5 g3@25 ~@3, ~@2 d4@6 ~ e3@4 ~@11, ~@44 c#4@19 ~@33]/6", // Dsus2
U: "b3", V: "a#3@7 d3",
W: "[[d4,f#4]@11 ~ d4@22 ~@18 f#4@11 ~, ~@12 a4@19 ~@5 e3@16 ~@12, ~@20 a3@11 ~, ~@11 c#4@5]/4", // D
X: "[~@8 e4@15 ~ [d4,f#4]@8, ~@2 g3@9 ~@5]/2", Y: "[~@3 [d4,g4]@3 [a3,d4]@2, ~@4 g2@9 ~@19, ~@8 g3@15 ~@9]/2",
Z: "~@3 d3, ~@4 d3@7 ~@5, ~ g3", AA: "[d4@8 c#4@10 ~@6 a#4@7 ~, ~@20 f#3@11 ~]/2", AB: "d4 c#4",
AC: "~@3 d4, g2 g4, ~@4 g3@11 ~", AD: "[d4,g4]@8 [e4,a4]@7 ~", AE: "[d4,g4]@5 ~ [d4,g4]@6 [d4,g4]@4",
AF: "[d4,f#4]@15 ~", AG: "[~@8 d5@4 a4@19 ~, ~@2 d4@13 ~]/2", AH: "[~@12 a4@19 ~, ~ c#4@2 ~@5, ~ a3@2 ~]/2",
AI: "[~@12 d4@17 ~@3, ~@4 d4@7 ~@21, ~@8 d5@23 ~]/2", AJ: "b3@5 ~ b3@3 ~ b3@6",
AK: "[~@16 d3@8 ~@4 a4@23 ~@5 a3@4 ~@12 c#4@8, a#3@9 ~ b3@6 ~@8 d5@22 ~@14 a4@20, ~@3 e4@3 a#3@2 ~@18 c#4@10 ~@4, ~@7 f#3@4 ~@29]/5",
AL: "[~@12 d4@19 ~, ~@2 d5@5 ~]/2", AM: "b3@11 ~ b3@4", AN: "a#3@4 ~@3 f#3, ~@4 e4@3 ~, ~@10 b3@5 ~, ~@3 a#3",
})).s("gm_electric_guitar_jazz").gain(0.56)
// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note("<~@2 A ~@2 B@3 ~@11 C ~@4 D E ~ F ~@10 G ~@27 H ~@33 I ~@70>".pickRestart({
A: "~ g3@3", B: "[a3@7 ~@5 g3@36]/3", C: "~@4 c#4@11 ~", D: "a3@3 ~", E: "~@15 f#3", F: "~@15 g3", G: "~ e4 ~@6",
H: "~@12 c#4@3 ~", I: "[g3,b3]@7 ~@9",
})).s("gm_electric_guitar_jazz").gain(0.32)
// chords · piano
const piano = note(`<
A B@4 C@3 D@2 ~@6 D@2 ~@4 E@2 F@2 G@2 H I J@2 K L M N O P Q@2 D@2 R@2 S@2 T@2 D@2 U@2 V@2 W@2 F@2 G@2 H I J@2 K L X Y
Z AA AB@2 AC@2 AD@2 AE@2 AF AG AC@2 AD@2 AE@2 AH@2 D@2 AI@2 V@2 AJ@2 AK@2 AL@2 AM@2 AN@2 AO@2 AP@2 H I AQ@2 K L X Y Z
AA AR AS AC@2 AD@2 AE@2 AF AG AC@2 AD@2 AE@2 AT@2 AU@2 AV@2 AW@2 AT@2 AC@2 AD@2 AE@2 AT@2 AC@2 AD@2 AE@2 AX@2 AY@2
AZ@2 BA@3 ~@4
>`.pickRestart({
A: "~@6 d5 e5",
B: "[[d3,d4,a4,f#5]@4 [c#3,c#4,a4,e5]@2 [a4,d5]@4 b4@4 ~@6 e5@2 e2 ~ e2@7 ~, ~@6 [b2,b3]@10 f#2@5 ~@11, ~@20 d4@12 ~@4 a3@8 [g3,d4]@19 ~, ~@28 a4@11 ~@5 d5@16 ~@4]/4", // D A D5 B G5
C: "[[g3,b3,d4,f#4]@8 [g3,b3,d4,f#4]@4 [g3,b3,d4,e4]@35 ~]/3", D: "[d1,d2]/2",
E: "[f#2@7 ~@5 b3@4 a#3@14 ~@2, [b3,f#4]@6 f#4@9 ~, ~@8 f#2@21 ~@3]/2", // B5
F: "[[f#3,a3]@11 ~ [f#3,d4]@18 ~@2, d2@29 ~@3]/2", G: "[[a3,c#4]@10 ~@2 [a3,c#4]@11 ~ [a3,e4]@4 e3@3 ~, f#2@31 ~]/2",
H: "[g3,c4]!2, a2", I: "[g3,c4]@8 [a3,d4]@7 ~, d2@7 ~",
J: "[~@5 g3 [f#2,d4]@2, g2@15 ~ g2@8 ~@8, ~@4 d3@8 d3@7 ~@13, ~@2 a3@3 ~@3]/2", K: "[e2,b3], g3@7 ~",
L: "[a2,g3,b3]@8 [g2,a3,c#4]@7 ~", M: "[f#2,e3,a#3]", N: "[b2,c#4] [a2,d4], f#3@7 ~", O: "~@3 b3, g2, ~ d3@2 ~, ~ g3",
P: "d4@4 c#4@2 d5 e5, a2@15 ~, e4@3 ~",
Q: "[f#5 e5 d5 ~ [c#3,a3] ~ [b2,a3,d5]@4 [a2,g3,d4]@6, [d3,a3]@7 ~ e5 ~@11 b4@10 ~@2]/2", R: "[f#3@7 ~]/2",
S: "[e3@31 ~]/2", T: "[f#2@7 ~@5 b3@4 ~@10 a#5@2 ~@4, b3@11 ~@5 a#3@14 ~@2, ~@8 f#2@21 ~@3]/2", U: "[f#2@7 ~]/2",
V: "[e2@31 ~]/2", W: "[~@6 b3@2 a#3@4 ~ a#5 ~@2, f#2@7 ~ f#2@21 ~@3, ~@4 b3@7 ~@13 [a#3,f#4]@7 ~, ~ e4@2 ~]/2",
X: "[f#2,a#3,e4]", Y: "[b2,f#4] [a2,e4], b3@7 ~", Z: "~ [g3,d4], g2", AA: "[a3,d4]@7 ~ [a3,c#4]@7 ~, a2",
AB: "[[a3,d4]@6 [a3,d4]@9 ~ [a3,d4]@15 ~, d2@31 ~]/2", AC: "[g5 f#5 d5 b4, g2@15 ~]/2", AD: "[e5 d#5 b4 a4, b2]/2",
AE: "[a4@2 b4@2 g4@27 ~, c3]/2", AF: "[g2,d4]@7 [d3,g3]", AG: "~@2 [d3,g3]@3 ~ [d3,g3]@3 ~ [d3,g3]@2 a2@2 d2@2",
AH: "[[g3,d4]@31 ~, g2@27 ~@5]/2", AI: "[f#2@21 ~@5 c#4@6, ~@11 e4@5]/2",
AJ: "[f#2@6 b3@2 ~@2 b3 ~ b3@3 ~@11 a#5@2 ~@4, b3@5 ~@3 f#2@21 ~@3, ~@8 a#3@7 ~]/2",
AK: "[[d3,a3]@9 ~@3 a3@19 ~, [d1,d2], ~@12 d3@17 ~@3]/2", AL: "[[a3,e4]@21 ~@3 [a3,e4]@8, f#2@7 ~]/2",
AM: "[[g3,d4]@11 ~ [g3,d4]@7 ~ [g3,d4]@11 ~, e2@31 ~]/2", // G5
AN: "[f#2@7 ~@5 [b3,f#4]@3 ~@11 a#5@2 ~@4, [b3,f#4]@11 ~@5 [a#3,f#4]@15 ~, ~@8 f#2@15 ~@9]/2", // B5 D#m
AO: "[~ f#3@11 [f#3,d4]@18 ~@2, d2@29 ~@3, a3@5 ~@11]/2", // D
AP: "[[a3,c#4]@10 ~@2 [a3,c#4]@11 ~ [a3,e4]@4 [f#2,e3,a3]@4, f#2@7 ~]/2", // A A5 F#m7
AQ: "[~@5 g3 [f#2,a3]@2, g2@15 ~ [g2,b3]@8 ~@8, ~@4 d3@8 d3@7 ~@13, ~ a3 ~@2]/2", // F#m G
AR: "[a3,d4]@6 ~@6 d2@3 ~, d2@11 ~@5, ~@6 [a3,d4]@9 ~", AS: "[d2,a3,d4]@15 ~",
AT: "[[d3,g3]@9 ~ [d3,g3]@4 [d3,g3]@3 ~ [d3,g3]@3 ~ [d3,g3]@3 ~ [d3,g3]@5 ~, g2@27 ~@5]/2", // G5
AU: "[[g3,d4]@8 [g3,d4]@15 ~ [g3,d4]@7 ~, g2@15 ~]/2", AV: "[[a3,e4]@7 ~ [a3,d#4]@7 ~ a3@7 ~ [a3,d#4]@7 ~, b2]/2",
AW: "[[g3,c4]@11 ~ [g3,c4]@11 ~ [g3,c4]@7 ~, c3]/2", AX: "[[d4,g4]@25 ~@3 g4@2 [d2,a4]@2, g2@27 ~@5]/2",
AY: "[b4@2 a4@2 g4@2 ~@2 [d4,a4]@2 ~@2 g4@8 e4@8 d4@3 ~, [g3,d4]@2 f#3 e3@5, ~@12 c4@15 ~@5]/2", // D5 G5
AZ: "[b2@2 f#3@2 [b2,d4,a4]@2 [a2,c4,g4]@8 [a2,g4] [b2,a4], [b3,d4] ~@3]/2", // Bm7 Am7 A7 B7 Bm
BA: "[[c3,b3,d4]@12 [g3,c4]@35 ~, g3@10 ~@2 e3@33 ~@3, ~@12 d2@31 ~@5]/3", // G C5
})).s("gm_piano").gain(0.64).pan(0.6)
// other · pad metallic
const pad_metallic = note(`<
~@8 A B ~@2 C@2 ~@2 D E ~@2 F G ~@18 D E ~@2 F G ~@2 D E ~@2 F G ~@34 D E ~@2 F G ~@2 D E ~@2 F G ~@69
>`.pickRestart({
A: "~@4 a4@3 ~@5 a4@3 ~", B: "d4@2 a3@2 a4@4 ~@2 a3@3 a3@3", C: "[~@8 d5@5 ~ d5@9 ~ d5@7 ~]/2",
D: "~@4 a4@3 ~ d5@3 ~ a4@4", E: "~@2 a3@2 ~@2 a3@3 ~@7", F: "~@3 a3 ~ a4 ~@2", G: "a4 a3 ~ a3 a4 a3 ~ a3",
})).s("gm_pad_metallic").gain(0.64).pan(0.6)
// chords · synth brass 2
const synth_brass_2 = note(`<
~@8 A B C@2 D E F G H@2 I J K@2 L M B@2 C@2 N O K P Q R G S K T ~@2 A B C@2 D E F G A B C@2 D E F G B@2 C@2 N O K P Q
R G S K T B@2 ~@16 A B C@2 U@2 F G A B C@2 U@2 F G B@2 C@2 N O K P Q R G S K T B@2 ~@51
>`.pickRestart({
A: "[a3,d4]@2 ~@2 [a3,d4]@2 ~@2 [a3,d4]@2 ~@2 [a3,d4] ~@3", B: "[a3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~@3",
C: "[a3,c#4] ~@3 [a3,c#4] ~@3 [a3,c#4] ~@3 [a3,c#4] ~@3", // A
D: "[g3,b3] ~@3 [g3,b3] ~@3 [g3,b3] ~@3 [g3,b3] ~@3, ~@2 d5 ~", // G
E: "[g3,b3] ~@3 [g3,b3] ~@3 [g3,b3] ~@3 [g3,b3] ~@3, d5 ~ d5 ~", // G
F: "[b3,c#4] ~@3 [b3,c#4] ~@3 [b3,c#4] ~@3 [b3,c#4] ~@3", // Bsus2
G: "[a#3,c#4] ~@3 [a#3,c#4] ~@3 [a#3,c#4] ~@3 [a#3,c#4] ~@3", // A#m
H: "[d4,f#4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4]@2 ~@2 [d4,f#4] ~@3", // D
I: "c#4@2 ~@2 c#4@2 ~@2 [c#4,e4] ~@3 c#4@2 ~@2, e4 ~@3 e4 ~@7 e4 ~@3", // C#m
J: "[c#4,e4] ~@3 [c#4,e4] ~@3 [c#4,e4] ~@3 [c#4,e4] ~@3", K: "[b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3",
L: "[b3,f#4] ~@3 [b3,f#4] ~@3 [b3,f#4] ~@3 [b3,f#4] ~@3", // B5
M: "[a#3,f#4] ~@3 [a#3,f#4] ~@3 [a#3,f#4] ~@3 [a#3,f#4] ~@3", N: "[a3,c4] ~@3 [a3,c4] ~@3 [a3,c4] ~@3 [a3,c4] ~@3",
O: "[a3,c4] ~@3 [a3,c4] ~@3 [f#3,c4] ~@3 [f#3,c4] ~@3", P: "[b3,d4] ~@3 [b3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~@3",
Q: "g3 ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~, d4 ~@15", R: "[g3,d4] ~ d4 ~ [a3,c#4] ~ c#4 ~, ~@4 g3 ~@7 a3 ~@3",
S: "[a3,c#4] ~@3 c#4@2 ~@2 d4@2 ~@2 d4@2 ~@2, ~@4 a3 ~@3 a3 ~@3 a3 ~@3", // A
T: "[a3,d4]@2 ~@2 d4@2 ~@2 [a3,c#4]@2 ~@2 [a3,c#4] ~@3, ~@4 a3 ~@11", // D5 A
U: "[g3,b3] ~@3 [g3,b3] ~@3 [g3,b3] ~@3 [g3,b3] ~@3", // G
})).s("gm_synth_brass_2").gain(0.4).pan(0.6)
// chords · synth strings 1
const synth_strings_1 = note(`<
~@6 A@2 B@4 C@2 D@2 E@4 F@2 G@2 H@4 I@2 J@2 K@2 L M N O P@2 B@4 C@2 D@2 B@4 C@2 D@2 Q@4 R@2 S@2 T@2 U V W X Y@2 Z@4
AA@4 Z@4 AB@4 B@4 C@2 D@2 B@4 C@2 AC@2 Q@4 R@2 S@2 T@2 U V W X Y@2 Z@4 AA@4 Z@4 AD@4 Z@4 AD@4 Z@4 AD@4 Z@4 AA@4 AE@2
AF@2 AG@3 AH@4
>`.pickRestart({
A: "[~@3 [a3,d4]@2 ~@2 [a3,d4]@3 ~ [a3,d4]@2 ~@2 [a3,d4]@2 ~@2 [a3,d4]@2 ~@2 [a3,d4]@2 ~@2 [a3,d4]@2 ~@3]/2", // D5
B: "[d4 [f#2,c#4], [f#3,a3]]/4", C: "[e2,e3,g3,b3]/2", D: "[b3 a#3, [f#2,f#3,c#4]]/2",
E: "[[d4,f#4] [f#2,c#4,e4], a3@63 ~]/4", F: "[e2,g3,b3,d4]/2", G: "[b3 a#3, [f#2,c#4,f#4]]/2",
H: "[[d2,d4] [f#2,c#4], a3@63 ~]/4", I: "[a2@2 ~ [f#3,a3], [g3,c4]@3 ~, ~ d2]/2", J: "[[g2,g3,b3]@3 [f#2,f#3,a3]]/2",
K: "[e2@2 a2 [g2,e3,a3], [g3,b3]@3 ~]/2", L: "[f#2,f#3,a#3]", M: "[b2,a3] [a2,b3], f#4", N: "[g2,d3,g3]",
O: "[a2,e3,a3]", P: "[d4@7 c#4@4 ~ b3@7 ~@5 e4@8, ~@19 a3@12 ~]/2", Q: "[[d3,d4] [f#3,c#4], a3@63 ~]/4",
R: "[e3@2 ~ [f#3,a3], [g3,c4]@3 ~, ~ d3]/2", S: "[[d3,g3,b3]@3 [d3,f#3,a3]]/2", T: "[[d3,g3,b3]@3 [e3,a3,c#4]]/2",
U: "[f#3,a#3,c#4]@15 ~", V: "[b2,a3] [a2,b3], d4", W: "[d3,g3,b3]", X: "d4 c#4, [e3,a3]",
Y: "[g4@16 f#4@15 ~, [a3,d4]@31 ~]/2", Z: "[[g3,d4]@2 e4 d#4, b3@63 ~, ~ f#3]/4",
AA: "[[c4,e4]@32 [b3,d4]@31 ~, g3@63 ~]/4", AB: "[[c4,e4]@32 [b3,d4]@29 ~@3, g3@15 ~]/4", AC: "[b3 a#3, [f#3,c#4]]/2",
AD: "[~ e4@31 [b3,d4]@29 ~@3, g3@15 ~, c4@31 ~@33]/4", AE: "[[d4,g4]@2 f#4 [c4,e4]@2 [g3,c4]@3, ~@4 d4 ~@11]/2",
AF: "[[f#3,a3]@6 g3@7 ~@3, ~@3 e3@3 ~@2]/2", AG: "[[c4,e4,g4]@11 ~ [g3,d4]@34 ~@2, ~ c4@3]/3",
AH: "[[g3,b3,d4]@29 ~@3]/4", // G
})).s("gm_synth_strings_1").gain(0.4).pan(0.4)
// chords · distortion guitar
const distortion_guitar = note(`<
~@70 A@2 B@2 C D E@2 F@2 G H I@2 J@4 K@2 L@2 M@2 N O@3 P@2 Q@2 R S T@2 U@2 V@3 W X Y@2 Z AA AB AC AD B@2 C D E@2 AE@2
G H AF@6 AG AH AI AJ AK@3 AL AM@2 AN@2 AO@4 B@2 C D AP@2 AQ@2 AR@2 AS@2 AT@7
>`.pickRestart({
A: "[g4@6 g4@9 ~ f#4@12 d3@2 a2@2, d3@27 ~@5]/2",
B: "[~ g4@18 ~ [g2,g3] ~ a3 ~ [d4,g4]@6 a2@2, d4@5 ~@3, g2@17 ~@5 g2@7 ~@3]/2", C: "[b2,b3,e4]@15 ~",
D: "b2@6 ~@2 b3@7 ~, d#4@11 ~@5, b3 ~, ~@6 b2@9 ~",
E: "[[c3,g3,c4]@8 [c2,c3]@2 ~@2 [c3,g3]@15 ~ [c3,g3] ~ [c3,g3]@2, ~@6 c4@9 ~]/2", // C5 C C5
F: "[[g2,d3,g3]@9 [g5,d6] ~@2 d4@4, ~@5 [g4,d5]@3]/2", G: "[g3,d4]@11 ~ [g3,d4] ~ [g3,d4]@2, g2",
H: "[g2,g3]@6 [g2,g3] [a2,a3], d4@15 ~", // G A
// … 138 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.