0:00/0:00
// Adam's Song — blink-182
// 136 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 141 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/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 · electric guitar clean
const electric_guitar_clean = note(`<
A B C D A B C D ~@16 E F G H E F G H ~@8 E F G H E F G H A B C D A B C D ~@16 E F G H E F G H ~@8 E F G H E F G H ~@24
E F G H E F G H E F G H E F G H I@5
>`.pickRestart({
A: "~@2 e3 ~ c3@4 ~@2 e3 ~ c3@4, a2!2", B: "~@2 e3 ~ c3@4 ~@2 e3 ~ c3@4, g2!2",
C: "~@2 e3 ~ c3@4 ~@2 e3 ~ c3@4, f2!2", D: "~@2 e3 ~ c3@4 ~@2 e3 ~ c3@4, d2 f2", E: "c3 g3 f3@2 c3 g3 f3@2",
F: "d3 g3 f3@2 d3 g3 f3@2", G: "a2 d3 c3@2 a2 d3 c3@2", H: "f2 d3 c3@2 f2 d3 c3@2", I: "c3/5",
})).s("gm_electric_guitar_clean").gain(0.64)
// other · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@96 A B C D A B C D A B C D A B C D ~@29>".pickRestart({
A: "c3 g3 f3@2 c3 g3 f3@2", B: "d3 g3 f3@2 d3 g3 f3@2", C: "a2 e3 d3@2 a2 e3 d3@2", D: "f2 e3 d3@2 f2 e3 d3@2",
})).s("gm_electric_guitar_clean").gain(0.4)
// bass · electric bass pick
const bass = note(`<
~@8 A B C B A B C B A B C B A B C B D ~@7 A E C B A E C B F G H I F G H I ~@8 A B C B A B C B A B C B A B C B D ~@7 A
E C B A E C B F G H I F G H I J K L K J K L M J K L K J K L N J K L K J K L N F G H I F G H I F G H I F G H I O@5
>`.pickRestart({
A: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", B: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~",
C: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", D: "c2@11 ~@5", E: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
F: "c2 ~ c2@12 ~@2", G: "d2 ~ d2@12 ~@2", H: "a1 ~ a1@12 ~@2", I: "f1 ~ f1@12 ~@2", J: "c2", K: "f2", L: "g2",
M: "~ f2, a2", N: "a2 f2", O: "[c2@15 ~]/5",
})).s("gm_electric_bass_pick").gain(0.64)
// other · overdriven guitar
const overdriven_guitar = note(`<
~@32 A B C D A B C D E F G H E F G H ~@32 A B C D A B C D E F G H E F G H ~@24 E F G H E F G H E F G H E F G H I@2 ~@3
>`.pickRestart({
A: "c4!8", B: "d4!8", C: "a3!8", D: "f3!8", E: "c4", F: "d4", G: "a3", H: "f3", I: "c3/2",
})).s("gm_overdriven_guitar").gain(0.64)
// bass · contrabass
const bass_2 = note(`<
~@27 A B C D E ~@8 F G H I F G H I ~@27 A B C D E ~@8 F G H I F G H I ~@24 F G H I F G H I F G H I F G H I J@2 ~@3
>`.pickRestart({
A: "~ c2", B: "c2", C: "d2", D: "a1", E: "f1", F: "c3", G: "d3", H: "a2", I: "f2", J: "c3/2",
})).s("gm_contrabass").gain(0.64)
// other · piano
const piano = note("<~@104 A@2 B C D E F G@2 H I J K@5 ~@20>".pickRestart({
A: "[~@3 g4@2 c5@2 d5@2 c5@2 ~@5, c3 ~]/2", B: "~@2 d5 c5, ~@3 c5@2 ~@3", C: "f5!3 ~ e5!3 ~", D: "~@6 g4 c5, c5@7 ~",
E: "d5!3 ~ g4!3 ~", F: "f4 g4 c5 f4@2 c5@2 e5", G: "[e5!2 ~ f5!3 ~ g5@8 ~]/2", H: "~@5 c4 c5 c4",
I: "c3 c4 c5 c4 c3 c4 c5 c4", J: "c3 c4 c5 c4 c3 [c2,c4] [c2,c3,c5] [c2,c4]",
K: "[c3 c4 c5 c3 c4 c5 c4 c3 c3 c4 c5 c3 c4 c5 c4 c3 c4 c5 c4 c3 c4 c5 c3 c4 [c3,c5] c4 [c3,c5] c3 c4 c5 [c3,c4]!2 c5 ~@7, c2@33 ~@7]/5", // C
})).s("gm_piano").gain(0.64)
// other · piano · soft notes
const piano_soft = note("<~@107 A ~ B ~ C D E ~@27>".pickRestart({
A: "~@3 f5 ~@3 e5", B: "~@3 d5 ~@3 g4", C: "~@2 e5 ~@3 f5 ~", D: "c3 c4 c5 c4 c3 c4 c5 c4", E: "c3 c4 c5 c4 c3 ~@3",
})).s("gm_piano").gain(0.32)
// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@96 A@2 B C D A B C A ~@36>".pickRestart({
A: "c4", B: "~@3 d4, c4", C: "e4@2 d4 c4", D: "e4",
})).s("gm_acoustic_guitar_steel").gain(0.64)
// drums · kick
const kick = s("bd").struct(`<
~@4 A@19 B C ~@3 A@4 D@7 E F G F G F G F G C ~@3 A@19 B C ~@3 A@4 D@7 E F G F G F G F G H@7 C A@8 I J I J C ~@2 K F G
F G F G F G F G F G F G F G C ~@4
>`.pickRestart({
A: "x!2 ~@6", B: "x!2 ~@5 x", C: "x", D: "x!4", E: "x ~ x ~ x ~ x!2", F: "x!2 ~@2 x!2 ~@2", G: "x!2 ~@2 x ~ x!2",
H: "x!2 ~@2", I: "x ~@3 x!4", J: "x!8", K: "~@6 x!2",
})).gain(0.64)
// drums · rim
const rim = s("rim").struct("<~@4 A@4 ~@20 A@4 ~@20 A@4 ~@20 A@4 ~@61>".pickRestart({
A: "~@2 x!2",
})).gain(0.64)
// drums · snare
const snare = s("sd").struct(`<
~@4 A@4 B@16 ~@4 A@4 B@7 C ~ D ~ D ~ D ~ D ~@4 A@4 B@16 ~@4 A@4 B@7 C ~ D ~ D ~ D ~ D E@8 F G H@6 ~ I ~ I J K L M ~ D
~ D ~ D ~ D ~ D ~ D ~ D ~ D ~@5
>`.pickRestart({
A: "~ x ~@2", B: "~ x ~ x", C: "~@4 x ~@3 x!3 ~ x ~@3", D: "~@4 x!3 ~ x!3 ~ x ~@3", E: "x ~@3 x ~ x ~@5 x!4",
F: "~@4 x ~@3 x!2 ~@2 x ~ x ~", G: "x ~ x ~@3 x!2", H: "x!2 ~ x", I: "~ x!7", J: "x", K: "~@10 x!6", L: "x!16",
M: "x!14 ~@2",
})).gain(0.64)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@104 A B C@6 D E D E F G ~@23>".pickRestart({
A: "~@10 x!2 ~@4", B: "~@8 x!4 ~@4", C: "~@4 x!2 ~@2", D: "~@4 x!4", E: "x", F: "~ x!15", G: "x!10 ~@6",
})).gain(0.32)
// drums · low tom
const low_tom = s("lt").struct(`<
~@8 A B@5 C@2 B@7 D ~@8 E@7 F ~ G ~ G ~ G ~ G ~@8 A B@5 C@2 B@7 D ~@8 E@7 F ~ G ~ G ~ G ~ G ~@16 H I H I ~@3 J ~ G ~ G
~ G ~ G ~ G ~ G ~ G ~ G ~@5
>`.pickRestart({
A: "~@13 x!3", B: "x ~ x ~@10 x!3", C: "x ~ x ~@11 x!2", D: "x ~ x ~@5 x!2 ~@2 x ~@3", E: "x!4", F: "x!2 ~@2",
G: "~@6 x!2", H: "~@4 x!4", I: "x!8", J: "~@12 x!4",
})).gain(0.64)
// drums · open hat
const open_hat = s("oh").struct(`<
~@5 A ~ A B ~ B C B ~ A D B ~@3 B ~@8 A ~ A ~@21 A ~ A B ~ B C B ~ A D B ~@3 B ~@8 A ~ A ~@56 E F ~@3
>`.pickRestart({
A: "~@3 x ~@4", B: "~ x", C: "~@9 x ~@6", D: "~@3 x", E: "~@8 x!4 ~ x ~ x", F: "x!4 ~@12",
})).gain(0.64)
// drums · crash
const crash = s("cr").struct(`<
~@5 A ~ A B ~ B C B ~ D ~ E ~@3 B ~@2 B F ~@4 A ~ A ~@8 G H G H G H G H F ~@4 A ~ A B ~ B C B ~ D ~ E ~@3 B ~@2 B F
~@4 A ~ A ~@8 G H G H G H G H ~@16 F ~ F ~ F ~@3 G H G H G H G H G H G H G H G H F ~@4
>`.pickRestart({
A: "~@3 x ~@4", B: "~@5 x ~@2", C: "~@3 x", D: "~ x", E: "x ~@4 x ~@2", F: "x", G: "x!4", H: "x!2 ~ x",
})).gain(0.48)
// drums · ride
const ride = s("rd").struct(`<
~@39 A ~ A ~ A ~ A ~ A ~@39 A ~ A ~ A ~ A ~ A ~@25 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@5
>`.pickRestart({
A: "~@7 x",
})).gain(0.64)
stack(
electric_guitar_clean, electric_guitar_clean_2, bass, overdriven_guitar, bass_2, piano, piano_soft,
acoustic_guitar_steel, kick, rim, snare, snare_soft, low_tom, open_hat, crash, ride
)
More by blink-182
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.