0:00/0:00
// I Love Rock 'n' Roll — Britney Spears
// 94 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 tenor sax (copy of ch 7 piano)
// note: Full arrangement: all 69 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(94/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 · piano
const piano = note(`<
~@6 A B@2 C@3 D E F G H I@4 J ~ K@2 L M N O P@2 Q@2 R S T U V ~@5 W X@2 Y Z AA AB AC AD AC AE AC AD AC AF S T U AG@4
AH AI AH AJ
>`.pickRestart({
A: "~@11 d6 e6@2 d6@2", B: "[b5@2 g5 a5@2 ~ a5!4 g5 ~ b5@6 ~@9 d6 e6@2 d6 ~]/2",
C: "[b5@2 g5 a5 ~ a5 a5@2 d6 a5@2 ~ b5@6 ~@9 g5 a5@2 g5 a5@2 g5 b5@4 ~@6 e6@2 d6@2]/3", D: "b5 g5 a5@6",
E: "~ g5!3 b5@2 b5@2 d6@2 b5 a5@2 ~@2 a5", F: "a5!2 g5 ~ b5@3 ~ d6@4 b5@3 ~", G: "~ g5!3 b5 ~ b5 ~ d6 ~ b5 a5@3 ~ a5",
H: "a5@2 g5@2 b5@4 d6@4 b5@3 ~",
I: "[d6 e6@3 e6@4 f#6@3 ~ e6@2 d6 e6@2 ~@3 e6!5 ~ f#6!2 g6@2 f#6 f#6@3 ~@2 e6@4 f#6@3 ~ e6@2 d6 e6@2 ~@3 e6!4 e6@2 f#6 ~ g6 ~ f#6@2]/4",
J: "e6@3 ~@13", K: "[e6@2 d6 ~ b5@2 g5 a5@2 ~@2 g5 a5 g5@2 b5@4 ~@13]/2",
L: "e6@2 d6@2 b5@2 g5@2 a5 ~ a5!2 d6@2 a5@2", M: "b5@3 ~@12 g5", N: "a5 ~ a5!2 a5@2 g5 b5@5 ~@2 b5 ~",
O: "e6@2 d6@2 b5@2 g5@2 a5@7 ~", P: "[~@7 b5 b5@2 b5@2 d6@2 b5 a5@3 ~@2 a5!2 g5@2 b5@2 ~@2 d6@4]/2",
Q: "[b5@3 ~@5 b5 ~ b5@2 d6 ~ b5 a5@4 ~ a5!2 g5@2 b5@3 ~ d6@4]/2", R: "b5@3 ~ d6 e6@2 ~ e6@4 f#6@3 ~",
S: "e6@2 d6 e6@2 ~@3 e6!5 ~ f#6!2", T: "g6@2 f#6 f#6@3 ~@2 e6@4 f#6@3 ~", U: "e6@2 d6 e6@2 ~@3 e6!4 e6@2 f#6 ~",
V: "g6 ~ f#6@2 e6@3 ~@9", W: "~@3 g5 a5 ~ a5!2 a5@2 g5 b5@5",
X: "[~@2 b5 ~ e6@2 d6@2 b5@2 g5@2 a5@7 ~@8 b5 b5@2 b5@2]/2", Y: "d6@2 b5 a5@3 ~@2 a5!2 g5@2 b5@2 ~@2",
Z: "d6@4 b5@3 ~@5 b5 ~ b5@2", AA: "d6 ~ b5 a5@4 ~ a5!2 g5@2 b5@3 ~", AB: "d6@4 b5@3 ~ d6 e6@2 ~ e6@4",
AC: "f#6@3 ~ e6@2 d6 e6@2 ~@3 e6!4", AD: "e6 ~ f#6!2 g6@2 f#6 f#6@3 ~@2 e6@4",
AE: "e6@2 f#6 ~ g6 ~ f#6@2 e6@2 ~@2 e6@4", AF: "e6@2 f#6 ~ g6 ~ f#6@2 e6@4 f#6@3 ~",
AG: "[g6 ~ f#6@2 e6@4 f#6@3 ~ e6@2 d6 e6@2 ~@3 e6!5 ~ f#6!2 g6@2 f#6 f#6@3 ~@2 e6@4 f#6@3 ~ e6@2 d6 e6@2 ~@3 e6!4 e6@2 f#6 ~ g6 ~ f#6@2]/4",
AH: "e6@4 f#6@3 ~ e6@2 d6 e6@2 ~@3", AI: "e6!5 ~ f#6!2 g6@2 f#6 f#6@3 ~@2", AJ: "e6!4 e6@2 f#6 ~ g6 ~ f#6@2 e6@2 ~@2",
})).s("gm_piano").gain(0.38)
// bass · piano
const bass = note(`<
~ A B A C D E D F G H I J@3 ~ K L M N O P Q R S T U V W@3 ~ X Y Z AA Z AB AC AD AE AF AG AH AI@4 ~@5 AJ AK AL AK AM Z
AA Z AN M N O AO V AO AP
>`.pickRestart({
A: "e2@2 e2@2 ~@4 e2@2 e2@2 ~ g2@3", B: "a1@2 a1@2 ~@4 b1@2 b1@2 ~ g2@3", C: "a1@2 a1@2 ~@4 b1@2 ~@2 e2 ~ e2@2",
D: "~@6 e2!2", E: "~@4 d2@2 b1@2 a1 g1@3 e1@2 e1@2", F: "~@4 d2@2 b1@2 a1 g1@3 e1 ~ e1@2", G: "~@6 b1!2",
H: "~@4 d2@2 b1@2 a1 g1@3 a1@2 a1@2", I: "~@2 b1!2 ~@2 e2!2", J: "[~ a1@8 ~@3]/3", K: "~@2 b1!6",
L: "b1@2 b1@2 e2 ~ e2@2 ~@4 e2@2 e2@2", M: "~ g2@3 a1@2 a1@2 ~@4 b1@2 b1@2", N: "~@4 e2 ~ e2@2 ~@4 e2@2 e2@2",
O: "~ g2@3 a1@2 a1@2 ~@4 b1@2 ~@2", P: "e2 ~ e2@2 ~@12", Q: "e2@2 e2@2 ~@4 d2@2 b1 ~ a1 g1@3", R: "e1!2 ~@6",
S: "e2@2 e2@2 ~@4 d2@2 b1@2 a1 g1@3", T: "e1 ~ e1@2 ~@12", U: "b1@2 b1@2 ~@4 d2@2 b1@2 a1 g1@3",
V: "a1!2 ~@2 b1!2 ~@2", W: "[e2!2 ~@2 a1@16 ~@4]/3", X: "~@4 b1!4", Y: "b1@2 b1@2 b1@2 b1@2 e2 ~ e2@2 ~@4",
Z: "e2@2 e2@2 ~ g2@3 a1@2 a1@2 ~@4", AA: "b1@2 b1@2 ~@4 e2 ~ e2@2 ~@4", AB: "b1@2 ~@2 e2 ~ e2@2 ~@8",
AC: "~@4 e2@2 e2@2 ~@4 d2@2 b1 ~", AD: "a1 g1@3 e1@2 e1@2 ~@8", AE: "~@2 e2!2 ~@2 d2 b1", AF: "a1 g1@3 e1 ~ e1@2 ~@8",
AG: "~@2 b1!2 ~@2 d2 b1", AH: "a1 g1@3 a1@2 a1@2 ~@4 b1@2 b1@2", AI: "[~@2 e2!2 ~@2 a1@22 ~@4]/4",
AJ: "~@12 e2 ~ e2@2", AK: "~@4 e2@2 e2@2 ~ g2@3 a1@2 a1@2", AL: "~@4 b1@2 b1@2 ~@4 e2 ~ e2@2",
AM: "~@4 b1@2 ~@2 e2 ~ e2@2 ~@4", AN: "b1@2 ~@2 e2 ~ e2@2 ~@4 e2@2 e2@2", AO: "e2 ~ e2@2 ~@4 e2@2 e2@2 ~ g2@3",
AP: "a1@2 a1@2 ~@4 b1@2 ~@2 e1@3 ~",
})).s("gm_piano").gain(0.38)
// other · piano
const piano_2 = note("<~@39 A B C D E F@3 ~@22>".pickRestart({
A: "~@4 e2@8 g2 ~ f#2@2", B: "e2@3 ~ [e3,g#3,d4]@10 c#4@2", C: "e4 ~ f#4 ~ g#4@4 e5 ~ g#4@4 b4 ~",
D: "f#4@2 [e4,b4] c#4 [f#4,b4]@6 b3!2 c#4@2 e4 ~, a#4 ~@15", E: "b4@2 e4!2 a4@2 e4@2 d#4@2 c#4!2 b3@3 ~",
F: "[a3@3 a3 g#3@4 f#3@2 e3 c#3 e3@32 ~@4]/3",
})).s("gm_piano").gain(0.5)
// other · piano
const piano_3 = note("<~@39 A B@3 C D E@2 ~@22>".pickRestart({
A: "~ e2",
B: "[g2 ~ f#2@2 e2@3 ~ [e3,g#3,d4]@10 c#4@2 e4 ~ f#4 ~ g#4@4 e5 ~ g#4@4 b4 ~ f#4@2 [e4,b4] c#4 [f#4,b4]@6 b3!2, ~@36 a#4 ~@11]/3", // E7 E5 B5
C: "c#4@2 e4 ~ b4@2 e4!2 a4@2 e4@2 d#4@2 c#4!2", D: "b3@3 ~ a3@3 a3 g#3@4 f#3@2 e3 c#3", E: "e3/2",
})).s("gm_piano").gain(0.5)
// chords · piano
const piano_4 = note(`<
~ A B A C D E F G H I J K@3 ~ L M N O P Q R S T S U B V@3 ~ W X Y Z Y AA AB AC AD AC AE AF AG@3 ~@6 F AH AI AH AJ Y Z
Y AK N O P A B A AL
>`.pickRestart({
A: "[e2,b2,e3]!2 ~@2 [e2,b2,e3]!2 ~@2", B: "[a2,e3,a3]!2 ~@2 [b2,f#3,b3]!2 ~@2",
C: "[a2,e3,a3]!2 ~@2 [f#3,b3] [e2,e3] [e3,b3,e4]!2, ~@2 b2 ~", D: "~@6 [e3,b3,e4]!2",
E: "~@4 d3@2 b2 ~ a2 g2@3 [e2,b2,e3]@2 [e2,b2,e3]@2", F: "~@6 [e2,b2,e3]!2",
G: "~@4 d3@2 b2@2 a2 g2@3 [e2,b2,e3]@2 [e2,b2,e3]@2", H: "~@6 [b2,f#3,b3] [f#3,b3], ~@14 b2 ~",
I: "~@4 d3@2 b2@2 a2 g2@3 [a2,e3,a3]@2 [a2,e3,a3]@2", J: "~@2 [b2,f#3,b3]!2 ~@2 [e3,b3,e4]!2",
K: "[~ [a2,e3]@8 ~@3, ~@2 a3@15 ~@7]/3", L: "~@2 [b2,f#3,b3]!6", M: "[b2,f#3,b3]!2 [e2,b2,e3]!2 ~@2 [e2,b2,e3]!2",
N: "~@2 [a2,e3,a3]!2 ~@2 [b2,f#3,b3]!2", O: "~@2 [e2,b2,e3]!2 ~@2 [e2,b2,e3]!2",
P: "~@2 [a2,e3,a3]!2 ~@2 [f#3,b3] [e2,e3], ~@3 b2", Q: "[e3,b3,e4]!2 ~@6",
R: "[e3,b3,e4]@2 [e3,b3,e4]@2 ~@4 d3@2 b2 ~ a2 g2@3", S: "[e2,b2,e3]!2 ~@6",
T: "[e2,b2,e3]@2 [e2,b2,e3]@2 ~@4 d3@2 b2@2 a2 g2@3", // E5
U: "[b2,f#3,b3]@2 [f#3,b3]@2 ~@4 d3@2 b2@2 a2 g2@3, ~@2 b2 ~@13", // B5
V: "[[e3,b3,e4]!2 ~@2 [a2,e3]@16 ~@4, ~@4 a3@15 ~@5]/3", W: "~@4 [b2,f#3,b3]!4", X: "[b2,f#3,b3]!4 [e2,b2,e3]!2 ~@2",
Y: "[e2,b2,e3]!2 ~@2 [a2,e3,a3]!2 ~@2", Z: "[b2,f#3,b3]!2 ~@2 [e2,b2,e3]!2 ~@2",
AA: "[f#3,b3] [e2,e3] [e3,b3,e4]!2 ~@4, b2 ~@3", AB: "~@4 [e3,b3,e4]@2 [e3,b3,e4]@2 ~@4 d3@2 b2 ~",
AC: "a2 g2@3 [e2,b2,e3]@2 [e2,b2,e3]@2 ~@8", AD: "~@2 [e2,b2,e3]!2 ~@2 d3 b2",
AE: "~@2 [b2,f#3,b3] [f#3,b3] ~@2 d3 b2, ~@6 b2 ~@9", // B5
AF: "a2 g2@3 [a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [b2,f#3,b3]@2 [b2,f#3,b3]@2", // A5 B5
AG: "[~@2 [e3,b3,e4]!2 ~@2 [a2,e3]@16 ~@2, ~@2 a3@5 ~]/3", AH: "~@2 [e2,b2,e3]!2 ~@2 [a2,e3,a3]!2",
AI: "~@2 [b2,f#3,b3]!2 ~@2 [e2,b2,e3]!2", AJ: "~@2 [f#3,b3] [e2,e3] [e2,b2,e3]!2 ~@2, ~ b2 ~@2",
AK: "[f#3,b3] [e2,e3] [e2,b2,e3]!2 ~@2 [e2,b2,e3]!2, b2 ~@3", // B5 E E5
AL: "[a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [f#3,b3]@2 [e2,e3]@2 [e2,b2,e3]@3 ~, ~@2 b2 ~", // A5 B5 E E5
})).s("gm_piano").gain(0.5)
// chords · piano
const piano_5 = note(`<
~ A B C D E F G H I J K L@3 ~ M@2 N O P Q R Q S Q T U V@3 ~ W X Y Z AA AB AC AD AE AD AF AG AH@3 ~@6 AI AJ AK AL AM Y
Z AA AN N O P A AO C AP
>`.pickRestart({
A: "[e2,b2,e3]@2 [e2,b2,e3]@2 ~@4 [e2,b2,e3]@2 [e2,e3] ~@2 g2@3, ~@5 b2 ~@2", // E5 E
B: "[a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [b2,f#3,b3]@2 [b2,b3]@2 ~ g2@3, ~@10 f#3 ~@5", // A5 B5 B
C: "[e2,b2,e3]@2 [e2,b2,e3]@2 ~@4 [e2,b2,e3]@2 [e2,b2,e3]@2 ~ g2@3", // E5
D: "[a2,e3,a3]!2 ~@2 [b2,f#3] e2 [e3,b3,e4]!2, ~@10 b2 ~@5", E: "~@6 [e3,b3,e4] [b3,e4], ~@14 e3 ~",
F: "~@4 d5@2 b4@2 a4 g4@3 [e3,b3,e4]@2 [e3,b3,e4]@2", G: "~@6 [e3,b3,e4]!2",
H: "~@4 d5@2 b4 ~ a4 g4@3 [e3,b3,e4]@2 [e3,b3,e4]@2", I: "~@6 [b2,f#3,b3]!2",
J: "~@4 d5@2 b4 ~ a4 g4@3 [a2,e3,a3]@2 [a2,e3,a3]@2", // A5
K: "~@4 [b2,f#3,b3]@2 [b2,f#3,b3]@3 ~@3 [e3,b3,e4]@2 [e3,b3,e4]@2", L: "[~ [a2,e3]@8 ~@3, ~@4 a3@29 ~@15]/3",
M: "[~@4 [f#3,b3]@2 [f#3,b3]@2 [f#3,b3]@2 [f#3,b3]@2 [b2,f#3,b3]@2 [f#3,b3]@2 [f#3,b3]@2 [b2,f#3]@2 [e2,b2,e3]@2 [e2,b2,e3]@2 ~@4 [e2,b2,e3]@2 [e2,e3] ~, ~@4 b2@8 ~@2 b2@4 b3 ~@11 b2@2]/2", // B5 E5 E
N: "~ g2@3 [a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [b2,f#3,b3]@2 [b2,b3]@2, ~@14 f#3 ~", O: "~@2 [e2,b2,e3]!2 ~@2 [e2,b2,e3]!2",
P: "~ g2@3 [a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [b2,f#3]@2 e2@2, ~@14 b2 ~", Q: "[e3,b3,e4]!2 ~@6",
R: "[e3,b3,e4]@2 [b3,e4]@2 ~@4 d5@2 b4@2 a4 g4@3, ~@2 e3 ~@13", S: "[e3,b3,e4]@2 [e3,b3,e4]@2 ~@4 d5@2 b4 ~ a4 g4@3",
T: "[b2,f#3,b3]@2 [b2,f#3,b3]@2 ~@4 d5@2 b4 ~ a4 g4@3", // B5
U: "[a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [b2,f#3,b3]@2 [b2,f#3,b3]@3 ~@3", // A5 B5
V: "[[e3,b3,e4]!2 ~@2 [a2,e3]@16 ~@4, ~@8 a3@29 ~@11]/3", W: "~@4 [f#3,b3]!4, ~ b2",
X: "[b2,f#3,b3] [f#3,b3]!2 [b2,f#3] [e2,b2,e3]!2 ~@2, ~@2 b2@4 b3 ~@9", // B5 E5
Y: "[e2,b2,e3]@2 [e2,e3] ~@2 g2@3 [a2,e3,a3]@2 [a2,e3,a3]@2 ~@4, ~ b2 ~@6", // E5 E A5
Z: "[b2,f#3,b3] [b2,b3] ~@2 [e2,b2,e3]!2 ~@2, ~@2 f#3 ~@13", // B5 B E5
AA: "[e2,b2,e3]@2 [e2,b2,e3]@2 ~ g2@3 [a2,e3,a3]@2 [a2,e3,a3]@2 ~@4", AB: "[b2,f#3] e2 [e3,b3,e4]!2 ~@4, ~@2 b2 ~@13",
AC: "~@2 [e3,b3,e4] [b3,e4] ~@2 d5 b4, ~@6 e3 ~@9", AD: "a4 g4@3 [e3,b3,e4]@2 [e3,b3,e4]@2 ~@8",
AE: "~@4 [e3,b3,e4]@2 [e3,b3,e4]@2 ~@4 d5@2 b4 ~", AF: "~@4 [b2,f#3,b3]@2 [b2,f#3,b3]@2 ~@4 d5@2 b4 ~",
AG: "a4 g4@3 [a2,e3,a3]@2 [a2,e3,a3]@2 ~@4 [b2,f#3,b3]@2 [b2,f#3,b3]@2", // A5 B5
AH: "[~@2 [e3,b3,e4]!2 ~@2 [a2,e3]@16 ~@2, ~@12 a3@29 ~@7]/3", AI: "~@6 [e2,b2,e3]!2",
AJ: "~@4 [e2,b2,e3]@2 [e2,e3] ~@2 g2@3 [a2,e3,a3]@2 [a2,e3,a3]@2, ~@3 b2 ~@4", // E5 E A5
AK: "~@2 [b2,f#3,b3] [b2,b3] ~@2 [e2,b2,e3]!2, ~@6 f#3 ~@9", // B5 B E5
AL: "~@4 [e2,b2,e3]@2 [e2,b2,e3]@2 ~ g2@3 [a2,e3,a3]@2 [a2,e3,a3]@2", // E5 A5
AM: "~@2 [b2,f#3] e2 [e2,b2,e3]!2 ~@2, ~@6 b2 ~@9", // B5 E5
AN: "[b2,f#3]@2 e2@2 [e2,b2,e3]@2 [e2,b2,e3]@2 ~@4 [e2,b2,e3]@2 [e2,e3] ~, ~@2 b2 ~@11 b2@2", // B5 E5 E
AO: "[a2,e3,a3]!2 ~@2 [b2,f#3,b3] [b2,b3] ~@2, ~@10 f#3 ~@5", // A5 B5 B
AP: "[a2,e3,a3]!2 ~@2 [b2,f#3] e2 [e3,b3,e4] ~, ~@10 b2 ~@5", // A5 B5 E5
})).s("gm_piano").gain(0.5)
// drums · kick
const kick = s("bd").struct("<~ A@3 B C@11 D E C@3 A@11 F G A@3 H C@19 I A@3 H C@3 A@3 J>".pickRestart({
A: "x!2 ~@2 x!2 ~@2", B: "x!2 ~@2 x!4", C: "~@2 x!2 ~@2 x!2", D: "~ x!3", E: "x ~ x!2 ~@2 x!2", F: "x!2 ~@2 x ~ x ~",
G: "x ~ x ~ x!2 ~@2", H: "x!4 ~@2 x!2", I: "~@2 x!4 ~@2", J: "x!2 ~@2 x!3 ~",
})).gain(0.6)
// drums · snare
const snare = s("sd").struct("<A B@3 C D@11 E F D@3 B@11 G H B@3 I D@15 J D@3 K B@3 I D@3 B@3 C>".pickRestart({
A: "~@8 x!8", B: "~ x ~ x", C: "~ x ~@2", D: "x!2", E: "x ~ x ~ x ~ x!2", F: "x!3 ~@5 x ~@7", G: "~ x!3",
H: "x ~ x ~ x!3 ~@5 x ~@3", I: "~ x", J: "x ~@7 x!3 ~@5", K: "x ~@2 x",
})).gain(0.6)
// drums · clap
const clap = s("cp").struct("<~ A@3 B C@16 A@16 D C@19 E A@3 D C@3 A@4>".pickRestart({
A: "~ x ~ x", B: "~ x ~@2", C: "x!2", D: "~ x", E: "x ~@2 x",
})).gain(0.6)
// drums · hihat
const hihat = s("hh").struct(`<
~ A@3 B C D C D C@4 D C@2 B E C@2 D A@2 F A@6 F G@2 H A@3 C@2 B C@6 B D@2 C@4 I C@3 F A@3 C@3 D A@3 J
>`.pickRestart({
A: "x!3 ~ x!3 ~", B: "x ~ x ~ x ~ x!2", C: "x ~ x!3 ~ x!2", D: "x ~ x!3 ~ x ~", E: "x!2 ~ x!2 ~ x!2",
F: "x ~ x ~ x!3 ~", G: "x!3 ~ x ~ x ~", H: "x!4 ~ x!2 ~", I: "x ~ x!2 ~@2 x!2", J: "x!3 ~ x ~@3",
})).gain(0.6)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
~@4 A ~ B ~ B ~@4 B ~@2 C ~@3 B ~@2 D ~@6 D E F ~@4 D ~ G ~@6 G B@2 ~@8 G ~@3 D ~@2 B ~@3 E
>`.pickRestart({
A: "~ x ~@3 x ~@2", B: "~@7 x", C: "~@3 x ~ x ~@2", D: "~ x ~@6", E: "~@5 x ~@2", F: "~@5 x ~ x", G: "~@3 x ~@4",
})).gain(0.36)
// drums · crash
const crash = s("cr").struct("<~@17 [~ x ~@2] ~@15 [~ x] ~@35>").gain(0.36)
stack(piano, bass, piano_2, piano_3, piano_4, piano_5, kick, snare, clap, hihat, hihat_soft, crash)
More by Britney Spears
... Baby One More TimeC minor · 93 bpm(You Drive Me) CrazyE♭ major · 100 bpmLuckyA minor · 100 bpmSometimesG major · 98 bpmDon't Go Knockin' on My DoorB♭ minor · 112 bpmDon't Let Me Be The Last To KnowE major · 120 bpmFrom the Bottom of My Broken HeartG major · 76 bpmOops!... I Did It AgainC♯ minor · 95 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.