0:00/0:00
// Centerfold — The J. Geils Band
// 117 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(117/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.
// chords · piano
const piano = note("<~@8 A B C B C D A B ~@12 E D C D C F G F ~@20 E B C B A D C H ~@38>".pickRestart({
A: "[ab4,c5,eb5]@2 ~@2 [ab4,c5,eb5]@2 ~@4 [gb4,bb4,db5] ~ [gb4,bb4,db5]@2 ~@2", // Ab Gb
B: "~@2 [ab4,db5,f5] ~ [ab4,db5,gb5] ~ [ab4,db5,f5] ~", // Db Dbsus4 Db
C: "[ab4,c5,eb5]@3 ~ [ab4,c5,eb5]@2 ~@4 [gb4,bb4,db5] ~ [gb4,bb4,db5]@2 ~@2", // Ab Gb
D: "~@4 [ab4,db5,f5]@2 ~@2 [ab4,db5,gb5]@2 ~@2 [ab4,db5,f5]@3 ~", // Db Dbsus4 Db
E: "~@4 [ab4,c5,eb5]@2 ~@4 [gb4,bb4,db5] ~ [gb4,bb4,db5]@2 ~@2", // Ab Gb
F: "~@4 [ab4,db5,f5]@3 ~ [ab4,db5,gb5]@2 ~@2 [ab4,db5,f5]@3 ~", // Db Dbsus4 Db
G: "[ab4,c5,eb5]@3 ~ [ab4,c5,eb5]@3 ~@3 [gb4,bb4,db5] ~ [gb4,bb4,db5]@2 ~@2", // Ab Gb
H: "~@4 [ab4,db5,f5]@2 ~@2 [ab4,db5,gb5]@3 ~ [ab4,db5,f5]@3 ~", // Db Dbsus4 Db
})).s("gm_piano").gain(0.46)
// bass · acoustic bass
const bass = note(`<
~@4 A B C D E F G H I B I J K L M L E B G N I B I O P Q P R S T U V M L M L E B G W I B X Y Z Q Z D AA Q Z D E B G W I
B X J K L M L E B G H I B X W AB AC@2 AD Z Q Z D Z Q Z AE Z Q Z AF Z Q Z AE Z Q Z AE AG ~
>`.pickRestart({
A: "ab1@3 ~ ab1@3 ~@2 gb1 gb1@2 gb1@2 ~@2", B: "db2@3 ~ db2@2 ~@3 db2 f1@2 gb1@2 g1@2",
C: "ab1@3 ~ ab1@3 ~@2 gb1 gb1@2 gb1@3 ~", D: "db2@4 db2@2 eb2 e2 f2 ~ bb2 ~ ab2@3 ~",
E: "ab1@3 ~ ab1@2 ~@4 gb1@2 gb1@2 ~@2", F: "db2@3 ~ db2@2 ~@3 db2 f1@2 gb1 ~ g1@2",
G: "ab1@3 ~ ab1@2 ~@4 gb1@2 gb1@3 ~", H: "db2@3 ~ db2@2 eb2 e2 f2 ~ bb2 ~ ab2@2 ~@2",
I: "ab1@3 ~ ab1@2 ~@4 gb1 ~ gb1@2 ~@2", J: "db2@3 ~ db2@2 b2 c3 db3@2 db2@2 eb2@2 e2@2",
K: "[f1,f2]@2 f2 ~ f1@2 f2 ~ f1@2 f2 ~ f1@2 f2 ~", L: "bb1@2 bb2 ~ bb1@2 bb2 ~ db2@2 db3 ~ eb2@2 eb3 ~",
M: "f1@2 f2 ~ f1@2 f2 ~ f1@2 f2 ~ f1@2 f2 ~", N: "db2@4 db2@2 eb2 e2 f2@2 [ab2,bb2] ~ ab2@3 ~",
O: "db2@3 ~ db2@2 eb2 e2 f2 ~ bb2 ~ ab2@3 ~", P: "ab1@3 ~ ab1@2 ~@3 gb1 gb1@2 gb1@2 ~@2",
Q: "db2@4 db2@2 ~@3 db2 f1@2 gb1@2 g1@2", R: "db2@4 db2 ~ eb2 e2 f2 ~ bb2 ~ ab2@3 ~",
S: "ab1@4 ab1@2 ~@3 gb1 gb1@2 gb1@2 ~@2", T: "db2@3 ~ db2@2 ~@3 db2 f1@2 gb1@2 g1 ~",
U: "ab1@3 ~ ab1@2 ~@3 gb1!2 ~ gb1@2 ~@2", V: "db2@5 ~ ab2@2 db3 ~ db2 ~ eb2 ~ e2 ~",
W: "db2@3 ~ db2@2 eb2 e2 f2@2 bb2 ~ ab2@3 ~", X: "ab1@4 ab1@2 ~@4 gb1 ~ gb1@2 ~@2",
Y: "db2@3 ~ db2@2 eb2 e2 [eb2,f2] ~ bb2 ~ ab2@3 ~", Z: "ab1@4 ab1@3 ~@2 gb1 gb1@2 gb1@3 ~",
AA: "ab1@4 ab1@4 ~ gb1 gb1@2 gb1@3 ~", AB: "ab1@2 ~@6 gb1@3 ~@5", AC: "[db2@2 ~@8 f1 gb1 ab1@20]/2",
AD: "~@6 ab2 ab1, ~@14 bb1 ~", AE: "db2@4 db2@2 eb2 e2 f2@2 bb2 ~ ab2@3 ~", AF: "db2@4 db2@2 ~@4 eb2 e2 f2@2 ~@2",
AG: "ab1",
})).s("gm_acoustic_bass").gain(0.51)
// other · drawbar organ
const drawbar_organ = note(`<
~@19 A B ~@2 C D ~@2 E ~@2 F ~ F ~ G ~@4 A B ~@2 C D ~@2 E H I J I K I L I ~@2 F ~ F ~ G ~@4 A M ~@2 N O ~@2 P K Q@2 ~
K I K I R S T U K I V I V I W X W Y W Y Z@2
>`.pickRestart({
A: "~@7 ab4", B: "c5 ~ eb5@3 ~ f5@2 ~@8", C: "f4@2 ab4 ~ ab4@2 f4 ~ bb4 c5 ab4@2 ~@2 ab4 ~", D: "c5 ~ eb5@4 f5@2 ~@8",
E: "f4@2 ab4 ~ ab4@2 f4 ~ bb4 c5 ab4@5 ~", F: "[ab5,c6,eb6]@7 ~@9", G: "[ab5,c6,eb6] ~",
H: "c5@4 eb5@3 c5 bb4 ~ ab4 ~ ab4@2 ~ ab4", I: "f4@2 ab4 ~ ab4@2 f4 ab4 bb4@2 ab4 ~ ab4@2 bb4 ~",
J: "c5@4 eb5@3 c5 bb4@2 ab4 ~ ab4@3 ab4", K: "c5@4 eb5@3 c5 bb4@2 ab4 ~ ab4@2 ~ ab4, b4 ~@15",
L: "c5@4 eb5@2 ~ c5 bb4@2 ab4 ~ ab4@2 ~ ab4, b4 ~@15", M: "c5 ~ eb5@3 ~ f5@4 ~@6",
N: "f4@2 ab4 ~ ab4@2 f4 ~ [b4,c5] ~ ab4@3 ~ ab4 ~", O: "c5 ~ eb5@3 ~ f5@3 ~@7",
P: "f4@2 ab4 ~ ab4@2 f4 ~ [ab4,b4,c5] ~ ab4@3 ~@3", Q: "[f4@2 ab4 ~ ab4@2 f4 ab4 bb4@2 f4@2 ab4@20]/2",
R: "[c5,f5]@4 eb5 ~@2 c5 [bb4,f5]@2 [ab4,eb5] ~ [ab4,eb5]@2 ~ [ab4,eb5], b4 ~@15", // F5 Bb5 Ab5
S: "[f4,eb5]@2 [ab4,db5] ~ [ab4,db5]@2 f4 [ab4,db5] bb4 ~ ab4 ~ ab4 ~ bb4 ~", // F7 Db5
T: "[c5,f5]@4 eb5 ~@2 c5 [bb4,f5]@2 [ab4,eb5] ~ [ab4,eb5]@2 ~ [ab4,eb5], [b4,eb5] ~@15", // F5 Bb5 Ab5 B
U: "[f4,eb5]@2 [ab4,db5] ~ [ab4,db5]@2 f4 [ab4,db5] [bb4,c5,db5] ~ ab4 ~ ab4@2 bb4@2", // F7 Db5 Bbm
V: "c5@3 ~ eb5@3 c5 bb4@2 ab4 ~ ab4@2 ~ ab4, b4 ~@15",
W: "[c5,c6]@4 [eb5,eb6]@3 [c5,c6] [bb4,bb5]@2 [ab4,ab5] ~ [ab4,ab5]@2 ~ [ab4,ab5], b4 ~@15", // C Eb C Bb Ab
X: "[f4,f5]@2 [ab4,ab5] ~ [ab4,ab5]@2 [f4,f5] [ab4,ab5] [bb4,bb5]@2 [ab4,ab5] ~ ab4@2 bb4@2, ~@12 ab5 ~ bb5 ~", // F Ab F Ab Bb Ab
Y: "[f4,f5]@2 [ab4,ab5] ~ [ab4,ab5]@2 [f4,f5] [ab4,ab5] [bb4,bb5]@2 [ab4,ab5] ~ [ab4,ab5]@2 [bb4,bb5] ~", // F Ab F Ab Bb Ab Bb
Z: "[c6@3 ~ eb6@2 ~ c6 bb5@2 ab5 ~ ab5@2 ~ ab5 f5@2 ab5 ~ ab5@2 f5 ab5 bb5@2 ab5 ~ ab5@2 ~@2, ab4@5 ~@3]/2",
})).s("gm_drawbar_organ").gain(0.46)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@4 A B C D E F G H I J K L ~@4 M N O P Q R S T U V W X Y Z AA AB ~@4 AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
AS AT AU AV AW AX AY AZ ~@4 BA BB BC BD BE BF BG BH BI BJ@2 ~ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC
CD CE@2
>`.pickRestart({
A: "[g4,ab4] ab4@3 [eb3,ab3,c4,eb4,ab4]@2 ~ [gb2,db3,gb3,bb3,db4] [gb3,bb3,db4,gb4] [db3,gb3,bb3,db4] [gb2,db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2, ab2@3 ~@5, [eb3,ab3,c4,eb4] ~@3", // Abmaj7 Ab Gb Ab
B: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [db3,db4,f4] [g2,db3,ab3,db4,f4] [ab3,db4] [ab3,db4,f4]@2 [g2,ab3,db4,f4]@2 [g2,db3,ab3,db4,f4] [eb3,bb3,b3,eb4], g2 ~@3 g2 ~@5 db3@4 ~@2", // Db Db5 Db Bmaj7
C: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 [d4,eb4] [gb2,db3,gb3,bb3,db4,f4] [db3,gb3,bb3,db4]!2 [db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4,gb4] ~@3, ~@7 gb4@4 ~@5, ~@2 gb2 ~", // Ab Ebmaj7 Gbmaj7 Gb
D: "[ab2,db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [ab3,db4,f4] [ab2,db3,ab3,db4,f4] [ab3,db4,f4] [ab2,db3,ab3,db4,f4]@2 [e2,ab2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] eb3, ~@4 ab2 ~@11", // Db
E: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 [db3,d3] [gb2,db3,gb3,bb3,db4] [db3,gb3,bb3,db4,gb4] [db3,gb3,bb3,db4] [gb2,db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4] ~@3, ~@9 gb4@3 ~@4", // Ab Dmaj7 Gb
F: "[db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@3 [ab2,db3,ab3,db4,f4] [e2,ab2,db3,ab3,db4,f4] [ab2,ab3,db4,f4] [ab2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] eb3, ab2 ~@15", // Db
G: "ab3@2 ab3 ~ [eb3,ab3,c4,eb4]@2 [d3,g4] [gb2,db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4] [gb2,db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4] ~@3, [ab2,ab4]@3 ~@5, [eb3,c4,eb4]@4 ~@5 gb4@3 ~@4", // Ab G5 Gb Ab Cm
H: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [g2,ab3,db4,f4] [ab2,db3,ab3,db4,f4]!2 [db3,ab3,db4,f4]@2 [g2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] a2, ~@4 e2 ~@11", // Db
I: "[eb3,ab3,c4,eb4,ab4]@4 [eb3,ab3,c4,eb4,ab4]@2 d4 [d3,db4,gb4] db4 [gb3,bb3,db4,gb4] ~ gb3 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2, ab2@6 ~ [gb2,db3,gb3,bb3]@3 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@4", // Ab Dmaj7 Gb
J: "[ab2,bb4] g2 ~@2 [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4] [g2,ab2,ab3,db4,f4] [ab2,db3,ab3,db4,f4] [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [g2,db3,ab3,db4,f4] [a2,eb3,d4,eb4], [db3,ab3,db4,f4]@4 ab2 ~@11", // Absus2 Db D Db
K: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 g4 [db3,gb3,bb3,db4] [gb2,db3,gb3,bb3,db4,gb4] [db3,gb3,bb3,db4,gb4] [db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2, ~@9 gb2@3 ~@4", // Ab Gb
L: "[db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@3 [ab3,db4,f4] [ab2,db3,ab3,db4,f4] [ab3,db4,f4] [ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] ~@3, ~@9 db3@3 ~@4", // Db
M: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 d4 [gb2,db3,gb3,bb3,db4,f4] [gb2,db3,gb3,bb3,db4,gb4]!2 [gb2,db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4] ~ g4 ~", // Ab Gbmaj7 Gb
N: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4] [ab2,db3,ab3,db4,f4] [g2,db3,ab3,db4] [ab2,db3,ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] [a2,eb3], ~@4 g2 ~@11", // Db Adim
O: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 db3 [gb2,db3,gb3,bb3,db4,gb4] [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2, ~@9 gb2@3 ~@4", // Ab Gb
P: "[db3,ab3,db4,f4]@4 [g2,db3,ab3,db4,f4]@3 [g2,db3,ab3,db4,f4] [ab3,db4,f4] [db3,ab3,db4,f4] [db3,ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] e4, ~@4 [ab4,a4] ~@11", // Db Amaj7
Q: "[eb3,ab3,c4,eb4,ab4]@4 [eb3,ab3,c4,eb4,ab4]@2 d3 [db3,gb3,bb3,db4,gb4,g4] [db3,gb3,bb3,db4,gb4] [db3,gb3,bb3,db4] [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 ~@2, ab2@6 ~ gb2@6 ~@3", // Ab Gb
R: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4]!2 [ab3,db4,f4] [e2,db3,ab3,db4,f4]@2 [e2,ab2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] [a2,eb3,d4,eb4], e2 ~@15", // Db D
S: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 ~ [d3,gb3,bb3,db4] [gb3,bb3,db4,gb4] [db3,gb3,bb3,db4] [db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2, ~@7 gb2@4 ~@5, ~@7 db3@2 ~@7", // Ab Gb
T: "[db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@3 [g2,ab3,db4,f4] [g2,db3,ab3,db4,f4] [g2,ab3,db4,f4] [e2,ab2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2", // Db
U: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 d4 [d2,d3] ~ [gb2,db3,gb3,bb3,db4] [gb2,db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4,gb4] ~@3, ~@9 gb4@3 ~@4", // Ab D Gb
V: "[db3,ab3,db4,f4]@4 [g2,db3,ab3,db4,f4]@3 [g2,db3,ab3,db4,f4] [g2,ab2,db3,ab3,db4,f4] [ab2,db3,ab3,db4] [eb2,e2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] [a2,eb4,e4]", // Db Db5 Db A
W: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 d4 ~@2 [gb3,bb3,db4] [gb2,db3,gb3,bb3,db4]@2 ~ a3 ~@2, ~@7 [db4,gb4]@2 gb4@3 ~@4, ~@4 [gb2,db3,gb3,bb3] ~ [db3,gb3,bb3,db4,gb4] ~", // Ab Gb Gb5 Gb
X: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [g2,db3,ab3,db4,f4,bb4] [ab3,db4] [g2,ab3,db4] [ab3,db4,f4]@2 [e2,db3,ab3,db4,f4,a4]@2 [e2,db3,ab3,db4,f4] [eb3,gb3,g3,eb4,e4], ~@2 db3 ~, ~@4 f4 ~@3", // Db Gm7b5 Db5 Db Amaj7 Db
Y: "~ ab4@2 ~ [ab2,eb3,ab3,c4,eb4,ab4]@2 [db3,d3,db4] [gb2,db3,gb3,bb3,db4] [db3,gb3,bb3,db4,gb4] [gb2,db3,gb3,bb3] [gb2,gb3,bb3,db4,gb4]@2 [gb2,c3,db3,gb3,bb3,db4] ~@3, [ab2,eb3,ab3,c4,eb4]@4 ~@6 db3 ~@5", // Ab Dmaj7 Gb Ab
Z: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [e2,db3,ab3] [e2,db3,ab3,db4,f4] [ab3,db4,f4] ~ ab2 [eb2,e2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4,a4,bb4] [d3,eb3], ~@5 [e2,db3,ab3,db4,f4] ~@2", // Db Dbm Db Amaj7 Ebmaj7 Db
AA: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 ~ [gb2,db3,gb3,bb3,db4]!2 [db3,gb3,bb3] [gb2,db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4] ~@3, ~@5 gb4@2 ~", // Ab Gb
AB: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4] ~ db3 [e2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4]@2 [e2,g2,db3,ab3,db4,f4] ~, g2 ~@3 ab2 ~@3 [db3,ab3,db4,f4]@2 ~@6", // Db
AC: "[eb3,ab3,c4,eb4,ab4]@4 [eb3,ab3,c4,eb4,ab4]@2 d3 [db3,gb3,bb3]!2 [gb2,db3,gb3,bb3,db4] [gb2,db3,gb3,bb3,db4]@2 ~ db3 ~@2, ab2@6 ~ [gb2,db4]@2 ~@3 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2, g4 ~@6 gb4@5 ~@4", // Ab Gb Gb5 Gb
AD: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [g2,db3,ab3,db4,f4] [db3,ab3,db4,f4] [g2,ab3,db4,f4,a4] [ab2,ab3,db4,f4]@2 [ab3,db4,f4]@2 [g2,ab2,db3,ab3,db4,f4] [eb3,eb4], ~@4 ab2 ~@5 db3@4 ~@2", // Db Eb
AE: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 g4 [gb2,db3,gb3,bb3,db4,gb4] [db3,gb3,bb3,db4]!2 [db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2, ~@2 [gb2,gb4] ~", // Ab Gb
AF: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4]!2 [ab3,db4,f4] [e2,ab2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] [a2,eb3], e2 ~@3 ab2 ~@11", // Db Adim
AG: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@3 ~ [bb3,db4] [db3,gb3,bb3,db4] [db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4]@3 g4, ~@7 [db3,d4]@2 gb2@3 ~@4, ~@5 gb4@3", // Ab Bbm Gb Dmaj7
AH: "[ab3,db4,f4]@3 ~ [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4] ~ [g2,ab3,db4] [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] [eb3,eb4], [e2,db3] ~@3 g2 ~@3 [db3,ab3,db4,f4]@2 ~@6", // Db Eb Dbm Db
AI: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@3 [e2,db3,gb3] [gb2,db3,gb3,bb3,db4] [db3,gb3,bb3] [gb2,db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2", // Ab Gb7 Gb
AJ: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [ab3,db4,f4] ~ db3 [g2,db3,ab3,db4,f4,a4,bb4]@2 [ab2,db3,ab3,db4,f4] ~@3, ab2 ~@3 db2 ~@3 [g2,db3,ab3,db4,f4]@2 ~@6", // Db Gm7b5 Db
AK: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 [d3,eb4] [gb2,db3,gb3,bb3,db4,gb4] [gb2,db3,gb3,gb4] [gb2,db3,gb3,bb3,db4] [db3,gb3,bb3,db4,gb4] db3 [gb2,db3,gb3,bb3,db4,gb4] ~@3", // Ab Ebmaj7 Gb Gb5 Gb
AL: "[ab2,db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4] [ab3,db4,f4] [g2,db3,ab3,db4,f4] [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4] [a2,d3,eb3,eb4,e4], ~@4 ab2 ~@11", // Db Asus4
AM: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4]@2 ~ [gb2,db3,gb3,bb3,db4] [db3,gb3,bb3,db4,gb4] [gb2,gb3,bb3] [gb2,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4] ~@3, ab4@6 ~@3 db3@3 ~@4", // Ab Gb
AN: "[ab2,db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@3 [db3,ab3,db4,f4] [ab2,db3,ab3,db4,f4] [db3,db4,f4] [db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4,a4]@2 [ab2,db3,ab3,db4,f4] [a2,eb3]", // Db Amaj7 Db Adim
AO: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 ~ [gb2,db3,gb3,bb3,db4] [gb2,db3,gb3,bb3,db4,gb4] [db3,gb3,bb3] [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4] ~@3, ~@9 gb2@4 ~@3", // Ab Gb
AP: "[g2,db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@3 [g2,ab3,db4,f4] ~ [ab3,db4] [db3,ab3,db4,f4]@2 [e2,ab2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] [eb3,eb4], ~@4 [db3,ab3,db4,f4] ~@3", // Db Db5 Db Eb Db
AQ: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 d3 [gb2,db3,gb3,bb3,db4]!2 [db3,gb3,bb3] [gb2,db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2", // Ab Gb
AR: "[db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@3 [g2,db3,ab3,db4,f4]!2 [g2,ab3,db4] [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [e2,db3,ab3,c4,db4,f4] eb3", // Db Dbmaj7
AS: "~ ab4@3 [ab2,eb3,ab3,c4,eb4,ab4]@2 g4 [db3,gb3,bb3] ~ [db3,gb3] [db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4] ~@3, [ab2,eb3,ab3,c4,eb4]@4 ~@3 gb2@5 ~@4, ~@4 [db3,gb3,bb3,db4] ~@3", // Ab Gb Gb5 Gb Ab Gb
AT: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4,a4] [ab2,db3,ab3,db4,f4] [db3,ab3,db4,f4] [db3,ab3,db4,f4,ab4]@2 [ab2,db3,ab3,db4,f4]@2 [e2,db3,ab3,db4,f4] [eb3,eb4,e4]", // Db Emaj7
AU: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4]@2 ~ [gb2,db3,gb3,bb3,f4] [db3,gb3,bb3]!2 [db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4] ~@3, ~@7 gb4@5 ~@4, ~@7 db4@3 ~@6, ~@8 gb2@5 ~@3", // Ab Gbmaj7 Gb
AV: "[db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@3 [g2,db3,ab3,db4,f4] [ab3,db4,f4] [db3,ab3,db4,f4] [db3,ab3,db4,f4]@2 [e2,ab2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] [d3,eb3], g2 ~@7", // Db Ebmaj7
AW: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 db3 [gb2,db3,gb3,bb3,db4] [gb2,bb3] bb3 [gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4] ~@3, b3 ~@7 [db3,gb4]@5 ~@3, ~@4 [gb3,db4] ~@3, ~@9 gb2@3 ~@4", // Ab Gb Gb5
AX: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 ~ [ab2,ab3,db4]@2 [ab2,db3,ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4] [g2,ab3,db4,f4] [g2,db3,ab3,db4,f4] eb3, ~@4 ab2 ~@2 [db3,f4]@2 ~@7", // Db Db5 Db
AY: "[ab2,eb3,ab3,c4,eb4]@4 ~ d4 ~@2 [db3,gb3,bb3,db4]!2 [gb2,db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4,gb4] ~@3, ~@2 [ab2,eb3,ab3,c4,eb4,ab4] ~ gb4@2 ~@2, ~@4 gb2 ~@3", // Ab Gb Ab
AZ: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@3 [db3,ab3,db4,f4] [ab2,ab3,db4,f4] [ab3,db4,f4] [ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4] ~@3, g2 ~@3 [g2,ab2] ~@3 db3@4 ~@4, ~@9 ab2@3 ~@4", // Db Abmaj7
BA: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 g3 ~@3 [gb2,db3,gb3,bb3,db4]@2 [gb2,db3,gb3,bb3,db4] ~@3, ~@5 gb4@2 ~", // Ab Gb
BB: "[db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4] [db3,ab3,db4,f4] [g2,db3,ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4]@2 [g2,db3,ab3,db4,f4] ~, [g2,ab2] ~@15", // Db Abmaj7
BC: "[eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 ~@3 [db3,gb3,bb3] [gb2,db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4] ~ ab4 ~, ab2 ~@7 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@6", // Ab Gb
BD: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [g2,db3,ab3,db4,f4] [db3,ab3,db4,f4] [ab2,db3,ab3,db4,f4]@2 [g2,db3,ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4] [e2,a2,d3,eb3,ab3]", // Db
BE: "[eb3,ab3,c4,eb4,ab4]@4 [eb3,ab3,c4,eb4,ab4]@2 g3 ~@3 [gb2,db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@2, ab2@3 ~@5", // Ab Gb
BF: "[db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@4 [e2,ab2,db3,ab3,db4,f4] [g2,ab3,db4,f4] [ab2,db3,ab3,db4,f4]@2 [g2,db3,ab3,db4,f4]@2 [ab3,db4,f4] [eb3,eb4]", // Db Eb
BG: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 ~@2 [gb3,bb3,db4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4] ~@3, ~@4 gb2@3 ~, ~@4 [db3,gb4] ~@3", // Ab Gb Gb5
BH: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [db3,ab3,db4,f4] [g2,db3,ab3,db4,f4] [g2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] f4, ~@4 g2 ~@11", // Db
BI: "[ab2,eb3,ab3,c4,eb4,ab4]@3 ~@5 [gb2,db3,gb3,bb3,db4,gb4]@2 ~@6", // Ab Gb
BJ: "[[ab2,db3,ab3,db4,f4]@2 ~@11 ab2@19, ~@3 [eb3,ab3,c4,eb4,ab4]@5]/2", // Db Ab
BK: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 ~@3 [gb2,db3,gb3,bb3,db4,gb4] [gb2,db3,gb3,bb3,db4,gb4]@2 ~ [a3,bb3] ~@2, ~@6 [gb2,db3,gb3,bb3,db4,gb4] ~", // Ab Gb Bbmaj7 Gb
BL: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [e2,db3,ab3,db4,f4] [ab3,db4,f4] [e2,db3,ab3,db4,d4,f4]@2 [e2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] [eb3,eb4]", // Db Eb
BM: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 [g3,g4] ~ [gb3,bb3]!2 [db3,gb3,bb3,db4,gb4]@2 ~ gb3 ~@2, ~@4 gb2@2 [gb2,db3,gb3,a3,bb3,db4,gb4] ~, ~@4 [db3,db4,gb4] ~@3", // Ab G Gb Gb5
BN: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [e2,db3,ab3,db4,f4] [ab3,db4,f4] [ab2,db3,ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] [eb3,eb4], ab2 ~@15", // Db Eb
BO: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 db3!2 [gb3,bb3,db4,gb4] [gb3,bb3,db4] [db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4] ~@3, ~@2 gb2 ~, ~@4 db3 ~@3", // Ab Gb
BP: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4] [ab3,db4,f4] [g2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] [a2,eb3,eb4], ~@4 ab2 ~@11", // Db Adim
BQ: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 d3 db3 ~ [gb3,bb3,db4] [gb2,db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4] ~@3, ~@4 [gb2,db3,gb3,bb3,db4,gb4] ~@3", // Ab Gb
BR: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [ab3,db4,f4,ab4] [ab3,db4,f4] [ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [ab3,db4,f4,g4] [a2,eb3,ab3,eb4,ab4], ab4 ~@3 [g2,g4] ~@3 db3@4 g4 ~@3", // Db Ab G
BS: "[eb3,ab3,c4,eb4,ab4]@4 [eb3,ab3,c4,eb4,ab4]@2 ~@2 [db3,gb3,bb3,db4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4] ~@3, ab2@6 ~@2 gb2@5 ~@3, ~@4 gb4 ~@3", // Ab Gb
BT: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [ab3,db4,f4]!2 [ab3,db4,f4]@2 [db3,ab3,db4,f4,ab4]@2 [db3,ab3,db4,f4] [a2,eb4,e4], e2 ~@7 db3@4 ~@4", // Db A
BU: "[ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4,ab4]@2 ~@2 [gb2,db3,gb3,bb3,db4,gb4] [db3,gb3,bb3,db4,gb4] [db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4]@2 ~@2, ab4 ~@4 [gb2,gb4]@2 ~", // Ab Gb
BV: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [c3,ab3,db4,f4] [db3,ab3,db4,f4] [db3,ab3,db4,f4]@2 [db3,ab3,db4,f4]@2 [e2,ab2,db3,ab3,db4,f4] eb3, ab2 ~@7, e4 ~@15", // Db Dbmaj7 Db
BW: "[eb3,ab3,c4,eb4]@4 [eb3,ab3,c4,eb4,ab4] ~@3 [gb3,bb3,db4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4] ~@3, ab2@6 ~@2 gb2@5 ~@3, ab4 ~@7 [db3,gb4]@2 ~@6", // Ab Gb Gb5
BX: "[db3,ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [ab3,db4,f4]!2 [ab3,db4,f4]@2 [ab3,db4,f4]@2 [db3,ab3,db4,f4,bb4] ~, [ab2,bb4] ~@7 db3@6 ~@2, ~@4 ab2 ~@3", // Db Bbm7 Absus2
BY: "[ab2,eb3,ab3,c4,eb4,ab4]@4 [eb3,ab3,c4,eb4,ab4] ~@3 [db3,db4] [gb2,db3,gb3,bb3] [gb2,db3,gb3,bb3]@2 [gb2,db3,gb3,bb3,db4]@2 ~@2", // Ab Db Gb
BZ: "[ab3,db4,f4]@4 [db3,ab3,db4,f4]@4 [db3,ab3,db4,f4] [ab2,db3,ab3,db4] [db3,ab3,db4,f4]@2 [g2,db3,ab3,db4,f4]@2 [db3,ab3,db4,f4] eb3", // Db Db5 Db
CA: "[b3,e4,g4,ab4] c4 ~@2 [ab2,eb3,ab3,c4,eb4,ab4]@2 d4 ~ [gb3,bb3,db4,gb4]!2 [gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 c4 ~, [ab2,eb3,ab3]@4 ~@4 [gb2,db3]@5 ~@3", // E Ab Gb Ab5 Gb5
CB: "[ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4]@4 [e2,ab2,ab3,db4,f4] [ab3,db4,f4] [ab3,db4,f4]@2 [g2,db3,ab3,db4]@2 [e2,g2,db3,ab3,db4,f4] ~, ~@2 db3 ~", // Db
CC: "[eb3,ab3,c4,eb4,ab4]@4 [eb3,ab3,c4,eb4,ab4]@2 d3 ~ [bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4]@2 [gb2,db3,gb3,bb3,db4,gb4] ~@3, ab2@3 ~ gb2@2 ~@2, ~@4 [db3,gb3] ~@3", // Ab Gb Gb5
CD: "[db3,ab3,db4,f4]@4 [g2,db3,ab3,db4,f4]@4 [ab2,db3,ab3,db4,f4] [db4,f4] [db3,ab3,db4,f4]@2 [f2,db3,ab3,db4,f4]@2 [ab2,db3,ab3,db4,f4] ~", // Db
CE: "[~ ab2@17 ~@14, [eb3,ab3,c4,eb4,ab4] ~]/2", // Ab
})).s("gm_electric_guitar_clean").gain(0.46)
// other · lead 2 sawtooth
const lead_2_sawtooth = note(`<
~@17 A B A B C ~@5 D ~@9 A B A B C ~@5 E@2 ~@10 F@2 G@2 H I J B A B C ~@5 K L ~@4 M N M O M N M O M N M O M N M O M N
M O ~
>`.pickRestart({
A: "f4", B: "bb4@2 db5 eb5", C: "ab4", D: "c6@3 ~ eb6@3 c6 bb5@2 ab5 ~ ab5@4",
E: "[c6@4 eb6@3 c6 bb5@2 ab5 ~ ab5 bb5 ab5@5 ~@13, ab5 ~@3, bb5 ~@31]/2", F: "[ab5@3 ab5@5 b5@3 gb5@3 ab5@17 ~]/2",
G: "[~@10 b5 [b5,db6] ab5@2 ab6@18]/2", H: "~@3 ab6 bb6@2 ~@2", I: "~@6 db7@4 gb7@3 b6@3", J: "[f4,ab6]",
K: "bb5 c6@3 eb6@3 c6 bb5@2 ab5 ~ ab5@4", L: "~@8 bb5@2 ab5 ~ ab5@4", M: "ab4 gb4", N: "db5@5 ab4 bb4@2",
O: "db5@8 f5 ~ f5 gb5 f5@4, ~@9 gb5@2 ~@5",
})).s("gm_lead_2_sawtooth").gain(0.51)
// drums · kick
const kick = s("bd").struct(`<
~@4 A@3 B A@7 B C D@2 E A@15 B C D@2 E A@11 B A@3 B A@7 B C D@2 E A@8 F G ~@2 A@3 B A ~@17
>`.pickRestart({
A: "x ~@4 x ~@2", B: "x ~@4 x ~ x", C: "x ~@2 x ~ x ~ x", D: "~ x ~ x ~ x ~ x", E: "~ x ~ x ~@4", F: "x!2",
G: "x ~@4 x!2 ~",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
~@3 A B@3 C B@7 D B@3 C B@7 C B@7 E B@3 F B@7 C B@3 C B@3 C B@7 G B@3 H B@7 C I J ~ K B@3 C B ~@17
>`.pickRestart({
A: "~@6 x!3 ~ x ~ x!4", B: "~ x ~ x", C: "~@4 x ~@3 x!2 ~@2 x ~ x!2", D: "~@4 x ~@3 x!2 ~@2 x!2 ~@2",
E: "~@4 x ~@3 x!8", F: "~@4 x ~@3 x ~ x ~ x!3 ~", G: "~@4 x ~@7 x ~ x!2", H: "~@4 x ~@3 x ~ x ~ x!4", I: "x!2",
J: "x ~@5 x!3 ~ x ~ x ~@3", K: "~@8 x!8",
})).gain(0.8)
// drums · clap
const clap = s("cp").struct("<A@16 ~@4 A@16 ~@4 A@24 ~@4 A@9 B ~@2 A@4 B ~@17>".pickRestart({
A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.8)
// drums · low tom
const low_tom = s("lt").struct("<~@77 [~@5 x!2 ~] ~@24>").gain(0.8)
// drums · hihat
const hihat = s("hh").struct("<~@4 A@12 B@3 C A@16 B@3 C A@24 B@3 C A@8 ~@3 D A@4 E ~@17>".pickRestart({
A: "x!8", B: "x!4", C: "x!3 ~", D: "x!2 ~@2", E: "x!7 ~",
})).gain(0.8)
// … 25 more lines
More by The J. Geils Band
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.