0:00/0:00
// A Teenager in Love — Dion
// 142 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 82 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(142/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, A@4 for four bars: edit a riff to change every repeat.
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
A B C D E F C G E F C D E F C D E F C H I ~@2 G E F C G E F C H E F C H I ~@2 J K L K L K L K G E F C D E F C H E F C
H I ~@2 M E F C G E F C N E F C G E F C G O ~
>`.pickRestart({
A: "c3@2 g2 c3", B: "a2@9 ~ a2@2 e2@6 a2@6", C: "f2@7 ~@3 f2@2 c2@6 f2@6", D: "g2@7 ~@3 g2@2 a2@6 b2@6",
E: "c3@7 ~@3 c3@2 g2@6 c3@6", F: "a2@7 ~@3 a2@2 e2@6 a2@6", G: "g2@6 f2@6 e2@5 ~ d2@6",
H: "g2@7 ~@3 g2@3 ~@3 g2@2 a2@4 b2@2", I: "c3 ~@7", J: "~@8 g2 a2@2 g2", K: "f2@9 ~ a2@8 c3@6", L: "g2@4 ~ b2@4 d3@3",
M: "~@8 g2 a2@2 b2", N: "g2@7 ~@3 g2@2 d2@6 g2@5 ~", O: "c2",
})).s("gm_acoustic_bass").gain(0.3)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
A B C D A B C D A B C D A B C D A B C D E ~@3 A B C D A B C D A B C D E ~@3 C D C D C D C D A B C D A B C D A B C D E
~@3 A B C D A B C D A B C D A B C D F ~
>`.pickRestart({
A: "[g4,c5,e5] ~@3 [g4,c5,e5] ~@19", B: "[a4,c5,e5] ~@3 [a4,c5,e5] ~@19", C: "[a4,c5,f5] ~@3 [a4,c5,f5] ~@19",
D: "[b4,d5,g5] ~@3 [b4,d5,g5] ~@19", E: "[g4,c5,e5] ~@23", F: "[g4,c5,e5]",
})).s("gm_acoustic_guitar_steel").gain(0.2)
// chords · piano · "A.PIANO"
const piano = note(`<
A B C D A B C D A B C D A B C D E F G D H ~@2 I A B C D A B C D E F G D H ~@2 J K L M L M L N O P Q R S T Q U V W X Y
S ~@4 W Z Y S W Z Y S W Z AA S W Z AA AB AC ~
>`.pickRestart({
A: "~@6 [c4,e4,g4] ~@3 [c4,e4,g4] ~@7 [c4,e4,g4] ~@5", B: "~@6 [c4,e4,a4] ~@3 [c4,e4,a4] ~@7 [c4,e4,a4] ~@5",
C: "~@6 [c4,f4,a4] ~@3 [c4,f4,a4] ~@7 [c4,f4,a4] ~@5", D: "~@6 [d4,g4,b4] ~@3 [d4,g4,b4] ~@7 [d4,g4,b4] ~@5",
E: "~@6 [e4,g4,c5] ~@3 [e4,g4,c5] ~@7 [e4,g4,c5] ~@5", F: "~@6 [e4,a4,c5] ~@3 [e4,a4,c5] ~@7 [e4,a4,c5] ~@5",
G: "~@6 [f4,a4,c5] ~@3 [f4,a4,c5] ~@7 [f4,a4,c5] ~@5", H: "[e4,g4] ~@11, c5 ~@23",
I: "[g4,b4]@5 ~ [f4,a4]@5 ~ [e4,g4]@4 ~@2 [d4,f4]@4 ~@2", J: "~@2 [c4,e4,g4]",
K: "[c4,f4,a4]@8 ~@2 [c4,f4,a4]@6 ~@2 [c4,f4,a4]@3 ~@3", L: "[d4,g4,b4]@7 ~@3 [d4,g4,b4]@8 [d4,g4,b4]@4 ~@2",
M: "[c4,f4,a4]@7 ~@3 [c4,f4,a4]@8 [c4,f4,a4]@4 ~@2", N: "[c4,f4,a4]@7 ~@3 [c4,f4,a4]@7 ~ [c4,f4,a4]@6",
O: "~@3 [g4,b4]@3 ~@4 [f4,a4] ~ [e4,g4]@3 ~@3 [d4,f4]@4 ~@2", P: "~@3 [c4,e4,g4] ~ [c4,e4,g4]@3 ~ [c4,e4,g4] ~@2",
Q: "~@6 [c4,e4,a4]@2 ~@2 [c4,e4,a4]@7 ~ [c4,e4,a4]@3 ~@3", R: "~@6 [c4,f4,a4]@2 ~@2 [c4,f4,a4]@7 ~ [c4,f4,a4]@5 ~",
S: "~@6 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@3 ~@3", T: "~@6 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@7 ~ [c4,e4,g4]@4 ~@2",
U: "~@3 [c4,f4,a4] ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@2 ~", V: "~@6 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@4 ~@2",
W: "~@6 [e4,g4,c5]@2 ~@2 [e4,g4,c5]@7 ~ [e4,g4,c5]@3 ~@3", X: "~@6 [e4,a4,c5]@2 ~@2 [e4,a4,c5]@7 ~ [e4,a4,c5]@5 ~",
Y: "~@6 [f4,a4,c5]@2 ~@2 [f4,a4,c5]@7 ~ [f4,a4,c5]@4 ~@2", Z: "~@6 [e4,a4,c5]@2 ~@2 [e4,a4,c5]@7 ~ [e4,a4,c5]@3 ~@3",
AA: "~@6 [f4,a4,c5]@2 ~@2 [f4,a4,c5]@7 ~ [f4,a4,c5]@3 ~@3", // F
AB: "~@6 [d4,g4]@2 ~@2 [d4,g4,b4]@7 ~ [d4,g4,b4]@2 ~@4, ~@6 b4 ~@17", AC: "[e4,g4,c5]",
})).s("gm_piano").gain(0.25)
// chords · synth strings 1 · "SYN STRING"
const synth_strings_1 = note(`<
A@3 B@4 C@8 D E@3 D F ~@3 A@3 C@4 D E@3 D F ~@3 G D G D G D G C@8 D E@3 D F ~@3 H I@2 C@4 D E@3 C@4 J@2 ~
>`.pickRestart({
A: "[g4 ~ f4, c4@71 ~, e4@2 ~, ~ a4@2]/3", B: "[[b3,d4]@24 e4@23 ~ e4@23 ~ f4@24, g4 a4, ~ c4@3]/4",
C: "[[b3,d4] ~@2 f4, g4 a4, ~ c4@3, ~@24 e4@47 ~@25]/4", D: "[b3,d4,g4]", E: "[g3 ~ f4, c4, e4@2 ~, ~ a3@2]/3",
F: "[c4,e4] ~@11", G: "[a3,c4,f4]", H: "[c4,e4,g4]", I: "[e4 f4, [a3,c4]]/2", J: "[[b3,d4] [c4,e4], g4]/2",
})).s("gm_synth_strings_1").gain(0.2)
// drums · kick
const kick = s("bd").struct("<A@20 B ~@3 A@12 B ~@3 A@20 B ~@3 A@16 B ~>".pickRestart({
A: "x!2", B: "x",
})).gain(0.2)
// drums · snare
const snare = s("sd").struct("<A@19 B ~@3 C A@11 B ~@3 C A@19 B ~@3 C A@15 B ~@2>".pickRestart({
A: "~@3 x ~ x ~@3 x ~@2", B: "~@3 x ~ x ~@3 x ~ x", C: "~@8 x!2 ~ x",
})).gain(0.31)
// drums · hihat
const hihat = s("hh").struct("<A@20 B ~@3 A@12 B ~@3 A@20 B ~@3 A@16 ~@2>".pickRestart({
A: "x ~ x!2 ~ x!2 ~ x!2 ~ x", B: "x",
})).gain(0.26)
stack(bass, acoustic_guitar_steel, piano, synth_strings_1, kick, snare, hihat)
More by Dion
(I was) Born To Cry1962 · A minor · 119 bpmAbraham, Martin And John1968 · E major · 141 bpmLove Came To Me1962 · G major · 119 bpmLovers Who Wander1962 · C major · 142 bpmRuby Baby1963 · E major · 122 bpmRunaround Sue1961 · D major · 147 bpmThis Little Girl1963 · B♭ major · 120 bpmWhere Or When1960 · A♭ major · 73 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.