0:00/0:00
// Princes of the Universe — Queen
// 83 bpm, 4/4, key G 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 70 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(83/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.
// other · lead 2 sawtooth · "effect-1"
const lead_2_sawtooth = note("<~@4 A@3 ~@19 B ~ C ~@7 D E ~@3 F G ~@6 H I@2 ~@18>".pickRestart({
A: "[~@10 e6@27 ~@11]/3", B: "~@3 [g#1,c#2,c#3]@29", C: "~ [c4,c5]!31", D: "g2", E: "a2", F: "[c2,c3]@5 ~ [d2,d3]@2",
G: "a1@3 ~", H: "[b3,b4] ~ b3 ~", I: "b3 ~ b3 ~",
})).s("gm_lead_2_sawtooth").gain(0.32)
// bass · synth bass 2 · "Bass Guitar"
const bass = note(`<
~ A@3 B@4 C D E F G H I ~ J@2 ~ K@2 L M@3 N O P Q R S T U V W X Y Z AA@2 AB AC AD AE@3 AF AG AH AI@2 AJ ~@5 AK AL AM
AN AO R S AP AQ AR AS X ~
>`.pickRestart({
A: "[~@29 g1@2 g1@31 c2@31 ~@3]/3", B: "[~@28 d2@31 g1@31 c2@31 ~@7]/4", C: "~@23 b1@6 ~@3",
D: "~@7 b1@6 ~@9 b1@6 ~@4", E: "~@6 b1@6 ~@9 b1@6 ~@5", F: "~@5 b1@6 ~@9 b1@6 ~@6", G: "~@4 b1@6 ~@9 b1@6 ~@7",
H: "~ b1@3 ~@5 b1@3 ~@4", I: "~ b1@6 ~@10 c#2@15", J: "[~@15 c#2@8 ~@7 c#2@8 ~@26]/2",
K: "[~@11 b1@8 ~@8 b1@8 ~@7 b1@8 ~@7 b1@7]/2", L: "~@9 b1@8 ~@7 b1@8", M: "[~@8 b1@21 ~@2 b1@8 c#2@39 ~@18]/3",
N: "~@2 c#2@3 ~ b1@3 ~ c#2@3 ~ g#1@2", O: "~@3 g#1@29", P: "~ d2@15", Q: "~ b1@8 ~@23", R: "a1!4 d2!4",
S: "c2!4 a#1!4", T: "a1@4 ~ a1!3 d2!4 c#2!4", U: "f#1!8 d#2@2 d#2@2 d#2@2 d#2!2",
V: "b1@2 b1@2 b1@2 b1!2 g#1@2 g#1@2 g#1@2 g#1!2", W: "g1@2 g1!2 f#1@2 f#1!2 b1@2 b1!2 d2@2 b1!2",
X: "g1@2 g1@2 g1@2 g1@2 f#1@2 f#1 b1 ~@4", Y: "g1@5 d2@3", Z: "a1", AA: "[c3@27 g2 c2 ~@3]/2",
AB: "a2@10 ~@2 e3 b2 g2 b2", AC: "c3@11 ~ d2@4", AD: "a1@3 ~", AE: "c2@11 ~ f2@3 ~",
AF: "c2@2 c2@6 g2@2 c2@4 c2@2 c2@5 ~ c2@2 g2@2 c2@5 ~", AG: "c2@2 c2!3 c2@2 c2!2 d2!7", AH: "a1@5 ~@3 a1@5 ~@3",
AI: "a1@5 ~@3 b1@5 ~@3", AJ: "b1@5 ~@3 b1@5 ~@3", AK: "e2@7 ~", AL: "d2@3 ~@5", AM: "g1@7 g1", AN: "c2", AO: "e1",
AP: "a1!4 d2!2 c#2!2", AQ: "f#1@4 f#1@2 f#1@2 f1 f#1@3 f#1@2 f#1@2 d#2@4 d#2@2 d#2@2 d2 d#2@3 d#2@2 d#2@2",
AR: "b1!4 g#1!4", AS: "g1!2 f#1!2 b1!2 a#1 b1",
})).s("gm_synth_bass_2").gain(0.64)
// chords · overdriven guitar · "E.Guitar 1"
const overdriven_guitar = note(`<
~ A@3 B@6 C@4 D ~@3 E F G H I@3 ~ J K L M N O P ~@3 Q R ~@2 S T U V@2 W ~@2 X Y@3 Z AA AB@2 AC@2 AD AE AF AG AH AI ~@6
>`.pickRestart({
A: "[~@27 [g2,d3]@4 [g2,d3,g3]@31 [c3,e3,g3,c4,g4,c5]@31 ~@3]/3", // G5 C
B: "[~@28 [a2,d3,a3,d4,a4]@31 [g2,d3,g3,b3,g4]@31 [g2,c3,e3,g3,e4]@60 ~ b4@8 b4@8 b4@8 b4@7 b4@8 b4@2]/6", // D5 G C
C: "[~@6 b4@7 b4@8 [b4,d5]@8 [b4,d5]@8 [b4,d5]@7 [b4,d5]@8 [b4,d5]@8 [b4,d5]@8 [b4,d5]@7 [b4,d5]@8 [e4,g#4,a#4,b4,d5]@8 [d#4,g4,a4,a#4,c#5,d5]@7 [d4,f#4,g#4,c5,d5]@8 [c#4,f4,g4,b4,d5]@8 [c4,e4,f#4,b4]@8 [b3,d#4,f4,b4]@6]/4", // Bm E7 D#7 D7 G7 Cmaj7 Fm7b5
D: "~ [a#3,d4,e4,b4]@8 [a3,c#4,d#4,b4]@8 ~@15", E: "~@5 [c#3,g#3,c#4]@10 ~@17", F: "~@11 b4@7 ~ b4@7 ~ b4@5",
G: "~@2 b4@7 ~ b4@7 ~ b4@7 b4@7", H: "~ b4@7 ~ b4@7 ~ b4@7 b4@7 ~",
I: "[b4@7 ~ b4@7 ~ b4@7 b4@7 ~ b4@7 ~ [g#3,c#4,f4]@35 ~ c#3@2 [b2,d3] [c3,d#3] [c#3,e3,f3] [d3,f#3] [d#3,g3,g#3] [e3,a3,a#3] [f3,b3] [f#3,c4,c#4] ~@11]/3", // C# Bm Cm C# D G#maj7 A Fdim …
J: "~@3 [g#3,g#4,c#5,g#5,g#6]@29", K: "~@2 [d3,f#3,d4,f#4]@15 ~ [d3,f#3,d4,f#4]@6 ~ [b2,f#3,b3]@6 ~",
L: "~ [b2,f#3,b3]@8 ~@15 [b2,f#3]@3 [a#2,f3] [a2,e3] [g2,g#2,d3,d#3] [f#2,c#3] [e2,f2,b2,c3]", M: "[a2,e3] [d3,f#3]",
N: "c3 a#2", O: "a2@8 d3@3 ~ c#3@3 ~", P: "f#2 d#3", Q: "[g2,d3,g3,d4]@15 ~", R: "[a2,e3,a3,c#4,e4,a4]",
S: "a3@8 e4 d4 c4 ~ b3@2 g3 b3", T: "c4@2 ~ [d3,a3,d4]", U: "[a2,e3,a3]@5 ~ [d3,a3,d4]@2",
V: "[c3,g3,c4]@10 ~@2 [c3,f3,c4,f4]@3 ~", W: "[c3,g3,c4]@5 ~ [c3,f3,c4,f4]@2", X: "[a5,c#6]@3 [a5,c#6]",
Y: "[b2,b3]@3 ~ [b2,b3]@3 ~", Z: "c3 d3!7 c#3 d3!3 c3 d3!5 c#3 d3!5 f3 d3 f3 d3 c3 a2 c3 d3",
AA: "c3 d3 d3@2 d3 a2 d3 c3 d3!4 ~ c3 ~@2 f3 d3!2 ~ g3 d3!2 ~ g#3 d3!2 ~ a3 d3!3, ~@12 d3@2 d3@2 ~@3 d3@2 ~@2 d3@2 ~@2 d3@2 ~@3, ~@15 c3@2 ~@15",
AB: "[c3 d3!2 d3@2 f#3@2 d3!3 g3 f#3 d3 [f3,f#3]@2 d3 c3 a2 g2@2 f2!3 d3 f3 d3@2 c3@2 d3!2 d3@2 f#3 d3 d3@2 d3!2 g3 d3 d3@2 d3!2 g#3 d3 d3@2 d3!2 a3 d3 d3@2 d3!2 b3 d3 d3@2 d3!2 c4]/2", // F#maj7
AC: "[[d3,b3] [d3,a#3]@2 d3!2 ~ d3 d3@2 d3!2 g3 f#3 f3 e3 d#3 d3 c#3 c3 b2 a#2 a2 g#2 g2 f#2 f2 e2@10 [e2,b2,e3]@26 ~@2, ~@5 c#4@2 ~@57]/2", // G Gm E5
AD: "[d3,a3]@3 ~@5", AE: "[g2,d3,g3]", AF: "[g2,c3,g3,c4]@4 [g2,c3,g3,c4]@8 g2@2 g2 f#2", AG: "e2",
AH: "e4@8 ~@2 c#4@3 ~ a3 ~ e4 f#4 ~ e4 f#4 e4 ~ f#4 e4 f#4 ~ e4 f#4 e4 ~ f#4, ~@10 a3 ~@21",
AI: "g4!4 e4!4 c4!4 a4@4 g4 a4 g4 a4 g4 d#4 f4 d#4 f4 d#4 a#3 c4 a#3 c4 a#3 c4",
})).s("gm_overdriven_guitar").gain(0.25)
// chords · distortion guitar · "E.Guitar 2"
const distortion_guitar = note(`<
~ A@3 ~@4 B@4 C D E@4 ~ F G H I@3 J K ~ L M N O P Q R ~ S T U@2 V W X Y@3 Z AA AB AC@3 ~@5 AD AE AF AG AH AI AJ AK AL
AM AN AO ~
>`.pickRestart({
A: "[~@27 [g2,d3]@2 ~@2 [g2,d3,g3]@44 ~@21]/3", // G5
B: "[~@23 [f#2,b2,f#3,b3,d4]@6 ~@2 [a2,d3]@4 ~@4 [f#2,b2,f#3,b3,d4]@6 ~@2 [a2,d3]@4 ~@3 [f#2,b2,f#3,b3,d4]@6 ~@2 [a2,d3]@4 ~@4 [f#2,b2,f#3,b3,d4]@6 ~ [a2,d3]@4 ~@4 [f#2,b2,f#3,b3,d4]@6 ~@2 [a2,d3,a#3]@6 ~@2 [f#2,b2,f#3,a3,b3,d4]@6 ~ [a2,d3,g#3]@6 ~@2 [f#2,b2,f#3,g3,b3,d4]@6 ~@2 [a2,d3,f#3]@4]/4", // Bm D5 Bm D5 Bm D5 Bm D5 …
C: "~@4 [f#2,b2,f3,f#3,b3,d4]@6 ~ [a2,d3,e3]@6 ~@2 [f#2,b2,f#3,b3,d4]@6 ~@7", // Bm Asus4 Bm
D: "~ [f#2,b2,f#3,b3,d4]@3 ~@5 [f#2,b2,f#3,b3,d4]@3 ~@4", // Bm
E: "[~ [f#2,b2,f#3,b3,d4]@6 ~@10 [g#2,g#3,c#4]@23 ~@39 [g#2,c#3,g#3,c#4]@6 ~ c#3@6 ~@2 [g#2,c#3,g#3,c#4]@6 ~@2 c#3@6 ~@20, ~@17 c#3@60 ~@51]/4", // Bm C#5
F: "~@11 [f#2,b2,f#3]@6 [a#2,f3]@2 [f#2,b2,f#3]@7 ~ [f#2,b2,f#3]@5", // B5 A#5 B5
G: "~@10 [f#2,b2,f#3]@6 [a#2,f3]@2 [f#2,b2,f#3]@7 [f#2,b2,f#3]@7", // B5 A#5 B5
H: "~@9 [f#2,b2,f#3]@6 [a#2,f3]@2 [f#2,b2,f#3]@7 [f#2,b2,f#3]@7 ~", // B5 A#5 B5
I: "[~@8 [f#2,b2,f#3]@6 [a#2,f3]@2 [f#2,b2,f#3]@7 [f#2,b2,f#3]@6 [a#2,f3]@2 [f#2,b2,f#3]@7 ~ [g#2,c#3,g#3,f4]@31 ~@5 c#4@2 g#3@4 a3 [a#3,b3] c4 [c#4,d4] ~@11, ~@77 e3@8 ~@11]/3", // B5 A#5 B5 A#5 B5 C# Bmaj7 Dmaj7
J: "~@14 [g#3,d#4] ~, ~@7 b3", K: "~@3 [g#2,c#3,e3]@27 ~@2", L: "~@3 [b2,f#3,b3], ~@24 [e3,a3] ~@7",
M: "[e3,a3,c#4,e4]@4 ~ [e3,a3,c#4]@2 [e3,a3] [d3,a3,d4,f#4]@8", N: "[g3,c4,e4]@8 [f3,a#3,d4]@3 [f3,a#3,d4]@5",
O: "[e3,a3,d4]@4 [a3,c#4]@2 e4 [a3,c#4,a4] [d3,a3,d4]@4 [c#3,g#3,c#4]@4, ~@4 d5 ~@3", // Dsus2 A D5 C#5
P: "[f#2,c#3,f#3]@7 f#3 [d#3,f#3,d#4]@2 [d#3,f#3,d#4]@2 [d#3,f#3,d#4]@2 [d#3,f#3,d#4]@2", // F#5 D#m
Q: "[d#3,f#3,b3] [b2,d#3,g#3]", R: "[b2,d3,g3]@2 [a2,c#3,f#3]@2 [d3,f#3,b3]@2 b2 d3", S: "d4@14 d4 ~, [g2,d3]",
T: "[a2,e3,c#4]", U: "[c3,g3,c4]", V: "[a2,e3,a3]@11 ~@3 [g2,c3,g3] [b2,f3,b3]", W: "[c3,g3,c4]@5 ~ [d3,a3,d4]@2",
X: "[a2,e3,a3]@5 ~ [d3,a3,d4]@2", Y: "[c3,g3,c4]@10 ~@2 [c3,f3,c4,f4]@3 ~",
Z: "[c3,g3]@2 [e3,c4] [g3,e4] f4@3 [c4,e4] [c3,g3,c4]@8", // C5 C C5
AA: "[g2,c3,g3,c4]@4 [g2,c3,g3,c4]@4 [g2,c3] [a2,d3]@3 [a2,d3,d4]@3 ~", AB: "[e4,a4]@3 a3",
AC: "[b2,f#3]@3 ~ [b2,f#3]@3 ~", AD: "[b2,e3,b3]@7 [b2,e3,b3] [b2,e3,b3]@7 ~", AE: "[d3,a3,d4]@3 ~@5",
AF: "[g2,d3,g3]", AG: "[g2,c3,g3,c4]@12 ~@2 g2 f#2", AH: "[e2,b2,e3]", AI: "e4@8 ~@2 c#4@3 ~ a3@2 f#4@16",
AJ: "g4@4 e4@4 c4@2 a4@4 a4@2 g4 a4 ~ g4 d#4@4 a#3@8", AK: "c#5@7 a4 c#5@6 b4 a4 f#5@6 f5 d#5 f5@3 f#5@2 g#5@3",
AL: "a#5!2 [g#5,a#5] a#5 a#5@2 g#5 a#5@9", AM: "a5@16 b5 ~@2 c#6 ~ d6 ~@2 d6@4 c#6@2 b5@2", AN: "[g2,b2,d3,g3,b3,d4]",
AO: "[g2,b2,d3,g3,b3,d4]@5 ~@3", // G
})).s("gm_distortion_guitar").gain(0.25).pan(0.1)
// chords · overdriven guitar · "E.Guitar 3"
const overdriven_guitar_2 = note(`<
~ A@3 B@3 ~@5 C D E@2 ~@7 F@2 G H ~@2 I J K L M N O P Q R S ~ T@2 U ~ V W X Y ~@9 Z ~ AA AB AC AD AE AF AG AH AI ~
>`.pickRestart({
A: "[~@31 d5@62 ~@3]/3", B: "[~@10 e6@27 ~@11]/3", C: "~@19 [f#2,b2,f#3,b3]@8 ~@5",
D: "~ [f#2,b2,f#3,b3]@4 ~@4 [f#2,b2,f#3,b3]@4 ~@3", E: "[~ [f#2,b2,f#3,b3]@8 ~@8 c#4@31 ~@16]/2",
F: "[~@7 c#4@31 ~@26]/2", G: "~@7 [g#2,e3]", H: "~@3 [g#2,e3,c#4,e4]@29",
I: "[a3,e4]@10 [a3,c#4]@4 a3@2 [d4,f#4] e4 ~ [d4,f#4] e4 [d4,f#4] ~ e4 [d4,f#4] e4 ~ [d4,f#4] e4 [d4,f#4] ~ e4", // A5 A D
J: "g4@4 e4@4 c4@4 a4@4 d4 c4 ~ d4 c4 d4 ~ c4 d4 c4 ~ d4 c4 d4 ~ c4, ~@8 [a#3,f4]@3 ~@2 [a#3,f4]@3", // A#5
K: "[e3,a3,d4]@4 [a3,c#4]@3 [a3,c#4] [d3,a3,d4]@4 [c#3,g#3,c#4]@4", // Dsus2 A D5 C#5
L: "[f#4,a#4] f#4 a#4 a#4@2 g#4 ~@2 [f#3,a#3,d#4]@8, [a#3,c#4] ~, ~@3 f#4@4 a#4@9", M: "[d#3,f#3,b3] [b2,d#3,g#3]",
N: "[b2,d3,g3]@2 [a2,c#3,f#3]@2 [d3,f#3,b3]@2 b2 d3", // G F#m Bm
O: "[b2,e3,g3,d4]@2 [b2,e3,g3,d4]@2 [b2,e3,g3,d4]@2 [b2,e3,g3,b3]@2 [a#2,d3,f#3,a3]@3 [a#2,d3,f#3,c#4] [b2,f#3,b3] ~@3", // Em7 Em D F# B5
P: "[g2,g3,d4]", Q: "e3@14 e3 f3, [a2,c#4]", R: "[c3,g3]", S: "g3", T: "[~@6 a5@9 ~]/2",
U: "~ d4 ~ d4!2 ~ d4 ~ c4 ~@7", V: "~ c5!3",
W: "[g2,c3,g3]@2 g3!2 [g2,c3,g3]@2 g3!2 [g2,c3,g3]@2 g3!2 [g2,c3,g3]@2 g3!2", // C5
X: "e4 ~ g3 [g3,e4] [g2,c3,g3,f4]@2 g3 [g3,e4] f#4 g4@2 ~ g4 f#4@2 ~, [g2,c3,g3]@3 ~@5 [d3,a3]@2 ~@2 [d3,a3]@2 ~@2, ~ f4@2 ~@13", // C Csus4 C C5 D5
Y: "f#4 [e3,a3,e4]@11 [e3,a3,e4]@3 ~", Z: "~@12 d4@3 ~", AA: "~@14 g2 f#2", AB: "c#4@4 c#4@2 b3 b3@9",
AC: "[a2,e3,a3]!4 [d3,a3,d4]!4", AD: "[c3,g3,c4]!2 [a#2,f3,a#3]!2", AE: "[a2,e3,a3]!4 [d3,a3,d4]!2 [c#3,g#3,c#4]!2",
AF: "[c#3,f#3,c#4]!4 [d#3,a#3,d#4]!4", AG: "[b2,d#3,b3]!4 [g#2,b2,g#3]!4",
AH: "[d3,f#3,b3]!2 [c#3,f#3,a#3]!2 [b2,f#3,b3]!4", AI: "[d3,f#3,b3]!2 [c#3,f#3,a#3]!2 ~@4",
})).s("gm_overdriven_guitar").gain(0.25).pan(0)
// chords · electric guitar muted · "E.Guitar muted"
const electric_guitar_muted = note("<~@6 A@3 ~@5 B@2 ~@54>".pickRestart({
A: "[~@30 [e5,g5,c6] [e5,g5,c6]@4 ~@2 [d5,f5,b5]@2 [d5,f5,b5]@4 ~@2 [c5,e5,a5]@2 [c5,e5,a5]@4 ~@2 [b4,d5,g5]@2 [b4,d5,g5]@4 ~ [a4,c5,f5]@2 [a4,c5,f5]@4 ~@2 [g4,b4,e5]@2 [g4,b4,e5]@4 ~@2 [f4,a4,d5]@2 [f4,a4,d5]@4 ~@2 [e4,g4,c5]@2 [e4,g4,c5]@4 ~@6]/3", // C Bdim Am G F Em Dm C
B: "[~@17 c#4@31 ~@16]/2",
})).s("gm_electric_guitar_muted").gain(0.25).pan(0.6)
// chords · electric guitar clean · "E.Guitar muted" · C E5 C5
const electric_guitar_clean = note("<~@40 [c4@7 ~ e4 d4 c4 ~ b3@2 [g2,e3,g3] [b2,e3]] [[c3,g3]@5 ~@3] ~@28>")
.s("gm_electric_guitar_clean").gain(0.25).pan(1)
// chords · lead 4 chiff · "effect-2"
const lead_4_chiff = note("<~@12 A@2 B ~@55>".pickRestart({
A: "[~@19 [f#4,b4]@8 [f4,a#4]@7 [e4,a4]@8 [c4,d#4,g#4]@8 [b3,g4]@8 [b3,f#4]@6]/2", B: "~ [a3,f4]@8 [g#3,e4]@8 ~@15",
})).s("gm_lead_4_chiff").gain(0.22)
// chords · contrabass · "effect-2" · C#5
const contrabass = note("<~@18 [~@5 [c#3,g#3,c#4]@10 ~@17] ~@51>").s("gm_contrabass").gain(0.25)
// other · lead 2 sawtooth · "effect-2"
const lead_2_sawtooth_2 = note("<~@25 A ~@2 B ~@13 C ~@2 D ~@24>".pickRestart({
A: "~ g#4@4 ~@3 g#5@5 ~@19", B: "~@3 [b1,b2,f#3,b3]", C: "a5", D: "~@8 c5!2 ~ c5!3 ~ c5!3 ~ c5 c5@7 ~@5",
})).s("gm_lead_2_sawtooth").gain(0.25).pan(0.2)
// other · ocarina · "effect-2"
const ocarina = note("<~@38 A@2 ~@30>".pickRestart({
A: "[c3@7 ~ c3@23 ~]/2",
})).s("gm_ocarina").gain(0.25)
// other · clavinet · "effect-2"
const clavinet = note("<~@52 A B C@2 D ~@13>".pickRestart({
A: "~ d3!7 c#3 d3!3 c3 d3!5 c#3 d3!5 f3 d3 f#3 d3 c3 a2 c3 d3",
B: "c3 d3 d3@2 d3 a2 d3 c3 d3!4 ~ c3 ~@2 f3 d3!2 ~ g3 d3!2 ~ g#3 d3!2 ~ a3 d3!3, ~@12 d3@2 d3@2 ~@3 d3@2 ~@2 d3@2 ~@2 d3@2 ~@3, ~@15 c3@2 ~@15",
C: "[c3 d3!2 d3@2 f#3@2 d3!3 g3 f#3 d3 f#3@2 d3 c3 a2 g2@2 f2@3 d3 f3 d3@2 c3@2 d3!2 d3@2 f#3 d3 d3@2 d3!2 g3 d3 d3@2 d3!2 g#3 d3 d3@2 d3!2 a3 d3 d3@2 d3!2 b3 d3 d3@2 d3!2 c4]/2",
D: "d3 d3@2 d3!2 ~ d3 d3@2 d3!2 g3 f#3 f3 e3 d#3 d3 c#3 c3 b2 a#2 a2 g#2 g2 f#2 f2 e2@6, ~@5 c#4@2 ~@25",
})).s("gm_clavinet").gain(0.4)
// other · bandoneon · "effect-2"
const bandoneon = note("<~@68 [~@12 e4@2 g4 f#4] [~ e4@4 g4@2 f#4@3 e4@4 g4@2 f#4@3 e4@4 g4@2 f#4@3 ~@4]>")
.s("gm_bandoneon").gain(0.1).pan(0.7)
// other · alto sax · "effect-4"
const alto_sax = note("<A B ~@55 C D E@2 ~@9>".pickRestart({
A: "~ e4@12 e4@2 e4@10 ~@7", B: "f#4@3 ~ f#4@2 f4 f#4@3 ~@6", C: "[b3,e4,a4]@7 [b3,e4,g#4] [b3,e4,g#4]@6 ~@2",
D: "[d3,d4]@2 [d3,d4] [c#3,c#4] [e3,d4] [d3,d4]!3", E: "[b3@2 b3@2 b3@2 c4@2 d4@2 g3 ~ g3@8 ~@12]/2",
})).s("gm_alto_sax").gain(0.06).pan(0)
// other · tenor sax · "effect-5"
const tenor_sax = note("<A B ~@55 C D E@2 ~@9>".pickRestart({
A: "~ f#4@12 e4@2 e4@10 ~@7", B: "f#4@3 ~ f#4@2 f4 f#4@4 ~@5", C: "~@2 [e4,a4,c#5]@6 [e4,g#4,b4] [e4,g#4,b4]@6 ~",
D: "[d3,d4]@2 [d3,d4] [c#3,c#4] [d3,d4]!4", E: "[b3@2 b3@2 b3@2 c4@2 d4@2 g3 ~ g3@8 ~@12]/2",
})).s("gm_tenor_sax").gain(0.06).pan(1)
// chords · tinkle bell
const tinkle_bell = note("<~@2 A B@2 ~@65>".pickRestart({
A: "~@13 b4 d5 [d5,g5,e6]", // Em7
B: "[[c6,e6]@2 b4@2 d5@2 [d5,g5,e6]@2 [c6,e6]@2 b4@2 d5@2 [d5,g5,e6]@2 ~ b4@2 d5@2 [d5,g5,e6]@2 [c6,e6]@2 b4@2 d5@2 [d5,g5,e6]@2 [c6,e6]@2 ~@31, ~@8 [c6,e6] ~@23]/2", // C Em7 C Em7 C Em7 C
})).s("gm_tinkle_bell").gain(0.32)
// other · guitar harmonics · "Tinkle Bell"
const guitar_harmonics = note("<~@60 A@2 ~@8>".pickRestart({
A: "[~@2 c3 d3 d3@6 ~@6]/2",
})).s("gm_guitar_harmonics").gain(0.32)
// drums · rim
const rim = s("rim").struct("<~@14 A B C D E F G H I J K L M N ~@20 O ~@8 P ~@3 Q ~@6 R ~>".pickRestart({
A: "~@17 x ~@6 x ~@7", B: "x!2 ~@2", C: "~@15 x ~@6 x ~@7 x ~", D: "~@3 x ~@2 x ~@9", E: "~@3 x ~ x ~ x",
F: "~@3 x ~@7 x ~@15 x ~@4", G: "~@10 x ~@14 x ~@6", H: "~@9 x ~@14 x ~@7", I: "~@8 x ~@14 x ~@8",
J: "~@7 x ~@6 x ~@7 x ~@7 x ~", K: "~@6 x ~@6 x ~@7 x ~@7 x ~@2", L: "~@2 x ~@3 x!2 ~@2 x ~@3 x!2",
M: "~@3 x ~@7 x ~ x ~@5 x ~@7 x!2 ~@3", N: "~ x ~@14", O: "x ~@3 x!2 ~@2 x ~@3 x!2 ~@2", P: "~@12 x!2 ~@2",
Q: "~@24 x ~@2 x ~@4", R: "~@9 x!2 ~@5",
})).gain(0.64)
// drums · kick
const kick = s("bd").struct(`<
~@4 A B ~@2 C D E F G H I J D K L M N I J O E P M Q R S@6 T U@3 ~@2 V W@2 X@2 Y Z X AA AB@2 ~@5 AC U@2 ~ AD S@6 T ~
>`.pickRestart({
A: "~@10 x!2 ~@2 x ~", B: "~@27 x ~@4", C: "~@16 x ~@3 x ~@2 x ~@7 x", D: "~@7 x ~@7 x ~@6 x ~@7 x ~",
E: "~@6 x ~@6 x ~@7 x ~@7 x ~@2", F: "~@5 x ~@6 x ~@7 x ~@7 x ~@3", G: "~@4 x ~@6 x ~@7 x ~@7 x ~@4",
H: "~ x ~@3 x ~@3 x ~@3 x ~@2", I: "~ x ~@7 x ~@7 x ~@6 x ~@7", J: "x ~@7 x ~@7 x ~@6 x ~@7 x", K: "~@6 x ~@6 x ~@18",
L: "~@3 x ~ x ~ x", M: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", N: "~@2 x ~@7 x ~@7 x ~@6 x ~@6",
O: "~@7 x ~@6 x ~@7 x ~@7 x ~", P: "~ x ~ x ~ x ~ x", Q: "~ x ~@14", R: "~ x ~@30", S: "x!8",
T: "x ~ x ~ x ~ x ~ x ~ x!2 ~@4", U: "x", V: "~@3 x", W: "x ~@2 x", X: "x!4", Y: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
Z: "x ~@4 x ~@2 x ~@4 x ~@2", AA: "x!2", AB: "x ~@3 x!4", AC: "~@12 x!2 ~@2", AD: "~@24 x ~@2 x ~@4",
})).gain(0.64)
// drums · snare
// … 75 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.