0:00/0:00
// Lucky — Britney Spears
// 100 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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.
// bass · electric bass finger · "Bass"
const bass = note(`<
A B A B C D E F E D E D E D G H E D G I E D G J E D E D K L M N E D G O E D G P Q R G J ~@3 S ~@4 T U V W X Y I Z X Y
I AA X Y I Z X Y I AB@4 AC@2 AD AE ~
>`.pickRestart({
A: "c2@5 ~ c2@5 ~ c2@2 b1@2", B: "a1@5 ~ a1@5 ~ a1@2 g1@2", C: "c2@3 ~@9 c2@2 b1@2", D: "a1@5 ~ a1@4 ~@2 a1@2 g1@2",
E: "c2@5 ~ c2@4 ~@2 c2@2 b1@2", F: "a1@3 ~@9 a1@2 g1@2", G: "f1@5 ~ f1@4 ~@2 f1@2 a1@2", H: "g1@3 ~@9 g1@2 b1@2",
I: "g1@5 ~ g1@4 ~@2 g1@2 b1@2", J: "g1@3 ~@13", K: "c2@5 ~ c2@4 ~@2 c2@2 a1@2", L: "g1@5 ~ g1@4 ~@2 g1@3 ~",
M: "a1@5 ~ a1@4 ~@6", N: "~@6 g1 b1", O: "g1@3 ~ g1@3 ~ g1@3 ~@5", P: "g1@5 ~ g1@4 ~@2 g#1@3 ~",
Q: "a1@5 ~ a1@4 ~@2 a1@2 e1@2", R: "g1@5 ~ g1@4 ~@2 g1@2 a1@2", S: "~@2 g1 ~ g1 ~@3", T: "f1", U: "g1@3 a1@5",
V: "d2", W: "~ g1!2 ~@2 a1!2 ~", X: "d2@5 ~ d2@4 ~@2 d2@2 c#2@2", Y: "b1@5 ~ b1@4 ~@2 b1@2 a1@2",
Z: "a1@5 ~ a1@4 ~@2 a1@2 c#2@2", AA: "a1@3 ~ a1@3 ~ a1@3 ~@5",
AB: "[a1@5 ~ a1@6 ~@2 c#2@2 d2@5 ~ d2@4 ~@2 d2@2 c#2@2 b1@5 ~ b1@4 ~@2 b1@2 ~@2 g1@5 ~ g1@4 ~@2 g1@2 b1@2, ~@6 a1@17 a1@9]/4",
AC: "[a1@6 ~@6 a#1@3 ~ b1@5 ~ b1@4 ~@2 b1@2 f#1@2, ~@3 a1@13]/2", AD: "a1@3 a1@4 b1", AE: "g1",
})).s("gm_electric_bass_finger").gain(0.45)
// bass · slap bass 1 · "Bass"
const bass_2 = note("<~@71 [~@10 a1!2 ~@4] ~@8>").s("gm_slap_bass_1").gain(0.35)
// bass · lead 8 bass lead · "Synth Bass"
const bass_3 = note("<~@31 A ~@3 B ~@8 C ~ D E F ~ G ~@12 H ~@16>".pickRestart({
A: "g1@5 ~@11", B: "~@5 g1@2 ~", C: "c2 ~ c2 c3 c2 ~@3", D: "a1 ~ a1 ~ a1 ~ a1 ~", E: "g1 ~@7", F: "c2 ~ c2 ~ c2 ~@3",
G: "a1 ~ a1 ~ a1 ~@3", H: "~@5 a1@3",
})).s("gm_lead_8_bass_lead").gain(0.4)
// other · pizzicato strings
const pizzicato_strings = note(`<
A B A B C D E F E D E D E D G H E D G I E D G J E D E D K L M N E D G O E D G P Q R G J ~@12 S T I U S T I V S T I U S
T I M S T I W X Y J ~
>`.pickRestart({
A: "c3@5 ~ c3@5 ~ c3@2 b2@2", B: "a2@5 ~ a2@5 ~ a2@2 g2@2", C: "c3@3 ~@9 c3@2 b2@2", D: "a2@5 ~ a2@4 ~@2 a2@2 g2@2",
E: "c3@5 ~ c3@4 ~@2 c3@2 b2@2", F: "a2@3 ~@9 a2@2 g2@2", G: "f2@5 ~ f2@4 ~@2 f2@2 a2@2", H: "g2@3 ~@9 g2@2 b2@2",
I: "g2@5 ~ g2@4 ~@2 g2@2 b2@2", J: "g2@3 ~@13", K: "c3@5 ~ c3@4 ~@2 c3@2 a2@2", L: "g2@5 ~ g2@4 ~@2 g2@3 ~",
M: "a2@5 ~ a2@4 ~@6", N: "~@6 g2 b2", O: "g2@3 ~ g2@3 ~ g2@3 ~@5", P: "g2@5 ~ g2@4 ~@2 g#2@3 ~",
Q: "a2@5 ~ a2@4 ~@2 a2@2 e2@2", R: "g2@5 ~ g2@4 ~@2 g2@2 a2@2", S: "d3@5 ~ d3@4 ~@2 d3@2 c#3@2",
T: "b2@5 ~ b2@4 ~@2 b2@2 a2@2", U: "a2@5 ~ a2@4 ~@2 a2@2 c#3@2", V: "a2@3 ~ a2@3 ~ a2@3 ~@5",
W: "a2@5 ~ a2@4 ~@2 a#2@3 ~", X: "b2@5 ~ b2@4 ~@2 b2@2 f#2@2", Y: "a2@5 ~ a2@4 ~@2 a2@2 b2@2",
})).s("gm_pizzicato_strings").gain(0.64).pan(0.8)
// chords · piano
const piano = note(`<
~@12 A B C D A B E F A B G H A B A B A F B ~ A B C F A B E I B A G H ~@7 J@2 K L M N O P Q N O R Q N O P Q N O R Q N O
P S O N T ~
>`.pickRestart({
A: "[g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
B: "[a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~", // Am
C: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
D: "[g3,b3,d4] ~@15", // G
E: "[a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~", // Dm7
F: "[c4,d4,g4] ~ [c4,d4,g4] ~ [c4,d4,g4] ~ [c4,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~", // Csus2 G
G: "[a3,c4,f4,b4] ~ [a3,c4,f4,b4] ~ [a3,c4,f4,b4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
H: "[g3,b3,d4,e4] ~@15", // Em7
I: "[c4,d4,g4] ~ [c4,d4,g4] ~ [c4,d4,g4] ~ [c4,d4,g4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~", // Csus2 E
J: "[~@11 c5@5, ~@5 c4@3 f3@8, ~@6 d4@2 ~ c4@7, ~@7 e4@2 ~ f4@6]/2",
K: "~@2 d4 ~@2 c4@3, g3@3 [a3,e4]@5, d4 ~@3, ~ b3@2 ~@5", L: "~@3 f4@5, d3, ~ a3@7, ~ d4@3",
M: "~@2 [b3,d4,g4] ~ [b3,d4,g4] ~@5 [c#4,e4,a4] ~ [c#4,e4,a4] ~@3", // G A
N: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // D
O: "[b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~", // Bm
P: "[b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~ [b3,d4,e4,g4] ~", // Em7
Q: "[d4,e4,a4] ~ [d4,e4,a4] ~ [d4,e4,a4] ~ [d4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~", // Dsus2 A
R: "[b3,d4,g4,c#5] ~ [b3,d4,g4,c#5] ~ [b3,d4,g4,c#5] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~", // G
S: "[d4,e4,a4] ~ [d4,e4,a4] ~ [d4,e4,a4] ~ [d4,e4,a4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~", // Dsus2 F#
T: "[b3,d4,g4,c#5]", // G
})).s("gm_piano").gain(0.22)
// chords · string ensemble 2 · "Pads"
const string_ensemble_2 = note(`<
~@12 A@3 B A@3 C A@3 D ~@3 E@2 F ~@2 A@3 C A@3 G H@2 I J ~@8 K L M ~ N@3 O N@3 O N@3 O N@3 O N@3 P Q@2 R ~
>`.pickRestart({
A: "[g3 a3@2, c4, e4@2 ~]/3", B: "[g3,d4] ~@7", C: "c4 b3, [g3,d4]", D: "[g3,d4,e4] ~@7", E: "[~ c4@3]/2",
F: "[g3,d4], c4 ~", G: "[g3,c4,d4] [g#3,b3,e4]", H: "[a3 g3, [c4,e4]]/2", I: "[a3,c4]", J: "[g3,b3,e4] ~@7",
K: "[c4,f4]", L: "[d4,g4]@3 [e4,a4]@5", M: "[d4,a4]", N: "[a3 b3@2, d4, f#4@2 ~]/3", O: "d4 c#4, [a3,e4]",
P: "[a3,d4,e4] [a#3,c#4,f#4]", Q: "[b3@4 a3 ~@3, [d4,f#4]]/2", R: "[b3,d4]@3 ~",
})).s("gm_string_ensemble_2").gain(0.14)
// other · orchestra hit
const orchestra_hit = note("<~@4 A ~@7 A ~@3 A ~@3 A ~@11 A ~@3 A ~@7 B ~@3 B ~@6 C D ~@7 D ~@7 D ~@7>".pickRestart({
A: "c3 ~@3", B: "[c3,c4]", C: "~@2 g4 ~ g4 ~@5 a4 ~ a4 ~@3", D: "d3 ~@3",
})).s("gm_orchestra_hit").gain(0.32)
// other · electric guitar muted · "Muted Guitar"
const electric_guitar_muted = note("<~@2 A@2 ~ B A C A ~ A ~@13 A ~ A ~@53>".pickRestart({
A: "c4 ~ c4!2 ~@12", B: "~@14 c4 ~", C: "c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4 ~",
})).s("gm_electric_guitar_muted").gain(0.29)
// other · taiko drum · "Taiko Drums"
const taiko_drum = note("<~@7 [g1 ~@3 g1 ~@3 g1 ~@7] ~@71 [g1 ~@15]>").s("gm_taiko_drum").gain(0.8)
// chords · overdriven guitar · "OverDrive"
const overdriven_guitar = note("<~@44 A ~ B ~ A ~ C ~@29>".pickRestart({
A: "[c2,g3] ~ [c2,g3] ~ [c2,g3] ~@3", B: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~",
C: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~@3", // A5
})).s("gm_overdriven_guitar").gain(0.22).pan(0.6)
// other · string ensemble 1 · "High Strings"
const string_ensemble_1 = note("<~ A@3 ~@46 B@2 ~@4 C@4 D@3 E C@12 F@2 ~@2>".pickRestart({
A: "[~@5 c5@19]/3", B: "[~@5 c5@11]/2", C: "[d6@7 c#6]/4", D: "d6/3", E: "d6 e6", F: "d6/2",
})).s("gm_string_ensemble_1").gain(0.18).pan(0.2)
// other · cello · "Slides"
const cello = note("<~@44 A@2 ~@2 B ~@3 C D ~@26>".pickRestart({
A: "[~@6 e5@3 ~@7]/2", B: "~@4 d5@6 a5 g5 f#5 ~@3", C: "a4", D: "g4",
})).s("gm_cello").gain(0.11).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~@2 A B C D@2 E F@3 G F@3 C F@7 C F@7 H F@3 I F@7 C F@8 J ~@2 K F@7 L F@14 J@2
>`.pickRestart({
A: "~@3 x ~@4", B: "~@3 x ~ x ~@2", C: "x ~@6 x", D: "x ~@2 x ~@4", E: "x ~ x ~ x!2 ~@2", F: "x ~@2 x ~@3 x",
G: "x ~@5 x ~@2 x!2 ~@5", H: "x ~@4 x ~ x", I: "x ~@2 x!2 ~@2 x!4 ~@3 x ~", J: "x", K: "~ x!2 ~@2 x!2 ~",
L: "x ~@2 x!2 ~@2 x!2 ~ x ~@3 x!2",
})).gain(0.72)
// drums · snare
const snare = s("sd").struct(`<
~@3 A@2 B@2 A B@3 C B@3 A B@7 A B@7 A B@3 A B@7 D B@8 ~@3 E B@7 A B@7 F B@6 ~@2
>`.pickRestart({
A: "~@3 x", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@5 x!2 ~", E: "~ x!2 ~@2 x!2 ~", F: "~@4 x ~@5 x!3 ~@3",
})).gain(0.8)
// drums · low tom
const low_tom = s("lt").struct("<~@3 [~@11 x ~@2 x ~] ~@76>").gain(0.64)
// drums · hihat
const hihat = s("hh").struct(`<
~@5 A B C B A B D E A B ~ E A B A E A B ~ E A B A B A B ~ E A B F E A B A E A B G E A B A E A B A ~@4 E A B A E A B H
E A B A E A B C E A B A E A ~@2
>`.pickRestart({
A: "x!5 ~ x ~", B: "x!8", C: "x!5 ~ x!2", D: "x!5 ~@3", E: "~ x!7", F: "x!6 ~@2", G: "x", H: "~ x!4 ~ x!2",
})).gain(0.48)
// drums · open hat
const open_hat = s("oh").struct(`<
~@5 A ~ B ~ A ~ B ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~ A ~@5 A ~ A ~ A ~ B ~ A ~ A ~ A
~ B ~ A ~ A ~ A ~@2
>`.pickRestart({
A: "~@5 x ~ x", B: "~@5 x ~@2",
})).gain(0.48)
// drums · crash
const crash = s("cr").struct(`<
~@4 A ~@7 A ~@2 A@2 ~@3 A ~@2 A@2 ~@7 A ~@3 A ~@3 A ~@2 A@2 ~@3 A ~@3 A ~@2 B A ~@3 A ~@2 A@2 ~@3 A ~@3 A ~@3 A ~ A ~
>`.pickRestart({
A: "x", B: "~ x!2 ~@2 x!2 ~",
})).gain(0.64)
// drums · bongos
const bongos = s("bongo:18").struct("<~@2 [~ x ~@6]!2 ~@76>").gain(1.26)
// drums · congas
const congas = s("conga:13").struct("<~@2 x!2 ~@76>").gain(1.54)
// drums · congas
const congas_2 = s("conga:18").struct("<~@2 [~ x ~@14]!2 ~@76>").gain(1.54)
stack(
bass, bass_2, bass_3, pizzicato_strings, piano, string_ensemble_2, orchestra_hit, electric_guitar_muted, taiko_drum,
overdriven_guitar, string_ensemble_1, cello, kick, snare, low_tom, hihat, open_hat, crash, bongos, congas, congas_2
)
More by Britney Spears
... Baby One More TimeC minor · 93 bpm(You Drive Me) CrazyE♭ major · 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 bpmI Love Rock 'n' RollE major · 94 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.