0:00/0:00
// Saxy Mood — DULFER, CANDY
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 16 piano (copy of ch 1 piano); ch 15 tenor sax (copy of ch 5 tenor sax)
// note: Full arrangement: all 111 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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("<A B C D E@2 F@2 G H@2 I@2 J K@2 L@2 M N ~@37 O@2 P Q R@2 S T U ~@45>".pickRestart({
A: "~@13 [g3,c4,e4]@4 c3@3 ~ [g3,c4,e4]@3 c3@2 [g3,c4,e4]@4 c3@2", // C
B: "[g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@3 [b3,e4,g4]@3 ~ e3@3 ~ [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4]@3 ~@2 [b3,e4,g4] ~, ~@29 e3@2 ~", // C Em
C: "~@2 [b3,e4,g4]@4 e3@3 ~ [a3,c4,e4]@4 a2@3 ~ [a3,c4,e4]@3 a2@2 [a3,c4,e4]@3 ~ a2@2 [a3,c4,e4] ~@2", // Em Am
D: "~ [a3,c4,e4]@4 a2@3 [g3,b3,d4]@4 g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 ~ f2@2 [f3,a3,c4] ~@2 [f3,a3,c4]", // Am G F
E: "[~@3 [f3,a3,c4] ~@3 [g3,c4,e4]@4 c3@3 ~ [g3,c4,e4]@4 ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@4 [b3,e4,g4]@3 e3@3 ~ [b3,e4,g4]@4 e3@2 [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4] ~@2 [b3,e4,g4]@4, ~@19 c3@2 ~@43]/2", // F C Em
F: "[e3@3 ~ [a3,c4,e4]@4 a2@3 ~ [a3,c4,e4]@4 ~ [a3,c4,e4]@3 ~ a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@4 a2@3 ~ [g3,b3,d4]@3 g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 ~ f2@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@2, ~@8 a2 ~@23]/2", // Am G F
G: "~ [g3,c4,e4]@4 c3@3 ~ [g3,c4,e4]@4 ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@4, ~@13 c3@2 ~@17", // C
H: "[[b3,e4,g4]@3 e3@3 ~ [b3,e4,g4]@4 e3@2 [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4] ~@2 [b3,e4,g4]@4 e3@3 ~ [a3,c4,e4]@4 a2@3 ~ [a3,c4,e4]@4 ~ [a3,c4,e4]@3 ~ a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@4 a2@4 [g3,b3,d4]@3, ~@21 a2 ~@10]/2", // Em Am G
I: "[g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 ~ f2@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@2 [f3,a3,c4] ~@3 [g3,c4,e4]@3 ~ c3@3 ~ [g3,c4,e4]@4 ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@4 [b3,e4,g4]@3 e3@3, ~@39 c3@2 ~@23]/2", // G F C Em
J: "~ [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4] ~@3 [b3,e4,g4]@3 e3@3 ~ [a3,c4,e4]@4 a2@3 ~", // Em Am
K: "[[a3,c4,e4]@4 a2@2 [a3,c4,e4]@3 a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@4 a2@3 ~ [g3,b3,d4]@4 g2@3 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 ~ f2@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@2 [f3,a3,c4] ~@3 [g3,c4,e4]@4 c3@3 ~ [g3,c4,e4]@3]/2", // Am G F C
L: "[~ c3@2 [g3,c4,e4]@3 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@4 [b3,e4,g4]@4 e3@3 [b3,e4,g4]@4 e3@2 [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4] ~@3 [b3,e4,g4]@3 e3@3 ~ [a3,c4,e4]@4 a2@3 ~ [a3,c4,e4]@4 a2@2]/2", // C Em Am
M: "[a3,c4,e4]@3 a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@4 a2@4 [g3,b3,d4]@4 g2@3 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@2", // Am G F
N: "~@2 f2@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@2 [f3,a3,c4] ~@20", // F
O: "[~@20 [g3,c4,e4]@3 c3@3 ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@3 c3@4 [b3,e4,g4]@4 e3@3 ~ [b3,e4,g4]@3 ~ e3@2]/2", // C Em
P: "[b3,e4,g4]@3 e3@2 [b3,e4,g4] ~@3 [b3,e4,g4]@4 e3@3 ~ [a3,c4,e4]@3 a2@3 ~ [a3,c4,e4]@4 a2@2 [a3,c4,e4]@2", // Em Am
Q: "~@2 a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@3 a2@3 ~ [g3,b3,d4]@4 g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3", // Am G F
R: "[f2@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@3 [f3,a3,c4] ~@3 [g3,c4,e4]@3 c3@4 [g3,c4,e4]@4 c3@2 [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@3 c3@4 [b3,e4,g4]@4 e3@3 ~ [b3,e4,g4]@4 e3@2 [b3,e4,g4]@3 e3@2 [b3,e4,g4]]/2", // F C Em
S: "~@3 [b3,e4,g4]@4 e3@3 ~ [a3,c4,e4]@4 a2@3 [a3,c4,e4]@4 a2@2 [a3,c4,e4]@3 ~ a2@2 [a3,c4,e4] ~", // Em Am
T: "~@2 [a3,c4,e4]@3 a2@4 [g3,b3,d4]@4 g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 f2@2 [f3,a3,c4] ~@3", // Am G F
U: "[f3,a3,c4] ~@3 [f3,a3,c4] ~@27", // F
})).s("gm_piano").gain(0.49).pan(0)
// bass · synth bass 2
const bass = note(`<
~@19 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM ~@7 AN AO AP AQ AR AS
AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF
CG
>`.pickRestart({
A: "~@15 c2 ~@5 c2 ~@4 c2 ~@5", B: "~@2 c2 ~@3 c2 ~@3 c2 ~ d2 ~@4 e2 ~@5 e2 ~@3 e2 ~ e2 ~@2",
C: "~@2 e2 ~@3 e2 ~ e2 ~@3 a1 ~@5 a1 ~@3 a1!2 ~@7 a1", D: "~@3 a1 ~ a1 ~@8 g1 ~@3 g1 ~@5 f1 ~@3 f1 ~ f1 ~",
E: "~ f1 ~@3 f1 ~@3 c2 ~@5 c2 ~@4 c2 ~@7 c2 ~@3", F: "c2 ~@3 c2 ~ d2 ~@4 e2 ~@5 e2 ~@3 e2 ~ e2 ~@5 e2 ~@2",
G: "e2 ~ e2 ~@3 a1 ~@5 a1 ~@3 a1!2 ~@7 a1 ~@3 a1 ~ a1", H: "~@8 g1 ~@3 g1 ~@5 f1 ~@3 f1 ~ f1 ~@2 f1 ~@3 f1",
I: "~@3 c2 ~@5 c2 ~@5 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~", J: "d2 ~@4 e2 ~@5 e2 ~@3 e2 ~ e2 ~@5 e2 ~@2 e2 ~ e2 ~@3",
K: "a1 ~@5 a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@6", L: "~@2 g1 ~@3 g1 ~@5 f1 ~@3 f1 ~ f1@2 ~ f1 ~@3 f1 ~@3 c2 ~@2",
M: "~@3 c2 ~@5 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~ d2 ~@4 e2", N: "~@5 e2 ~@3 e2 ~ e2 ~@5 e2 ~@2 e2 ~ e2 ~@3 a1 ~@5",
O: "a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@8 g1 ~@3", P: "g1 ~@5 f1 ~@3 f1 ~ f1 ~@3 f1 ~@2 f1 ~@3 c2 ~@5 c2 ~@2",
Q: "~@3 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~ d2 ~@4 e2 ~@5 e2", R: "~@3 e2 ~ e2 ~@5 e2 ~@2 e2 ~ e2 ~@3 a1 ~@5 a1 ~@3 a1 ~",
S: "a1 ~@6 a1 ~@3 a1 ~ a1 ~@8 g1 ~@3 g1 ~@5", T: "f1 ~@3 f1 ~ f1@2 ~@2 f1 ~@2 f1 ~@3 c2 ~@5 c2 ~@5 c2 ~@2",
U: "~@4 c2 ~@3 c2 ~@3 c2 ~ d2 ~@5 e2 ~@4 e2 ~@3 e2 ~ e2", V: "~@5 e2 ~@2 e2 ~ e2 ~@3 a1 ~@5 a1 ~@3 a1 ~ a1 ~@5",
W: "~ a1 ~@3 a1 ~ a1 ~@9 g1 ~@2 g1 ~@5 f1 ~@3 f1 ~", X: "f1 ~@3 f1 ~@2 f1 ~@3 c2 ~@5 c2 ~@5 c2 ~@6 c2 ~",
Y: "~@2 c2 ~@3 c2 ~ d2 ~@5 e2 ~@4 e2 ~@3 e2 ~ e2 ~@5 e2", Z: "~@3 e2!2 ~@3 a1 ~@5 a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1",
AA: "~ a1 ~@9 g1 ~@2 g1 ~@5 f1 ~@3 f1 ~ f1@2 ~@2 f1 ~", AB: "~ f1 ~@3 c2 ~@5 c2 ~@5 c2 ~@6 c2 ~@3 c2 ~@3",
AC: "c2 ~ d2 ~@5 e2 ~@4 e2 ~@3 e2 ~ e2 ~@5 e2 ~@3 e2!2 ~", AD: "~@2 a1 ~@5 a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@4",
AE: "~@5 g1 ~@2 g1 ~@5 f1 ~@3 f1 ~ f1 ~@3 f1 ~@3 f1 ~@2 c2", AF: "~@5 c2 ~@5 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~ d2 ~@3",
AG: "~@2 e2 ~@4 e2 ~@3 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@2 a1 ~@3", AH: "~@2 a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@9 g1",
AI: "~@2 g1 ~@5 f1 ~@3 f1 ~ f1@2 ~@2 f1 ~@3 f1 ~@2 c2 ~@5 c2", AJ: "~@5 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~ d2 ~@5 e2 ~@3",
AK: "~ e2 ~@3 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@2 a1 ~@5 a1 ~@3", AL: "a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@9 g1 ~@3 g1 ~@2",
AM: "~@2 f1 ~@3 f1 ~ f1 ~@3 f1 ~@3 f1 ~@15", AN: "~@7 c2 ~@5 c2 ~@5 c2 ~@7 c2 ~@2 c2 ~",
AO: "~@2 c2 ~ d2 ~@5 e2 ~@5 e2 ~@2 e2 ~ e2 ~@5 e2 ~@3 e2",
AP: "~ e2 ~@2 a1 ~@5 a1 ~@3 a1 ~ a1 ~@7 a1 ~@2 a1 ~ a1 ~@2", AQ: "~@7 g1 ~@3 g1 ~@4 f1 ~@3 f1 ~ f1@2 ~@2 f1 ~@3 f1 ~",
AR: "~@2 c2 ~@4 c2 ~@5 c2 ~@7 c2 ~@2 c2 ~@3 c2 ~ d2 ~", AS: "~@4 e2 ~@5 e2 ~@2 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@3 a1",
AT: "~@4 a1 ~@3 a1 ~ a1 ~@7 a1 ~@2 a1 ~ a1 ~@8", AU: "~ g1 ~@3 g1 ~@4 f1 ~@3 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@3",
AV: "~ c2 ~@5 c2 ~@7 c2 ~@2 c2 ~@3 c2 ~ d2 ~@5 e2 ~", AW: "~@4 e2 ~@2 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@3 a1 ~@4 a1 ~",
AX: "~@2 a1 ~ a1 ~@7 a1 ~@2 a1 ~ a1 ~@9 g1 ~@3 g1", AY: "~@4 f1 ~@3 f1 ~ f1@2 ~@2 f1 ~@3 f1 ~@3 c2 ~@4 c2 ~@4",
AZ: "~ c2 ~@7 c2 ~@2 c2 ~@3 c2 ~ d2 ~@5 e2 ~@5 e2 ~", BA: "~ e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@3 a1 ~@4 a1 ~@3 a1 ~ a1 ~",
BB: "~@6 a1 ~@2 a1 ~ a1 ~@9 g1 ~@3 g1 ~@4 f1 ~", BC: "~@2 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@4 c2 ~@5 c2 ~@4",
BD: "~@3 c2 ~@3 c2 ~@2 c2 ~ d2 ~@5 e2 ~@5 e2 ~@2 e2 ~ e2 ~@2", BE: "~@3 e2 ~@3 e2 ~ e2 ~@3 a1 ~@4 a1 ~@3 a1 ~ a1 ~@7",
BF: "a1 ~@3 a1!2 ~@9 g1 ~@3 g1 ~@5 f1 ~@2 f1 ~ f1@2", BG: "~@2 f1 ~@3 f1 ~@3 c2 ~@4 c2 ~@5 c2 ~@7 c2 ~@2",
BH: "~ c2 ~@2 c2 ~ d2 ~@5 e2 ~@5 e2 ~@3 e2!2 ~@5 e2 ~@2", BI: "~ e2 ~ e2 ~@3 a1 ~@4 a1 ~@3 a1 ~ a1 ~@7 a1 ~@3 a1!2",
BJ: "~@9 g1 ~@3 g1 ~@5 f1 ~@2 f1 ~ f1 ~@3 f1 ~@3", BK: "f1 ~@3 c2 ~@4 c2 ~@5 c2 ~@7 c2 ~@3 c2 ~@2 c2 ~",
BL: "d2 ~@5 e2 ~@5 e2 ~@3 e2!2 ~@5 e2 ~@3 e2 ~ e2 ~@2", BM: "~ a1 ~@4 a1 ~@3 a1 ~ a1 ~@7 a1 ~@3 a1 ~ a1 ~@5",
BN: "~@3 g1 ~@3 g1 ~@5 f1 ~@2 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~", BO: "~@3 c2 ~@5 c2 ~@7 c2 ~@3 c2 ~@2 c2 ~ d2 ~@5",
BP: "e2 ~@5 e2 ~@3 e2 ~ e2 ~@4 e2 ~@3 e2 ~ e2 ~@3 a1 ~@4", BQ: "~ a1 ~@2 a1 ~ a1 ~@7 a1 ~@3 a1 ~ a1 ~@8 g1 ~@2",
BR: "~ g1 ~@5 f1 ~@2 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@5 c2 ~", BS: "~@3 c2 ~@7 c2 ~@3 c2 ~@2 c2 ~ d2 ~@5 e2 ~@5",
BT: "e2 ~@3 e2 ~ e2 ~@4 e2 ~@3 e2 ~ e2 ~@3 a1 ~@5 a1 ~@2 a1 ~", BU: "a1 ~@7 a1 ~@3 a1 ~ a1 ~@8 g1 ~@3 g1 ~@4",
BV: "~ f1 ~@2 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@5 c2 ~@4 c2 ~@2", BW: "~@5 c2 ~@3 c2 ~@3 c2 d2 ~@5 e2 ~@5 e2 ~@3 e2 ~",
BX: "e2 ~@4 e2 ~@3 e2 ~ e2 ~@3 a1 ~@5 a1 ~@2 a1 ~ a1 ~@5", BY: "~@2 a1 ~@3 a1 ~ a1 ~@8 g1 ~@3 g1 ~@5 f1 ~@3 f1",
BZ: "f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@5 c2 ~@4 c2 ~@7 c2", CA: "~@3 c2 ~@3 c2 d2 ~@5 e2 ~@5 e2 ~@3 e2 ~ e2 ~@4 e2",
CB: "~@3 e2 ~ e2 ~@3 a1 ~@5 a1 ~@2 a1 ~ a1 ~@7 a1 ~@3", CC: "a1 ~ a1 ~@8 g1 ~@3 g1 ~@5 f1 ~@3 f1!2 ~@3 f1 ~",
CD: "~@2 f1 ~@3 c2 ~@5 c2 ~@4 c2 ~@7 c2 ~@3 c2 ~@2", CE: "~ c2 ~ d2 ~@4 e2 ~@5 e2 ~@3 e2 ~ e2 ~@4 e2 ~@3 e2 ~ e2",
CF: "~@3 a1 ~@5 a1 ~@2 a1 ~ a1 ~@7 a1 ~@3 a1 ~ a1 ~@3", CG: "~@5 g1 ~@3 g1 ~@5 f1 ~@3 f1 ~ f1 ~@2 f1@2 ~@2 f1 ~@3",
})).s("gm_synth_bass_2").gain(0.56)
// chords · string ensemble 1
const string_ensemble_1 = note("<~@69 A B@7 ~@34>".pickRestart({
A: "~ [c5,e5,g5]@15", // C
B: "[[e5,g5,b5]@31 [a4,c5,e5]@30 [g4,b4,d5]@15 [f4,a4,c5]@15 ~ [c5,e5,g5]@30 [e5,g5,b5]@31 [a4,c5,e5]@30 [g4,b4,d5]@15 [f4,a4,c5]@15 ~@11]/7", // Em Am G F C Em Am G …
})).s("gm_string_ensemble_1").gain(0.21).pan(0.6)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@69 A B C D E F G H ~@34>".pickRestart({
A: "~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@4 [c5,e5] g5 ~@4 [c5,e5,g5] ~@3", // C
B: "~@4 [e5,g5,b5] ~@5 [e5,g5,b5] ~@4 [e5,g5,b5] ~@5 [e5,g5,b5] ~@5 [e5,g5,b5] ~@4", // Em
C: "~@2 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@4 [c5,e5,g5] ~@6", // C
D: "~ [g4,b4,d5] ~@5 [g4,b4,d5] ~@4 [g4,b4,d5] ~@5 [f4,a4,c5] ~@5 [f4,a4,c5]@2 ~@5 [c5,e5,g5]", // G F C
E: "~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@4 [c5,e5,g5] ~@7 [e5,g5,b5] ~", // C Em
F: "~@4 [e5,g5,b5] ~@4 [e5,g5,b5] ~@5 [e5,g5,b5] ~@5 [e5,g5,b5] ~@6 [c5,e5,g5] ~@3", // Em C
G: "~@2 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@4 [c5,e5,g5] ~@7 [g4,b4,d5] ~@4", // C G
H: "~ [g4,b4,d5] ~@4 [g4,b4,d5]@2 ~@4 [f4,a4,c5] ~@5 [f4,a4,c5]@2 ~@12", // G F
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.3)
// chords · percussive organ
const percussive_organ = note("<~@95 A@8 B@6 C D>".pickRestart({
A: "[~@19 c4@2 [d4,e4] [f4,a4] ~ c5@30 e5@29 ~@2 a4@29 ~ g4@12 f4@16 ~@3 c5@30 e5@29 ~@2 a4@29 ~ g4@12 f4@7, ~@22 g4@2 b4 ~@121 b4 ~@109]/8", // Dsus2 F
B: "[~@7 c4@2 [d4,e4] [f4,a4] ~ [e5,g5]@29 ~ [g5,b5]@27 ~@4 [c5,e5]@29 ~ [b4,d5]@11 ~ [a4,c5]@18 ~ [e5,g5]@29 ~ [g5,b5]@27 ~, ~@5 g4 ~@90]/6", // Dsus2 F Em G C Bm Am Em …
C: "~@3 [c5,e5]@29", D: "~ [b4,d5]@11 ~ [a4,c5]@18 ~",
})).s("gm_percussive_organ").gain(0.46).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~@4 A B C D E F G C H I J K C L I M K N O P Q R S O T U R V W X Y Z AA W AB Y AC AA AD AB AE A B AF D AG F B C D E F K
C L I AH K N L AI AJ R S O T U R V O X U Z AA W AB Y AC AA AD AB AE A AA AF AB AG AK B C D E F G C H I J K N L P AH R
N O P
>`.pickRestart({
A: "~@7 x ~@6 x ~@7 x ~@7 x ~", B: "~@5 x ~@7 x ~@7 x ~@6 x ~@3", C: "~@4 x ~@7 x ~@6 x ~@7 x ~@4",
D: "~@2 x ~@7 x ~@7 x ~@6 x ~@6", E: "~ x ~@7 x ~@6 x ~@7 x ~@6 x", F: "~@7 x ~@7 x ~@6 x ~@7 x ~",
G: "~@6 x ~@6 x ~@7 x ~@6 x ~@3", H: "~@3 x ~@6 x ~@7 x ~@6 x ~@6", I: "~ x ~@7 x ~@6 x ~@7 x ~@7",
J: "x ~@6 x ~@7 x ~@6 x ~@7 x ~", K: "~@6 x ~@6 x ~@7 x ~@7 x ~@2", L: "~@3 x ~@6 x ~@7 x ~@7 x ~@5",
M: "~@15 x ~@7 x ~@6 x ~", N: "~@4 x ~@7 x ~@7 x ~@6 x ~@4", O: "~@3 x ~@7 x ~@6 x ~@7 x ~@5",
P: "~ x ~@7 x ~@7 x ~@6 x ~@7", Q: "x ~@7 x ~@6 x ~@7 x ~@6 x ~", R: "~@6 x ~@7 x ~@6 x ~@7 x ~@2",
S: "~@5 x ~@6 x ~@7 x ~@6 x ~@4", T: "~@2 x ~@6 x ~@7 x ~@6 x ~@7", U: "x ~@7 x ~@6 x ~@7 x ~@7 x",
V: "~@5 x ~@6 x ~@7 x ~@7 x ~@3", W: "~@3 x ~@7 x ~@7 x ~@6 x ~@5", X: "~@2 x ~@6 x ~@7 x ~@7 x ~@6",
Y: "x ~@7 x ~@7 x ~@6 x ~@7 x", Z: "~@6 x ~@7 x ~@7 x ~@6 x ~@2", AA: "~@5 x ~@7 x ~@6 x ~@7 x ~@3",
AB: "~@2 x ~@7 x ~@6 x ~@7 x ~@6", AC: "~@7 x ~@6 x ~@7 x ~@6 x ~@2", AD: "~@4 x ~@6 x ~@7 x ~@6 x ~@5",
AE: "~ x ~@6 x ~@7 x ~@6 x ~@7 x", AF: "~@4 x ~@6 x ~@7 x ~@7 x ~@4", AG: "~ x ~@6 x ~@7 x ~@7 x ~@6 x",
AH: "x ~@6 x ~@7 x ~@7 x ~@6 x ~", AI: "~ x ~@7 x ~@7 x ~@14", AJ: "~@7 x ~@7 x ~@7 x ~@6 x ~", AK: "~@7 x ~@22 x ~",
})).gain(0.72)
// drums · snare
const snare = s("sd").struct(`<
~@19 A B C D E F G H I J K L M N O P G Q R S K T U V O W X Q Y S Z T AA AB AC AD F AE AF ~@3 AG C D E AH G AI R J K B
M D O AJ AK Q R S K T M AB O W X Q Y S Z AL AA AB AM AN AH Q AI S J AO B C D E F G AI R J
>`.pickRestart({
A: "~@23 x ~@8", B: "~@6 x ~@14 x ~@10", C: "~ x ~@3 x ~@2", D: "~@3 x ~@14 x ~@13", E: "~ x ~@15 x ~@14",
F: "x ~@14 x ~@14 x ~", G: "~@14 x ~@14 x ~@2", H: "~@12 x ~@9 x ~ x ~ x!2 ~ x ~ x", I: "~ x ~@9 x ~@14 x ~@5",
J: "~@9 x ~@14 x ~@7", K: "~@8 x ~@14 x ~@8", L: "~@3 x ~@7 x ~@4", M: "~@5 x ~@14 x ~@11", N: "~@3 x ~@15 x ~@12",
O: "~@2 x ~@14 x ~@14", P: "x ~@15 x ~@14 x", Q: "~@13 x ~@14 x ~@3", R: "~@11 x ~@14 x ~@5", S: "~@10 x ~@14 x ~@6",
T: "~@7 x ~@14 x ~@9", U: "~@5 x ~@9 x ~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~", V: "x ~ x ~ x ~ x!2 ~ x ~@9 x ~@12",
W: "~ x ~@14 x ~@14 x", X: "~@7 x ~@7 x", Y: "~@11 x ~@15 x ~@4", Z: "~ x ~ x", AA: "~@5 x ~@15 x ~@10",
AB: "~@4 x ~@14 x ~@12", AC: "~ x ~@7 x ~@6", AD: "~ x ~@14 x ~@15", AE: "~@13 x ~@15 x ~@2", AF: "~@3 x ~@4",
AG: "~@21 x ~@10", AH: "~@15 x ~@14 x ~", AI: "~@12 x ~@14 x ~@4", AJ: "x ~@14 x ~@9 x ~ x ~ x ~ x",
AK: "~ x ~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@8 x ~@2", AL: "~@7 x ~@24", AM: "~@2 x ~@15 x ~@8 x ~ x ~ x",
AN: "~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~@8 x", AO: "~@7 x ~@15 x ~@8",
})).gain(0.56)
// drums · pedal hat
const pedal_hat = s("hh").struct("<~@4 A B C D E F G H I J K L M N O P ~@91>".pickRestart({
A: "~@11 x ~@6 x ~@7 x ~@5", B: "~@2 x ~@6 x ~@7 x ~@6 x ~ x ~@5", C: "x ~@7 x ~@6 x ~@7 x ~@7 x",
D: "~@6 x ~@7 x ~@6 x ~ x ~@5 x ~@2", E: "~@5 x ~@6 x ~@7 x ~@7 x ~@3", F: "~@3 x ~@7 x ~@6 x ~ x ~@5 x ~@5",
G: "~@2 x ~@6 x ~@7 x ~@7 x ~@6", H: "x ~@7 x ~@6 x ~ x ~@5 x ~@7 x", I: "~@6 x ~@7 x ~@7 x ~@6 x ~@2",
J: "~@5 x ~@7 x!2 ~@5 x ~@7 x ~@3", K: "~@3 x ~@7 x ~@7 x ~@6 x ~@5", L: "~@2 x ~@7 x!2 ~@5 x ~@7 x ~@6",
M: "x ~@7 x ~@7 x ~@6 x ~@7 x", N: "~@7 x!2 ~@5 x ~@7 x ~@6 x ~@2", O: "~@5 x ~@7 x ~@6 x ~@7 x ~@3", P: "~ x ~@6",
})).gain(0.72)
// drums · triangle
const triangle = s("triangles:30").struct("<~@18 [~@12 x!3 ~] [x ~ x ~ x ~@2 x ~ x ~@22] ~@91>").gain(6.97)
// drums · shaker
const shaker = s("sh").struct(`<
~@19 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM ~@3 AN AO D AP AQ G AR
AS J AT AU AV N AW P AX R AY AZ BA BB BC BD BE BF BG BH BI AD BJ BK BL AH BM BN AK BO BP BQ BR BS BT BU BV BW BX B AR
BY BZ
>`.pickRestart({
A: "~@17 x ~ x ~ x ~@3 x!2 ~ x ~@3", B: "x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x",
C: "~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x",
D: "~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2",
E: "~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x ~ x ~",
F: "~@2 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2",
G: "x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x ~ x ~@3 x",
H: "~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x",
I: "~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~",
J: "x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~",
K: "~@2 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2",
L: "~ x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x",
M: "~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2",
N: "~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~",
O: "x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~",
P: "~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@2",
Q: "~ x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x",
R: "~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~",
S: "x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~",
T: "x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x",
U: "~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@2",
V: "~ x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x",
W: "~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~",
X: "x ~ x ~@3 x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~",
Y: "x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x",
Z: "~@3 x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@2",
AA: "~ x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3",
AB: "x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~",
AC: "x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x",
AD: "x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x",
AE: "~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@2",
AF: "~ x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3",
AG: "x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~",
AH: "x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x",
AI: "~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x",
// … 42 more lines
More by CANDY DULFER
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.