0:00/0:00
// Cinderella — Britney Spears
// 125 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 shamisen (copy of ch 2 pizzicato strings)
// note: Full arrangement: all 14 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.
// other · pizzicato strings
const pizzicato_strings = note("<A B ~@2 C D ~@3 E F ~@3>".pickRestart({
A: "e3@2 ~@3 c#3@2 ~@2 a2@2 ~@3 e3@2 ~@2 d#3@2 ~@3 b2@2 ~@2 f#2@2 ~@3", B: "d#3@2 ~@3 c#3@2 ~@25",
C: "~@18 e3@2 ~@3 c#3@2 ~@3 a2@2 ~@2", D: "e3@2 ~@3 d#3@2 ~@2 b2@2 ~@3 f#2@2 ~@3 d#3@2 ~@2 c#3@2 ~@7",
E: "~@5 e3@2 ~@3 c#3@2 ~@2 a2@2 ~@3 e3@2 ~@2 d#3@2 ~@3 b2@2 ~@2", F: "f#2@2 ~@3 d#3@2 ~@3 c#3@2 ~@20",
})).s("gm_pizzicato_strings").gain(0.38)
// other · orchestra hit
const orchestra_hit = note("<~@2 [~@9 c#5@4 ~@19] ~@2 [~@23 c#5@4 ~@5] ~@4 [~@5 c#5@2 ~@9] ~@3>")
.s("gm_orchestra_hit").gain(0.28)
// other · synth bass 1
const synth_bass_1 = note("<~@2 A B C D A B E F G B E H>".pickRestart({
A: "~@9 c#6@2 ~@17 c#6@2 ~@2", B: "~@7 c#6 ~@8", C: "c#6 ~@15", D: "~@23 c#6@2 ~@7", E: "c#6@2 ~@17 c#6@2 ~@11",
F: "~@5 c#6@2 ~@16 c#6@2 ~@7", G: "~@5 c#6 ~@8 c#6 ~", H: "~@5 c#6@2 ~@25",
})).s("gm_lead_8_bass_lead").gain(0.12)
// bass · piano
const bass = note("<~@2 [~@9 c#2@4 ~@19] ~@2 [~@23 c#2@4 ~@5] ~@4 [~@5 c#2@2 ~@9] ~@3>").s("gm_piano").gain(0.12)
// bass · fretless bass
const bass_2 = note("<~@5 A B C D E F G H I>".pickRestart({
A: "~@23 c#1@2 ~@3 c#1@2 ~@2", B: "~@9 c#1@2 ~@17 c#1@2 ~@2", C: "c#1 ~@6 c#1 ~@8",
D: "c#1@2 ~@3 c#1@2 ~@12 c#1@2 ~@11", E: "~@5 c#1@2 ~@3 c#1@2 ~@11 c#1@2 ~@7", F: "~@5 c#1 ~ c#1 ~@6 c#1 ~",
G: "~@14 c#1@2 ~@3 c#1@2 ~@11", H: "c#1@2 ~@17 c#1@2 ~@2 c#1@2 ~@7", I: "~@5 c#1@2 ~@25",
})).s("gm_fretless_bass").gain(0.38)
// drums · kick
const kick = s("bd").struct("<~ A B C D E B F G H I C J K>".pickRestart({
A: "~@5 x ~@17 x ~@8", B: "~@9 x ~@18 x ~@3", C: "~@7 x ~@8", D: "x ~@8 x ~@6", E: "~@17 x ~ x ~ x ~ x ~@8",
F: "~@7 x ~@6 x ~", G: "x ~@18 x ~@12", H: "~@5 x ~@17 x ~@4 x ~@3", I: "~@5 x ~@4 x ~@17 x ~@3",
J: "x ~@13 x ~@4 x ~@12", K: "~@5 x ~@26",
})).gain(0.48)
// drums · rim
const rim = s("rim").struct("<~@2 [~@5 x!5 ~@22] ~@3 [~@23 x!5 ~@4] ~@4 [~@10 x!5 ~@17] ~@2>").gain(0.32)
// drums · clap
const clap = s("cp").struct("<~ [~@7 x ~@8] [x ~@8 x ~@6] [~@5 x ~@17 x ~@8] [~@9 x ~@22] ~@9>").gain(0.48)
// drums · snare
const snare = s("sd").struct("<~@5 A B C D A B C E A>".pickRestart({
A: "~@7 x ~@8", B: "x ~@18 x ~@12", C: "~@5 x ~@17 x ~@8", D: "~@9 x ~@18 x ~@3", E: "~@5 x ~@8 x ~",
})).gain(0.48)
// drums · hihat
const hihat = s("hh").struct("<~ A B C D E F G H I J K L M>".pickRestart({
A: "~@14 x ~@16 x", B: "x ~@4 x!5 ~@8 x ~@13", C: "~@5 x ~@17 x ~@8", D: "~@8 x!2 ~@8 x ~@4 x ~@4 x ~@3",
E: "x ~@4 x ~@3 x ~@4 x ~@4 x ~@3 x ~@4 x ~@3", F: "x ~@2 x ~ x ~@3 x ~@4 x ~@4 x ~@3 x!6 ~@3",
G: "x ~@4 x ~@3 x ~@4 x ~@8 x ~@4 x ~@3", H: "x ~@4 x ~@3 x ~@2 x ~ x ~@4 x ~@3 x ~@4 x ~@3",
I: "x ~@4 x ~@4 x ~@3 x ~@4 x ~@3 x ~@8", J: "x ~@4 x ~@4 x ~@3 x ~@4 x ~ x ~ x ~@4 x ~@3",
K: "x ~@4 x ~@4 x!5 ~@4 x ~@3 x ~@4 x ~@3", L: "x ~@9 x ~@3 x ~@4 x ~@3 x ~@4 x ~ x ~",
M: "x ~@4 x ~@4 x ~@3 x ~@4 x ~@12",
})).gain(0.48)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@6 A B C D E F ~ G>".pickRestart({
A: "~@7 x ~@24", B: "~@7 x ~@4 x ~@19", C: "~ x", D: "~@16 x ~@4 x ~@10", E: "~@13 x ~@2", F: "~@13 x ~ x",
G: "~@3 x ~@28",
})).gain(0.24)
// drums · china
const china = s("cr").struct("<~ A B ~@2 C D ~@3 E F ~@2>".pickRestart({
A: "~@5 x ~@26", B: "~@9 x ~@22", C: "~@23 x ~@8", D: "~@7 x", E: "~@5 x ~@10", F: "~@7 x ~@8",
})).gain(0.48)
// drums · tambourine
const tambourine = s("tb").struct("<~ [~@31 x] ~@2 [~ x ~@2] ~@9>").gain(0.32)
// drums · bongos
const bongos = s("bongo:18").struct("<~@5 [~@7 x!4 ~ x!6 ~ x!4 ~@9] ~@8>").gain(1.05)
stack(
pizzicato_strings, orchestra_hit, synth_bass_1, bass, bass_2, kick, rim, clap, snare, hihat, hihat_soft, china,
tambourine, bongos
)
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 bpmI Love Rock 'n' RollE major · 94 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.