0:00/0:00
// She Has a Girlfriend Now — Reel Big Fish
// 136 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 98 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(136/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.
// other · trumpet
const trumpet = note(`<
A B C D C E C D F G H I H J ~@2 K L ~@8 M N O N M N ~@2 H P H Q ~ R@2 L C G C G C G C S ~@8 M T M N U@2 ~@2 H I H V
~@2 W B X@3 ~@4 Y Z AA@2 ~ AB AC AD AE AF AG@2 AH AI AJ AK@2
>`.pickRestart({
A: "c5@5 ~@19", B: "f4@2 ~ f4@2 ~@4 g4@2 ~ g4@6 ~@6", C: "~@6 c5@3 g4@3 a4@3 c5@4 ~@2 a4@3",
D: "~@3 g4@6 c4@3 e4@2 ~ e4@3 d4@2 c4@4", E: "~@3 g4@5 ~ c4@2 ~ [d#4,e4]@2 ~ e4@3 d4@3 c4@3",
F: "~@2 c5 g4 a4 c5 ~ a4", G: "~@3 g4@5 ~ c4@3 e4@2 ~ e4@3 d4@3 c4@3", H: "~@18 c4@2 ~ c4@2 ~",
I: "f4@3 e4@2 ~ f4@2 ~ d4@12 ~@3", J: "a4@3 g#4@2 ~ a4@2 ~ c5@3 b4@10 ~@2", K: "c5 ~@5",
L: "f4@2 ~ f4@3 ~@3 g4@2 ~ g4@8 ~@4", M: "~@3 e5@3 ~@3 e5@3 ~@3 e5@3 ~@3 e5@2 ~",
N: "c5@3 b4@2 c5@2 ~@2 e5@2 ~ d5@10 ~@2", O: "~@2 e5@4 ~@3 e5@4 ~@2 e5@3 ~@3 e5@2 ~", P: "f4@3 e4@2 f4@2 ~@2 d4@14 ~",
Q: "a4@3 g#4@3 a4@2 ~ c5@3 b4@9 ~@3", R: "[~@23 c5@4 ~@21]/2", S: "~@3 g4@5 c4@3 e4@2 ~ e4@3 ~ d4@3 c4@3",
T: "c5@3 b4@2 ~@4 e5@2 ~ d5@9 ~@3", U: "[~@3 e5@3 ~@3 e5@3 ~@3 e5@4 ~ e5@2 ~ c5@3 b4@3 c5@2 ~ e5@3 ~ d5@10 ~@2]/2",
V: "a4@3 g#4@3 a4@2 ~ c5@2 ~ b4@11 ~", W: "c5 ~@7", X: "[~@23 c5@16 ~@4 b4@3 ~ c5@3 ~@22]/3", Y: "~@19 c5@5",
Z: "~@6 c5@3 ~ b4@3 ~ c5@8 ~@2", AA: "[~@4 c5@3 ~@10 c5@10 ~ c5@3 ~@2 b4@3 ~ c5@10 ~]/2",
AB: "~@3 c5@3 ~@2 b4@3 ~ c5@10 ~@2", AC: "~@14 c5@7 ~@3", AD: "~@2 c5@3 ~ b4@3 ~@2 c5@13", AE: "~@12 c5@7 ~@5",
AF: "c5@2 ~@3 b4@2 ~@2 c5@8 ~@7", AG: "[~@11 c5@6 ~@6 c5@3 ~ b4@3 ~@2 c5@10 ~@6]/2", AH: "~@10 e5@7 ~@5 e5@2",
AI: "~@2 d5@3 ~@2 e5@11 ~@6", AJ: "~@9 c5@6 ~@5 f4@3 ~", AK: "[~ e4@3 ~ c4@23 ~@20]/2",
})).s("gm_trumpet").gain(0.57)
// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
A B C D E F E G E D E H I D E D A J@2 K L M N O C D E D P@3 Q R S L T E T E U V W@2 T C T X@2 E D E T E D E D E D E
Y@4 Z@2 AA@2 D AB D E D V AC AD AE@2 AF AG AH AI@2 AJ@4 AK@2 AL AM AN AO@2 AP@2 AQ AR@2
>`.pickRestart({
A: "[c3,g3,c4]@5 ~ [c3,c4]@3 g2@3 [a2,a3]@3 [c3,c4]@7 ~@2, ~@9 g3@2 ~@13", // C5 C A C
B: "[f2,c3,f3]@2 ~@2 g#3 ~@4 [g2,a#2,d3,g3]@2 ~ [g2,d3]@7 ~@5, ~ [f2,c3,f3] ~@2 g3@3 ~", // F5 Gm G5 F5
C: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@3", // C5 A5
D: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~", // F5 G5
E: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@2 ~", // C5 A5
F: "f2 ~@2 f2@3 [c3,d3,f3,g3]@3 f2@2 ~ g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~", // Csus4 G5
G: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 ~@3 g2@2 ~, ~@18 [d3,g3]@5 ~", // F5 G5
H: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,e3,g3]@3 g2@2 ~", // F5 Em7
I: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@2 ~, ~@9 g3 ~@2", // C5 A5
J: "[[f2,c3,f3]@2 ~ [f2,c3,f3]@3 ~@3 [g2,d3,g3]@2 ~ g2@12 c3@2 ~ c3@3 ~@3 c3@2 ~ a2@2 ~ a2@3 ~@3 a2@3, ~@6 g3@8 ~ [g3,c4]@4 ~@5, ~@4 d3@3 ~@7 [e3,a3]@2]/2", // F5 G5 C5 A5
K: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 ~@2 g2@2 ~@2, ~@9 [d3,g3]@2 ~", // F5 G5
L: "c3@2 ~ c3@3 ~@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@2 ~, ~@6 [g3,c4]@5 ~@13", // A5 C5
M: "f2@2 ~ f2@3 ~@2 f2@2 ~@2 g2@2 ~ g2@2 [d3,g3]@3 g2@3 ~, ~@3 [c3,f3]@2 ~@7", // G5 F5
N: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 [a2,b2]@2 ~", // C5 A5 Asus2
O: "f2@2 ~ f2@3 ~@2 f2@3 ~ g2@2 ~ g2@3 [d3,g3]@3 g2@3, ~@3 [c3,f3]@2 ~@7", // G5 F5
P: "[c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 a2@3 ~ e3@3 a2@2 f2@2 ~ f2@3 ~ c3@2 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@3 c3@2 ~@2 c3@2 ~ g3@2 c3@2 ~ a2 ~@3 a2@3 ~@2 a2@3 ~, ~@17 a3@4 ~@32 c4@3 ~@10 [e3,a3]@4 ~@2]/3", // C5 G5 A5
Q: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@2 g2@2 ~@2", R: "[f2,c3,f3]@11 ~", S: "[g2,d3,g3]",
T: "f2@2 ~ f2@3 [c3,f3]@3 f2@2 ~ g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~", // F5 G5
U: "f2@2 f2@3 ~ [c3,f3]@3 f2@2 ~ g2@2 ~ g2@3 [d3,g3]@2 g2@2 ~@2", // F5 G5
V: "[c3,g3,c4]@4 ~@2 [c3,c4]@3 [g2,g3]@3 [a2,a3]@3 [c3,c4]@6 ~@3", // C5 C G A C
W: "[~ c3@2 [f2,c3,f3]@3 ~@3 [g2,d3,g3]@2 ~ [g2,d3]@9 ~@2 c3@2 ~@2 c3@3 ~@3 c3@2 ~ a2@2 ~ a2@3 ~@3 a2@3, [f2,f3]@2 ~@10 g3@11 ~@7 [g3,c4]@6 ~@6 [e3,a3]@5 ~]/2", // F5 G5 F C5 A5
X: "[c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@2 f2@2 ~@2 f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~]/2", // C5 A5 F5 G5
Y: "[f2@2 ~ f2@3 [c3,f3]@2 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@3 c3@2 ~ c3@3 ~ g3@3 c3 ~@2 a2@3 a2@2 [e3,a3]@3 a2@3 f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2 ~@3 g2@3 ~@2 g2@3 c3@2 ~ c3@4 ~@2 c3@2 ~@2 a2@2 a2@3 ~ d3@2 ~ a2@2 ~, ~@29 c4@4 ~@33 [d3,g3]@4 ~@8 [g3,c4]@4 ~@8 [e3,a3]@5 ~]/4", // F5 G5 A5 F5 G5 C5 A5
Z: "[f2@2 ~ f2@3 ~@2 f2@4 g2@2 ~ g2@3 [d3,e3,g3]@2 g2@2 ~@2 [c3,f3]@20 ~@4, ~@6 [c3,f3]@4 ~@13 f2@20 ~@5]/2", // Em7 F5
AA: "[[g2,d3,g3]@22 ~ c3@2 ~@2 c3@3 ~@3 c3@2 ~ a2@2 ~ a2@3 ~@3 a2@3, ~@30 [g3,c4]@5 ~@7 [e3,a3]@5 ~]/2", // G5 C5 A5
AB: "c3@2 c3@4 [g3,c4]@3 c3@2 ~ a2@2 a2@4 [e3,a3]@3 a2@2 ~", // C5 A5
AC: "[f2,c3,f3]@2 ~ [c3,f3]@3 ~@2 g2 [d3,g3]@2 ~ [d3,g3]@8 ~@4, ~@2 f2@3 ~@6 g2@9 ~@4", // F5 G5
AD: "[c3,g3,c4] ~ [c3,g3,c4]@2 ~ [c3,c4]@2 ~ [c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~, ~@2 g3 ~@9", // C5 C C5 A5
AE: "[f3@4 ~ [f2,c3,f3]@2 ~ [f2,c3,f3]@2 ~ [g2,d3,g3]@5 ~ [g2,d3,g3]@2 ~@4 g3@2 g3@2 [c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [f2,c3]@2, f2@2 ~@21 [c3,c4]@4 ~@19 f3 ~]/2", // F5 G5 C5 A5 F5 C
AF: "f3@2 [f2,c3,f3]@2 ~ [f2,c3,f3] ~ f3 c3 ~ [g2,d3]@2 ~@2 f2@2 ~ [g2,d3,g3]@2 ~@2 [c3,g3] ~ c3, ~@9 g3@3 ~ [c3,f3]@3 ~@5 c4@3, ~@11 g3", // F5 G5 C5 F5
AG: "~@2 c3@2 [c3,g3,c4]@2 ~@2 c3@2 ~ [e3,a3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~@2 [f2,c3,f3]@2 ~, ~ [g3,c4]@2 ~@4 [g3,c4]@2 ~@15", // C5 A5 F5 C5
AH: "~ f3@2 ~ [f2,c3,f3]@2 ~ [f2,c3,f3] ~ [g2,d3,g3]@3 ~ g3@2 ~ g3 ~@3 [c3,g3,c4]@3 ~, [f2,c3]@2 ~@13 [g2,d3]@2 ~@7", // F5 G5 C5 F5 G5
AI: "[[c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~@2 g3 ~@2 [a2,e3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [c3,f3] ~ f3@2 ~ [f2,f3]@2 ~ c3@2 f3 ~ [g2,d3,g3]@4 ~ [c3,f3]@4 [d3,g3]@2 ~ [c3,g3,c4]@5, ~@6 [c3,c4]@2 ~ a3@2 ~@8 f2@2 ~@2 c3@2 ~ [f2,f3]@2 ~@8 f2@6 ~@6]/2", // C5 A5 F5 F G5 F5 G5 C5 …
AJ: "[[c3,g3,c4]@3 ~@3 [a2,e3,a3]@7 ~@2 [f2,c3]@7 ~ c3@5 ~@2 d3@3 ~ [f2,c3,f3]@3 ~ [d3,g3]@2 ~@2 c3@4 ~ c3@4 ~@2 e3@7 ~@2 [f2,c3]@5 ~ c3 ~@2 c3@2 [f2,c3]@2 ~ [g2,d3,g3]@3 ~@2 [f2,c3,f3]@2 ~@2 [g2,d3,g3]@2 ~ [c3,g3,c4]@6 ~@2, ~@15 f3@13 ~@13 [g3,c4]@10 ~ [a2,a3]@7 ~@3 f3@10 ~@24, ~@22 f2@5 ~@2 [g2,g3]@4 ~@4 f2@2 ~@2 d4@2 ~@24 f2@2 ~ f2@2 ~@24]/4", // C5 A5 F5 G5 F5 G5 F5 G5 …
AK: "[~@3 [a2,e3,a3]@5 ~@4 [f2,c3,f3]@4 ~@4 [f2,c3,f3] ~@2 [f2,c3,f3]@2 ~@2 [g2,d3,g3]@4 ~ a#2 ~@3 [g2,d3,g3]@2 ~ [c3,g3,c4]@6 ~@3, ~@31 [f2,c3,f3,g3]@3 ~@5 d3@2 ~@7]/2", // A5 F5 G5 C5 Fsus2
AL: "~@2 [a2,e3,a3]@5 ~@4 f3@7 f3@4 ~@2, ~@10 f2@11 ~@3, ~@11 c3@12 ~", // A5
AM: "~ [g2,d3,g3]@3 ~@2 [f2,c3,f3]@2 ~@2 [g2,d3,g3] ~@3 c4@6 ~@4, ~@13 [c3,g3]@7 ~@4", // G5 F5 G5 C5
AN: "~ [a2,e3,a3]@5 ~@4 [c3,f3]@9 ~@5, ~@3 f2@3 ~@2", // A5 F5
AO: "[[g2,d3,g3]@3 ~ [f2,c3,f3]@2 ~@2 [g2,d3,f3,g3]@2 ~@2 [c3,g3,c4]@6 ~@5 [e3,a3]@3 ~@6 [f2,c3,f3]@9 ~@5 [g2,d3,g3]@2, ~@12 b3 ~@10 a2@5 ~@4 e3 ~@15]/2", // G5 F5 G7 C5 A5 F5 G5
AP: "[~@3 [f2,c3,f3]@2 ~@2 [g2,d3,g3] ~@2 [c3,g3,c4]@5 ~@7 [a2,e3,a3]@5 ~@4 [f2,c3,f3]@9 ~@5 [g2,d3,g3]@3]/2", // F5 G5 C5 A5 F5 G5
AQ: "~@2 c3@2 ~ g2 [d3,g3]@2 ~ [c3,g3,c4]@5 ~@6 [a2,e3,a3]@4, ~ [f2,f3]@2 ~@21", // G5 C5 A5 F
AR: "[~@5 f2@39 ~@4, ~@5 f3@35 ~@8, ~@5 c3@28 ~@15]/2",
})).s("gm_overdriven_guitar").gain(0.24)
// bass · electric bass finger · "Bass"
const bass = note(`<
A B C D E F G H@2 I J K@2 L M N O P@2 Q R S M F T U G V@2 W X Y Z AA G L R AB G L O AC AD F G AE@2 AF AG AH G F AI F T
AJ AK AL T F AM AN@2 AO AP AQ G N AR@2 X N O AC AS AT@3 AU AV AW AX@2 AY@4 AZ BA BB BC BD@4 BE@3
>`.pickRestart({
A: "c3 ~@5, b2 ~@23", B: "[e2,f2]@2 ~ f2@3 ~@3 g2@2 ~ g2@8 ~@4", C: "~@3 c3@3 g3@3 c3@3 ~@3 a2@3 e3@2 a2@3 ~",
D: "~@3 f2@3 ~@2 f2@3 ~ g2@2 ~ g2@3 ~@2 g2@3 ~, ~@3 c3@2 ~@4 d3@2 ~", E: "c3@2 c3@4 g3@3 c3@3 ~@2 a2@4 e3@3 a2@3",
F: "~ f2 c3 f2 ~ g2 d3 g2", G: "c3@2 ~ c3@3 g3@3 c3@3 ~@2 a2@4 e3@3 a2@3",
H: "[~@3 f2@3 c3@2 f2@3 g2@2 ~ g2@3 ~ d3@2 g2@3 c3@2 ~@2 c3@3 g3@3 c3@3 ~@3 a2@3 e3@2 a2@3 ~]/2",
I: "~@3 f2@3 c3@3 f2@3 ~@3 g2 ~ g2@2 d3@2 g2 ~@2", J: "c3@2 ~ c3@3 g3@3 c3@2 ~@3 a2@3 e3@3 a2@3 ~",
K: "[~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@3 c3@2 ~@2 c3@3 g3@3 c3@3 ~@3 a2@3 e3@2 a2@3 ~]/2",
L: "~@3 f2@3 c3@3 f2@3 g2@2 ~ g2@3 d3@3 g2@2 ~", M: "c3@2 ~ c3@3 g3@3 c3@3 ~@3 a2@3 e3@2 a2@3 ~",
N: "f2@2 ~ f2@3 c3@3 f2@3 g2@2 ~ g2@3 d3@2 g2@2 ~@2", O: "c3 ~@5",
P: "[f2@2 ~ f2@3 ~@3 g2@2 ~ g2@7 ~@4 c3@2 ~ c3@3 ~ g3@3 ~@8 a2@2 e3@2 a2@2 ~]/2",
Q: "f2@2 ~ f2@3 ~@2 f2@3 g2@2 ~ g2@4 ~@2 g2@3 ~, ~@3 c3@2 ~@4 d3@2 ~",
R: "c3@2 ~ c3@3 g3@2 c3@2 ~@5 a2@3 e3@3 a2@2 ~", S: "f2@2 ~ f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@2 ~@2",
T: "~@3 c3@3 g3@3 c3@2 ~@4 a2@3 e3@3 a2@2 ~", U: "f2@2 f2@4 ~@2 f2@2 ~ g2@2 ~ g2@3 ~ d3@2 g2@2 ~@2, ~@3 c3@2 ~@7",
V: "[~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@3 c3@2 ~ c3@3 g3@3 c3@2 ~@2 a2@2 ~ a2@3 e3@3 a2@2 ~]/2",
W: "f2@2 ~ f2@3 ~@2 f2@2 ~@2 g2@2 g2@3 d3@3 g2@2 ~@2, ~@3 c3@2 ~@7",
X: "c3@2 ~ c3@3 g3@2 c3@2 ~@2 a2@2 a2@4 e3@2 a2@2 ~@2",
Y: "f2@2 ~ f2@2 c3@3 f2@3 g2@2 ~ g2@3 ~@3 g2@2 ~@2, ~@9 d3@2 ~", Z: "f2@5 ~ f2@4 ~@2 f2@3 ~@2 f2@4 ~@3",
AA: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~", AB: "~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@2 ~@2",
AC: "f2@2 ~ f2@4 ~@2 g2@2 ~ g2@9 ~@3", AD: "c3@2 ~ c3@2 g3@3 c3@3 ~@4 a2@3 e3@3 a2@3",
AE: "[~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@3 c3@2 ~@2 c3@3 g3@3 c3@3 ~@2 a2@4 e3@3 a2@2 ~]/2",
AF: "f2@2 ~ f2@3 c3@3 f2@2 ~ g2@2 ~@3 d3@5 ~@2", AG: "c3@2 ~ c3@3 g3@3 c3@3 ~@3 a2@3 e3@3 a2@2 ~",
AH: "f2@2 ~ f2@3 ~@3 f2@2 ~ g2@4 ~@2 d3@5 ~, ~@6 c3@5 ~@13", AI: "c3@2 ~ c3@3 g3@3 c3@3 ~@3 a2@3 e3@3 a2@3",
AJ: "~@2 f2@4 ~@2 f2@3 g2@2 ~ g2@3 ~ d3@2 g2@3 ~, ~@3 c3@2 ~@7", AK: "c3@2 ~ c3@3 g3@3 c3@3 ~@2 a2@3 e3@5 ~@2",
AL: "~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@3 ~", AM: "~@2 c3@3 g3@3 c3@2 ~@2 a2@2 a2@4 e3@2 a2@3 ~",
AN: "[~@2 f2@4 ~@2 f2@3 g2@2 ~ g2@3 d3@3 g2@2 ~ c3@2 ~ c3@3 g3@3 c3@4 ~@2 a2@4 e3@2 a2@3 ~, ~@3 c3@2 ~@19]/2",
AO: "~@3 f2@3 ~@2 f2@2 ~ g2@2 ~ g2@3 d3@3 g2@2 ~@2, ~@3 c3@2 ~@7", AP: "f2@16 ~ f2@5 ~@2",
AQ: "g2@4 ~ g2@5 ~ g2@4 ~@3 g2@4 ~@2",
AR: "[c3@2 ~ c3@3 g3@3 c3@3 ~@2 a2@3 ~ e3@2 a2@2 ~ f2@2 ~ f2@4 ~@2 f2@3 g2@2 ~ g2@3 ~ d3@2 g2@3 ~, ~@15 c3@2 ~@7]/2",
AS: "c3@4 ~ c3@4 ~@3 a2@4 ~@2 a2@3 ~@3",
AT: "[f2@4 ~ f2@4 ~@3 g2@4 ~ g2@3 ~@3 c3@4 ~@2 c3@4 ~@2 a2@4 ~ a2@3 ~@3 f2@4 ~ f2@4 ~@3 g2@3 ~@3 g2@4 ~ c3@3]/3",
AU: "~@3 c3@4 ~@2 a2@3 ~@3 a2@3 ~@3 f2@3", AV: "~@2 f2@3 ~@4 g2@3 ~@2 g2@3 ~@3 c3@4",
AW: "~@2 c3@4 ~@2 a2@4 ~ a2@3 ~@3 f2@3 ~@2",
AX: "[f2@3 ~ f2@2 ~@2 g2@3 ~ f2@2 ~ g2@2 ~@2 [c2,c3]@9 ~@2 a2@5 ~ a2@3 ~ f2@4 ~ f2@2 ~]/2", // C
AY: "[~ f2 ~ f2@3 g2@3 ~ f2@3 g2 ~@3 [c2,c3]@5 ~@2 c3@4 ~ a2@6 ~@3 f2@7 ~ f2@5 ~ g2@3 ~@2 f2@3 g2@2 ~@2 [c2,c3]@5 ~ [c2,c3]@5 ~ a2@7 ~@2 f2@7 ~ f2@3, ~@23 c2@5 ~@29 d#2 ~@38]/4", // C
AZ: "~@3 g2@4 f2@3 ~ g2@2 ~@2 [c2,c3]@7 ~@2", BA: "~@2 a2@5 ~@3 f2@4 ~@2 f2 ~@3 f2 ~ f2@2",
BB: "~@2 g2@4 f2@3 ~ g2@2 ~@2 c2@6 ~@4, ~@13 c3@7 ~@4", BC: "a2@6 ~@3 f2@5 ~@2 f2 ~@2 f2@2 f2@3",
BD: "[g2@4 ~ f2@3 g2@2 ~@2 [c2,c3]@8 ~@3 a2@7 ~@2 f2@13 ~ g2@4 ~ f2@3 ~ g2@2 ~ [c2,c3]@7 ~@5 a2@6 ~@2 f2@11 ~@2 f2@2 ~ g2@2]/4", // C
BE: "[~ f2@3 ~ g2@2 ~@2 c3@9 ~@2 a2@7 ~@2 f2@35 ~@8, ~@8 c2@9 ~@55]/3",
})).s("gm_electric_bass_finger").gain(0.37)
// other · trombone
const trombone = note(`<
A B C D C D C D C D E F E G ~@2 H I ~@8 J K L M N M ~@2 E F E O ~@2 H B C P Q D C R C S T@2 U@2 V W X Y N Z AA@2 AB@2
~@2 E F E O ~@3 AC ~ AD@2 ~@4 AE AF AG AH AI AJ AK AL AM AN AO@2 AP AQ AR AS@2
>`.pickRestart({
A: "c4 ~@5, b3 ~@23", B: "f3@2 ~ f3@3 ~@3 g3@2 ~ g3@8 ~@4", C: "~@6 c4@3 g3@2 ~ a3@3 c4@4 ~@2 a3@3",
D: "~@3 g3@4 ~@2 c3@2 ~ e3@2 ~ e3@2 ~ d3@2 ~ c3@3", E: "~@18 c3@2 ~ c3@2 ~", F: "f3@3 e3@2 ~ f3@2 ~ d3@12 ~@3",
G: "a3@3 g#3@3 a3@2 ~ c4@2 ~ b3@11 ~", H: "c4 ~@7", I: "f3@3 f3@3 ~@3 g3@2 ~ g3@10 ~@2",
J: "~@2 e4@3 ~@4 e4@3 ~@2 e4@3 ~@3 e4@2 ~@2", K: "c4@3 b3@3 ~@3 e4@2 ~ d4@10 ~@2",
L: "~@3 e4@3 ~@3 e4@3 ~@2 e4@3 ~@3 e4@2 ~@2", M: "c4@3 b3@2 ~ c4 ~@2 e4@2 ~ d4@9 ~@3",
N: "~@3 e4@3 ~@3 e4@3 ~@3 e4@3 ~@3 e4@2 ~", O: "a3@3 g#3@2 ~ a3@2 ~ c4@2 ~ b3@10 ~@2",
P: "~@3 g3@5 ~ c3@2 ~ e3@2 ~@2 e3@2 d3@3 c3@2 ~", Q: "~@6 c4@3 g3@2 ~ a3@3 c4@3 ~@3 a3@3",
R: "~@3 g3@5 ~ c3@2 ~ e3@2 e3@2 ~@2 d3@3 c3@2 ~", S: "~@3 g3@3 ~@6 e4@2 ~ e4@2 ~ f4@2 ~ f#4@2 ~",
T: "[g4@6 ~ e4@4 ~ c4@6 ~@2 c4@2 ~ d#4@2 d4@2 ~@2 d4@2 ~ d#4@2 d4@2 ~@2 d4@2 ~@2 d#4@2 ~ d#4@2 ~, ~@28 d#4@2 ~@7 d#4@2 ~@9]/2",
U: "[e4@5 ~ c4@5 ~ g3@2 ~ d#4@11 ~ d4@2 ~ c4@2 ~ g3@2 ~ c4@6 ~@3 c4@2 ~]/2",
V: "c4@2 ~ c4@3 ~@3 c4@2 ~ c4@2 c4@3 ~@4 g3@3",
W: "~@2 g3@4 ~@2 g3@2 ~ e3@2 ~ g3@2 ~@3 f3@2 g3@2 ~, ~@13 f3@3 ~@2 e3@2 ~@4", X: "c3@3 c3@2 ~@4 c4@12 ~@3",
Y: "d#4@3 ~ d4@3 c4@3 ~ g4@8 ~@5", Z: "c4@3 b3@2 ~@4 e4@2 ~ d4@9 ~@3",
AA: "[~@3 e4@3 ~@3 e4@3 ~@2 e4@3 ~@3 e4@2 ~ c4@3 b3@2 ~@5 e4@2 ~ d4@6 ~@6]/2",
AB: "[~@3 e4@3 ~@3 e4@3 ~@3 e4@3 ~@3 e4@2 c4@2 ~ b3@2 ~@4 e4@2 ~@2 d4@10 ~@2]/2",
AC: "f3@2 ~ f3@2 ~@4 g3@2 ~ g3@10 ~@2", AD: "[~ b3 ~@17 b3@3 ~ c4@3 ~@22]/2", AE: "~@19 c4@5",
AF: "~@6 c4@3 ~@2 b3@2 ~@2 c4@9", AG: "~@3 c4", AH: "~@5 c4@3 ~ [a#3,b3]@2 ~@2 c4@11", AI: "~@17 c4@7",
AJ: "~@4 c4@3 ~ b3@2 ~@2 c4@7 ~@5", AK: "~@5 c4@2 ~", AL: "~ c4 ~ b3 ~ c4@4 ~@3", AM: "~@14 c4@5 ~@5",
AN: "~ c4@3 ~ b3@2 ~@2 c4@8 ~@7", AO: "[~@12 c4@6 ~@5 c4@2 ~@2 b3@2 ~@3 c4@6 ~@10]/2", AP: "~@10 c4@7 ~@5 c4@2",
AQ: "~@2 b3@3 ~ c4@9 ~@9", AR: "~@9 c4@5 ~@6 f3@3 ~", AS: "[~ e3@3 ~ c3@27 ~@16]/2",
})).s("gm_trombone").gain(0.57)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F G@2 H I J K E K@2 L A B J K J M N K G A O K P M Q R S T Q U I G@2 V W X U G@4 I G I G V G@5 A G@5 Y Z ~ J
M G@2 AA I A X AB AC AD AE AF AG@2 AH AI AJ AK AL AM AL AN AO AP AQ AR AS AT AU AV ~
>`.pickRestart({
A: "x", B: "x!2 ~ x!2 ~@3", C: "~ x ~@7 x ~@5 x ~@6 x ~", D: "~@4 x ~@5 x ~@2 x ~@2 x ~@5 x ~", E: "x!2 ~ x ~ x ~ x",
F: "~@3 x ~@6 x ~@13", G: "x ~@2 x ~ x ~@2", H: "x ~@10 x ~@12", I: "x!2", J: "x ~@2 x ~ x ~ x", K: "~ x ~ x ~ x ~ x",
L: "~@3 x ~@5 x ~@5 x ~@4 x ~@3", M: "~ x ~ x ~ x ~@2", N: "x ~@8 x ~@4 x ~@6 x ~@2",
O: "~@2 x ~@6 x ~@5 x ~@4 x ~@3", P: "~@3 x ~ x ~ x", Q: "x ~@8 x ~@4 x ~@8 x", R: "~@12 x ~@10 x",
S: "~@6 x ~@5 x ~@4 x ~@6", T: "x ~ x!2 ~@4", U: "~@3 x ~ x ~@2", V: "x ~@8 x ~@4 x ~@9", W: "~ x ~@22",
X: "x ~@2 x ~@5 x ~ x ~@11 x", Y: "x ~@13 x ~@3 x ~@4 x", Z: "~@5 x ~@6 x ~@5 x ~@5", AA: "x ~@2 x ~ x!2 ~",
AB: "~@5 x ~@4 x ~@13", AC: "x ~@10 x ~@11 x", AD: "~@11 x ~@5 x ~@5 x", AE: "~@11 x ~@10 x ~",
AF: "~@10 x ~@10 x ~@2", AG: "~@2 x ~@2 x", AH: "~@7 x ~@3 x ~@3 x ~@3 x ~@4", AI: "x ~@5 x ~@4 x ~@3 x ~@4 x ~@2 x",
AJ: "~@2 x ~@2 x ~@3 x ~@4 x ~@2 x ~@6", AK: "~@5 x ~@4 x ~@3 x ~@9", AL: "~@5 x ~@2",
AM: "~@3 x ~@8 x ~@4 x ~@2 x ~@2 x", AN: "~ x ~@3 x ~@6", AO: "~@13 x ~@10", AP: "~ x ~@7 x ~@14", AQ: "~ x",
AR: "x ~@3 x ~@2 x ~@4", AS: "~ x ~@3 x ~@5 x", AT: "~@7 x ~@5 x ~@10", AU: "~@9 x ~@12 x ~", AV: "~ x ~@2",
})).gain(0.48)
// drums · snare
const snare = s("sd").struct(`<
A B C D@2 E D@2 F G D@6 A H D@7 I D@6 J K D L M D@2 N O P F D@8 Q D@4 M R D@5 S T U D L D@4 A V W Q X Y@2 Z AA AB AC
AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ ~
>`.pickRestart({
A: "x", B: "x ~@2 x ~@5 x ~@2 x ~@2 x!2 ~ x!2 ~ x!2 ~", C: "~ x ~@4 x ~@11 x ~@5", D: "~ x ~ x",
E: "~@6 x ~@9 x ~ x ~@2 x ~@2", F: "~@5 x ~@12 x ~@5", G: "~@6 x ~@7 x ~ x!2 ~ x!2 ~ x ~",
H: "x ~@2 x ~@5 x ~@2 x ~@2 x!3 ~ x!2 ~ x ~", I: "~@6 x ~@5 x!2 ~ x ~ x!2 ~ x!2 ~ x", J: "x ~@5 x ~@5 x ~@4 x ~@6",
K: "x ~@5 x ~@2 x ~@2 x!2 ~ x!2 ~ x!2 ~ x!2 ~", L: "~@2 x ~@3 x!2", M: "~@6 x ~@12 x ~@4", N: "~@5 x ~@14 x ~@3",
O: "~ x ~@22", P: "x ~@2 x ~@5 x ~ x ~@2 x ~ x!2 ~ x!3 ~@2", Q: "~@6 x ~@10 x ~@6",
R: "~@6 x ~@5 x!2 ~ x!3 ~ x!2 ~ x ~", S: "~@6 x ~@16 x", T: "~@5 x ~@6 x ~@5 x ~@5",
U: "x ~@5 x ~@4 x!2 ~ x ~ x!2 ~ x!2 ~ x ~", V: "x ~@2 x ~@5 x ~ x ~@2 x!2 ~ x!3 ~@4", W: "~@5 x ~@10 x ~@7",
X: "~@5 x ~@11 x ~@6", Y: "~ x ~@2 x ~", Z: "~@3 x ~@10 x ~@9", AA: "~ x ~@5 x ~@4", AB: "x ~@6 x ~@3 x ~@3 x ~@8",
AC: "x ~@5 x ~@4 x ~@3 x ~@4 x ~@2 x", AD: "~@2 x ~@2 x ~@3 x ~@4 x ~@2 x ~@6",
AE: "x ~@2 x ~ x ~@4 x ~@3 x ~@4 x ~@2 x ~", AF: "~ x ~@2 x ~@2 x!2 ~ x!3 ~@2 x ~@5 x ~@2",
AG: "~@3 x ~@4 x ~@3 x ~@4 x ~@2 x ~@2 x", AH: "~@2 x ~@3 x!2 ~ x!2 ~ x ~@2 x ~@5 x ~@2",
AI: "~@2 x ~@4 x ~@2 x ~@5 x ~@2 x ~ x ~@2", AJ: "x ~@2 x!2 ~ x!2 ~ x ~@3 x ~@5 x ~@4",
AK: "~ x ~@4 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2", AL: "x ~@2 x!2 ~ x!2 ~ x ~@2 x ~@5 x ~@4 x",
AM: "~@4 x ~@3 x ~@5 x ~@2 x ~@2 x ~ x ~", AN: "~ x ~ x!3 ~ x ~@2 x ~@6 x ~ x ~@3 x",
AO: "~@4 x ~@2 x ~@4 x ~@2 x ~@2 x ~@2 x ~@2", AP: "x!2 ~ x!2 ~ x ~@2 x ~@6 x ~ x ~@5", AQ: "~ x ~ x ~@8",
})).gain(0.48)
// drums · clap
const clap = s("cp").struct("<~@85 [~ x ~@4] ~@12>").gain(0.6)
// drums · low tom
const low_tom = s("lt").struct("<~@18 x ~@76 [~@3 x ~@4] ~@2>").gain(0.54)
// drums · hihat
const hihat = s("hh").struct(`<
~@2 A B A@3 C D E C F A@3 G H ~ A@3 I J A@2 K C F A@3 L M N A@3 C O P Q R S A@2 B A@3 B A T U A@4 K A@5 V H ~ W A@5 H
X Y Z AA S AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR X AS ~
// … 30 more lines
More by Reel Big Fish
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.