0:00/0:00
// Perche lo fai — Masini
// 128 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 2 Fretless 2 -> fretless bass
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 124 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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 · trumpet
const trumpet = note("<A@8 ~@116>".pickRestart({
A: "[~@32 ab5@53 ~@11, ~@5 g5@48 ~@11]/8",
})).s("gm_trumpet").gain(0.32)
// chords · piano
const piano = note(`<
~@4 A@4 ~@19 B@8 C D E@3 F@8 G H@6 I@8 J K@2 L@7 ~ M N O@6 P@7 Q R@3 S@2 T U@8 V@2 W@3 X@6 Y@8 ~
>`.pickRestart({
A: "[~@2 [f4,a4]@11 [f4,a4]@9 ~@3 [f4,g4,bb4]@12 [f4,g4,bb4]@10 ~@38 e5@11, ~@2 d5@57 ~@2 d5@33 ~@2, ~@2 d3@22 ~ g3@22 ~@2 e4@47, ~@49 e3@45 ~@2, ~@49 [g4,bb4]@21 ~@3 [a2,db5]@23]/4", // F Gm7 Gm A
B: "[~@79 a3@6 [bb3,d4]@13 ~@27 e4@14 [b3,d4]@13 [b3,d4]@13 [db4,e4]@13 ~ [db4,e4]@11 ~@2, ~ f4@5 ~@58, ~@4 d4@15 [d4,f4]@9 ~@4 [db4,e4]@13 [db4,e4]@10 ~@4 [d4,f4]@13 [d4,f4]@10 ~@17 [bb3,d4]@11 ~@2 [c4,e4]@13 c4@38 ~@29, ~@12 a3@13 a3@13 ~ a3@13 a3@13 a3@13 ~@7 g3@20 g3@13 ~ g3@46 a3@24 ~@3]/8", // Bb Bm Dbm Dm Dbm Dm Bb C
C: "[d4,f4]@13 ~@7 d3@4, a3, d3@5 ~, ~@13 [d4,f4]@11", D: "~@3 [d4,f4]@13 [f3,c4,d4,f4]@7 bb3, ~ [bb2,bb3]@7",
E: "[~@5 [a3,c4,f4]@13 ~@7 a2@5 ~@2 [g3,bb3]@13 ~@7 g2@6 ~ [a2,g3,a3,db4]@13, ~@5 a2@20 ~@7 g2@20 ~@20, ~@19 f4@48 ~@5, ~@19 [a3,c4]@12 ~ d4@26 ~@14, ~@15 [g3,bb3]@4 ~@5]/3", // F Gm A7 Am Gm
F: "[~@40 f4@11 [d4,f4]@11 ~@2 [db4,e4]@13 ~@13 [d4,f4]@12 ~@14 [bb3,d4]@12 ~@14 [c4,e4]@12 ~@7 c3@6 [b3,d4]@12 ~@4 c3@9, [g3,a3,db4]@12 ~ [a3,db4,e4]@14 [a2,a5]@35 ~@15 db4@10 ~@3 d3@12 d4@7 d3@7 g3@12 [bb3,d4]@7 g3@29 ~@3 g3@23 ~@2, ~@7 e3@13 e3@13 a4@56 ~ a4@48 ~@16 [c4,e4]@11 ~@14 b3@13, ~@13 a4@10 db3@14 ~@27 a3@20 a3@29 ~@3 g4@76, ~@23 db5@38 ~@16 e4@12 ~@13 f4@36 ~@4 c3@19 ~@18 d4@11 ~@2]/8", // Dm Dbm Dm Bb C Bm A7 A …
G: "~ [db4,e4]@13 [db3,db4,e4]@10, ~ [a2,a3]@23", // Dbm A
H: "[~@3 [d4,f4]@12 c3@12 ~ [bb3,d4]@13 ~@7 bb2@6 [c4,f4]@13 ~@13 g3@13 [a2,a3]@12 [d4,f4]@13 ~ d4@10 ~@2 [bb2,bb3,d4,f4]@13, ~@3 a3@25 ~@13 bb3@12 ~ f3@24 ~@2 [g2,bb3,c4,d4]@21 ~@43, ~@3 d3@23 ~@2 bb2@20 ~@6 a2@13 f4@11 ~@2 f4@24 ~@14 f4@11 ~@15, ~@15 f4@37 ~@15 c4@13 ~@13 [g3,db4]@10 ~@2 a3@39, ~@15 d4@10 ~@16 d4@26 eb4@7 a2@18 ~@13 d3@25 ~@14]/6", // Dm Bb F5 A Dm Bb Gm Gdim
I: "[~@7 bb2@5 ~ [c4,f4]@13 ~@6 a2@6 ~ g3@12 [a2,g3,a3,db4,e4]@9 ~@30 [a3,gb4]@12 db3@7 db3@5 ~@40 [bb3,db4]@10 ~@3 [b3,d4,gb4]@13 ~@6 b2@6, ~ d4@25 c4@12 ~@33 a3@18 d4@13 [a3,e4,gb4,a4]@10 ~@3 [d4,gb4]@27 gb4@25 ~@25, ~ [bb3,f4]@11 ~ f3@23 ~@41 e4@13 d3@23 ~@28 [bb3,db4]@13 ~@26 [b3,d4,gb4]@11 ~, ~@13 a2@19 ~@7 [g2,bb3,d4,f4]@21 ~@4 d2@48 ~@80, ~@26 [d4,f4]@10 ~@28 d4@19 a2@29 ~@4 [b2,b3,b4]@48 ~@3 b2@19 ~@6]/8", // F5 A7 D Bbm Bm Gbm7 D Bb5 …
J: "~ [e4,g4]@13 ~@6 e3@4, ~ b3@23, ~ e3@19 ~@4, ~@7 [e4,g4]@5", // Em
K: "[~@3 [db4,e4]@12 ~@13 [b3,e4]@13 [b3,e4]@7, ~@3 a3@19 a3@26, ~@15 [db4,e4]@11 ~@2 ab3@19 ~]/2", // Dbm E5 Dbm
L: "[~@6 [bb3,db4,gb4]@13 [bb3,db4,bb4]@10 ~@3 [b3,d4]@13 d4@11 ~ d4 d4@6 [e3,d4,e4,g4]@13 d4@6 ~@21 g3@6 [eb4,g4]@12 ~@7 c3@6 [eb4,f4,a4]@12 ~@7 f3@6 ~@8, ab3@29 ~@16 b3@32 gb4@6 [g4,bb4] g3@13 [g4,bb4]@11 ~@2 bb4@22 ~@16 a4@13 ~@7, ~@6 gb3@22 ~@29 a3@40 gb4@9 ~@17 g4@9 ~@36, ~@19 [bb2,gb4]@12 ~ [b2,gb4]@26 [d3,gb4]@19 [gb3,a4]@30 ~@3 c3@19 ~@6 f3@19 ~@14, ~@83 d4@24 ~@16 eb4@11 ~@14 [eb4,f4]@11 ~@9]/7", // Gb Bbm Bm Em7 Eb F7 Gm Ebm …
M: "~@7 [d4,g4,bb4]", N: "~@5 bb4@6 [e4,g4,bb4], ~@9 [e4,g4]@13 ~@2",
O: "[~@11 [eb4,g4]@12 ~@7 eb3@6 [db4,e4]@12 [db4,e4]@11 ~@2 [db4,e4,a4]@12 ~ a4@11 ~ [a4,d5]@13 [a4,d5]@10 ~@3 [a4,db5]@12 ~@6 db4@6 ~ [d4,a4,d5]@7, ~@11 bb3@23 ~@78 db4@18 ~@14, ~@11 eb3@19 ~@6 [a2,a3]@49 ~@39 [a4,db5]@10 ~@10, ~@23 [eb4,g4]@11 ~@2 eb4@21 ~@16 [db4,e4]@12 ~ [d4,f4]@23 ~@3 g4@23 ~@9]/6", // Eb Dbm A D5 A D5 A Eb …
P: "[~@12 d4@6 [g4,bb4]@12 ~@13 [c5,e5]@13 ~@12 [b4,d5]@13 ~@6 g3@6 [a4,db5,e5]@12 ~@7 a3@6 ~ f4@6 ~@3 a4@3 [c3,f4,a4]@11 ~@2 [f4,bb4,d5]@12 ~@7 bb2@3 ~@2, ~@5 [a4,d5]@11 ~@2 d5@25 c4@13 [c5,e5]@35 ~@40 e5@35 ~@2, ~@18 g3@19 g3@25 c4@29 ~@2 a3@19 ~@7 [d3,d4,d5,f5]@22 ~@3 bb2@12 [bb4,d5]@9 ~@3, ~@30 bb4@35 ~@3 g3@13 [b4,d5]@10 ~@15 [a4,db5,e5]@9 ~@4 a4@9 ~@28 f4@12, ~@30 g4@11 ~@2 g4@24 ~ g4@24 ~ g4@22 ~@10 f4@6 c4@9 ~@4 bb3@22 ~@2]/7", // Gm C Bm A F Bb D5 C …
Q: "~ [f4,a4]@12 ~@7 f2@4, ~ [g2,f3]@23, ~ f2@19 ~@4, ~@13 f4@11, ~@7 [c4,a4]@5", // F G7 F
R: "[~@2 [d4,g4]@12 ~@7 g2@5 ~@40 d4@4 db4@2, ~@2 bb4@21 ~@34 bb3@14 ~, ~@2 g2@19 ~@51, ~@15 [d4,g4]@9 ~@3 a3@33 ~ a3@11]/3", // G5
S: "[~@3 f4@4 e4@2 ~@4 bb4@3 [a3,a4,bb4]@17 ~ f4@11 [d4,f4]@3, ~@7 f4 ~@5 bb3@19 ~@16]/2", // Bbmaj7 Dm
T: "~@10 [a3,db4,e4]@13 [db4,e4]", // A Dbm
U: "[~@12 [d4,f4]@12 ~@13 [bb3,d4]@12 ~@14 [c4,e4]@12 ~@7 c3@6 ~ [b3,d4]@12 ~@13 [db4,e4]@13 [db3,db4]@12 ~ [d4,f4]@13 d4@9 ~@4 bb3@13 ~@6 bb2@6 ~, ~@5 a3@26 d3@6 g3@12 [bb3,d4]@7 g3@29 ~@4 g3@16 c3@32 ~@3 d3@22 ~@3 [bb2,d4]@14 d4@13, ~@12 a4@47 ~@17 c4@11 ~@14 b3@13 a3@24 ~@2 a3@39 bb3@11 ~@2, ~@12 d3@12 d4@9 ~@4 g4@76 ~@14 e4@10 ~@16 f4@37 ~@2, ~@24 f4@35 ~@4 c3@13 e4@9 ~@16 d4@10 ~@3 a2@22 ~@17 c3@35 ~@4]/8", // Dm Bb C Bm Dbm Db Dm Bb
V: "[[c4,f4]@13 ~@25 [a2,g3,a3,db4]@10, f3@24 ~ [bb3,d4]@21 ~@2, a2@20 a2@5 g3 g2@21 ~, ~@13 c4@34 ~, ~@13 f4@11 ~ f4@23]/2", // F5 A7 Bb
W: "[~@3 [d4,f4]@13 f4@11 ~@2 [bb3,d4]@13 ~@6 bb2@5 ~ [c4,f4]@13 [c4,d4,f4]@5, ~ a3@16 ~@7, ~@3 d3@25 ~ bb2@19 ~@6 [a2,f3]@18, ~@16 d4@9 ~@3 f4@14 d4@25 ~@5, ~@42 [bb3,f4]@11 ~@19]/3", // Dm Bb F5 Dm7 Dm Bb5
X: "[~@2 a2@6 ~ g3@11 [a2,g3,a3,db4,e4]@9 ~@30 [a3,gb4]@13 db3@7 db3@5 ~ gb4@26 [bb3,db4]@12 ~ [bb3,db4]@10 ~@3 [b2,b3,d4,gb4]@7, ~@8 f4@21 ~@5 d4@19 a2@30 ~@61, ~@9 [g2,bb3,d4]@21 ~@4 d2@38 [a3,e4,gb4,a4]@11 ~@2 [b3,d4,b4]@48 ~@11, ~@40 a3@18 d4@25 ~@28 gb4@26 ~@7, ~@47 e4@12 d3@24 ~@61]/6", // A7 D Bbm Bm Gm Gbm7 Bm
Y: "[~@12 b2@6 [e4,g4]@13 ~@7 e3@6 [db4,e4]@13 ~@13 [b3,e4]@13 ~@13 [bb3,db4]@14 [bb2,gb4,bb4]@13 ~@2 b4@30 b4@37, ~@5 [b3,d4,gb4]@11 ~@2 b3@25 ~ a3@19 a3@29 ~@4 gb3@25 ~@3 b2@48 ~@20, ~@18 e3@19 ~@33 ab3@19 ab3@31 ~@72, ~@31 g4@36 ~@16 e4@12 gb4@14 ~@83, ~@31 e4@9 ~@17 [db4,e4]@11 ~@15 b3@9 ~@18 [bb3,db4]@11 ~@4 [b3,d4,gb4]@48 ~@19]/8", // Em Dbm E5 Bbm Ebm Bm Dbm Bbm …
})).s("gm_piano").gain(0.25)
// bass · fretless bass
const bass = note(`<
~@4 A@5 ~@18 B@8 C D@5 E@7 F@3 G@8 H@5 I@8 J@6 K L@3 M@6 N@2 O@3 P@2 Q@2 R@7 S@4 T@4 U@7 V@5
>`.pickRestart({
A: "[~@37 a1@12 ~@11, ~@2 d2@25 ~@22 e2@28 ~@43, ~@25 g1@26 ~@69]/5",
B: "[~@165 a1@14 e2@13, ~@3 d2@33 ~@23 d2@15 ~@11 g1@29 ~@25 b1@30 ~@23, ~@32 db2@30 ~@10 a1@15 ~@25 c2@30 ~@50]/8",
C: "~@5 c2, d2@11 ~", D: "[~@109 e2@11, ~@3 bb1@30 ~@23 g1@15 ~@12 a1@29 ~@8, ~@29 f2@30 ~@10 bb1@16 ~@35]/5",
E: "[~@16 d2@17 d2@7 db2@24 ~@2 d2@19 d2@7 g1@19 g1@6 c2@20 c2@6 b1@19 b1@6, ~ eb2@5 ~@50]/7",
F: "[~ a1@13 db2@13 d2@25 ~ bb1@19]/3",
G: "[bb1@6 f2@20 f2@6 g1@13 ~@12 d2@13 c2@13 bb1@20 bb1@6 ~@26 g1@13 ~@12 d2@26 d2@6, ~@45 a1@14 ~@50 f2@28 ~@11 a1@14 ~@30]/8",
H: "[d2@6 db2@14 ~@25 bb1@26 ~@26 e2@23, ~@20 b1@29 ~@22 b1@30 ~@19]/5",
I: "[~@54 gb2@13 ~@39 d2@9 ~@9 gb2@7 g1@27 ~@25 f2@9, ~@3 a1@30 ~@34 bb1@14 ~@77 c2@29 ~@5, ~@28 ab1@28 ~@23 b1@29 ~@7 e2@11 ~@66]/8",
J: "[~@35 bb1@7 bb1@7 a1@7 g1@13 ~@13 e2@12 ~@37 a1@13, ~@2 eb2@7 ~@38 e2@7 ~@18, ~@16 d2@27 ~@26 g1@17 ~@20 eb2@28 ~@10]/6",
K: "~@12 g1@11 ~, a1@7 ~@5", L: "[~ g1@13 f2@22 ~@3 e2@20 e2@6 d2@7]/3",
M: "[~@5 gb2@13 ~@25 c2@13 ~@37 a1@13 ~@25 c2@13, ~@18 g1@28 ~@10 c2@14 ~@36 db2@15 ~@23, ~@68 b1@28 ~@23 d2@14 ~@11]/6",
N: "[bb1@19 bb1@6 f2@22 ~]/2", O: "[~@58 bb1@3 a1@4 ~@2 d2@3 db2@2, ~ g1@14 ~@21, ~@27 a1@34 ~@11]/3",
P: "[~@4 f2@3 e2@3 ~@2 bb2@3 a2@7 ~@11 d2@14 ~, ~@11 a1@7 ~@6]/2", Q: "[~@9 db2@24 ~@2 d2@13, ~@3 d2@8 ~@37]/2",
R: "[~@7 d2@6 g1@20 g1@6 c2@19 c2@7 b1@19 b1@7 ~@12 db2@13 d2@25 ~ bb1@19 bb1@7, ~@13 a1@2 ~@9]/7",
S: "[f2@19 f2@6 g1@13 a1@13 d2@13 c2@13 bb1@19]/4", T: "[bb1@7 ~@25 g1@13 a1@13 d2@26 d2@6 d2@6, ~@7 f2@28 ~@61]/4",
U: "[~@39 bb1@23 ~@80 ab1@26, db2@15 ~@75 e2@28 ~@50, ~@13 b1@28 ~@23 b1@30 ~@22 a1@29 ~@23]/7",
V: "[gb2@13 ~@14 b1@74 ~@19, ~@13 bb1@16 ~@91]/5",
})).s("gm_fretless_bass").gain(0.5)
// chords · string ensemble 2
const string_ensemble_2 = note("<~@4 A B@3 ~@4 C@3 D@6 E@3 F@6 G@5 H@3 I J K@8 L@5 M@4 N@8 O@4 ~@55>".pickRestart({
A: "~@2 [d3,a5]@21 ~", B: "[g2@25 e2@23 [a2,a5]@19 ~@5, bb5@25 ~@11]/3", C: "[~@5 d4@7 e4@6, ~@19 g3@53]/3",
D: "[~@3 [bb3,d4]@28 ~ db4@21 ~@26 a4@29 ~@26 c5@10, ~@31 a3@28 ~@2 d5@21 ~@26 bb4@29 ~@7, ~@62 d4@33 ~@27 c4@22, ~@123 g4@19 ~@2]/6", // Bb
E: "[~@2 g4@16 ~@45 g4@9, ~ f3@16 bb3@14 e3@5, ~@18 a4@29 bb4@17 ~@8]/3",
F: "[~@19 a4@17, ~@4 f4@15 a3@113 ~@12, ~@6 a4@19 ~@23]/6",
G: "[f4@13 ~@27 e4@27 ~@40 a4@13, ~@13 g4@80 [db4,e4]@27, ~@40 c4@25 ~@2 [b3,d4]@28 ~@25]/5", // Dbm Bm
H: "[d4@13 c4@14 ~@13 d4@13 ~@14 c4@5, f4, ~@27 [bb3,bb4]@26 [a3,a4]@19]/3", I: "~@8 d4@12 ~ d4@3, ~ [bb3,g4]@2",
J: "~@11 [a3,db4]@13", // A
K: "[~@27 [db5,a5]@13 [d4,f4]@19 ~@5 [db4,e4]@25 ~ d4@21 ~@5 d4@23 ~@2 [c4,e4]@25 ~ [b3,d4]@25, e4@40 ~@49 f4@26 g4@77, ~@3 db4@36 ~@76 [bb3,bb4]@26 ~@51, ~@13 a4@27 a4@73 ~@79]/8", // Gbm Dm Dbm C Bm Bb
L: "[~ [db4,e4]@25 d4@25 ~ [d4,bb4]@24 ~ [a3,a4]@26 [bb3,d4,g4]@13 ~ db4@3, ~ a4@46 ~@5 bb3@25 c4@23 ~@20, ~@13 f4@39 ~@6 e4@2]/5", // Dbm Gm A Gm
M: "[~@22 a4@13 [bb3,bb4]@25 [a3,a4]@26 ~ [g2,d3,bb3]@9, ~@8 f4@77 ~@11, ~@9 d4@26 ~@51 [g3,d4,g4]@10]/4", // Bb A Gm G5
N: "[~@4 a3@12 d3@22 ~@17 [db2,db3,gb4]@8 db4@2 ~@3 [b1,b3,gb4,b4]@26 [bb3,db4]@23 ~@53 [a3,db4]@22, ~@3 [a2,db3,e3]@13 d2@29 a3@17 ~@56 b3@48 ~@26, ~@38 a2@16 ~@90 g4@29 ~@19, ~@41 gb3@13 ~@64 d4@24 ~@2 e4@48, ~@42 d3@6 d4@14 ~@5 d4@27 gb4@26 ~@11 b4@36 ~@25]/8", // Gb5 B5 Bbm A
O: "[~@4 ab3@25 ~@13 bb4@12 ~ d4@21 ~@20, ~@4 b3@23 ~@2 [db4,gb4]@26 ~@41, ~@30 [gb3,bb3]@25 ~@41]/4", // Gb5 Gb
})).s("gm_string_ensemble_2").gain(0.15)
// chords · synth strings 1
const synth_strings_1 = note("<~@8 A B@3 C@2 D E F G@4 H@7 I@7 J@7 ~@82>".pickRestart({
A: "~ [d3,a3,d4,f4,a4]@23", // Dm
B: "[~@5 d4@24 ~@33 [f3,c4]@10, ~@5 g4@67, ~@5 bb3@57 ~@10, ~@5 g3@29 c3@32 ~@6, ~@17 e4@19]/3", // F5
C: "[~@19 [bb2,d4]@29, ~@5 f4@43]/2", D: "[g2,g3,bb3]", E: "~@5 [e2,e4]@19", F: "~@3 [a2,a3,d4]@5",
G: "[~@71 [c3,g3,e4]@25, db4@7 d4@25, ~@7 f4@18 g4@23, ~@21 d2@22 g2@30 ~@23, ~@43 bb3@53]/4", // C
H: "[~@20 db4 [d4,f4]@3, ~@4 a3@29 bb2@29 g3@43 g3@49 ~@14, ~@4 f2@29 d4@43 e4@14 d4@56 ~ a4 ~@20, ~@4 c4@24 ~@5 bb3@98 ~@37, ~@18 f4@44 e2@28 bb2@29 [a2,e4]@33 ~@16]/7", // Dm A5
I: "[~@8 [db4,e4]@27 [c4,f4]@26 ~@14 d4@13 [c4,e4]@26 ~ d4@25 ~@15 a3@12 ~, ~@61 bb3@27 ~@27 b3@28 ~@25, ~@62 g4@79 [db4,e4,a4]@27]/7", // Dbm F5 C A
J: "[d4@27 [bb3,d5]@26 [a3,a4]@27 ~@40 e3@9 ~@18 a5@13 ~@8, f4@80 [bb3,bb4]@27 a4@51 ~@10, ~@27 bb4@30 ~@36 e4@19 ~@21 a2@26 ~@9, ~@107 [a3,db4]@27 ~@34]/7", // Bb A Bb A
})).s("gm_synth_strings_1").gain(0.12)
// chords · distortion guitar
const distortion_guitar = note("<~@57 A@7 B C D@8 E@2 F@6 ~@12 G@6 H@5 I@8 J@2 K@4 L@4 ~>".pickRestart({
A: "[~@16 d4@52 gb3@19 g3@5 ~@2 gb3@16 ~@2 b3@3 db4@4 d4@2 db4@3 b3@3 ~ db4@6 ~ d4@6 ~ eb4 ~@15 gb5@9 e5, ~@16 db4 ~@125 e4@18 ~@8]/7",
B: "[e5,gb5] d5@2 e5@21", C: "gb5@5 b4@5 e5@14, ~@10 eb5 ~@13",
D: "[eb5@3 e5@4 gb5@18 e5@2 ~ e5@7 ~@19 [d4,gb4]@3 d4@10 [e3,e4,g4]@9 [gb3,gb4,a4]@7 d3@26 ~ g3@25 f3@24 ~@2 bb2@8 [d3,e3] [ab2,b2,c3] [f2,g2,a2] e2 ~@13 [f3,bb3]@6, ~@28 eb5 ~@6 d5@47 ~ g5@77 ~@32, ~@57 d3@9 ~@17 g3@24 ~@3 c4@49 ~ bb3@20 ~@12, ~@57 gb4@6 ~@98 f3@7 ~@24]/8", // D Em Gbm Dsus2 Ab F Bb5
E: "[~ a3 a3@5 ~ g3 g3@12 d3@13 e3@11 ~@3, ~ a2@6 ~ g2@13 g3 ~@26]/2",
F: "[~@11 eb3@25 ~@12 e4@13 a4@9 e5@4 a5@11 ~@17 e6@10 a5@26 ~@6, ~@36 a3@27 ~@7 eb5 ~@15 a5@26 ~@32]/6",
G: "[~@10 [a3,d4]@24 [a3,e4]@24 ~ f4@24 ~@2 [g3,d4]@24 ~ c4@26 g3@8, ~@59 a3@22 ~@29 g3@24 ~@10]/6", // D5 A5 G5
H: "[~@18 e4@25 [a3,d4,f4]@24 ~@2 [bb3,d4]@27 [f3,c4]@24, ~@18 a3@23 ~@28 f4@51]/5", // Dm Bb F5
I: "[~ [g3,d4]@13 [a3,e4]@12 ~ [a3,d4]@26 bb2@24 ~ [f3,c4]@26 e3@12 a3@13 ~ d3@49 ~@13]/8", // G5 A5 D5 F5
J: "[~@15 gb3@16 ~@3 b3@2 db4@4 d4@3 db4@3 b3@2]/2",
K: "[~@2 db4@6 d4@6 ~ e4@16 gb5@9 ~ gb5 e5 ~ e5@21 gb5@5 b4@5 eb5 e5@14 eb5@2 e5@3 ~, ~@15 eb4 ~@24 e5@2 ~ d5@2 ~@51]/4",
L: "[gb5@21 bb5@7 b5@63 ~@5]/4",
})).s("gm_distortion_guitar").gain(0.22).pan(0.4)
// chords · string ensemble 1
const string_ensemble_1 = note("<~@68 A@6 B@7 C@7 D@2 E@3 F@4 G@8 H I@6 J@8 K@3 ~>".pickRestart({
A: "[~@9 d4 [d5,d6]@7 ~@2 [e5,e6]@7 ~@3 [gb4,a4,gb6]@6 ~ d5@21 ~@30 [f4,a4,f5]@25 [bb2,f3,bb3]@21 ~@6 [bb2,f3,bb3]@5, ~@9 gb4@9 ~ [e4,g4]@11 ~@5 bb4@22 ~@5 c5@49 ~@28 g3@2 ~@3, ~@10 d4@9 ~@9 gb5@6 ~@2 [g5,bb5]@29 ~@79, ~@31 eb5@18 ~@23]/6", // D E Gbm F Bb5 Em Gm
B: "[~ [a2,a3]@6 ~ [g2,g3]@13 d4@12 e4@26 eb4@24 a4@13 ~@25 a5@12 ~@2 d4@20 ~@5 [db5,e5]@8, ~@21 g4@88 [a4,e5]@25 ~@34, ~@21 bb4@62 e4@50 ~@35, ~@96 db5@22 ~@16 [d5,f5,a5,d6]@21 ~@13]/7", // A G Dbm A5 Dm
C: "[~@17 a4@22 ~@3 bb4@25 [c5,e5]@25 d5@25 ~ a4@11 ~ [g4,a4]@11 ~@2 [f4,a4,d5]@24 ~, ~@17 d5@50 ~@25 b4@22 ~@4 db5@26 ~@24, ~@17 f5@11 ~@14 g4@24 ~ g4@61 ~@40]/7", // C Gsus2 Dm
D: "[[bb4,d5]@25 [a4,c5,f5]@23, f4@11 ~@13]/2", // Bb F
E: "[~@2 [g4,bb4,d5]@24 ~ a3 a3@27 ~@2 bb3 bb3@2 a3 [a2,a3,a4]@3 ~@2 d4 [d3,d4]@2 db4 [db4,db5,db6]@2, ~@27 [a2,a4]@25 ~@5 [bb2,bb4,bb5]@3 a5@3 ~@3 [d5,d6]@3 db3@2 ~]/3", // Gm A D Db A Bb D
F: "[~@3 [f3,f4,f5,f6]@3 ~ [e5,e6]@3 ~@2 bb4 [bb4,bb5,bb6]@2 ~@12 a5@6 ~ [d4,f4]@19 ~@4 [db4,e4]@26 [d4,f4]@13, ~@2 [e3,e4] ~ bb3 a3 a3@5 ~@21, ~@8 a4@9 a4@31, ~@16 a6@8 [e4,e5]@9 ~@63, ~@16 a5@5 [db4,db5]@12 ~@63]/4", // F E Bb Dm Dbm Dm E Db
G: "[~@13 bb4@25 [c4,e4]@26 [b3,d4]@26 [db4,e4]@25 d4@24 ~@3 d4@23 ~@2 a3@25, ~@12 g4@79 ~@24 f4@77, ~@12 bb3@26 ~@103 bb3@26 c4@23 ~@2, ~@13 d4@23 ~@54 a4@46 ~@5 bb4@24 ~ a4@26]/8", // C Bm Dbm
H: "~@7 db4@5, ~ [bb3,d4,g4]@14 ~@9, ~@13 e4@11", // Gm
I: "[~@15 a4@13 ~ bb4@24 [a3,a4]@26 ~ g2@12 ~ a3@12 d3@22 ~@10 d4@7, ~@2 f4@77 [g3,bb3]@13 ~@35 a2@16 ~, ~@2 d4@26 bb3@25 ~@26 g4@17 ~@35 d3@3 a3@10, ~@79 d4@10 ~@41 gb3@13 ~, ~@80 d3@10 ~@2 [a2,db3,e3]@13 d2@36 ~@3]/6", // A Gm A
J: "[~ [db2,db3]@8 ~@4 [b1,d4,gb4,b4]@26 [bb3,db4]@23 ~ d4@24 ~@28 a3@26 ~ b3@23 ~@3 [gb2,bb3]@24, gb4@8 ~@5 [b2,b3]@25 ~ gb2@46 ~@5 e4@78 ~@24, ~@63 b3@48 ~@4 db4@22 ~@4 ab3@26 [db4,gb4]@25, ~@15 g4@5 ~@12]/8", // Db Bm Bbm Gb B Gb5
K: "[~@5 [b2,b3,d4,gb4]@65 ~@2]/3", // Bm
})).s("gm_string_ensemble_1").gain(0.17)
// drums · kick
const kick = s("bd").struct(`<
~@41 A B C D E F ~ G H I J K L M N O P C Q E R ~ S T I U V W X Y Z AA AB AC AD M ~@2 Y AE AF C AB AG E AH AF AI AJ AK
T AL AM AN AO M AP O AQ C AG AR AF AS G T AT AU AV AW AX AY O AZ C BA BB BC BD I ~@3
>`.pickRestart({
A: "~@2 x", B: "~@5 x ~@2 x ~@3", C: "~@3 x", D: "~@13 x ~@6 x ~@3", E: "~@7 x", F: "~@17 x ~@5 x",
G: "~ x ~@18 x ~@3", H: "~ x ~@3 x ~@2", I: "~ x ~@4", J: "x!2 ~@2", K: "~ x ~@6 x ~@15", L: "~ x ~ x ~@4",
M: "~@11 x ~@12", N: "~@13 x ~@10", O: "~@5 x ~@2", P: "~@3 x ~@12 x ~@7", Q: "~@7 x ~@12 x ~@3", R: "~@20 x ~@2 x",
S: "~ x ~@21 x", T: "~ x ~@6", U: "~ x!2 ~@5", V: "~ x ~", W: "~@9 x ~@9 x ~@4", X: "~@5 x ~@5 x ~@12",
Y: "~@7 x ~@4", Z: "~@4 x!2 ~@2", AA: "~@16 x!2 ~@6", AB: "~@19 x ~@4", AC: "~@2 x ~ x ~@4 x ~@2", AD: "~@2 x!2 ~@4",
AE: "~@9 x ~@6 x ~@7", AF: "~@17 x ~@6", AG: "~@7 x ~@2 x ~", AH: "~@23 x", AI: "x", AJ: "~ x ~@22",
AK: "~@2 x ~@12 x ~@8", AL: "~@5 x ~@3 x ~@2", AM: "~ x ~@2 x ~@3", AN: "~@3 x ~@4", AO: "~@3 x ~@6 x ~@13",
AP: "~@7 x ~@5 x ~@10", AQ: "~@10 x ~@6 x ~@6", AR: "~@9 x ~@12 x ~", AS: "x ~@18 x ~@4", AT: "~@5 x ~@18",
AU: "~ x ~@2", AV: "~@8 x ~@12 x ~@2", AW: "~@5 x ~@6", AX: "~ x", AY: "x ~@12 x ~@10", AZ: "~@13 x ~@3 x ~@6",
BA: "~@17 x ~@2 x ~@3", BB: "~@11 x", BC: "~@5 x", BD: "x ~@6 x ~@4",
})).gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
~@43 A ~ B ~ C ~ D ~ E ~@3 F ~@4 B G C H D I E J ~@2 K L ~ M N O P ~@3 L Q A M R B G S C H ~@5 O ~@2 T ~ A ~ B ~ C ~@2
I ~@5 T Q A U B S ~@5
>`.pickRestart({
A: "~@5 x ~@18", B: "~@3 x ~@4", C: "~ x", D: "~@5 x ~@2", E: "~@19 x ~@4", F: "x", G: "~@5 x ~@6", H: "~@7 x ~@4",
I: "~@17 x ~@6", J: "~@7 x", K: "~ x ~@22", L: "~ x ~@6", M: "~ x ~@2", N: "~ x ~@19 x ~@2", O: "~@11 x", P: "~@23 x",
Q: "~ x ~@4", R: "~ x ~", S: "~@11 x ~@12", T: "~ x ~@10", U: "~@7 x ~@16",
})).gain(0.4)
// drums · low tom
const low_tom = s("lt").struct("<~@58 A B ~@8 C ~@2 D ~@7 E ~ F ~@10 G H I ~@16 J K ~@11>".pickRestart({
A: "~@7 x", B: "~@3 x ~@3 x ~@16", C: "~@13 x ~@2 x ~@2 x ~@3 x", D: "~@4 x!2 ~@2", E: "~ x ~@10", F: "~ x ~@4",
G: "~@13 x ~ x!2 ~@4 x!2 ~", H: "x!2 ~@5 x ~@2 x ~@10 x!3", I: "~ x ~@22", J: "~@11 x ~@2 x ~@6 x ~@2", K: "x",
})).gain(0.3)
// drums · hihat
const hihat = s("hh").struct(`<
~@41 A B C D E F G H I J K L M C N O P ~@2 Q F R H I J K L S T U V W X Y M Z R AA AB M F AC N U AD W AE K H ~ V AF ~
AG AH C AA E F AI AJ AK J K U M AE N AL AM ~@2 AN F AC H AK J ~@5
>`.pickRestart({
A: "~@2 x", B: "~@3 x ~@6 x ~@5 x ~@6 x", C: "~@5 x ~@5 x ~@6 x ~@5", D: "x ~@6 x ~@5 x ~@6 x ~@3",
E: "~@2 x ~@5 x ~@6 x ~@5 x ~@2", F: "~@4 x ~@5 x ~@6 x ~@5 x", G: "~ x ~ x", H: "~ x ~@5 x ~@6 x ~@5 x ~@3",
I: "~@3 x ~@5 x ~@5 x ~@6 x ~", J: "~@4 x ~@6 x ~@5 x ~@6", K: "x ~@5 x ~@5 x ~@6 x ~@4",
L: "~ x ~@6 x ~@5 x ~@6 x ~@2", M: "~@3 x ~@5 x ~@6 x ~@5 x ~", N: "x ~@5 x ~@6 x ~@5 x ~@4",
O: "~@2 x ~@5 x ~@6 x ~@8", P: "~@3 x ~@12 x ~@7", Q: "~@7 x", R: "~ x!3", S: "~ x ~@6", T: "~@11 x ~@7 x ~@4",
U: "~ x ~@6 x ~@5 x ~@5 x ~@3", V: "~ x ~ x ~ x ~ x", W: "~@4 x ~@5 x ~@5 x ~@6 x", X: "~@6 x ~@5 x ~@6 x ~@4",
Y: "~@8 x ~@6 x ~@5 x ~@2", Z: "~@4 x ~@6 x ~@5 x ~@5 x", AA: "x ~@6 x ~@5 x ~@5 x ~@4",
AB: "~@2 x ~@5 x ~@5 x ~@6 x ~@2", AC: "~@5 x ~@6 x ~@5 x ~@5", AD: "~@2 x ~@6 x ~@5 x ~@5 x ~@2",
AE: "~@5 x ~@5 x ~@5 x ~@6", AF: "~ x ~ x ~@4", AG: "~@9 x ~@4 x ~@6 x ~@2", AH: "~@3 x ~@6 x ~@5 x ~@5 x ~",
AI: "~@2 x!2", AJ: "~ x ~@5 x ~@5 x ~@6 x ~@3", AK: "~@2 x ~@6 x ~@5 x ~@6 x ~", AL: "~@2 x ~@5 x ~@12 x ~@2",
AM: "~@5 x ~@6", AN: "~@5 x ~ x",
})).gain(0.25)
// drums · open hat
const open_hat = s("oh").struct("<~@47 A ~ B ~ C ~@8 B ~@2 D ~@35 E ~@2 F ~ G ~@8 F ~@2 H ~@7>".pickRestart({
A: "~@5 x ~@18", B: "~@3 x ~@4", C: "~ x", D: "~@17 x ~@6", E: "~@23 x", F: "~ x ~@10", G: "~ x ~@2", H: "~@5 x ~@6",
})).gain(0.25)
// drums · mid tom
const mid_tom = s("mt").struct("<~@59 A ~@9 B ~@9 C ~ D ~@11 E ~@18 F ~@11>".pickRestart({
A: "~@5 x ~@6", B: "~ x ~@10", C: "~@5 x ~@18", D: "~@7 x ~@16", E: "~@2 x!3 ~@3", F: "~ x ~@6",
})).gain(0.3)
// drums · crash
const crash = s("cr").struct(`<
~@41 A ~@17 B ~@8 C D ~@2 E F G ~@2 H I J ~ K ~@9 L M N O ~@17 I ~@6 P L ~@3
>`.pickRestart({
A: "~@2 x", B: "~@5 x", C: "~@9 x ~@9 x ~@4", D: "~@5 x ~@5 x ~@7 x ~@4", E: "~@16 x!2 ~@6", F: "~@19 x ~@4",
G: "~ x ~@22", H: "~ x", I: "~@13 x ~@10", J: "~@7 x ~@4", K: "~@17 x ~@6", L: "~ x ~@4", M: "~@5 x ~@3 x ~@2",
N: "~ x ~@2 x ~@3", O: "~@3 x ~@4", P: "x ~@6 x ~@4",
})).gain(0.25)
// drums · high tom
const high_tom = s("ht").struct("<~@59 A ~@9 B ~@9 C ~ D ~@11 E ~@18 F ~@11>".pickRestart({
A: "~@13 x ~@10", B: "~@5 x ~@18", C: "~ x ~", D: "~@7 x ~@4", E: "~@15 x!2 ~@7", F: "~@7 x ~@16",
})).gain(0.25)
// … 10 more lines
More by Masini
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.