0:00/0:00
// Take Me Don't Break Me — Arabesque
// 184 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 162 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(184/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(`<
A B C D A E F G H@2 I@2 J@2 K L M@2 N@2 O@2 P Q R B S D T U S F V W X D Y Z ~@2 R AA AB AC AD AE C@2 AF AG AF F X AH ~
AI AJ AK R@2 AL AM AN ~ AO B AP AQ R AR F AS H@2 N@2 J@2 AT AU M@2 AV@2 J@2 AW L R AX D F A B D F AY AQ X AQ X AZ ~@2
AO B BA BB R B BC BD AF AQ X BE X Z ~ BF BG AK R E BH BI BJ ~ BK B F C R B D AQ X F X F X BL ~@2 R B C F BK AX F@2 BM
D X D X Z ~ BN BO ~
>`.pickRestart({
A: "d2@2 d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 a1@2", B: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 d2@2",
C: "a1 ~ a1@2 f#1@2 e1 ~ a1 ~ a1@2 f#1@2 e1 ~", D: "a1 ~ a1@2 f#1@2 e1 ~ a1 ~ a1@2 f#1@2 e1@2",
E: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 a1 ~", F: "a1 ~ a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 e1@2",
G: "a1@2 a#1@3 ~ b1@3 ~ c2@3 ~ c#2 ~", H: "[d2@13 ~ d2@2]/2", I: "[f2@27 ~ f2@4]/2", J: "[g1@13 ~ g1@2]/2",
K: "a#1@7 ~", L: "a1@2 ~@2 a1 ~ a1@2 ~@2 a1 ~ a1@3 ~", M: "[d2@27 ~ d2@4]/2", N: "[f1@13 ~ f1@2]/2", O: "[g1@15 ~]/2",
P: "a1@5 ~@3 a1@6 ~@2", Q: "a1@3 ~ a1@2 a1@2 ~@2 a1 ~ a1@3 ~", R: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 a1@2",
S: "a1@2 a1@2 f#1@2 e1 ~ a1 ~ a1@2 f#1@2 e1 ~", T: "d2@2 d2@2 b1@2 a1@2 d2 ~ d2 ~ b1@2 a1@2",
U: "d2 ~ d2 ~ b1@2 a1 ~ d2 ~ d2 ~ b1@2 b1 ~", V: "g1 ~ g1@2 e1@2 d1@2 g1 ~ g1@2 e1@2 ~@2",
W: "a1@2 a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 e1@2", X: "g1 ~ g1@2 e1@2 d1@2 g1 ~ g1@2 e1@2 d1@2",
Y: "g1 ~ g1@2 e1@2 d1 ~ g1 ~ g1@2 e1@2 d1@2", Z: "a1 ~ a1@5 ~", AA: "d2 ~ d2@2 b1@2 a1 ~ d2 ~ d2@2 b1@2 a1@2",
AB: "a1@2 a1 ~ f#1@2 e1 ~ a1 ~ a1@2 f#1 ~ e1 ~", AC: "a1 ~ a1 ~ f#1@2 e1 ~ a1 ~ a1@2 f#1@2 e1@2",
AD: "d2 ~ d2@2 b1@2 a1 ~ d2 ~ d2 ~ b1@2 a1 ~", AE: "d2 ~ d2 ~ b1 ~ a1 ~ d2 ~ d2 ~ b1 ~ d2@2",
AF: "g1 ~ g1@2 e1@2 d1@2 g1 ~ g1@2 e1@2 d1 ~", AG: "a1 ~ a1@2 f#1@2 e1 ~ a1 ~ a1@2 f#1@2 a1@2",
AH: "a1@2 ~@2 a1@5 ~@7", AI: "d2@4 e2@4 f2@4 f#2@3 ~", AJ: "g2 ~ g2@2 e2@2 d2 ~ g2@2 g2@2 e2@2 d2@2",
AK: "g2 ~ g2@2 e2@2 d2@2 g2 ~ g2@2 e2@2 g2@2", AL: "g2 ~ g2@2 e2@2 d2@2 g2 ~ g2@2 e2@2 d2@2",
AM: "g2 ~ g2@2 e2@2 d2 ~ g2 ~ g2@2 e2@2 d2 ~", AN: "a2 ~@7", AO: "d2!2 b1 a1 d2!2 b1 a1",
AP: "a1 ~ a1@2 f#1@2 e1 ~ a1 ~ a1 ~ f#1@2 e1 ~", AQ: "a1 ~ a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 a1@2",
AR: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2 ~ b1@2 a1 ~", AS: "a1 a#1@2 b1@2 c2@2 c#2, ~@14 d#2 ~", AT: "a#1",
AU: "a1@2 ~@2 a1@2 a1@2 ~@2 a1 ~ a1@4", AV: "[f1@27 ~ f1@4]/2", AW: "a1@4 ~@4 a1@5 ~@3",
AX: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2@2 b1@2 d2 ~", AY: "g1 ~ g1@2 e1@2 d1@2 g1 ~ g1@2 e1@3 ~", AZ: "a1 ~ a1@6",
BA: "a1 ~ a1@2 f#1@2 e1@2 a1@2 a1@2 f#1@2 e1@2", BB: "a1@2 a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 a1@2",
BC: "a1 ~ a1 ~ f#1@2 e1@2 a1 ~ a1@2 f#1@2 e1 ~", BD: "a1 ~ a1 ~ f#1@2 e1 ~ a1 ~ a1@2 f#1@2 a1@2",
BE: "a1 ~ a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 a1 ~", BF: "d2 e2 f2 f#2", BG: "g2!2 e2 d2 g2!2 e2 d2",
BH: "g2 ~ g2@2 e2 ~ d2@2 g2 ~ g2@2 e2@2 d2@2", BI: "g2 ~ g2 ~ e2@2 d2 ~ g2 ~ g2 ~ e2@2 d2@2", BJ: "a1 ~@3",
BK: "d2 ~ d2@2 b1@2 a1@2 d2 ~ d2 ~ b1@2 a1@2", BL: "a1@2 ~@2 a1@11 ~", BM: "g1 ~ g1@2 e1@2 d1@2 g1@2 g1@2 e1@2 d1@2",
BN: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~", BO: "d1@3 ~ d1@3 ~@9",
})).s("gm_electric_bass_finger").gain(0.5)
// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
A B C@2 B D C E F@2 G@2 H@2 I J K@2 L@2 H@2 M N B O C@2 B@2 C@2 P C P C P Q ~@2 B@2 C@2 B@2 C@2 P C P C P R ~ S P@2 B
D T U V ~ B@2 C@2 W D C X F@2 Y@2 H@2 Z AA F@2 AB@2 H@2 AC N B@2 C@2 B@2 AD C P C P C P AE@2 ~ B@2 C AF B@2 AG C P C P
C P Q ~ S AH P B@2 AI P AJ ~ B@2 C@2 B@2 C@2 P C AK C P Q ~@2 B@2 C@2 B@2 C@2 P C P C P AE@2 AL AM@2
>`.pickRestart({
A: "[d4,a4] ~ [d4,a4] ~ [d4,b4]@2 [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~", // D5 G D5 G D5
B: "[d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~", // D5 G D5 G D5
C: "[a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~", // A5 D A5 D A5
D: "[d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,b4] ~", // D5 G D5 G
E: "[a3,e4] ~ [a#3,f4]@3 ~ [b3,f#4]@3 ~ [c4,g4]@3 ~ [c#4,g#4] ~", F: "[[d4,a4]@27 ~ [d4,a4]@4]/2",
G: "[[f3,c4]@27 ~ [f3,c4]@3 ~]/2", H: "[[g3,d4]@26 ~@2 [g3,d4]@3 ~]/2", I: "[a#3,f4]@15 ~",
J: "[a3,e4]@2 ~@2 [a3,e4] ~ [a3,e4]@3 ~ [a3,e4] ~ [a3,e4]@4", K: "[[d4,a4]@27 ~ [d4,a4]@4, g4 ~@31]/2",
L: "[[f3,c4]@27 ~ [f3,c4]@4]/2", M: "[a3,e4]@4 ~@4 [a3,e4]@5 ~@3",
N: "[a3,e4]@2 ~@2 [a3,e4] ~ [a3,e4]@2 ~@2 [a3,e4] ~ [a3,e4]@2 ~@2", // A5
O: "[d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4]@2 [d4,b4] ~", // D5 G D5 G
P: "[g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", Q: "[a3,e4] ~@3 [a3,e4]@12",
R: "[a3,e4] ~ [a3,e4]@6", S: "[d3,d4] [e3,e4] [f3,f4] [f#3,f#4]",
T: "[g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,e4] ~", // G5 C G5 C
U: "[g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", V: "[a3,e4]@3 ~@13",
W: "[d4,g4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~ [d4,a4] ~ [d4,a4] ~ [d4,b4] ~ [d4,a4] ~", // Dsus4 D5 G D5 G D5
X: "[a3,e4] ~ [a#3,f4]@4 [b3,f#4]@3 ~ [c4,g4]@3 ~ [c#4,g#4]@2", Y: "[[f3,c4]@26 ~@2 [f3,c4]@3 ~]/2",
Z: "[a#3,f4]@7 ~", AA: "[a3,e4]@2 ~@2 [a3,e4] ~ [a3,e4]@3 ~ [a3,e4] ~ [a3,e4]@3 ~", AB: "[[f3,c4]@13 ~ [f3,c4]@2]/2",
AC: "[a3,e4]@3 ~ [a3,e4]@3 ~", // A5
AD: "[a3,d4,e4] ~ [a3,d4,e4] ~ [a3,f#4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~", // Asus4 D A5 D A5
AE: "[[a3,e4] ~ [a3,e4]@7 ~@7]/2", // A5
AF: "[a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4,f#4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~", // A5 D F#m7 A5 D A5
AG: "[a3,e4] ~ [a3,e4] ~ [a3,f#4,g#4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4] ~ [a3,e4] ~", // A5 D A5 D A5
AH: "[g3,d4,e4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", // Em7 G5 C G5 C G5
AI: "[g3,d4,e4] ~ [f#3,g3,d4] ~ [g3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", AJ: "[a3,e4] ~@7",
AK: "[g3,d4] ~ [g3,d4] ~ [g3,a3,e4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,e4] ~ [g3,d4] ~", // G5 A7 G5 C G5
AL: "[a3,e4]@3 ~ [a3,e4]@3 ~ [a3,e4]@3 ~ [a3,e4]@4", AM: "[[d3,a3,d4]@2 ~@2 a3@7 ~ a3 ~@19, ~@4 [d3,d4]@15 ~@13]/2",
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.3)
// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
~@7 A B@2 C@4 D E B@2 F@2 G@2 H I ~@15 J K@2 ~@13 L M@2 N O P Q R ~@8 S B@2 F@2 G@2 T U V@2 F@2 G@2 W X Y@2 ~@13 J Z@2
AA@2 Z@2 AB@2 AC AD AE AF AG AH ~ L AI@6 AJ ~@16 J AK@2 AA@2 AL@2 AM@3 AF AE AF AG AN ~ AO AP ~
>`.pickRestart({
A: "[a2,e3]@2 [a#2,f3]@4 [b2,f#3]@3 ~ [c3,g3]@3 ~ [c#3,g#3]@2", B: "[d3,a3]/2", C: "[[f2,c3] [g2,d3]]/4",
D: "[a#2,f3]", E: "[a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@4", F: "[f2,c3]/2", G: "[g2,d3]/2",
H: "[a2,e3]@6 ~@2 [a2,e3]@5 ~@3", I: "[a2,e3]@2 ~@2 [a2,e3] ~ [a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@4",
J: "~@2 a3 b3@2 a3 f#3@2", K: "[d3@15 ~]/2", L: "[d2,d3] [e2,e3] [f2,f3] [f#2,f#3]",
M: "[[g2,g3]@10 c#4@2 d4@2 ~@10 d4@7 ~, ~@14 g4@17 ~]/2", N: "~@4 [a4,d5]@2 ~@2 [a4,d5]@3 ~ b4 ~ [a4,d5]@2",
O: "~@2 [a4,d5]@2 b4 ~ [a4,d5] ~ d4 ~ d4 ~ e4 ~ f#4 ~", P: "~@2 [a4,d5]@2 ~@2 b4 ~ [a4,d5]@4 b4 ~ [b4,e5]@2",
Q: "~@2 [a4,d5]@2 ~@2 b4 ~ [a4,d5] ~ [a4,d5]@2 b4@2 a4 ~", R: "[a3,a4]@3 ~@13",
S: "[a2,e3] [a#2,f3]@2 [b2,f#3]@2 [c3,g3]@2 [c#3,g#3]", T: "f3@7 ~, a#2@5 ~@3",
U: "[a2,e3]@2 ~@2 [a2,e3]@2 [a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@4", V: "[d2,d3]/2", W: "[a2,e3] ~ [a2,e3] ~",
X: "[a2,e3]@3 ~ [a2,e3] ~ [a2,e3]@2 ~@2 [a2,e3] ~ [a2,e3]@4", Y: "[[d2,d3]@11 ~@5]/2",
Z: "[d3@10 a3 b3@2 a3 f#3@2]/2", AA: "[a2@10 a3 b3@2 a3 f#3@2]/2", AB: "[a2@10 e3 f#3@2 e3 d3@2]/2", AC: "g2",
AD: "a2", AE: "[g2,d3]", AF: "[a2,e3]", AG: "[g2,d3,g3]", AH: "[a2,e3,a3]@2 ~@2 [a2,e3,a3]@3 ~@9",
AI: "[g3@10 a#3@2 b3@2 [c#4,g4]@2 ~@2 g4@12 ~@4 [a4,d5] ~@5 [a4,d5]@5 ~@5 [a4,d5] ~@5 [a4,d5]@8 a#4@2 b4@2 d5@2 a#4@2 b4@2 d5@2 a#4@2 b4 ~ d5@2 a#4 ~ b4@2 e5@2 ~@2 d5@2 ~@4, g2@31 ~@65, ~@9 d4@38 ~]/6", // C#dim D5
AJ: "[g#4,a4,d5] ~@7", AK: "[d3@19 ~ a3@2 b3@4 a3@2 f#3@4]/2", AL: "[~@10 a3 b3@2 a3 f#3@2, d3@29 ~@3]/2",
AM: "[~@10 e3 f#3@2 e3 ~@2 g2@8, a2@2 ~, ~@7 d3@5]/3", AN: "[a2,e3,a3] ~ [a2,e3,a3]@6", AO: "[a2,a3]",
AP: "[d2,d3]@3 ~ [d2,d3]@9 ~ d2 ~", // D
})).s("gm_overdriven_guitar").gain(0.48).pan(0.7)
// chords · piano · "A.PIANO"
const piano = note(`<
A@2 B@2 C@2 D E F@2 G@2 H@2 I J K@2 L@2 M@2 N O P@2 Q@2 R@2 S@2 T U V W X Y@2 ~ Z@2 Q@2 K@2 AA@2 AB AC AD AE AF AG@2
AH AI@2 AJ AK@2 AL AM ~ AN@2 AA@2 AO@2 AP@2 AQ@2 AR@2 AS@2 AT AU AV@2 AW@2 AX@2 AY AZ BA@2 Q@2 BB@2 BC@2 BD BE BF D BG
BH@2 ~ BI@2 BJ@2 BK@2 BL@2 BM BN BO BP BQ BR ~ BS BT@6 BU ~ BV@2 BW@2 K@2 BX@2 BF BY BZ CA CB Y@2 CC CD@2 CE@2 CF@2
CG@2 CH AC CI CJ CI CK@2 ~ CL@2
>`.pickRestart({
A: "[[f#4,a4]@29 ~@3, [d3,d4]@27 ~@5]/2", B: "[[c#4,e4,a4]@13 ~@3, a3@3 ~]/2", C: "[[d3,d4,f#4,a4]@25 ~@7]/2",
D: "[a3,c#4,e4,a4]@11 ~@5", E: "[a2,a3] [a#2,a#3]@2 [b2,b3]@2 [c3,c4]@2 c#3, ~@14 c#4 ~", F: "[d3,d4]/2",
G: "[[f3,c4]@15 ~, a3@7 ~]/2", H: "[[g2,g3]@31 ~, [b3,d4]@29 ~@3]/2", I: "[a#2,f3,a#3,d4]@15 ~, e3 ~@15",
J: "[a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@2 ~@2", // A
K: "[[d3,a3,d4,f#4]@15 ~]/2", L: "[[f2,a3,c4,f4]@15 ~]/2", M: "[[g2,g3,b3,d4]@31 ~]/2",
N: "[a2,a3,c#4,e4]@5 ~@3 [a2,a3,c#4,e4]@6 ~@2", // A
O: "[a2,a3,c#4,e4]@2 ~@2 [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@2 ~@2 [a2,a3,c#4,e4] ~ [a2,a3,c#4]@2 ~@2, ~@12 e4 ~@3", // A
P: "[[a3,d4,f#4]@31 ~, d3@29 ~@3]/2", Q: "[[a2,a3,c#4,e4]@15 ~]/2", R: "[~ c#3 ~@30, d3, [a3,d4,f#4]@15 ~]/2",
S: "[[a3,c#4]@7 ~, e4@15 ~, a2@3 ~]/2", T: "[g3,b3,d4,g4]@7 ~", U: "[a3,c#4,e4]@15 ~", V: "[g3,g4]@7 ~, [b3,d4]@3 ~",
W: "[a3,c#4]@7 ~, [e4,a4]@3 ~", X: "[g3,d4,g4]@7 ~, b3@3 ~", Y: "[[a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@9 ~@5]/2",
Z: "[[d3,a3,d4,f#4]@31 ~]/2", AA: "[[a2,a3,c#4,e4]@13 ~@3]/2", AB: "[g2,g4]@15 ~, [b3,d4]@13 ~@3",
AC: "[a2,a3,c#4,e4]@7 ~", AD: "[g2,b3,d4,g4]@11 ~@5", AE: "[a3,c#4,e4]@13 ~@3, [a2,a4]@11 ~@5",
AF: "[b3,d4,g4]@5 ~@3, g3 ~", AG: "[[a2,a3,c#4,e4,a4] ~ [a2,a3,c#4,e4,a4]@11 ~@3]/2",
AH: "[d3,d4] [e3,e4] [f3,f4] f#3, ~@6 f#4 ~", AI: "[~@18 g5!2 ~@4 [d5,g5]@4 ~@4, g3@31 ~, g4@27 ~@5, ~@9 d5 ~@6]/2",
AJ: "~@2 f6 ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~", // Dm
AK: "[d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~", // Dm
AL: "[d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [d6,f6] ~ [a5,d6] ~ d6 ~ a5 ~", AM: "~ [a5,b5] ~@14",
AN: "[[a3,d4,f#4]@29 ~@3, d3@31 ~]/2", AO: "[[d3,f#4]@15 ~, [a3,d4]@7 ~]/2", AP: "[[a2,a3,c#4,e4]@21 ~@11]/2",
AQ: "[[d3,d4]@15 ~]/2", AR: "[[f2,f3,a3,c4]@15 ~]/2", AS: "[[g2,g3]@7 ~, [b3,d4]@13 ~@3]/2",
AT: "[a#2,f3,a#3,d4]@13 ~@3", // A#
AU: "[a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@2, ~@12 a2 ~@3", // A
AV: "[~ c#4 ~@30, [d3,a3,d4,f#4]@29 ~@3]/2", AW: "[[c3,a3,c4,f4]@15 ~, f2@7 ~]/2",
AX: "[[g2,g3,b3]@7 ~, [d3,d4]@15 ~]/2", AY: "[a2,e3,a3,c#4,e4]@6 ~@2 [a2,e3,a3,c#4,e4]@5 ~@3",
AZ: "[a2,a3,c#4,e4]@2 ~@2 [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@3 ~", // A
BA: "[~ d3@31, [a3,d4,f#4]@31 ~, ~ c#4 ~@30]/2", BB: "[~ d#4 ~@30, [d3,a3,d4,f#4]@31 ~]/2",
BC: "[~ c#4@28 ~@3, [a3,e4]@15 ~, a2@25 ~@7]/2", BD: "[g3,b3,d4]@7 ~, g4@3 ~", BE: "~ a3@12 ~@3, [c#4,e4,a4]@13 ~@3",
BF: "[b3,d4,g4]@11 ~@5, g3@15 ~", BG: "[b3,d4,g4]@13 ~@3, g2@15 ~, f2 ~@15",
BH: "[[a2,a3,c#4,e4,a4]@2 ~@2 [a2,a3,c#4,e4,a4]@25 ~@3]/2", BI: "[[d3,f#4], [a3,d4]@15 ~]/2",
BJ: "[[a2,a3,c#4,e4]@31 ~]/2", BK: "[[d3,f#4]@31 ~, [a3,d4]@29 ~@3]/2", BL: "[[a3,e4]@15 ~, [a2,c#4]@7 ~]/2",
BM: "[g3,g4]@15 ~, [b3,d4]@13 ~@3", BN: "[a3,c#4]@13 ~@3, e4@15 ~", BO: "[b3,d4,g4]@13 ~@3, g2",
BP: "[c#4,e4,a4]@13 ~@3, a2@15 ~", BQ: "[b2,d4,g4,b4]@11 ~@5", BR: "[a2,c#4,e4,a4]@2 ~@2 [a2,c#4,e4,a4]@11 ~",
BS: "[d3,d4]@4 [e3,e4]@3 ~ [f3,f4]@4 [f#3,f#4]@4", // D E F F#
BT: "[g4@13 ~@5 d5 ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ d5@2 ~@2, d4@95 ~, g3@5 ~@11]/6", // Dm
BU: "a4@5 ~@11", BV: "[[d3,a3,f#4]@31 ~, d4@29 ~@3]/2", BW: "[[a2,a3,c#4,e4]@29 ~@3]/2", BX: "[[a2,a3,c#4,e4]@7 ~]/2",
BY: "[a3,c#4,e4,a4]@3 ~", BZ: "[b3,d4,g4]@3 ~, g3", CA: "[a3,c#4,e4,a4]@13 ~@3", CB: "[b3,d4,g4]@3 ~, g3@7 ~",
CC: "~@12 [a2,a4]@3 ~", CD: "[[d3,d4]@3 ~@13 [a3,f#4]@15 ~, ~ d3@7, ~@2 d4@13 ~]/2",
CE: "[[a2,a3,c#4,e4]@2 ~@7 f#4 ~@22, ~ [a2,e4]@3, ~@4 [a3,c#4]@11 ~]/2", // A A5 A
CF: "[[d3,a3,d4,f#4]@3 ~@5 [d3,f#4]@24, ~@4 a3@11 ~, ~@2 d4@5 ~]/2", // D
CG: "[~ a2@2 ~@5 [a3,c#4]@20 ~@4, [a3,c#4,e4]@3 ~@5 a2@17 ~@7, ~ f#4 ~@6 e4@22 ~@2]/2", // A
CH: "[b3,d4,g4]@13 ~@3, g2@15 ~", CI: "[g2,b3,d4,g4]@7 ~", CJ: "[a2,a3,e4]@7 ~, c#4@3 ~",
CK: "[[a3,c#4,e4] ~ [a2,a3,c#4,e4]@9 ~@5, a2 ~@31]/2", CL: "[[d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4]@19 ~@9, ~ f#4 ~@6]/2",
})).s("gm_piano").gain(0.54).pan(0.4)
// other · drawbar organ · "ELEC ORGAN"
const drawbar_organ = note(`<
A B C@2 D E F G H ~@15 I B J@2 K B J@2 ~@6 L M N B O@2 P@2 Q@2 ~@7 R S ~@3 T@2 ~@2 I B U@2 K V W G X ~@15 Y@2 Z@2 AA@2
AB@2 ~@6 AC AD N B O@2 K B AE@2 ~@7 R AF@2 AG AH AI AJ AK ~ AL@2 AE@2 I B AE@2 ~@6 L AM K B AN@2 I B AO@2 ~@10
>`.pickRestart({
A: "a5@7 ~ a5@7 ~", B: "~@2 a5 b5@2 a5 f#5@2", C: "[e5@9 ~@7]/2", D: "a5@7 ~ a5@5 ~@3",
E: "~@2 b5 d6@2 b5 a5@2, ~@3 a5@2 ~@11", F: "e5@13 ~@3", G: "a4 a#4@2 b4@2 c5@2 c#5", H: "d5@3 ~@5", I: "a5@3 ~ a5@4",
J: "[e5@7 ~ e5@13 ~@11]/2", K: "a5@7 ~ a5@8", L: "~ d6 b5 a5", M: "d6@4 a5@2 b5@3 ~ a5@2 f#5@2 ~@2", N: "d5@7 ~ a5@8",
O: "[e5@7 ~ e5@10 ~@14]/2", P: "[a5@6 ~@2 a5@11 ~ a5@2 b5@4 a5@2 f#5@4]/2", Q: "[e5@7 ~ e5@15 ~@9]/2",
R: "d5 e5 f5 f#5", S: "g5", T: "[~@4 f5@2 ~@2 f5@2 d5 ~@3 f5@4 d5 ~@3 f5@4 d5 ~ f5@2 ~@2]/2",
U: "[e5@7 ~ e5@21 ~@3]/2", V: "~ a5 b5 d6@2 b5 a5@2", W: "e5@7 ~ e5@6 ~@2", X: "d5@3 ~",
Y: "[a5@7 ~ a5@11 ~ a5@2 b5@4 a5@2 f#5@4]/2", Z: "e5/2", AA: "[a5@7 ~ a5@10 ~@2 a5@2 b5@4 a5@2 f#5@3 ~]/2",
AB: "[e5@3 ~ e5@9 ~@3]/2", AC: "~@5 d6@3 b5@4 ~ a5@3", AD: "d6@2 a5 b5@2 a5 f#5 ~", AE: "[e5@7 ~ e5@22 ~@2]/2",
AF: "g5/2", AG: "f5 d5 ~ d5 f5 d5 ~ d5", AH: "f5@2 d5@2 f5@2 d5@2 f5@2 d5@3 ~ d5@2",
AI: "f5@2 d5@2 ~@2 d5@2 f5@2 d5@3 ~ d5@2", AJ: "f5@2 d5@2 f5@2 d5@2 f5@2 d5@3 ~ d5 ~", AK: "a5 ~@7",
AL: "[a5@7 ~ a5@10 ~@2 a5@2 b5@4 a5@2 f#5@4]/2", AM: "d6@4 a5@2 b5@4 a5@2 f#5@3 ~", AN: "[e5@7 ~ e5@20 ~@4]/2",
AO: "[e5@7 ~ e5@16 ~@8]/2",
})).s("gm_drawbar_organ").gain(0.42).pan(0.6)
// other · alto sax
const alto_sax = note(`<
~@26 A B ~@2 C D ~@7 E F ~ G H ~@2 A I ~@7 J K ~@33 A L ~@2 A B ~@7 E M ~ A N ~@2 A N O ~@6 J P ~@9 Q R ~@2 S@2 ~@7 E
T ~ A U ~@2 V W ~@7 X Y ~
>`.pickRestart({
A: "~@4 a3@2 ~@2 a3@5 ~@3", B: "a3@2 ~@2 a3 ~ a3@2 ~@2 a3 ~ a3@3 ~", C: "~@4 a3@3 ~ a3@4 ~@4",
D: "a3@3 ~ a3 ~ a3@3 ~ a3 ~ a3@3 ~", E: "~@2 a4 b4@2 a4 f#4@2", F: "d4@7 ~", G: "~@2 a3 ~ a3@2 ~ a3",
H: "~@2 a3 ~ a3@3 ~ a3@5 ~@3", I: "a3@3 ~ a3 ~ a3@8 ~@2", J: "d4 e4 f4 f#4", K: "g4@3 ~, f#4 ~@15",
L: "a3@3 ~ a3 ~ a3@3 ~ a3 ~ a3@4", M: "d4@13 ~@3", N: "a3@2 ~@2 a3 ~ a3@3 ~ a3 ~ a3@4", O: "a3 ~@15", P: "g4@7 ~@9",
Q: "~@3 a3@3 ~@2 a3@4 ~@2 a3@2", R: "~@2 a3 ~ a3@3 ~ a3@3 ~ a3@3 ~",
S: "[~@4 a3@2 ~@2 a3@4 ~@2 a3@4 ~@2 a3 ~ a3@3 ~ a3 ~ a3@4]/2", T: "d4@15 ~", U: "a3@2 ~@2 a3 ~ a3@2 ~@2 a3 ~ a3@4",
V: "~@2 a3 ~ a3@3 ~", W: "a3@2 ~@2 a3 ~ a3@3 ~ a3 ~ a3@3 ~", X: "a4", Y: "d4@2 ~@2 d4@3 ~@9",
})).s("gm_alto_sax").gain(0.5).pan(0.4)
// drums · kick
const kick = s("bd").struct(`<
A@8 B ~ B ~ B ~ B@2 A@21 C ~ D A@13 C B A@7 B ~ A@8 B ~ B ~ B ~ B@2 A@21 C ~@2 A@13 C ~ A@7 B ~ A@13 C ~@2 A@13 C ~@2
C ~
>`.pickRestart({
A: "x!2", B: "x", C: "x!2 ~@2", D: "~@3 x",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
A@7 B C D ~ D ~ E ~ F A@3 G A G A F A@3 G A@3 H A@4 I ~@2 F A@7 H A@4 I ~@2 J A@6 ~ E A@7 K ~ E ~ D ~ D ~ F A@7 F A@7
H A@4 I ~@2 F A@7 H A@4 I ~@2 L A@6 ~ D A@7 H A@5 ~@2 F A@7 H A@5 ~@2 M C ~
>`.pickRestart({
A: "~ x ~ x", B: "x!2 ~ x ~ x ~ x", C: "x", D: "~@11 x!2 ~@3", E: "~@5 x!2 ~", F: "x ~ x!2 ~ x!2 ~",
G: "~@4 x ~@6 x!2 ~@3", H: "~@2 x ~@2 x!3", I: "~@2 x ~@2 x!2 ~", J: "x ~ x!5 ~ x!3 ~ x ~@3",
K: "x ~@2 x ~@2 x ~@3 x ~@3 x ~", L: "x ~ x!4 ~ x!4 ~ x ~@3", M: "x!2 ~ x!4 ~ x!4 ~ x!2 ~",
// … 18 more lines
More by
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.