0:00/0:00
// Stop! In the Name of Love — Ross
// 118 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: pitch bends are ignored
// note: Full arrangement: all 84 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118/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 · acoustic bass · "Bass"
const bass = note(`<
~@2 A B C D E F G H I@8 J@5 K@5 L M N O P Q R S@2 T U V W X Y Z Y AA AB AC AD@2 AE@4 AF@5 AG AH AI AJ AK AL AM@3 AN AO
AP@6 AQ AR AS AT AU AV AW ~
>`.pickRestart({
A: "a2 ~@3 a2@2 ~@2 a2 ~@3 a2 ~@3 a2 ~@3 a2 ~@3 a2 ~@3 a2 ~@3",
B: "b2 ~@3 b2 ~@3 b2 ~@3 b2 ~@3 b2 ~@3 b2 ~@3 b2 ~@3 c3 ~@3",
C: "f2 ~@3 f2 ~@3 f2 ~@3 f2 ~@3 f2 ~@3 f2 ~@3 f2 ~@3 f2@2 ~@2",
D: "g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3", E: "c2@3 ~@5 c2@5 ~@3 f2@4 ~@4 f2@6 ~@2",
F: "c2@6 ~@2 c2@2 ~@2 c2@2 ~@2 e2@2 ~@2 e2@2 ~@2 f2@3 ~ g2@2 ~@2", G: "c2@4 ~@4 c2@5 ~@3 f2@5 ~@3 g2@5 ~@3",
H: "c3@5 ~@3 c3 ~@3 c3@2 ~@2 a2 ~@3 a2@2 ~@2 g2@3 ~ g2 ~@3",
I: "[c3@4 c3@4 c4@4 c4@4 c3@4 c3@4 c3@3 c3@4 c3@4 c3@4 c3@4 c3@4 c3@4 c3@4 c3@4 c3@4 g3@4 g3@4 g3@4 g3@4 g2@4 g2@4 g3@4 g3@4 a3@4 a3@4 a3@4 a3@4 a2@4 e2@4 e2@4 g2@4 f2@4 f2@4 f2@4 f2@4 f2@3 f2@4 f2@4 f2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 c3@2]/8",
J: "[~ c3@2 c4@2 c4@2 c3@2 c3@2 c4@2 c4@2 b2@2 b2@2 b2@2 b2@2 b2@2 b2@2 b2@2 b2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 c3@2 ~@2 c3@2 ~@2 f3@2 ~@2 f3@2 ~@3]/5",
K: "[~@6 c3@4 c3@4 ~ e3@4 e3@4 f3@4 g3@4 c3@4 ~@4 c3@4 ~@4 f3@4 ~@4 f3@4 ~@4 c3@4 ~@4 c3@4 c3@4 a2@4 a2@4 g2@4 g2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 b2@4 ~ b2@4 b2@4 b2@4 b2@4 b2@4 b2@4 b2@4]/5",
L: "f2!8", M: "g2!7 g#2", N: "a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 ~ a2@3",
O: "~ b2@4 b2@4 b2@4 b2@4 b2@4 b2@4 b2@4 b2@3", P: "~ f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@3",
Q: "~ g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@3", R: "~ c3@4 ~@5 c3@4 ~@4 f3@4 ~@4 f3@4 ~@2",
S: "[~@2 c3@4 ~@4 c3@4 c3@4 e3@4 e3@4 f3@4 g3@4 c3@4 ~@5 c3@4 ~@4 f3@4 ~@4 g3@4 ~]/2",
T: "~@3 c3@4 ~@4 c3@4 c3@4 a2@4 a2@4 g2@4 ~", U: "g2 c3!2 c4!2 c3!3", V: "c3 c3@3 c3!2 a2 g2", W: "a2 g3!4 g2!2 g3",
X: "g3@4 a3@4 a3@4 a3@4 ~ a3@4 a2@4 e2@4 e2@3", Y: "~ g2@4 f2@12 f2@4 f2@11", Z: "~ f2@4 g2@12 g2@4 g2@11",
AA: "~ f#2@4 ~ g2@12 g2@4 g2@10", AB: "~ g2@2 c3@6 c3@2 c3@5", AC: "~ c3@2 b2@6 b2@2 b2@5",
AD: "~ b2@2 f2@6 f2@2 f2@5",
AE: "[~ f2@2 c3@2 ~@2 c3@2 ~@2 c3@2 ~@2 c3@2 ~@6 c3@2 c3@2 e3@2 e3@2 f3@2 g3@2 c3@2 ~@2 c3@2 ~@2 c3@2 ~@2 c3@2 ~@2 c3@2 ~@2 c3@2 c3@2 a2@2 a2@2 g2]/4",
AF: "[~@2 g2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 ~ a2@4 a2@4 b2@4 b2@4 b2@4 b2@4 b2@4 b2@4 b2@4 b2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 f2@4 g2@4 g2@4 g2@4 g2@4 g2@4 f2@4 g2@4 g#2@4 a2@4 a2@4 a2@4 ~ a2@4 a2@4 a2@4]/5",
AG: "a2!2 b2!6", AH: "b2!2 f2!6", AI: "f2!2 g2!6", AJ: "g2@4 g2@4 ~ c3@4 ~@4 c3@4 ~@4 c3@4 ~@3",
AK: "~ c3@4 ~@4 c3@4 ~@4 c3@4 c3@4 e3@4 e3@3", AL: "~ f3@4 ~ g3@4 c3@4 ~@4 c3@4 ~@4 c3@4 ~@2",
AM: "[~@2 c3@4 ~@4 c3@4 ~@4 c3@4 c3@4 a2@4 ~ a2@4 g2@4 g2@4 c3@12 c3@4 c3@12 c3@4 c3@12 c3@4 ~ c3@4]/3",
AN: "a2 g2 a2 g3!4 g2", AO: "g2@4 g3@4 g3@4 a3@4 a3@4 ~ a3@4 a3@4 a2@3",
AP: "[~ e2@4 e2@4 g2@4 f2@12 f2@4 f2@12 f2@4 g2@12 ~ g2@4 g2@12 g2@4 f2@12 f2@4 f2@12 ~ f#2@4 g2@12 g2@4 g2@4 f2@4 g2@4 g#2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 a2@4 b2@4 b2@4 b2@4 ~ b2@4]/6",
AQ: "b2!4 f2!4", AR: "f2!4 g2!4", AS: "g2 f2 g2 g#2 a2!4", AT: "a2@4 a2@4 a2@4 a2@4 b2@4 ~ b2@4 b2@4 b2@3",
AU: "~ b2@4 b2@4 b2@4 b2@4 f2@4 f2@4 f2@4 f2@3", AV: "~ f2@4 f2@4 f2@4 f2@4 g2@4 g2@4 g2@4 g2@3",
AW: "~ g2@4 g2@4 g2@4 g2@4 ~@8 c3@7",
})).s("gm_acoustic_bass").gain(0.4)
// chords · drawbar organ · "Organ"
const drawbar_organ = note(`<
~ A@2 B@2 C D@2 E@2 F@7 G@5 H@7 I J K L M N O P Q@3 R S@4 T@7 U@2 V W@8 X@2 Y@7 Z@6 AA@4 AB ~
>`.pickRestart({
A: "[[c#0,f0,a#0,c#1]@17 ~@15 [c5,e5,a5]@32, ~@17 [d#1,f1]@2 [g#1,a#1]@2 [c#2,d#2]@2 f#1@2 [c2,c#2]@2 [f2,f#2]@2 [c3,c#3]@2 f3@2 ~@31, ~@9 f#1 c2 f2 [g#1,a#1] d#2 [g#2,a#2] d#3 c#3 ~@15]/2", // A#m Am D#sus2 G#sus2 C#sus2 C#maj7 F#maj7 C#maj7 …
B: "[a5@2 ~@4 f5 e5, [b4,d5] [a4,c5], ~ g5@2 ~]/2", C: "e5 d5, [g4,b4]",
D: "[~@2 [e5,g5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [e5,g5,c6]@8, [c2,c3]@31 ~]/2", // C F C
E: "[~@8 [e5,g5,c6]@4 ~@4 [f5,a5,c6]@4 ~@4 [f5,d6]@4 ~@4 [g5,c6,e6]@29 ~@3, [c2,c3]@61 ~@3]/2", // C F Dm C
F: "[c5@31 e4@23 ~ e5@8 [g4,a#4,d5]@31 ~@25 g4@8 [f4,c5]@23 [f4,a4,c5]@8 [g4,b4,d5]@23 ~ [g4,b4,d5]@8 [f4,a4]@24 [f4,a4]@8 [g4,b4,d5]@2, g4@55 ~@40 a4@55 ~@74, ~@31 b4@31 ~@33 [c#5,e5]@31 ~@64 c5@32 ~@2]/7", // Gm F5 F G F G C#m
G: "[~@11 [g4,b4,d5]@4 [g4,c5,e5]@16 e5@12 d5@4 [f4,a4]@12 [f4,a4]@3 ~ [f4,a4,c5]@16 [e4,g4,c5], ~@31 [g4,b4]@15 ~ c5@15 ~@18]/5", // G C F C G
H: "[~@6 [e4,g4,c5]@6 ~@2 [f4,a4,c5]@6 ~@2 [f4,a4,c5]@6 ~@2 [e4,g4,c5]@26 ~@7 [e4,g4,c5]@6 ~@2 [e4,g4,c5]@6 ~@2 [f4,a4,c5]@6 ~@2 [g4,b4,d5]@6 ~@2 [g4,c5,e5]@16 ~@9 [d#2,e2,f#2,g#2] [a#2,b2,c#3,d#3,e3] [f#3,g#3,a#3,b3] [c#4,d#4,e4] [f#4,g#4,a#4] c4 ~ [e4,a5]@30 ~@2 a5@16 ~@33 f5@14 ~@2, ~@159 [b4,d5]@30 ~@3 [a4,c5]@30 ~@2, ~@11 g5@2 ~]/7", // C F C F G C Emaj7 A#dim …
I: "e5@6 d5@2 d5@7 ~, [g4,b4]@15 ~", J: "[c5,e5,a5]@15 ~", K: "~ a5@16 g5@14 ~, ~ [b4,d5]@31",
L: "~ g5@16 f5@15, ~ [a4,c5]@31", M: "~ c5@8 b4@6 ~@2 [g4,b4,d5]@14 ~, ~ [g4,e5]@16 ~@15",
N: "~ [g4,c5,e5]@6 ~@3 [g4,c5,e5]@6 ~@2 [f4,a4,c5]@4 ~@4 [f4,a4,c5]@6", O: "~ [e4,g4,c5]@15",
P: "~@2 [e4,g4,c5]@6 ~@3 [e4,g4,c5]@6 ~@2 [f4,a4,c5]@6 ~@2 [g4,b4,d5]@5", // C F G
Q: "[~@3 [g4,c5,e5]@32 ~ c5@32 e4@24 e5@4, ~@9 g4@14 ~, ~@17 b4@7]/3", R: "~ [g4,a#4,d5]@7",
S: "[~@29 g4@8 [f4,c5]@24 [f4,a4,c5]@8 [g4,b4,d5]@24 [g4,b4,d5]@8 [f4,a4]@24 [f4,a4]@3, ~ a4@14 ~@17, ~@4 [c#5,e5]@32 ~@65 c5@27]/4", // F5 F G F C#m
T: "[~@3 [g4,b4,d5]@11 ~ [g4,b4,d5]@4 [g4,c5,e5]@16 e5@12 d5@4 [f4,a4]@12 [f4,a4]@4 [f4,a4,c5]@16 [e4,g4,c5]@3 ~ [e4,g4,c5]@3 ~ [f4,a4,c5]@3 ~ [f4,a4,c5]@3 ~ [e4,g4,c5]@13, ~@35 [g4,b4]@16 c5@16 ~@45]/7", // G C F C F C G
U: "[~@6 [e4,g4,c5]@6 ~@2 [e4,g4,c5]@6 ~@2 [f4,a4,c5]@6 ~@2 [g4,b4,d5]@6 ~@2 [g4,c5]@16 ~@8 [e4,f4,g4] [g4,a4,b4,c5]]/2", // C F G C5 Em Cmaj7
V: "[c5,d5,e5,f5] [d4,e4,f5] [e4,f4,g4,a4] [a4,b4,c5,d5] [b4,c5,d5,e5,f5] [c5,d5,e5,f5] [e5,f5,g5] ~@25, ~ [c4,g5]@2 ~@3 [c5,a5]@26", // Dm7 Dm Fmaj7 D7 Bdim Dm7 Em C5 …
W: "[~@7 a5@16 ~@32 f5@14 ~@2 e5@12 d5@4 d5@14 ~@2 [c5,e5,a5]@30 ~@3 a5@16 g5@16 g5@16 f5@16 c5@8 b4@8 [g4,b4,d5]@14 ~@3 [g4,c5,e5]@6 ~@2 [g4,c5,e5]@6 ~@2 [f4,a4,c5]@4 ~@3, ~@7 [b4,d5]@32 [a4,c5]@30 ~@2 [g4,b4]@28 ~@37 [b4,d5]@32 [a4,c5]@32 [g4,e5]@16 ~@40, ~@23 g5@32 ~@201]/8", // Am G C F Bm Am G Bm …
X: "[~ [f4,a4,c5]@6 ~@2 [e4,g4,c5]@30 ~@3 [e4,g4,c5]@6 ~@2 [e4,g4,c5]@6 ~@2 [f4,a4,c5]@6]/2", // F C F
Y: "[~@2 [g4,b4,d5]@6 ~@2 [g4,c5,e5]@32 ~ c5@32 e4@24 ~ e5@8 [g4,a#4,d5]@32 ~@25 g4@8 [f4,c5]@24 [f4,a4,c5]@8 [g4,b4,d5]@19, ~@43 g4@57 ~@40 a4@57 ~@27, ~@75 b4@32 ~@33 [c#5,e5]@32 ~@52]/7", // G C Gm F5 F G C#m
Z: "[~@6 [g4,b4,d5]@8 [f4,a4]@24 [f4,a4]@8 ~ [g4,b4,d5]@22 ~@2 [g4,b4,d5]@8 [c5,e5,a5]@30 ~@2 a5@16 ~@33 f5@14 ~@2 e5@12 d5@4, ~@14 c5@32 ~@65 [b4,d5]@32 ~ [a4,c5]@30 ~@2 [g4,b4]@16, ~@4 g5 ~]/6", // G F G Am Bm Am G
AA: "[~@13 [f#5,g#5,a#5]@2 ~ [c5,e5,a5]@30 ~@2 a5@16 ~ g5@14 ~@2 g5@16 f5@16 c5@8 b4@6 ~, ~@10 [a#3,b3,c#4,d#4,e4]@2 [c#5,d#5,e5]@2 ~@34 [b4,d5]@32 ~ [a4,c5]@32 ~@15, ~@11 [f#4,g#4,a#4,b4]@2 ~@100 [g4,e5]@15]/4", // F# Am A#dim C#m Bm Am G#m7 C
AB: "~ [g4,b4,d5]@16 ~@8 [c3,g3,c4,g4,c5]@4 ~@3", // G C5
})).s("gm_drawbar_organ").gain(0.35)
// chords · drawbar organ · "Organ" · soft notes · D#m7 C#m7 D#m7 F#7 C#m7 F# B E …
const drawbar_organ_soft = note(`<
~@25
[~@15 b0 [c#1,d#1,e1,f#1] [g#1,a#1,b1,c#2,d#2,e2] [f#2,g#2,a#2,b2,c#3,d#3] [e3,f#3,g#3,a#3] [b3,c#4,d#4,e4] [f#4,g#4,a#4] [b0,c#1,d#1,b4] [e1,f#1,g#1,a#1,b1] c#2 ~@7]
~@27
[~@6 e5@16 d3 [d3,e3,f3,g3] [g3,a3,b3,c4] [c4,d4,e4,f4] [f4,g4,a4,b4] [b4,c5,d5,e5] [g3,a3,e5] [a3,b3,c4,d4] d4 ~, ~@11 c3 ~@2 [f3,f5] ~]
~@24
[~@9 [d#3,e3,f#3,g#3]@2 ~@21, [b1,c#2] [g#2,a#2,b2,c#3,d#3,e3] [e4,f#4,g#4,a#4,b4] [g#5,a#5,b5] [e2,f#2,g#2,a#2,b2,c#3] ~@11, ~ [d#2,e2,f#2]@2 [f#3,g#3,a#3,b3,c#4,d#4]@2 [c#5,d#5,e5,f#5]@2 [b1,c#2,d#2]@2 ~@23]
~@5
>`).s("gm_drawbar_organ").gain(0.2)
// other · vibraphone · "Vibes"
const vibraphone = note(`<
A ~ B C D E F G H I J@8 K@4 L@2 M@2 N@2 O P Q R@2 S T U V W X Y@2 Z AA@3 AB AC@3 AD AE@2 AF@2 AG@5 AH@2 AI@2 AJ AK AL
AM AN AO AP AQ@5 AR AS AT AU AV AW AX AY ~
>`.pickRestart({
A: "[a3,a4]@3 ~", B: "a5 ~@7", C: "a5 ~@3 g5 ~@3", D: "~@2 g5 ~ f5 ~ e5 ~", E: "e5@2 ~ d5 d6 ~@3",
F: "~@2 c5 ~ c5 ~ c5 ~", G: "c5@5 ~@11", H: "~@2 c5 ~ c5 ~ d5 ~", I: "e5@3 ~@5",
J: "[e5@20 ~@4 e5@4 ~@3 e5@21 ~@3 e5@4 ~@4 e5@21 ~@3 e5@6 ~@2 e5@20 ~@4 e5@4 ~@4 e5@21 ~@2 e5@4 ~@4 e5@21 ~@3 e5@4 ~@4 e5@22 ~@2 e5@4 ~@4 e5@24 ~@10]/8",
K: "[~@11 g5@2 ~@2 g5@3 ~@9 g5@2 ~@2 e5@2 ~@2 a5@4 g5@4 e5@4 e5@13 ~@4]/4",
L: "[~@3 c5@2 ~@2 c5@2 ~@2 c5@2 ~@2 c5@2 ~@15]/2", M: "[~@7 c5@4 ~@4 c5@6 ~@2 d5@6 ~@2 e5@10 ~@23]/2",
N: "[~@7 a5@8 ~@4 a5@4 a5@4 ~@4 a5@12 ~ g5@4 g5@14 ~@2]/2", O: "~@4 g5@4 f5@4 e5@3 ~", P: "e5@6 d5@2 d5@7 ~",
Q: "~@4 a5@5 ~ a5@2 a5@3 ~", R: "[~ a5@12 g5@4 g5@18 ~@6 g5@8 f5@6 ~@2 e5@6 ~]/2", S: "~ e5@12 d5@4 d5@12 ~@3",
T: "~@5 c5@2 ~@2 c5@2 ~@2 c5@2 ~", U: "~ c5@2 ~@13", V: "~@11 c5@4 ~@4 c5@6 ~@2 d5@5", W: "~@3 e5@18 ~@11",
X: "~ e5@5 ~ e5", Y: "~@2 e5@11 ~ e5@2", Z: "~@4 e5@20 ~@5 e5@3", AA: "~@5 e5@22 ~@2 e5@3", AB: "~@3 e5@12 ~",
AC: "[~@15 g5@2 ~@2 g5@3 ~@9 g5@2 ~@15]/3", AD: "~@3 e5@13", AE: "[~@7 c5@2 ~@2 c5@2 ~@2 c5@2 ~@2 c5@2 ~@11]/2",
AF: "[~@7 c5@2 ~@2 c5@3 ~ d5@3 ~ e5@5 ~@8]/2",
AG: "[~@14 a5@8 ~@4 a5@4 ~ a5@4 ~@4 a5@12 ~@4 g5@14 ~@10 g5@8 f5@8 e5@6 ~@2 e5@12 d5@4 d5@14 ~@10 a5@10 ~@3 a5@4]/5",
AH: "[a5@3 ~ a5@6 ~@2 g5@9 ~@3 g5@4 f5@3 ~]/2", AI: "[e5@6 ~@2 e5@12 d5@4 d5@12 ~@13 c5@4 ~@4 c5@4 ~@3]/2",
AJ: "~ c5@4 ~@4 c5@4 ~@19", AK: "~@9 c5@2 ~@2 c5@3", AL: "~ d5@3 ~ e5@9 ~@2", AM: "~@11 e5@20 ~",
AN: "~@3 e5@4 ~@4 e5@21", AO: "~ e5 ~ e5@5", AP: "~@2 e5@3 ~ e5@10",
AQ: "[~@5 e5@4 ~@4 e5@22 ~@2 e5@4 ~@4 e5@22 ~@3 e5@4 ~@4 e5@22 ~@2 e5@4 ~@5 e5@24 ~@16 a5@8 ~]/5",
AR: "~@3 a5@4 a5@4 ~@4 a5@12 ~@5", AS: "g5@7 ~@5 g5@4", AT: "f5@4 e5@3 ~ e5@6 d5@2", AU: "d5@7 ~@5 a5@4",
AV: "~@2 a5@2 a5@3 ~ a5@6 ~@2", AW: "~ g5@18 ~@6 g5@7", AX: "~ f5@6 ~@2 e5@6 ~@2 e5@12 d5@3",
AY: "~ d5@12 ~@12 [c5,c6]@4 ~@3", // C
})).s("gm_vibraphone").gain(0.45)
// chords · brass section · "Brass"
const brass_section = note(`<
~@2 A B C D E F E F ~@8 G ~ H ~@5 I@2 C D J K L M N O P Q R S T U V W V X Y Z AA@2 AB AC@3 AD@7 AE@2 AF AG AH@2 AI AJ
AK AL AM AN AO AP@2 AQ AR AS@2 AT AU AV ~
>`.pickRestart({
A: "a5@10 a5 ~ a5@2 ~@2", B: "a5 g5", C: "~@4 g5@4 f5@4 e5@3 ~", D: "e5@6 d5 ~ d5@7 ~",
E: "~@2 [c2,c3] ~@3 [c2,c3] ~", F: "~@6 c4 ~@3 c4 ~@3 c4 ~", G: "~@3 [c3,g3,c4] ~@7 [c3,g3,c4] ~@4",
H: "~@3 [c3,f3,c4]@2 ~@6 [c3,f3,c4]@2 ~@3", I: "[~@7 a5@24 a5@16 ~ g5@16]/2", J: "~ a5@3", K: "~ a5@16 g5@15",
L: "~@9 g5@8 f5@8 e5@6 ~", M: "~ e5@12 d5@2 ~@2 d5@14 ~", N: "~@5 [c2,c3]@2 ~@6 [c2,c3]@2 ~",
O: "~@7 c4 ~@3 c4 ~@3 c4", P: "~@11 [c2,c3]@4 ~@12 [c2,c3]@4 ~", Q: "~@15 c4@2 ~@6 c4@2 ~@7",
R: "c4 ~@5 [g4,c5] ~@7 [g4,c5] ~", S: "~@6 [g4,b4]@2 ~@6 [g4,b4] ~", T: "~@6 [g4,a#4] ~@7 [g4,a#4] ~",
U: "~@12 [e4,a4]@2 ~@15 [e4,a4]@2 ~", V: "~@13 [f4,a4]@2 ~@14 [f4,a4]@2 ~", W: "~@13 [d4,g4]@2 ~@14 [d4,g4]@2 ~",
X: "~@7 [d4,g4] ~@7 [d4,g4]", Y: "~@7 [g4,c5] ~@7 [g4,c5]", Z: "~@7 [g4,b4] ~@7 [g4,b4]",
AA: "~@7 [f4,a4] ~@7 [f4,a4]", AB: "~@7 g4 ~@7 [c4,g4]", AC: "~@7 [c4,g4] ~@7 [c4,g4]",
AD: "[~@14 a5@22 ~@3 a5@16 g5@16 ~@8 g5@8 f5@8 e5@6 ~@2 e5@12 d5@2 ~@2 d5@14 ~@10 a5@22 ~@3 a5@16 g5@16 ~@8 g5@8 f5@8]/7",
AE: "[e5@6 ~@2 e5@12 d5@2 ~@2 d5@14 ~@11 [c2,c3]@4 ~@11]/2", AF: "~ [c2,c3]@4 ~@16 c4@2 ~@6 c4@2 ~",
AG: "~@3 c4 ~@5 [c2,c3]@2 ~@5", AH: "[~@2 [c2,c3]@4 ~@16 c4@2 ~@7 c4@2 ~@6 c4@2 ~@10 [g4,c5]@2 ~@11]/2",
AI: "~@3 [g4,c5]@2 ~@14 [g4,b4]@2 ~@11", AJ: "~@2 [g4,b4] ~@7 [g4,a#4] ~@5", AK: "~@4 [g4,a#4]@2 ~@15 [e4,a4]@2 ~@9",
AL: "~@5 [e4,a4]@2 ~@14 [f4,a4]@2 ~@9", AM: "~@5 [f4,a4]@2 ~@15 [f4,g4]@2 ~@8", AN: "~@3 [f4,g4] ~@7 [f4,a4] ~@4",
AO: "~@6 [f4,a4]@2 ~@15 [f4,g4]@2 ~@7", AP: "[~@7 [f4,g4]@2 ~@14 a5@22 ~@2 a5@16 ~]/2", AQ: "g5@2 ~ g5",
AR: "f5@4 e5@3 ~ e5@6 d5 ~", AS: "[d5@7 ~@5 a5@11 ~ a5@8]/2", AT: "~ g5@16 ~@8 g5@7",
AU: "~ f5@8 e5@6 ~@2 e5@12 d5@2 ~", AV: "~ d5@16 ~@8 c5@6 ~",
})).s("gm_brass_section").gain(0.49)
// other · baritone sax · "Sax"
const baritone_sax = note(`<
~@7 A ~ B C ~@24 D ~ E F@3 G@6 ~ H ~ I ~ J ~@9 K ~ L ~@2 M N O P Q R S T ~@3 U ~@3 V ~
>`.pickRestart({
A: "~@4 c3 ~ c3 ~ e3 ~ e3 ~ f3 ~ g3 ~", B: "~@4 c3 ~ c3 ~ a2 ~ a2 ~ g2 ~ g2 ~", C: "c2@3 ~@13",
D: "~@5 c3 ~ c3 ~ e3 ~ e3 ~ f3 ~ g3", E: "~@11 c3@2 ~@2 c3@2 ~@2 a2@2 ~@2 a2@2 ~@2 g2@2 ~@3",
F: "[g2 ~@13 c3@5 ~@11 g3@5 ~@11 a3@2]/3", G: "[~@29 f3@10 ~@22 g3@10 ~@22 f3@10 ~@22 g3@10 ~@19 g3@14 ~@24]/6",
H: "~ g2@3 ~@12", I: "~ c4!2 e4@2 e4 ~ d4@2 c4@2 ~@5", J: "~ c3!2 e3@2 e3@2 d3@2 c3@2 ~@5",
K: "~@4 c4@2 c4@2 ~ e4@4 e4@2 ~@2 d4@4 c4@4 ~@7", L: "~@3 c3!2 e3@2 e3@2 d3@2 c3@2 ~@3", M: "~@3 c3@10 ~@19",
N: "~@2 g3@5 ~@9", O: "~@2 a3@5 ~@9", P: "~@5 f3@10 ~@17", Q: "~@5 g3@10 ~@17", R: "~@3 f3@5 ~@8", S: "~@3 g3@5 ~@8",
T: "~@7 g3@4 g#3@4 a3@4 ~@13", U: "~@4 g3@5 ~@7", V: "~@25 [c5,c6]@6 ~",
})).s("gm_baritone_sax").gain(0.43)
// drums · kick
const kick = s("bd").struct(`<
~@2 A@8 B C@3 D E@8 F C@3 A@3 G H@3 I@2 J K L@3 M N@3 O P@9 Q@3 R S@3 T U V W X Y Z AA AB AC AD AE AF AG AH@3 AI AJ@2
AK ~
>`.pickRestart({
A: "~@3 x ~ x ~ x", B: "~@12 x ~@7 x ~@6 x ~@4", C: "~@11 x ~@7 x ~@7 x ~@4", D: "~@11 x ~@6 x ~@7 x ~@5",
E: "~@5 x ~@3 x ~@3 x ~@2", F: "~@10 x ~@8 x ~@7 x ~@4", G: "~@12 x ~@7 x ~@8 x ~@2", H: "~@13 x ~@7 x ~@7 x ~@2",
I: "~@7 x ~@3 x ~@3 x", J: "~@15 x ~@7 x ~@7 x", K: "~@15 x ~@7 x ~@8", L: "x ~ x!2", M: "x ~@16 x ~@7 x ~@6",
N: "~ x ~@15 x ~@7 x ~@6", O: "~ x ~@16 x ~@7 x ~@5", P: "~ x ~@7 x ~@3 x ~@2", Q: "~@3 x ~@15 x ~@7 x ~@4",
R: "~@3 x ~@16 x ~@7 x ~@3", S: "~ x ~@3 x ~ x", T: "~@4 x ~@16 x ~@7 x ~@2", U: "~@5 x ~@15 x ~@7 x ~@2",
V: "~@3 x ~@7 x ~@3 x", W: "~@6 x ~@15 x ~@8 x", X: "~@7 x ~@15 x ~@7 x", Y: "~@7 x ~@15 x ~@8", Z: "x!2 ~ x",
AA: "x ~@7 x ~@16 x ~@6", AB: "~ x ~@7 x ~@15 x ~@6", AC: "~ x ~@7 x ~@16 x ~@5", AD: "~ x ~@3 x ~@7 x ~@2",
AE: "~@2 x ~@8 x ~@15 x ~@4", AF: "~@3 x ~@7 x ~@15 x ~@4", AG: "~@3 x ~@7 x ~@16 x ~@3", AH: "~ x ~ x ~@3 x",
AI: "~@4 x ~@7 x ~@16 x ~@2", AJ: "~@5 x ~@7 x ~@15 x ~@2", AK: "~@5 x ~@7 x ~@11 x ~@6",
})).gain(0.45)
// drums · snare
const snare = s("sd").struct(`<
~@2 A@8 B C@3 D E@8 F C@3 G A@3 H@3 I J K L M@3 N O@3 E@9 P C@3 Q A@3 R H I J L S M N O T E F C U A@3 V H@2 W ~
>`.pickRestart({
A: "x!4", B: "x ~@7 x ~@7 x ~@7 x ~@6 x", C: "~@7 x ~@7 x ~@7 x ~@7 x", D: "~@7 x ~@7 x ~@6 x ~@7 x ~",
E: "~@3 x ~@3 x ~@3 x ~@3 x", F: "~@6 x ~@8 x ~@7 x ~@7 x", G: "~ x!3", H: "~ x ~@7 x ~@7 x ~@7 x ~@6",
I: "~ x ~@8 x ~@7 x ~@7 x ~@5", J: "~ x ~@3 x ~@3 x ~@3 x ~@2", K: "~@2 x ~@8 x ~@7 x ~@7 x ~@4",
L: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", M: "~ x ~ x ~ x ~ x", N: "~@4 x ~@7 x ~@8 x ~@7 x ~@2",
O: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", P: "~@6 x ~@7 x ~@7 x ~@8 x", Q: "~@7 x ~@7 x ~@8 x ~@7",
R: "x ~@8 x ~@7 x ~@7 x ~@6", S: "~@3 x ~@7 x ~@7 x ~@8 x ~@3", T: "~@5 x ~@7 x ~@8 x ~@7 x ~",
U: "~@7 x ~@7 x ~@7 x ~@8", V: "x ~@7 x ~@7 x ~@8 x ~@6", W: "~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~@9 x ~@6",
})).gain(0.45)
// drums · hihat
const hihat = s("hh").struct(`<
~@2 A@8 B C@3 D E@8 F C@3 G A@2 H I@3 J E K L A@3 M I@3 N E@8 O C@3 P A@3 Q I N O C R A S I T E U C R A@3 S I@2 V ~
>`.pickRestart({
A: "x!8", B: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x",
C: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x", D: "~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~",
E: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", F: "~@2 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x", G: "~ x!7",
H: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@2", I: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
J: "~ x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~", K: "~@2 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
L: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4", M: "x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@2",
N: "~ x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~", O: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x",
P: "~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3", Q: "x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
R: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3", S: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@2",
T: "~ x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~", U: "~@2 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
V: "~ x ~@3 x ~@3 x ~@3 x ~@11 x ~@6",
})).gain(0.3)
// drums · crash
const crash = s("cr").struct("<~@82 [~@25 x ~@6] ~>").gain(0.45)
// drums · tambourine
const tambourine = s("tb").struct(`<
~@2 A@8 B C@3 D E@8 F C@3 G A@3 H@3 I J K L M@3 N O@3 E@9 P C@3 Q A@3 R H I J L S M N O T E F C U A@3 V H@2 W ~
>`.pickRestart({
// … 13 more lines
More by Ross
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.