0:00/0:00
// L'era del cinghiale bianco — Battiato
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 acoustic guitar nylon (copy of ch 3 lead 2 sawtooth)
// note: Full arrangement: all 127 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.
// bass · acoustic bass
const bass = note(`<
~@14 A@2 B@2 C@2 D ~@5 E@4 F@6 G H I@5 J@5 K@5 L M@4 N@2 ~@4 O@2 P@2 Q@8 R S@4 T U@7 V@7 W@5 X@2 Y@3 Z@2 AA@4 ~@15
>`.pickRestart({
A: "[~@30 a1@11 g1@11 c2@12]/2",
B: "[b1@2 c2@2 ~@2 c2@2 ~ d2 ~@3 d2 ~@3 e2@9 ~ d2@11 g1@12 ~@6 g2@4 g#1@4, g1 ~@52 g1@5 ~@6]/2",
C: "[g#2@3 a1@9 ~@2 g1@11 c2@11 g1 ~ b1@2 c2@2 ~ c2@2 ~@2 d2@2 ~ d2 ~@3 e2@9 ~]/2", D: "~ d2@11 g1@18 ~@2",
E: "[~@23 d2@14 d3@11 g2@3 ~ a2@8 ~@3 a2@4 ~@3 a2@3 a1@4 a2@3 ~ c#2@8 ~@6 c#3@4 c#2@7 c#3@4 a#1@9 a#2 ~ a#2@3 a#1@4, ~@92 c#2@5 ~@31]/4",
F: "[a#2 ~ a#2 ~ a#1@3 a#2@3 ~ f1@28 ~ c2@28 ~ a#1@10 ~@11 d2@27 ~@2 f1@28 ~@2 c2@26 ~@2 a#1@11 ~@4]/6",
G: "~@7 d2@25", H: "~@4 f1@25 ~@3", I: "[~ c2@22 ~@7 a#1@9 ~@13 d2@24 ~@5 f1@25 ~@4 c2@23 ~@6 a#1@8 ~@3 c2 ~@9]/5",
J: "[~ d2@28 ~ c2@29 ~@18 a1 ~@2 a1 ~@3 a1 ~@6 a2 ~@3 a2@7 ~@4 g2 ~@3 g2@7 ~@3 c3 ~@3 c3@7 c2@4 c3@3 b1@4 b2@4 ~@3 a2 ~@3 a2@7, ~@59 a2@27 ~@2 a1@7 ~@7 g1@15 c2@12 ~@17 a1@13 ~]/5",
K: "[~@4 g2 ~@3 g2@7 ~@3 c3 ~@3 c3@7 ~@4 c3@3 d2@4 d3@4 ~@3 e3@2 ~@2 e3@7 ~@4 d3 ~@2 d3@6 ~@5 g2 ~@3 g2@7 g1@4 ~@3 f#1@4 f#2@4 ~@3 e3 ~@3 e3@7 ~@4 d3 ~@3 d3@7 ~@3 g2 ~@3 g2@7 g1@4 g2@2 ~ g1@4 g2@4, g1@14 ~ c2@12 ~@2 c2@7 ~@8 e2@14 d2@14 ~ g1@13 ~@5 g2@5 ~@6 e2@14 d2@14 ~ g1@11 ~@18]/5",
L: "a1@11 g1@10 c2@11",
M: "[~@2 g1@2 c2 ~@3 c2@2 ~ d2 ~@3 d2 ~@2 e2@9 ~@2 d2@10 ~ g1@11 ~@7 g2@4 g#1@4 g#2@3 a1@9 ~@2 g1@11 c2@11 ~@3 c2 ~@3 c2@4 d2@2 ~ d2@2 ~@2 e2@8, ~@2 b1 ~@52 g1@5 ~@44 [g1,b1]@2 ~@22]/4", // G
N: "[~@3 d2@11 g1@23 ~@27]/2", O: "[~@25 d2@14 d3@11 g2@4 a2@8 ~@2]/2",
P: "[~ a2@3 a1@7 ~@4 a1 ~@3 c#2@7 ~@11 c#2 ~@2 c#2@4 c#3@4 ~@3 a#2 ~ a#2 ~ a#1@4 a#2!2 ~ a#1@2, ~@11 a2@7 ~@12 c#2@5 ~@13 a#1@5 ~@11, ~@33 c#3@7 ~@24]/2",
Q: "[~@2 a#2 ~ a#2 a#1@3 ~ a#2@3 ~ f1@28 ~ c2@29 a#1@13 ~@8 d2@28 ~ f1@27 ~@2 c2@28 ~ a#1@19 ~@3 d2@26 ~@3 f1@26]/8",
R: "~@3 c2@27 ~@2", S: "[a#1@14 ~@8 d2@28 ~ f1@25 ~@4 c2@28 ~ a#1@17 ~@2]/4", T: "~@3 d2@29",
U: "[c2@28 ~@19 a1 ~@2 a1@4 a2@2 ~@5 a2 ~@3 a2@7 ~@4 g2 ~@2 g2@7 ~@4 c3 ~@3 c3@7 c2@4 c3@3 b1@4 b2@4 a1@3 a2 ~@3 a2@7 ~@4 g2 ~@2 g2@7 ~@4 c3@2 ~@2 c3@7 c2@4 c3@3 d2@4 d3@4 ~@3 e3@2 ~@2 e3@7 ~@4 d3@2 ~ d3@6 ~@5 g2@2 ~@2 g2@6 ~ g1@4 g2@3, ~@29 a2@24 ~@5 a1@10 ~@4 g1@15 c2@11 ~@32 g1@14 ~ c2@9 ~@20 e2@9 ~@5 d2@14 ~ g1@10 ~@11]/7",
V: "[f#1@3 ~ f#2@4 ~@3 e3 ~@3 e3@7 ~@4 d3 ~@2 d3@6 ~@5 g2 ~@3 g2@7 g1@4 ~@3 g#1@4 g#2@4 ~@3 a2 ~@3 a2@7 ~@4 g2 ~@2 g2@7 ~@4 c3 ~@3 c3@7 c2@4 c3@3 b1@4 b2@4 ~@3 a2@2 ~@2 a2@7 ~@4 g2@2 ~ g2@8 ~@3 c3@2 ~@2 c3@6 ~ c2@4 c3@3 d2@4 d3@4 ~@3 e3@2 ~@2 e3@7 ~@4 d3@2 ~ d3@7 ~@4 g2@2 ~@2 g2@6, ~@8 e2@10 ~@4 d2@14 ~ g1@10 ~@8 g2@5 ~@6 a1@11 ~@3 g1@14 ~ c2@12 ~@17 a1@13 ~ g1@14 ~ c2@11 ~@18 e2@12 ~@2 d2@11 ~@4 g1@11 ~@2]/7",
W: "[~ g1@4 g2@3 f#1@4 f#2@4 ~@3 [d3,e3] ~@3 e3@7 ~@4 d3 ~@2 d3@6 ~@5 g2@2 ~@2 g2@7 g1@4 g2@3 g#1@4 g#2@3 ~ a1@10 g1@11 c2@12 ~@6 c2@2 d2 ~ d2@2 ~@2 d2@2 ~ e2@9 ~@2 d2@11 g1@11 ~@3, ~@16 e2@13 ~ d2@14 ~ g1@11 ~@104]/5", // Dsus2
X: "[~ g1@7 g#1@7 a1@9 ~@2 g1@11 c2@8 ~@3 [g1,b1]@2 c2@2 ~@3 c2@4 d2@2 ~ d2@2]/2", // G
Y: "[~@2 e2@9 ~@2 d2@8 ~@3 g2@35 ~@5 a2 ~@2 a2@7 ~@4 g2 ~@3 g2@7 ~@3 c3@2 ~@2, ~@60 a1@8 ~@6 g1@12 ~@3 c2@7]/3",
Z: "[c3@7 c2@4 c3@4 b1@3 b2@4 ~@3 a2 ~@3 a2@7 ~@2 g2@2 ~@4 g2@7 ~@3 c3@2 ~@2 c3@6, ~@22 a1@12 ~@2 g1@14 ~ c2@12 ~]/2",
AA: "[~ c2@4 c3@4 ~@3 d3@4 ~@4 e3 ~@2 e3@7 ~@4 d3@2 ~@2 d3@7 ~@3 g2@2 ~@2 g2@7 g1@4 g2@4 f#1@3 f#2@4 ~@3 e3@2 ~@2 e3@7 ~@4 d3@2 ~@2 d3@7 ~@3 g2 ~@21, ~@9 d2@5 ~@2 e2@12 ~@2 d2@14 ~ g1@9 ~@20 e2@13 ~ d2@14 ~ g1@11 ~@14, ~@77 f3 ~@50]/4",
})).s("gm_acoustic_bass").gain(0.49)
// other · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@45 A B@2 C D E@3 ~@74>".pickRestart({
A: "~@25 b4@2 a4@2 b4@2 c5, ~@12 c5 ~@3",
B: "[a4@2 b4@2 c5@2 ~ c5@2 ~@2 c5@2 d5@2 ~ c5@3 ~ e5@2 d5@2 c5@2 ~ e5@2 d5@2 c5@2 d5@2 ~ d5@2 ~@2 d5@2 e5@5 ~@3 c5@2 ~ a4@2 b4@2 c5@2 ~ b4@2 c5@2, ~@6 d5@2 ~@2 b4@2 ~@3 b4@2 ~@2 d5@2 ~@5 d5@2 ~@7 e5@2 ~@2 c5@2 ~@11 b4@2 ~@5 a4@2 ~@3]/2",
C: "d5@2 c5 b4@2 c5@2 d5@2 ~ c5@2 d5@2 e5@2 d5@2 c5@2 d5@2 ~ d5@2 c5@2 d5@2 ~ d5@2, ~@9 b4@2 ~@11 e5@2 ~@5 e5@2 ~",
D: "~@2 d5@2 e5@4 ~@4 g4@2 ~ e4@2 f#4@2 g4@2 ~ f#4@2 g4@2 a4@2 g4@2 f#4@2, ~ c5@2 ~@11 f#4@2 ~@5 e4@2 ~@9",
E: "[~ a4@2 f#4@2 g4@2 ~ b4@18 ~ g4@3 a4@4 f#4@3 g4@2 f#4@2 e4@2 f#4@2 g4@2 ~ f#4@2 g4@2 a4@2 g4@2 ~ g4@2 a4@2 f#4@2 g4@2 ~ b4@18 ~ g4@3 a4@4 ~@4, g4@2 ~@5 a4@2 ~@38 e4@2 ~@7 f#4@2 ~@7 a4@2 ~@29]/3",
})).s("gm_acoustic_guitar_nylon").gain(0.4)
// chords · epiano1
const epiano1 = note("<~@30 A ~@37 B C D E F@2 G@2 H I J K@2 L ~@45>".pickRestart({
A: "~@3 e4 ~@28", B: "~@12 [c4,f4,a4] ~@11 [f4,a4]@7 ~, ~@24 c4 ~@7",
C: "~@2 [c4,e4,g4] ~@10 [e4,g4]@3 ~@8 [c4,e4,g4] ~@6 [c4,e4,g4], ~@13 c4 ~@18", // C Em C
D: "~@6 [a#3,d4,f4]@8 ~@3 [d4,g4]@2 ~@8 g4 ~@4, ~@17 a#3 ~@14", E: "~@3 [d4,f4,a4] ~@11 [d4,f4,a4]@10 c4 ~@6",
F: "[~ [c4,f4,a4] ~@9 [c4,f4,a4] ~@17 [c4,e4,g4]@9 ~@6 [e4,g4]@6 ~ a#3@4 d4@3 a#3@4 [d4,g4]@2, ~@40 c4@8 ~@3 f4@3 ~@10]/2", // F C Em G5
G: "[~@2 a#3@4 ~@3 [d4,f4,a4] ~@7 [d4,f4,a4] ~@10 [d4,f4]@8 ~@2 [c4,f4,a4]@9 ~@2 [c4,f4,a4]@7 ~@3 [c4,f4,a4] ~@2 c4 ~, ~@27 a4@7 ~@30]/2", // Dm F
H: "~@2 [c4,e4] ~@6 [c4,e4,g4] ~@12 [c4,e4]@10, ~@2 g4@2 ~@17 g4@10 ~", // C
I: "[a#3,d4,f4]@7 ~@3 a#3 d4 ~@17 [d4,f4,a4] ~@2, ~@5 g4 ~@10", J: "~@8 [d4,f4,a4]@9 ~ c4 [f4,a4] ~@6 [c4,f4,a4]@6",
K: "[~@4 c4 ~@3 [c4,f4,a4]@2 ~@2 g3 ~@2 [c4,e4,g4]@2 ~@6 c4 ~@2 [c4,e4,g4]@13 ~@6 f4@3 d4@3 a#3@4 d4@3 a#3@4 d4 ~, ~@15 g3 ~@29 a#3@5 ~@5 g4@5 ~@4]/2", // F C
L: "~@2 [f4,a4] d4 ~@28", // F
})).s("gm_epiano1").gain(0.2)
// chords · percussive organ
const percussive_organ = note("<~@7 A@6 B C@4 D@3 E@6 ~@100>".pickRestart({
A: "[~@22 [e4,a4,c5]@14 b4@14 ~ c4@27 ~@2 a4@13 [g3,d4,b4]@15 ~ e4@27 ~@2 [g4,b4,e5]@14 [f#4,a4]@14 ~ [g3,b4]@25, ~@36 g4@42 e4@15 g4@42 ~@3 e4@11 ~@3 d4@11 ~@29, ~@36 d4@11 ~@4 c5@43 ~@98]/6", // Am G Em F#m G
B: "~@2 [g4,e5]@7 [f#4,a4]@7, ~ [e4,b4]@3 ~@4", // C F#m E5
C: "[~ [g4,b4]@27 ~@2 [e4,a4]@9 ~@2 b4@11 [c4,c5]@27 ~@2 b4@10 [d4,f#4,a4]@11 [g4,b4]@26, ~@39 g4@37 ~@5 g4@9 ~ d5@35 ~@2, ~@39 d4@11 ~@29 [e4,e5]@11 ~@38]/4", // G A5 C D G E
D: "[~@3 [a4,c5]@11 [d4,g4,b4]@10 ~ [c4,g4,c5]@26 ~@3 [e4,b4,e5]@9 ~@2 d4@6 ~@5 [g3,g4]@20, ~ e4@11 ~@42 g4@8 ~ a4@9 ~@24, ~@65 d5@31]/3", // Am G C5 E5 G
E: "[~@9 a4@21 a#4@19 ~ a4@22 [c4,g4,e5]@22 a4@22 a#4@21 [f4,a4]@22 [c4,g4,e5]@17 ~@16, ~@9 f5@64 ~@21 f5@66 ~@32, ~@9 [d4,d5]@41 c5@44 ~@43 c5@39 ~@16, ~@50 f4@18 ~@26 [d4,d5]@43 ~@55]/6", // C F C D
})).s("gm_percussive_organ").gain(0.3)
// chords · percussive organ · soft notes
const percussive_organ_soft = note("<~@9 A B@4 C@2 ~@111>".pickRestart({
A: "~@7 a3@6 ~@3", B: "[~@13 c5@30 ~@28 g4@27 ~@16 d5@14, ~@13 c4@27 ~@16 d5@41 ~@17 d4@9 ~@5]/4",
C: "[~ [g3,e5]@25 ~@4 c5@11 ~@23]/2", // C
})).s("gm_percussive_organ").gain(0.1)
// chords · epiano1
const epiano1_2 = note(`<
~@30 A B C D E@4 F@2 G@2 H I ~ J@6 K@5 L@2 M@2 ~@2 N@8 O@6 P@2 Q@8 R@5 S@4 T@8 U@4 V@5 W ~@14
>`.pickRestart({
A: "~@11 [c5,f5,a5]@7 [c5,f5,a5] ~@13", B: "~ [c5,g5] ~@9 [e5,g5] c5 ~@9 [c5,e5,g5]@9 ~",
C: "~@5 f5@7 ~@3 [a#4,g5] ~@16, ~@4 [a#4,d5]@7 ~@4 d5@2 ~@15", // D# A#
D: "~ a5 [d5,f5] ~@20 c5@8 ~, ~@6 f5@9 ~, ~@12 d5@10 ~ c#5 ~@8, ~@13 a5@18 ~", // Dm
E: "[~ [c5,f5] a5 ~@10 [c5,e5,g5]@9 ~@5 g5@4 c5@4 e5@3 [c5,g5]@4 e5@2 ~@5 [a#4,d5,f5]@9 ~@2 [a#4,d5,g5]@8 ~@10 [d5,f5,a5] ~@10 [d5,f5,a5]@10 c5@6 ~@2 [c5,f5,a5]@8 ~@6 [f5,a5]@4 e5@2 ~, ~@24 c5@6 ~@88 c5@7 ~@3, ~@27 e5@3 ~@98]/4", // F5 C C5 A# Gm Dm F
F: "[~ [c5,e5,g5]@8 ~@3 [c5,g5]@11 ~@7 [a#4,d5,f5]@7 ~@3 [a#4,d5,g5]@8 ~@12 a5@2 ~@2, ~@12 e5@8 ~@39 [d5,f5]@3 ~@2]/2", // C C5 A# Gm Dm
G: "[~@6 [d5,f5,a5]@10 ~@8 [c5,f5,a5]@16 ~@13 [c5,e5,g5]@2 ~@9]/2", // Dm F C
H: "[c5,e5,g5]@10 [a#4,d5,f5]@8 ~@3 [a#4,d5,g5]@8 ~@3", I: "~@8 [d5,f5,a5] ~@10 [d5,f5,a5]@9 ~@4",
J: "[~@23 [e4,a4,c5]@13 ~ b4@14 c4@28 ~@2 a4@13 [d4,b4]@15 ~ c4@23 ~@6 b4@11 ~@17 [g4,b4]@25, ~@36 g4@43 ~ e4@14 ~@58 a4@15 ~@25, ~@37 d4@10 ~@4 c5@44 ~@15 e5@42 ~ d5@39]/6", // Am G
K: "[~@5 [e4,e5]@14 ~ f#4@11 ~@3 b4@26 ~@3 [e4,a4]@10 d4@8 ~@3 c4@25 ~@6 e4@8 ~@2 [d4,a4]@10 [g4,b4]@25, ~@5 g4@11 ~@17 g4@27 ~@13 g4@38 ~@49, ~@5 a4@5 ~@10 d5@40 ~@3 c5@21 ~@41 d5@35]/5", // E A5 D5 G
L: "[~@4 [a4,c5]@10 ~ [d4,b4]@11 [c4,c5]@25 ~@3 [e4,g4,b4,e5]@10, ~@3 e4@10 ~ g4@37 ~@13]/2", // Am G C Em
M: "[~@2 [d4,f#4]@11 [g4,b4]@24 ~@27, ~ a4@10 ~@53, ~@2 d5@35 ~@27]/2", // D G
N: "[a4@23 a#4@21 a4@21 [e4,g4]@22 ~ [f4,d5]@28 c5@29 c#5@28 ~@2 d4@27 ~@2 [f4,a4]@28 g4@24, f4@66 ~@21 a4@88 ~@81, d4@41 ~@3 [c4,c5]@43 ~@29 e4@56 ~@2 [f4,a#4]@30 ~@52, ~@145 c#4@25 ~@34 [c4,c5]@52]/8", // Em Dm F C A#5 C
O: "[~@5 f4@13 ~@10 [d4,f4]@26 ~@31 [e4,g4]@27 ~@2 f4@12 ~ g4@10 [d4,f4]@25 ~@4 f4@26, ~@5 d5@47 ~@4 c5@56 ~@80, ~@28 a4@58 ~@28 a#4@19 ~@4 a4@55, ~@56 c4@53 ~@5 a#3@22 ~@56]/6", // Dm Em Dm
P: "[~@2 [e4,g4]@29 ~@11 g4@11 ~ f4@10, ~@31 [a#3,d5]@20 ~@13, ~@31 f4@11 ~@22, ~@8 a#4@5 ~@3]/2", // Em A#
Q: "[~@47 [e4,g4]@25 ~@4 f4@11 g4@10 ~ [d4,a4]@28 ~@30 [a3,a4,c#5,e5]@24 ~@5 [e4,a4,c5]@14 b4@14 ~ [c5,e5]@28 [e4,a4,c5]@14, ~@18 [c4,c5]@55 ~@3 d5@50 c5@29 ~@101, ~@76 a#3@21 ~@30 e4@53 ~@33 c4@25 ~@18, ~@76 a#4@18 ~@4 f4@25 ~@3 g4@25 ~@48 g4@43 ~@14]/8", // Em D5 A Am C Am C
R: "[~ b4@14 ~@30 [g4,b4]@14 [f#4,a4]@14 [g4,b4]@27 ~@2 [g4,b4,e5]@14 [f#4,a4]@15 [g4,b4]@27 ~@2, ~ g4@43 ~ e4@12 ~@45 e4@11 ~@47, ~ d4@11 ~@3 c5@29 ~@15 d5@43 ~@14 d5@42 ~@2, ~@3 c4@5 ~@24, ~@16 e5@43 ~@101]/5", // G F#m G Em F#m G
S: "[[e4,a4,c5,e5]@14 [b4,d5]@14 [c4,c5,e5]@28 ~@2 [e4,a4,c5]@14 b4@15 c4@26 ~@3 [e4,g4,b4,e5]@12, ~@14 g4@43 ~@15 g4@42 ~@14, ~@14 d4@11 ~@103]/4", // Am Bm C Am Em
T: "[~@2 [d4,f#4,a4]@15 [g4,b4]@26 ~@3 [e4,g4,b4,e5]@14 [f#4,a4]@15 [g4,b4]@26 ~@4 c5@10 b4@11 c5@27 ~@3 g4@10 a4@10 ~ [g4,b4]@26 ~@3 [e4,a4,c5]@10 [d4,b4]@10 ~ [c4,c5]@27 ~@2, ~@2 d5@41 ~@17 d5@39 ~@5 [e4,a4]@10 ~ g4@38 ~@2 [e4,e5]@11 d5@36 ~@14 g4@37 ~@3, ~@115 d4@8 ~@3 c4@24 ~@106]/8", // D G Em F#m G Am G C …
U: "[~@12 f#4@9 ~ [g4,b4]@33 ~@3 [e4,a4,c5]@14 b4@15 ~ [c5,e5]@28 ~ c5@11, ~@3 d5@11 ~@4 g4@11 [e4,a4]@3, ~@72 d4@12 ~@3 c4@26 ~@15]/4", // G Am C A5
V: "[~@3 b4@15 [c4,c5,e5]@26 ~@2 [e4,g4,e5]@14 ~@15 g4@25 ~@4 [e4,g4,e5]@15 [f#4,a4]@14 ~ g4@26, ~@3 g4@42 ~ b4@11 ~@4 d5@41 ~@17 d5@41, ~@3 d4@12 ~@45 [f#4,a4]@15 b4@42 ~@16 b4@27]/5", // C Em F#m
W: "~@2 [e4,a4,c5]@15 ~@15", // Am
})).s("gm_epiano1").gain(0.17)
// chords · epiano1 · soft notes
const epiano1_soft = note(`<
~@44 A@2 ~ B@4 C ~ D@3 ~@3 E@3 F@2 G@2 ~ H@2 I J K@2 L@4 M@3 ~ N@2 ~ O ~@2 P@2 Q ~@3 R@2 ~ S@2 ~ T@2 ~@2 U ~@4 S@2 V@2
~@15
>`.pickRestart({
A: "[~@30 a4@19 ~@15, ~@29 [c#5,e5,a5]@21 ~@14]/2", // A
B: "[~@46 c5@28 g4@14 ~ d4@15 ~@24, ~@30 g4@40 ~@4 e4@11 ~@3 f#4@15 ~@25]/4", C: "~@12 b4@5 ~@3 [d4,a4]@12",
D: "[~@20 c5@27 ~@4 [g4,b4]@9 f#4@11 ~@25, ~@25 e5@5 ~@18]/3", // G
E: "[~@10 a4@22 a#4@21 a4@18 ~@3 [g4,c5]@22, ~@5 [f4,d5]@33 ~@10, ~@10 d4@61 ~@3 [c4,e4]@18 ~@4]/3", // C5 Dm C
F: "[d5@11 ~@5]/2", G: "[~@6 d4@7 ~@3]/2", H: "[~@14 d5@29 ~@21]/2", I: "~@9 e4@23",
J: "~@18 g4@7 ~@7, ~@5 [a#3,a#4]@23 ~@4", K: "[~@25 f4@29 ~@10]/2", L: "[~@18 d5@47 ~@5 [c4,c5]@54 ~@4]/4",
M: "[~@22 [d4,a4]@26 ~@2 [f4,a4]@29 ~@17]/3", N: "[~@15 c4@13 ~@4]/2", O: "~@7 d4@11 ~@14", P: "[~@27 d4@14 ~@23]/2",
Q: "~@21 d4@11", R: "[~@8 d4@12 ~@4 e5@25 ~@15, ~@23 c5@27 ~@14]/2", S: "[~@29 d4@15 ~@20]/2",
T: "[~@28 b4@9 ~@2 d4@10 ~@15, ~@38 f#4@11 ~@15]/2",
U: "~@6 [g4,b4]@4 ~@5 d4@4 ~@13, ~ e5@5 ~@10, ~@2 c5@2 ~@8 a4@9 ~@11, ~@3 e4@10 ~@19", V: "[~@23 d4@15 ~@26]/2",
})).s("gm_epiano1").gain(0.08)
// chords · overdriven guitar
const overdriven_guitar = note(`<
~@15 A@2 B C@2 D ~@16 E F@5 G ~ H@3 I@3 J K L@2 M N@4 ~@15 O P Q@5 ~ R@3 S@5 T@4 U@5 V@3 W@7 X@2 Y ~@14
>`.pickRestart({
A: "[~ [e4,b4]@3 ~ a4@3 ~@4 [e4,b4]@3 ~ a4 g4 ~@2 e4@20 ~@12 [e4,b4]@4 [d4,a4]@3 ~@4 b4, ~@4 d4@3 ~@8 d4@2 ~@2 g3@22 ~@21 e4@2]/2", // E5 D5
B: "~@2 d4@3 ~ [d4,b4]@17 ~@9, ~ a4@2 ~@29, ~@2 g4 ~@29", // G
C: "[~@7 [e4,b4]@3 [d4,a4]@3 ~@4 [e4,b4]@2 a4@2 [d4,g4]@2 ~@2 e4@23 ~@9 [e4,b4]@3 ~ a4@3, ~@24 g3@22 ~@14 d4@3 ~]/2", // E5 D5 E5 G5 E5
D: "~@4 [e4,b4]@2 ~ d4@3 ~@2 [d5,g5]@20, ~@6 a4@2 ~@3 g4@21", E: "~ c4 ~@3 f4@24 ~ c4 ~",
F: "[~ g4@14 ~ c4@14 a#4@4 a4@3 g4@3 ~ f4@3 ~@4 e4@3 d4@23 ~@4 c4 ~@2 f4@24 ~ c4@2 ~ g4@12 ~@3 c4@10 ~@5 a#4@3 a4@3 g4@4 f4@4 ~@4 e4@3]/5",
G: "d4@25 ~@7", H: "[~@16 [a3,a4] ~@6 a3@14 ~ g3@10 ~@4 c4@22 ~@7 a3@11 ~@4]/3",
I: "[g3@12 ~@2 c4@23 ~@6 e4@11 ~@4 d4@10 ~@5 g3@22 ~]/3", J: "~@5 e4@11 ~@4 d4@12", K: "~@3 g3@21 ~@8",
L: "[~@3 [e4,b4]@4 [d4,a4]@4 ~@4 a4@2 ~ d4@2 ~@3 [a4,b4] ~@30 e4@3 [d4,a4]@4 ~@3, ~@14 e4@4 ~@3 [g3,e4]@24 ~@19, ~@14 b4@2 ~ g4@5 ~@31 b4@4 ~@7]/2", // E5 D5 Asus2 D5 C
M: "~@2 a4@2 g4@4 ~ b4@21 ~@2, ~ [e4,b4]@3 d4@2 ~@2 d4@21 ~@3", // E5
N: "[~@9 [e4,b4]@3 [d4,a4]@4 ~@3 b4@2 ~@2 d4@3 ~ g3@23 ~@9 [e4,b4]@4 a4@4 ~@3 [e4,b4]@2 ~ d4@3 ~@2 [d5,g5]@27 ~@23, ~@19 e4@3 g4@4 e4@22 ~@15 d4@2 ~@63, ~@21 a4@2 ~@49 a4@3 ~@2 g4@24 ~@27]/4", // E5 D5 E5 G5
O: "~@2 c4 ~@3 f4@24 c4 ~", P: "~@3 g4@15 c4@10 ~@4",
Q: "[a#4@3 a4@4 g4@3 f4@4 ~@4 e4@3 d4@24 ~@2 c4 ~@3 f4@24 ~ c4@2 ~@2 g4@14 ~ c4@8 ~@5 a#4@4 a4@3 g4@3 ~ f4@4 ~@3 e4@4 d4@25 ~@5, ~@40 f4 ~@39]/5",
R: "[~@25 a3@14 ~ g3@15 c4@28 a3@13]/3", S: "[~@2 g3@14 c4@27 ~@2 e4@14 ~ d4@15 g3@27 ~ e4@14 ~ d4@14 ~ g3@25 ~@2]/5",
T: "[~ a3@14 ~ g3@14 c4@27 ~@2 a3@15 g3@14 c4@25 ~@4 e4@11]/4",
U: "[~@4 d4@14 g3@27 ~@2 e4@14 ~ d4@14 g3@25 ~@7 [e4,b4]@4 ~ a4@5 ~@2 [e4,b4]@3 ~ a4@2 ~ g3@29 ~@4, ~@112 d4@5 ~@6 d4@4 d4@22 ~@11]/5", // E5
V: "[[e4,b4]@3 [d4,a4]@4 g4@2 ~@2 b4@2 ~ d4@3 ~ b4@25 ~@7 [e4,b4]@4 [d4,a4]@3 g4@3 ~ b4@2 ~@2 g4@3 ~ [g3,e4]@27, ~@10 e4@3 a4@3 ~ d4@31 ~@12 e4@3 a4@2 ~@31, ~@16 d4 ~@7]/3", // E5 D5 E5 D5 C
W: "[~@6 b4@3 d4@5 ~@2 b4@2 ~ d4@4 g4@28 ~@8 a3@15 g3@14 ~ c4@25 ~@3 a3@15 g3@12 ~@2 c4@26 ~@3 e4@13 ~ d4@15 ~ g3@19, ~@5 e4@4 a4@3 ~@3 e4@3 a4@2 ~@204, ~@19 g4@2 ~@203]/7",
X: "[~@9 e4@14 ~ d4@15 g3@25]/2", Y: "~@2 a3@7 g3@7",
})).s("gm_overdriven_guitar").gain(0.35)
// other · percussive organ · B C C# B C C#
const percussive_organ_2 = note(`<
~@28
[~@6 [b4,b5]@3 [c5,c6]@4 [c#5,c#6]@3 ~@16]
~@37
[~@7 [b4,b5]@4 [c5,c6]@3 [c#5,c#6]@5 ~@13]
~@60
>`).s("gm_percussive_organ").gain(0.5)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F G H I J K L M N O P Q R S T U ~@5 V W X Y Z ~@14 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN ~@6 AO AP AQ
~@36 AR ~@22
>`.pickRestart({
A: "~@7 x ~@6 x ~", B: "~@11 x ~@13 x ~@3 x ~@2", C: "~@4 x ~@6 x ~@4", D: "~@5 x ~@13 x ~@3 x ~@8",
E: "~@2 x ~@13 x ~@7 x ~@6 x", F: "~@13 x ~@3 x ~@10 x ~@3", G: "~@10 x ~@14 x ~@6", H: "~@7 x ~@3 x ~@10 x ~@9",
I: "~@4 x ~@14 x ~@12", J: "~ x ~@3 x ~@10 x ~@13 x ~", K: "~@13 x ~@13 x ~@3 x", L: "~@5 x ~@6 x ~@3",
M: "~@7 x ~@13 x ~@3 x ~@6", N: "~@2 x ~@6 x ~@6", O: "~ x ~@13 x ~@3 x ~@10 x ~", P: "~@9 x ~@2 x ~@7 x ~@9 x ~",
Q: "~@2 x ~@14 x ~@9 x ~@3 x", R: "~@3 x ~@2 x ~@14 x ~@2 x ~@7", S: "~@3 x ~@10 x ~@3 x ~@6 x ~@6",
T: "~@2 x ~ x ~@6 x ~@4", U: "~ x ~@3 x ~@6 x ~@19", V: "~@23 x ~@8", W: "~@2 x ~@13 x ~@3 x ~@10 x",
X: "~@6 x ~@10 x ~@10 x ~@2 x", Y: "~@14 x ~@8 x ~ x ~@2 x ~@3", Z: "x ~@3 x ~@2 x ~ x ~@22", AA: "~@3 x",
AB: "~@6 x ~@14 x ~@10", AC: "~@3 x ~@3 x ~@10 x ~@13", AD: "x ~@14 x ~@13 x ~@2", AE: "~ x ~@10 x ~@13 x ~@5",
AF: "~@9 x ~@13 x ~@3 x ~@4", AG: "~ x ~ x ~@6 x ~@5", AH: "~@3 x ~@13 x ~@3 x ~@10", AI: "x ~@10 x ~@2 x ~@6 x ~@10",
AJ: "~@4 x ~@3 x ~@9 x ~@10 x ~@2", AK: "~ x ~@6 x ~@14 x ~@2 x ~@5", AL: "~@2 x ~@2 x ~@10 x ~@3 x ~@6 x ~@4",
AM: "~@6 x ~@2 x ~@14 x ~@7", AN: "~@3 x ~@2 x ~@7 x ~@17", AO: "~@4 x ~@9 x ~@10 x ~@6", AP: "~@2 x ~@6 x ~@5 x",
AQ: "~@8 x ~@14 x ~@8", AR: "~@17 x ~@14",
})).gain(0.7)
// drums · clap
const clap = s("cp").struct(`<
~@7 A ~@12 B ~@5 C D E F G H I J K L M N O P Q R S T U V W X Y I Z AA AB AC AD AE AF AG AH ~@5 AI AJ AK AL AM AN AO AP
AQ AR AS AT AU AV AW AX AY AZ BA BB BC AF AG BD BE BF BG BH BI BJ BK BL BM BN Q BO BP BQ BR BS BT BU BV BW AX BX BY BZ
~@15
>`.pickRestart({
A: "~@11 x ~@4", B: "~@3 x ~@4", C: "~@23 x ~@8", D: "~@5 x ~@14 x ~@11", E: "~@2 x ~@14 x ~@13 x",
F: "~@5 x ~ x ~@6 x ~", G: "~@2 x ~@6 x ~@6", H: "~ x ~@13 x ~@13 x ~@2", I: "~@6 x ~@6 x ~@2",
J: "~@16 x ~@6 x ~@7 x", K: "~@10 x ~@2 x ~@18", L: "~@10 x ~@6 x ~@7 x ~@6", M: "~@7 x ~@17 x ~@3 x ~@2",
N: "~@4 x ~@6 x ~@14 x ~@5", O: "~@9 x ~@13 x ~@6 x ~", P: "~@20 x ~@6 x ~@4", Q: "~@2 x ~@7 x ~@6 x ~@6 x ~@6 x",
R: "~@7 x ~@6 x ~@6 x ~@6 x ~@3", S: "~@4 x ~@6 x ~@10 x ~@9", T: "~ x ~@6 x ~@6 x ~@6 x ~@7 x ~",
U: "~@5 x ~@6 x ~@6 x ~@7 x ~@2 x ~", V: "~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@10 x", W: "~@7 x ~@6 x ~",
X: "~@10 x ~@14 x ~@6", Y: "~@8 x ~@20 x ~@2", Z: "~@9 x ~@13 x ~@8", AA: "~@3 x ~@6 x ~@5", AB: "~@3 x ~@20 x ~@7",
AC: "~@7 x ~@6 x ~@6 x ~@7 x ~@2", AD: "~@11 x ~@6 x ~@7 x ~@5", AE: "~ x ~@6 x ~@6 x ~@14 x ~",
AF: "~@5 x ~@6 x ~@7 x ~@6 x ~@4", AG: "~@2 x ~@6 x ~@7 x ~@6 x ~@6 x", AH: "~@3 x ~@3 x ~@8", AI: "~@25 x ~@6",
AJ: "~@7 x ~@14 x ~@9", AK: "~@4 x ~@14 x ~@12", AL: "~ x ~@14 x ~@10 x ~@4", AM: "~@2 x ~@2 x ~@7 x ~@6 x ~@11",
AN: "~@2 x ~@14 x ~@10 x ~@2 x", AO: "~@14 x ~@10 x ~@2 x ~@3", AP: "~@4 x ~@13 x ~@6 x ~@6",
AQ: "~ x ~@13 x ~@14 x ~", AR: "~@12 x ~@6 x ~@7 x ~@4", AS: "~@9 x ~@17 x ~@3 x", AT: "~@6 x ~@6 x ~@14 x ~@3",
AU: "~@3 x ~@14 x ~@6 x ~@6", AV: "x ~@10 x ~@10 x ~@6 x ~@2", AW: "~@4 x ~@3 x ~@3 x ~@6 x ~@6 x ~@5",
AX: "~ x ~@7 x ~@6 x ~@6 x ~@6 x ~", AY: "~@2 x ~@3 x ~@6 x ~@10 x ~@7", AZ: "~@3 x ~@13 x ~@6 x ~@7",
BA: "x ~@6 x ~@6 x ~@6 x ~@7 x ~@2", BB: "~@4 x ~@6 x ~@3 x ~@2 x ~@3 x ~@3 x ~@5",
BC: "~ x ~@6 x ~@6 x ~@7 x ~@6 x ~", BD: "~@6 x ~@7 x ~@6 x ~@6 x ~@3", BE: "~@3 x ~@7 x ~@6 x ~@6 x ~@6",
BF: "x ~@7 x ~@6 x ~@6 x ~@6 x ~@2", BG: "~@5 x ~@6 x ~@6 x ~@6 x ~@5", BH: "~@2 x ~@6 x ~@6 x ~@6 x ~@7 x",
BI: "~@6 x ~@6 x ~@3 x ~@2 x ~@7 x ~@3", BJ: "~@3 x ~@6 x ~@3 x ~@2 x ~@7 x ~@6", BK: "x ~@6 x ~@6 x ~@7 x ~@6 x ~@2",
BL: "~@4 x ~@6 x ~@7 x ~@6 x ~@5", BM: "~ x ~@6 x ~@7 x ~@6 x ~@6 x ~", BN: "~@5 x ~@7 x ~@6 x ~@6 x ~@3 x",
BO: "~@7 x ~@6 x ~@2 x ~@3 x ~@6 x ~@3", BP: "~@4 x ~@6 x ~@6 x ~@6 x ~@3 x ~@2",
BQ: "~ x ~@2 x ~@3 x ~@6 x ~@6 x ~@7 x ~", BR: "~@5 x ~@6 x ~@3 x ~@2 x ~@3 x ~@3 x ~@4",
BS: "~@2 x ~@6 x ~@6 x ~@3 x ~@3 x ~@7", BT: "~@6 x ~@6 x ~@3 x ~@3 x ~@6 x ~@3", BU: "x ~@2 x ~@6 x ~@7 x ~@6 x ~@6",
BV: "x ~@6 x ~@7 x ~@6 x ~@6 x ~@2", BW: "~@4 x ~@7 x ~@6 x ~@6 x ~@5", BX: "~@6 x ~@6 x ~@6 x ~@6 x ~@4",
// … 132 more lines
More by Battiato
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.