0:00/0:00
// Dry County — The B-52's
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 121 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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 · recorder · "Track-2"
const recorder = note("<A B A B A B A B A B A B A B A B ~@105>".pickRestart({
A: "c5@3 ~ a#4@2 g4@4 g4@2 a#4@2 g4@2", B: "c5@3 ~ a#4@2 g4@2 a#4@2 g4@2 a#4@2 g4@2",
})).s("gm_recorder").gain(0.31)
// bass · electric bass finger · "Bass"
const bass = note(`<
A B C D A B C D A B C D A B C D E F G H E F I J K E F A K E F A K E F A K E L E F G H E F I J K E F A K E F A K E F A
K E L E F G H E F I J K E F A K E F A K E F E F G H E F M J K E F A K E F A K E F A K E L A K E L A K E L A K E L A K
E L ~
>`.pickRestart({
A: "d3 ~@2 d3 ~ d3!2 b2", B: "g2 ~ a#2 g2 ~ g2 a#2 g2", C: "c3 ~@2 c3 ~ g2 a#2 g2", D: "c3!2 ~ c3 ~ g2 a#2 c3",
E: "c3 ~@2 c3 ~ g2 a2 g2", F: "c3!2 ~ c3 ~ g2 a2 c3", G: "d3 ~@2 d3 ~ a2 b2 a2", H: "d3!2 ~ d3 ~ a2 b2 c3",
I: "g2!2 ~ g2 a2!2 d3 a2", J: "d3 ~@2 d3 ~ d3!2 c3", K: "g2@2 g2@3 ~ g2@2 ~@2 g2@2 g2@2 g2@2",
L: "c3!2 ~ c3 ~ g2 a2 g2", M: "g2@2 g2@3 ~ g2@2 a2@2 a2@3 ~ a2@2",
})).s("gm_electric_bass_finger").gain(0.31)
// bass · piano · "Precussion"
const bass_2 = note(`<
[~@2 f#2!2 ~@2 f#2!2 ~@2 f#2!2 ~@2 f#2 ~]!15
[~@2 f#2!2 ~@2 f#2!2 a#2 ~ f#2!2 ~@2 f#2 ~]
[~@2 f#2!2 ~@2 f#2!2 ~@2 f#2!2 ~@2 f#2 ~]!65
~@7
[~@2 f#2!2 ~@2 f#2!2 ~@2 f#2!2 ~@2 f#2 ~]!32
~
>`).s("gm_piano").gain(0.26)
// other · harmonica
const harmonica = note(`<
A B C@2 A B D@2 A B D@2 A B C@2 ~@7 A B C@2 A B D@2 A B D@2 A B C@2 ~@7 A B C@2 A B D@2 A B D@2 A B C@2 ~@7 A B C@2 A
B D@2 A B D@2 A ~@6 A B C@2 A B D@2 A B D@2 A B C@2 ~ B C@2 ~ B C@2 ~ B C@2 ~ B C@2 ~
>`.pickRestart({
A: "f3@15 ~", B: "d#3@15 ~", C: "c3/2", D: "[c3@31 ~]/2",
})).s("gm_harmonica").gain(0.24)
// chords · epiano1 · "E.piano"
const epiano1 = note(`<
A B C@2 D E F@2 G B C@2 H I J@2 ~@6 K L I M@2 N O P@2 Q I R@2 S T U@2 ~@6 K L I M@2 N O P@2 Q I R@2 V T U@2 ~@6 K L I
M@2 N O P@2 W I R@2 X@2 Y@2 Z AA AB AC I M@2 N O P@2 Q I R@2 S AD U@2 S AD U@2 S AD U@2 S AD U@2 S AD U@2 ~
>`.pickRestart({
A: "[d3,a3,c4]@13 ~@3", B: "[g2,g3,d#4]@3 ~", C: "[[c3,g3,a#3]@13 ~@3]/2", D: "[d3,f4]@3 ~", E: "[g2,d#4]@3 ~",
F: "[[c3,a#3]@27 ~@5]/2", G: "[d3,a3]@13 ~@3", H: "[d3,a3]@11 ~@5", I: "[g2,g3,c4,d#4]@3 ~", J: "[c3,g3,a#3]/2",
K: "[g2,f3,a#3,d4]@4 ~@4 [a2,g3,c4,e4]@5 ~@3", L: "[d3,a3,f4]@13 ~@3", M: "[[c3,g3,a#3]@27 ~@5]/2",
N: "[d3,c4,f4,a4]@11 ~@5", O: "[g3,a#3,d#4,g4]@13 ~@3", P: "[[c3,a#3,e4]@27 ~@5]/2", Q: "~ [d3,a3]@11 ~@4",
R: "[[c3,g3,a#3]@7 ~]/2", S: "[d3,c4,f4]@3 ~", T: "[g2,f3,a#3,d4]@13 ~@3", U: "[g2,c3,g3,a#3]/2",
V: "[d3,a3,c4,f4]@3 ~", W: "[d3,a3,f4]@11 ~@5", X: "[[c3,g3,c4]@27 ~@5]/2", Y: "[[d3,c4,f4,a4]@7 ~]/2",
Z: "[c3,g3,c4]@13 ~@3", AA: "[c3,e4]@3 ~", AB: "[g2,f3,a#3,d4]@5 ~@3 [a2,g3,c4,e4]@5 ~@3", AC: "[d3,a3,c4,f4]@13 ~@3",
AD: "[g2,f3,a#3]@13 ~@3", // Gm7
})).s("gm_epiano1").gain(0.41)
// chords · epiano1 · "E.piano" · soft notes
const epiano1_soft = note(`<
A B ~@2 C D E@2 F B ~@2 G ~@10 B ~@7 H ~@3 I ~@10 B ~@7 H ~@14 B ~@16 J ~@9 H ~@3 I K ~@2 I K ~@2 I K ~@2 I K ~@2 I K
~@3
>`.pickRestart({
A: "f4@13 ~@3", B: "c4@3 ~", C: "[a3,c4]@3 ~", D: "[g3,c4]@3 ~", E: "[g3@27 ~@5]/2", F: "[c4,f4]@13 ~@3",
G: "[c4,f4]@11 ~@5", H: "~ f4@11 ~@4", I: "a3@3 ~", J: "a#3@3 ~", K: "d4@13 ~@3",
})).s("gm_epiano1").gain(0.26)
// other · string ensemble 2 · "Strings"
const string_ensemble_2 = note("<~@81 A B C D E F G@3 ~@31>".pickRestart({
A: "c6@7 ~", B: "c6@15 ~", C: "f5@15 ~", D: "f5@7 ~", E: "g5@7 ~", F: "g5@3 ~", G: "[c6@5 ~@3 f5@5 ~@2 g5@33]/3",
})).s("gm_string_ensemble_2").gain(0.1)
// drums · kick
const kick = s("bd").struct(`<
A@2 B A B A B A B A B A B A B A B A B A B A@3 B A B A B A B A B A B A@2 B@3 A B A B A@3 B A B A B A B A B A B A@2 B@3
A B A B A@3 B A B A B A B A B A B A B A B A B A@2 B A B A B A B A B A B A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~
>`.pickRestart({
A: "x ~@2 x ~ x ~ x", B: "x ~@2 x ~ x ~@2",
})).gain(0.36)
// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!120 ~>").gain(0.36)
// drums · hihat
const hihat = s("hh").struct("<[x!4]!120 ~>").gain(0.36)
// drums · crash
const crash = s("cr").struct("<A ~@21 B A ~@21 B A ~@21 B A ~@18 A ~@32>".pickRestart({
A: "x", B: "x!2",
})).gain(0.2)
stack(recorder, bass, bass_2, harmonica, epiano1, epiano1_soft, string_ensemble_2, kick, snare, hihat, crash)
More by The B-52's
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.