0:00/0:00
// Super Trouper — A*Teens
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 "Staff-1" lead 1 square (copy of ch 1 "Staff" pan flute)
// note: Full arrangement: all 128 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · glockenspiel · "Staff-3"
const glockenspiel = note(`<
~@9 A@2 B@2 C@2 D E ~@23 F G H I J I K L A@2 B@2 C@2 D E ~@23 F G H I J I K L M ~@17 F G H I J I K L G H I J I K L G H
I J I K N@2
>`.pickRestart({
A: "g5@2 c6@2 e6@2 g6@2 d6@3 ~ d6@2 c6@2", B: "e5@2 a5@2 c6@2 e6@2 b5@3 ~ b5@2 a5@2",
C: "a5@2 d6@2 f6@2 a6@2 e6@3 ~ e6@2 d6@2", D: "d5@2 g5@2 b5@2 [c6,d6]@2 a5@3 ~ a5@2 g5@2",
E: "d5@2 g5@2 b5@2 d6@2 a5@3 ~ a5@2 g5@2", F: "~@5 g5 c6 e6", G: "g6@3 ~ g6@3 ~ f6@3 ~ f6@3 ~",
H: "e6@2 d6@2 e6@2 f6@2 e6@2 d6@2 d6@3 ~", I: "f6@3 ~ f6@3 ~ e6@3 ~ e6@2 d6@2", J: "d6@3 ~@13", K: "d6@3 ~@11 d6@2",
L: "d6@2 c6@2 d6@2 e6@2 d6@2 c6@2 c6@3 ~", M: "c5@3 ~@13", N: "[d6@2 c6@2 d6@2 e6@2 d6@2 c6@2 c6@15 ~@5]/2",
})).s("gm_glockenspiel").gain(0.72)
// bass · synth bass 2 · "Staff-2"
const bass = note(`<
~@9 A B C D E F G H I J K L I M N G O P O P O Q R@2 S ~@14 A B C D E F T H B U V W B X Y Z AA P O P AB AC AD@2 ~@15 AE
AF AG AH AI AJ AK AL AG AM AN ~@30
>`.pickRestart({
A: "c2@3 ~ a1@3 ~ g1@3 ~ c2@2 g1@2", B: "c2@2 c2@2 a1@3 ~ g1@2 g1@2 a1@2 g1@2",
C: "a1@2 a1@2 c2@3 ~ e2@3 ~ c2@2 e2@2", D: "a1@2 a1@2 c2@3 ~ a1@2 b1@2 c2@3 ~",
E: "d2@2 d2@2 f2@3 ~ a2@3 ~ f2@2 a2@2", F: "d2@2 d2@2 f2@3 ~ d2@2 e2@2 f2@3 ~",
G: "g2@2 g2@2 e2@3 ~ d2@3 ~ e2@2 d2@2", H: "g2@2 g2@2 e2@3 ~ d2@2 d2@2 e2@2 d2@2",
I: "c2@2 c2@2 a1@3 ~ g1@3 ~ a1@2 g1@2", J: "e2@2 e2@2 e2@3 ~ e2@2 e2@2 e2@3 ~",
K: "d2@2 d2@2 f2@3 ~ a2@2 a2@2 f2@3 ~", L: "g2@2 g2@2 e2@3 ~ d2@3 ~ g2@3 ~", M: "e1@2 e1@2 e1@3 ~ e1@2 e1@2 e1@3 ~",
N: "d2@2 d2@2 e2@3 ~ f2@2 f2@2 a2@3 ~", O: "f2@5 ~ f2@2 f2@7 ~", P: "e2@5 ~ e2@2 e2@7 ~",
Q: "c2@5 ~ c2@2 c2@3 ~ c2@3 ~", R: "[g1@3 ~ g1@3 ~ g1@3 ~ d2@2 g2@4 g2@2 g2@3 ~ b2@3 ~ d3@3 ~]/2", S: "c2@3 ~@13",
T: "g2@2 g2@2 e2@3 ~ d2@3 ~ e2 d2@3", U: "e2@3 ~@3 e2@2 e2@3 ~ e2@3 ~", V: "d2@3 ~ d2@2 f2@2 a2@3 ~ f2@2 a2@2",
W: "g2@2 g2@2 e2@3 ~ d2@2 e2@2 g2@3 ~", X: "e2@2 e2@4 e2@2 e2@3 ~ e2@3 ~", Y: "d2@2 d2@2 e1@3 ~ f1@2 f1@2 a1@3 ~",
Z: "g1@2 g1@4 g1@2 e2@3 ~ g2@2 e2@2", AA: "f2@5 ~ f2@2 f2@3 ~ c3@2 g3@2", AB: "f2@5 ~ f2@2 f2@5 ~ g3@2",
AC: "c2@5 ~ c2@2 c2@3 ~ d2@3 ~", AD: "[g1@3 ~ g1@3 ~ g1@3 ~ d2@2 g2@4 g2@2 d3@2 g3@2 g3@7 ~]/2",
AE: "c2@3 c2 c2@2 c2@5 ~ g1@2 g1@2", AF: "c2@3 c2 c2@2 c2@5 ~ d2@2 e2@2", AG: "f2@3 ~@3 f2@2 f2@5 ~ f2@2",
AH: "a2@5 ~ a2@2 a2@7 ~", AI: "d2@5 ~ d2@2 g2@2 g2@2 ~@2 g2@2", AJ: "c2@5 ~ c2@2 c2@3 ~ g2@3 ~",
AK: "f2@5 ~ f2@2 f2@3 ~@3 f2@2", AL: "d2@5 ~ d2@2 e2@5 ~ e2@2", AM: "g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~",
AN: "[a2,b2]@2 g3@2 g3@3 ~ g3@2 f3@2 g3@2 g3@2", // Asus2
})).s("gm_synth_bass_2").gain(0.36)
// other · overdriven guitar · "Staff-4"
const overdriven_guitar = note("<~@9 A@2 B@2 C@2 D@2 ~@31 A@2 B@2 E C D@2 ~@72>".pickRestart({
A: "g4@2 c5@2 e5@2 g5@2 d5@3 ~ d5@2 c5@2", B: "e4@2 a4@2 c5@2 e5@2 b4@3 ~ b4@2 a4@2",
C: "a4@2 d5@2 f5@2 a5@2 e5@3 ~ e5@2 d5@2", D: "d4@2 g4@2 b4@2 d5@2 a4@3 ~ a4@2 g4@2",
E: "[g4,a4]@2 d5@2 f5@2 a5@2 e5@3 ~ e5@2 d5@2", // Gsus2
})).s("gm_overdriven_guitar").gain(0.72)
// chords · synth strings 1 · "Staff-4"
const synth_strings_1 = note(`<
~@17 A@2 B C A@2 B C D E F G H I J K ~@8 L M N O P Q R ~@8 A@2 B C A@2 B C S T U V H I W K ~@8 L M N O P Q R X Y Z AA
AB AC AD AE AF AG AH ~@7 AI AJ M N O P Q AK AJ M N O P Q AK AJ M N O P Q AL@2
>`.pickRestart({
A: "[[e4,g4,c5]@18 [d4,g4,b4]@2 [d4,g4,b4]@2 c5@2 [d4,g4,b4]@2 c5@2 [d4,g4,b4]@3 ~]/2", B: "[c4,f4,a4]@15 ~",
C: "[e4,g4,b4]@5 ~ d4@2 [d4,g4,b4]@7 ~", D: "[c5,f5,a5]@7 ~ [c5,f5,a5,c6]@7 ~",
E: "[c5,e5,g5]@5 ~ [e5,g5,c6]@2 [e5,g5,c6]@3 ~ [c5,e5,g5]@3 ~", F: "[c5,f5,a5,c6]@11 ~ [c5,f5,a5]@3 ~",
G: "[c5,e5,g5]@5 ~ [c5,e5,g5,c6]@2 [c5,e5,g5,c6]@7 ~", H: "[c4,f4,a4]@11 ~ [g3,g4]@3 ~",
I: "[c4,e4]@11 ~ [g3,g4]@3 ~", J: "[d4,f4,g4,c5]@3 ~ [d4,f4,g4,c5]@3 ~ [d4,f4,g4,c5]@3 ~ [d4,f4,g4,c5]@2 b4@2",
K: "[d4,f4,g4,b4]@3 ~ [d4,f4,g4,b4]@3 ~ [d4,f4,g4,b4]@3 ~ [d4,f4,g4,b4]@3 ~", // G7
L: "[c5,e5,g5]@3 ~ [c5,e5,g5]@3 ~ [c5,f5,g5]@3 ~ [c5,f5,g5]@3 ~", // C Csus4
M: "[c5,e5,g5]@2 [c5,d5,g5]@2 [c5,e5,g5]@2 [c5,f5,g5]@2 [c5,e5,g5]@2 d5@2 [c5,d5,g5]@3 ~", // C Csus2 C Csus4 C Csus2
N: "[c5,f5,g5]@3 ~ [c5,f5,g5]@3 ~ [c5,e5,g5]@3 ~ [c5,e5,g5]@2 d5@2", O: "[b4,d5,g5]@15 ~",
P: "[d5,f5,g5]@3 ~ [d5,f5,g5]@3 ~ [c5,e5,g5]@3 ~ [c5,e5,g5]@2 d5@2", Q: "[b4,d5,g5]@7 [d5,f5,g5]",
R: "[d5,f5,g5]@2 [c5,e5]@2 [d5,f5,g5]@2 [e5,g5]@2 [d5,f5,g5]@2 [c5,e5]@2 [c5,e5,g5]@3 ~", // G7 C G7 Em G7 C
S: "[c4,f4,a4]@7 ~ [c4,f4,a4,c5]@7 ~", T: "[c4,e4,g4]@5 ~ [e4,g4,c5]@2 [e4,g4,c5]@3 ~ [c4,e4,g4]@3 ~",
U: "[c4,f4,a4,c5]@11 ~ [c4,f4,a4]@3 ~", V: "[c4,e4,g4]@5 ~ [c4,e4,g4,c5]@2 [c4,e4,g4,c5]@7 ~",
W: "[d4,f4,g4,c5]@3 ~ [d4,f4,g4,c5]@3 ~ [d4,f4,g4,c5]@3 ~ [d4,f4,g4,c5]@3 ~", // Dm7
X: "[g4,c5]@3 c4@3 [c4,g4,c5]@4 [c4,g4,c5]@4 [c4,g4,c5]@2", Y: "[c4,g4,c5]@3 ~ [c4,g4,c5]@3 ~ [c4,g4,c5]@7 ~",
Z: "[f4,a4,c5]@5 ~ [f4,a4,c5,f5]@2 [f4,a4,c5,f5]@7 ~", AA: "[e4,a4,c5]@5 ~ [e4,a4,c5,e5]@2 [e4,a4,c5,e5]@7 ~",
AB: "[f4,a4,c5,f5]@7 ~ [g4,b4,d5,g5]@7 ~", // F G
AC: "[e4,g4,c5,e5]@5 ~ [e4,g4,c5,e5]@2 [e4,g4,c5,e5]@3 ~ [d4,g4,b4,d5]@3 ~", AD: "[c4,f4,a4,c5]@7 ~ [c4,f4,a4]@7 ~",
AE: "[d4,f4,a4]@7 ~ [c#4,e4,g4,a4]@7 ~", AF: "[d4,f4,a4,d5]@7 ~ [d5,f5,a5,d6]@7 ~",
AG: "[g4,d5,g5]@3 ~ [g4,b4,d5,g5]@3 ~ [g4,b4,d5,g5]@2 [g4,b4,d5,g5]@4 [g4,b4,d5,g5]@2", // G5 G
AH: "[g4,b4,d5,g5]@2 [g4,b4,d5,g5]@2 [g4,b4,d5,g5]@3 ~ [g4,b4,d5,g5]@2 [g4,b4,d5,g5]@2 [g4,b4,d5,g5]@2 [g4,b4,d5,g5]@2", // G
AI: "~@5 g4 c5 e5", AJ: "[c5,e5,g5]@3 ~ [c5,e5,g5]@3 ~ [c5,d5,f5,g5]@3 ~ [c5,d5,f5,g5]@3 ~",
AK: "[d5,f5,g5]@2 [c5,e5]@2 [d5,f5]@2 [e5,g5]@2 [d5,f5,g5]@2 [c5,e5]@2 [c5,e5,g5]@3 ~", // G7 C Dm Em G7 C
AL: "[[d5,f5,g5]@2 [c5,e5]@2 [d5,f5]@2 [e5,g5]@2 [d5,f5,g5]@2 [c5,e5]@2 [c5,e5,g5]@15 ~@5]/2", // G7 C Dm Em G7 C
})).s("gm_synth_strings_1").gain(0.22)
// other · lead 1 square · "Staff-5"
const lead_1_square = note(`<
~@33 A ~@2 B ~ B ~@2 A ~@2 B ~ B ~@25 A ~@2 B ~ B ~@2 A ~@2 B ~ B ~@12 A ~@2 B ~ B ~@2 A ~@2 B ~ B ~ A ~@2 B ~ B ~ A
~@2 B ~ B ~@2
>`.pickRestart({
A: "c3@2 c4@2 c4@3 ~ c3@2 c4@2 c4@3 ~", B: "g2@2 g3@2 g3@3 ~ g2@2 g3@2 g3@3 ~",
})).s("gm_lead_1_square").gain(0.72)
// other · lead 1 square · "Staff-6"
const lead_1_square_2 = note(`<
~@33 A@2 B C D C@2 E A@2 B C D C@2 ~@24 A@2 B C D C@2 E A@2 B C D C@2 ~@11 A@2 B C D C@2 E A@2 B C D C@2 A B@2 C D C F
A@3 C D C G ~
>`.pickRestart({
A: "c2@2 c3@2 c3@2 a2 g2 c2@2 c3@2 c3@2 a2 g2", B: "c2@2 c3@2 c3@2 a2 g2 c2@2 c3@2 c2@2 c3@2",
C: "g1@2 g2@2 g2@2 f2 d2 g1@2 g2@2 g2@2 f2 d2", D: "d2@2 d3@2 d3@2 c3 a2 d2@2 d3@2 d3@2 c3 a2",
E: "c2@2 c3@2 c3@2 a2 g2 c2@2 c3@2 a2 g2 e2 d2", F: "g1@2 g2@2 g2@2 f2 d2 g1@2 g2@2 a2 g2 e2 d2",
G: "g1@2 g2@2 g2@2 f2 d2 g1@2 c3@2 a2 g2 e2 d2",
})).s("gm_lead_1_square").gain(0.72)
// drums · kick
const kick = s("bd").struct("<A B ~@7 B@89 C ~@2 C ~ C B@23 ~>".pickRestart({
A: "x!2", B: "x!4", C: "x",
})).gain(0.72)
// drums · snare
const snare = s("sd").struct("<~@9 A@23 B A@38 B A@25 B ~@6 B@2 A@21 ~>".pickRestart({
A: "~ x ~ x", B: "x!16",
})).gain(0.72)
// drums · clap
const clap = s("cp").struct("<~@9 [~ x ~ x]!89 ~@7 [~ x ~ x]!22 ~>").gain(0.72)
// drums · hihat
const hihat = s("hh").struct(`<
~@9
[~ x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2]
[x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2]!88
~@7
[x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2]!22
~
>`).gain(0.72)
// drums · open hat
const open_hat = s("oh").struct("<~@9 A@23 B A@38 B A@25 B ~@6 B@2 A@19 ~@3>".pickRestart({
A: "~ x ~ x ~ x ~ x", B: "x!16",
})).gain(0.72)
// drums · crash
const crash = s("cr").struct(`<
A B ~@7 C ~@30 B ~@6 B ~@31 B ~@7 A B ~@9 C ~@2 C ~ C ~@2 C ~@2 C ~ C B ~@3 C ~ C B ~@2 D@3 B E ~
>`.pickRestart({
A: "x!2", B: "x!4", C: "x", D: "~@3 x", E: "x!3 ~",
})).gain(0.72)
// drums · guiro
const guiro = s("guiro:0").struct("<~@9 [x!16]!89 ~@7 [x!16]!20 ~@3>").gain(15.21)
stack(
glockenspiel, bass, overdriven_guitar, synth_strings_1, lead_1_square, lead_1_square_2, kick, snare, clap, hihat,
open_hat, crash, guiro
)
More by A*Teens
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.