0:00/0:00
// Freeze-Frame — The J. Geils Band
// 200 bpm, 4/4, key C major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 174 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(200/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 · distortion guitar · "guitar"
const distortion_guitar = note("<~ A ~ B C D ~ E C ~@130 A ~ B C D ~ E C ~@27>".pickRestart({
A: "[g3,c4,d4] ~@7", B: "[f3,g3,a#3] ~@7", C: "[f3,c4] ~@7", D: "[g3,c4] ~@7", E: "[f3,a#3] ~@7",
})).s("gm_distortion_guitar").gain(0.42)
// bass · electric bass finger · "bass"
const bass = note(`<
~ A ~ B C A ~ B C D E F G F H F I F J F K F L F L F L F H F M F N O@2 P Q R S R S F J F K F L F L F L F H F M F N O@2
P Q R S R S T U V W X Y F J F K F L F L F L F H F M F N O@2 P Q R S R S T U V W X Y ~@8 D E F G F H F I D E F G F H F
I O@2 P Q R S R S T U V W X Y A ~ B C A ~ B C Z AA AB AC AD AE AF AG AD AH AB AI AJ AK AB AL AM AH AB AN AO AP AB AQ
AR@3
>`.pickRestart({
A: "c2@3 ~@13", B: "a#1@3 ~@13", C: "f1@3 ~@13", D: "c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~",
E: "a#1@3 ~ a#1@3 ~ f1@2 ~@2 f1@3 ~", F: "c2 ~ c2 ~ c2 ~ c2 ~", G: "a#1@2 ~@2 a#1@3 ~ f1@2 ~@2 f1@2 ~@2",
H: "a#1 ~ a#1 ~ f1 ~ f1 ~, ~@4 g#1 ~@11", I: "a#1@3 ~ a#1@3 ~ f1@2 ~@2 f1@3 ~, ~@4 g#1 ~@11",
J: "a#1@3 ~ a#1@3 ~ f1@3 ~ f1@3 ~, ~@4 g#1 ~@11", K: "a#1@2 ~@2 a#1@3 ~ f1@2 ~@2 f1@3 ~, ~@4 g#1 ~@11",
L: "a#1@2 ~@2 a#1@2 ~@2 f1@2 ~@2 f1@3 ~", M: "a#1@2 ~@2 a#1@2 ~@2 f1@2 ~@2 f1@3 ~, g#1 ~@3 g#1 ~@11",
N: "a#1 ~ a#1 ~ f1 ~ f1 ~", O: "g1 ~ g1 ~ g1 ~ g1 ~", P: "f1 ~ f1 ~ f1 ~ f1 ~",
Q: "f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@3 ~", R: "g1 ~ g1 ~ g#1 ~ g#1 ~", S: "a1 ~ a1 ~ g#1 ~ g#1 ~", T: "c3@3 ~ c3@4 ~@8",
U: "c3@2 ~@2 c3@3 ~@9", V: "c3@2 ~@2 c3@3 ~@9, b2 ~@15", W: "c3@2 ~@2 c3@3 ~@9, ~@4 g#2 ~@11", X: "g2@7 ~ g2@7 ~",
Y: "g2@7 ~ g2@4 ~@4", Z: "c2@5 ~@3 g1@4 ~@4", AA: "c2@3 ~@4 g1@8 ~", AB: "a#1@3 ~@5 a#1@5 ~@3",
AC: "~ f1@5 ~@2 f1@7 ~, ~ g1 ~@14", AD: "c2@3 ~@5 g1@3 ~@5", AE: "~ c2@3 ~@4 g1@6 ~@2", AF: "a#1@3 ~@6 a#1@5 ~@2",
AG: "f1@2 ~@2 f1@3 ~", AH: "c2@2 ~@2 g1@3 ~", AI: "f1@3 ~@5 f1@5 ~@3", AJ: "c2@3 ~@5 g1@4 ~@4, a#1 ~@15",
AK: "c2@3 ~@5 g1@6 ~@2", AL: "~ f1@3 ~@4 f1@6 ~@2", AM: "c2@3 ~@6 g1@4 ~@3", AN: "f1@5 ~@3 f1@7 ~",
AO: "c2@3 ~@5 g1@5 ~@3", AP: "c2@4 ~@4 g1@7 ~", AQ: "f1@4 ~@4 f1@7 ~", AR: "[c2@15 ~]/3",
})).s("gm_electric_bass_finger").gain(0.54)
// chords · rock organ · "organ 1"
const rock_organ = note(`<
~ A B C B D E@2 F G H G H G I G J G K G K G K G K G K G L G M G M N@2 O@2 P Q P R G K G K G K G K G K G L G M G M N@2
O@2 P Q P R S@3 T ~@2 G K G K G K G K G K G L G M G M N@2 O@2 P Q P R S@3 T ~@2 U V W X Y Z W AA G H G H G I G J G H G
H G I G J N@2 O@2 P Q P R S@3 T ~@2 A B C B D E@2 F AB@2 AC AD AE@2 AF AG@3 AH@2 AE@2 AI AJ AE@2 AK AJ AE@2 AL AM@3 ~
>`.pickRestart({
A: "[g5,c6] ~ c6 ~ c6 ~ c6 ~", B: "c6@2 ~@2 a5@2 ~@2 a#5@4 a5@3 a#5, ~@3 g5@2 ~@11", C: "c6 ~ c6 ~ c6 ~ c6 ~",
D: "~ c6@2 ~ [g5,c6]@2 ~@2 [g5,c6]@2 ~@2 [g5,c6]@2 ~@2", // C5
E: "[[g5,c6]@2 ~ a#5 a5@2 ~@2 [f5,a#5]@3 ~ a5@3 ~ [g5,c6]@2 ~@2 [g5,c6]@2 ~@2 [g5,c6]@2 ~@2 [g5,c6]@2 ~@2, ~@3 g5@2 ~@7 f5@2 ~ a#5@2 ~@15]/2", // C5 A#5 C5
F: "[g5,c6]@2 ~ a#5 a5@2 ~@2 [f5,a#5]@3 ~ a5@3 a#5, ~@3 g5@2 ~@7 f5@2 ~@2", // C5 A#5
G: "[g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~", // C5
H: "[g5,c6]@2 ~ a#5 a5@2 ~@2 [f5,a#5]@4 a5@3 a#5, ~@3 g5@2 ~@7 f5@2 ~@2", // C5 A#5
I: "[g5,c6]@2 ~ [g5,a#5] a5@2 ~@2 [f5,a#5]@4 a5@4, ~@6 f5 ~", // C5 Gm A#5
J: "[g5,c6]@2 ~ a#5 a5@2 ~@2 [f5,a#5]@3 ~ a5@4, ~@3 g5@2 ~@7 f5@2 ~@2", // C5 A#5
K: "[g5,c6]@2 ~ a#5 a5@2 ~@2 [f5,a#5]@3 ~ [f5,a5]@3 ~, ~@3 g5@2 ~@11", // C5 A#5 F
L: "[g5,c6]@2 ~ a#5 a5@2 ~@2 [f5,a#5]@3 ~ [f5,a5]@2 ~@2, ~@3 g5@2 ~@11", // C5 A#5 F
M: "[g5,c6]@2 ~ a#5 a5@2 ~@2 [f5,a#5]@3 ~ [f5,a5]@2 ~@2", N: "[b5@23 a5@5 g5@4, [g4,b4,d5]@31 ~]/2",
O: "[[f4,a4,c5,a5]@31 ~]/2", P: "[g4,b5] [g#4,c6]", Q: "[a4,c#6] [g#4,c6]", R: "[a4,c#6]@7 ~ [g#4,c6]@7 ~",
S: "[g4,c5,e5] ~ [g4,c5,e5] ~@5", T: "[g4,e5] ~ [g4,c5,e5] ~@5, c5 ~@15",
U: "~ [g5,a#5,c6] ~@2 [g5,a#5,c6] ~@6 [g5,a#5,c6] ~@4", V: "[g5,a#5,c6] ~@5 [g5,a#5,c6]@4 ~@2 [g5,a#5,c6] ~@3",
W: "[g5,a#5,c6] ~@3 [g5,a#5,c6] ~@5 [g5,a#5,c6] ~@5", X: "[g5,a#5,c6] ~@5 [g5,a#5,c6]@4 ~@3 [g5,a#5,c6] ~@2",
Y: "[g5,a#5,c6] ~@3 [g5,a#5,c6] ~@5 [g5,a#5,c6] ~@4 a#5", Z: "[g5,c6] ~@5 [g5,a#5,c6] ~@4 [g5,a#5,c6]@4 ~",
AA: "[g5,a#5,c6] ~@5 [g5,a#5,c6] ~@4 [g5,a#5,c6]@4 ~", AB: "[[g5,c6,e6]@15 ~]/2",
AC: "[f5,a#5,d6]@6 ~ [f5,a#5,d6]@8 ~", AD: "[f5,a5,c6]@15 ~", AE: "[[g5,c6,e6]@31 ~]/2",
AF: "[f5,a#5,d6]@7 ~ [f5,a#5,d6]@7 ~, ~@4 e6 ~@3", // A#
AG: "[[f5,a5,c6]@8 [f5,a5,c6]@6 ~@2 [g5,c6]@31 ~, ~@15 e6@31 ~@2, ~@16 d6 ~@31]/3", // F C5
AH: "[[f5,a#5,d6]@7 ~ [f5,a#5,d6]@7 ~ [a5,c6]@7 ~ [f5,a5,c6]@7 ~, ~@15 f5@8 ~@9]/2", // A# Am F
AI: "[f5,a#5,d6]@7 ~ [f5,a#5,d6]@7 ~", AJ: "[f5,a5,c6]@7 ~ [f5,a5,c6]@7 ~",
AK: "~ a#5@6 ~ [f5,a#5,d6]@7 ~, [f5,d6]@3 ~@5", AL: "[f5,a#5,d6]@7 ~@2 d6@6 ~, ~@8 [f5,a#5]@7 ~",
AM: "[[f5,a5,c6]@7 ~ [f5,a5,c6]@6 ~@2 c6@32, ~@15 [g5,a#5]@32 ~, ~@4 d6 ~@7]/3", // F Gm
})).s("gm_rock_organ").gain(0.3)
// chords · piano
const piano = note(`<
~ A ~ B C A ~ D E F G H@2 I J K L M N O P Q@2 R S T U V W X Y Z AA AB@2 AC AD AE AF AG@2 M N O P Q@2 R S T U V W X Y Z
AA AB@2 AC AD AE AF AG@2 AH AI AJ AK AL AM M N O P Q@2 R S T U V W X Y Z AA AB@2 AC AD AE AF AG@2 AH AI AJ AK AL AM
~@8 F G H@2 I J K L F G H@2 I J K L AB@2 AC AD AE AF AG@2 AH AI AJ AK AL AM A ~ B C A ~ D E AN AO AP AQ AR@2 AS AT AU
AV AW AX AY AZ BA BB BC@2 BD BE BF@2 BG BH BI ~@2
>`.pickRestart({
A: "[g4,c5,e5] ~@7", B: "[f4,a#4,d5]@3 ~@13", C: "[f4,a4,c5] ~@7", D: "[f4,a#4,d5] ~@7",
E: "[f4,a4] ~@7 c7 ~ [e6,f6] [c6,d6] [g5,a5,b5] [e5,f5] [b4,c5,d5] [g4,a4], c5 ~@7", // F Fmaj7 Csus2 G Fmaj7 Bm Gsus2
F: "~@4 [g4,c5,e5] ~@6 [g4,c5,e5]@5", G: "~ [a#4,d5] ~@2 [f4,a#4,d5]@2 ~@2 [f4,a4,c5]@2 ~@2 [f4,a4,c5]@3 ~",
H: "[~@3 e5@2 ~@3 [g4,c5,e5]@6 ~ [f4,a#4,d5]@6 ~@2 [f4,a4,c5]@6 ~@3, ~@3 c5 ~@28]/2", // C A# F
I: "~@3 [c5,e5] ~@4 [g4,c5,e5]@6 ~@2", J: "[f4,a#4] ~@3 [f4,a#4,d5]@2 ~@2 [f4,a4,c5]@2 ~@2 [f4,a4,c5]@2 ~@2",
K: "~@3 [g4,c5,e5] ~@4 [g4,c5,e5]@6 ~@2", L: "[f4,a#4,d5]@5 ~@2 [f4,a4,c5]@7 ~@2",
M: "~@3 [g4,c5,e5] ~@4 e5@2 ~@6, ~@8 c5 ~@7", N: "[a#4,d5] ~@6 [a4,c5]@5 ~@4", O: "~@3 [c5,e5] ~@4 [c5,e5] ~@7",
P: "[a#4,d5] ~@4 [a#4,d5] ~@2 a4 ~@7", Q: "[~@3 [c5,e5] ~@4 [c5,e5] ~@6 [a#4,d5]@6 ~ a4 ~@6 [a4,c5] ~@2]/2",
R: "~@4 [c5,e5] ~@3 [c5,e5] ~@6 [a#4,d5]", S: "~@4 [a#4,d5] ~@3 [f4,a4,c5]@2 ~@6",
T: "~@3 [c5,e5] ~@4 [c5,e5]@5 ~ a#4 ~", U: "~@4 [a#4,d5] ~@3 a4 ~@3 [f4,a4] ~@3, ~@6 c5 ~",
V: "~@3 [c5,e5] ~@4 [c5,e5] ~@3 [c5,d#5,e5] ~@3", W: "~@3 [f4,a#4,d5] ~@4 [f4,c5]@2 ~@6, ~@8 a4 ~@7",
X: "~@12 [c5,e5] ~@3", Y: "~@3 d5@2 ~@3 [f4,a4] ~@7, ~@3 a#4 ~@4 c5@2 ~@6", Z: "~@3 [c5,e5] ~@12",
AA: "[c5,e5] ~@3 [a#4,d5] ~@3 [a4,c5] ~@3 [f4,a4,c5] ~@3", // C A# Am F
AB: "[[g4,b4] ~@6 [g4,b4] ~@5 [g4,b4,d5]@6 [g4,b4] ~@4 [g4,b4]@6 ~@2, d5@2 ~@5 d5@2 ~@15 d5@8]/2", // G
AC: "~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2", AD: "[f4,a4,c5]@3 ~@4 [f4,a4,c5]@5 ~@4", AE: "b5@3 ~ c6@3 ~",
AF: "c#6@3 ~ c6@3 ~", AG: "[b5@6 ~@2 c6@5 ~@2 c#6@5 ~@7 c5 b4 [f4,g4] ~@2]/2", AH: "c5 ~ [g4,c5,e5] ~@5",
AI: "[g4,c5,e5] ~ [g4,c5,e5] ~@5", AJ: "[g4,c5]@2 ~@2 [g4,c5] ~@11, e5 ~@3 e5@2 ~@10",
AK: "[g4,c5,e5] ~@3 [g4,c5,e5]@2 ~@10", AL: "~@3 [g4,b4,d5] ~@4 [g4,b4,d5]@2 ~@6",
AM: "~@2 [g4,b4] ~@5 [b4,d5]@2 ~@6, ~@2 d5@2 ~@4 g4 ~@7", // G Bm
AN: "~@2 [g4,c5,e5] ~@5 [g4,c5,e5]@5 ~ [g4,c5]@2, c3@14 e5 ~", // C C5
AO: "~@3 [g4,e5]@2 ~@3 [g4,e5]@2 ~@2 [g4,c5,e5]@2 ~@2, c3@7 ~, ~@3 c5 ~@4 c5 ~@7", // C
AP: "~@2 [f4,a#4] ~@5 [f4,a#4,d5]@2 ~@2 [f4,a#4]@4, a#2, ~ d5 ~@4 d5 ~", // A#5 A# A#5
AQ: "~@2 [f4,c5]@2 ~@4 [f4,a4,c5]@2 ~@2 [f4,a4,c5]@3 ~, f2@15 ~, ~@2 a4 ~@13", // F5 F
AR: "[~@2 [g4,c5,e5] ~@5 [g4,c5,e5]@5 ~@6 [g4,c5,e5]@2 ~@3 [g4,e5]@2 ~@2 [g4,c5,e5]@3 ~, c3@15 [g4,c5,e5]@2 ~@7 c5 ~@7, ~@16 c3@15 ~]/2", // C
AS: "~@2 [f4,a#4,d5] ~@5 [f4,a#4,d5] ~@3 [f4,a#4]@4, a#2, ~@6 d5 ~", // A# A#5
AT: "~@2 [f4,a4,c5]@2 ~@3 [f4,a4,c5]@2 ~@3 [f4,a4,c5]@3 ~, f2@7 ~", // F
AU: "~@2 [g4,c5,e5] ~@5 [g4,c5,e5]@5 ~ [g4,e5] ~, c3@7 c5", // C
AV: "~@2 [g4,c5,e5] ~@5 [g4,c5,e5] ~@3 [g4,c5,e5]@3 ~, c3@15 ~", // C
AW: "~@2 [f4,a#4,d5] ~@5 [a#4,d5]@2 ~@2 [f4,a#4]@4, a#2@15 ~, ~@8 f4 ~@3 d5@2 ~@2", // A# A#5
AX: "~@2 [f4,a4,c5] ~@4 [f4,a4,c5] ~@4 [f4,a4,c5]@3 ~, f2@7 ~", // F
AY: "~ [g4,c5,e5] ~@2 [g4,c5,e5]@2 ~ [g4,c5,e5], c3@7 ~", // C
AZ: "~@2 [g4,c5,e5]@2 ~@3 [g4,c5,e5]@2 ~@3 [g4,c5,e5]@3 ~, c3@15 ~", // C
BA: "~@2 [f4,a#4,d5]@2 ~@4 [f4,a#4] ~@3 [f4,a#4,d5]@4, a#2, ~@4 d5 ~@3", // A# A#5 A#
BB: "~@2 [f4,a4,c5]@2 ~@3 [f4,a4,c5]@2 ~@3 [f4,a4,c5]@3 ~, f2@13 ~@3", // F
BC: "[~@2 [c5,e5] ~@5 [g4,c5,e5]@5 ~@6 [g4,c5,e5]@2 ~@3 [g4,c5,e5]@2 ~@2 [g4,c5,e5]@3 ~, c3@15 ~ c3@15 ~, ~@2 g4@2 ~@11 [g4,c5,e5]@2 ~@15]/2", // C
BD: "~ [f4,a#4,d5] ~@2 [a#4,d5] ~ [f4,a#4,d5]@2, a#2, ~@8 f4 ~@7", // A#
BE: "~@2 [f4,c5]@2 ~@3 [f4,a4,c5]@2 ~@3 [f4,a4,c5]@3 ~, f2@15 ~, ~@2 a4 ~@13", // F5 F
BF: "[~@2 [c5,d#5,e5] ~@5 [g4,c5,e5]@6 ~@5 [g4,c5,e5]@3 ~@2 [g4,c5,e5]@2 ~@2 [g4,c5,e5]@3 ~, c3@15 ~ c3@15 ~, ~@2 g4@2 ~@11 [g4,c5,e5]@2 ~@15]/2", // C
BG: "~ a#4 [f4,d5] ~@5 [a#4,d5]@2 ~@2 [f4,a#4]@4, a#2@15 ~, ~@2 a#4@2 ~@4 f4 ~@3 d5@2 ~@2", // Dm A# A#5
BH: "~@2 [f4,a4,c5]@2 ~@3 [f4,a4,c5]@2 ~@3 [f4,a4,c5]@2 ~@2, f2@7 ~", BI: "[a#4,c5]@13 ~@3, g4@11 ~@5",
})).s("gm_piano").gain(0.15).pan(0.7)
// chords · piano · soft notes
const piano_soft = note(`<
~@8 A ~ B C ~ C D ~@2 E F G H I@2 J K L M N ~ O P C Q R S T ~@4 U E F G H I@2 J K L M N ~ O P C Q R S T ~@4 U ~@6 E F
G H I@2 J K L M N ~ O P C Q R S T ~@4 U ~@15 B C ~ C D ~@3 B C ~ C D ~@2 R S T ~@4 U ~@13 A ~@27
>`.pickRestart({
A: "~@9 [a6,b6] g6 ~@5", B: "~ f4 ~@14", C: "~@3 g4 ~@12", D: "[c5,d5] ~@15", E: "~@8 g4 ~@7", F: "f4@2 ~@5 f4@5 ~@4",
G: "~@3 g4 ~@4 g4 ~@7", H: "f4 ~@4 f4 ~@2 [f4,c5] ~@7", I: "[~@3 g4 ~@4 g4@2 ~@5 f4@6 ~ [f4,c5] ~@6 f4 ~@2]/2",
J: "~@4 g4 ~@3 g4 ~@6 f4", K: "~@4 [f4,c#5] ~@11", L: "~@3 g4 ~@4 g4@5 ~ [f4,d5] ~", M: "~@4 f4 ~@3 [f4,c5] ~@7",
N: "~@3 g4 ~@4 g4 ~@3 g4 ~@3", O: "~@12 g4 ~@3", P: "~@3 g4@2 ~@11", Q: "g4 ~@3 g4 ~@3 f4 ~@7", R: "~@13 e5 ~@2",
S: "~@3 d5 ~@12", T: "[g4,b4] ~@15", U: "~@6 [b6,c7] [g6,a6] [d6,e6,f6] [a5,b5,c6] [e5,f5,g5] d5 a4 ~@3",
})).s("gm_piano").gain(0.1).pan(0.7)
// chords · brass section · "brass li"
const brass_section = note(`<
~ A ~ B C D ~ B C E F G H I J K L M ~@15 N O P Q R S T U V W X Y Z Y AA AB AA Y AC AD AE AF AE Y N O P Q R S T U AE AG
AH AI ~@2 M ~@15 N O P Q R S T U AE AG AH AI ~@2 AJ@6 AK@2 E F G H I J K L E F G H I J K L N O P Q R S T U AE AG AH AI
~@2 A ~ B C D ~ B C AL@2 AM AN AO AP AQ AR@3 AS AT AU@2 AV AW AX AY AZ BA BB BC BD BE ~@3
>`.pickRestart({
A: "[g3,c4,e4,g4,c5,e5] ~@7", B: "[f4,a#4,d5] ~@7", C: "[f4,a4,c5] ~@7", D: "[g4,c5,e5] ~@7", E: "c5@7 g4",
F: "a4@2 ~@2 g4@2 ~@2 f4@3 ~ c4@2 ~@2", G: "g3@2 a3@2 c4 ~@3 g3@3 a3 c4 ~@3", H: "~@2 c4@2 a3 ~@3 g3@2 ~@2 c3@2 ~@2",
I: "~@4 c5@10 a4 ~", J: "c5@3 ~@3 c5@2 ~@6 [a#4,c5] ~", K: "~ a#4 a4 ~ g4 ~ f4 ~, ~@2 c5 ~@13",
L: "[d#5,f5] ~ [d#5,f5] ~ c5@2 ~@2 a#4@4 g4 ~@3", M: "[g4,c5]@3 ~@13",
N: "[g4,b4,d5] ~ [g4,b4,d5] ~@3 [g4,d5] ~, ~@12 b4 ~@3", O: "~@4 [g4,b4,d5]@3 ~",
P: "[f4,c5]@2 ~@2 [f4,a4,c5]@2 ~@6 [a4,c5] ~@3, a4 ~@11 f4@2 ~@2", Q: "~@4 [f4,a4,c5]@11 ~",
R: "[g4,b4]@7 ~ [g#4,c5]@7 ~, ~@8 a#4 ~@7", S: "[a4,c#5]@7 ~ [g#4,c5]@7 ~, ~@8 c#5 ~@7",
T: "[g4,b4]@7 ~ [g#4,c5]@7 ~, g#4 ~@15", U: "[a4,c#5]@7 ~ c5@7 ~, ~@8 g#4@5 ~@3",
V: "[g4,e5]@2 ~@2 [g4,c5,e5]@3 ~@9, c5 ~@15", W: "~@8 [f4,a#4,d5]@2 ~@2 [f4,a4,c5]@3 ~",
X: "[b4,c5,e5] ~@3 [g4,c5,e5]@2 ~@10, g4 ~@7", Y: "~@4 [f4,a#4,d5] ~ [f4,a4,c5] ~",
Z: "[f4,g4,b4,c5,d5,e5] ~@3 [g4,c5,e5]@2 ~@10", AA: "[g4,c5,e5] ~@3 [g4,c5,e5]@2 ~@10",
AB: "~@4 [a#4,d5] ~ [f4,a4,c5] ~, ~@8 f4 ~@7", AC: "[g4,c5,e5] ~ [g4,c5,e5] ~@5",
AD: "~@8 [f4,a#4,d5]@3 ~ [a4,c5]@2 ~@2, ~@12 f4 ~@3", AE: "[g4,e5] ~ [g4,c5,e5] ~@5, c5 ~@15",
AF: "~@8 [f4,a#4,d5]@3 ~ [f4,a4,c5]@2 ~@2", AG: "[g4,e5] ~ [g4,e5] ~@5, c5 ~@3 c5 ~@11",
AH: "[g4,c5,e5] ~@3 [g4,c5,e5] ~@11", AI: "[g4,c5] ~@3 [g4,c5] ~@11, e5 ~ e5 ~@5",
AJ: "[~ d5@2 ~@61 g5@31 ~, c5@95 ~, ~@16 e5@31 ~]/6", AK: "[[c5,e5,g5,a#5]@22 ~ [c5,e5,g5,a#5]@3 ~@6, f5 ~@15]/2",
AL: "[c5@31 ~]/2", AM: "d#5@2 ~@2 d5@3 ~ c5@3 ~ a#4 ~ a#4@2", AN: "~@2 a#4@2 a4@2 ~@2 g4@2 ~@2 f4@3 ~",
AO: "c5@2 ~@5 c5@2 ~@7", AP: "c5 ~@2 c5@2 ~ c5 ~", AQ: "d#5@2 ~ d5@2 ~@3 c5@2 ~ a#4 ~@2 c5@2",
AR: "[~@2 c5@2 a#4@2 ~@2 a4@2 ~@2 g4@2 ~@2 b4 ~@8 c5@2 ~@4 c5@2 ~@6 c5@6 ~@3, ~@5 c5 ~@10]/3",
AS: "[a#4,d#5]@2 ~@2 d5@3 ~ c5@3 ~ a#4 ~ d#5@2, ~@14 a#4 ~", AT: "~@2 [a#4,d#5] ~ d5@2 ~@2 c5@2 ~@2 a#4@2 ~@2",
AU: "[c5@7 ~ c5@3 ~@4 c5@2 ~@6 c5@8 ~]/2", AV: "[a#4,d#5]@2 ~@2 d5@2 ~@2 c5@2 ~@2 a#4 ~ d#5@2, ~@14 a#4 ~",
AW: "~@2 [a#4,d#5] ~ d5@2 ~@2 c5@2 ~ a#4@2 ~@3", AX: "c5", AY: "~@2 a#4@2 a4@2 ~@2 g4@3 ~ f4@2 ~@2",
AZ: "[a#4,d#5]@2 ~ d5@3 ~@2 c5@2 ~@2 a#4 ~ c5@2", BA: "~ a#4 a4 ~ g4 ~ f4 ~", BB: "c5@8 ~ c5@2 ~@5",
BC: "[a#4,c5]@2 ~@6 g4@3 ~ a#4@2 ~@2", BD: "d#5@2 ~@2 d5@2 ~@2 c5@2 ~@2 a#4 ~ [a#4,d#5]@2",
BE: "~@2 d5@4 ~ c5@2 ~@2 a#4@2 ~@3",
})).s("gm_brass_section").gain(0.56).pan(0.2)
// bass · baritone sax · "barsax"
const bass_2 = note(`<
~ A ~ B ~ C@2 D E F G F G F G F G F G F G F G F G F G F G F G F G H@2 I J K L K M F G F G F G F G F G F G F G F G H@2
I J K L K M ~ N O P Q@2 F G F G F G F G F G F G F G F G H@2 I J K L K M ~ N O P Q@2 ~@24 H@2 I J K L K M ~ N O P Q@2 A
~ B ~ C@2 D E F G F G F G F G F G F G F G F G F G F G F G F G ~@3
>`.pickRestart({
A: "c2@3 ~@13", B: "a#1 ~@7", C: "[c2@15 ~]/2", D: "a#1@3 ~@13", E: "f1 ~@7", F: "c2 ~@7", G: "~@15 a#1",
H: "~@2 g1 ~@3 g1 ~", I: "~@4 f1@3 ~@5 f1@2 ~@2", J: "~@2 f1 ~@3 f1 ~", K: "~@2 g1 ~@3 g#1 ~",
L: "~@4 a1@3 ~@5 g#1@2 ~@2", M: "~@2 a1 ~@3 g#1 ~", N: "~@4 c3@3 ~@9", O: "~@2 c3 ~@5", P: "c3 ~ c3 ~@5",
Q: "[g2@31 ~]/2",
})).s("gm_baritone_sax").gain(0.4).pan(0.6)
// bass · baritone sax · "barsax" · soft notes
const bass_soft = note("<~@4 A ~@60 B C@2 ~@27 B C@2 ~@35 B C@2 ~@6 A ~@31>".pickRestart({
A: "f1 ~@7", B: "c3@2 ~@2 c3@3 ~@9", C: "c3 ~@7",
})).s("gm_baritone_sax").gain(0.2).pan(0.6)
// other · brass section · "brass re"
const brass_section_2 = note(`<
~ A ~ B C D ~ B C E F G H I J K L ~@92 E F G H I J K L E F G H I J K L ~@14 A ~@7 M@2 N O P Q R S@3 T U V@2 W X Y Z AA
AB AC AD AE AF ~@3
>`.pickRestart({
A: "[g4,c5,e5,g5,c6,e6] ~@7", B: "[f5,a#5,d6] ~@7", C: "[f5,a5,c6] ~@7", D: "[g5,c6,e6] ~@7", E: "c6@7 g5",
F: "a5@2 ~@2 g5@2 ~@2 f5@3 ~ c5@2 ~@2", G: "g4@2 a4@2 c5 ~@3 g4@3 a4 c5 ~@3", H: "~@2 c5@2 a4 ~@3 g4@2 ~@2 c4@2 ~@2",
I: "~@4 c6@10 a5 ~", J: "c6@3 ~@3 c6@2 ~@6 [a#5,c6] ~", K: "~ a#5 a5 ~ g5 ~ f5 ~, ~@2 c6 ~@13",
L: "[d#6,f6] ~ [d#6,f6] ~ c6@2 ~@2 a#5@4 g5 ~@3", M: "[c6@31 ~]/2", N: "d#6@2 ~@2 d6@3 ~ c6@3 ~ a#5 ~ a#5@2",
O: "~@2 a#5@2 a5@2 ~@2 g5@2 ~@2 f5@3 ~", P: "c6@2 ~@5 c6@2 ~@7", Q: "c6 ~@2 c6@2 ~ c6 ~",
R: "d#6@2 ~ d6@2 ~@3 c6@2 ~ a#5 ~@2 c6@2",
S: "[~@2 c6@2 a#5@2 ~@2 a5@2 ~@2 g5@2 ~@2 b5 ~@8 c6@2 ~@4 c6@2 ~@6 c6@6 ~@3, ~@5 c6 ~@10]/3",
T: "[a#5,d#6]@2 ~@2 d6@3 ~ c6@3 ~ a#5 ~ d#6@2, ~@14 a#5 ~", U: "~@2 [a#5,d#6] ~ d6@2 ~@2 c6@2 ~@2 a#5@2 ~@2",
V: "[c6@7 ~ c6@3 ~@4 c6@2 ~@6 c6@8 ~]/2", W: "[a#5,d#6]@2 ~@2 d6@2 ~@2 c6@2 ~@2 a#5 ~ d#6@2, ~@14 a#5 ~",
X: "~@2 [a#5,d#6] ~ d6@2 ~@2 c6@2 ~ a#5@2 ~@3", Y: "c6", Z: "~@2 a#5@2 a5@2 ~@2 g5@3 ~ f5@2 ~@2",
AA: "[a#5,d#6]@2 ~ d6@3 ~@2 c6@2 ~@2 a#5 ~ c6@2", AB: "~ a#5 a5 ~ g5 ~ f5 ~", AC: "c6@8 ~ c6@2 ~@5",
AD: "[a#5,c6]@2 ~@6 g5@3 ~ a#5@2 ~@2", AE: "d#6@2 ~@2 d6@2 ~@2 c6@2 ~@2 a#5 ~ [a#5,d#6]@2",
AF: "~@2 d6@4 ~ c6@2 ~@2 a#5@2 ~@3",
})).s("gm_brass_section").gain(0.64).pan(0.7)
// other · electric guitar muted · "mutguit"
// … 76 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.