0:00/0:00
// Dimmi chi dorme accanto a me — Zero
// 186 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 272 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(186/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.
// other · piano
const piano = note("<~@119 [f#2@3 d3@3 a3@2] ~@99 [f#2@3 d3@3 a3@2] ~@52>").s("gm_piano").gain(0.45)
// bass · electric bass finger
const bass = note(`<
A B C D E F G H I B C D E F G H I B J K L M N O P B C D E F G Q R S T U V@2 W X Y Z L AA I B C D AB B J K L M N O P B
C D AC F G Q AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AI AY AZ BA BB BC BD BE BF BG BH BI BJ BK
BL BM BN BO BP BQ BR BS BT BU BN BV BW BX AI BY BZ CA BB C CB CC CD CE CF CG BB CH CI CJ BJ BK BL BM BN BO CK CL CM CN
CO CP B C D E F G H I B J K L M N O P B C D E F G CQ CR AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT CS AV AW AX AI
AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS CT CU BN BV BW BX AI BY BZ CA BB C CB CC CD CE CF CG BB
CH CI CV BJ BK BL CW BN BO CX CY BJ BK BL BM BN BO BP BQ BR BS CT CU BN BV BW CZ BJ BK BL BM BN BO BP BQ BR BS CT CU
BN BV DA DB DC@2 ~
>`.pickRestart({
A: "~@6 g2 ~ g1@8", B: "a1@11 ~ a1 ~ e1 ~", C: "a1 g1", D: "f1@11 ~ f1 ~ c1 ~", E: "f1 e1", F: "d1@15 ~",
G: "g1@5 ~ g1@8 g1 ~", H: "c2@13 ~@3", I: "b1 e1", J: "a1@6 a1 ~ g1@8", K: "f1@8 f1@4 f1 ~@3", L: "f1@6 f1 ~ e1@8",
M: "d1@11 ~ d1@2 ~@2", N: "g1@7 ~ g1@2 d1 ~ d1@4", O: "c1@7 ~ c1@2 ~@2 c1 ~ c1@2", P: "b1@4 b1 ~ b1 ~ e1@4 e1@4",
Q: "c1@13 ~ c1 ~", R: "c1@3 c2", S: "f1@7 ~ f1 ~@3 f1 ~ f1 ~", T: "f1@6 f1@3 ~ f1@6", U: "b1@10 ~@2 b1 ~ b1@2",
V: "[g#1@13 ~@3 a1@7 ~ a1@2 ~@4 a1 ~, ~@14 g#1@5 ~@13]/2", W: "a1@5 ~ a1 ~ g1@7 ~", X: "f#1@6 ~@4 f#1 ~@3 f#1 ~",
Y: "f#1@5 ~ f#1 ~@3 f#1 ~ f#1@2 f#1 ~", Z: "f1@8 f1@4 f1 ~ f1 ~", AA: "d1@8 ~@4 d1 ~ d1@2", AB: "e1 e2",
AC: "f1@6 f1 ~@7 f1 ~", AD: "c1@3 c1", AE: "c#1@12 ~@2 c#1 ~", AF: "c#1@5 ~ g1@2 ~@4 c#1 ~ c#1@2",
AG: "f#1@12 ~@2 f#1 ~", AH: "a#1@7 ~@9", AI: "b1@9 ~@3 b1 ~ b1 ~", AJ: "b1@6 b1 ~@5 b1 ~ b1@2",
AK: "e1@9 ~@3 e1 ~ a1 ~", AL: "g#1@9 ~@5 g#1 ~", AM: "a1@6 ~@8 a1 ~", AN: "a1@12 a1 ~ a1@2", AO: "d1@6 ~@8 a1 ~",
AP: "d1@7 ~ d2@8", AQ: "f1@7 ~@5 f1 ~ f1 ~", AR: "f1@6 ~@2 f1@7 ~", AS: "e1@9 ~@3 e1 ~ g#1 ~", AT: "g#1@14 g#1 ~",
AU: "c#2@11 ~@3 c#2 ~", AV: "a1@15 ~", AW: "f#1@10 ~@4 b1 ~", AX: "a#1@5 ~ f#1@2", AY: "b1@15 ~",
AZ: "e1@12 e1 ~ a1 ~", BA: "g#1@5 ~ g#1@3 ~ g#1 ~ g#1 ~@3", BB: "a1@6 ~@6 a1 ~ a1 ~", BC: "a1@4 ~@2 a1 ~@5 a1 ~ a1@2",
BD: "d#1@6 ~@8 d#1 ~", BE: "d#1@3 d#1@3 d#2@2", BF: "d2@11 ~ d2 ~@3", BG: "d2@12 d2 ~ a1@2", BH: "d1@5 ~ d1@2",
BI: "e1@8 f#1@7 ~", BJ: "g1@11 ~ g1 ~ g1 ~", BK: "g1@6 g2@7 ~ g1 ~", BL: "e1@5 ~@7 e2 ~ b1@2", BM: "e1@3 ~ e1@4",
BN: "a1@9 ~@3 a1 ~ a1 ~", BO: "a1@5 ~ a1@4 a1@4 ~@2", BP: "d1@9 ~@5 a1@2", BQ: "d2@7 ~ c2@8", BR: "b1@11 ~@3 b1 ~",
BS: "b1@6 b1@7 ~ b1 ~", BT: "e1@5 ~@9 e2 ~", BU: "~ e2 d2 d#2 e2@4", BV: "a1@7 ~ a1@7 ~", BW: "d#1@5 ~@7 d#1 ~ d#1@2",
BX: "d1@7 ~ c2@8", BY: "b1!2", BZ: "e1@10 ~@2 b1 ~ e2 ~", CA: "e1@7 ~ g#1@7 ~", CB: "f#1@6 ~@6 f#1 ~ f#1 ~",
CC: "d1@4 a1@2 d2@2 c2@7 ~", CD: "b1@10 ~@4 b1 ~", CE: "b1@7 ~", CF: "f1@5 ~@9 f1 ~", CG: "e1@4 g#1@2 e1 g#1",
CH: "a1@5 ~ a1@4 a1@5 ~", CI: "d#1@13 ~ a1@2", CJ: "d2@7 ~ d2@8", CK: "d#1@6 ~ d#1", CL: "d#1@7 ~ d2@8",
CM: "g1@10 ~@4 g1 ~", CN: "g1 d2", CO: "g2@13 ~ g1 ~", CP: "g0", CQ: "c1@11 ~@3 c1 ~", CR: "c1 c2",
CS: "c#2@11 ~ c#2@2 e2@2", CT: "e1@5 ~@9 e1 ~", CU: "e2@4 g2 e2 b1@2", CV: "d2@11 ~ d2@4", CW: "e2 e2@3",
CX: "d#2@9 ~@3 a1 ~ d#2 ~", CY: "d2@7 ~ d1@8", CZ: "d1 a1 d2@2", DA: "d#1@5 ~@7 d#1 ~ d#1 ~",
DB: "e2 ~ d2 ~ b1 a1 g1 e1", DC: "g1/2",
})).s("gm_electric_bass_finger").gain(0.45)
// chords · epiano2
const epiano2 = note(`<
~ A@2 B@2 C D E F G@2 H@2 I J K F ~@28 A@2 L M A@2 B@2 C D E N O@2 P Q R S T@2 U@2 V W X@2 Y Z AA@2 AB AC AD@2 AE AF
U@2 V W X@2 Y Z AA@2 AG@2 AH@2 AI AJ AK@2 AL AM AN@2 AO AP AQ@2 AR AS@4 AT AU@2 AV AW AX@2 AY@2 AZ@2 BA BB BC@2 BD BE
AK@2 AL AM AN@2 BF@2 BG@3 BH A@2 B@2 C D E F ~@8 A@2 B@2 C BI BJ@2 U@2 V W X@2 Y Z AA@2 AB AC AD@2 AE AF BK@2 V BL X@2
Y Z AA@2 AG@2 AH@2 AI AJ AK@2 AL AM AN@2 AO AP AQ@2 AR AS@4 AT AU@2 AV AW AX@2 AY@2 AZ@2 BA BB BM@2 BD BE AK@2 AL AM
AN@2 BF BN AK@2 AL AM AN@2 AO AP AQ@2 AR AS@4 BO AK@2 AL AM AN@2 AO AP AQ@2 AR AS@4 BP@4
>`.pickRestart({
A: "[[a4,c5]@23 ~ [g4,b4]@8]/2", B: "[[e4,a4]@3 [e4,g4]]/2", C: "[c4,f4]", D: "e4@9 d4@7, g4@15 ~", E: "[g4,b4]",
F: "a4 g#4, d5@15 ~", G: "[[a5,c6]@23 ~ [g5,b5]@8]/2", H: "[[e5,a5]@3 [e5,g5]]/2", I: "[c5,f5]", J: "[g4,c5,f5]",
K: "[e5,g5]", L: "[e4,a4]", M: "[g#3,d4,e4]@15 ~", N: "[a3,d4,e4] [g#3,d4]", O: "[[a4,c5]@23 ~ [g4,a4,b4]@8]/2",
P: "[e4,a4]@15 ~", Q: "[c5,a5]@15 ~", R: "[c4,f4,a4]", S: "[d4,f4,b4]", T: "[g4,b4,e5]/2",
U: "[~@3 g5, [g4,b4,e5]]/2", V: "[b4,c#5,f#5]", W: "[c#4,f#4,a#4,c#5]", X: "[f#4,b4,d5]/2", Y: "[e4,a4,d5]@15 ~",
Z: "~@3 e5@5, [g#4,b4]", AA: "[[e4,g4,c5]@31 ~]/2", AB: "[g4,a4,d5]@15 ~", AC: "[f#4,a4,d5]", AD: "[d4,f4,a4,b4]/2",
AE: "[e4,a4,b4]", AF: "[g#4,b4,e5]", AG: "[[c4,g4,a4]@16 [a4,c5]@7 ~ [c5,g5]@8, d#4@31 ~, ~ g4]/2",
AH: "[~@11 e5@2 g5@3, [c4,e4,g4,b4]@31 ~, ~@20 c5@7 ~@5]/2", AI: "[a4,d5,f#5]", AJ: "[c5,e5,g5] [d5,f#5,a5]",
AK: "[[d4,g4,a4,b4]@31 ~]/2", AL: "[a3,d4,f#4]@6 [b3,e4,g4]@5 ~ [e4,f#4,a4]@4", AM: "[b3,e4,g4] [a3,d4,f#4]",
AN: "[c4,e4,g4]/2", AO: "[c4,e4] ~@15, g4", AP: "a4@7 ~ a4@7 ~, [d4,f#4]@15 ~",
AQ: "[~@13 g4@3, d5@31 ~, [d4,b4]@29 ~@3, g4@25 ~@7, ~@20 g5@11 ~]/2", AR: "[a4,d5,f#5]@8 [b4,e5,g5]@7 ~",
AS: "[[a4,d5,f#5]@7 ~ [g4,b4,e5]@6 ~@28 e4@5 ~ [d#4,g4]@16, ~@14 [c5,e5,g5]@33 b4@17, ~@16 a4@31 ~@17, ~@17 g4@30 ~@17, ~@18 g3 c4@4 ~@9]/4", // D Em D# C
AT: "[d4,g4,a4] [d4,f#4,a4]", AU: "[[b3,d4,f4]@31 ~]/2", AV: "[b3,e4,a4]@15 ~", AW: "[e4,g#4] [e4,g#4,e5], b3",
AX: "[e4,g4,c5]/2", AY: "[[d4,f#4]@13 ~@11 [a4,d5]@7 ~, a3@7 ~, ~@8 [d4,f#4]@7 ~]/2", AZ: "[b4,d5,f5]/2",
BA: "[f4,b4,d5,f5]", BB: "g#4 b4, [e4,e5]", BC: "[~@12 c6@19 ~, [g4,c5]@31 ~, e4@29 ~@3, ~@3 e5@12 ~]/2",
BD: "[c4,d#4,g4]@15 ~", BE: "[a3,g4]@7 ~ [a3,f#4]@8, d4", BF: "[c4,d#4,g4]",
BG: "[[g4,d5]@12 g4@3 ~ g5@8, b4@32 b4 ~@15, ~ d5]/3", BH: "[b4,d5,g5] ~@3", BI: "~ g4, [b3,f4]",
BJ: "[~@3 [b4,e5,g5]@5, [e4,g4] ~]/2", BK: "[a4,c#5,e5]/2", BL: "~@6 f#5@9 ~, [c#4,f#4,a#4,c#5]",
BM: "[[e4,c5]@3 [d4,b4]@3 [c4,g4]@8 ~@2, c6@3 ~, ~@3 b5@11 ~@2, ~@12 g5@19 ~]/2", BN: "[d4,g4,a4]",
BO: "[d4,f#4,a4]@15 ~", BP: "[[d4,f#4,a4]@14 ~@3 g3@41 ~@6, ~@7 g4@23 ~@2, ~@15 d4@46 ~@3, ~@16 b3@43 ~@5]/4",
})).s("gm_epiano2").gain(0.44).pan(0.4)
// chords · pad warm
const pad_warm = note(`<
~ A@2 B@2 C D E F A@2 B@2 C@2 E F G@2 H@2 I J K L G@2 H@2 I J M@2 N@3 O P@4 Q@2 R S A@2 T U G@2 H@2 I J K L G@2 V@2 I
J M@2 W@2 X@2 Y@2 Z@2 AA@2 AB AC AD@2 AE@2 W@2 X@2 Y@2 Z@2 AA@2 AF@2 W@2 AG AH AI@2 AJ AK AL@3 AM AN@2 AO AP AQ@3 AR
AS@2 AT@2 AU@2 AV@2 AW@3 AX AY@2 AZ BA AI@2 AJ AK BB@2 BC@2 BD@3 ~ A@2 B@2 C D E F G@2 H@2 I J K L G@2 H@2 I J M@2 W@2
X@2 Y@2 Z@2 AA@2 AB AC AD@2 AE@2 BE@2 BF@2 Y@2 Z@2 AA@2 AF@2 W@2 AG AH AI@2 AJ AK AL@3 AM AN@2 AO AP AQ@3 AR AS@2 AT@2
AU@2 AV@2 BG@3 AX AY@2 AZ BA AI@2 AJ AK AL@3 AM AI@2 AJ AK AL@3 AM AN@2 AO AP AQ@3 BH AI@2 AJ AK AL@3 AM AN@2 AO AP
BI@2 BJ BH BK@3
>`.pickRestart({
A: "[[c4,e4,a4,c5]@23 ~ [e4,g4,b4]@8]/2", B: "[[c4,e4,a4]@13 [b3,e4,g4]@3]/2", C: "[a3,c4,f4]",
D: "e4@6 ~@2 [d4,f4]@7 ~, b3, g4@5 ~@3", E: "[c4,e4,g4,b4]@7 ~", F: "[a3,d4,f4]@7 ~ [g#3,d4,e4]@8",
G: "[[a3,c4,e4]@23 ~ [g3,b3,e4]@8]/2", H: "[[a3,c4,e4]@23 ~ [b3,e4,g4]@7 ~]/2", I: "[f3,a3,c4]", J: "[g3,b3]",
K: "[e3,g3,b3]", L: "a3 g#3, d4", M: "[[g3,b3,e4]@31 ~]/2", N: "[[f3,a3,d4]@47 ~]/3", O: "[e3,g#3,d4]@15 ~",
P: "[[g3,c4]@32 [f#3,c4]@31 ~, e4@63 ~]/4", Q: "[[a3,c4,f4]@23 ~ [b3,e4,g4]@7 ~]/2", R: "[d3,a3,c4]@15 ~",
S: "[f3,a3,d4]@7 ~ [e3,g#3,d4]@8", T: "[c4,e4,a4]@15 ~", U: "[e3,g#3,d4]", V: "[a3,c4,e4]/2", W: "[g3,b3,e4]/2",
X: "[b3@13 ~@3 a#3@15 ~, [c#4,f#4]@31 ~]/2", Y: "[a3,d4]/2", Z: "[a3@16 g#3@15 ~, e4@15 ~]/2",
AA: "[[g3,c4,e4]@31 ~]/2", AB: "[g3,c4]", AC: "[f#3,d4]", AD: "[[f3,a3,d4]@31 ~]/2", AE: "[a3 g#3, e4@31 ~]/2",
AF: "[[g3,c4,d#4]@15 ~]/2", AG: "[a3,d4,f#4]@15 ~", AH: "[g3,c4,e4]@7 ~ [f#3,a3,d4]@7 ~", AI: "[[g3,b3]@31 ~]/2",
AJ: "[f#3,a3]@3 [g3,b3]@3 [b3,e4]@2", AK: "[g3,b3] [f#3,a3]", AL: "[e3,a3,c4]/3", AM: "[f#3,a3,d4]@7 ~ [a3,c4]@6 ~@2",
AN: "[g3,b3,d4]/2", AO: "[a3,d4] [b3,e4]", AP: "[a3,d4]@7 [g3,b3]@6 ~@3",
AQ: "[g3@7 ~@4 c4@4 ~ b3@7 ~, e3@7 ~@5, ~@16 g3@13 ~@2 [g3,d#4]@14 ~@3]/3", AR: "g3@7 ~ f#3@7 ~, d4@7 ~",
AS: "[[f3,a3,d4,f4]@31 ~]/2", AT: "[a3@7 ~ g#3@7 ~, [e3,e4]@15 ~]/2", AU: "[a3@7 ~ g3@7 ~, [c4,e4]@29 ~@3]/2",
AV: "[[f#3,a3,d4]@15 ~]/2", AW: "[a3,d4,f4]/3", AX: "[g#3,b3,e4]@15 ~", AY: "[[e3,g3,c4]@31 ~]/2", AZ: "[g3,c4,d#4]",
BA: "~@8 f#4@7 ~, [a3,d4,g4]", BB: "[e3,a3,c4]/2", BC: "[[c4,d#4,g4]@15 ~]/2", BD: "[[g3,b3,d4]@15 ~]/3",
BE: "[a3,c#4,e4]/2", BF: "[b3@13 ~@3 a#3@15 ~, [c#4,e4]@31 ~]/2", BG: "[[a3,d4,f4]@47 ~]/3", BH: "[f#3,a3,d4]",
BI: "[g3@7 ~@4 c4@4 ~, e3@7 ~, ~@16 g3@13 ~@3]/2", BJ: "[g3,b3,d#4]@7 ~", BK: "[[d3,g3,b3]@11 ~]/3",
})).s("gm_pad_warm").gain(0.32)
// other · marimba
const marimba = note(`<
~@2 A B C D E F G ~ A B C D E F G H I J K L M N O P Q R K S T U V W X Y Z AA AB AC AD AE K AF AG ~ AH AI AJ H I J K L
M N AK P Q R K S T U V AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA AL AM AN AO AP AQ AR AS BB AU 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 CH CI CJ BU BV CK BX BI BJ BK BL BM BN CL
CM ~@5 A B C D E F G H I J K L M N O P Q R K S T U V AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA AL AM AN AO AP AQ
AR AS BB AU 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 CH CI CJ BU
BV CK BX BI BJ BK BL BM BN CN BP BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BI BJ BK BL BM BN BO BP BQ BR BS BT
BU BV BW BX ~@3
>`.pickRestart({
A: "~@2 e4@2 a4 ~ c5@2 b4@2 ~@6", B: "~@3 [c4,a4] ~@4", C: "~@4 e4 ~ a4 ~ g4@2 e4@2 c4@2 ~@2",
D: "~@6 c4@2 ~@6 [c4,f4] ~, ~@6 f4 ~@9", E: "~@6 [b3,g4] ~@7 b3 ~", F: "~@6 [b3,e4] ~@3 b3 ~@3 g3 ~",
G: "~@2 a3 ~@3 a3 ~ g#3 ~@7", H: "~@6 c5@2 ~@6 a3 ~", I: "e3@2 ~@2 a4 ~ c5@2 b4@2 g4 ~ e4@2 ~@2",
J: "a3@2 ~@4 e4@2 ~@4 c4 ~@3", K: "a3 ~@3 e4 ~ a4 ~ g4@2 e4@2 c4@2 b3 ~", L: "a3@2 ~@2 c4@2 f4 ~@9, g3 ~@15",
M: "b3@2 ~@4 [b3,g4] ~@9", N: "e3 ~@3 d4 ~ b3@2 ~@2 b3 ~@3 g3 ~, ~@6 e4 ~@9", O: "a3 ~@3 d4 ~ a3 ~@3 g#3 ~ e4 ~ d4 ~",
P: "c4@2 ~@4 c5@2 ~@6 a3 ~", Q: "e3@2 ~@2 a4 ~ c5@2 b4@2 g4 ~@3 e4 ~", R: "a3@2 ~@4 [c4,e4]@2 ~@6 c4 ~",
S: "a3@2 ~@2 c4@2 [c4,f4] ~@9, g3 ~@15", T: "b3@2 ~@4 [b3,g4] ~@3 e3 ~@3 c4 ~",
U: "e2 ~@3 d3 ~ g3@2 ~@6 b3 ~, ~@6 b3 ~@9", V: "e3 ~@3 e4 ~ [g3,e4] ~@3 [b3,g4] ~@3 c4 ~",
W: "~@4 a3 ~ [a3,d4]@2 ~@8", X: "~@4 a3 ~ a3@2 ~@2 d4@2 ~@4, ~@6 d4 ~@3 a4 ~@5",
Y: "f3@2 b3 ~ d4 ~ [d4,a4] ~@3 f4 ~@3 a3 ~", Z: "g#3 ~ b3 ~@3 [e4,g#4] ~@3 [g#4,b4] ~@5",
AA: "~@4 e4 ~ [e4,c5]@2 ~@8", AB: "a3 ~@3 e4 ~ [e4,c5]@2 b4 ~@3 c4 ~ a3 ~", AC: "f#3@2 ~@2 c4 ~ [e4,c5] ~@7 a3 ~",
AD: "f#3 ~@3 e4 ~ [e4,c5] ~@3 [c4,a4] ~@3 c4 ~", AE: "a3@2 ~@2 c4 ~ [f4,a4]@2 ~@4 c4 ~@3",
AF: "d3 ~@3 c4 ~ f4@2 ~@2 c4 ~@3 a3 ~, ~@6 c4 ~@9", AG: "b2 ~ a3 ~ d4 ~ f4 ~@3 e4 ~@5",
AH: "~@2 e4@2 a4 ~ c5@2 b4@2 ~@4 c3 ~", AI: "~@4 c4 ~ [c4,a4]@2 ~@4 a3 ~@3", AJ: "~@4 e4 ~ a4 ~ g#4@2 e4@2 ~@4",
AK: "a3 ~ d4 ~ e4 ~ a4 ~@3 d4 ~@3 g#3 ~", AL: "~@2 b3 ~ e4 ~ g4 ~@9", AM: "~@4 e4 ~ [e4,g4] ~@9",
AN: "~@2 f#3 ~ c#4 ~ [c#4,f#4] ~@9", AO: "a#3@2 ~@2 c#4 ~ f#4 ~@3 c#5 ~@5", AP: "~@4 [a3,f#4] ~ [a3,b3,f#4] ~@9",
AQ: "~@2 a3 ~ d4 ~ a3 ~@3 [d4,f#4] ~@3 e3 ~", AR: "~@4 d4 ~ [d4,a4] ~@7 a3 ~", AS: "[g#3,b4] ~@5 e5 ~@3 [b4,e5] ~@5",
AT: "e3 ~ g3 ~ [c4,g4] ~ [g4,c5] ~@3 g4 ~@5", AU: "e3 ~ g3 ~ c4 ~ [e4,g4] ~@3 [g4,c5] ~@5",
AV: "g4@2 ~@4 g4 ~@3 a4 ~@5", AW: "a3 ~ d4 ~ f#4 ~ d5@2 ~@2 d4@2 ~@2 d4 ~, ~@6 f#4 ~@3 a4 ~@5",
AX: "~@2 f3 ~ d4 ~ d4@2 ~@8, ~@6 a4 ~@9", AY: "f3 ~ a3 ~ d4 ~ [d4,f4] ~@3 [d4,a4] ~@3 d4 ~",
AZ: "~@2 d4 ~ a4 ~ d4@2 ~@2 d4 ~@3 g#3 ~, ~@6 a4 ~@9", BA: "~@3 c4 ~@2 [d4,b4] ~, ~@6 a4 ~@9",
BB: "e3 ~ g3 ~ [c4,g4] ~ [g4,c5] ~@9", BC: "~@6 [c4,d#4] ~@9",
BD: "~@2 c4 ~ d#4 ~ [d#4,g4] ~@3 g4@2 ~@2 d#3 ~, ~@10 c5 ~@5", BE: "[g4,b4]@2 ~@2 d4 ~ [e4,g4] ~@7 [e4,c5] ~",
BF: "~@4 [g4,c5] ~ [c5,e5] ~@7 d3 ~", BG: "~@2 a3 ~ d4 ~ f#4 ~@3 a3 ~@3 f#4 ~",
BH: "[c4,e4] ~@3 c4@2 e3 ~ d4@2 ~@2 d4 ~ f#3 ~, ~@8 a4 ~@7", BI: "~@4 d3 ~ g3 ~@7 g3 ~", BJ: "~@6 a3 ~@3 b3 ~@5",
BK: "~@6 e3 ~@9", BL: "b3 ~ a3 ~ d3 ~ a3 ~@3 [a3,d4] ~@3 d3 ~", BM: "~@6 e4@2 ~@6 a3 ~, ~@6 c4 ~@9",
BN: "e3@2 ~@2 e3 ~ a3 ~@3 [a3,c4] ~@5", BO: "~@6 g4@2 ~@2 [f#3,a3] ~@5, ~@6 d4 ~@9", BP: "~@6 a3 ~@5 d4 ~@3",
BQ: "~@4 g3 ~ a3 ~@9", BR: "~@2 g3 ~@11 g3 ~", BS: "~@4 [a3,d4] ~ a3 ~ [b3,e4]@2 b3 ~ a3 ~ g4 ~",
BT: "~@2 d4 ~@3 a3 ~@3 a3 ~ b3 ~@3", BU: "~@4 e4 ~ c5 ~@7 e4 ~", BV: "a3@2 ~@2 a3 ~ c4 ~@3 e4 ~@5",
BW: "[d#4,b4]@2 ~@4 [d#4,b4] ~@3 [d#4,b4] ~@5", BX: "[d4,a4]@2 ~@4 d4 ~@3 a3 ~@5", BY: "~@6 [a3,a4] ~@3 f3 ~@5",
BZ: "~@2 d3 ~ f3 ~ [a3,a4] ~@3 f3 ~ d4@2 ~@2", CA: "~@4 b3 ~ e4 ~@3 [e4,a4] ~@5",
CB: "~@4 e4 ~@3 [g#4,b4]@2 ~@4 g#3 ~", CC: "[g4,c5]@2 ~@4 e4@2 ~@6 a3 ~, ~@6 c4 ~@9",
CD: "g3@2 ~@2 e4 ~ g4 ~@5 [g4,c5] ~@3", CE: "~@4 d4 ~ a4 ~@5 a4 ~@3", CF: "[d4,f#4]@3 ~@5 [a4,d5]@3 ~@5",
CG: "~@4 f4 ~ a4 ~@3 a3 ~@5", CH: "~@4 a3 ~ f4@2 ~@2 a4 ~@5", CI: "~@4 a3 ~ f4@2 ~@2 [d4,a4] ~@5",
CJ: "~@2 b3 ~ d4 ~ e4 ~@3 b4 ~@3 g3 ~", CK: "[d#4,b4]@2 ~@4 [d#4,b4] ~@3 [d#4,b4] ~@3 d3 ~",
CL: "~@6 d#4 ~@5 [d#4,g4] ~@3", CM: "d#3 ~@5 c4@2 ~@2 g4 ~@5", CN: "~@6 g4@2 ~@2 [a3,d#4] ~@5, ~@6 d#4 ~@9",
})).s("gm_marimba").gain(0.27)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
A@3 B C D E F G H@2 I J K@2 L M N ~@27 O@2 P Q R ~@46 S@3 ~@16 T U V W X Y Z ~ AA AB AC@2 AD AE ~@2 AF AG@2 ~@2 AH AI
AJ@2 AK AL@2 B AM D AN F M AO@2 ~@47 AP AQ AR AS ~ AT AU ~ AV AW AX ~@4 AY AZ BA@2 BB BC BD@2 BE BF BG BH BI@2 AD BJ ~
AP AQ AR AS ~ AT BK ~ AP AQ AR AS ~ AT AU ~ AV AW AX ~@5 AP AQ AR AS ~ AT AU ~ AV AW AX ~@7
>`.pickRestart({
A: "[~@19 [c4,a4]@2 ~ [d4,b4]@2 ~ [e4,c5]@3 [b3,e4]@3 ~@2 e4@9 e4@3 ~@3, ~@14 e4@11 ~@23, ~@15 c4@4 ~@12 c4@14 ~@3, ~@16 a3@23 ~@9]/3", // F G C E5
B: "e4@4 ~ d4@3, d4 ~@7", C: "[d#4,e4] ~@9 e4@4 f4 e4, f4@5 ~@3", D: "d4@10 ~ c4@5", E: "~ e4@8 ~ d4@5 ~, d4 ~@7",
F: "[d4,d#4] e4@14 ~", G: "~@4 a3 ~@5 g#3@2 ~@4",
H: "[~@2 [c4,a4]@3 ~ [d4,b4]@2 ~ e4@2 ~ e4@2 ~@3 e4@9 e4@3 ~@3, ~@8 c5@3 b3@2 ~@2 c4@14 ~@3]/2", // F G
I: "[e4,f#4] g4@7 ~@2 f4@6", J: "e4@10 d4@4 e4 d4", K: "[c4@5 ~@3 b3@2 c4@2 d4@2 g3@2, ~@7 g3 ~@8, ~@15 c4@2 ~@15]/2",
L: "d4 e4@4 ~ e4@10", M: "~ c4 b3 a3 g#3 b3 d4 f4", N: "d4 e4@15",
O: "[~@3 [c4,a4]@2 ~ [d4,b4]@2 ~ [e4,c5]@3 [b3,e4]@3 ~@2 e4@9 e4@3 ~@3, ~@15 c4@14 ~@3]/2", // F G C E5
P: "~ g4@8 ~ f4@6, e4 ~@7", Q: "e4@7 ~@3 d4@3 ~ e4@2", R: "c4@5 ~@11, d4 ~@15",
S: "[~@16 g4@23 ~@9, ~@14 b3@13 ~@21, ~@15 d4@20 ~@13]/3", T: "~@5 e4@3, ~@2 e3@5 ~, ~@6 b3@9 ~",
U: "~@6 b3@2 e4@7 ~, e3 ~", V: "c4", W: "~@6 c4@5 e4@5, g3@3 ~", X: "~@3 a3", Y: "[d4,f#4] ~", Z: "~@6 f3@5 a3@5",
AA: "~@10 d4@5 ~, ~@3 a3@3 ~@2", AB: "~@6 [g#3,e4]@9 ~", AC: "[~@3 g3@3 c4@6 ~@4]/2", AD: "d#3@13 ~@3", AE: "d3@3 ~",
AF: "a3@5 ~ b3@4 ~@2 d4@2 ~@2", AG: "[b3@3 ~ g3@4, ~@14 e4@11 ~@7, ~@15 c4@15 ~@2]/2", AH: "~@8 d4@7 ~",
AI: "~@4 g3 ~ [g3,a3]@2 ~@2 b3@2 ~@4", AJ: "[a3@7 ~ g3@10 d3 ~ g3 ~ [g3,a3]@2 ~@2 b3 ~@5]/2", AK: "g3@11 ~@5",
AL: "[~@3 [c4,a4]@2 ~ [d4,b4]@2 ~ [e4,c5]@3 [b3,e4]@3 ~ e4@10 e4@2 ~@4, ~@15 c4@14 ~@3]/2", // F G C E5
AM: "f4@10 e4@4 f4 e4, d4 ~@15", AN: "d4@2 e4@8 d4@5 ~", AO: "[d4 e4@17 ~@14]/2", AP: "~@4 d4@2 a3@4 d4@5 ~",
AQ: "a3@6 b3@5 ~ d4@4", AR: "b3@8 a3@6 ~ a3, ~@7 b3", AS: "g3@7 ~@9", AT: "~@7 a3", AU: "d4 ~", AV: "~@6 d4@4 g4@5 ~",
AW: "f#4@7 ~ g4@8", AX: "f#4@7 ~ e4@7 ~", AY: "~@2 d4 f4@2 d4@2 a3", AZ: "~ d4@2 f4@3 ~@2",
BA: "[~@16 e3@6 ~@6 b3@3 ~, ~@4 e3@10 d4@7 ~@3 e4@7 ~, ~@6 b3@9 ~@17, ~@5 a3@3 ~@8]/2",
BB: "~@6 g3@6 c4@3 ~, c4@11 ~@5", BC: "~@6 c4@5 ~@5, g3@3 ~", BD: "[~@4 d4@3 ~, ~@6 d3@11 ~@15, ~@12 a3@11 ~@9]/2",
BE: "~@6 f3@5 ~ a3@4", BF: "~@3 a3@2 f3@2 ~, ~@2 d4@3 ~@3", BG: "~@10 a3@5 ~, ~@3 f3@3 ~@2",
BH: "~ e3 ~ e4@3 ~@2, ~@4 b3@5 ~@7", BI: "[[e4,c5]@4 ~@2 [d4,b4]@3 ~@3 c4@16 ~@4, ~@12 g4@13 ~@7]/2",
BJ: "~@8 d4@7 ~, d3@3 ~", BK: "d4@7 ~ d4@8",
})).s("gm_acoustic_guitar_nylon").gain(0.49).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B@3 A B A B A B A B A B A B A B A B A B A B A B
A B A B A B A B A C A B A B A B A B A B A D A B A B A B A B A B A B A B A B A B A B A B A E A B A B A B A B A B A B A
B A B A B A B A B A B A B A B A B@3 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C A B A B A B A B A
B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B@2 ~@2
>`.pickRestart({
A: "x ~@2 x", B: "x", C: "x!2 ~ x", D: "x ~ x!2 ~ x!3", E: "x ~@6 x",
})).gain(0.72)
// drums · rim
const rim = s("rim").struct("<~@187 [~@14 x!2] [x!2 ~@6] ~@83>").gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
// … 79 more lines
More by Zero
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.