0:00/0:00
// I Want to Break Free — Queen
// 180 bpm, 4/4, key F 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: ch 12 "Jazz Bass" named as a bass, played on electric bass finger (its electric guitar jazz patch is not one)
// note: Full arrangement: all 185 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/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 · piano
const piano = note("<~@5 A@3 ~@5 B@5 C@6 ~@161>".pickRestart({
A: "[~@7 c5@17, ~ [f2,f3]@7, ~@11 c4@37, ~ d4@3, ~@13 [f4,ab4]@35]/3", // F Fm
B: "[~@14 gb4@4 ~ db4@4 bb3@4 gb3@4 ~ bb3@4 ~@13 bb3@4 g3@2 eb4@2 ~@7 bb3@2 bb3@6 eb4@2 ab1@4 ab2@2, ~@5 [gb1,gb2]@35 ~ g1@34 ~@5, ~@36 eb4@13 ~@8 eb4@6 ~@11 eb4@6, ~@61 g2@13 ~@6]/5", // Gb
C: "[bb3@2 bb3@5 ~@2 ab3@2 ab1@4 ~@2 c4@2 ab1@4 ab2@2 g2@2 ~ [e4,g4,c5]@4 c4@4 e4@4 g4@4 c5@4 bb4@4 ~ g4@4 e4@4 [g2,bb3,d4,f4]@34 ~, ~@2 ab1@4 ~ ab2@4 ab3@6 ~@2 c4@9 ~@68, ~@15 ab2@4 ~@9 [c2,c3]@29 g1@38 ~]/6", // C Gm7 C
})).s("gm_piano").gain(0.54).pan(0.2)
// chords · drawbar organ · "Organ"
const drawbar_organ = note(`<
~@33 A@8 B@8 C@3 D E F@2 G@2 H@4 I@2 ~ J@6 K@3 L@4 M@2 N@2 O P@6 ~@3 Q@8 R@6 S@3 T@2 U V ~@16 W@2 ~ X@8 ~ Y@2 Z@2 AA@2
AB@2 O AC ~@34
>`.pickRestart({
A: "[~@7 [f3,c4,f4,a4,c5]@16 [f3,f4,bb4,d5]@16 [f3,c4,f4,a4,c5]@16 [f3,f4,bb4,d5]@9, ~@7 f2@57]/8", // F Bb F Bb
B: "[~@7 [f3,c4,f4,a4,c5]@16 [f3,f4,bb4,d5]@16 [bb2,f4,bb4,d5,f5]@16 [c3,g4,c5,e5]@9]/8", // F Bb C
C: "[~@7 [f3,bb3,f4,bb4,d5]@17]/3", D: "[d3,bb4,d5,f5,d6]", E: "[eb3,bb4,eb5,g5,bb5] [c3,c5,e5,g5,c6]",
F: "[f3,c5,f5,a5]/2", G: "[c3,c5,e5,g5]/2", H: "[bb2,bb4,d5,f5]/4", I: "[[f2,f3,f4,a4,c5]@7 ~]/2",
J: "[~@7 [f3,a3,c4,f4,a4,c5]@16 [g3,bb3,eb4,g4,bb4,eb5]@16 [a3,c4,f4,a4,c5,f5]@9]/6", // F Eb F
K: "[~@7 [g3,bb3,eb4,g4,bb4,eb5]@17]/3", L: "[[a3,d4,f4,a4,d5,f5]@15 [b3,d4,g4,b4,d5,g5]@17]/4",
M: "[a3,c4,f4,a4,c5,f5]/2", N: "[bb3,d4,f4,bb4,d5,f5]/2", O: "[a3,d4,f4,a4,d5,f5] [g3,c4,e4,g4,c5,e5]",
P: "[[bb3,d4,f4,bb4,d5,f5], f3 ~@11]/6", // Bb
Q: "[~@7 [c3,f4,a4,c5,f5]@16 [d3,f4,bb4,d5,f5]@16 [c3,f4,a4,c5,f5]@16 [d3,f4,bb4,d5,f5]@9]/8", // F Bb F Bb
R: "[~@7 [c3,f4,a4,c5,f5]@16 [d3,f4,bb4,d5,f5]@16 [d3,f4,bb4,d5,f5]@9]/6", S: "[~@7 [g4,c5,e5,g5]@17, ~@7 e3@16 ~]/3",
T: "[[d3,f4,bb4,d5,f5]@15 ~]/2", U: "[d3,f4,bb4,d5,f5]@7 ~", V: "[eb3,g4,bb4,eb5,g5] [e3,g4,bb4,e5,g5]",
W: "[f2,f3,f4,a4,c5]/2", // F
X: "[~@7 [f3,a3,c4,f4,a4,c5]@16 [g3,bb3,eb4,g4,bb4,eb5]@16 [a3,c4,f4,a4,c5,f5]@16 [eb4,g4,bb4,eb5,g5]@9]/8", // F Eb F Eb
Y: "[d4,f4,a4,d5]/2", Z: "[d4,g4,b4,d5]/2", AA: "[c4,f4,a4,c5,f5]/2", AB: "[f4,bb4,d5,f5]/2", AC: "[f4,bb4,d5]",
})).s("gm_drawbar_organ").gain(0.31).pan(0.3)
// chords · english horn · "Organ"
const english_horn = note("<~@173 A@3 ~@9>".pickRestart({
A: "[~ [gb2,db3,gb3,bb3]@10 ~]/3", // Gb
})).s("gm_english_horn").gain(0.31).pan(0.3)
// chords · overdriven guitar · "Electric Guitar"
const overdriven_guitar = note(`<
~@27 A ~@3 A ~@9 B ~ C@2 D ~ E ~ D ~@46 F ~@4 G@2 H@2 I J K L M N O P Q@2 R@2 S@2 T U V@2 W@2 X@4 Y ~@21 Z AA AB AC
AD@2 AE@2 AF@2 AG@3 AH AI@2 AJ AK AL@2 AM@2 ~@12
>`.pickRestart({
A: "~@7 [f2,c3,f3]", B: "~@7 [a3,c4,f4]", C: "[~@7 [d3,f3,bb3]@2 ~@7]/2", D: "~@7 [bb3,d4,f4]", E: "~@7 [c4,e4,g4]",
F: "~@7 [f3,a3,c4,f4]", G: "[[f3,c4,f4]@15 f3]/2", H: "[[bb3,f4,bb4]@14 a3 g3]/2", I: "~ f3 bb3 f3 d4 bb3 d4 bb3",
J: "~ f3 bb3 f3 d4 f3 bb3 f3", K: "~ g3 c4 g3 e4 g3 c4 g3", L: "~ g3 c4 [f3,bb3]@4 [f3,bb3]",
M: "~@5 [f4,bb4]@3, [f3,bb3]", N: "[f4,bb4] f4@2 [bb3,d4] d4 f4 bb4 g4", O: "[a4,c5]!4", P: "~@7 [f2,c3,f3,a3]",
Q: "[[f4,c5,f5,a5]@7 [c4,g4,c5,e5]]/2", R: "[[c4,g4,c5,e5]@30 [bb3,f4,bb4,d5]!2]/2",
S: "[[bb3,f4,bb4,d5]@15 [bb3,f4,bb4,d5]]/2", T: "[bb3,f4,bb4,d5,f5]@7 [bb3,f4,bb4,d5,f5]",
U: "[bb3,f4,bb4,d5,f5]!7 ~", V: "[~ [f4,c5,f5,a5]@6 [f4,c5,f5,a5]]/2",
W: "[[c4,g4,c5,e5]@5 [c4,g4,c5,e5]!2 [bb3,f4,bb4,d5]]/2", X: "[bb3,f4,bb4,d5]/4", Y: "~@7 [c4,f4,a4]",
Z: "~@6 [c5,f5]!2", AA: "[c5,f5]!8", AB: "db5@3 eb5@5", AC: "f5!2 ab5 ab5@5", AD: "[a6@3 a6@3 a6 a6@2 a6!5 a6@2]/2",
AE: "[[gb4,db5,gb5,bb5]@7 [gb4,db5,gb5,bb5]]/2", AF: "[[db4,ab4,db5,f5]@15 ~, ab5]/2",
AG: "[[b3,gb4,b4,eb5,gb5]@5 [b3,gb4,b4,eb5,gb5]@3]/3", AH: "[b3,gb4,b4,eb5,gb5]!7 [gb4,db5,gb5,bb5]",
AI: "[~@2 [gb4,db5,gb5,bb5]@13 b3]/2", AJ: "[db4,ab4,db5,f5,ab5] [db4,ab4,db5,f5,ab5]@3",
AK: "[db4,ab4,db5,f5,ab5]@6 [db4,ab4,db5,f5,ab5] [b3,gb4,b4,eb5,gb5]", // Db B
AL: "[[b3,gb4,b4,eb5,gb5]@15 [b3,gb4,b4,db5]]/2", AM: "[b3,gb4,b4,db5]/2",
})).s("gm_overdriven_guitar").gain(0.36).pan(1)
// chords · overdriven guitar · "Electric Guitar" · soft notes
const overdriven_guitar_soft = note("<~@53 A B@2 C@2 D@2 E@2 F ~@122>".pickRestart({
A: "~@14 [f3,c4,f4,a4,c5,f5]!2", B: "[[f3,c4,f4,a4,c5,f5]@30 [c4,g4,c5,e5]!2]/2",
C: "[[c4,g4,c5,e5]@30 [bb3,f4,bb4,d5]!2]/2", D: "[[bb3,f4,bb4,d5]@15 [bb3,f4,bb4,d5]]/2", E: "[bb3,f4,bb4,d5]/2",
F: "~@7 [f3,c4,f4]", // F5
})).s("gm_overdriven_guitar").gain(0.2).pan(1)
// chords · overdriven guitar · "Electric Guitar"
const overdriven_guitar_2 = note(`<
~@53 A B@2 C@2 D@2 E@2 F ~@11 G@3 H I J K L M N O P@2 ~@25 Q B@2 C@2 R@2 S T U@2 V@2 W@4 X ~@21 Y Z AA AB AC@2 AD@2
AE@2 AF@3 AG AH@2 AE@2 AI@2 AJ@2 ~@12
>`.pickRestart({
A: "~@14 [f2,c3,f3,a3,c4,f4]!2", B: "[[f2,c3,f3,a3,c4,f4]@30 [c3,g3,c4,e4]!2]/2",
C: "[[c3,g3,c4,e4]@30 [bb2,f3,bb3,d4]!2]/2", D: "[[bb2,f3,bb3,d4]@15 [bb2,f3,bb3,d4]]/2", E: "[bb2,f3,bb3,d4]/2",
F: "~@7 [f2,c3,f3]", G: "[~@4 d4@9 g4 f4 [g3,d4,g4,b4,d5]@9, [a3,f4,a4,d5,f5] ~@2]/3", H: "[g3,d4,g4,b4,d5]!2",
I: "[f4,a4,c5,f5]@2 [f4,a4,c5,f5]!2", J: "[f4,a4,c5,f5]@3 [f4,a4,c5,f5]@3 [f4,a4,c5,f5]@2", K: "[bb3,f4,bb4,d5,f5]",
L: "[bb3,f4,bb4,d5,f5]@3 [bb3,f4,bb4,d5,f5]", M: "[a4,d5,f5] [g4,c5,e5]",
N: "[bb3,f4,bb4,d5,f5]@2 [bb3,f4,bb4,d5,f5]!2", O: "[bb3,f4,bb4,d5,f5]@2 [bb3,f4,bb4,d5,f5]@2 [bb3,f4,bb4,d5,f5]!4",
P: "[bb3,f4,bb4,d5,f5]/2", Q: "[f2,c3,f3,a3,c4,f4]@15 [f2,c3,f3,a3,c4,f4]",
R: "[[bb2,f3,bb3,d4]@14 [bb2,f3,bb3,d4] ~]/2", S: "[bb2,f3,bb3,d4,f4]@7 [bb2,f3,bb3,d4,f4]",
T: "[bb2,f3,bb3,d4,f4]!7 [c4,f4,a4]", U: "[~ [f3,c4,f4,a4]@13 [f3,c4,f4,a4]@2]/2",
V: "[[c3,g3,c4,e4]@7 [bb2,f3,bb3,d4]]/2", W: "[[bb2,f3,bb3,d4]@15 [bb2,f3,bb3]@17]/4", X: "~@7 [f2,a2,c3,f3]",
Y: "[c3,g3]@3 [d3,g3]@4 ~", Z: "[e3,b3]@3 [f3,b3]@4 ~", AA: "ab4@3 gb4@5", AB: "db4!3 ab3@5", AC: "db5/2",
AD: "[[gb2,db3,gb3,bb3,db4,gb4]@7 [gb2,db3,gb3,bb3,db4,gb4]]/2", // Gb
AE: "[[db3,ab3,db4,f4,ab4]@15 [b2,gb3,b3,eb4,gb4]]/2", AF: "[[b2,gb3,b3,eb4,gb4]@5 [b2,gb3,b3,eb4,gb4]@3]/3",
AG: "[b2,gb3,b3,eb4,gb4]!7 [gb3,db4,gb4,bb4]", AH: "[~@2 [gb3,db4,gb4,bb4]@11 [db3,ab3,db4,f4]@3]/2",
AI: "[[b2,gb3,b3,eb4,gb4]@15 [b2,gb3,b3,db4]]/2", AJ: "[b2,gb3,b3,db4]/2",
})).s("gm_overdriven_guitar").gain(0.36).pan(0)
// other · overdriven guitar · "Electric Guitar"
const overdriven_guitar_3 = note("<~@141 A B C D E F ~@6 G H I ~@17 J ~@11>".pickRestart({
A: "d4 e4", B: "f4@4 f4@3 ~", C: "g4 a4", D: "b4@8 b4@4 ~ d4 ~ c4", E: "a3 b3 ~ c4 d4 e4 ~ f4 g4 a4 ~ b4 c5 d5 ~ e5",
F: "f5 g5 ~ a5 a4@4 a4@8", G: "f4@3 gb4@5", H: "ab4 f4 ab4 db5@5", I: "db5@15 ~", J: "~@7 [gb2,db3,gb3]",
})).s("gm_overdriven_guitar").gain(0.49).pan(0.8)
// other · overdriven guitar · "Electric Guitar" · soft notes
const overdriven_guitar_soft_2 = note("<~@155 A@2 ~@28>".pickRestart({
A: "[~@15 db5@5 db5@4 db5@2 db5@2 db5@4]/2",
})).s("gm_overdriven_guitar").gain(0.27).pan(0.8)
// bass · synth bass 2 · "Panned Synth Bass"
const bass = note(`<
~@26 A@3 B A@3 B A@11 C D@2 E@2 D F G H I A J K F@3 L A@3 B A@7 M N O@2 ~@12 A@3 B A@11 C P D E@2 D F G H I A J K F@3
Q R A J K D@3 L A@3 B S@8 ~@16 T U V W X@4 T U V W X@3 Y T@3 Z T@3 Z ~@4
>`.pickRestart({
A: "~ f1 a1 f1 bb1 f1 a1 f1", B: "bb1 f1 a1 f1 bb1 f1 a1 f1", C: "~ f1 a1 f1 bb1 f1 a1 bb1",
D: "~ bb1 d2 bb1 eb2 bb1 d2 bb1", E: "~ bb1 e2 bb1 f2 bb1 e2 bb1", F: "~ bb1 d2 bb1 eb2 bb1 d2 c2", G: "d2!7 bb1",
H: "eb2!3 c2 e2!3 c2", I: "f2 f1 a1 f1 bb1 f1 a1 f1", J: "~ c1 e1 c1 bb1 c1 a1 c1", K: "~ c1 a1 c1 bb1 c1 a1 bb1",
L: "~ bb1 d2 bb1 eb2 bb1 a1 f1", M: "~ f1 a1 f1 bb1 f1 bb1 c2", N: "d2!8", O: "[d2!7 g1@2 g1!7]/2",
P: "bb1!2 d2 bb1 eb2 bb1 d2 bb1", Q: "~ bb1 d2 bb1 eb2 bb1!2 ~", R: "f1!2 a1 f1 bb1 f1 a1 f1", S: "f1!8",
T: "~ gb1 bb1 gb1 b1 gb1 bb1 gb1", U: "~ gb1 bb1 gb1 b1 gb1 bb1 db2", V: "~ db1 b0 db1 b0 db1 ~ db1",
W: "~ db1 b0 db1 b0 db1!2 b1", X: "~ b1 eb2 b1 e2 b1 eb2 b1", Y: "~ b1 eb2 b1 e2 b1 eb2 gb1",
Z: "b1 gb1 bb1 gb1 b1 gb1 bb1 gb1",
})).s("gm_synth_bass_2").gain(0.78).pan(0.7)
// bass · electric bass finger · "Bass"
const bass_2 = note(`<
~@74 A B@2 C D@2 E@2 F@3 G@2 H@3 ~@42 I J@2 K@2 L@2 M@2 N O@2 P Q@2 R@2 S@2 T U V W X Y Z AA AB AC AD@4 Z AA AB AC
AD@3 AE ~@12
>`.pickRestart({
A: "d1!8", B: "[d1!7 g0@2 g0!7]/2", C: "g0!8", D: "[a0!6 c1 f1@2 a0 c1 f1@2 a0 c1 f1]/2",
E: "[bb0!5 db1 f1 bb1@2 d1 f1 bb1@2 d1 f1 bb1]/2", F: "[d1!4 c1!3 bb0@3 bb0@2 bb0@2 bb0 bb0@2 bb0!3 bb1!3 c1]/3",
G: "[c1!7 c1@2 c1!5 c1@2]/2", H: "[c2!5 bb1 g1 c2@2 bb1 g1 c2@2 bb1 g0@3 ~@7]/3", I: "~@7 f2",
J: "[~ f2!4 c2 d2 f2@2 c2 d2 f2@2 c2 d2 f2]/2", K: "[g2!7 f2@2 d2 c2 f2@2 d2 c2 d2]/2", L: "f2 d2 c2 f2@2 d2 c2 d2",
M: "[g2!7 f2@2 d2 c2 f2@2 d2 c2 a1]/2", N: "d2!8", O: "[d2!7 g1@2 g1!7]/2", P: "g1!8",
Q: "[a1!6 c2 f2@2 a1 c2 f2@2 a1 c2 f2]/2", R: "[bb1!5 d2 f2 bb2@2 d2 f2 bb2@2 d2 f2 bb2]/2",
S: "[d2!4 c2!3 bb1@2 bb1 bb1@2 bb1@2 bb1!2]/2", T: "c2@3 d2@4 d2", U: "e2@3 f2@5", V: "db2@3 eb2@4 eb2",
W: "f2@3 ab1@5", X: "a1!8", Y: "a2!8", Z: "~ gb1 bb1 gb1 b1 gb1 bb1 gb1", AA: "~ gb1 bb1 gb1 b1 gb1 bb1 db2",
AB: "~ db2 b1 db2 b1 db2 ~ db2", AC: "~ db2 b1 db2 b1 db2!2 b1", AD: "~ b1 eb2 b1 e2 b1 eb2 b1",
AE: "~ b1 eb2 b1 e2 b1 eb2 gb1",
})).s("gm_electric_bass_finger").gain(0.48)
// other · electric guitar muted · "Muted Guitar"
const electric_guitar_muted = note("<~@30 A ~ A B ~@143 C@2 ~@6>".pickRestart({
A: "~ f2 a2 f2 bb2 f2 a2 f2", B: "bb2 f2 a2 f2 bb2 f2 a2 f2", C: "[~@7 bb0@2 ~@7]/2",
})).s("gm_electric_guitar_muted").gain(0.48).pan(0.1)
// bass · electric bass finger · "Jazz Bass"
const bass_3 = note("<~@28 A B A@3 B ~@28 A@3 B ~@25 A B ~@36 A@3 B ~@45 C@2 D ~@4>".pickRestart({
A: "~ f2 a2 f2 bb2 f2 a2 f2", B: "bb2 f2 a2 f2 bb2 f2 a2 f2", C: "~ gb1 bb1 gb1 b1 gb1 bb1 gb1",
D: "b1 gb1 bb1 gb1 b1 gb1 bb1 gb1",
})).s("gm_electric_bass_finger").gain(0.48).pan(0.3)
// drums · kick
const kick = s("bd").struct(`<
~@26 A ~@2 B C D@2 E F D F D F D F G F G@3 H G H G H G H A H G H G H G H G H G H G I G J G J G J H F K L K L M H@2 F
D@3 G@2 F A ~@2 N H O G H D F D P Q G@4 F H@2 D H@3 R S@2 T G H G H G H G S G H G H G U Q U G@2 U G I G U H F K L K L
P@3 D L V T G W X Y R S@2 T G H G H G H G S G H G H G U Q U I F Y@2 ~@4
>`.pickRestart({
A: "x", B: "~@7 x", C: "~@4 x!2 ~ x", D: "x ~@3 x!2 ~ x", E: "x!8", F: "x ~@3 x!2 ~@2", G: "x ~@3 x ~@2 x", H: "x!2",
I: "~ x ~@2 x ~@3", J: "~ x", K: "x!2 ~@2 x!2 ~ x", L: "~ x ~@2 x!2 ~@2", M: "x!2 ~@2 x ~@3", N: "~ x ~ x ~ x ~@2",
O: "~ x ~ x!2 ~@3", P: "x!2 ~@2 x!2 ~@2", Q: "x!2 ~@2 x ~@2 x", R: "x ~@2 x!2 ~@2 x", S: "x ~@2 x!2 ~@3",
T: "x ~@2 x!3 ~@2", U: "~ x ~@2 x ~@2 x", V: "x ~ x!2 ~@3 x", W: "x ~@2 x ~ x ~@2", X: "x ~@2 x ~ x ~ x",
Y: "~ x ~ x ~ x ~ x",
})).gain(0.62)
// drums · snare
const snare = s("sd").struct(`<
~@30 A@3 B A@19 C A@19 D A@5 E@3 A@7 ~@3 B A@19 F A@33 E@3 A@7 B A@22 B@2 ~@4
>`.pickRestart({
A: "~ x ~ x", B: "x!4", C: "~@2 x!3 ~ x ~ x ~ x ~ x ~ x ~", D: "~@2 x ~@3 x!2", E: "~@2 x!2 ~@2 x!2",
F: "~@4 x ~@7 x!3 ~",
})).gain(0.62)
// drums · pedal hat
const pedal_hat = s("hh").struct(`<
~@26 A B C B C@3 B C@12 A C@3 A C@2 D A C A C A C@6 B C B C B C B C@2 B C@14 ~@4 C@7 B C@4 A C@6 E C@4 A C@16 B C B C
B C@2 ~@16 C@4 A C@18 B ~@4
>`.pickRestart({
A: "~ x!7", B: "x!7 ~", C: "x!8", D: "x", E: "x!6 ~ x",
})).gain(0.54)
// drums · open hat
const open_hat = s("oh").struct("<~@27 [~@7 x] ~@62 [~@7 x] ~@94>").gain(0.54)
// drums · crash
const crash = s("cr").struct(`<
~@26 A ~@2 B ~@3 B ~@12 A ~@3 A ~@3 A ~ A ~ A ~@6 B ~ B ~ B ~ B ~@2 B ~@14 A ~@2 B ~@7 B ~@4 A ~@11 A ~@16 B ~ B ~ B
~@2 A B A B ~@2 C@2 ~@12 A ~@18 B ~@4
>`.pickRestart({
A: "x", B: "~@7 x", C: "x ~@2 x ~@4",
})).gain(0.62)
// drums · ride
const ride = s("rd").struct("<~@141 [~ x!7] [x!6 ~@2] [~@2 x!6] [x!6 ~@2] [~@2 x!6] [x!8] ~@38>").gain(0.62)
stack(
piano, drawbar_organ, english_horn, overdriven_guitar, overdriven_guitar_soft, overdriven_guitar_2,
overdriven_guitar_3, overdriven_guitar_soft_2, bass, bass_2, electric_guitar_muted, bass_3, kick, snare, pedal_hat,
open_hat, crash, ride
)
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.