0:00/0:00
// The Invisible Man — Queen
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 6, 4/4 at bar 7) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 117 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.
// other · overdriven guitar · "Lead Gtr"
const overdriven_guitar = note("<~@65 A B C D E F G H I J K ~@41>".pickRestart({
A: "~@13 c4!2 [b3,c4]", B: "d4 [c4,d4] c4 [c4,d4] d4 [c4,d4] c4 [c4,d4] d4 [c4,d4] c4 [c4,d4] d4 [c4,d4] c4 [d4,g4]",
C: "g4 [f4,f#4] e4 [d4,d#4] c#4 [c4,g4] f#4 [e4,f4] d#4 [c#4,d4] c4 [f#4,g4] f4 [e4,f4] d#4 [c#4,d4]", // F#maj7 D#maj7 C5 Fmaj7 Dmaj7 Gmaj7 Fmaj7 Dmaj7
D: "c4 [c4,g4] f#4 [e4,f4] d#4 [c#4,d4] c4 [f#4,g4] f4 [d#4,e4] d#4 [c#4,d4] c4!3 c5", // C5 Fmaj7 Dmaj7 Gmaj7 Emaj7 Dmaj7
E: "b4 a#4 a4 [g4,g#4] f#4 [e4,f4] f#4 [e4,f4] d#4 [c4,d4] c4 [a3,a#3] g3 [g3,a3] d#3 e3", F: "g3@8 c4@5 ~ d#4 e4",
G: "g4 e4 d#4 [e4,f4] e4 [d#4,e4] [e4,g4] d#4 e4 f4 e4 [d#4,e4] g4 [d#4,e4] e4 f4", // Fmaj7 Emaj7 Em Emaj7
H: "e4 [d#4,e4] [e4,g4] [d#4,e4] e4 [e4,f4] d#4 e4 a4@5 g4 ~ f#4", I: "f4 e4 d#4 d4 c4 [c4,d4] c4@4 c4 c5 c4 c5 ~ b4",
J: "a#4 [g4,a4] f#4 [e4,f4] e4 [d4,d#4] c#4 c4@2 c5 b4 a#4 a4 [g4,g#4] f#4 [e4,f4]", // Gsus2 Fmaj7 D#maj7 G#maj7 Fmaj7
K: "d#4 [c#4,d4] c4 c5 a#4 [g#4,a4] f#4 [e4,f4] d#4 [c#4,d4] c4 [g#3,a#3] ~@4", // Dmaj7 Amaj7 Fmaj7 Dmaj7 G#sus2
})).s("gm_overdriven_guitar").gain(0.25).pan(0.7)
// other · overdriven guitar · "Lead Gtr" · soft notes
const overdriven_guitar_soft = note("<~@75 A ~@3 B@3 ~@35>".pickRestart({
A: "~@12 d#4 [c#4,d4] c4 [g#3,a#3]", B: "[~@7 a#2 c3 [g2,a#2] a#2 [c3,d3]@2 f3@5 g3@22 ~@8]/3",
})).s("gm_overdriven_guitar").gain(0.15).pan(0.7)
// chords · overdriven guitar · "Guitr 1"
const overdriven_guitar_2 = note("<~@29 A@4 ~@2 A ~@26 B C B C ~@14 A@3 ~@34>".pickRestart({
A: "~@9 [g3,c4,e4]!2 ~ [g3,c4,e4] ~@3", B: "~ [g3,c4,e4]!3 ~@12", C: "~@5 [g3,c4,e4]!2 ~@9",
})).s("gm_overdriven_guitar").gain(0.35).pan(0)
// chords · overdriven guitar · "Guitr 2"
const overdriven_guitar_3 = note(`<
~@29 A@4 ~@2 A ~@3 B@3 ~@2 C@2 D ~@5 E F@2 G@2 ~@3 H I J K J L ~@14 A@3 ~@8 M@2 ~@4 N O ~@14 P Q R S
>`.pickRestart({
A: "~@5 [f3,c4,f4]!4 ~@7", B: "[~@7 g3@7 [f3,c4]@14 [g3,c4]@2 [g3,c4]@4 ~@14]/3", C: "[~@4 a3@2 a2 [f3,c4]@9]/2",
D: "c3 ~@7", E: "[g1,d2,g2]", F: "[d2,a2,d3,f#3,a3]/2", G: "[[d2,a2,d3,f#3]@14 e1!2]/2", H: "[e1,e2,b2,e3,g#3]!4 ~@4",
I: "~@13 [f3,c4,f4]!3", J: "[f3,c4,f4] ~@12 [f3,c4,f4]!3", K: "[f3,c4,f4]!4 ~@9 [f3,c4,f4]!3", L: "[f3,c4,f4]!4 ~@12",
M: "[~@7 [f2,c3,f3,a3,c4]@9]/2", N: "~@5 [a3,c4,f4]!2 [g3,c4,e4]", O: "~ [g3,c4] ~@6", P: "~@3 c5@5", Q: "c5",
R: "c5@3 c5@3 c5@4 c5@2 a#4@4", S: "g4",
})).s("gm_overdriven_guitar").gain(0.35).pan(1)
// chords · overdriven guitar · "Guitr 2" · soft notes · E
const overdriven_guitar_soft_2 = note("<~@57 [[e1,e2] [e1,e2,b2,e3,g#3]!7]!3 ~@57>")
.s("gm_overdriven_guitar").gain(0.2).pan(1)
// other · lead 8 bass lead · "Synth"
const lead_8_bass_lead = note(`<
~@104
[~@14 c5!2]
[c5!5 d#5!2 c5 a#4 c5!3 a#4 c5!3]
[a#4 c5!4 d#5!2 c5 a#4 c5 a#4 c5!3 a#4 c5]
[c5!2 ~@2 c5 ~@11]
~@9
>`).s("gm_lead_8_bass_lead").gain(0.25).pan(0.7)
// chords · pad poly · "Pad Synth"
const pad_poly = note(`<
A B C@2 ~@13 D@2 E@2 ~ D@2 F@2 ~ G ~@5 H ~@3 D@2 F@2 ~ D@2 F@2 ~@32 I ~@5 D@2 E@2 ~ D@2 F@2 ~ D@2 F@2 ~@4 J ~@9 K ~@4
>`.pickRestart({
A: "~@6 [d#4,f#4,b4] [e4,g4,c5] [e4,g4] ~@7", B: "~@6 [d#4,f#4,b4] [e4,g4,c5] [e4,g4]!2 ~@6",
C: "[~@3 [c4,f4,a4]@11 ~ [c4,e4,g4]]/2", D: "~@6 [d#4,f#4,b4] [e4,g4,c5] [c4,e4,g4]!2 ~ [c4,f4,a4] ~@2 [c4,e4,g4] ~",
E: "[[c4,e4] ~@3 [c4,f4,a4]@24 ~@2 [c4,e4,g4] ~]/2", F: "[~@7 [c4,f4,a4]@8 [c4,e4,g4]]/2", G: "~@8 [c4,e4,g4]!2 ~@6",
H: "~@4 [c4,e4,g4]!2 ~ [c4,e4,g4]!3 ~@6", I: "~@8 [c4,e4,g4]!2 ~ [c4,f4,a4] ~@2 [c4,e4,g4] ~", J: "~@5 a6 ~@2",
K: "~@7 [c5,f5,a5]@9", // F
})).s("gm_pad_poly").gain(0.3).pan(0)
// other · synth brass 2 · "Brass Pad"
const synth_brass_2 = note(`<
~@2 A@2 ~@15 B@2 ~@3 C@2 ~@13 C@2 ~@3 C@2 ~ D@6 ~@25 E ~@7 B@2 ~@3 C@2 ~@2 F G@2 ~@4 H ~@14
>`.pickRestart({
A: "[~@3 c2@11 ~ c2]/2", B: "[~ c2@6 ~]/2", C: "[~@7 f1@8 c2]/2", D: "[g3,b3,d4]/6", E: "~@6 c2@2 ~@2 c2 ~@2 c2 ~@2",
F: "~@6 c2 ~ c2!2 ~ c2 ~@2 c2 ~", G: "[~@7 c2@8 c2]/2", H: "~@3 [c4,f4,a4]@3 ~@2",
})).s("gm_synth_brass_2").gain(0.35).pan(1)
// bass · synth bass 2 · "Kb Bass"
const bass = note(`<
~@5 A B C B A B C B A B C B ~@9 A@4 D E F G D G D ~@29 H B H B H B H B H B H B H B H B H B ~@9 B I B I B I B I B I B I
B I B I B I B I B I B J
>`.pickRestart({
A: "c2!3 ~ c2!4 ~ c2!3 d#2 ~ d#3 c3", B: "c2!3 ~ c2!4 ~ c2!3 a#2@2 a2@2", C: "c2!3 ~ c2!4 ~ c2!3 d#2 ~ d#2!2",
D: "c2!3 ~ c2!4 ~ c2!3 a#2@2 a2@2, ~@14 d#3 ~", E: "c2!3 ~ c2!4 ~ c2!3 d#2 ~ [d#2,d#3] d#2",
F: "c2!3 ~ c2!6 g1 a1 a#2@2 a2@2, ~@14 d#3 ~", G: "c2!3 ~ c2!4 ~ c2!3 d#2 ~ [d2,d#3] c2",
H: "c2!3 ~ c2!4 ~ c2!3 d#2 ~ d#3 d3", I: "c2!3 ~ c2!4 ~ c2!3 d#2@2 d#3 d3", J: "c2!3 ~ c2!4 ~ c2!3 d#2@2 d#3 ~",
})).s("gm_synth_bass_2").gain(0.4).pan(0.9)
// bass · synth bass 2 · "Kb Bass 2"
const bass_2 = note(`<
~@5 A B C D A B C D A B C D E@7 F ~ G ~@7 H I ~ E@7 F ~@21 J K L K M N O P@2 K Q K Q K Q K Q K ~@4 R@3 S ~ K Q K Q K T
U T U T U T U T U T U T U T U T U V
>`.pickRestart({
A: "c1!3 ~ c1!4 ~ c1!3 d#1 ~ a#1 c2", B: "c1!3 ~ c1!4 ~ c1 a1@2 a#0@2 a0@2", C: "c1!3 ~ c1!4 ~ c1!5 a#1 c2",
D: "c1!3 ~ c1!4 ~ c1!3 a#0@2 a0@2", E: "c1!3 ~ c1!4 ~ c1@2 c1!2 ~ c1 ~", F: "c1!3 ~ c1!4 ~ c1@2 c1 b0 ~ f0 ~",
G: "c0!3 ~ c0!4 ~ c0 a1 c0 d#0 ~ a#1 ~", H: "~@6 d4!6 e4!4", I: "e4!10 ~@6", J: "c1!3 ~ c1!4 ~ c1 a2 c1 d#1 ~ a#1@2",
K: "c1!3 ~ c1!4 ~ c1!3 a#1@2 a1@2", L: "c1!3 ~ c1!4 ~ c1!3 d#1@2 a#1 c2", M: "c1!3 ~ c1!4 ~ c1 a2!2 d#1@2 a#2!2",
N: "c1!3 ~ c1!4 ~ c1!3 a#1@2 a2 c3", O: "c1!3 ~ c1!4 ~ c1 a2 ~ d#1@2 a#2 c3",
P: "c1!3 ~ c1!2 a#2 c1 ~ c1 a#2 c1 d#1@2 a#2 c3", Q: "c1!3 ~ c1!4 ~ c1!3 d#1@2 d#2 d2",
R: "c2!3 ~ c2!4 ~ c2@2 c2!2 ~ c2 ~", S: "c2!3 ~ c2!4 ~ c2@2 c2!2 ~ f1@2", T: "c2!3 ~ c2!4 ~ c2!3 d#2@2 a#2 c3",
U: "c2!3 ~ c2!4 ~ c2!3 a#1@2 a#2 c3", V: "c2!3 ~ c2!4 ~ c2!3 d#2@2 a#2 ~",
})).s("gm_synth_bass_2").gain(0.16).pan(0.2)
// bass · electric bass finger · "Bass"
const bass_3 = note(`<
~@17 A@7 B C D E D E D E D E D E ~ F@7 G H ~ I@5 J K L M N O P@2 Q@2 R ~@21 S T U@2 V@3 W@2 ~@24
>`.pickRestart({
A: "c2!2 c2@2 c2!4 ~ c2@2 c2!2 ~ c2 ~", B: "c2!3 ~ c2!4 ~ c2@2 c2!2 ~ f1 ~", C: "f1!5 g1 a1 b1",
D: "c2!3 ~ c2!4 ~ c2!3 ~@4", E: "c2!3 ~ c2!4 ~ c2!3 ~ g2 a#2 c3", F: "c2!3 ~ c2!4 ~ c2 ~ c2!2 ~ c2 ~",
G: "c2!3 ~ c2!4 ~ c2 ~ c2!2 ~ f1 ~", H: "f1!5 g1 a1 c2", I: "g1@2 g1!14", J: "g1!12 c2@2 g1@2", K: "d2!7 b2",
L: "d3@2 d3@2 d3 ~ d2@2 d2@2 d2@2 d2@2 a1@2", M: "d2 a1 d2 a1 d2 a2 d2 a2", N: "d2!5 c2 b1 a1",
O: "[e1,e3]!2 [e1,b2] a2 e2@2 d2 b1", P: "e1!2 g1 g#1 b1 c#2 d2 e2", Q: "[e1!3 e2@11 ~@2]/2", R: "~ c2 ~@2",
S: "c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2!2", T: "a#1@2 a#1@2 a#1@2 a#1!2 a#1@2 a#1@2 a#1@2 a#1@2",
U: "[a1@2 a1!2 a1@2 a1!4 a1@2 g1@2 f1@4 f1@2 f1 ~@2 f1 f1@2 a1@2 a#1@2 c2@2]/2", V: "c2!3 ~ c2!4 ~ c2@2 c2!2 ~ c2 ~",
W: "[c2!3 ~ c2!4 ~ c2@2 c2!2 ~ f1@4 f1@2 f1@2 f1@2 f1@2 c2@6]/2",
})).s("gm_electric_bass_finger").gain(0.35).pan(0.3)
// other · acoustic guitar steel · "Elec Snar"
const acoustic_guitar_steel = note(`<
~@21 A B C ~@2 D E F G H I J I H I K L C ~ M A B C ~@39 A B C ~@2 A B C ~@3 C ~@4 C@2 ~@2 A B C ~@3 C@2 ~@3 C@2 ~
>`.pickRestart({
A: "~@14 e2!2", B: "e2!3 ~@11 e2!2", C: "e2!3 ~@13", D: "~@4 g#2!3 ~ g#2@4 ~@4", E: "g#2 ~ g#2 ~",
F: "g#2!2 ~@2 g#2!2 ~@2 g#2@4 ~@4", G: "g#2@4 ~@3 g#2!2 g#2@2 g#2 g#2@3 g#2", H: "g#2@2 g#2@2 g#2 g#2@3 g#2@4 ~@4",
I: "g#2@4 ~@3 g#2!2 g#2@3 ~@3 g#2", J: "g#2@2 g#2@2 g#2 g#2@3 g#2@4 g#2@3 g#2",
K: "g#2@2 g#2@2 g#2 g#2@3 g#2@4 ~@2 e2!2", L: "[e2,g#2] e2!2 ~@11 e2!2", M: "~ e2 e2@2 ~@4",
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.8)
// drums · kick
const kick = s("bd").struct("<~@4 A B@34 C B@4 C B D@6 ~ B@4 E@3 F G H I D@32 ~ J D@19>".pickRestart({
A: "~ x!6 ~", B: "x!2", C: "x ~@3 x ~@2 x", D: "x!4", E: "x!8", F: "x!4 ~@4", G: "~@15 x", H: "x ~@7 x ~@6 x",
I: "x ~@6 x ~@2 x ~@4 x", J: "x ~ x ~ x ~ x!2",
})).gain(0.43)
// drums · snare
const snare = s("sd").struct("<~@4 A B@41 ~@6 C B@4 D@3 ~@2 B@34 E ~ B@19>".pickRestart({
A: "x ~@12 x ~@2", B: "~ x ~ x", C: "~@3 x", D: "x!4", E: "x ~@3 x ~@3 x ~@2 x ~@2 x!2",
})).gain(0.43)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@96 [~ x!3 ~ x!3 ~ x!2 ~ x!2 ~@2] [~ x!3 ~ x!3 ~ x!3 ~ x ~@2] ~@19>").gain(0.21)
// drums · pedal hat
const pedal_hat = s("hh").struct(`<
~@5 A B A@17 C A D@11 A@2 E A@4 E A F@6 G H@2 I H J@3 ~@2 K J@3 L@4 M@4 N O F@4 P F P F@3 Q F@4 Q F@3 P ~@2 F@18 R
>`.pickRestart({
A: "x!4 ~ x!3 ~ x!3 ~ x!3", B: "~ x!3 ~ x!7 ~ x ~@2", C: "x!4 ~ x!7 ~ x ~ x", D: "~ x!3 ~ x!7 ~ x!3",
E: "~ x!3 ~ x!7 ~ x ~ x", F: "x!16", G: "x!12 ~ x!3", H: "x ~ x ~ x!3 ~ x!3 ~ x!3 ~", I: "~@2 x ~ x!3 ~ x!3 ~ x!3 ~",
J: "x!8", K: "~@2 x!6", L: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", M: "x ~ x ~ x ~ x!3 ~ x ~ x ~@3",
N: "x ~ x ~ x ~ x ~ x!4 ~@4", O: "x!4 ~ x!2 ~ x ~ x!2 ~ x!2 ~", P: "x!14 ~@2", Q: "x!14 ~ x", R: "x!15 ~",
})).gain(0.29)
// drums · open hat
const open_hat = s("oh").struct("<~@6 A ~@63 B@5 ~@5 A ~ A ~@12 A ~@21>".pickRestart({
A: "~@14 x!2", B: "~@7 x",
})).gain(0.29)
// drums · high tom
const high_tom = s("ht").struct("<~@4 [~ x!12 ~@3] ~@112>").gain(0.36)
// drums · crash
const crash = s("cr").struct(`<
~@18 A ~@5 B ~@14 B ~@4 B ~@10 C ~@4 D ~ C ~@23 B ~@4 B ~@5 E ~@3 C ~@4 B ~@4 B ~@5
>`.pickRestart({
A: "~@7 x ~@8", B: "~@7 x", C: "x", D: "x!4 ~@4", E: "x ~ x ~ x ~ x!2",
})).gain(0.64)
stack(
overdriven_guitar, overdriven_guitar_soft, overdriven_guitar_2, overdriven_guitar_3, overdriven_guitar_soft_2,
lead_8_bass_lead, pad_poly, synth_brass_2, bass, bass_2, bass_3, acoustic_guitar_steel, kick, snare, snare_soft,
pedal_hat, open_hat, high_tom, crash
)
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.