0:00/0:00
// You Don't Fool Me — Queen
// 123 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 15 "SLOWSTRING" named as a string part, played on string ensemble 1 (its distortion guitar patch is not one)
// note: Full arrangement: all 124 bars on a 32-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): +CHORUS GT.
setcpm(123/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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
~@7 A B@2 C@5 A B@2 C@5 D E@2 F@5 D E@2 F@5 D E@2 F@5 D E@2 F@5 ~@20 D E@2 G@5 H E@2 G@5 H E@2 G@5 H E@2 G@5 D E@2 F@5
D E@2 F@5 ~
>`.pickRestart({
A: "[b3,g4,b4]", B: "[~@2 [d4,b4,d5]@3 ~ [c4,a4,c5]@3 ~ [b3,g4,b4]@3 ~ [a3,f#4,a4]@18]/2",
C: "[~@4 [d4,b4,d5]@6 ~@2 [c4,a4,c5]@6 ~@2 [b3,g4,b4]@6 ~@2 [a3,e4,a4]@49 ~@3 [a3,e4,a4]@3 ~ [a3,e4,a4]@6 ~@2 [b3,g4,b4]@64 ~@4]/5", // G F Em A5 Em
D: "[b3,d4,e4,g4,b4]", // Em7
E: "[~@2 [d4,e4,g4,b4,d5]@3 ~ [c4,e4,g4,a4,c5]@3 ~ [b3,d4,e4,g4,b4]@3 ~ [a3,d4,e4,f#4,a4]@18]/2", // Em7 Am7 Em7 D
F: "[~@4 [d4,f#4,a4,b4,d5]@6 ~@2 [c4,d4,e4,a4,c5]@6 ~@2 [b3,d4,g4,a4,b4]@6 ~@2 [a3,c4,d4,e4,a4]@49 ~@3 [a3,c4,d4,e4,a4]@3 ~ [a3,c4,d4,e4,a4]@6 ~@2 [b3,e4,g4,b4]@64 ~@4]/5", // Bm7 Am G Am Em
G: "[~@4 [d4,e4,a4,b4,d5]@6 ~@2 [c4,d4,e4,a4,c5]@6 ~@2 [b3,d4,f#4,a4,b4]@6 ~@2 [a3,b3,e4,g4,a4]@49 ~@3 [a3,c4,d4,e4,a4]@3 ~ [a3,c4,d4,e4,a4]@6 ~@2 [b3,e4,g4,b4]@64 ~@4]/5", // Dsus2 Am Bm7 Em Am Em
H: "[b3,c4,e4,g4,b4]", // Cmaj7
})).s("gm_epiano2").gain(0.22)
// bass · electric bass finger · "FINGERDBAS"
const bass = note("<~@15 A@41 B C@2 A B C@2 D@2 E F G H I@2 J K L@2 ~@16 A@30 M ~@2>".pickRestart({
A: "e1@3 ~@5 e1@3 ~@3 a1@2 b1@3 ~ d2@3 ~ b1@3 ~ g1@3 ~", B: "e1@3 ~@5 e1@3 ~@3 e1@2 g1@3 ~ g1@6 ~@2 g1@3 ~",
C: "[c2@3 ~@5 c2@3 ~@3 g1@2 c2@3 ~ c2@3 ~ c2@3 ~ d#2@20 ~@8 d#2@2 d2 ~@2 a1@2 ~, ~@59 c2@2 ~@3, ~@30 b1 ~]/2",
D: "g1@3 ~@5 g1@3 ~@3 g1@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@3 ~",
E: "a1@3 ~@5 a1@3 ~@3 a1@2 a1@2 ~@2 a1@3 ~ a1@2 ~@2 a1@3 ~", F: "d2@10 ~@2 d2@3 ~ d2@7 ~ d2@2 ~@2 d2@3 ~",
G: "e1@24 ~@4 e1@3 ~", H: "e1@24 ~@4 e2@3 ~", I: "d2@24 ~@4 d2@3 ~", J: "c2@24 ~@4 c2@3 ~",
K: "c2@15 ~ c2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~", L: "[e1@63 ~]/2", M: "e1@3 ~@5 e1@3 ~@3 a1@2 b1@3 ~ d2@3 ~ b1@3 ~@5",
})).s("gm_electric_bass_finger").gain(0.22)
// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note("<~@15 A@41 B C D A B C D C@2 A ~@25 A@31 ~@2>".pickRestart({
A: "~@12 a1 ~@19", B: "~@12 e1 ~@19", C: "~@12 g1 ~@19", D: "~@15 g1",
})).s("gm_electric_bass_finger").gain(0.16)
// chords · acoustic guitar steel · "+12SNR GTR"
const acoustic_guitar_steel = note(`<
~@7 A B@7 A B@7 A B@7 A B@7 A B@7 A B@7 ~@20 A C@7 A C@7 A C@7 A C@7 A B@7 A B@7 ~
>`.pickRestart({
A: "[b3,g4,b4]", // Em
B: "[~@4 [d4,b4,d5]@6 ~@2 [c4,a4,c5]@5 ~@3 [b3,g4,b4]@6 ~@2 [a3,f#4,a4]@37 ~@3 [d4,b4,d5]@6 ~@2 [c4,a4,c5]@5 ~@3 [b3,g4,b4]@6 ~@2 [a3,e4,a4]@37 ~@15 [a3,e4,a4]@3 ~ [a3,e4,a4]@6 ~@2 [b3,g4,b4]@64 ~@4]/7", // G F Em D G F Em A5 …
C: "[~@4 [d4,b4,d5]@6 ~@2 [c4,a4,c5]@5 ~@3 [b3,g4,b4]@6 ~@2 [a3,f#4,a4]@37 ~@3 [d4,b4,d5]@6 ~@2 [c4,a4,c5]@5 ~@3 [b3,a4,b4]@6 ~@2 [a3,e4,a4]@37 ~@15 [a3,e4,a4]@3 ~ [a3,e4,a4]@6 ~@2 [b3,g4,b4]@64 ~@4]/7", // G F Em D G F B7 A5 …
})).s("gm_acoustic_guitar_steel").gain(0.22)
// other · electric guitar muted · "MUTED GTR" · E A5 E7 E5 G E A5 E7 …
const electric_guitar_muted = note(`<
~@3
[[e2,e3]@4 ~@4 [e2,e3]@3 ~@3 [e2,a2]@2 b2@3 ~ [e2,d3]@3 ~ [b2,e3]@2 ~@2 [g2,g3]@3 ~]!52
~@12
[e2@4 ~@4 e2@3 ~ e2 ~ e2 ~ g2@3 ~ g2@3 ~ e2@2 ~@2 e2 ~ e2 ~]!24
[[e2,e3]@4 ~@4 [e2,e3]@3 ~@3 [e2,a2]@2 b2@3 ~ [e2,d3]@3 ~ [b2,e3]@2 ~@2 [g2,g3]@3 ~]!30
[[e2,e3]@4 ~@4 [e2,e3]@3 ~@3 [e2,a2]@2 b2@3 ~ [e2,d3]@3 ~ [b2,e3]@2 ~@6]
~@2
>`).s("gm_electric_guitar_muted").gain(0.24)
// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<~@6 A@4 B@6 C@40 D@4 E@4 F@8 G@6 H@16 I@8 J@4 A@4 B@6 K@7 ~>".pickRestart({
A: "[~@15 [b3,e4,g4,b4]@32 [e2,a3,d4,f#4,a4]@17, ~@30 e2@63 ~@35]/4", // Em D
B: "[~@31 a4@63 ~ b4@63 [e2,e4,g4,b4]@34, ~@15 [a2,a3,c4,e4]@32 b3@49, ~@47 [e2,e4,g4]@32 ~@17]/6", // Em Am Em
C: "[~@30 [e2,a3,d4,f#4,a4]@64 ~ a4@63 ~ b4@63 [e2,e4,g4,b4]@34, ~@47 [a2,a3,c4,e4]@32 b3@49, ~@79 [e2,e4,g4]@32 ~@17]/8", // D Em Am Em
D: "[~@19 [d4,f4]@11 [c2,g3,e4]@24 ~ a4@39 [e2,b3,e4,g4,b4]@34, ~@18 d2@12 [c4,g4]@65 ~@33, ~@54 [d#2,d#4]@41 ~@33]/4", // Dm C Em C5 D#
E: "[~@19 [d4,f4]@11 [c2,g3,e4]@24 ~ a4@39 [g2,b3,d4,g4,b4]@34, ~@18 d2@12 [c4,g4]@65 ~@33, ~@54 [d#2,d#4]@41 ~@33]/4", // Dm C G C5 D#
F: "[~@30 a2@33 [d2,e5]@31 ~ b4@63 ~ a4@63 [c2,g3,c4,e4,g4]@34, ~@15 [e4,a4,c5]@33 ~@31 [d2,a3,d4,f#4]@33 ~@16, ~@30 g4@63 ~ [e2,b3,e4,g4]@65 ~@97]/8", // Dsus2 C Am D Em
G: "[~@15 [d2,a3,d4,f#4]@15 [e2,b3,e4,b4]@64 [e2,b3,e4,b4]@64 [e2,a3,d4,f#4,a4]@34, ~@15 g4@64 ~@17]/6", // D E5 D
H: "[~@31 g4@63 ~@32 [a3,d4,f#4]@32 [c4,e4,g4,b4]@64 [e2,a3,d4,f#4,a4]@34, ~@30 [e2,b3,c4,e4,a4]@64 e2@64 a2@63 ~@35, ~@47 [b3,e4,g4]@17 ~@64, ~@95 b4@63 ~@98]/8", // D Cmaj7 D Am Em
I: "[~@31 g4@63 ~ b4@63 [c4,e4,g4,b4]@64 [e2,a3,d4,f#4,a4]@34, ~@30 [e2,b3,c4,e4,a4]@64 [e2,a3,d4,f#4]@64 a2@63 ~@35]/8", // Cmaj7 D Am D
J: "[~@31 g4@63 ~ b4@33, ~@15 [e2,b3,c4,e4,a4]@32 [e2,a3,d4,f#4]@17]/4", // Am D
K: "[~@30 [e2,a3,d4,f#4,a4]@64 ~ a4@63 ~ b4@64 ~, ~@47 [a2,a3,c4,e4]@32 [e2,b3,e4,g4]@32 ~]/7", // D Am Em
})).s("gm_synth_strings_1").gain(0.16)
// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<~@9 [~@6 a4@2 g4 ~ a4@2 g4 ~ a4@2] [g4 ~@15] ~@113>")
.s("gm_electric_guitar_jazz").gain(0.2)
// other · distortion guitar · "JAZZ GTR"
const distortion_guitar = note(`<
~@12 A@2 B ~@2 C@5 D ~@4 E F G@2 ~@2 H ~ I@2 J K L M@2 ~ N O P Q ~@7 R S@4 T@4 U@2 V W@6 X Y@2 ~@4 Z@4 ~@5 AA@3 ~@9 AB
AC@4 ~ AD AE@2 AF@4 AG AH@3 AI@2 ~@5
>`.pickRestart({
A: "[~@4 e4@10 b3@2 a3 ~@2 a3 ~@5 g3@2 e3@11 d3 c3 b2 ~@2 f2 e2 ~@19, ~@24 a3@2 ~@15 a2@2 ~@21, ~@21 g2 ~@10]/2",
B: "a4@15 ~ a4@4 d5 ~@11",
C: "[~@23 c4 d4@4 e4@21 ~@6 c4 d4@4 e4@21 ~@6 f#4 g4@4 e4@21 ~@6 f#4 g4@4 e4@16 a4@2 g4 ~@13 a3@2 b3 ~]/5",
D: "~@4 e4 ~@3 e4@6 d4@2 ~ d4@2 b3 ~@12, ~@8 e4 ~@7", E: "~@12 a4@2 g4@2 a4@9 ~@3 e4@2 d4@2", F: "e4@5 ~@11",
G: "[~@14 [e3,a3]@2 b3@2 ~@2 d4@4 e4 ~@3 [b4,d5]@34 ~@2]/2", H: "~@2 a4@2 g4 ~ b4 ~ d5@7 ~",
I: "[~@4 a5@4 g5 ~@7 a5@4 g5 ~@7 e5@18 ~@5 f4 ~@12, ~@23 d5 b4 g4 ~@6, ~@47 c5@2 a4@2 ~@13]/2", J: "~@19 d4 e4@3 ~@9",
K: "~@4 [d4,g4]@3 d4 ~@2 [d4,g4]@3 ~ d4 ~ [d4,g4]@3 ~ d4 ~ [d4,g4]@3 d4 ~@2 [d4,g4]@3 ~", L: "d4 ~ e4@13 ~@17",
M: "[~@12 e4@4 e4@2 e4@2 e4@2 e4@2 e4@2 e4@2 e4@2 e4 e4@33]/2", N: "~@5 a5@3", O: "g5@3 ~@17 a5@12", P: "g5@3 ~@29",
Q: "b4@6 ~@2 a4@7 ~ g4@6 ~@2 f#4@8", R: "~@24 [g4,a4,b4,c5] [c4,d4,e4,f4] b3 [g3,a3] [e3,f3] [c3,d3]@2 ~",
S: "[b4@20 a4@2 b4@3 ~@3 g4@21 ~@3 a4@5 ~@3 g4@2 a4@18 ~@4 f#4@5 ~@3 d#4@24 a4@4 ~@6 g#4 c#5, ~@125 c#4@3]/4",
T: "[f#5@23 e5@4 ~ b4@19 a4 [e4,f4,g4] d4 [b3,c4] a3 g4@4 ~@4 c5@28 c5@4 d5@32 ~@4]/4", // Em Cmaj7
U: "[b3@3 d4@2 d4@2 ~ b3@3 g4@2 d4@2 ~ g4@2 ~ g4@2 b4@3 g4@2 g4@2 ~ g4@2 b4@2 ~ g4@2 d5@3 b4@3 g5@3 d5@2 d5@3 g5@2 ~ a5@9 g5@2]/2",
V: "a5@16 [a4,a#4] [g4,g#4] [e4,f4] [b3,c4,d4] [f3,g3,a3] ~@11, ~@5 a5@3", // A#maj7 G#maj7 Fmaj7 Bm F
W: "[d5@12 c#5 [b4,c5] [g4,a4] [d4,e4,f4] [b3,c4] [g3,a3] [e3,f3] [f4,g4,g#4,a4] [d4,e4] ~ a3 [f3,g3] [d3,e3] ~@2 g2 e5@11 ~ e5@6 d5@2 e5@2 g5@2 e5@2 ~ e5@2 g5@2 e5@12 ~ e5@6 d5@2 e5@2 g5@2 e5@2 d5@2 e5@2 g5@2 e5@12 e5@6 d5@2 e5@2 g5@2 e5@2 d5@2 e5@2 g5@2 e5@8 e5@4 e5@6 d5@2 e5@2 g5@2 e5@2 d5@2 e5@2 g5@2 e5@12 e5@2 d5@2 c5@2 b4@2 c5@2 b4@2 c5@2 b4@2 a4@2 g4@2 a4@2 g4@2, ~@21 [b3,c4]@2 ~@2 [b2,c3]@2 ~@27 d5@2 ~@136, ~@13 a2 ~@82]/6", // Cmaj7 Gsus2 Dm Cmaj7 Gsus2 Fmaj7 Dsus2 Fsus2 …
X: "f#4@2 g4@2 f#4@2 e4@2 ~ e4@2 ~ d4@2 b3@2 f#4@2 g4@2 f#4@2 g4@2 f#4@2 e4@2 f#4@2 e4@2, ~@4 f#4 ~@11",
Y: "[b3 d4 e4@30]/2", Z: "[[e3,b3]@62 d4@57 ~@9]/4",
AA: "[~@30 d4@49 ~ [d4,e4] [b3,c4] a3 [f3,g3] e3 d3 ~@6 d2@2 c2 ~, ~@43 c3 a2 f2 ~@2, ~@87 b2@2 g2@2 e2@2 ~@3]/3", // Dsus2 Cmaj7 Fsus2
AB: "~@16 b4@5 e5@6 b4@5", AC: "[a4@45 ~@2 e5 ~@4 e5@8 g5@47 ~@21, ~@45 e4@2 ~@81, ~@23 g5@3 ~@38, ~@23 a4 ~@40]/4",
AD: "~@23 [c5,d5] [g4,a4,b4] [d4,e4,f4] c4 [a3,b3] ~ f3 ~@2, ~@14 g3 ~", AE: "e4/2",
AF: "[a4@60 a4@37 ~@7 b3@4 d4@4 e4@3 ~ d4@3 ~@9]/4", AG: "~@8 b3@3 d4@3 ~@2 e4@3 ~@3 g4@3 ~@2 a4@3 ~@2",
AH: "[a4@4 ~@2 a4@3 ~@2 a4@4 ~ g4@5 ~@10 e4@59 ~@6]/3", AI: "[e4@31 ~]/2",
})).s("gm_distortion_guitar").gain(0.3)
// chords · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@42 A@2 ~@36 B@3 ~@5 B@3 ~@33>".pickRestart({
A: "[~@13 [c3,g3]@35 ~@16]/2", B: "[~@10 d4@19 ~@3]/3",
})).s("gm_guitar_harmonics").gain(0.3)
// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@78 A@8 B@8 C@8 D@8 E@6 F@7 ~>".pickRestart({
A: "[~@31 g4@63 [b3,e4,g4]@32 [a3,d4,f#4]@32 [a2,c4,e4,g4]@64 [e2,b3,e4,g4]@34, ~@15 [e2,b3,e4]@32 e2@32 ~@49]/8", // Em D Am7 Em E5
B: "[~@31 g4@63 ~@32 [a3,d4,f#4]@32 [a2,c4,e4,g4]@64 [e2,b3,e4,g4]@34, ~@15 [e2,b3,e4,a4]@32 e2@32 ~@49, ~@47 [b3,e4,g4]@17 ~@64, ~@95 b4@64 ~@97]/8", // D Am7 Em Esus4 Em
C: "[~@31 g4@63 ~ [d4,b4]@63 [a2,c4,e4,g4]@64 [e2,b3,e4,g4]@34, ~@30 [e2,b3,e4,a4]@64 [e2,a3,f#4]@65 ~@97]/8", // G Am7 Em Esus4 F#m7
D: "[~@31 g4@63 ~ [d4,b4]@63 [b3,e4,g4,b4]@64 [e2,a3,d4,f#4,a4]@34, ~@30 [e2,b3,e4,a4]@64 [e2,a3,f#4]@64 e2@63 ~@35]/8", // G Em D Esus4 F#m7
E: "[~@31 a4@63 ~ b4@63 [e2,e4,g4,b4]@34, ~@15 [a2,a3,c4,e4]@32 b3@49, ~@47 [e2,e4,g4]@32 ~@17]/6", // Em Am Em
F: "[~@30 [e2,a3,d4,f#4,a4]@64 ~ a4@63 ~ b4@64 ~, ~@47 [a2,a3,c4,e4]@32 [e2,b3,e4,g4]@32 ~]/7", // D Am Em
})).s("gm_string_ensemble_2").gain(0.26)
// other · string ensemble 1 · "SLOWSTRING"
const string_ensemble_1 = note("<~@55 A@2 B C A@2 B C ~@3 D@6 E@3 ~@49>".pickRestart({
A: "~@2 d4 ~ d4@3 b3 d4 e4 d4 ~@5", B: "~@2 e4 ~ e4@3 c4 e4 f4 e4 ~@5", C: "~@2 d#4 ~ d#4@3 c4 d#4 f4 d#4 ~@5",
D: "[~@31 [e3,b3,e4]@63 ~ [d3,a3,d4]@63 ~ [e3,g3,b3]@33, ~@15 b2@32 a2@32 c3@17]/6", // E5 D5 Em
E: "[~@15 [f#3,a3,d4]@4 ~ [a3,d4]@5 ~@2 [g3,b3,e4]@64 ~@5, ~@14 d3@5 [d3,f#3]@6 ~ e3@65 ~@5]/3", // D D5 Em D
})).s("gm_string_ensemble_1").gain(0.33).pan(0.8)
// chords · overdriven guitar · "OVERDRIVE" · Em C Em D5 Em C5 E5 C5 …
const overdriven_guitar = note(`<
~@55
[~@2 [b3,g4] ~ [b3,g4]@3 [g3,e4] [b3,g4] [d4,a4] [b3,g4] ~@5]!2
[~@2 [c4,g4] ~ [c4,g4]@3 [b3,e4] [c4,g4] [d4,a4] [c4,g4] ~@5]
[~@2 [c4,g4] ~ [c4,g4]@3 [g3,e4] [c4,g4] [d4,a4] [c4,g4] ~@5]
[~@2 [b3,g4] ~ [b3,g4]@3 [g3,e4] [b3,g4] [d4,a4] [b3,g4] ~@5]!2
[~@2 [c4,g4] ~ [c4,g4]@3 [g3,e4] [c4,g4] [d4,a4] [c4,g4] ~@5]!2
~@61
>`).s("gm_overdriven_guitar").gain(0.33).pan(0.3)
// drums · kick
const kick = s("bd").struct("<~@15 [x!2]!58 x ~@17 [x!2]!31 ~@2>").gain(0.4)
// drums · snare
const snare = s("sd").struct("<~@15 A@15 B A@7 C A@19 D A@9 D A@4 ~@17 E A@15 F A@15 ~@2>".pickRestart({
A: "~ x ~ x", B: "~@4 x ~@5 x ~ x ~@2 x", C: "~@2 x ~ x!2 ~ x", D: "~@4 x ~@7 x ~@2 x", E: "~@12 x ~@2 x",
F: "~@4 x ~@4 x ~@2 x ~@3",
})).gain(0.48)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@30 A ~@7 B ~@15 C ~@3 A ~@9 A ~@21 A ~@7 D ~@7 E ~@17>".pickRestart({
A: "~@7 x", B: "~@7 x ~@5 x ~@2", C: "~@11 x ~@4", D: "~@7 x ~ x ~ x ~@2 x!2", E: "~@6 x!2 ~@8",
})).gain(0.24)
// drums · low tom
const low_tom = s("lt").struct("<~@46 A ~@7 B ~@7 C D E ~ B ~@3 B ~@2 D ~@24 F ~@7 F ~@17>".pickRestart({
A: "~@3 x ~@4", B: "~@7 x", C: "~@16 x ~@4 x ~@5 x ~@4", D: "x", E: "~@27 x ~@4", F: "~@4 x!2 ~@2",
})).gain(0.56)
// drums · hihat
const hihat = s("hh").struct(`<
~@15 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
B ~@18 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B@2 ~@2
>`.pickRestart({
A: "x!8", B: "x!7 ~",
})).gain(0.4)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@2
>`.pickRestart({
A: "x",
})).gain(0.08)
// drums · mid tom
const mid_tom = s("mt").struct("<~@46 A ~@15 B ~@3 C ~@3 C ~@35 D ~@17>".pickRestart({
A: "~@7 x", B: "~@15 x ~@16", C: "~@3 x", D: "~@11 x ~ x!2 ~",
})).gain(0.48)
// drums · open hat
const open_hat = s("oh").struct(`<
~@16 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
~@17 B ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3
>`.pickRestart({
A: "~@7 x", B: "~@3 x",
})).gain(0.4)
// drums · high tom
const high_tom = s("ht").struct("<~@46 A ~@17 B ~ C ~@3 C ~@53>".pickRestart({
A: "~@5 x ~@2", B: "~@21 x!4 ~@7", C: "~@20 x!4 ~@8",
})).gain(0.4)
// drums · crash
const crash = s("cr").struct(`<
~@15 A ~@23 A ~@7 A ~@7 A ~@2 B A ~@3 A ~ A ~ A ~ A ~ A ~ A ~@7 A ~@9 A ~@7 A ~@7 A ~@7 A ~@8
>`.pickRestart({
A: "x", B: "~@3 x",
})).gain(0.4)
// … 31 more lines
More by Queen
We Are The Champions1978 · F major · 95 bpmRadio Ga GaF major · 110 bpmWho Wants to Live ForeverG major · 72 bpmAnother One Bites The DustG major · 115 bpmBohemian RhapsodyB♭ major · 70 bpmUnder PressureD major · 113 bpmCrazy Little Thing Called LoveD major · 233 bpmFriends Will Be FriendsG major · 74 bpm
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.