0:00/0:00
// Buona fortuna — Pooh
// 120 bpm, 1/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 455 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 30.
setcpm(120/1)
// 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.
// chords · piano
const piano = note(`<
A@8 B@16 C@3 D@5 E@4 F@4 G@4 H I ~@2 J K@2 L J M N O N P Q J M R@2 J@2 S T U V W X@2 Y W Z ~@2 J K@2 L J M N O N P Q J
~ J K@2 L J M N O N P Q J M R@2 J@2 S T U V W AA@2 Y W AB ~@2 J K@2 L J M N O N P Q J ~ J K@2 L J M N O N P Q J M R@2
J@2 S T U V W AA@2 Y AC AD@2 AE AC AF@2 AE AG@2 AH@2 AI@2 AJ@2 AK@8 AG@2 AH@2 AI@2 AH@2 AL@6 AM AN@2 AO AP AQ AR@2
AG@2 AH@2 AI@2 AH@2 AS AT@7 AG@2 AH@2 AI@2 AH@2 AU@2 AV@5 AN@2 AO AP AQ AR@2 AW@4 AX@2 AY@2 ~@2 J K@2 L J M N O N P Q
J ~ J K@2 L J M N O N P Q J M R@2 J@2 S T U V W AA@2 Y AC AD@2 AE AC AF@2 AE AG@2 AH@2 AI@2 AJ@2 AK@8 AG@2 AH@2 AI@2
AH@2 AL@6 AM AN@2 AO AP AQ AR@2 AG@2 AH@2 AI@2 AH@2 AS AT@7 AG@2 AH@2 AI@2 AH@2 AU@2 AV@5 AN@2 AO AP AQ AR@2 AW@4 AX@2
AY@2 B@40 C@3 D@5 E@4 F@4 G@4 H AZ@3 ~ BA ~ BB ~@6
>`.pickRestart({
A: "[[g#4,b4,e5]@16 ~@16 [a4,c#5,f#5]@3 ~ [a4,c#5,f#5]@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 ~@8 [b4,d#5,g#5]@7 ~ [b4,d#5,g#5]@8 [b4,d#5,g#5]@8 ~@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 e2@8, e2@23 ~ e2@27 ~@5 e2@28 ~@4 e2@29 ~@11, ~@16 [g#4,b4,e5]@17 ~@95]/8", // E F#m G#m F#m E
B: "[[g#4,b4,e5]@9 ~@7 [g#4,b4,e5]@8 ~@8 [a4,c#5,f#5]@3 ~ [a4,c#5,f#5]@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 ~@8 [b4,d#5,g#5]@7 ~ [b4,d#5,g#5]@8 [b4,d#5,g#5]@8 ~@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 e2@8, e2@24 e2@27 ~@5 e2@28 ~@4 e2@29 ~@11]/8", // E F#m G#m F#m
C: "[[g#4,b4,e5]@9 ~@7 [g#4,b4,e5]@8 ~@8 [a4,c#5,f#5]@3 ~ [a4,c#5,f#5]@8 [a4,c#5,f#5]@4, e2 e2]/3", // E F#m
D: "[[a4,c#5,f#5]@8 ~@8 [b4,d#5,g#5]@7 ~ [b4,d#5,g#5]@8 [b4,d#5,g#5]@8 ~@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 e2@8, ~@8 e2@28 ~@4 e2@29 ~@11]/5", // F#m G#m F#m
E: "[~@8 [a4,c#5,e5]@8 [a4,c#5,e5]@8 [a4,c#5,e5]@16 [b4,d#5,f#5]@7 ~ [b4,d#5,f#5]@16, b1@59 ~@5]/4", // A B
F: "[~@8 [a4,c#5,e5]@8 [a4,c#5,e5]@8 [a4,c#5,e5]@11 ~@5 [d#5,f#5]@8 [b4,d#5,f#5]@13 ~@3, b1@59 ~@5]/4", // A D#m B
G: "[~@8 [g4,b4,d5]@8 [g4,b4,d5]@8 [g4,b4,d5]@7 ~@9 [a4,c#5,e5]@8 [a4,c#5,e5]@16, a1@29 ~@3]/4", // G A
H: "~ [g4,b4,d5], a1", I: "[g4,b4,d5]@8 [g4,b4,d5]@7 ~", J: "[b3,d4,f#4] ~@3 [b3,d4,f#4] ~@3",
K: "[[b3,d4,f#4]@3 ~@5 [a3,c#4,e4]@13 ~@3 [a3,c#4,e4]@5 ~@3]/2", L: "[b3,d4,f#4]@3 ~@5 [b3,d4,f#4]@8",
M: "[b3,d4,f#4]@3 ~@5 [b3,d4,f#4]@5 ~@3", N: "[a3,c#4,e4]@4 ~@4 [a3,c#4,e4]@3 ~@5",
O: "[a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~@5", P: "[a3,c#4,f#4]@3 ~@5 [a3,c#4,f#4]@2 ~@6",
Q: "[a3,c#4,f#4]@3 ~@5 [b3,d4,f#4]@3 ~@5", R: "[b3,d4,f#4]@3 ~@5 [b3,d4,f#4]@3 ~@5",
S: "[b3,e4,g#4]@4 ~@4 [b3,e4,g#4]@3 ~@5", T: "[b3,e4,g#4] ~ [a3,d4,f#4]@2", U: "~ [a3,d4,f#4]",
V: "[g#3,b3,e4]@2 ~@2 [g#3,b3,e4]@3 ~", W: "~ [g3,b3,d4]", X: "[[g3,b3,d4] ~@2 [a3,c#4,e4], ~@8 [g3,b3,d4]@23 ~]/2",
Y: "[a3,c#4,e4]", Z: "[g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~", AA: "[[g3,b3,d4] [g3,b3,d4]@2 [a3,c#4,e4]]/2",
AB: "[g3,b3,d4]@4 [g3,b3,d4]@3 ~", AC: "~ [a3,c#4,e4]", AD: "[[a3,c#4,e4] ~@2 [b3,d#4,f#4], ~ [a3,c#4,e4]@3]/2",
AE: "[b3,d#4,f#4]", AF: "[[a3,c#4,e4] ~@2 [b3,d#4,f#4], ~@8 [a3,c#4,e4]@21 ~@3]/2", AG: "[e2,g#3,b3,e4]/2",
AH: "[a3,c#4,f#4]/2", AI: "[e2,b3,d#4,g#4]/2", AJ: "[~@3 e2, [a3,c#4,f#4]]/2",
AK: "[[g#4,b4,e5]@16 ~@16 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 ~@8 [b4,d#5,g#5]@7 ~ [b4,d#5,g#5]@8 [b4,d#5,g#5]@8 ~@8 [a4,c#5,f#5]@4 [a4,c#5,f#5]@8 [a4,c#5,f#5]@4 ~@8 e2@8, e2@23 ~ e2@27 ~@5 e2@28 ~@4 e2@29 ~@11, ~@16 [g#4,b4,e5]@17 ~@79 [a4,c#5,f#5]@16]/8", // E F#m G#m F#m E F#m
AL: "[[e2,e3,g#3,b3,e4]@16 [d#2,d#3,f#3,b3,d#4]@16 [c#2,c#3,e3,g#3,c#4]@15 ~]/6", AM: "b2@3 ~ b2@3 ~",
AN: "[b2@4 ~@4 b2@3 ~ b2@4, ~ [f#3,b3,d#4]@2 ~]/2", AO: "[f#3,b3,d#4] b2", AP: "~@4 b2@3 ~, [f#3,b3,d#4]",
AQ: "~ [f#3,b3,d#4], b2@13 ~@3", AR: "[~@4 [f#3,b3,d#4]@3 ~, b2@3 ~]/2", AS: "[e2,g#4,b4,e5]",
AT: "[~@4 [a4,c#5,f#5,a5,c#6,f#6] [a4,c#5,f#5,a5,c#6,f#6]@2 [a4,c#5,f#5,a5,c#6,f#6] ~@4 [b4,d#5,g#5,b5,d#6,g#6]@2 [b4,d#5,g#5,b5,d#6,g#6]@2 ~@4 [a4,c#5,f#5,a5,c#6,f#6] [a4,c#5,f#5,a5,c#6,f#6]@2 [a4,c#5,f#5,a5,c#6,f#6] ~@2 e2@2, [g#4,b4,e5,g#5,b5,e6]@17 ~@15 [a4,c#5,f#5,a5,c#6,f#6]@17 ~@15 [b4,d#5,g#5,b5,d#6,g#6]@15 ~@17 [a4,c#5,f#5]@16, ~@8 [e2,e3]@27 ~@5 [e2,e3]@28 ~@4 [e2,e3]@29 ~@11]/7", // F#m G#m F#m E F#m G#m F#m E
AU: "[e2,e3,g#3,b3,e4]/2", AV: "[[d#2,d#3,f#3,b3,d#4]@16 [c#2,c#3,e3,g#3,c#4]@16 b2@4 b2@3 ~]/5",
AW: "[~@8 [g3,b3,d4]@2 ~@6 [g3,d4] ~@7 [g3,b3,d4]@16 ~@8 [g3,b3,d4]@16, a2@17 ~@3 a2@10 ~@2, ~@8 b3 ~@23]/4", // G G5 G
AX: "[~@4 [g3,b3,d4] ~@3 [g3,b3] ~@3 [g3,b3,d4]@4, a2@15 ~, ~@16 d4 ~@7 c#4 ~@7]/2", // G
AY: "[~@8 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@15 ~, a2@7 ~]/2", // A
AZ: "[[g4,b4,d5]@8 [g4,b4,d5]@24 [e2,e3,b3]@4 [e2,e3,b3]@3 ~ [e2,e3,b3]@3 ~@5]/3", BA: "~@4 [e2,e3,b3] ~@3",
BB: "[e2,e3,g#3,b3]@3 ~ [e2,e3,g#3,b3]@3 ~ [e2,e3,g#3,b3]@3 ~@5", // E
})).s("gm_piano").gain(0.36).pan(0.3)
// chords · pad warm
const pad_warm = note(`<
~@173 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2 D@2 E@2 F@8 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2 D@2 G@2 H@8
~@64 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2 D@2 E@2 F@8 A@2 B@2 C@2 B@2 A@2 B@2 C@2 I@2 A@2 B@2 C@2 B@2 J@2 D@2 E@2 K@8
~@40 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 L@3 M N@4 O@3 P Q@2 ~@5 R@7
>`.pickRestart({
A: "[[e3,g#3,b3]@15 ~]/2", B: "[[f#3,a3,c#4]@31 ~]/2", C: "[[g#3,b3,d#4]@15 ~]/2", D: "[[d#3,f#3,b3]@29 ~@3]/2",
E: "[[c#3,e3,g#3]@29 ~@3]/2", F: "[~@68 d#4@57 ~@3, [d#3,f#3,b3]@123 ~@5]/8", G: "[[e3,g#3,c#4]@13 ~@3]/2",
H: "[~@32 f#4@31 ~, [f#3,b3,d#4]@31 ~]/8", I: "[[f#3,a3,c#4]@7 ~]/2", J: "[[e3,g#3,b3]@7 ~]/2",
K: "[[d#3,f#3,b3]@123 ~@5]/8", L: "[[a3,c#4,e4]@11 ~]/3", M: "[b3,d#4,f#4]@15 ~",
N: "[~@4 [a3,c#4,e4]@39 ~ [b3,d#4,f#4]@15 ~@5]/4", O: "[~@4 [b3,d4,g4]@37 ~@7]/3", P: "[c#4,e4,a4]",
Q: "[~@4 [b3,d4,g4]@11 ~]/2", R: "[[e3,g#3,b3,e4]@101 ~@11]/7",
})).s("gm_pad_warm").gain(0.32).pan(0)
// bass · fretless bass
const bass = note(`<
~@8 A@8 B C D E B C D E B C D E B C D F G@4 H@3 ~ I@4 J@2 K L M N ~ O P Q R S T U V N W X@3 Y Z@3 AA AB AC AD AE AD AC
K AF M N ~ O P Q R S T U V N AG M N ~ O P Q R S T U V N W X@3 Y Z@3 AA AB AC AD AE AD AC K AF M N ~ O P Q R S T U V N
AG M N ~ O P Q R S T U V N W X@3 Y Z@3 AA AB AC AD AE AH AI AJ AK AH AL@2 AM ~@8 B C D E B C D E AN@8 AO@2 AP@2 AQ@2
AR@3 AS AR@3 AT B C D E B C D E B C D E B C D E B C D E B C D E AO@2 AP@2 AQ@2 AR@3 AS AR@3 AT AU AV AW AU AX AV AH AY
AH L M N ~ O P Q R S T U V N AG M N ~ O P Q R S T U V N W X@3 Y Z@3 AA AB AC AD AE AH AI AJ AK AH AL@2 AM ~@8 B C D E
B C D E AN@8 AO@2 AP@2 AQ@2 AR@3 AS AR@3 AT B C D E B C D E B C D E B C D E B C D E B C D E AO@2 AP@2 AQ@2 AR@3 AS
AR@3 AT AU AV AW AU AX AV AH AY ~@8 AZ@4 BA@4 B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E G@4 H@3
~ I@4 BB@4 ~ BC ~ BD ~@6
>`.pickRestart({
A: "[e2@127 ~]/8", B: "d2@4 e2@3 ~@9", C: "e2@4 ~@8 e2@3 ~", D: "~@4 e2@3 ~@5 e2@2 ~@2",
E: "e2@3 ~@5 e2@2 ~@2 e2@3 ~", F: "e2@13 ~@3", G: "[b1@38 ~@2 a2@21 ~@3]/4", H: "[b1@15 ~]/3",
I: "[a1@35 ~ g2@22 ~@6]/4", J: "[a1@15 ~]/2", K: "~@4 a1 ~@3", L: "b1@7 ~ c#2@7 ~", M: "d2 ~@3", N: "~@4 b1@3 ~",
O: "b1 ~", P: "a1@7 ~@9", Q: "g1@9 ~@7", R: "~ g1", S: "~ a1", T: "g1 e1", U: "f#1 a1", V: "c#2 b1", W: "a1",
X: "[g#1@7 ~]/3", Y: "g#1 g1 f#1 f1", Z: "[e1@21 ~@3 f#1@20 ~@4]/3", AA: "g#1", AB: "~@8 g1@3 ~@5, a1",
AC: "g1 ~@3 g1@4", AD: "~@2 g1 ~", AE: "g2", AF: "b1@2 c#2 ~", AG: "c#2", AH: "~@2 a1 ~", AI: "a1@3 ~@5 a1@8",
AJ: "~@4 b1 ~@3", AK: "b2@9 ~@7", AL: "[a1@3 ~@5 a1@16 b2@3 ~@5]/2", AM: "b2@7 ~", AN: "[e2@123 ~@5]/8",
AO: "[e2@15 ~]/2", AP: "[d#2@31 ~]/2", AQ: "c#2/2", AR: "b1!2", AS: "b1 b1@3", AT: "b1@15 ~", AU: "a1 ~ a1 ~",
AV: "a1 ~ a1@2", AW: "~@4 a1@3 ~", AX: "a1@3 ~@5 a1@4 ~@4", AY: "a1@5 ~@11", AZ: "[d2@2 e2@13 ~]/2",
BA: "[d2@3 ~ e2@28 d2@4 e2@26 ~@2]/4", BB: "[a1@48 e2@4 e2@3 ~ e2@3 ~@5]/4", BC: "~@4 e2 ~@3",
BD: "e2@4 e2@3 ~ e2@3 ~@5",
})).s("gm_fretless_bass").gain(0.42)
// chords · overdriven guitar
const overdriven_guitar = note(`<
~@7 A B@8 C@3 D E@2 D@2 F@2 G H I G J K L M@2 N O M@2 N P Q@2 R P S T U V W@2 X Y Z AA AB AC AD AE AF@2 AG@3 AH AI@3
AJ AK AL@2 R P AM T AN V W@2 AO Y Z AA AB AC AD AE AP@2 V W@2 X Y Z AA AB AC AD AE AF@2 AG@3 AH AI@3 AJ AQ ~@5 T AN V
W@2 AO Y Z AA AB AC AD AE AP@2 V W@2 X Y Z AA AB AC AD AE AF@2 AG@3 AH AI@3 AJ AQ ~@11 C@3 D E@2 D@2 AR AS AT AU@2 AV
AW AX C@3 D E@2 D@2 AY@2 AZ@4 BA@8 BB@6 BC@2 BD@2 BE@2 BF@6 BG@6 BH@2 BI@4 BA@8 BJ BK@4 Q@2 BL T AN V W@2 AO Y Z AA AB
AC AD AE AP@2 V W@2 X Y Z AA AB AC AD AE AF@2 AG@3 AH AI@3 AJ AQ ~@11 C@3 D E@2 D@2 AR AS AT AU@2 AV AW AX C@3 D E@2
D@2 AY@2 AZ@4 BA@8 BB@6 BC@2 BD@2 BE@2 BF@6 BG@6 BH@2 BI@4 BA@8 BJ BK@4 Q@2 BL C@3 D E@2 D@2 C@3 D E@2 D@2 F@2 G H BM
BN BO BP F@2 G H BQ@2 BR BS@2 BT BU BV BW BX BY BZ CA BU CB CC CD BX BY CE@2 M@2 N O M@2 N P Q@2 R P CF@3 CG@2 CH CI
~@6
>`.pickRestart({
A: "~ b4", B: "[e5@15 b4]/8",
C: "[e5@4 e5@4 b4@3 ~@5 e5@2 ~@2 e5@4 b4@2 ~@6 e5@2 ~@2 e5@4 b4@2 ~@2 b4@4, ~@12 b4@7 ~@9 b4@8 ~@12]/3",
D: "e5 ~ e5@2 b4 ~ b4@2", E: "[e5 ~ e5@2 b4 ~@3 e5 ~ e5@2 b4 ~ b4@2, ~@3 b4@2 ~@3]/2",
F: "[[e5,g#5] e5 b4 g#5 e5 [b4,e5] g#5 [b4,e5], ~@12 b4@7 ~@5 b4@2 ~@6]/2", G: "b4 [e5,g#5] e5 b4, e5 ~@3 b4 ~@3",
H: "g#5 e5 b4 [b4,g#5], e5 ~@7", I: "e5 [b4,e5] g#5 [b4,e5], ~@4 b4 ~@3", J: "g#5 e5 b4 e5, e5 ~@7", K: "g#5",
L: "~@8 [c#4,e4,a4] ~@7", M: "[[c#4,e4,a4] ~@3 [c#4,e4,a4]@11 ~]/2", N: "[d#4,f#4,b4]", O: "~@8 [c#4,e4,a4]@3 ~@5",
P: "~@4 [b3,d4,g4] ~@3", Q: "[[b3,d4,g4]@3 ~@5 [b3,d4,g4]@22 ~@2]/2", R: "[c#4,e4,a4]@7 ~",
S: "[b3,d4,g4]@3 ~@5 [b3,d4,g4]@5 ~@3", T: "~@4 a3 ~@3", U: "b3@7 ~ c#4@7 ~", V: "d4@3 ~@5 f#3@2 ~@6",
W: "[d4@3 ~@5 c#4@23 ~]/2", X: "d4@15 ~", Y: "a3@7 ~@9", Z: "g3@2 [e4,f#4] ~", AA: "f#4@13 ~@3",
AB: "e4 ~@7 e4@4 ~@4", AC: "e4@4 e4@4 e4@3 ~@5", AD: "f#3@8 a3@5 ~@3", AE: "c#4 b3",
AF: "[~@8 a3@7 ~, ~@8 b3@17 ~@7]/2", AG: "[g#3@37 ~@11]/3", AH: "g#3 g3 f#3 f3", AI: "[e3@23 ~ f#3@20 ~@4]/3",
AJ: "g#3@5 ~@3", AK: "~@8 [b3,d4,g4]@3 ~@5, a3", AL: "[[b3,d4,g4]@2 ~@6 [b3,d4,g4]@21 ~@3]/2",
AM: "[b3,d4,g4]@2 ~@6 [b3,d4,g4]@7 ~", AN: "b3@8 c#4@7 ~", AO: "d4@7 ~@9", AP: "[~@16 c#4@9 ~@7, ~@8 b3@17 ~@7]/2",
AQ: "a3@7 ~", AR: "[e4,g#4]!2", AS: "[e4,g#4]@2 [e4,g#4]!2", AT: "f#4 [e4,f#4]@2 [f#4,a4], a4@9 ~@7",
AU: "[[f#4,a4]@2 [f#4,a4] [f#4,a4]@3 [g#4,b4]@2]/2", AV: "~ [g#4,b4]!3", AW: "b4 f#4@2 [f#4,a4]", AX: "[f#4,a4]@3 ~",
AY: "[g#3,e4]/2", AZ: "[[f#3,d#4]@32 [e3,c#4]@31 ~]/4", BA: "[[f#3,b3]@117 ~@11]/8",
BB: "[e3 e3@2 e3@2 e3@3 f#3@2 f#3!2 f#3@2 f#3@2 g#3!4 g#3 g#3@3, g#3 a3 b3]/6", BC: "[a3!4 a3@4, c#4]/2",
BD: "[e3 e3@2 e3 e3@2 e3@2, g#3]/2", BE: "[f#3!4 f#3@2 f#3!2, a3]/2",
BF: "[g#3 g#3@2 g#3 g#3 g#3@2 a3 a3 a3@2 a3 a3@3 e3 e3 e3@2 e3 e3@2 e3@2, b3@32 c#4@33 ~@31, ~@28 g#3@8 ~@28 g#3@31 ~]/6",
BG: "[[e3,f#3]@2 f#3@4 f#3@2 f#3@2 f#3@2 f#3@2 f#3@2 g#3@2 g#3@2 g#3@2 g#3@2 g#3@2 g#3@2 g#3@4 a3@4 a3@2 a3@2 a3@7 ~, a3@32 b3@32 c#4@31 ~]/6", // Esus2
BH: "[e3,g#3,e4]/2", BI: "[[d#3,f#3,d#4] [c#3,e3,c#4]]/4", BJ: "[g3,b3,d4]!2",
BK: "[[g3,b3,d4]@4 [g3,b3,d4]@22 ~@2 [b3,d4,g4] ~@3]/4", BL: "[c#4,e4,a4]@7 ~@9",
BM: "[e5,g#5] [b4,e5] [b4,g#5] [b4,e5,g#5]", BN: "[b4,e5] [b4,e5,g#5] [e5,g#5] [b4,e5], ~@4 b4 ~@3",
BO: "g#5 e5 b4 g#5, e5 ~@7", BP: "e5 b4 g#5 e5",
BQ: "[g#5 e5 b4 g#4 e5 [b4,e5] g#4 [e4,b4], e5@2 ~@10 b4@7 ~@5 b4@2 ~@6]/2", BR: "b4 [g#4,e5] e4 b3, e5 ~@3 b4 ~@3",
BS: "[g#4@4 e4@3 ~ b3@3 ~@5 g#4@4 g#4@4 g#4@4 g#4@4, ~@12 g#3@11 ~@9]/2", BT: "g#4!4", BU: "g#4 f#4 e4 c#4",
BV: "b3 a3 f#3 g#3", BW: "b3 c#4 e4 b3", BX: "b3 c#4 e4 f#4", BY: "e4 f#4 g#4 b4", BZ: "f#4 g#4 b4 c#5",
CA: "c#5 b4 g#4 f#4", CB: "f#4 e4 c#4 b3", CC: "e4 c#4 b3 g#3", CD: "f#3 g#3 b3 c#4",
CE: "[g#4@4 b4@4 c#5@4 e5@12 [c#4,e4,a4] ~@7]/2", CF: "[[b3,d4,g4]@3 ~@5 [b3,d4,g4]@24 e5@4 e5@4 b4@4 b4@4]/3",
CG: "e5!2 b4!2", CH: "e5!2 b5 g#5", CI: "e5!3 ~",
})).s("gm_overdriven_guitar").gain(0.24).pan(0.7)
// chords · distortion guitar
const distortion_guitar = note(`<
~@111 A B@2 C A D ~@36 A B@2 C E F@2 G H F@2 I ~@120 A B@2 C E F@2 G H F@2 I ~@158
>`.pickRestart({
A: "~@8 [b3,d4,g4]@3 ~@5", B: "[[b3,d4,g4]@2 ~@6 [b3,d4,g4]@19 ~@5]/2", C: "[c#4,e4,a4]@15 ~",
D: "[b3,d4,g4]@2 ~@6 [b3,d4,g4]@7 ~", E: "~@2 [c#4,e4,a4] ~", F: "[[c#4,e4] ~@3 [c#4,e4,a4]@9 ~@3, a4 ~@7]/2",
G: "[d#4,f#4,b4]", H: "~@8 [c#4,e4,g#4]@3 ~@5", I: "[d#4,f#4,b4]@13 ~@3",
})).s("gm_distortion_guitar").gain(0.24).pan(0.7)
// chords · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@161 [~@8 a4@3 ~@5] ~@131 [~@8 a4@3 ~@5] ~@161>")
.s("gm_distortion_guitar").gain(0.12).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
~@32 A B@2 ~ A B@2 ~ A B@2 ~ A B ~@2 A B@2 ~ A@2 ~ C B C B@2 ~ A B@2 D ~ A C ~@9 A B@2 ~ A@2 ~ C B C B@2 ~ A B@2 ~ A@2
~ C B C B@2 ~ A B@2 D ~ A C ~@9 A B@2 ~ A@2 ~ C B C B@2 ~ A B@2 ~ A@2 ~ C B C B@2 ~ A B@2 D ~ A C ~ C B@2 D C B@2 D
B@3 ~ A ~@7 A B E B E D@2 ~ A ~@7 A ~ A ~ A ~ C@4 B A C ~ A B E B E D@2 ~ A B E B E D@2 ~ A B E B E D@2 ~ A ~ A ~ A ~
C@4 B A C ~ C B@3 C B@2 ~@3 A B@2 ~ A@2 ~ C B C B@2 ~ A B@2 ~ A@2 ~ C B C B@2 ~ A B@2 D ~ A C ~ C B@2 D C B@2 D B@3 ~
A ~@7 A B E B E D@2 ~ A ~@7 A ~ A ~ A ~ C@4 B A C ~ A B E B E D@2 ~ A B E B E D@2 ~ A B E B E D@2 ~ A ~ A ~ A ~ C@4 B
A C ~ C B@3 C B@2 ~@33 A B E B A ~ E B A B E B A ~ E B A B@2 ~ A B@2 ~ A B@2 ~ A B ~ F ~ B ~@8
>`.pickRestart({
A: "x", B: "~ x", C: "x!2", D: "~@3 x", E: "x ~@2 x", F: "x!3 ~",
})).gain(0.44)
// drums · snare
const snare = s("sd").struct(`<
~@35 A ~@3 A ~ A ~ A ~ A ~@3 A ~ A ~@2 A ~ A ~ A ~ A ~ A ~ A ~ B ~ A ~@9 A ~ A ~@2 A ~ A ~ A ~ A ~ A ~ A ~@2 A ~ A ~ A
~ A ~ A ~ A ~ B ~ A ~@9 A ~ A ~@2 A ~ A ~ A ~ A ~ A ~ A ~@2 A ~ A ~ A ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9
A ~ A ~ A ~ A ~@9 A ~ A ~ A ~@4 A C ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@4 A C ~ A ~ A ~
A ~ A D A ~@3 A ~ A ~@2 A ~ A ~ A ~ A ~ A ~ A ~@2 A ~ A ~ A ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A
~ A ~@9 A ~ A ~ A ~@4 A C ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@4 A C ~ A ~ A ~ A ~ A D A
~@30 E@2 ~ A ~ A ~ A ~ A ~ A ~ A ~ A E@2 ~@3 A ~@3 A ~ A ~ A ~ A ~@5 F ~@6
>`.pickRestart({
A: "x", B: "~ x ~@2", C: "~ x", D: "~@2 x!2", E: "x!4", F: "x!3 ~",
})).gain(0.55)
// drums · low tom
const low_tom = s("lt").struct(`<
~@39 A ~@117 B ~@6 C ~@7 C ~@15 C ~@13 D ~@37 D ~@48 B ~@6 C ~@7 C ~@15 C ~@13 D ~@37 D ~@63 A ~@18
>`.pickRestart({
A: "~ x", B: "x", C: "~@3 x", D: "~@2 x!2",
})).gain(0.38)
// drums · hihat
const hihat = s("hh").struct(`<
~@16 A B A B A B A C A B A B A B A ~ D@14 ~@2 B C@3 D B D B C D@2 ~@2 D C E C B C@3 B A ~ F G C D ~ B C@3 D B D B C
D@2 ~@2 B C@3 D B D B C D@2 ~@2 D C E C B C@3 B A ~ F G C D ~ B C@3 D B D B C D@2 ~@2 B C@3 D B D B C D@2 ~@2 D C E C
B C@3 B A C H A B@2 D B@2 C@2 G B A B A B A C A B A B A B A C A B A B A B A C D@6 B@7 G A B A B A B A C A B A B A B A
C A B A B A B A C D@6 B@7 G ~ B C D@2 B C@2 ~@2 B C@3 D B D B C D@2 ~@2 B C@3 D B D B C D@2 ~@2 D C E C B C@3 B A C H
A B@2 D B@2 C@2 G B A B A B A C A B A B A B A C A B A B A B A C D@6 B@7 G A B A B A B A C A B A B A B A C A B A B A B
A C D@6 B@7 G ~ B C D@2 B C@2 ~@16 A B A B A B A C A B A B A B A C A@3 B A B A C A B A B A B A C D@14 ~@12
>`.pickRestart({
A: "x ~ x!2", B: "x!2", C: "~ x", D: "x", E: "~ x!2 ~", F: "~@3 x", G: "~@2 x!2", H: "x ~@2 x",
})).gain(0.27)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@35 A ~@2 B C ~@3 D ~@116 B ~@2 B E ~@7 D ~@15 D ~@12 F E ~@36 F E ~@51 B ~@2 B E ~@7 D ~@15 D ~@12 F E ~@36 F E ~@59
A ~@2 B C ~@3 D ~@14
>`.pickRestart({
A: "~@2 x!2", B: "~ x ~@2", C: "x", D: "~ x", E: "x!2", F: "~@3 x",
})).gain(0.49)
// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@201 A ~@37 A ~@93 A ~@37 A ~@83>".pickRestart({
A: "~@3 x",
// … 69 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.