0:00/0:00
// Surf City — Jan & Dean
// 152 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 94 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(152/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.
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~@2 A B C D E F G D H I J K L A M N O P Q R S T U V ~ A B W X W Y G X Z AA AB AC AD A M AE AF P Q AG AH AI Q AJ ~ A B
W AK H AL E X AM AA J AN AO A@2 B AI AP AI AQ AR AS AI Q AJ ~@3 AT AU AT AV AT AW AX AV AT AY AZ@2 BA BB
>`.pickRestart({
A: "eb2@3 ~ eb2@3 ~ eb2@3 ~ eb2@3 ~", B: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~",
C: "ab1@5 ~ ab1@2 eb2@3 ~ ab1@4", D: "f1@5 ~ f1@2 c2@4 f1@4", E: "ab1@2 ~ ab1 eb2@2 ~ eb2",
F: "ab1@4 ~@2 ab1@2 eb2 ~ eb2@3 ~ eb2@2", G: "ab1@2 ~ ab1 eb2@2 ab1@2", H: "ab1@4 ~@2 ab1@2 eb2@5 ~ eb2@2",
I: "f1@4 ~@2 f1@2 c2@4 f1@3 ~", J: "db2@5 ~ db2@2 ab1@4 db2@4", K: "bb1@5 ~ bb1@2 f1@4 bb1@3 ~",
L: "gb1@5 ~ gb1@2 db2@4 gb1@3 ~", M: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2@2",
N: "ab1@3 ~ f1@3 ~ eb2@3 ~ f1@3 ~", O: "ab1@3 ~ f1@2 eb2@2 ~@2 eb2 ~ f1@2 eb2 ~",
P: "ab1@4 f1@3 ~ eb2@3 ~ f1@2 ab1@2", Q: "~@2 ab1@2 f1@3 ~ eb2 ~ eb2@2 f1@2 ab1 ~",
R: "db2@4 f1@3 ~ ab1@4 bb1 ~ ab1 ~", S: "db2 ~ db2@2 f1@4 ab1@4 bb1@3 ~, ~@2 d2 ~@13",
T: "ab1@3 ~ f1@3 ~ eb2@3 ~ f1@2 eb2 ~", U: "ab1 ~ ab1@2 f1@3 ~ eb2@2 f1@2 ab1@3 ~", V: "b1 ~@3",
W: "ab1@4 ~@2 ab1@2 eb2@4 ab1@3 ~", X: "f1@2 ~ f1 c2@2 f1@2", Y: "ab1@2 ab1@3 ~ ab1@2 eb2 ~ eb2@2 f1@2 eb2@2",
Z: "ab1@4 ~@2 ab1@2 eb2@7 ~", AA: "f1@4 ~@2 f1@2 c2 ~ c2@2 f1@3 ~", AB: "db2@2 ~ db2 ab1@2 db2@2",
AC: "bb1@2 ~ bb1 f1@2 bb1@2", AD: "gb1@4 ~@2 gb1@2 db2@4 gb1@3 ~", AE: "ab1 ~ ab1@2 f1@3 ~ eb2@4 f1 ~ eb2 ~",
AF: "ab1 ~ ab1@2 f1@2 eb2@2 ~@2 eb2@2 f1@2 eb2 ~", AG: "db2@4 f1@3 ~ ab1@4 bb1@2 ab1 ~",
AH: "db2 ~ db2@2 f1@3 ~ ab1@4 f1@2 ab1 ~", AI: "ab1@3 ~ f1@3 ~ eb2@4 f1@2 ab1@2", AJ: "b1@5 ~@11",
AK: "f1@4 ~@2 f1@2 c2@5 ~ f1@2", AL: "ab1 ~ ab1@3 ~ ab1@2 eb2 ~ eb2@2 ab1@2 eb2@2", AM: "ab1@5 ~ ab1@2 eb2@4 ab1@4",
AN: "bb1@5 ~ bb1@2 f1@4 bb1@4", AO: "gb1@4 ~@2 gb1@2 db2 ~ db2@2 gb1@2 db2 ~",
AP: "~@2 ab1@2 f1@3 ~ eb2 ~ eb2@2 f1@2 eb2 ~", AQ: "~@2 ab1@2 f1@4 eb2 ~ eb2@2 f1@3 ~",
AR: "db2@4 f1@3 ~ ab1@4 f1@2 ab1 ~", AS: "db2@4 f1@4 ab1@4 f1@3 ~", AT: "c2@4 a1@3 ~ g1@3 ~ a1@3 ~",
AU: "c2@4 a1@3 ~ g1@4 a1@2 g1@2", AV: "c2@2 a1 g1 ~ g1 a1 g1", AW: "c2@4 a1@2 g1@2 ~@2 g1@2 a1@2 g1 ~",
AX: "c2 a1 g1 a1", AY: "c2@4 a1@3 ~ g1 ~ g1 ~ a1@2 g1 ~", AZ: "[c2@2 bb1@2 g1@2 c2 ~@5 c1@19 ~]/2", BA: "eb1@2 f1 g1",
BB: "c2@5 ~@11",
})).s("gm_electric_bass_finger").gain(0.5)
// chords · piano · "A.PIANO"
const piano = note(`<
A B C D E F G@2 E F H I J K L M N O@4 P@2 O@2 Q R S T U V W@2 X Y X Y Z K L AA D O AB O@2 AC@2 AD AE Q AF S D AG AH
AI@2 H AH H AH Z K AJ M AK AL O AM AN AO AC AP O@2 AQ AR AS AT AU AV AW AX AY AW AZ BA BB BC BD@3 BE
>`.pickRestart({
A: "[eb4,gb4,b4]@7 ~", B: "[e4,ab4]@6 ~@2 [e4,bb4]@5 ~@3",
C: "[eb4,eb6] ~@3 [eb4,eb5,eb6] ~@3 [eb5,eb6]@2 ~@2 [eb4,eb5,eb6] ~@3, eb5@2 ~@6 eb4 ~@7", // Eb
D: "[eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~", // Eb
E: "[c4,eb4,ab4]@7 ~", F: "[c4,f4,ab4]@7 ~", G: "[[c4,eb4,ab4]@27 ~@5]/2", H: "[c4,eb4,ab4]@15 ~",
I: "[c4,f4,ab4]@3 ~", J: "[db4,f4,ab4]@7 ~", K: "[bb3,db4,f4,bb4]@13 ~@3", L: "[gb3,db4,gb4,bb4]@11 ~@5",
M: "[eb4,eb5,eb6] ~@3 [eb4,eb5,eb6] ~@3 [eb4,eb5,eb6] ~@3 [eb4,eb5,eb6] ~@3", // Eb
N: "[eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ [eb4,eb5,eb6] ~ eb4 ~", // Eb
O: "[ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~", // Ab5
P: "[[ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~, eb6]/2", // Db5
Q: "[eb5,gb5,b5] ~@5 [eb5,gb5,b5] ~@5 [eb5,gb5,b5] ~@3", R: "[e5,ab5] ~@3 [e5,bb5] ~@3",
S: "[eb5,eb6] ~@3 [eb5,eb6] ~@3 [eb5,eb6] ~@3 [eb5,eb6] ~@3", // Eb
T: "eb4 ~ [eb5,eb6] ~ eb6@2 eb4 ~ [eb5,eb6] ~ [eb5,eb6] ~ eb4 ~ [eb5,eb6] ~, ~@4 eb5 ~@11", U: "[c4,eb4,ab4]@3 ~",
V: "[f3,c4,f4,ab4]@7 ~", W: "[[ab3,c4,eb4,ab4]@3 ~]/2", X: "[c4,eb4,ab4]@15 ~, ab3@3 ~", Y: "[f3,c4,f4,ab4]@13 ~@3",
Z: "[db4,f4,ab4]@13 ~@3", // Db
AA: "[eb4,eb5,eb6] ~ [eb5,eb6] ~ [eb4,eb5,eb6] ~ eb4 ~ [eb4,eb5,eb6] ~ eb4 ~ [eb4,eb5,eb6] ~ eb4 ~", // Eb
AB: "[ab5,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,d6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,d6,ab6] ~ [ab5,eb6,ab6] ~", // Ab Ab5 Abdim Ab5 Abdim Ab5
AC: "[ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~", // Db5
AD: "[ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,f6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,f6,ab6] ~ [ab5,eb6,ab6] ~", // Ab5 Db Ab5 Db Ab5
AE: "[ab5,f6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~", // Db Ab5
AF: "[e5,ab5]@5 ~@3 [e5,bb5]@4 ~@4", AG: "[c4,eb4]@7 ~, ab4@11 ~@5", AH: "[c4,f4,ab4]@13 ~@3",
AI: "[[c4,eb4,ab4]@25 ~ eb4@2 f4@2 eb4 ~]/2", AJ: "[gb3,db4,gb4,bb4]@3 ~",
AK: "[eb4,eb5,eb6] ~@3 [eb3,eb4,eb5,eb6] ~@3 [eb3,eb4,eb5,eb6] ~@3 [eb3,eb4,eb5,eb6] ~@3", // Eb
AL: "[eb3,eb4,eb5,eb6] ~ [eb3,eb4,eb5,eb6] ~ [eb3,eb4,eb5,eb6] ~ [eb3,eb4,eb5,eb6] ~ [eb3,eb4,eb5,eb6] ~ [eb3,eb4,eb5,eb6] ~ [eb3,eb4,eb5,eb6] ~ [eb3,eb4,eb5,eb6] ~", // Eb
AM: "[ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,d6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~", // Ab5 Abdim Ab5
AN: "[ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,f6,ab6] ~ [ab5,eb6,ab6] ~", // Ab5 Db Ab5
AO: "[ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,f6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,f6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~ [ab5,eb6,ab6] ~", // Ab5 Db Ab5 Db Ab5
AP: "[ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [ab5,db6,ab6] ~ [bb5,db6,ab6] ~ [ab5,db6,ab6] ~", // Db5 Bbm7 Db5
AQ: "[eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@3 ~", AR: "[e5,ab5]@7 ~ [e5,bb5]@5 ~@3",
AS: "[e4,g4,c5]@4 ~@2 [e4,g4,c5]@4 ~@2 [e4,g4,c5]@3 ~", AT: "[f4,a4]@6 ~@2 [f4,b4]@7 ~",
AU: "[c4,g4,c5] ~ [c4,g4,c5] ~ [c4,d4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,bb4,c5] ~", // C5 Csus2 C5 C7
AV: "[c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~", // C5
AW: "[c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~", // C5
AX: "[c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,gb4,c5] ~ [c4,gb4,c5] ~ [c4,gb4,c5] ~", // C5 Cdim
AY: "[c4,gb4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~", // Cdim C5
AZ: "[c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~", // Cm7
BA: "[c4,bb4,eb5] ~ c4 ~ c4 ~ c4 ~ c4 ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~", // Cm7
BB: "c4 ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~", // Cm7
BC: "[c4,bb4,eb5] ~ [c4,g4,c5,db5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~, ~@6 d5!2", // Cm7 C C5
BD: "[[c4,d5] ~ [bb3,bb4]@2 g3@2 [bb3,g4,c5] ~@5 bb4@2 bb4 g4 [bb4,c5] g4 [bb4,c5] g4 [bb4,c5] g4 [bb4,c5] g4 bb4 g4 bb4 g4 bb4 g4 bb4 g4 bb4 g4@2 eb4 ~ eb4 g4 ~ [c4,f4,a4]@4 ~ a4 ~@2, ~@4 g4 ~ c4@2 ~@4 c4@23 ~ bb3@3 ~@5 [d4,g4,b4]@3 ~, ~@3 [g4,c5] ~@8]/3", // Csus2 Bb C7 Bbsus2 F G C5
BE: "~ c4@7 ~@8, [g4,bb4,c5] ~", // C7
})).s("gm_piano").gain(0.35).pan(0.3)
// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
~@2 A B C D C@3 D C D E F G H B C@4 E@2 C@2 I J K B C D C L C D C D E M N O B C@4 E P C@2 Q R A B C D C@3 D S@5 T U B
C@4 E@2 C@2 V W X Y Z@10 AA@2 AB AC
>`.pickRestart({
A: "[bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3", // Eb
B: "[bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~", // Eb
C: "~@4 [c4,eb4,ab4] ~ [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@3", D: "~@4 [c4,f4,ab4] ~ [c4,f4,ab4] ~@5 [c4,f4,ab4] ~@3",
E: "~@4 [db4,f4,ab4] ~ [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@3", F: "~@4 [bb3,db4,f4] ~ [bb3,db4,f4] ~@5 [bb3,db4,f4] ~@3",
G: "~@4 [bb3,db4,gb4] ~ [bb3,db4,gb4] ~@5 [bb3,db4,gb4] ~@3", // Gb
H: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4]@3 ~ [bb3,g4]@2 eb4 ~, ~@12 eb4 ~@3", // Eb
I: "[eb4,gb4,b4] ~@5 [eb4,gb4,b4]@2 ~@4 [eb4,gb4,b4] ~@3", J: "[b3,e4,ab4]@3 ~@5 [bb3,e4,bb4]@3 ~@5",
K: "[bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3", // Eb
L: "~@4 [c4,eb4,ab4] ~ [c4,eb4,ab4] ~@5 [c4,eb4,ab4]@2 ~@2", // Ab
M: "~@4 [db4,f4,bb4] ~ [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@3", // Bbm
N: "~@4 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~@5 [db4,gb4,bb4] ~@3", // Gb
O: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4]@2 ~@2", // Eb
P: "~@4 [db4,f4,ab4] ~ [db4,f4,ab4] ~@5 [db4,f4,ab4]@2 ~@2", Q: "[eb4,gb4,b4] ~@5 [eb4,gb4,b4] ~@5 [eb4,gb4,b4] ~@3",
R: "[b3,e4,ab4] ~@3 [bb3,e4,bb4] ~@3", // E Bbdim
S: "[~@4 [c4,eb4,ab4] ~ [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@7 [c4,f4,ab4] ~ [c4,f4,ab4] ~@5 [c4,f4,ab4] ~@7 [db4,f4,ab4] ~ [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@7 [db4,f4,bb4] ~ [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@7 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~@5 [db4,gb4,bb4] ~@3, ~@3 gb4@14 ~@3]/5", // Ab Fm Db Bbm Gb
T: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~ bb3 ~", // Eb
U: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4] ~ bb3 ~ [bb3,eb4,g4] ~ bb3 ~", // Eb
V: "[eb4,gb4,b4]@2 ~@4 [eb4,gb4,b4] ~@5 [eb4,gb4,b4] ~@3", W: "[b3,e4,ab4]@3 ~@5 [e4,bb4]@2 ~@6",
X: "[c4,e4,g4] ~@2 [c4,e4,g4] ~@2 [c4,e4,g4] ~", Y: "[c4,f4,a4]@3 ~@5 [b3,f4,b4]@2 ~@6",
Z: "~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~@3", AA: "[c4 ~ bb3 ~ g3 ~ c4 ~@5 c4@16 ~@4]/2",
AB: "eb4@6 ~@2 f4@3 ~ g4@4, ~@12 f4 ~@3", AC: "c4@3 ~@13",
})).s("gm_electric_guitar_muted").gain(0.54).pan(0.7)
// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted_2 = note(`<
~@3 A B C D E B C B C F G H I J K@4 L@2 K@2 M ~ N J B C K O B C D C F G P Q J K@4 L@2 K O R ~ S J T C T K B C D C F G
P U V J K@4 L@2 K@2 W ~@3 X@10 Y@2 Z AA
>`.pickRestart({
A: "eb4 ~ eb4 ~ eb4 ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~", // Eb5
B: "[ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~", // Ab5
C: "[f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~", // F5
D: "[ab3,eb4] ~ [ab3,eb4] ~ [ab3,f4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~", // Ab5 Db Ab5
E: "[ab3,eb4] ~ [ab3,eb4] ~ [ab3,f4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [gb3,ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~", // Ab5 Db Ab5 Ab7 Ab5
F: "[db4,ab4] ~ [db4,ab4] ~ [db4,ab4] ~ [db4,ab4] ~ [db4,ab4] ~ [db4,ab4] ~ [db4,ab4] ~ [db4,ab4] ~", // Db5
G: "[bb3,f4] ~ [bb3,f4] ~ [bb3,f4] ~ [bb3,f4] ~ [bb3,f4] ~ [bb3,f4] ~ [bb3,f4] ~ [bb3,f4] ~", // Bb5
H: "[gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~", // Gb5
I: "[bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,eb4]@2 ~@2", // Eb5
J: "[bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~", // Eb5
K: "[ab3,eb4] ~ [ab3,eb4] ~ [ab3,f4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,f4] ~ [ab3,eb4] ~", // Ab5 Db Ab5 Db Ab5
L: "[db4,ab4] ~ [db4,ab4] ~ [db4,bb4] ~ [db4,ab4] ~ [db4,ab4] ~ [db4,ab4] ~ [db4,bb4] ~ [db4,ab4] ~", // Db5 Gb Db5 Gb Db5
M: "[b3,gb4] ~@7", N: "[bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [bb3,eb4] ~",
O: "[ab3,eb4] ~ [ab3,eb4] ~ [ab3,f4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,f4]@2 [ab3,eb4] ~", // Ab5 Db Ab5 Db Ab5
P: "[gb3,db4] ~ [gb3,db4] ~ [gb3,eb4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~", // Gb5 Ebm Gb5
Q: "[bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,d4,eb4] ~@3", R: "[b3,gb4]@3 ~@13",
S: "[bb3,eb4]@2 ~@2 [bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~@3", // Eb5
T: "[ab3,eb4] ~ [ab3,eb4] ~ [ab3,f4]@2 [ab3,eb4] ~ [ab3,eb4] ~ [ab3,eb4] ~ [ab3,f4] ~ [ab3,eb4] ~", // Ab5 Db Ab5 Db Ab5
U: "[bb3,eb4] ~@3 [bb3,eb4]@2 ~@2 [bb3,eb4] ~@3 [bb3,eb4] ~@3", // Eb5
V: "[bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~ eb4 ~ [bb3,eb4] ~@3", W: "[b3,gb4]@5 ~@11",
X: "[c4,g4] ~ [c4,g4] ~ [c4,a4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,a4] ~ [c4,g4] ~", // C5 F C5 F C5
Y: "[c4 bb3 g3 c4 ~@2 [c4,g4]@9 ~]/2", Z: "[eb3,eb4]@7 ~ [f3,c4,f4]@2 ~@2 [g3,d4,g4]@2 ~@2", AA: "[c4,g4] ~@3",
})).s("gm_electric_guitar_muted").gain(0.54).pan(0.4)
// chords · synth strings 1 · "SYN STRING"
const synth_strings_1 = note(`<
A B@3 C@8 D@5 E@4 F@4 G B@3 H@6 I@7 E@4 J@2 K@2 G L@3 M@8 N@6 E@4 J@2 O@2 P Q R S T@8 ~@4 U V
>`.pickRestart({
A: "[eb4,gb4,b4]", B: "[[b3,ab4]@8 bb4@8 [eb4,g4]@29 ~@3, e4@7 ~@17, ~@8 bb3@37 ~@3]/3",
C: "[eb4@15 ~ f4@16 eb4@48 f4@16 eb4@16 f4@16, ab4, c4@63 ~]/8",
D: "[~@32 gb4@15 ~@17 bb3@15 ~, db4@47 ~ eb4@31 ~, ~@16 bb4@49 ~@15, ~@48 g4@27 ~@5]/5", E: "[[c4,eb4,ab4]@63 ~]/4",
F: "[[db4,f4]@31 ~ [c4,eb4]@29 ~@3, ab4@61 ~@3]/4", G: "[gb4,b4], eb4@7 ~",
H: "[eb4@16 f4@16 eb4@48 f4@15 ~, [c4,ab4]@47 ~]/6", // Fm
I: "[eb4@16 ~@48 gb4@15 ~@25 g3@8, ab4@24 bb4@24 bb3@7 ~, c4@31 ~ db4@47 ~ eb4@31 ~, ~@16 f4@47 ~@17 g4@24 ~@8]/7",
J: "[[db4,f4,ab4]@31 ~]/2", K: "[[c4,eb4,ab4]@15 ~]/2",
L: "[[b3,ab4]@8 bb4@8 eb4@29 ~@3, e4@15 ~ g4@24 ~@8, ~@8 bb3@37 ~@3]/3", // E
M: "[[c4,eb4,ab4] ~ eb4@14 f4@16 eb4@48 f4@16 eb4@16 f4@15 ~, ~ [c4,ab4]@62 ~]/8", // Ab Fm
N: "[ab4@15 ~@17 gb4@15 ~@33 [g3,eb4]@16, db4@16 [eb4,g4]@11 ~@5, f4@15 ~@17 bb3@16, ~@5 bb4@16 ~@11]/6", // Cm Eb
O: "[[c4,eb4,ab4]@29 ~@3]/2", P: "[eb4,gb4,b4]@15 ~", Q: "[b3,ab4]@4 [bb3,bb4]@3 ~, e4@7 ~", R: "[e4,g4,c5]@15 ~",
S: "[c4,a4] [b3,b4], f4@7 ~", T: "[[e4,g4,c5], c4@7 ~@57]/8", U: "[bb3,eb4,g4]@7 ~ [c4,f4,a4]@3 ~ [d4,g4,b4]@3 ~",
V: "[e4,g4,c5] ~@3", // C
})).s("gm_synth_strings_1").gain(0.3)
// drums · kick
const kick = s("bd").struct(`<
A@2 B@2 C@11 D B C@8 A@2 B@2 C@11 D B C@8 A@2 B@2 C@11 B@3 C@8 A@4 C@10 E ~@2 F
>`.pickRestart({
A: "x ~@2 x!2 ~@3", B: "x!4", C: "x!2", D: "x ~ x!2", E: "x ~@2 x ~@2 x ~", F: "x",
})).gain(0.71)
// drums · snare
const snare = s("sd").struct(`<
~@2 A B C D C E C D C E F@3 A B C D C@6 ~@2 A G C D C E C D C E F@3 A B C D C@6 ~@2 A H C D C E C D C E F@3 A@2 B C@3
E C@3 E ~@4 C I F J F K F J F I ~@2 L M
>`.pickRestart({
A: "x!4", B: "x ~ x ~ x ~ x ~ x!5 ~ x ~", C: "~@2 x!2 ~@2 x ~", D: "~@4 x ~ x ~@3 x!3 ~ x ~", E: "~@2 x!2 ~ x!3",
F: "~ x ~ x", G: "x!4 ~@2 x!5 ~@5", H: "x!4 ~@2 x!2 ~@6 x!2", I: "~@4 x ~@5 x!3 ~ x ~", J: "~@4 x ~@5 x!5 ~",
K: "~@4 x ~@6 x!2 ~ x ~", L: "x!2 ~ x ~@12", M: "x",
})).gain(0.71)
// drums · low tom
const low_tom = s("lt").struct("<~@28 [~@13 x!3] ~@24 [~@13 x ~@2] ~@38 [~@12 x!2 ~ x] ~>").gain(0.57)
// drums · hihat
const hihat = s("hh").struct("<A@2 B C@12 D C@9 A@2 D C@12 D C@9 E A D C@12 F C@10 A@4 C@10 G A ~ H>".pickRestart({
A: "~ x ~ x", B: "~ x!3", C: "x!8", D: "x!4", E: "x!2 ~ x", F: "x!5 ~ x!2", G: "x!4 ~@2 x ~", H: "x",
})).gain(0.5)
// drums · mid tom
const mid_tom = s("mt").struct("<~@28 [~@11 x!2 ~@3] ~@24 [~ x ~ x] ~@38 [~@8 x!2 ~ x ~@4] ~>").gain(0.57)
// drums · high tom
const high_tom = s("ht").struct("<~@28 [~@4 x ~@4 x!2 ~@5] ~@24 [~@10 x!2 ~@4] ~@38 [~@4 x!2 ~ x ~@8] ~>").gain(0.64)
// drums · crash
const crash = s("cr").struct("<~@4 A ~@12 A ~@11 A ~@12 A ~@11 A ~@13 A ~@11 A ~ A ~@5 A ~ B ~ C A>".pickRestart({
A: "x", B: "x ~@2 x ~@2 x ~", C: "x ~ x!2",
})).gain(0.57)
stack(
bass, piano, electric_guitar_muted, electric_guitar_muted_2, synth_strings_1, kick, snare, low_tom, hihat, mid_tom,
high_tom, crash
)
More by Jan & Dean
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.