0:00/0:00
// You're the One That I Want — Olivia Newton-John
// 105 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 72 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(105/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 · alto sax
const alto_sax = note(`<
~@3 A B C D E F@4 ~@7 G H I J I J I K L M ~@9 N O P ~ Q R S ~ G H I J I J I K L T I J I J I K L T I J I J I K L M
>`.pickRestart({
A: "~@12 e4 g4 ~@2", B: "a4@7 ~@3 d#4 ~ d4 ~ c4 d4", C: "~ c4@8 ~@3 e4@2 g4@2", D: "a4@9 ~ a4 ~ g4 ~ f4 g4",
E: "~ e4@6 ~@5 e4@2 g4@2", F: "[g#4@3 g#4@8 ~ d4 ~ c4 d4@2 c4@8 ~@3 a5 ~ a5 a5@2 a3 ~ a3 a3@17 ~@11]/4",
G: "~@4 a4 a4@2 a4 a4@3 ~ a4 a4@2 a4", H: "a4 ~ g4 ~ g4 f4 ~ f4@6 ~ g4!2", I: "g4!3 g4@2 ~@11", J: "~@12 a4 f4 g4!2",
K: "~@12 a4 g4 f4 ~", L: "g4@8 ~ g4 ~ g4 a4 ~ b4 ~", M: "b4@3 a4 g4@10 ~@2", N: "~@11 d4 d#4 e4 g4 ~",
O: "g4@10 ~@2 e4 g4@2 ~", P: "a4@2 b4 g4@12 ~", Q: "~@11 d#4 e4 g4@2 ~", R: "a4@3 g4@8 ~ e4 g4@2 ~",
S: "a4@2 b4 g4@11 ~@2", T: "b4@3 a4 g4@10 g4!2",
})).s("gm_alto_sax").gain(0.73).pan(0)
// chords · piano · "Piano 1"
const piano = note(`<
A B C D E F G H I J K L ~@8 M N O P Q R S T U E L E F G H I J K L ~@8 M P O P Q R S T U P O P Q R S T V P O P Q R S T
U
>`.pickRestart({
A: "[e4,a4]@3 ~@8 d#4 d4 c4 d4 ~, d#4 ~@11 a4@3 ~", B: "a4@2 ~ [c4,a4] ~@6 [c4,a4] ~@2 [c4,a4] ~@2, c4 ~@15",
C: "[d#4,e4] g4 [e4,g4]!2 e4 [e4,g4]!3 ~@3 d#4 d4 c4 d4 ~, a4@9 ~@3 a4@3 ~", // Emaj7 Em
D: "[c4,a4] g4 e4 [e4,g4] g4 [e4,g4]!4 ~@7", // F Em
E: "~@2 [c4,e4,a4] ~@2 [c4,e4,a4] ~@2 [e4,a4]@2 ~ [c4,e4,a4] ~@4, ~@8 c4 ~@7", // Am A5 Am
F: "~@2 [c4,e4,a4] ~@2 [c4,e4,a4] ~@2 [c4,a4] ~@2 [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4], ~@4 e4 ~@3", // Am F Am
G: "[c4,f4,a4] ~@2 [c4,f4,g#4] [c4,f4,a4] ~ [c4,f4,a#4] ~ [c4,f4,a4] ~@2 [c4,f4,a4] ~@4", // F Fm F Fsus4 F
H: "~@3 [c4,d#4,g4] [c4,e4,g4] ~ [c4,f4,g4] ~ [c4,e4,g4] ~@2 [c4,e4,g4] ~@2 [c4,e4,g4] ~", // Cm C Csus4 C
I: "~@2 [e4,g#4,b4] ~@2 [e4,g#4,b4] ~@2 [e4,g#4,b4] ~@2 [e4,g#4,b4] ~@2 [e4,g#4,b4] ~", // E
J: "~@3 [e4,a4,c5]!2 ~ [e4,a4,c5] ~ [e4,a4,c5] ~@2 [e4,a4,c5] ~@4", // Am
K: "[e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4] g4 e4 [e4,g4]!6 ~, ~@3 c5@4 ~", // Am A5 Em
L: "[e4,a4,c5] ~ [d4,d#4,g4,c5] ~ [c4,g4,c5] ~ [d4,d#4,g4,c5] ~ [c4,g4,c5] ~ [d4,d#4,g4,c5] ~ [c4,g4,c5] ~@3", // Am Cm C5 Cm C5 Cm C5
M: "~@10 [a6,b6,c7,d7,e7] [b5,c6,d6,e6,f6,g6] [c5,d5,e5,f5,g5,a5] [f4,g4,a4,b4] [b3,c4,d4,e4] [e3,f3,g3,a3]", // Am Cmaj7 Dm7 G7 Cmaj7 Fmaj7
N: "[c3,d3] ~@9 g4@2 a4@2 c5 ~", O: "~@2 c5@2 ~ a#4 ~@3 f4@2 ~@5", P: "~@10 g4@2 a4@2 c5 ~",
Q: "~@2 e5 ~@2 d5 ~@2 c5@4 ~@4", R: "[g4,c5]!2 ~@8 g4@2 a4@2 c5@2", S: "~@2 e5@2 ~ d5 ~@2 c5@5 ~@3",
T: "[g4,b4,d5] ~ [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G
U: "~@4 [g3,b3,d4]!2 ~ [g3,b3,d4] ~ [g3,b3,d4] ~@2 [b3,d4]@2 ~@2, ~@12 g3 ~@3", // G Bm
V: "~@4 [g3,b3,d4]!2 ~ [g3,b3,d4] ~@2 [a6,b6,c7,d7,e7] [b5,c6,d6,e6,f6,g6] [c5,d5,e5,f5,g5,a5] [f4,g4,a4,b4] [b3,c4,d4,e4] [e3,f3,g3,a3]", // G Am Cmaj7 Dm7 G7 Cmaj7 Fmaj7
})).s("gm_piano").gain(0.4).pan(0)
// other · electric guitar muted · "Muted Gt"
const electric_guitar_muted = note(`<
A@6 B C D A@3 C D A B C D A B@2 C E C E C E F@2 A@4 B C D A@3 C D A B C D A B@2 C E C E C E F@2 C E C E C E F@2 C E C
E C E F@2
>`.pickRestart({
A: "e3 ~ e3!3 ~ e3!2 ~ e3 ~ e3!5", B: "c3 ~ c3!3 ~ c3!2 ~ c3 ~ c3!5", C: "g3 ~ g3!3 ~ g3!2 ~ g3 ~ g3!5",
D: "b3 ~ b3!3 ~ b3!2 ~ b3 ~ b3!5", E: "g3 ~ g3!2 f3 ~ f3!2 ~ c3 ~ c3!5", F: "d3 ~ d3!3 ~ d3!2 ~ d3 ~ d3!5",
})).s("gm_electric_guitar_muted").gain(0.4).pan(0)
// bass · electric bass finger · "Fingered Bs."
const bass = note(`<
A@6 B C D A@2 E F G H I F G H I@2 J K J K J K L M A@4 B C D A@2 E F G H I F G H I@2 J K J K J K L M J K J K J K L M J
K J K J K L M
>`.pickRestart({
A: "a1 ~@2 a1 e2@2 ~ e2 a2@2 ~ g2 e2 g2@3", B: "f1@2 ~ f1 c2 ~@2 c2 f2@2 ~ f2 c2 f2@3",
C: "c3@2 ~ c3 g2@2 ~ g2 c3@2 ~ d#3 e3 g3@3", D: "e2@2 ~ e2 g#2@2 b2@2 e2@2 ~ e2 d2@2 c2@2",
E: "a1 ~@2 a1 e2@2 ~ e2 a2@2 ~ g2 e2 g2 a2@2", F: "c2@2 ~ c2 e2@2 ~ e2 g2@2 ~ g2 a2 g2 e2 d2",
G: "e2@2 ~ e2 g2@2 ~ g2 b2@2 ~ b2 c3 b2 g2@2", H: "a1@2 ~ a1 e2@2 ~ e2 a2@2 ~ b2 c3 b2 a2 g2",
I: "f2@2 ~ f2 a2@2 ~ a2 c3@2 ~ c3 d3 c3 a2 g2", J: "c2@2 ~ c2 e2@2 ~ e2 g2@2 ~ g2 a2 c3 a2 g2",
K: "c2@2 ~ c2 e2@2 ~ e2 f2@2 ~ f2 a2@2 c3@2", L: "g1 ~ g1@2 g2 g1 ~ g1 ~ g1@2 g1 g2@2 g1 ~",
M: "g1 ~ g1@2 g2 g1 ~ g1 ~ g1 ~ g1 g2@2 g1 ~",
})).s("gm_electric_bass_finger").gain(0.58).pan(1)
// chords · synth brass 1 · "Synth Br.1"
const synth_brass_1 = note(`<
~ A@2 B C@2 D E F G H I ~@9 J K J K J K L@2 M B C@2 D E F G H I N O P Q R O S T U V W X Y Z AA AB AC V W X Y Z AA AB
AC V W X Y Z AA AB AC
>`.pickRestart({
A: "[~ [a3,c4,e4]@13 ~@2]/2", B: "[a3,c4,e4]@13 ~@3", C: "[a3,c4,e4]@7 ~", D: "[a3,c4,f4]@15 ~", E: "[g3,c4,e4]@15 ~",
F: "[g#3,b3,e4]@15 ~", G: "[a3,c4,e4]@15 ~", H: "[a3,c4,e4]", I: "g4@13 ~@3", J: "~@2 e5@7 f5@4 e5@3, ~ [c5,g5]@7",
K: "~@2 [c5,e5,g5] ~@2 [c5,e5,g5] ~@2 [c5,f5,g5]@6 ~@2", L: "[[g4,b4,d5]@15 ~]/2", M: "[a3,c4,e4]@3 ~",
N: "~@2 [c5,e5,g5] ~@2 [c5,e5,g5] ~@2 [c5,e5,g5]@2 ~ [c5,e5,g5] ~@4", // C
O: "~@2 [e5,g5,b5] ~@2 [e5,g5,b5] ~@2 [e5,g5,b5]@2 ~ [e5,g5,b5] ~@4", // Em
P: "~@2 [e5,a5,c6] ~@2 [e5,a5,c6] ~@2 [e5,a5,c6]@2 ~ [e5,a5,c6] ~@4", // Am
Q: "~@2 [f5,a5,c6] ~@2 [f5,a5,c6] ~@2 [f5,a5,c6]@2 ~ [f5,a5,c6] ~@4", // F
R: "~@2 [e5,g5,c6] ~@2 [e5,g5,c6] ~@2 [e5,g5,c6]@2 ~ [e5,g5,c6] ~@4", // C
S: "~@2 [e5,a5,c6] ~@2 [e5,a5,c6] ~@2 [a5,c6]@2 ~ [e5,a5,c6] ~@4, ~@8 e5 ~@7", T: "[f5,a5,c6]@3 ~ [f5,a5,c6]@3 ~",
U: "[f5,a5,c6] ~ [f5,a5,c6] ~@5", V: "[g4,c5,e5]@2 ~ [g4,c5,e5]@3 ~@4 g4@2 a4 ~ [g4,c5,e5] ~",
W: "~@2 [g4,c5,e5] ~@2 [f4,a#4,d5] ~@2 [f4,a4,c5]@2 ~ [f4,a4,c5]@2 ~@3", // C A# F
X: "[g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@5 [c5,e5]@2 [c5,e5]@2 [g4,c5,e5] ~, ~@10 g4 ~ a4 ~@3", // C
Y: "~@2 e5@2 ~ [f4,a#4,d5] ~@2 [f4,a4,c5]@2 ~ [f4,a4,c5]@2 ~@3", // A# F
Z: "[g4,c5,e5] [g4,c5,e5]@2 [g4,c5,e5]@2 ~ [g4,c5,e5] ~@3 [g4,e5] ~ [c5,e5]@2 [g4,c5] ~, ~@12 a4 ~ e5@2", // C C5
AA: "~@2 [g4,c5,e5] ~@2 [f4,a#4,d5] ~@2 [f4,a4,c5]@2 ~ [f4,a4,c5]@2 ~ [f4,a4,c5] ~", // C A# F
AB: "[g4,b4,d5] ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G
AC: "[g4,b4,d5] ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@6 ~@2", // G
})).s("gm_synth_brass_1").gain(0.24).pan(0)
// drums · kick
const kick = s("bd").struct(`<
[x ~@2 x!2 ~@3 x ~@2 x!2 ~@3]!20
[x ~@2 x!2 ~@3 x ~@7]
[x ~@2 x!2 ~@3 x ~@2 x!2 ~@3]!26
[x ~@2 x!2 ~@3 x ~@7]
[x ~@2 x!2 ~@3 x ~@2 x!2 ~@3]!24
>`).gain(0.8)
// drums · snare
const snare = s("sd").struct("<A@11 B A@8 C A@17 B A@8 C A@24>".pickRestart({
A: "~ x ~ x ~ x ~ x", B: "~@2 x ~@3 x ~@3 x ~@2 x!2 ~", C: "~ x ~ x ~ x!3",
})).gain(0.8)
// drums · pedal hat
const pedal_hat = s("hh").struct(`<
[~ x ~ x ~ x ~ x]!11
[~@2 x ~@3 x ~@3 x ~@2 x!2 ~]
~@17
[~ x ~ x ~ x ~ x]!9
[~@2 x ~@3 x ~@3 x ~@2 x!2 ~]
~@33
>`).gain(0.8)
// drums · crash
const crash = s("cr").struct("<~@21 A ~@5 A ~ A ~@18 A ~@5 A ~ A ~@5 A ~ A ~@5 A ~>".pickRestart({
A: "x",
})).gain(0.8)
// drums · tambourine
const tambourine = s("tb").struct(`<
~@12
[~ x ~ x ~ x ~ x]!8
[~ x ~ x ~ x!3]
[~ x ~ x ~ x ~ x]!8
~@10
[~ x ~ x ~ x ~ x]!8
[~ x ~ x ~ x!3]
[~ x ~ x ~ x ~ x]!24
>`).gain(0.8)
stack(alto_sax, piano, electric_guitar_muted, bass, synth_brass_1, kick, snare, pedal_hat, crash, tambourine)
More by Olivia Newton-John
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.