0:00/0:00
// White Man — Queen
// 143 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 148 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(143/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 · overdriven guitar
const overdriven_guitar = note("<~@101 A@3 ~@6 B C ~@12 D@2 ~ E ~ E ~ F ~ G ~ H ~ I ~ H ~ J K L M N O@2>".pickRestart({
A: "[~@4 db1 ~@14 f1@52 ~]/3", B: "~@5 g4 a4@2 c5@4 a4@3 g4@3 f4@5 ~", C: "d4@23 ~", D: "[~@23 e2@10 d2@11 ~@4]/2",
E: "e2@3 d2@3 ~@2", F: "e2@9 d2@8 ~@7", G: "e2@9 d2@7 ~@8", H: "e2@8 ~ d2@7 ~@8", I: "e2@8 ~ d2@8 ~@7",
J: "[f2,c3]@4 ~@5 [f2,c3]@4 ~@5 [f2,c3]@4 ~@2", K: "~@3 [f2,c3]@4 ~@5 [f2,c3]@4 ~@5 [f2,c3]@3",
L: "~@6 [f2,c3]@4 ~@5 [f2,c3]@3 ~@6", M: "[f2,c3]@4 ~@5 [f2,c3]@3 ~@6 [f2,c3]@4 ~@2",
N: "~@3 [f2,c3]@4 ~@5 [f2,c3]@3 ~@6 [f2,c3]@3", // F5
O: "[~@2 [f2,c3] ~@2 [f2,c3] ~ [f2,c3]@2 ~ [f2,c3]@2 ~ [f2,c3]@2 ~]/2", // F5
})).s("gm_overdriven_guitar").gain(0.64).pan(0.3)
// chords · distortion guitar
const distortion_guitar = note(`<
~@3 A B@3 C@2 ~ D E ~@6 F@2 G@2 ~ H I@2 J@3 ~@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 ~@3 R@2 S@2 T@6 U V W@2 X@2 Y@4 Z AA K@2
L@2 M@2 N@2 O@2 P@2 Q@2 AB AC AD@2 AE@2 AF@2 AG AH AI@2 AJ@2 AK AL AM AN AO AP AQ@3 K@2 L@2 M@2 N@2 AR@2 AS@2 AT@2 P
AU@3 AV AW AV AW AV AW AV AW AV AW AV AW AV AW AV AW ~@7
>`.pickRestart({
A: "~@13 c3@8 ~@3", B: "[~@17 g3@3 ~ a3@21 ~@8 g3@6 ~@2 [d3,a3]@4 ~@3 [d3,a3]@4 ~@3, ~@43 [d3,a3]@9 ~@20]/3",
C: "[~@3 g3@4 [d3,a3]@21 ~@20, [d3,a3]@5 ~@43]/2", D: "~@8 f3@9 ~ c3@5 ~, ~@5 [c3,g3]@5 ~@7 g3@5 ~@2",
E: "~ [c3,g3]@3 ~@3 [c3,g3]@4 ~@13", F: "[~@25 e3@6 f3@7 g3@5 ~@2 a3@3, ~@11 a3@14 ~@23, ~@12 d3@29 ~@3 d3@4]/2",
G: "[~@4 d3@3 ~@3 a3@3 g3@3 a3@14 ~ [d3,a3]@5 ~ a3@4 g3@6 ~, ~@3 a3@3 ~@4 d3@20 ~@7 d3@11]/2", // D5
H: "~@3 g3 f3@2, ~@2 c3 ~", I: "[~ [c3,g3]@3 ~@3 [c3,g3]@3 ~@4 c3@2 f3@2 ~@3 g2@22 f2@5, ~@13 g3@4 ~@3 d3@20 ~@8]/2",
J: "[~@3 [d3,a3]@14 ~@7, ~ d2@13 ~@58]/3", K: "[f2@8 [d3,a3]@9 f2@10 [d3,a3]@9 f2@3 ~@3 f2@6, ~@39 [d3,a3]@5 ~@4]/2",
L: "[~@6 d3@10 ~@2 [bb2,f3]@9 [bb2,f3]@2 ~ [bb2,f3]@2 ~ bb2 ~@2 [bb2,f3]@2 ~ [c3,g3]@9, g2@17 ~@31]/2", // Bb5 C5
M: "[~@9 [d3,a3]@8 ~ f2@11 [d3,a3]@13 [d3,a3]@5 ~, f2@7 ~@17]/2", // D5
N: "[~@6 bb2@4 d3@7 ~ [bb2,f3]@8 ~ [bb2,f3] ~@2 [bb2,f3]@2 ~@4 bb2@3 [c3,g3]@8 ~, g2@18 ~@17 f3@4 ~@9]/2", // Bb5 C5
O: "[f2@9 ~@18 [d3,a3]@8 f2@3 ~@3 f2@5 ~@2, ~@9 [d3,a3]@11 ~@18 a3@6 ~@4, ~@18 f2@11 ~@19]/2", // D5
P: "[bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", Q: "[[g2,d3]@47 ~]/2",
R: "[[d3,a3]@4 ~@2 [d3,a3]@3 ~@2 [d3,a3]@3 g3@3 ~ d3@17 ~ [d3,a3]@6 g3@4 ~@2, ~@17 a3@17 ~@14]/2", // D5
S: "[[d3,a3]@2 ~@3 [d3,a3]@4 ~@2 a3@3 g3@3 [d3,a3]@17 ~@2 a3@6 g3@4 ~@2, ~@11 d3@5 ~@19 d3@7 ~@6, ~@36 g3 ~@11]/2", // D5
T: "[[c3,g3]@4 ~@2 g3@4 ~@2 g3@3 f3@2 ~ g3@15 ~@2 [c3,g3]@7 f3@5 [c3,g3]@4 ~@2 [c3,g3]@4 ~@2 [c3,g3]@3 f3@2 ~@2 g2@30 [d3,a3]@33 ~@3 f2@6 d2@6, ~@5 c3@5 ~@2 c3@22 ~@32 d3@29 ~@49]/6", // C5 D5
U: "[d3,a3]@23 ~", V: "[d3,a3]@2 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [c3,g3]@3",
W: "[[d3,a3]@5 [d3,a3]@4 ~@3 [d3,a3]@3 g3@2 ~ d3@17 ~ [d3,a3]@6 g3@5 ~, ~@17 a3@17 ~@14]/2", // D5
X: "[[d3,a3]@3 ~@3 [d3,a3]@3 ~@2 [d3,a3]@4 g3@2 ~ d3@17 ~ [d3,a3]@6 g3@4 ~@2, ~@17 a3@17 ~@14]/2", // D5
Y: "[g3@3 ~@3 c3@5 ~ g3@3 f3@3 g3@15 ~@3 c3@6 f3@4 ~ [c3,g3]@4 ~@3 g3@4 ~ [c3,g3]@4 ~@3 [g2,d3]@18 [f2,c3]@9 ~@3, c3 ~@4 g3@3 ~@4 c3@23 g3@7 ~@11 c3@4 ~@39]/4", // C5 G5 F5
Z: "[d2,a2]@23 ~", AA: "~ [f2,c3] ~ [f2,c3] ~@2 [f2,c3] ~ f2 c3 ~@2 [g2,d3] ~@2 [g2,d3] ~@2 d3@3 ~@3, ~@17 g2@3 ~@4",
AB: "[f2,f3,c4]@3 ~@6 [f3,c4]@2 ~@7 [f3,c4]@2 ~@4, ~@9 f2@4 ~@5 f2@4 ~@2", // F5
AC: "~ [f3,c4] ~@2 [f2,f3,c4] ~@3, ~@3 f2@5 ~@16", // F5
AD: "[[c3,g3]@3 ~@3 [c3,g3]@3 ~@3 [c3,g3]@3 f3@2 ~ g3@17 ~ [c3,g3]@3 f3@7 ~@2, ~@17 c3@17 ~@14]/2", // C5
AE: "[[c3,g3]@3 ~@3 [c3,g3]@3 ~@3 [c3,g3]@3 f3 ~@2 c3@2 c3@15 ~ [c3,g3]@2 f3@6 ~@4, ~@18 g3@17 ~@13]/2", // C5
AF: "[[g2,d3]@2 ~@4 [g2,d3]@3 ~@3 d3@3 c3@2 ~ [g2,d3]@16 ~@2 [g2,d3]@3 c3@7 ~@2, ~@11 g2@4 ~@33]/2", // G5
AG: "[g2,d3]@3 ~@3 [g2,d3]@3 ~@3 [g2,d3]@2 ~ [c3,f3,c4]@5 ~@4", // G5 F5
AH: "[g2,d3] ~@5 [g2,d3] ~@2 [g2,d3] ~ [g2,d3] ~@3 [f3,c4]@5 ~@4, ~@14 f2@7 ~@3, ~@15 c3@8 ~", // G5 F5
AI: "[[c3,g3]@3 ~@3 [c3,g3]@3 ~@2 [c3,g3]@3 ~ f3@2 ~ [c3,g3]@16 ~@2 [c3,g3]@2 ~ c3 ~@2 c3@2 ~@4, ~@39 f3@5 ~@4]/2", // C5
AJ: "[[c3,g3]@3 ~@3 [c3,g3]@3 ~@3 [c3,g3]@3 f3@2 ~ [c3,g3]@16 ~@2 c3@3 f3@6 ~@3, ~@18 g3 ~@5]/2", // C5
AK: "[g2,d3]@2 ~ [g2,d3]@2 ~ [g2,d3]@4 ~@2 [g2,d3]@3 c3@3 [g2,d3]@3 ~@3", // G5
AL: "[g2,d3]@9 ~@3 [g2,d3]@2 ~ [c3,f3]@7 ~@2, ~@15 [g2,d3] ~@8", // G5 F5 G5
AM: "[g2,d3]@3 ~@3 [g2,d3] ~@2 [g2,d3] ~@2 [g2,d3] ~@2 [f2,c3,f3,c4]@8 ~", // G5 F5
AN: "[g2,d3]@2 ~@4 [g2,d3] ~ d3 g2 ~ [g2,d3] ~@2 [f2,c3,f3,c4]@7 ~@3", AO: "[f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 ~@15",
AP: "[f2,c3] ~ c3 f2 ~ [f2,c3]@3 ~@16", // F5
AQ: "[~@17 c2@2 ~@2 [f2,g2] ~ [b2,c3] ~@48, [d2,a2]@71 ~, ~@20 e2@2 ~ d3@48 ~]/3", // Fsus2 Cmaj7 D5
AR: "[~@9 a3@7 ~ f2@11 [d3,a3]@13 ~ [d3,a3]@5 ~, f2@7 ~@17, ~ d3 ~@4]/2", // D5
AS: "[~@6 bb2@3 d3@7 ~@2 [bb2,f3]@8 ~ [bb2,f3] ~@2 f3 ~@4 [bb2,f3]@3 ~ g3@8 ~, g2@18 ~@11 bb2@2 ~@7 c3@8 ~@2]/2", // Bb5
AT: "[~@17 f2@10 [d3,a3]@8 f2@3 ~@3 f2@5 ~@2, f2@5 ~@19, ~@8 [d3,a3]@11 ~@19 a3@6 ~@4]/2", // D5
AU: "[[bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ f3@18, ~@9 bb2@26 ~]/3", AV: "[f3,c4]@8 ~ [d3,a3]@10 ~@5",
AW: "[bb2,f3] ~@2 [bb2,f3] ~@2 [bb2,f3] ~@2 a2 ~@2 [c3,g3] ~@2 [d3,a3]@7 ~@2", // Bb5 C5 D5
})).s("gm_distortion_guitar").gain(0.64).pan(0.3)
// chords · distortion guitar · soft notes
const distortion_guitar_soft = note(`<
A@2 ~ B C@2 ~@2 D E@2 F@8 ~@3 G@2 ~@4 H@3 ~@9 I ~@5 J@2 ~@31 I ~@19 K ~@20 L ~@27
>`.pickRestart({
A: "[~@11 c4 d4@2 ~ a3@2 ~ [e3,f3]@2 ~@3 f3@4 d3@4 [d3,a3]@16 ~, ~@14 c4@2 ~@7 e3 ~@24]/2", B: "~ a2@12 ~@11",
C: "[~ d3@3 ~@3 [d3,a3]@4 ~@3 d3@27 ~@7, a3@3 ~@11 a3@4 ~@30]/2", // D5
D: "~@8 g3@7 ~@3 [c3,g3]@4 ~@2, ~ a3 ~@4, ~@5 d3@5 ~@14", E: "[~ g3@3 f3@4 [c3,g3]@20 ~@20, ~ c3@5 ~@42]/2",
F: "[~@10 f3@2 ~@3 [g2,d3]@22 f2@7 ~@43 f2@8 d2@10 [d3,a3]@37 a2@9 c3@5 ~@3 [d3,a3]@3 ~@4 [d3,a3]@4 ~@6 g3@4 ~@12, ~@44 d2@17 ~@112 d3@5 ~@14, ~@52 [d3,a3]@37 ~@83 a3@3 ~@17]/8", // G5 D5
G: "[~@2 [c3,g3]@4 ~@2 g3@3 ~ f3@3 ~ c3@17 ~@15, ~@8 c3@6 ~ g3@20 ~@13]/2", H: "[~@3 f2@8 d2@10 [d3,a3]@31 ~@20]/3",
I: "~@7 d3@3 ~@2", J: "[c4 d4@2 ~ a3@2 ~ e3 f3@2 ~@2 f3@4 d3@4 [d3,a3]@16 ~@12, ~@3 c4@2 ~@7 e3 ~@35]/2",
K: "~@15 c4@7 ~@2", L: "~@13 d3@5 ~@6",
})).s("gm_distortion_guitar").gain(0.4).pan(0.3)
// bass · electric bass pick
const bass = note(`<
~@31 A@2 B C D@2 E F G@2 H I J@2 K@2 ~ L@2 M@2 N@2 O@2 P@2 Q R S@2 T@2 U@2 V@2 W X A@2 B C D@2 E Y G@2 H I J@2 Z AA
AB@2 AC@2 AD AE AF AG AH@2 AI@2 AJ AK AL AM AN AO@4 A@2 B C AP@2 E AQ D@2 E AQ G@2 H AR AS@2 AT AU AV AW AX AY AZ BA
AT AU AV AW AX AY AZ BB BC@3 BD BE BF BG
>`.pickRestart({
A: "[f2@9 d2@9 f2@10 d2@7 ~@4 d2 ~@2 d2@4 ~@2, ~@6 f2 ~]/2", B: "g1@3 bb1",
C: "~@3 bb1 ~@2 bb1 bb1@3 ~@3 d2@9 ~@2, ~@4 c2 ~@3", D: "[f2@9 d2@9 f2@10 d2@7 ~ f2@3 d2 f2@2 d2@4 ~@2]/2",
E: "g1@5 ~ g1@2 ~@4 g1@4 ~@2 bb1@6", F: "~@3 bb1 ~@6 c2@4 ~ d2@9, ~ bb1 ~@2",
G: "[f2@9 d2@9 f2@9 d2@9 ~@3 d2 ~@2 d2@4 ~@2, ~@6 f2 ~]/2", H: "bb1@3 bb1@3 bb1@2 ~ bb1@2 ~",
I: "bb1@4 ~@2 bb1@4 ~@2 bb1@3 ~@3 bb1@5 ~", J: "g1/2", K: "[d2@7 ~]/2",
L: "[d2@2 ~@4 d2@3 ~@3 d2@3 c2@3 d2@24 c2@5 ~]/2", M: "[d2@3 ~@2 d2@3 ~@4 d2@3 c2@3 d2@16 ~@2 d2@6 c2@3 ~@3]/2",
N: "[c2@2 ~@4 c2@3 ~@3 c2@2 ~ bb1@2 ~ c2@15 ~@3 c2@6 bb1@5 ~]/2",
O: "[c2@3 ~@3 c2@3 ~@3 c2@3 bb1@3 g1@14 ~@4 f1@6 d1@6]/2", P: "[d2@18 f1@3 d1@2 ~]/2", Q: "d2@11 ~",
R: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2@2 ~ d2@2 ~",
S: "[d1@3 ~@3 d2@2 ~@3 d2@4 c2@2 d2@17 ~@2 d2@5 c2@6 ~]/2",
T: "[d2@3 ~@3 d2@2 ~@3 d2@3 c2@3 d2@17 ~@2 d2@5 c2@4 ~@3]/2",
U: "[c2@3 ~@3 c2@3 ~@3 c2@2 ~ bb1@2 ~ c2@15 ~@3 c2@6 bb1@6]/2",
V: "[c2@2 ~@4 c2@3 ~@3 c2@2 bb1@3 g1@18 ~ f1@4 ~ d1@6 ~]/2", W: "~@12 d1 ~@5 d1@5 ~, d2@11 ~",
X: "f1 ~@2 [f1,g1] ~ f1 ~@2 f1@2 ~@2 g1 ~@2 g1 ~@2 g1@4 ~@2", Y: "~@3 bb1 ~@6 c2@5 d2@9, ~ bb1 ~@2",
Z: "[f1,f2] ~@2 f1 ~@2 [f1,f2] ~", AA: "~@3 [f1,f2]@3 ~@6 [f1,f2]@2 ~@10",
AB: "[c2@3 ~@3 c2@2 ~@4 c2@3 bb1@2 ~ c2@15 ~@3 c2@3 bb1@8 ~]/2",
AC: "[c2@2 ~@4 c2@2 ~@4 c2@3 bb1@3 c2@14 ~@3 c2@3 bb1@7 ~@3]/2", AD: "g1@3 ~@3 g1@3 ~@3 g1@2 ~ f1@3 g1@5 ~",
AE: "g1 ~@5 g1 ~@2 g1 ~@2 g1@3 f1@7 ~@2", AF: "g1 ~@5 g1 ~@2 g1 ~@2 g1@3 f1@9",
AG: "g1 ~@5 g1 ~@2 g1 ~@2 g1@2 ~ f1@2 ~ g1@4 ~@2", AH: "[c2@2 ~@4 c2@3 ~@3 c2@3 bb1@3 c2@15 ~@3 c2 ~@2 bb1@9]/2",
AI: "[c2@3 ~@3 c2@3 ~@3 c2@3 bb1@3 c2@10 ~@2 c2 ~@2 c2 ~@2 c2@3 bb1@8 ~]/2", AJ: "g1@3 ~@3 g1@2 ~@4 g1@3 f1@7 ~@2",
AK: "g1@3 ~@3 g1@2 ~@4 g1@3 f1@9", AL: "g1 ~@5 g1 ~@2 g1 ~@2 g1@2 ~ f1@9", AM: "g1 ~@5 g1 ~@2 g1 ~@2 g1@2 ~ f1@7 ~@2",
AN: "f1 ~@2 f1 ~@2 f1@2 ~@16", AO: "[f1 ~@2 f1 ~@2 f1 ~@16 d1@68 ~@5]/4",
AP: "[f2@9 d2@9 f2@10 d2@7 ~ f2@3 ~ f2@2 d2@4 ~@2, ~@39 d2@2 ~@7]/2", AQ: "~@3 bb1@2 ~@5 c2@5 d2@9, ~ bb1 ~@2",
AR: "bb1@4 ~@2 bb1@4 ~@2 bb1@3 ~@3 bb1@6", AS: "bb1!4", AT: "f2@7 ~@2 d2@7 ~@2 d2@2 ~ c2 ~@2",
AU: "bb1 ~@2 bb1 ~@2 bb1@2 ~ a1 ~@2 c2 ~@2 d2@6 ~@3", AV: "f2@8 ~ d2@7 ~@2 d2@2 ~ c2 ~@2",
AW: "bb1 ~@2 bb1 ~@2 bb1 ~@2 a1@2 ~ c2 ~@2 d2@6 ~@3", AX: "f2@8 ~ d2@7 ~@2 d2@3 c2 ~@2",
AY: "bb1 ~@2 bb1 ~@2 bb1@2 ~ a1@2 ~ c2 ~@2 d2@6 ~@3", AZ: "f2@9 d2@7 ~@2 d2@2 ~ c2@2 ~",
BA: "bb1 ~@2 bb1 ~@2 bb1 ~@2 a1@3 c2@2 ~ d2@5 ~@4", BB: "bb1 ~@2 bb1 ~@2 bb1 ~@2 a1@3 c2@2 ~ d2@5 ~ f1@2 ~",
BC: "[f1@2 ~@4 f1 ~@2 f1@2 ~@5 f1 ~ f1@2 ~@4 f1 ~@2 f1@2 ~@5 f1 ~@2 f1@2 ~@3 f1 ~@2 f1@2 ~@4 f1 ~@2 f1@2 ~@4 f1 ~@2 f1@2 ~@4 f1 ~@2, [d1,d2]@3 ~, eb1 ~@71]/3", // D
BD: "f1@3 ~@3 f1 ~@2 f1@3 ~@3 f1 ~@2 f1@2 ~@4", BE: "f1 ~@2 f1@2 ~@4 f1 ~@2 f1@3 ~@2 f1 ~@3 f1@2 ~",
BF: "~@3 f1 ~@2 f1@2 ~@7 f1@2 ~@4 f1@2 ~", BG: "~@6 f1 ~@8 f1@2 ~@7",
})).s("gm_electric_bass_pick").gain(0.72).pan(0.7)
// chords · brass section
const brass_section = note(`<
~@31 A@2 ~@2 B@2 ~@2 C@6 ~@24 D@3 ~@2 E@2 ~@2 F@6 ~@23 G@2 ~@2 H@2 ~@2 H@2 ~@2 I@6 ~@23
>`.pickRestart({
A: "[~ c4@8 [d3,d4]@7 ~@2 f3@7 ~@2 d4@14 ~@7, [c3,f3]@9 a3@8 c4@8 [d3,a3]@16 ~@7, ~@6 c3@3 ~@7]/2", // D F5 D5
B: "[f3@7 ~@2 [a3,d4]@9 [c3,f3,c4]@9 [d3,a3]@18 ~@3, [c3,c4]@3 ~@13, d3@2 ~@5 d3@10 ~@10 d4@12 ~@9]/2", // D5 F5 D5 C
C: "[[c3,f3,c4]@9 [d3,a3,d4]@9 [c3,f3,c4]@9 b3 d4@11 ~@9 f3@47 [g2,d3]@44 ~@5, ~@18 b2@2 ~@7 [d3,a3]@19 ~ bb2@47 ~@50]/6", // F5 D5 F5 G5 D5
D: "[~@24 [c3,f3]@9 [a3,d4]@9 f3@7 ~@2 d4@12 ~@9, ~@23 c4@10 d3@7 ~@2 [c3,c4]@9 ~@21, ~@49 [d3,a3]@16 ~@7]/3", // F5 D5 C D5
E: "[f3@7 ~@2 [a3,d4]@9 [c3,f3,c4]@9 [d3,a3]@18 ~@3, [c3,c4]@3 ~@13, d3@2 ~@5 d3@10 ~@10 d4@14 ~@7]/2", // D5 F5 D5 C
F: "[[c3,f3,c4]@8 ~ [d3,a3]@9 [c3,f3,c4]@9 [d3,a3]@19 ~@2 f3@47 [g3,c4]@44 ~@5, ~@8 d4@9 ~@10 d4@13 ~@104, ~@27 b3 ~@19 bb2@47 ~@50]/6", // F5 D5 F5 D5 C5
G: "[[c3,f3]@9 a3@9 f3@7 [d3,a3]@16 ~@7, ~@9 d3@7 ~@2 c3@9 ~@21]/2", // F5 D5
H: "[f3@7 ~@2 a3@9 [c3,f3]@9 [d3,a3]@18 ~@3, c3@3 ~@13, d3@2 ~@5 d3@10 ~@31]/2", // F5 D5
I: "[[c3,f3]@9 [d3,a3]@9 [c3,f3]@9 [d3,a3]@19 ~@2 f3@95 ~, ~@18 b2@2 ~@7 b3 ~@19 bb2@96 ~]/6", // F5 D5 F5 D5
})).s("gm_brass_section").gain(0.72).pan(0.4)
// other · baritone sax
const baritone_sax = note("<~@107 A@4 ~ B C@2 ~ D@3 ~ E F@2 G@2 ~@23>".pickRestart({
A: "[~@5 g4@53 f4@3 ~@3 f4@2 d4@17 ~@13, ~@61 e4@6 ~@29]/4", B: "~@9 d4 c4 ~",
C: "[a4@3 g4@3 f4@3 g4@6 a4@3 g4@2 ~ f4@15 ~@12]/2",
D: "[~@18 d4@2 ~ c4@2 d4@2 ~ c4@2 ~ d4@5 ~@2 a4@2 g4@2 ~@2 d4@2 f4@6 d4@3 c4@5 ~@14]/3", E: "~@9 a4 g4 ~",
F: "[g4@35 f4@4 d4@9]/2", G: "[~@6 g4@5 ~ g4@3 ~ f4@3 ~@2 ab4@26 ~]/2",
})).s("gm_baritone_sax").gain(0.8).pan(0.4)
// other · distortion guitar
const distortion_guitar_2 = note("<~@131 A B C D E F C G H@2 ~@7>".pickRestart({
A: "e4@4 d4@5 ~@3", B: "b4@2 a4@3 ~", C: "e4@9 d4@10 ~@5", D: "[e4,ab4]@3 f4@3 ~@2, ~@3 d4@2 ~@3",
E: "[f4,b4]@8 a4@11 ~@5, ~@8 d4@9 ~@7", F: "f4@9 e4@11 ~@4", G: "g4@3 f4@4 ~", H: "[e4@9 d4@10 ~@4 e4@10 d4@14 ~]/2",
})).s("gm_distortion_guitar").gain(0.4).pan(0.9)
// chords · overdriven guitar
const overdriven_guitar_2 = note("<~@86 A@4 B@4 C@6 D@2 ~@2 E@3 ~@23 F@2 ~ G H@2 ~ I ~ I ~ J K L M N O P>".pickRestart({
A: "[~@65 bb4@29 ~@2, f4@91 ~@5]/4", B: "[~@15 g4@74 ~@7]/4",
C: "[~@12 g5@77 f5@5 g5@12 ~ g5@3 f5@29 ~@5, ~@12 bb5@73 ~@59]/6", D: "[~@11 g4@33 ~@4]/2", E: "[[c2,c3]@49 ~@23]/3",
F: "[~@23 e3@9 ~ d3@9 ~@6]/2", G: "e3@4 d3@5 ~@3", H: "[~@23 e3@8 ~ d3@9 ~@7]/2", I: "e3@8 d3@7 ~@9",
J: "~ [c3,f3] ~@2 [c3,f3] ~@2 [c3,f3]", K: "~@6 [c3,f3]@2 ~@7 [c3,f3] ~@5 [c3,f3] ~@2",
L: "~@3 [c3,f3]@2 ~@7 [c3,f3]@3 ~@6 [c3,f3] ~@2", M: "~@6 [c3,f3]@2 ~@7 [c3,f3]@2 ~@7",
N: "[c3,f3]@2 ~@7 [c3,f3] ~@8 [c3,f3]@2 ~@4", O: "~@3 [c3,f3] ~@8 [c3,f3]@2 ~@7 [c3,f3]@3",
P: "~@2 [c3,f3] ~@2 [c3,f3] ~@2", // F5
})).s("gm_overdriven_guitar").gain(0.64).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
~@30 A B C B C B C B C B C B C ~@5 B D B C E F B C G H ~ I B D B C E F B C G J B C B C B C B C B C B C ~@4 B D B C E F
B C G H B D B C E F K@2 ~@3 B C B C B C B C B C B C B C B C ~@2 L ~ L ~ L ~ L ~ L ~ L ~ L ~ L ~ M ~@6
>`.pickRestart({
A: "~@4 x!2 ~@2", B: "x!2 ~ x", C: "~ x ~ x", D: "~@2 x ~@2 x ~@2", E: "x ~@2 x", F: "~@2 x!2 ~ x ~@2",
G: "x ~ x ~@4 x", H: "~@2 x!2 ~@2 x ~", I: "~@4 x!2 ~ x", J: "~@2 x!2 ~ x!2 ~", K: "x!3 ~@5", L: "x ~ x ~@2 x ~@2",
M: "x",
})).gain(0.72).pan(0.4)
// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@126 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@7>".pickRestart({
A: "~@3 x ~ x ~@2",
})).gain(0.48).pan(0.4)
// drums · snare
const snare = s("sd").struct(`<
~@30 A B@3 C B@3 C B@3 C ~@5 B@3 D B@6 ~ E B@5 F B@3 D B@3 C B@3 C B@3 C ~@4 B@3 F B@7 G B@4 ~@5 B@3 C B@3 C B@3 C B@3
H ~ I D B D J D J D J D J D J D J D K L ~@6
>`.pickRestart({
A: "~@18 x!2 ~@4", B: "~ x", C: "~@4 x ~@7 x ~@8 x ~@2", D: "~@2 x!2", E: "~@2 x!2 ~@2 x ~", F: "~@4 x ~@2 x",
G: "~@4 x ~ x!2", H: "x ~@3 x ~@7 x ~@8 x ~@2", I: "~@12 x!4 ~ x!3 ~@4", J: "~@12 x!2 ~@10", K: "~@12 x!2 ~@2 x ~@7",
L: "x",
})).gain(0.8).pan(0.4)
// drums · low tom
const low_tom = s("lt").struct(`<
~@30 A ~@3 B ~@3 B ~@3 B ~@6 C ~ D ~@4 E F G H ~ I ~ J ~@4 F K ~@3 B ~@3 B ~@3 B ~@2 L M ~ N ~ D ~@3 O ~@3 P ~@2 Q ~
R@2 ~@2 S ~@3 B ~@3 B ~@3 B ~@3 T F U V ~ V ~ V ~ V ~ V ~@14
>`.pickRestart({
A: "~@13 x ~ x!2 ~@2 x ~@4", B: "~@5 x ~@2", C: "~@3 x ~ x!3", D: "~@5 x!2 ~", E: "x ~@5 x ~@4 x ~@6 x ~@5", F: "x!4",
G: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x", H: "~ x!2 ~ x!2 ~ x", I: "~@3 x ~@4", J: "~@6 x!2",
K: "x!5 ~@3", L: "x ~@2 x ~@2 x ~", M: "~ x ~@2 x ~@3", N: "~@3 x!4 ~", O: "~@9 x!2 ~", P: "~@4 x!2 ~@2",
Q: "x ~@6 x", R: "x!3 ~@5", S: "~@9 x ~@2 x!2 ~ x!2 ~@5 x ~", T: "x ~ x ~ x!3 ~", U: "x!2 ~@2", V: "~@3 x",
})).gain(0.8).pan(0.4)
// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@126 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@7>".pickRestart({
A: "~@2 x!2 ~@4",
})).gain(0.48).pan(0.4)
// … 74 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.