0:00/0:00
// One Vision — Queen
// 120 bpm, 4/4, key D 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: duplicate parts dropped: ch 9 distortion guitar (copy of ch 4 overdriven guitar, 0.083 beats late)
// note: Full arrangement: all 139 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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(`<
~@24 A@8 B@8 C@8 D ~@4 E@4 F G ~ H@2 G I J ~@3 K@2 L M@3 ~@13 N O ~@3 P Q ~ R S T ~@41
>`.pickRestart({
A: "[~@31 [a3,d4,f#4]@8 ~@12 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@4 [a3,d4,f#4]@8 ~@12 [g3,b3,d4,g4]@8 [g3,c4,e4]@4 [g3,c4,e4]@8 ~@12 [g3,b3,d4,g4]@8 [g3,c4,e4]@4 [g3,c4,e4]@8 ~@4 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@8 [a3,c#4,e4]@4 [a3,d4,f#4]@12 ~@8 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@4 [a3,d4,f#4]@12 ~@8 [g3,b3,d4,g4]@8 [g3,c4,e4]@4 [g3,c4,e4]@8 ~@4 [g3,b3,d4,g4]@4 [g3,b3,d4,g4]@8 ~@4 [g3,c4,e4]@4 [g3,c4,e4]]/8", // D A D G C G C A …
B: "[~@11 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@8 [a3,c#4,e4]@4 [a3,d4,f#4]@12 ~@8 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@4 [a3,d4,f#4]@12 ~@8 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@4 [g3,c4,e4]@4 [g3,c4,e4]@12 [g3,b3,d4,g4]@4 [g3,b3,d4,g4]@12 [g3,c4,e4]@4 [g3,c4,e4]@12 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@8 [a3,c#4,e4]@4 [a3,d4,f#4]@12 ~@8 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@4 [a3,d4,f#4]@12 ~@8 [g3,b3,d4,g4]@8 [g3,c4,e4]@4 [g3,c4,e4]@12 [g3,b3,d4,g4]@4 [g3,b3,d4,g4]@12 [g3,c4,e4]@4 [g3,c4,e4]]/8", // A D A D A D G C …
C: "[~@11 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@4 ~@4 [a#3,c#4,e4]@4 [a3,d4,f#4]@12 ~@8 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@4 [a3,d4,f#4]@12 ~@8 [g3,b3,d4,g4]@8 [g3,c4,e4]@4 [g3,c4,e4]@12 [g3,b3,d4,g4]@4 [g3,b3,d4,g4]@12 [g3,c4,e4]@4 [g3,c4,e4]@12 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@4 ~@4 [a#3,c#4,e4]@4 [a3,d4,f#4]@12 ~@8 [a3,c#4,e4,a4]@8 [a3,d4,f#4]@4 [a3,d4,f#4]@12 ~@8 [g3,b3,d4,g4]@8 [g3,c4,e4]@4 [g3,c4,e4]@12 [g3,b3,d4,g4]@4 [g3,b3,d4,g4]@11 [g3,c4,e4]@4 [g3,c4,e4]@2]/8", // A D A#dim D A D G C …
D: "~@5 [a3,c#4,e4,a4]@4 [a3,d4,f#4]@6 ~", // A D
E: "[~@19 c3@4 c4@4 ~ a#3@8 a3@8 g3@8 f3@8 e3@8 c3@4 g2@4 e3@4 c3@4 g2@4 e3@4 a2@8 a#2@8 b2@8 c3@8 c#3@4]/4",
F: "[d3,a3,d4,f#4]@2 ~@3 [a3,c#4,e4,a4]@2 [a3,d4,f#4]", G: "[a3,d4,f#4]@2 ~@3 [g3,b3,d4,g4]@2 [g3,c4,e4]",
H: "[~@8 d3@2 ~@3 [a3,c#4,e4,a4]@2 [a3,d4,f#4], ~@7 [d4,f#4,a4,d5]@3 ~@6]/2", // A D
I: "[g3,c4,e4]@2 ~ [g3,b3,d4,g4] [g3,b3,d4,g4]@2 ~ [g3,c4,e4]", J: "[g3,c4,e4]@2 ~ [a3,c#4,e4,a4]@2 [a3,d4,f#4]@2 ~",
K: "[~@29 c3@12 c3@8 c3@8 c3@7]/2", L: "~ c3@8 c3@4 c3@4 c3@4 c3@4 c3@4 c3@3",
M: "[~ c3@8 c3@4 c3@4 c3@8 c3@4 a2@8 a#2@8 ~ b2@8 c3@8 c#3@4 [d3,d4,a4]@8 ~@22]/3", // D5
N: "~@25 [d4,a4] [d4,a4]@2 [d4,a4]@4", O: "~@6 [c4,g4] ~", P: "~@15 [g3,d4,g4]",
Q: "[g3,d4,g4] [g3,d4,g4]@2 [f3,c4,f4]!2 [f3,c4,f4]@2 ~@9", R: "~@3 d4", S: "~@2 b3@2 e3 ~@3",
T: "~@23 [c6,g6]@2 [c6,g6]@2 ~@5", // C5
})).s("gm_overdriven_guitar").gain(0.25).pan(1)
// chords · overdriven guitar
const overdriven_guitar_2 = note(`<
~@24 A@8 B@8 C@8 D@8 E F G H I@2 J K L M N O P@3 Q@3 ~@2 R S@4 ~@5 T U@2 V@3 W X Y Z AA AB@5 AC@2 AD AE AF ~ AG@2 ~@11
AH@4 AI@4 AJ@5 ~@5
>`.pickRestart({
A: "[~@31 [d3,a3,d4,f#4]@8 ~@8 [d3,a3,d4]@4 [c#3,a3]@8 [d3,a3]@4 [d3,a3]@8 ~@8 [c3,g3,c4]@4 [b2,g3]@8 [c3,g3]@4 [c3,g3]@8 ~@8 [c3,g3,c4]@4 [b2,g3]@8 [c3,g3]@4 [c3,g3]@8 ~@4 [c#3,a3]@8 [d3,a3]@8 [c#3,a3]@4 [d3,a3,d4,f#4]@8 ~@8 [d3,a3,d4]@4 [c#3,a3]@8 [d3,a3]@4 [d3,a3]@12 ~@4 [c3,g3,c4]@4 [b2,g3]@8 [c3,g3]@4 [c3,g3]@8 ~@8 [b2,g3]@4 [b2,g3]@8 [c3,g3]@4 [c3,g3]]/8", // D D5 F#m D5 C5 Em C5 Em …
B: "[~@11 [c#3,a3]@8 [d3,a3]@8 [c#3,a3]@4 [d3,a3,d4,f#4]@8 ~@12 [c#3,a3]@4 [c#3,a3]@4 [d3,a3]@4 [d3,a3]@8 ~@12 [b2,g3]@4 [b2,g3]@4 [c3,g3]@4 [c3,g3]@12 [b2,g3]@4 [b2,g3]@12 [c3,g3]@4 [c3,g3]@12 [c#3,a3]@8 [d3,a3]@4 ~@4 [c#3,a3]@4 [d3,a3,d4,f#4]@12 ~@4 [d3,a3,d4]@4 [c#3,a3]@4 [c#3,a3]@4 [d3,a3]@4 [d3,a3]@16 ~@4 [b2,g3]@4 [b2,g3]@4 [c3,g3]@4 ~@4 g3@4 [c3,g3]@4 [b2,g3]@4 [b2,g3]@8 [b2,g3]@4 [c3,g3]@4 c3, ~@223 c3@8 ~@25]/8", // F#m D5 F#m D F#m D5 Em C5 …
C: "[~@7 c3@4 [c#3,a3]@8 [d3,a3]@8 [c3,a3]@4 [d3,a3]@8 ~@12 [c#3,a3]@8 [d3,a3]@4 [d3,a3]@8 ~@12 [b2,g3]@4 [b2,g3]@4 [c3,g3]@4 [c3,g3]@12 [b2,g3]@4 [b2,g3]@12 [c3,g3]@4 [c3,g3]@12 [c#3,a3]@8 [d3,a3]@8 [c3,a3]@4 [d3,a3]@8 ~@12 [c#3,a3]@8 [d3,a3]@4 [d3,a3]@8 ~@12 [b2,g3]@4 [b2,g3]@4 [c3,g3]@4 [c3,g3]@12 [b2,g3]@4 [b2,g3]@11 [c3,g3]@4 [c3,g3]@2, ~@3 g3@8 ~@245]/8", // F#m D5 F D5 F#m D5 Em C5 …
D: "[~@10 [c#3,a3]@8 [d3,a3]@8 [c3,a3]@4 [a2,e3,a3,c#4]@32 [a2,f#3,a3,d4]@28 ~ [a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]@28 [a2,f#3,a3,d4]@4 [a2,f#3,a3,d4]@12 [a2,f#3,a3,d4]@8 [a2,e3,a3,c#4]@4 [a2,f#3,a3,d4]@4 [c3,g3,c4,e4]@28 [c3,g3,c#4,e4]@4 ~ [c3,g3,a#3,f4]@32 [c3,g3,c4,e4]@32 a2@4]/8", // F#m D5 F A D A D A …
E: "~ a#2@2 b2@2 c3@2 c#3", F: "[d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4] [c#3,a3]@2 [d3,a3]",
G: "[d3,a3]@2 ~@2 [c3,g3,c4] [b2,g3]@2 [c3,g3]", H: "[c3,g3]@2 [c3,g3]!2",
I: "[[c3,g3] [c4,f4]@3 [c4,f4] [g3,c4,e4] [a2,e3,a3] [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4] [c#3,a3]@2 [d3,a3]]/2", // C5 F5 C A5 D5 F#m D5
J: "[d3,a3]@2 [c3,g3,c4]@2 [c3,g3,c4] [b2,g3]@2 [c3,g3]", K: "[c3,g3]@2 ~ [b2,g3] [b2,g3]@2 ~ [c3,g3]",
L: "[c3,g3]@2 ~ [c#3,a3]@2 [d3,a3] [d3,a3]@2", M: "[a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]!4",
N: "[a2,e3,a3,c#4]!4 [a2,f#3,a3,d4]!4", O: "[a2,e3,a3,c#4]@14 [a2,f#3,a3,d4,e4]!2",
P: "[[a2,f#3,a3,d4,e4]@28 ~ [c3,g3,c4,e4]@36 [c3,g3,a#3,f4]@31]/3", // D C Csus4
Q: "[~ [c3,g3]@8 [c3,g3]@8 [c3,g3]@8 [c3,g3]@4 a2@8 a#2@8 ~ b2@8 c3@8 c#3@4 [d3,d4,a4]@8 ~@22, ~ [c4,e4]@28 ~@67]/3", // C5 D5 C
R: "~@12 d3 d#3 d3 c3", S: "[[d3,a3]@63 ~]/4", T: "~@21 [d4,a4]@8 [e3,b3]@3",
U: "[~@17 [c#4,a4]@8 [d4,a4] [d4,a4]@2 [d4,a4]@12 ~@4 e3@4 [b3,g4]@8 [c4,g4]@4 [c4,g4]@4]/2", // F#m D5 Em C5
V: "[~@8 [b3,g4]@4 [b3,g4]@4 ~@7 [c4,g4]@4 [c4,g4]@8 ~@4 [c#4,a4]@8 [d4,a4]@8 [c4,a4]@4 [d4,a4,d5]@16 ~@4 [c#4,a4]@7 [d4,a4]@4 [d4,a4]@6]/3", // Em C5 F#m D5 F D5 F#m D5
W: "~ g4@2 b3@2 ~@2 [b3,g4]@4 [c4,g4]@2 [c4,g4]@2 ~", X: "~@21 [g3,d4]@4 [g3,d4]@4 [f3,c4]@3",
Y: "~ [f3,c4]@8 [f3,c4]@4 [e3,b3]@4 [f3,c4]@8 [d4,a4]@7", Z: "~@3 [c#4,a4]@2 [d4,a4] a4@2",
AA: "e4@4 e5@2 [b3,g4]@2 [b3,g4]@2 [c4,g4]@2 [c4,g4]@2 [c4,g4]!2", // Em C5
AB: "[[d5,g5]@4 [d4,f4,b4]@2 [d4,f4,b4]@2 ~@7 [c4,g4]@4 ~@8 [g3,d4]@4 [g3,d4]@4 [f3,c4]@4 [f3,c4]@4 [g3,d4]@4 [g3,d4]@4 [a3,e4,a4,c5]@2 [a3,e4,a4,c5]@2 [a2,e3,a3,c#4]@28 [a2,f#3,a3,d4]@36 [a2,e3,a3,c#4]@32 [a2,f#3,a3,d4]@4 ~ [a2,e3,a3,c#4]@4]/5", // G5 Bdim C5 G5 F5 G5 Am A …
AC: "[f#3 [a2,f#3,a3,d4]@2 [a2,e3,a3,c#4] f#3 [a2,e3,a3,c#4]@9 [a2,f#3,a3,d4] [a2,e3,a3,c#4]]/2", // D A D A
AD: "f#3 [a2,f#3,a3,d4]@2 [a2,e3,a3,c#4] f#3 [a2,e3,a3,c#4] [a2,g3,a3,d4] [a2,f#3,a3,d4]", // D A Dsus4 D
AE: "a2@4 [a2,e3,a3,c#4]@8 [a2,d3,g3,b3]@4 ~ [a2,e3,a3,c#4]@4 [a2,e3]@4 [d3,g3]@4 d3@3", // A G A A5 G5
AF: "~ [g2,d3,g3,d4,g4]@4 [g2,d3,g3,d4,g4]@4 [g2,d3,g3,d4,g4]@4 [g2,d3,g3,d4,g4]@4 [g2,d3,g3,d4,g4]@4 [g2,d3,g3,d4,g4]@4 [d3,a3,d4,f#4]@4 ~@3", // G5 D
AG: "[~@25 [a4,c#5,e5]@2 [a4,c#5,e5]@2 [a4,c#5,e5]@2 [a4,c#5,e5]@2 [a4,c#5,e5]@8 ~@23]/2", // A
AH: "[~@25 [d3,a#3,d4,f4]@32 [a2,d3,a3,d4]@32 [a2,e3,a3,c#4]@39]/4", // A# D5 A
AI: "[[a2,f#3,a3,d4]@23 [a2,e3,a3,c#4]@15 ~ [a2,f#3,a3,d4]@8 [a2,e3,a3,c#4]@7 [a2,e3,a3,c#4]@8 [a2,e3,a3,c#4]@8 [a2,e3,a3,c#4]@8 [a2,e3,a3,c#4]@7 [c3,g3]@15 ~ [c3,g3]@4 [c3,g3]@3 [c3,g3]@4 [c3,g3,c4,f4]@8 [c3,g3,c4,f4]@4 [c3,g3,c4,f4]@4]/4", // D A D A C5 Csus4
AJ: "[[c3,g3,c4,f4]@4 [c3,g3,c4,f4]@4 [c3,g3,c4,f4]@3 [c3,g3,c4,f4]@4 [c3,g3,c4,e4]@12 [c3,g3,c4,e4]@8 [c3,g3,c4,e4]@4 [c3,g3,c4,e4]@3 [c3,g3,c4,e4]@4 [a2,e3]@8 [a2,e3]@4 [a2,e3]@4 [a#2,f3]@11 a2@4 b2@12 a2@3 c3@12 d3@4 [a2,e3]@7 a#2@8 b2@8 c3@7 c#3@4 [d3,a3]@8 ~@10]/5", // Csus4 C A5 A#5 A5 D5
})).s("gm_overdriven_guitar").gain(0.2).pan(0)
// other · pad poly
const pad_poly = note("<~@21 A@2 ~@10 B@2 ~ C ~@71 D E F G H I J@2 K L M ~ N O@2 P ~@15>".pickRestart({
A: "a#5 d6 f6 c7 a#6 f6 d6 c6 a#5 d6 f6 c7 a#6 f6 d6 c6",
B: "[~@11 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 g2@4 ~@17]/2", C: "~@11 g2@4 g2@4 g2@4 g2@4 g2@4 ~", D: "~@25 a2@7",
E: "~@13 a2@2 a2@2 a2@8 ~@7", F: "~ a2@8 a2@4 a2@8 ~@11", G: "~ a2@8 a2@12 ~@11", H: "~ a2@8 a2@8 a2@8 ~@7",
I: "~ a2@4 a2@4 a2@8 ~@15", J: "[~@21 a2@8 a2@8 a2@8 a2@12 ~@7]/2", K: "~ a2@8 ~@23", L: "~ a2@8 a2@8 ~@15",
M: "~@5 a2@4 ~@23", N: "~ a2@8 ~@20 a2@3", O: "~ a2@8 ~@4 a2@4 a2@8 ~@4 a2@3", P: "~ a2@8 ~@4 a2@2 a2@2 a2@8 ~@7",
})).s("gm_pad_poly").gain(0.05).pan(1)
// chords · string ensemble 1
const string_ensemble_1 = note("<~@4 A ~@8 B C D E F@8 ~@48 G H I E J@7 K@3 ~@49 L@2 M>".pickRestart({
A: "~@6 c3 d3 c3 b2 c3@2 ~@4", B: "[a3,d4,f#4]!2 ~ [a3,d4,f#4]!3 ~ [a3,d4,f#4]",
C: "[b3,d4,g4]!2 ~ [b3,d4,g4]!3 ~ [b3,d4,g4]", D: "[c4,d4,a4]!2 ~ [c4,d4,a4]!3 ~ [c4,d4,a4]",
E: "[b3,d4,g4]!2 ~ [b3,d4,g4] [b3,d4,e4]!2 ~ [b3,d4,e4]", // G E7
F: "[[a3,d4,f#4]@4 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@4 [a3,d4,f#4]@4 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [c4,d4,a4]@4 [c4,d4,a4]@4 ~@4 [c4,d4,a4]@4 [c4,d4,a4]@4 [c4,d4,a4]@4 ~@4 [c4,d4,a4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 ~@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 ~@4 [f4,a#4,d5]@4 [f4,c5,e5]@4 [f4,c5,e5]@4 ~@4 [f4,c5,e5]@4 [f4,c5,e5]@4 [f4,c5,e5]@4 ~@4 [f4,c5,e5]@4 [f4,a#4,d5,f5]@63 ~, ~@16 d6@239 ~]/8", // D G D7 G A# Fmaj7 A#
G: "~@2 [a3,d4,f#4]@4 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@3 [a3,d4,f#4]@4 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@3", // D
H: "~ [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@3", // G
I: "~ [c4,d4,a4]@4 [c4,d4,a4]@4 ~@3 [c4,d4,a4]@4 [c4,d4,a4]@4 [c4,d4,a4]@4 ~@4 [c4,d4,a4]@4", // D7
J: "[[a3,d4,f#4]@4 [a3,d4,f#4]@4 ~@3 [a3,d4,f#4]@4 [a3,d4,f#4]@4 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [c4,d4,a4]@3 [c4,d4,a4]@4 ~@4 [c4,d4,a4]@4 [c4,d4,a4]@4 [c4,d4,a4]@4 ~@4 [c4,d4,a4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4 ~@4 [b3,d4,g4]@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 ~@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 ~@4 [f4,a#4,d5]@4 [f4,c5,e5]@4 [f4,c5,e5]@4 ~@4 [f4,c5,e5]@4 [f4,c5,e5]@4 [f4,c5,e5]@4 ~@4 [f4,c5,e5]@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 ~@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 [f4,a#4,d5]@4 ~@4 [f4,a#4,d5]@4 [f4,c5,e5]@2]/7", // D G D7 G A# Fmaj7 A# Fmaj7
K: "[~@2 [f4,c5,e5]@4 ~@4 [f4,c5,e5]@4 [f4,c5,e5]@4 [f4,c5,e5]@4 ~@4 [f4,c5,e5]@4 [a#4,f5]@32 [a4,e5]@31 ~@3, ~@10 [d4,f4,d5,d6]@21 ~]/3", // Fmaj7 A#5 A5 Dm
L: "[~@18 d6@2 ~@2 d6@2 ~@2 d6@2 ~@3 d6@2 ~@2 d6@2 ~@3 d6@2 ~@2 d6@3 ~@12 d5 f5 [a#5,e6]@3]/2", // A#dim
M: "~ f6 d6@2 ~@3 d5 [f5,a#5] e6@2 ~@3 f6 [a#5,d6] f5@2 ~@14", // A#5 A#
})).s("gm_string_ensemble_1").gain(0.25).pan(0.3)
// other · string ensemble 1
const string_ensemble_1_2 = note("<A B@4 C@8 D@4 E@8 ~@51 A F@8 ~@54>".pickRestart({
A: "~@12 [d2,d3] [d#2,d#3] [d2,d3] [c2,c3]", B: "[d2@52 d2@8 [d2,d3] [d#2,d#3] [d2,d3] [c2,c3], d3@15 ~]/4",
C: "[[d2,d3]@124 [d2,d3] [d#2,d#3] [d2,d3] [c2,c3]]/8", D: "[[d2,d3]@60 [d2,d3] [d#2,d#3] [d2,d3] [c2,c3]]/4",
E: "[[d2,d3]@255 ~]/8", F: "[[d2,d3]@31 d2@225]/8",
})).s("gm_string_ensemble_1").gain(0.35).pan(0.7)
// other · string ensemble 1
const string_ensemble_1_3 = note("<~@5 A B C B@2 D@2 E F@8 G H I@2 ~@114>".pickRestart({
A: "d2 f#2", B: "d2 a2", C: "d2 a1", D: "d3!2", E: "f#3@4 c4@3 ~", F: "[d2@9 d2@7]/8", G: "a#2 d2 a#2 d2",
H: "c3 d3@3", I: "[d3@8 d3@16 g3@23 c4@15 ~@2]/2",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.1)
// bass · electric bass finger
const bass = note(`<
~@26 A@2 B@8 C@8 D@6 E@4 F G@2 H I J K@2 I L M N@2 O P Q@2 R@3 ~@12 S T@3 U@2 V W X Y Z AA@5 AB AC AD AE AF ~@16 AG AH
AI@3 AJ AK@3 AL@2 ~@5
>`.pickRestart({
A: "[~@19 b1@8 c2@4 c2@8 ~@25]/2",
B: "[~@19 a1@4 b1@4 c#2@4 d2@16 ~@4 c#2@8 d2@4 d2@8 ~@12 b1@8 c2@4 c2@8 ~@4 b1@4 b1@8 ~@4 c2@4 c2@8 ~@4 c#2@8 d2@12 d2@8 ~@12 c#2@4 c#2@4 d2@4 d2@8 ~@12 b1@4 b1@4 c2@4 c2@8 ~@4 b1@4 b1@12 c2@4 c2]/8",
C: "[~@3 b1@4 c2@4 c#2@8 d2@4 b1@4 c#2@4 d2@16 ~@4 c#2@4 c#2@4 d2@4 d2@8 ~@12 b1@4 b1@4 c2@4 c2@8 ~@4 b1@4 b1@8 ~@4 c2@4 c2@8 ~@4 c#2@8 d2@12 d2@16 ~@4 c#2@4 c#2@4 d2@4 d2@8 ~@12 b1@8 c2@4 c2@8 ~@4 b1@4 b1@8 ~@4 c2@4 c2]/8",
D: "[~@3 b1@4 c2@4 c#2@8 d2@8 b1@2 c2@2 d2@16 ~@4 c#2@8 d2@4 d2@8 ~@12 b1@8 c2@4 c2@8 ~@4 b1@4 b1@8 ~@3 c2@4 c2@4 b1@4 c2@4 c#2@8 d2@12 a1@4 ~@4 a1@4 ~@4 a1@4 e1@4 f#1@4 e1@4 a1@2]/6",
E: "[~@7 a1@4 ~@4 a1@4 e1@4 f#1@4 e1@4 a1@4 ~@4 a1@4 ~@4 a1@4 e1@4 f#1@4 e1@4 a1@4 ~@4 a1@4 ~@4 a1@4 e1@4 f#1@4 c2@8 c2@4 c2@4 ~@4 c2@4 a#1@4 c2@4 ~ a#1@4]/4",
F: "c2 ~ c2 ~ c2 g1 c2 g1", G: "[c2@2 c2@2 c2@2 c2 a1@2 a#1@2 b1@2 c2@2 c#2]/2", H: "d2@4 ~ c#2!2 d2",
I: "d2@2 ~@3 b1@2 c2", J: "c2 ~", K: "[~@6 a1 d2@3 ~@3 c#2@2 d2]/2", L: "c2@2 ~ b1 b1@2 ~ c2",
M: "c2 b1 c2 c#2@2 d2@3", N: "a1 ~ a1 ~ a1 e1 f#1 a1", O: "a1@2 a1@2 a1@2 ~@2 a1@2 e1@2 f#1@2 a1!2",
P: "a1@4 ~@4 a1@4 ~@4 a1@4 ~ e1@4 f#1@4 c2@3", Q: "~ c2@4 c2@4 c2@4 ~@4 c2@4 g1@4 a#1@4 c2@3",
R: "[~ c2@8 c2@4 c2@4 c2@4 g1@4 c2@4 a1@8 a#1@8 ~ b1@8 c2@8 c#2@4 d2@8 ~@22]/3", S: "~@21 a2@8 ~@3",
T: "[~@17 c#2@8 d2@3 d2@8 ~@12 b1@8 c2@4 c2@8 ~@28]/3", U: "[~@27 d2@8 ~@12 c#2@7 d2@4 d2@6]/2",
V: "~@7 b1@2 b1@2 c2@2 c2@2 ~", W: "~@21 g1@4 g1@7", X: "~ f1@8 f1@16 d2@7", Y: "~@3 c#2!2 d2!2 ~", Z: "~@6 c2 ~",
AA: "[~@4 g1@4 ~@7 c2@4 ~@8 g1@4 g1@8 g1@8 d2@8 a1@4 ~@4 a1@4 ~@4 a1@4 e1@4 f#1@4 e1@4 a1@4 ~@4 a1@4 ~@4 a1@4 e1@4 f#1@4 e1@4 a1@4 ~@4 a1@4 ~@4 a1@4 e1@4 f#1@4 e1@4 a1@4 ~@5]/5",
AB: "a1@2 ~ a1 a1@2 e1@2 f#1@2 a1@6", AC: "a1@2 a1 e1 f#1 e1 a1 ~", AD: "a1 ~ a1 e1 f#1 e1 a1!2",
AE: "~@4 a1@4 a1@4 a1@4 ~ a#2@4 g1@4 g1@4 g1@3", AF: "~ g1@4 g1@4 g1@4 g1@4 g1@4 g1@4 d2@4 d3@3", AG: "~@25 a1@4 ~@3",
AH: "~ a1@4 ~@4 a1@4 ~@4 a1@3 e1@4 a1@4 ~@4",
AI: "[a1@4 ~@4 a1@4 e1@4 f#1@3 e1@4 a1@4 ~@4 a1@4 ~@4 a1@4 e1@4 f#1@3 e1@4 a1@4 ~@4 a1@4 a1@4 a1@4 a1@4 a1@3 c2@4 c2@4 c2@4 c2@3]/3",
AJ: "~ c2@4 c2@4 e1@3 f1@4 g1@4 c2@4 c2@4 c2@4",
AK: "[c2@4 c2@4 g1@3 a1@4 c2@4 c2@4 c2@4 c2@4 c2@4 c2@4 c2@3 c2@4 a1@4 a1@4 a1@4 a1@4 a#1@4 a#1@3 a#1@4 a#1@4 b1@4 b1@4 b1@4 b1@3 c2@4]/3",
AL: "[c2@4 c2@4 c2@4 a1@4 a1@3 a#1@4 a#1@4 b1@4 b1@4 c2@3 c2@4 c#2@4 d2@15 ~@3]/2",
})).s("gm_electric_bass_finger").gain(0.35).pan(0.6)
// bass · synth bass 1
const bass_2 = note("<~@108 A@2 B C B D E D F@2 G@8 ~@13>".pickRestart({
A: "[~@29 a1@2 a1@2 ~@12 a1@2 a1@2 ~@15]/2", B: "~@11 d2@2 d2@2 d2@2 d2@2 c2@2 c2@2 c2@2 a1@2 a1@2 a1@2 ~",
C: "~@9 a1@2 a1@2 a1@2 a1@2 a1@2 ~@4 a1@2 a1@2 a1@2 ~@3", D: "~ a1@2 ~@10 a1@2 a1@2 a1@2 ~@2 a1@2 a1@2 ~@7",
E: "~@13 d2@2 ~@2 c2@2 c2@2 c2@2 c2@2 a1@2 a1@2 a1@2 ~",
F: "[~@13 [d1,d2]@2 ~@2 [c1,c2]@2 [c1,c2]@2 [c1,c2]@2 [c1,c2]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~]/2", // D C A
G: "[~ [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 ~@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@2 [a0,a1]@62 ~@9]/8", // A
})).s("gm_synth_bass_1").gain(0.25).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
~@5 A B@17 ~@5 C D@2 E F D@2 E G D@2 E F D@2 E F H D I J K L M N O B P Q R@2 S T U V W U S@3 X Y Z@2 AA AB ~@6 AC K@5
AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ@3 AR AS@2 AT AU ~ AV AL@3 AW AX@10 AY AZ BA BB BC BD BE BF BG BH BI ~@5
>`.pickRestart({
A: "~ x!3", B: "x!4", C: "~@19 x ~@3 x ~@3 x ~@3 x", D: "~@15 x ~@3 x ~@7 x ~@3 x", E: "~@11 x ~@3 x ~@11 x ~@3 x",
F: "~@11 x ~@3 x ~@3 x ~@7 x ~@3 x", G: "~@11 x ~@3 x ~@3 x ~@11 x", H: "~@19 x ~@7 x ~@3 x",
I: "~@11 x ~@3 x ~@10 x ~@3 x ~", J: "~@5 x ~ x ~ x ~@3 x ~ x", K: "~@7 x ~@7 x", L: "~@15 x ~@15 x",
M: "~@15 x ~@3 x ~@11 x", N: "~@11 x ~@3 x ~@3 x ~@7 x ~@4", O: "~@3 x ~@11 x ~@7 x ~@8", P: "x ~ x ~ x ~ x!2",
Q: "x!2 ~ x ~ x ~ x", R: "x ~@3 x!2 ~ x", S: "x!2", T: "x ~@4 x!3", U: "x ~@3 x!2 ~@2", V: "~ x ~@2 x!2 ~ x",
W: "x ~@2 x!2 ~@2 x", X: "x ~@15 x ~@12 x ~@2", Y: "~@5 x ~@11 x ~@14", Z: "~ x ~@15 x ~@14", AA: "~ x ~@16 x ~@13",
AB: "~ x ~@14", AC: "~@15 x", AD: "~@13 x ~@15 x ~@2", AE: "~@11 x ~@5 x ~@10 x ~@3", AF: "~@5 x ~@2 x ~@5 x ~",
AG: "~@12 x ~@14 x ~@4", AH: "~@11 x ~@15 x ~@4", AI: "~@11 x ~@3 x ~@6 x ~@3 x ~@5", AJ: "~@4 x ~@2 x ~@3 x ~ x ~@2",
AK: "~@6 x ~@3 x ~@10 x ~@3 x ~@6", AL: "~@9 x ~@15 x ~@6", AM: "~@7 x ~@4 x ~@11 x ~@7", AN: "~@3 x ~@2 x ~@5 x ~@3",
AO: "~@4 x ~@2 x ~@15 x ~@3 x ~@4", AP: "~@7 x ~@11 x ~@3 x ~@8", AQ: "~@7 x ~@15 x ~@8", AR: "~@2 x!2 ~ x ~ x",
AS: "~ x ~ x", AT: "~@8 x ~@12 x ~@7 x ~@2", AU: "~@5 x ~@7 x ~@7 x ~@3 x ~@6", AV: "~@25 x ~@6",
AW: "~@9 x ~@15 x ~@5 x", AX: "~@3 x ~@5 x ~@5 x ~@3 x ~@5 x ~@5 x", AY: "~@3 x ~@5 x ~@5 x ~@3 x ~@5 x ~@6",
AZ: "~ x ~@7 x ~@7 x ~@6 x ~@7", BA: "x ~@7 x ~@7 x ~@6 x ~@7 x", BB: "~@7 x ~@7 x ~@6 x ~@7 x ~",
BC: "~@6 x ~@7 x ~@6 x ~@7 x ~@2", BD: "~@5 x ~@6 x ~@7 x ~@7 x ~@3", BE: "~@4 x ~@6 x ~@7 x ~@7 x ~@4",
BF: "~@3 x ~@6 x ~@7 x ~@3 x ~@3 x ~@3 x ~", BG: "~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3",
BH: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x", BI: "~@3 x ~@2 x ~@3 x ~@3 x ~@17",
})).gain(0.3)
// drums · snare
const snare = s("sd").struct(`<
~@29 A@19 B@2 A@4 C@2 D C@7 E C@3 F G@3 H ~@8 B@5 I@2 J K L M N O P Q R S T@3 U V@3 W X Y Z AA@16 AB AC AD AE AF AG G
AH AI ~@5
>`.pickRestart({
A: "~@7 x ~@15 x ~@8", B: "~@3 x ~@7 x ~@4", C: "~ x ~ x", D: "~ x!3", E: "~@4 x ~@7 x!4", F: "~@8 x ~@16 x ~@6",
G: "~@9 x ~@15 x ~@6", H: "~ x ~@8 x ~@7 x ~@7 x ~@5", I: "~@5 x ~@15 x ~@10", J: "~@2 x ~@7 x!3 ~@3",
K: "~ x ~@3 x ~@2", L: "~@3 x ~@15 x ~ x ~ x ~ x ~@6", M: "~@3 x ~@14 x ~@13", N: "~ x ~@7 x ~@6",
O: "~@2 x ~@14 x ~@14", P: "~ x ~@15 x ~ x ~ x ~ x ~@8", Q: "~ x ~@14 x ~ x ~ x ~@11", R: "x ~@7 x!3 ~@5",
S: "x ~@14 x ~@15 x", T: "~@15 x ~@15 x", U: "~@15 x ~@16", V: "x!2", W: "x ~@16 x ~@7 x ~@6",
X: "~ x ~@7 x ~@7 x ~@14", Y: "~@9 x ~ x ~@20", Z: "~@11 x ~ x ~ x ~ x ~ x ~ x ~ x ~@8", AA: "~ x ~@15 x ~@14",
AB: "x ~@15 x ~@14 x", AC: "~@15 x ~@14 x ~", AD: "~@14 x ~@2 x ~ x ~@9 x ~@2", AE: "~@3 x ~@3 x",
AF: "~@11 x ~@15 x ~@4", AG: "~@5 x ~@7 x ~@2", AH: "~@8 x ~@14 x ~@8", AI: "~@3 x ~@12",
})).gain(0.36)
// drums · pedal hat
const pedal_hat = s("hh").struct(`<
~@5 A B@17 ~@6 C D C D C@3 E C D C D C@3 E D C F G H I C J K A@4 B A B A B A B A B@2 L M N@2 O ~@7 P H@5 Q R S T U V W
X Y Z AA AB AC C@2 K AD B AE AF AG ~ AH AI@14 Y AJ AK AL AM AN AO AP AQ AR AS ~@5
>`.pickRestart({
A: "~ x!7", B: "x!8", 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 ~@3 x ~@3 x ~@3 x ~@4", E: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@7 x ~@4",
F: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~", G: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2",
H: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", I: "~@2 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
J: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@8", K: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3",
L: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@6", M: "~@5 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
N: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", O: "~ x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~",
P: "~@15 x", Q: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~ x",
R: "~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~", S: "x!2 ~ x!7 ~@3 x!3",
T: "x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x", U: "~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~@11 x ~ x",
V: "~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x ~ x ~ x ~ x ~ x ~ x ~", W: "x ~ x!7 ~ x!6",
X: "x ~@3 x ~ x ~ x ~ x ~ x ~ x!2 ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x",
Y: "~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x", Z: "~@3 x ~ x ~ x ~ x!2 ~@11 x ~ x ~ x ~ x ~ x ~",
AA: "~ x!7 ~@5 x!3", AB: "~@2 x ~ x ~ x!2 ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~@2",
AC: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x ~ x ~@5 x ~@3 x", AD: "x!5 ~@2 x", AE: "x ~ x ~ x ~ x ~ x ~ x ~ x!4",
AF: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~@4 x ~ x ~ x ~@3 x ~ x ~ x", AG: "~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~@12",
AH: "~@25 x ~ x ~ x ~ x", AI: "~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x",
AJ: "~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x!2 ~ x ~ x ~ x ~ x ~ x ~",
AK: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x!2 ~ x ~ x ~ x ~ x ~ x ~@2",
// … 36 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.