0:00/0:00
// What U See (Is What U Get) — Britney Spears
// 102 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 76 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(102/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 · fretless bass · "Bass"
const bass = note(`<
~ A B A B C D C E C D C F G H I J K L M N O P Q R S T D U V C D C W G H I X K L M N O P Q R Y A B A B ~@4 K L M N O P
Q R K L M N O P Q R O P Q Z S
>`.pickRestart({
A: "c2 ~ c2 ~@13", B: "ab1 ~ ab1 ~@13", C: "c2 ~ c2 ~@9 g1@2 ~@2", D: "ab1 ~@5 g1 ~",
E: "ab1@2 ~@6 ab1 ab2 a1 ~ g1 ~ g1 ~", F: "ab1@2 ~@6 g1 ~ g1 ~ g1 ~ g1 ~", G: "c2@5 ~ c2 ~ d2@4 ~@4",
H: "ab2@4 ~@2 ab2!2 ab2@2 ~@2 eb2@2 ~@2", I: "f2@5 ~ c2 ~ f1@4 ~@4", J: "g1@3 ~ g1@3 ~ g1@3 ~@5",
K: "c2 ~ c2 ~@3 d2 ~ eb2@2 ~@2 g2@2 ~@2", L: "ab2 ~ ab2 ~@3 eb2 ~ ab2@2 ~@6", M: "bb1 ~ bb1 ~@3 bb1 c2 d2@6 ~@2",
N: "eb2@3 ~ eb2@3 ~ g2@3 ~ g1@3 ~", O: "c2 ~ c2 ~@3 d2 ~ eb2@2 ~@2 c2@2 ~@2",
P: "ab2 ~ ab2 ~@3 eb2 ~ ab2@2 ~@2 g2@3 ~", Q: "f2 ~ f2 ~@3 f2 ~ f2 ~ f2 ~@3 d2 ~", R: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~",
S: "c2@3 ~@13", T: "c2 ~@5 g1 ~", U: "c2 ~ c2 ~@12 c2", V: "~@2 ab2 ~ ab2 ~@5 g2 ~ g2 ~ g2 ~",
W: "ab1@5 ~ ab1@2 g1@2 f1@2 eb2@2 d2@2", X: "~@3 g2", Y: "c2 ~ c2 ~ c2 ~ c2 ~", Z: "g1@3 ~@13",
})).s("gm_fretless_bass").gain(0.45).pan(0.4)
// bass · slap bass 1 · "Bass"
const bass_2 = note("<~@48 [~@8 ab1!3 ~@5] ~@27>").s("gm_slap_bass_1").gain(0.4).pan(0.4)
// other · orchestra hit
const orchestra_hit = note(`<
~ A B A B C ~@3 C ~@3 C ~@3 C ~@3 C ~@3 C@2 ~ D E C ~@3 C ~@3 C ~@3 C ~@3 F G H G H ~@4 C ~@3 C ~@3 C ~@3 C ~@3 C ~@3
C
>`.pickRestart({
A: "c4!2 ~@6", B: "ab4!2 ~@6", C: "c4 ~@7", D: "~@15 c5", E: "~@2 c5 ~ g5 ~@5 g5 ~ g5 ~ g5 ~",
F: "c5 ~ c5 ~ c5 ~ c5 ~", G: "c4 ~ c4 ~@13", H: "ab4 ~ ab4 ~@13",
})).s("gm_orchestra_hit").gain(0.29)
// chords · epiano2 · "Electric Piano"
const epiano2 = note(`<
~@9 A B A B C D E F A G H I A J K L A ~ B A ~ A B A B C D E ~ A G H I A J K L ~@5 M N G ~ A G H I A J K L A G H I A J
K L A J K ~ O
>`.pickRestart({
A: "[c4,eb4,g4]", B: "[c4,eb4,ab4] [b3,d4,f4,g4]", C: "[c4,eb4,g4] [bb3,d4,f4]", D: "[c4,eb4,ab4]@3 [bb3,eb4,g4]",
E: "[c4,eb4,f4,ab4]", F: "[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~@3", G: "[c4,eb4,ab4]", H: "[eb4,f4,bb4] [d4,f4,bb4]",
I: "[bb3,eb4,g4] [b3,d4,g4]", J: "[c4,eb4,ab4]@3 [eb4,g4]", K: "[ab3,c4,f4]",
L: "[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~", M: "[c4,eb4,g4] [b3,eb4,g4]", N: "[bb3,eb4,g4] [a3,eb4,g4]",
O: "[c4,eb4,g4] ~@7", // Cm
})).s("gm_epiano2").gain(0.11)
// chords · string ensemble 2 · "Slow Strings"
const string_ensemble_2 = note(`<
~@13 A B C D E@3 F G@2 C H ~@9 A B C ~ E@3 F G@2 C H ~@5 I@2 J K E@3 F G@2 C H E@3 F G@2 C H G@2 C ~ L
>`.pickRestart({
A: "[g3,c4] [bb3,d4]", B: "[ab3,eb4]@3 [g3,eb4]", C: "[ab3,c4]", D: "[b3,d4] ~ [b3,d4] ~ [b3,d4] ~@3",
E: "[g3@2 ab3@2 ~ d4, eb4@5 ~, c4@2 [bb3,f4]]/3", F: "[bb3,eb4] [b3,d4], g4", G: "[g3@4 ab3@3 g3, eb4, c4@7 ~]/2",
H: "[b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~", I: "[c4 b3 bb3 a3, [eb4,g4]]/2", J: "[ab3,c4,eb4]",
K: "[c2,c3]", L: "[g3,c4,eb4] ~@7",
})).s("gm_string_ensemble_2").gain(0.09).pan(0.2)
// chords · brass section · "Brasses" · Cm Em Cm
const brass_section = note(`<
~@29
[~@2 [c4,eb5] ~ [c4,eb5,g5] ~@5 [b4,g5] ~ [b4,g5] ~ [b4,g5] ~]
[[eb4,c5,c6] ~@15]
~@15
[[eb4,c5] ~ [eb4,c5] ~ [eb4,c5] ~ [eb4,c5] ~]
~@29
>`).s("gm_brass_section").gain(0.4).pan(0.6)
// other · timpani
const timpani = note("<[~@12 g2!4] [c2 ~@15] ~@23 [~@12 g2!4] [c2 ~@15] ~@47 [~@12 g2!4] [c2 ~@15]>")
.s("gm_timpani").gain(0.06)
// other · electric guitar muted · "Muted Guitar"
const electric_guitar_muted = note("<~@2 A ~ A ~@43 A ~ A ~@25>".pickRestart({
A: "~@8 c3!3 ~@5",
})).s("gm_electric_guitar_muted").gain(0.12).pan(1)
// other · pad poly · "Lead Synth"
const pad_poly = note(`<
~@13 A B C ~ D ~ E ~ D ~@12 A B C ~ D ~ E ~ D ~@12 D ~ E ~ D ~@3 D ~ E ~ D ~@3 D ~@4
>`.pickRestart({
A: "c5 d5", B: "eb5@8 eb5@2 f5 eb5@3 d5@2", C: "c5 ~", D: "~@6 c5 d5 eb5 ~@7", E: "~@6 bb4 c5 d5 ~@7",
})).s("gm_pad_poly").gain(0.32).pan(0.4)
// bass · piano · "Acoustic Piano"
const bass_3 = note("<~ A B A B C D C E C D C E ~@34 A B A B ~@25>".pickRestart({
A: "c1!2 ~@6", B: "ab1!2 ~@6", C: "c1!2 ~@4 g1 ~", D: "ab1 ~@5 g1 ~", E: "ab1 ~@7",
})).s("gm_piano").gain(0.29).pan(0.6)
// chords · harpsichord · "Harpshichord"
const harpsichord = note(`<
~@13 A B C D E C F G E B C H ~@2 I E ~ E I E I A B C ~ E C F G E B C H ~@9 E C F G E B C H E C F G E B C H E B C ~@2
>`.pickRestart({
A: "[g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Cm Bb
B: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~", // Ab Cm
C: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Ab
D: "[g3,d4] ~ [g3,d4] ~ [g3,d4] ~@3", // G5
E: "[g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~", // Cm
F: "[f3,bb3,eb4] ~ [f3,bb3,eb4] ~ [f3,bb3,eb4] ~ [f3,bb3,eb4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~", // Ebsus2 Bb
G: "[g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,bb3,eb4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // Eb G
H: "[g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~", // G5
I: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // Ab G
})).s("gm_harpsichord").gain(0.25)
// other · overdriven guitar · "Guitar"
const overdriven_guitar = note("<~@26 [~@4 c3 ~@3 c3 g2 ~@2 c3 ~@3] ~@49>").s("gm_overdriven_guitar").gain(0.29)
// drums · kick
const kick = s("bd").struct(`<
~ A@2 B C A@2 B D A@2 B E F G H I A@2 J K L A D M N O F P Q A@2 B R F G H S A@2 J K L A D E T A B@2 C ~@2 H O A@2 J K
L A D U A@2 J K L A D U L A D O@2
>`.pickRestart({
A: "x!2 ~ x!2 ~@3", B: "x!2 ~ x!2 ~@2 x", C: "x!2 ~ x!3 ~@2", D: "x!2 ~ x!3 ~ x", E: "x ~@2 x!3 ~@2",
F: "x ~@2 x!2 ~@3", G: "x ~@5 x!3 ~@7", H: "x ~@2 x!2 ~@2 x", I: "x ~@3 x ~@3 x ~ x!2 ~@4",
J: "x ~ x ~@3 x!3 ~@5 x ~", K: "x ~@2 x!3 ~ x", L: "x ~ x ~@3 x!3 ~@7", M: "x ~@3 x ~@3 x ~@2 x ~@4", N: "x!2",
O: "x", P: "x ~@5 x ~ x ~@6 x", Q: "~ x!2 ~@5", R: "x ~@5 x ~ x ~ x ~@3 x!2", S: "x ~@4 x ~@2", T: "x!4", U: "x!3 ~",
})).gain(0.72)
// drums · snare
const snare = s("sd").struct("<~ A@15 B A@7 B A ~ A@2 C A@7 B A@8 ~ A@4 ~@2 A B A@7 D A@7 B A@3 ~@2>".pickRestart({
A: "~ x ~ x", B: "~@3 x", C: "~@5 x!2 ~", D: "~@6 x!5 ~ x ~@3",
})).gain(0.8)
// drums · low tom
const low_tom = s("lt").struct("<~@8 A ~@37 B ~@7 C ~@7 D ~@7 E ~@3 C ~>".pickRestart({
A: "~@9 x ~@6", B: "~ x ~ x ~ x ~ x", C: "x", D: "~@7 x", E: "~@2 x!2 ~@5 x!3 ~@2 x ~",
})).gain(0.56)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B C@2 A C@3 A C@3 A C@2 ~ A C@3 A C@2 ~ C A C D E C@4 A C@2 ~ A C@3 A C@3 ~ A B C D ~@2 A ~ A C@3 A C@2 ~ A C@3 A
C@2 ~ A C@2 ~@2
>`.pickRestart({
A: "~ x!7", B: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~", C: "x!8", D: "x!7 ~", E: "x",
})).gain(0.56)
// drums · mid tom
const mid_tom = s("mt").struct("<~@62 [~@11 x ~@4] ~@7 [~@13 x ~@2] ~@5>").gain(0.64)
// drums · open hat
const open_hat = s("oh").struct("<~@28 [~@15 x] ~@47>").gain(0.72)
// drums · high tom
const high_tom = s("ht").struct("<~@29 [~@14 x!2] ~@46>").gain(0.64)
// drums · crash
const crash = s("cr").struct(`<
~ A ~@3 A ~@3 A ~@3 A ~@2 B A ~@3 A ~@2 B ~ A ~@7 A ~@2 A@2 ~@3 A ~@4 A ~@7 A ~@3 A ~@2 C A ~@3 A ~@2 B A ~@2 A@2
>`.pickRestart({
A: "x", B: "x!3 ~", C: "x!2 ~@2",
})).gain(0.64)
// drums · tambourine
const tambourine = s("tb").struct("<~ A@15 ~ A@7 ~ A ~ A@2 ~ A@7 ~ A@13 ~@4 A@7 ~ A@7 ~ A@3 ~@2>".pickRestart({
A: "~ x ~ x ~ x ~ x",
})).gain(0.48)
// drums · congas
const congas = s("conga:13").struct("<~@26 [~@9 x ~@6] ~@49>").gain(2.05)
stack(
bass, bass_2, orchestra_hit, epiano2, string_ensemble_2, brass_section, timpani, electric_guitar_muted, pad_poly,
bass_3, harpsichord, overdriven_guitar, kick, snare, low_tom, hihat, mid_tom, open_hat, high_tom, crash, tambourine,
congas
)
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.