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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~@2 A B C D E F C D E D G H I A J K L M N O P Q R S ~ A B C D C T C D U V G H I A B W X Y N O Z M N AA ~ A B C AB E AC
E D C V G AD AE A@2 B M AF M AG AH AI M N AA ~@3 AJ AK AJ AL AJ AL AJ AL AJ AM AN@2 AO AP
>`.pickRestart({
A: "eb2@3 ~ eb2@3 ~ eb2@3 ~ eb2@3 ~", B: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~",
C: "ab1@4 ~@2 ab1@2 eb2@4 ab1@3 ~", D: "f1@2 ~ f1 c2@2 f1@2", E: "ab1@2 ~ ab1 eb2@2 ~ eb2",
F: "ab1@4 ~@2 ab1@2 eb2 ~ eb2@3 ~ eb2@2", G: "db2@5 ~ db2@2 ab1@4 db2@4", H: "bb1@5 ~ bb1@2 f1@4 bb1@3 ~",
I: "gb1@5 ~ gb1@2 db2@4 gb1@3 ~", J: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2@2",
K: "ab1@3 ~ f1@3 ~ eb2@3 ~ f1@3 ~", L: "ab1@3 ~ f1@2 eb2@2 ~@2 eb2 ~ f1@2 eb2 ~",
M: "ab1@3 ~ f1@3 ~ eb2@4 f1@2 ab1@2", N: "~@2 ab1@2 f1@3 ~ eb2 ~ eb2@2 f1@2 ab1 ~",
O: "db2@4 f1@3 ~ ab1@4 bb1 ~ ab1 ~", P: "db2 ~ db2@2 f1@4 ab1@4 bb1@3 ~, ~@2 d2 ~@13",
Q: "ab1@3 ~ f1@3 ~ eb2@3 ~ f1@2 eb2 ~", R: "ab1 ~ ab1@2 f1@3 ~ eb2@2 f1@2 ab1@3 ~", S: "b1 ~@3",
T: "ab1@2 ab1@3 ~ ab1@2 eb2 ~ eb2@2 f1@2 eb2@2", U: "ab1@4 ~@2 ab1@2 eb2@7 ~", V: "f1@4 ~@2 f1@2 c2 ~ c2@2 f1@3 ~",
W: "ab1 ~ ab1@2 f1@3 ~ eb2@4 f1 ~ eb2 ~", X: "ab1 ~ ab1@2 f1@2 eb2@2 ~@2 eb2@2 f1@2 eb2 ~",
Y: "ab1@4 f1@3 ~ eb2@3 ~ f1@2 ab1@2", Z: "db2 ~ db2@2 f1@3 ~ ab1@4 f1@2 ab1 ~", AA: "b1@5 ~@11",
AB: "f1@4 ~@2 f1@2 c2@5 ~ f1@2", AC: "ab1 ~ ab1@3 ~ ab1@2 eb2 ~ eb2@2 ab1@2 eb2@2", AD: "bb1@2 ~ bb1 f1@2 bb1@2",
AE: "gb1@4 ~@2 gb1@2 db2 ~ db2@2 gb1@2 db2 ~", AF: "~@2 ab1@2 f1@3 ~ eb2 ~ eb2@2 f1@2 eb2 ~",
AG: "~@2 ab1@2 f1@4 eb2 ~ eb2@2 f1@3 ~", AH: "db2@4 f1@3 ~ ab1@4 f1@2 ab1 ~", AI: "db2@4 f1@4 ab1@4 f1@3 ~",
AJ: "c2@4 a1@3 ~ g1@3 ~ a1@3 ~", AK: "c2@4 a1@3 ~ g1@4 a1@2 g1@2", AL: "c2@2 a1 g1 ~ g1 a1 g1",
AM: "c2@4 a1@3 ~ g1 ~ g1 ~ a1@2 g1 ~", AN: "[c2@2 bb1@2 g1@2 c2 ~@5 c1@19 ~]/2", AO: "eb1@2 f1 g1", AP: "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 V X V J K L Y D O Z O@2 AA@2 AB AC Q AD S D AE F AF@2
H F H F J K L M AG AH O AI AJ AK AA AL O@2 AM AN AO AP AQ AR AS AT AU AS AV AW AX AY AZ@3 BA
>`.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]@13 ~@3", G: "[[c4,eb4,ab4]@27 ~@5]/2", H: "[c4,eb4,ab4]@15 ~",
I: "[c4,f4,ab4]@3 ~", J: "[db4,f4,ab4]@13 ~@3", 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: "[eb4,eb5,eb6] ~ [eb5,eb6] ~ [eb4,eb5,eb6] ~ eb4 ~ [eb4,eb5,eb6] ~ eb4 ~ [eb4,eb5,eb6] ~ eb4 ~", // Eb
Z: "[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
AA: "[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
AB: "[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
AC: "[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
AD: "[e5,ab5]@5 ~@3 [e5,bb5]@4 ~@4", AE: "[c4,eb4]@7 ~, ab4@11 ~@5", AF: "[[c4,eb4,ab4]@25 ~ eb4@2 f4@2 eb4 ~]/2",
AG: "[eb4,eb5,eb6] ~@3 [eb3,eb4,eb5,eb6] ~@3 [eb3,eb4,eb5,eb6] ~@3 [eb3,eb4,eb5,eb6] ~@3", // Eb
AH: "[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
AI: "[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
AJ: "[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
AK: "[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
AL: "[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
AM: "[eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@4 ~@2 [eb5,gb5,b5]@3 ~", AN: "[e5,ab5]@7 ~ [e5,bb5]@5 ~@3",
AO: "[e4,g4,c5]@4 ~@2 [e4,g4,c5]@4 ~@2 [e4,g4,c5]@3 ~", AP: "[f4,a4]@6 ~@2 [f4,b4]@7 ~",
AQ: "[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
AR: "[c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~ [c4,g4,c5] ~", // C5
AS: "[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
AT: "[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
AU: "[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
AV: "[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
AW: "[c4,bb4,eb5] ~ c4 ~ c4 ~ c4 ~ c4 ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~", // Cm7
AX: "c4 ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~ [c4,bb4,eb5] ~", // Cm7
AY: "[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
AZ: "[[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
BA: "~ 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@3 D C D E L M N B C@4 E@2 C@2 I O A B C D C@3 D P@5 Q R B
C@4 E@2 C@2 S T U V W@10 X@2 Y Z
>`.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 [db4,f4,bb4] ~ [db4,f4,bb4] ~@5 [db4,f4,bb4] ~@3", // Bbm
M: "~@4 [db4,gb4,bb4] ~ [db4,gb4,bb4] ~@5 [db4,gb4,bb4] ~@3", // Gb
N: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4]@2 ~@2", O: "[b3,e4,ab4] ~@3 [bb3,e4,bb4] ~@3",
P: "[~@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
Q: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~ bb3 ~", // Eb
R: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4]@2 ~@2 [bb3,eb4,g4] ~ bb3 ~ [bb3,eb4,g4] ~ bb3 ~", // Eb
S: "[eb4,gb4,b4]@2 ~@4 [eb4,gb4,b4] ~@5 [eb4,gb4,b4] ~@3", T: "[b3,e4,ab4]@3 ~@5 [e4,bb4]@2 ~@6",
U: "[c4,e4,g4] ~@2 [c4,e4,g4] ~@2 [c4,e4,g4] ~", V: "[c4,f4,a4]@3 ~@5 [b3,f4,b4]@2 ~@6",
W: "~@4 [c4,e4,g4] ~ [c4,e4,g4] ~@5 [c4,e4,g4] ~@3", X: "[c4 ~ bb3 ~ g3 ~ c4 ~@5 c4@16 ~@4]/2",
Y: "eb4@6 ~@2 f4@3 ~ g4@4, ~@12 f4 ~@3", Z: "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@2 B C D C F G O P J K@4 L@2 K@2 Q ~ R J K C K@2 B C D C F G
O R S J K@4 L@2 K@2 T ~@3 U@10 V@2 W X
>`.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: "[gb3,db4] ~ [gb3,db4] ~ [gb3,eb4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~ [gb3,db4] ~", // Gb5 Ebm Gb5
P: "[bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,d4,eb4] ~@3", Q: "[b3,gb4]@3 ~@13",
R: "[bb3,eb4]@2 ~@2 [bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~@3", // Eb5
S: "[bb3,eb4] ~@3 [bb3,eb4] ~@3 [bb3,eb4] ~ eb4 ~ [bb3,eb4] ~@3", T: "[b3,gb4]@5 ~@11",
U: "[c4,g4] ~ [c4,g4] ~ [c4,a4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,a4] ~ [c4,g4] ~", // C5 F C5 F C5
V: "[c4 bb3 g3 c4 ~@2 [c4,g4]@9 ~]/2", W: "[eb3,eb4]@7 ~ [f3,c4,f4]@2 ~@2 [g3,d4,g4]@2 ~@2", X: "[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 A B@3 G@6 H@7 E@4 I@2 J@2 A K@3 L@8 M@6 E@4 I@2 N@2 A O P Q R@8 ~@4 S T
>`.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: "[eb4 f4 eb4@3 f4, [c4,ab4]@47 ~]/6",
H: "[eb4@16 ~@48 gb4@15 ~@25 g3@8, ab4@24 bb4@24 bb3@7 ~, c4@31 ~ db4@47 ~ eb4@31 ~, ~@8 f4@23 ~@9 g4@12 ~@4]/7",
I: "[[db4,f4,ab4]@31 ~]/2", J: "[[c4,eb4,ab4]@15 ~]/2",
K: "[[b3,ab4]@8 bb4@8 eb4@29 ~@3, e4@7 ~ g4@12 ~@4, ~@8 bb3@37 ~@3]/3", // E
L: "[[c4,eb4,ab4] ~ eb4@14 f4@16 eb4@48 f4@16 eb4@16 f4@16, ~ [c4,ab4]@62 ~]/8", // Ab Fm
M: "[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
N: "[[c4,eb4,ab4]@29 ~@3]/2", O: "[b3,ab4]@4 [bb3,bb4]@3 ~, e4@7 ~", P: "[e4,g4,c5]@15 ~",
Q: "[c4,a4] [b3,b4], f4@7 ~", R: "[[e4,g4,c5], c4@7 ~@57]/8", S: "[bb3,eb4,g4]@7 ~ [c4,f4,a4]@3 ~ [d4,g4,b4]@3 ~",
T: "[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.