0:00/0:00
// Living on My Own — Queen
// 126 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · synth strings 2 · "Strings"
const synth_strings_2 = note(`<
~@8 A@4 B@4 C@3 D@2 E@5 B@4 A@4 B@4 A@4 F@2 G@3 D@2 E@5 B@4 A@4 F@2 G@3 D@2 E@5 ~@38
>`.pickRestart({
A: "[[g3,b3] [f3,a3], d4]/4", B: "[a3,c4,e4]/4", C: "[e4 b3 [a3,f4], g3@2 ~, ~ d4@2]/3",
D: "[e4 d4 [c4,e4]@2, g3, b3 ~]/2", E: "[[f#3,d#4] [e4,g4]@2 [d#4,f#4]@2, b3]/5", F: "[a3,c4,e4]/2",
G: "[[c4,e4] b3 [a3,f4], g3@2 ~, ~ d4@2]/3", // C Dm
})).s("gm_synth_strings_2").gain(0.4)
// bass · synth bass 1 · "Bass"
const bass = note(`<
~@12 A@3 B C D E D C F G@2 F@2 A@4 D@2 H@2 A@4 D@2 H@2 A@2 C D E D C F G@2 F@2 A@4 D@2 H@2 A@2 C D E D C F G@2 F@2 C D
E D C F G@2 ~@6 A@2 D I C D E D C F G@2 F@2 C D E D C F G@2 ~@2
>`.pickRestart({
A: "a2 ~ a2 ~ a1 a2 ~ a1 a2 ~ a2 ~ a1 a2 ~ a1", B: "a2 ~ a2 ~ a1 a2 ~ a1 ~@8",
C: "c3 ~ c3 ~ c2 c3 ~ c2 c3 ~ c3 ~ c2 c3 ~ c2", D: "g2 ~ g2 ~ g1 g2 ~ g1 g2 ~ g2 ~ g1 g2 ~ g1",
E: "d3 ~ d3 ~ d2 d3 ~ d2 d3 ~ d3 ~ d2 d3 ~ d2", F: "b2 ~ b2 ~ b1 b2 ~ b1 b2 ~ b2 ~ b1 b2 ~ b1",
G: "e3 ~ e3 ~ e2 e3 ~ e2 e3 ~ e3 ~ e2 e3 ~ e2", H: "d2 ~ d2 ~ d1 d2 ~ d1 d2 ~ d2 ~ d1 d2 ~ d1",
I: "g2 ~ g2 ~ g1 g2 ~ g1 ~@8",
})).s("gm_synth_bass_1").gain(0.46)
// bass · synth bass 1 · "Analog Synth"
const bass_2 = note(`<
~@13 A ~ B C D E D C F G@2 F H ~ A ~ I ~ D ~ E ~ A ~ I ~ D ~ E ~ J C D E D C F G@2 F H ~ A ~ I ~ D ~ E ~ J C D E D C F
G@2 F H C D E D C F G@2 ~@10 C D E D C F G@2 F H C D E D C F G@2 ~@2
>`.pickRestart({
A: "a2!2 a3 a2!2 a3 a2!2 a3 ~@7", B: "a3!2 a4 a3!2 a4 a3!2 ~@8", C: "c3!2 c4 c3!2 c4 c3!2 c4 ~@7",
D: "g2!2 g3 g2!2 g3 g2!2 g3 ~@7", E: "d3!2 d4 d3!2 d4 d3!2 d4 ~@7", F: "b2!2 b3 b2!2 b3 b2!2 b3 ~@7",
G: "e3!2 e4 e3!2 e4 e3!2 e4 ~@7", H: "b2!2 b3 b2!2 b3 b2!2 b3 b2!2 b3 b2!2 b3 ~", I: "a3!2 a4 a3!2 a4 a3!2 a4 ~@7",
J: "a2!2 a3 a2!2 a3 a2!2 a3 a2!2 a3 a2!2 a3 a4",
})).s("gm_synth_bass_1").gain(0.35)
// other · synth bass 1 · "Synth"
const synth_bass_1 = note(`<
~@16 A B C D E F G@2 H ~@19 A B C D E F G@2 H ~@11 A B C D E F G@2 H ~ A B C D E F G@2 ~@10 A B C D E F G@2 H ~ A B C
D E F G@2 ~@2
>`.pickRestart({
A: "g3 c4 e4 g4 c5 e5 g5 c6 e6 c6 g5 e5 c5 g4 e4 c4", B: "b3 g3 b3 d4 g4 b4 d5 g5 b5 d6 b5 g5 d5 b4 g4 d4",
C: "a3 d4 f4 a4 d5 f5 a5 d6 f6 d6 a5 f5 d5 a4 f4 d4", D: "b3 g3 b3 e4 g4 b4 e5 g5 b5 d6 b5 g5 d5 b4 g4 d4",
E: "c4 g3 c4 e4 g4 c5 e5 g5 c6 e6 c6 g5 e5 c5 g4 e4", F: "d#4 b3 f#3 b3 d#4 f#4 b4 d#5 f#5 b5 d#6 b5 f#5 d#5 b4 f#4",
G: "g4 e4 b3 e4 g4 b4 e5 g5 b5 e6 g6 e6 b5 g5 e5 b4", H: "f#4 d#4 b3 d#4 f#4 b4 d#5 f#5 b5 d#6 f#6 d#6 b5 f#5 d#5 b4",
})).s("gm_lead_8_bass_lead").gain(0.25)
// drums · kick
const kick = s("bd").struct("<~@14 A B A@9 C A@17 C A@9 C A@8 C ~ A@9 C A@8 C ~ A@4 ~@4 A@9 C A@8 C ~>".pickRestart({
A: "x!4", B: "x!3 ~", C: "x",
})).gain(0.59)
// drums · rim
const rim = s("rim").struct("<~@12 A@50 ~@2 A@18 ~@2 A@7 B A@18 ~@2>".pickRestart({
A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.46)
// drums · hihat
const hihat = s("hh").struct("<A ~@15 A@9 B A@17 B A@9 B A@8 B ~ A@18 B ~@5 A@3 C A@18 B ~>".pickRestart({
A: "x!4", B: "x", C: "x!3 ~",
})).gain(0.26)
// drums · open hat
const open_hat = s("oh").struct("<~@16 A@9 ~ A@17 ~ A@9 ~ A@8 ~@2 A@18 ~@6 A@3 B A@18 ~@2>".pickRestart({
A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~@4",
})).gain(0.33)
// drums · tambourine
const tambourine = s("tb").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 ~@3 A ~ A ~ A ~ A ~ A ~
A ~ A ~ A ~ A ~@11 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3
>`.pickRestart({
A: "~@5 x ~ x",
})).gain(0.46)
// drums · ride
const ride = s("rd").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 ~@3 A ~ A ~ A ~ A ~ A ~
A ~ A ~ A ~ A ~@11 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3
>`.pickRestart({
A: "~@5 x ~ x",
})).gain(0.39)
// drums · congas
const congas = s("conga:13").struct(`<
~@16 A B A B A B A B A ~ A B A B A B A B A B A B A B A B A ~ A B A B A B A B A ~ A B A B A B A B ~@2 A B A B A B A B A
B A B A B A B A B ~@6 A B A ~ A B A B A B A B A B A B A B A B A B ~@2
>`.pickRestart({
A: "~ x ~@3 x ~@2", B: "~@5 x ~@2",
})).gain(1.05)
// drums · congas
const congas_2 = s("conga:18").struct(`<
~@16 A B A B A B A B A ~ A B A B A B A B A B A B A B A B A ~ A B A B A B A B A ~ A B A B A B A B ~@2 A B A B A B A B A
B A B A B A B A B ~@6 A B A C A B A B A B A B A B A B A B A B A B ~@2
>`.pickRestart({
A: "x ~@5 x!3 ~@5 x!2", B: "x ~@5 x!3 ~@4 x ~ x", C: "x ~@5 x!2 ~@8",
})).gain(1.05)
// drums · congas
const congas_3 = s("conga:33").struct(`<
~@17 A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A
~ A ~ A ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@2
>`.pickRestart({
A: "~@3 x ~@12",
})).gain(1.05)
// drums · shaker
const shaker = s("sh").struct("<~@12 A@3 B A@9 ~ A@17 ~ A@9 ~ A@8 ~@2 A@18 ~@2 A@7 B A@18 ~@2>".pickRestart({
A: "x!16", B: "x!8 ~@8",
})).gain(0.33)
// drums · shaker · soft notes
const shaker_soft = s("sh").struct("<~@12 A@3 B A@9 ~ A@17 ~ A@9 ~ A@8 ~@2 A@18 ~@2 A@7 B A@18 ~@2>".pickRestart({
A: "~ x ~@3 x ~@3 x ~@3 x ~@2", B: "~ x ~@3 x ~@10",
})).gain(0.2)
// drums · triangle
const triangle = s("triangles:30").struct("<~@16 A@10 ~@18 A@10 ~@10 A@18 ~@10 A@18 ~@2>".pickRestart({
A: "x",
})).gain(2.86)
// drums · triangle · soft notes
const triangle_soft = s("triangles:30").struct("<~@16 A@9 ~@19 A@9 ~@11 A@9 ~ A@8 ~@10 A@9 ~ A@8 ~@2>".pickRestart({
A: "~ x",
})).gain(1.71)
// drums · triangle
const triangle_2 = s("triangles:35").struct("<~@16 A@9 ~@19 A@9 ~@11 A@9 ~ A@8 ~@10 A@9 ~ A@8 ~@2>".pickRestart({
A: "~@3 x ~@2 x ~@8 x",
})).gain(2.86)
stack(
synth_strings_2, bass, bass_2, synth_bass_1, kick, rim, hihat, open_hat, tambourine, ride, congas, congas_2, congas_3,
shaker, shaker_soft, triangle, triangle_soft, triangle_2
)
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.