0:00/0:00
// Roma capoccia — Venditti Antonello
// 60 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 76 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/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 · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note(`<
~@14 A@4 B@5 C D E F@2 A@4 B@5 G H@2 I@4 J@5 K L M N@2 I@4 J@5 K O@2 P O@2 Q R P S ~@3
>`.pickRestart({
A: "[~@65 c#5@22 b4@6 a4@3 ~ d5@15 ~@9 e5@7, ~ a5@96 f#5@24 ~@7, ~@7 c#5]/4",
B: "[~ [b4,d5]@16 e5@16 e4@16 f#4@16 e4@16 d4@32 d5@15 ~ c#5@16 [g#4,b4]@15, ~@17 g#4@31 ~ a4@95 ~@16, ~@33 c#5@48 f#4@48 e4@31]/5", // Bm G#m
C: "~ d4@16 ~@8 f#5@7, a4@25 ~@7, ~ f#4@25 ~@6, ~@17 d5@15", D: "~ [a4,c#5]@16 [b4,d#5]@15", E: "~ [a4,d5,f#5]@31",
F: "[~@13 e5@4 ~@16 a4@22 ~@2 a5@7, ~ [a4,c#5]@16 [b4,d#5]@15 ~ d5@28 ~@3, ~@29 f#5@33 ~@2]/2", // A B
G: "~ d4@16 ~@8 f#5@7, ~ [f#4,a4]@25 ~@6, ~@17 d5@15", // F#m
H: "[~ [e4,c#5]@15 ~ [f#4,d5]@16 c#5@16 [g#4,b4]@8 [f#4,a#4,c#5]@7, ~ a4@46 ~@17, ~@33 e4@22 ~@9]/2", // C#m D G#m F#
I: "[~@65 d#5@22 c#5@6 b4@3 ~ e5@15 ~@9 f#5@7, ~ b5@96 g#5@24 ~@7, ~@7 d#5]/4",
J: "[~ [c#5,e5]@16 f#5@16 f#4@16 g#4@16 f#4@16 e4@32 e5@15 ~ d#5@16 [a#4,c#5]@15, ~@17 a#4@31 ~ b4@95 ~@16, ~@33 d#5@48 g#4@48 f#4@31]/5", // C#m A#m
K: "~ e4@16 ~@8 g#5@7, b4@25 ~@7, ~ g#4@25 ~@6, ~@17 e5@15", L: "~ [b4,d#5]@16 [c#5,f5]@15", M: "~ [b4,e5,g#5]@31",
N: "[~@13 f#5@4 ~@16 b4@22 ~@2 b5@7, ~ [b4,d#5]@16 [c#5,f5]@15 ~ e5@28 ~@3, ~@29 g#5@33 ~@2]/2", // B C#
O: "~ [f#4,d#5]@16 [g#4,e5]@15, ~ b4@31", P: "~ [f#4,d#5]@15 ~ [g#4,e5]@15, ~ b4@31",
Q: "~ [f#4,d#5]@16 e5@15, ~ b4@31", R: "~ f#4@15 ~ g#4@15, ~ b4@31", S: "~ b4@15, ~ f#4@15 ~@16, ~@2 d#5@15 ~@15",
})).s("gm_string_ensemble_2").gain(0.18)
// chords · piano · "A.PIANO"
const piano = note(`<
A@2 B@2 C D E F G H I J@2 K@4 L M@2 N@3 O P@4 Q R@2 L S@2 T@3 O U V W X@2 Y Z@2 AA@3 AB AC@4 W X@2 Y AD@2 AA@3 AB AE@7
AF ~@4
>`.pickRestart({
A: "[~@5 [a3,c#4,f#4] ~@3 [a3,c#4,f#4]@6 ~@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4]@13 ~@3 [a3,f#4] ~@3 [a3,c#4,f#4]@6 ~@2 [a3,f#4] ~@3 [a3,c#4,f#4]@11, ~ [a2,e3]@62 ~]/2", // F#m D F#m D F#m A5
B: "[~@5 [a3,f#4] ~@3 [a3,c#4,f#4]@6 ~@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4]@13 ~@3 [a3,c#4,f#4] ~@3 [a3,c#4,f#4]@6 ~@2 [a3,f#4] ~@3 [a3,c#4,f#4]@10 ~, ~ [a2,e3]@62 ~]/2", // D F#m D F#m A5
C: "~@7 a4@14 ~@2 [e4,a4]@4 [e4,a4]@5, ~ b3@31, ~ a4@6 ~@25, ~@3 c#4@29", // A5
D: "~@7 a3@8 ~@8 [b4,e5]@2 ~@4 a4@3, ~ [b3,e4]@31, ~ a4@26 c#5@5, ~@3 c#4@29, ~@25 [b4,e5]@7", // E5
E: "~ e4@6 [e4,a4]@4 [e4,a4]@4 a4@2 ~@6 a3@2 ~@2 [c#4,e4,a4]@5, ~ b3@14 ~@2 b3@15, ~@17 [e4,a4]@10 ~@5", // A5 A A5
F: "~ a3@6 a3@2 ~@6 f#4@2 a3@6 a3@4 ~@2 a3@3, ~ d4@16 [c#4,e4,a4]@10 [c#4,e4,a4]@5, ~ [f#4,a4]@8 [a3,e4,a4]@4 [a3,e4,a4]@4 ~@15, ~@11 f#4@4 ~@17", // A F#m A5
G: "~ b3@4 ~@4 [d4,f#4,b4]@7 ~ b3@4 ~@8 [g#4,b4]@3, ~ [d4,f#4]@8 ~@8 [e4,g#4]@8 e4@7, ~@5 b3@8 ~@8 b3@11, ~@25 g#4@4 ~@3, ~@27 [f#4,a4]@5", // Bm G#m D E F#m
H: "~ [c#4,e4,g#4]@16 ~@6 [b4,e5]@2 ~@4 a4@3, ~@17 f#4@15, ~@17 a4@10 c#5@5, ~@25 [b4,e5]@7", // C#m E5
I: "~ [c#4,e4]@8 ~@4 a3@4 a4@6 a4@4 ~@2 d4@3, ~ a3@4 ~@4 [c#4,e4,a4]@8 [d4,f#4]@10 [a3,f#4,a4]@5, ~@23 e4@9", // C#m A D
J: "[~@9 a5@2 ~@4 a4@4 [e4,a4]@2 ~@2 f#4@2 ~@6 d4@2 c#4@6 ~@6 a3@4 e4@8 [b3,e4]@7, ~ d4@20 [e4,a4]@4 [e4,f#4,a4]@2 d4@2 [e4,a4]@4 b3@2 ~@4 a3@6 ~@4 g#3@4 ~@4 g#3@4 ~@3, ~ f#4@12 d5@20 ~@8 [c#4,e4,a4]@8 c#4@15, ~ a4@10 e5@22 ~@31, ~@9 f#5@24 ~@31]/2", // A5 E5 A5 F#m7 A5 A
K: "[~@9 [e5,a5]@4 e5@4 e5@4 e5@4 ~@12 e4@2 a4@4 b3@2 ~@2 [b3,a4]@2 ~@2 c#4@4 a3@4 [e4,a4]@4 a3@2 ~@2 c#4@6 a4@2 [c#4,e4,a4]@4 [e4,a4]@6 ~@2 [b3,e4,a4]@2 ~@20 e4@2 b3@2 ~@12 a3@2 ~, ~ [d4,f#4]@48 a4@10 ~@6 a4@6 ~@18 [e4,a4]@8 [e4,a4]@6 b4@10 e4@2 c#4@8 [e4,a4]@5, ~ a3@32 [b3,a4]@2 c#4@4 e4@10 b3@16 b3@18 ~@6 b3@14 e5@2 c#5@23, ~@25 [e5,a5]@40 ~@28 a3@8 a3@6 a4@6 b3@15, ~@27 d5@38 ~@26 c#4@6 c#4@10 e5@21]/4", // A5 B7 A5 A A5 Esus4 D A5 …
L: "~@13 d4@2 a3 ~@5 a#3@2 a#3@4 ~@2 a#3@3, ~ [d4,f#4]@10 f#4@5 ~@16, ~ a4@8 [e4,a4]@7 ~ [c#4,f#4,a#4]@10 [c#4,f#4,a#4]@5, ~@5 a3@10 ~@17", // D A5 F#
M: "[~ b3@4 ~@8 b3@3 ~ [b3,e4,g#4]@4 ~@4 b3@4 ~@10 [c#4,e4,g#4]@2 [c#4,e4,g#4]@2 [e4,c#5]@2 [c#4,d#4,e4,g#4,c#5]@4 [c#4,f#4]@6 ~@4 [c#4,f#4,a4]@5, ~ [d4,f#4]@8 [d4,f#4,b4]@7 ~ f#4 ~@5 [e4,g#4]@6 [e4,g#4]@10 ~@10 a4@10 ~@5, ~@5 b3@8 ~@8 b3@4 ~@6 b3@18 ~@15]/2", // E C#m F#5 F#m D Bm E
N: "[~ [c#4,e4]@8 ~@4 a3@4 a4@8 [a3,a4]@2 a4@2 [d4,a4]@4 ~@6 f#5@2 ~@2 a4@2 [e4,a4]@2 [e4,a4]@2 ~@6 a3@2 ~@6 a3@2 a3@4 ~@8 a3@4 b3@4 b3@2 b3@2 ~@4 e4@3, ~ a3@4 ~@4 [c#4,e4,a4]@8 [d4,f#4]@10 [a3,f#4]@6 [a3,d4]@18 f#4@6 [a3,e4,a4]@4 d4@4 [c#4,e4,a4]@8 [c#4,e4,a4]@8 e4@12 ~@3, ~@17 a3@4 ~@4 e4@12 a5@4 [d5,f#5,a5]@24 ~@16 g#4@15, ~@33 f#4@16 [e4,a4]@4 d4@6 f#4@6 ~@4 a3@8 ~@10 f#4@4 f#4@5, ~@33 a4@4 e5@28 ~@24 b3@7]/3", // C#m A D5 A5 A D D5 A5 …
O: "~@15 a4@2 ~@6 [e4,a4]@2 ~@4 d4@3, ~ e4@8 e4@8 [e4,a4]@6 ~@2 [e4,a4]@7, ~@3 f#4@4 f#4@4 f#4@4 f#4@4 f#4@8 f#4@5, ~@5 d4@8 d4@8 d4@8 ~@3, ~@9 a4@4 ~@19", // A5
P: "[~ e3@2 e3@4 e3@2 c#4@2 ~@4 a2@2 ~@14 a3@2 ~@8 f#5@2 ~@2 a4@2 [a3,e4,a4]@2 ~@14 d4@2 a3 ~ a3@4 ~@4 a3@2 ~@4 b3@2 b3@2 [b3,d#4,f#4]@2 ~@6 a3@2 e3@2 [a3,d4,f#4]@4 a3@2 a3@4 ~@2 a3@2 ~@12 d4@5, ~ a2@14 ~@4 a2@8 a2@6 [d3,f#4]@18 f#4@4 [d3,a3,e4,a4]@2 f#4@2 [d3,a3,e4,a4]@6 a2@14 a2@17 ~ a2@10 a2@14 f#4@7, ~ [a3,c#4]@8 e3@4 e3@4 ~@6 [b3,d#4,f#4]@6 [b3,d#4,f#4]@4 ~@6 a5@4 [d5,f#5,a5]@22 ~@6 [a3,c#4]@6 c#4@4 a3@8 a3@4 ~@10 a4@8 a3@2 d6@15, ~ e4@6 b3@10 ~@4 a3@4 a3@6 ~@2 [a3,d4]@14 ~@2 [d3,a3,e4,a4]@4 d4@8 f#4@4 [c#4,e4]@6 [e4,a4]@10 [d#4,f#4]@4 ~@2 [b3,d#4,f#4,b4]@4 [b3,d#4,f#4,b4]@5 ~@7 [d4,f#4]@14 a3@2 [e4,a4]@9, ~@7 e4@4 [a3,c#4,e4]@6 [a3,b3,d#4,f#4]@6 b4@10 ~@6 e5@26 ~@8 e3@8 e3@14 ~@16 [e3,d5,f#5,a5]@17]/4", // A5 B D Dsus2 A B D A …
Q: "~ [b3,a4]@2 c#4@2 e4 ~ [e4,a4]@3 ~ b3 ~@3 [b3,a4] ~ b3@2 c#4 ~@3 a3 ~@3 [e4,a4]@3 ~ a3, ~@17 a4@6 ~@9", // B7 A5 B7 A5
R: "[~@3 c#4@6 a4@2 [c#4,e4,a4]@4 [e4,a4]@6 ~@2 [b3,e4,a4]@2 ~@20 e4@2 b3@2 ~@12 a3@2 ~, ~ b3@18 ~@6 b3@14 e5@2 c#5@8 e4@2 c#4@8 [e4,a4]@5, ~ a4@6 ~@18 [e4,a4]@8 [e4,a4]@6 b4@25, ~@27 c#4@6 c#4@10 e5@21, ~@29 a3@8 a3@6 a4@6 b3@15]/2", // A A5 Esus4 A5
S: "[~ b3@4 ~@8 b3@3 ~ [b3,e4,g#4]@4 ~@4 b3@4 ~@10 [c#4,e4,g#4]@2 [c#4,e4,g#4]@2 [e4,c#5]@2 [c#4,d#4,e4,g#4,c#5]@4 [c#4,f#4]@6 ~@4 [c#4,f#4,a4]@5, ~ [d4,f#4]@8 [d4,f#4,b4]@7 ~ f#4@32 a4@10 ~@5, ~@5 b3@8 ~@8 b3@4 ~@6 b3@18 ~@15, ~@23 [e4,g#4]@6 [e4,g#4]@10 ~@25]/2", // E C#m F#5 F#m D Bm E
T: "[~ [c#4,e4]@8 ~@4 a3@4 a4@8 [a3,a4]@2 a4@2 [d4,a4]@4 ~@6 f#5@2 ~@2 a4@2 [e4,a4]@2 [e4,a4]@2 ~@6 a3@2 ~@6 a3@2 a3@4 ~@8 a3@3 ~ b3@4 b3@2 b3@2 ~@4 e4@3, ~ a3@4 ~@4 [c#4,e4,a4]@8 [d4,f#4]@10 [a3,f#4]@6 [a3,d4]@18 f#4@6 [a3,e4,a4]@4 d4@4 [c#4,e4,a4]@8 [c#4,e4,a4]@7 ~ e4@12 ~@3, ~@17 a3@4 ~@4 e4@12 a5@4 [d5,f#5,a5]@24 ~@16 g#4@15, ~@33 f#4@16 [e4,a4]@4 d4@6 f#4@6 ~@4 a3@8 ~@10 f#4@4 f#4@5, ~@33 a4@4 e5@28 ~@24 b3@7]/3", // C#m A D5 A5 A D D5 A5 …
U: "~@3 e3@4 ~@6 e3@2 ~@2 a3@2 ~@2 [e4,a4]@2 [e3,e4,a4]@2 ~@4 [e4,a4]@2 [e3,f#4], ~ [a2,c#4,e4]@8 e3@4 ~@2 a2@10 [a2,e4,a4]@4 ~@3, ~ a3@4 ~@2 [a3,c#4,e4]@4 [a3,c#4,e4]@5 ~ d4@15, ~@17 f#4@10 f#4@4 ~, ~@17 e3@2 a3@4 ~@2 [e3,a3]@7", // A5 Esus2 A A5 A A5
V: "~ a3@2 ~@6 c#5@2 ~@2 e4@2 e3 ~ b3 ~@5 [c#3,g#4]@2 ~@4 g#4@2 a#4, ~ [a2,c#4]@15 ~ [c#3,e4,g#4]@6 ~@2 [f#2,c#4,f#4]@7, ~ [e4,a4]@6 e5@2 a3@7 ~@3 b3@6 ~@2 f#3@5, ~@3 a3@4 b4@10 ~@15, ~@5 e3@6 [a4,c#5,e5]@5 ~@5 e4@4 ~@7", // C#5 A C#m F#5 A5 A
W: "~ [c#4,b4]@2 d#4@2 f#4 ~ [f#4,b4]@3 ~ c#4 ~@3 [c#4,b4] ~ c#4@2 d#4 ~@3 b3 ~@3 [f#4,b4]@3 ~ b3, ~@17 b4@6 ~@9", // C#7 B5 C#7 B5
X: "[~@3 d#4@6 b4@2 [d#4,f#4,b4]@4 [f#4,b4]@6 ~@2 [c#4,f#4,b4]@2 ~@20 f#4@2 c#4@2 ~@12 b3@2 ~, ~ c#4@18 ~@6 c#4@14 f#5@2 d#5@8 f#4@2 d#4@8 [f#4,b4]@5, ~ b4@6 ~@18 [f#4,b4]@8 [f#4,b4]@6 c#5@25, ~@27 d#4@6 d#4@10 f#5@21, ~@29 b3@8 b3@6 b4@6 c#4@15]/2", // B B5 F#sus4 B5
Y: "~@13 e4@2 b3 ~@5 c4@2 c4@4 ~@2 c4@3, ~ [e4,g#4]@10 g#4@5 ~@16, ~ b4@8 [f#4,b4]@7 ~ [d#4,g#4,c5]@10 [d#4,g#4,c5]@5, ~@5 b3@10 ~@17", // E B5 G#
Z: "[~ c#4@4 ~@8 c#4@3 ~ [c#4,f#4,a#4]@4 ~@4 c#4@4 ~@10 [d#4,f#4,a#4]@2 [d#4,f#4,a#4]@2 [f#4,d#5]@2 [d#4,f4,f#4,a#4,d#5]@4 [d#4,g#4]@6 ~@4 [d#4,g#4,b4]@5, ~ [e4,g#4]@8 [e4,g#4,c#5]@7 ~ g#4@32 b4@10 ~@5, ~@5 c#4@8 ~@8 c#4@4 ~@6 c#4@18 ~@15, ~@23 [f#4,a#4]@6 [f#4,a#4]@10 ~@25]/2", // F# D#m G#5 G#m E C#m F#
AA: "[~ [d#4,f#4]@8 ~@4 b3@4 b4@8 [b3,b4]@2 b4@2 [e4,b4]@4 ~@6 g#5@2 ~@2 b4@2 [f#4,b4]@2 [f#4,b4]@2 ~@6 b3@2 ~@6 b3@2 b3@4 ~@8 b3@3 ~ c#4@4 c#4@2 c#4@2 ~@4 f#4@3, ~ b3@4 ~@4 [d#4,f#4,b4]@8 [e4,g#4]@10 [b3,g#4]@6 [b3,e4]@18 g#4@6 [b3,f#4,b4]@4 e4@4 [d#4,f#4,b4]@8 [d#4,f#4,b4]@7 ~ f#4@12 ~@3, ~@17 b3@4 ~@4 f#4@12 b5@4 [e5,g#5,b5]@24 ~@16 a#4@15, ~@33 g#4@16 [f#4,b4]@4 e4@6 g#4@6 ~@4 b3@8 ~@10 g#4@4 g#4@5, ~@33 b4@4 f#5@28 ~@24 c#4@7]/3", // D#m B E5 B5 B E E5 B5 …
AB: "~@15 b4@2 ~@6 [f#4,b4]@2 ~@4 e4@3, ~ f#4@8 f#4@8 [f#4,b4]@6 ~@2 [f#4,b4]@7, ~@3 g#4@4 g#4@4 g#4@4 g#4@4 g#4@8 g#4@5, ~@5 e4@8 e4@8 e4@8 ~@3, ~@9 b4@4 ~@19", // B5
AC: "[~ f#3@2 f#3@4 f#3@2 d#4@2 ~@4 b2@2 ~@14 b3@2 ~@8 g#5@2 ~@2 b4@2 [b3,f#4,b4]@2 ~@14 e4@2 b3 ~ b3@4 ~@4 b3@2 ~@4 c#4@2 c#4@2 [c#4,f4,g#4]@2 ~@6 b3@2 f#3@2 [b3,e4,g#4]@4 b3@2 b3@4 ~@2 b3@2 ~@12 e4@5, ~ b2@14 ~@4 b2@8 b2@6 [e3,g#4]@18 g#4@4 [e3,b3,f#4,b4]@2 g#4@2 [e3,b3,f#4,b4]@6 b2@14 b2@17 ~ b2@10 b2@14 g#4@7, ~ [b3,d#4]@8 f#3@4 f#3@4 ~@6 [c#4,f4,g#4]@6 [c#4,f4,g#4]@4 ~@6 b5@4 [e5,g#5,b5]@22 ~@6 [b3,d#4]@6 d#4@4 b3@8 b3@4 ~@10 b4@8 b3@2 e6@15, ~ f#4@6 c#4@10 ~@4 b3@4 b3@6 ~@2 [b3,e4]@14 ~@2 [e3,b3,f#4,b4]@4 e4@8 g#4@4 [d#4,f#4]@6 [f#4,b4]@10 [f4,g#4]@4 ~@2 [c#4,f4,g#4,c#5]@4 [c#4,f4,g#4,c#5]@5 ~@7 [e4,g#4]@14 b3@2 [f#4,b4]@9, ~@7 f#4@4 [b3,d#4,f#4]@6 [b3,c#4,f4,g#4]@6 c#5@10 ~@6 f#5@26 ~@8 f#3@8 f#3@14 ~@16 [f#3,e5,g#5,b5]@17]/4", // B5 C# E Esus2 B C# E B …
AD: "[~ c#4@4 ~@8 c#4@3 ~ [c#4,f#4,a#4]@4 ~@4 c#4@4 ~@10 [d#4,f#4,a#4]@2 [d#4,f#4,a#4]@2 [f#4,d#5]@2 [d#4,f4,f#4,a#4,d#5]@4 [d#4,g#4]@6 ~@4 [d#4,g#4,b4]@5, ~ [e4,g#4]@8 [e4,g#4,c#5]@7 ~ g#4 ~@5 [f#4,a#4]@6 [f#4,a#4]@10 ~@10 b4@10 ~@5, ~@5 c#4@8 ~@8 c#4@4 ~@6 c#4@18 ~@15]/2", // F# D#m G#5 G#m E C#m F#
AE: "~@3 f#3@4 ~@6 f#3@2 ~@2 b3@2 ~@2 [f#4,b4]@2 [f#3,f#4,b4]@2 ~@4 [f#4,b4]@2 [f#3,g#4], ~ [b2,d#4,f#4]@8 f#3@4 ~@2 b2@10 [b2,f#4,b4]@4 ~@3, ~ b3@4 ~@2 [b3,d#4,f#4]@4 [b3,d#4,f#4]@5 ~ e4@15, ~@17 g#4@10 g#4@4 ~, ~@17 f#3@2 b3@4 ~@2 [f#3,b3]@7", // B5 F#sus2 B B5 B B5
AF: "~@3 f#3@4 ~@6 f#3@2 ~@2 b3 ~@3 [f#4,b4]@2 ~@9, ~ [b2,d#4,f#4]@8 f#3@4 ~@2 b2@10 ~@7, ~ b3@4 ~@2 [b3,d#4,f#4]@4 [b3,d#4,f#4]@5 ~ e4@15, ~@17 g#4@10 ~@5, ~@17 f#3@2 b3@4 ~@9", // B5 B
})).s("gm_piano").gain(0.45)
// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
~ A B C D@2 E@2 F G H I J K@3 L@2 ~ M N@2 ~ O ~ P@2 Q R S L@2 ~ M N@2 ~ O T ~ U V W@2 ~ X Y@2 ~ Z ~ AA@2 AB U V W@2 ~
X Y@2 ~ Z AC@7 AD ~@4
>`.pickRestart({
A: "~@5 c#4 ~@11 c#4 ~@14", B: "~@5 c#4 ~@26", C: "~@17 c#4 ~@14",
D: "[~@5 e4@2 e4@10 a3@2 [a3,e4]@2 [e4,a4]@2 ~@8 [a3,a4]@2 ~@4 a3@2 ~@12 b4@2 [b4,e5]@2 ~@9, ~@21 a3@10 ~@16 a3@17]/2", // A5 A E5
E: "[~@5 a3@4 ~@6 [b3,e4]@2 ~@2 c#4@6 a3@6 a3@2 ~@24 c#4@2 ~@5, ~@3 c#4@16 ~@45, ~@9 a3@14 ~@41]/2", // E5
F: "~@13 b3@3 ~@16", G: "~@21 e5@2 ~@9, ~@19 c#4@13", H: "~@5 a3@8 ~@8 a3@2 a3@4 ~@5",
I: "~@17 e4@2 ~@13, ~@11 a5@21", J: "~@3 e4@6 ~@12 g#3@4 ~@4 g#3@3",
K: "[~@43 a4@2 [b3,a4]@2 ~@6 e4@4 ~@4 a3@2 ~@8 a4@2 [c#4,e4]@2 ~@8 [b3,a4]@2 [b3,e4,a4]@2 ~@9, ~@13 a5@4 a5@4 a5@4 ~@16 a3@14 ~@2 c#4@8 ~@4 e4@4 ~@6 c#4@12 ~@5, ~@15 f#5@4 f#5@4 f#5@42 ~@16 a3@12 ~@3]/3", // B7 C#m B7 Esus4
L: "[~@15 e4@2 ~@8 a3@4 ~@2 a3@2 ~@24 c#4@2 ~@5, ~@21 a3@4 ~@39, ~@23 e4@4 ~@37]/2",
M: "~@5 [c#4,g#4]@2 ~@4 [c#4,g#4]@2 ~@10 [c#4,f#4]@2 [c#4,f#4]@2 ~@5", N: "[~@5 a3@8 ~@8 a3@2 a3@2 ~@6 a3@2 ~@31]/2",
O: "~ a4@4 a4@4 ~@4 a4@2 ~@17", P: "[~@13 d4@8 [d3,a4]@2 ~@8 e4@2 ~@4 c#4@2 ~@6 a3@4 ~@4 b4@2 ~@9]/2", Q: "~@29 a3@3",
R: "~@9 a3 ~ a4 ~ [b3,a4] ~@7 e4 ~@3 c#4 ~@3 a3 ~@2", // B7
S: "~@7 a4@2 [c#4,e4]@2 ~@8 [b3,a4]@2 [b3,e4,a4]@2 ~@9, ~@5 e4@4 ~@6 c#4@12 ~@5, ~@17 a3@12 ~@3", // C#m B7 Esus4
T: "~@5 a3@2 ~@2 a2@6 ~@8 a3@2 ~@4 a2@3", U: "~@9 b3 ~ b4 ~ [c#4,b4] ~@7 f#4 ~@3 d#4 ~@3 b3 ~@2",
V: "~@7 b4@2 [d#4,f#4]@2 ~@8 [c#4,b4]@2 [c#4,f#4,b4]@2 ~@9, ~@5 f#4@4 ~@6 d#4@12 ~@5, ~@17 b3@12 ~@3", // D#m C#7 F#sus4
W: "[~@15 f#4@2 ~@8 b3@4 ~@2 b3@2 ~@24 d#4@2 ~@5, ~@21 b3@4 ~@39, ~@23 f#4@4 ~@37]/2",
X: "~@5 [d#4,a#4]@2 ~@4 [d#4,a#4]@2 ~@10 [d#4,g#4]@2 [d#4,g#4]@2 ~@5", Y: "[~@5 b3@8 ~@8 b3@2 b3@2 ~@6 b3@2 ~@31]/2",
Z: "~ b4@4 b4@4 ~@4 b4@2 ~@17", AA: "[~@13 e4@8 [e3,b4]@2 ~@8 f#4@2 ~@4 d#4@2 ~@6 b3@4 ~@4 c#5@2 ~@9]/2",
AB: "~@29 b3@3", AC: "~@5 b3@2 ~@2 b2@6 ~@8 b3@2 ~@4 b2@3", AD: "~@5 b3@2 ~@2 b2@6 ~@17",
})).s("gm_piano").gain(0.22)
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
A B C D E F G H I J K@2 L M@2 F G H I J N@3 O@2 P@2 Q E F G H R J K@2 L S@2 T@2 U V W X Y Z AA AB AC@2 AD@2 AE AF U V
W X Y AG@2 AB AH@2 AI AJ AI@3 AK AL AM ~@3
>`.pickRestart({
A: "~ a3@28 e3@3", B: "~ a2@23 ~ a2@2 c#3@2 e3@3", C: "~ a3@26 e3@5", D: "~ a2@21 ~ a2@2 a2@2 c#3@2 e3 ~@2",
E: "~ a3@13 ~ a3 ~ g#3@13 ~ g#3", F: "~ f#3@13 ~ f#3@2 e3@6 e2@4 e3@3 ~ e3, ~@27 d3 ~@4",
G: "~ a3@13 ~ a3 ~ g#3@6 f#3@6 e3@3", H: "~ d3@8 d4@2 a3@2 d3@4 c#3@12 ~@2 c#3", I: "~ b2@13 ~ b2 ~ e3@8 e3@4 d3@3",
J: "~ c#3@8 c#4@2 g#3@2 c#3@4 f#3@9 ~ f#3@3 ~ f#3",
K: "[~ e3@12 ~@2 e3@3 ~ e2 ~ e2@4 e3@6 e2@2 a2@14 a3@7 ~ a3 ~ a3@2 e3@2 a2@3, ~@47 g#3 ~@16]/2",
L: "~ a3@12 ~@2 a3 ~ g#3@6 f#3@6 e3@3",
M: "[~ d3@13 ~@3 f#4@2 e4@2 ~@2 a3@2 f#3@2 e3@2 d3@2 b2@2 a3@13 ~ a3 ~ g#3@13 ~ g#3, ~@15 d3@6 d4@4 ~@39]/2",
N: "[~ e3@12 ~@2 e3@3 ~ e2 ~ e2@4 e3@6 e2@2 a2@14 a3@7 ~ a3 ~ a3@2 e3@2 a2@4 a3@12 ~@2 a3 ~ g#3@6 f#3@6 e3@3, ~@47 g#3 ~@48]/3",
O: "[~ d3@13 ~@3 f#4@2 e4@2 ~@2 a3@2 f#3@2 e3@2 d3@2 b2@2 a2 ~ a2@3 ~ a2 ~ a2@5 ~ a2 ~ a2 ~ a2@3 ~ a2 ~ a2@4 ~@2 a2, ~@15 d3@6 d4@4 ~@39]/2",
P: "[~ a2@5 ~ a2 ~ a2@4 ~@2 a2 ~ a2@2 a3@4 a2@2 c#3@2 d3@2 d#3@2 e3@2 a2 ~ a2@3 ~ a2 ~ a2@5 ~ a2 ~ a2@5 ~ a2 ~ a2@5 ~ a2]/2",
Q: "~ a2@5 ~ a2 ~ a2@5 ~ a2 ~ a2@2 a3@2 a2 ~ a2@2 c#3@2 d3@2 d#3@2 e3", R: "~ b2@13 ~ b2 ~ e3@7 ~ e3@4 d3@3",
S: "[~ d3@13 ~@3 f#4@2 e4@2 ~@2 a3@2 f#3@2 e3@2 d3@2 b2@2 a2 ~ a2@3 ~ a2 ~ a2@4 ~@2 a2 ~ a2 ~ a2@3 ~ a2 ~ a2@4 ~@2 a2, ~@15 d3@6 d4@4 ~@39]/2",
T: "[~ a2@5 ~ a2 ~ a2@4 ~@2 a2 ~ c#3@2 g#3@4 ~@2 f#2@2 c#3@2 f#3@2 c#4@2 b3@13 ~ b3 ~ a#3@13 ~ a#3, ~@23 c#3@4 ~@37]/2",
U: "~ g#3@13 ~ g#3@2 f#3@6 f#2@4 f#3@3 ~ f#3, ~@27 e3 ~@4", V: "~ b3@13 ~ b3 ~ a#3@6 g#3@6 f#3@3",
W: "~ e3@8 e4@2 b3@2 e3@4 d#3@12 ~@2 d#3", X: "~ c#3@13 ~ c#3 ~ f#3@8 f#3@4 e3@3",
Y: "~ d#3@8 d#4@2 a#3@2 d#3@4 g#3@9 ~ g#3@3 ~ g#3", Z: "~ f#3@12 ~@2 f#3@3 ~ f#2 ~ f#2@4 f#3@6 f#2",
AA: "~ b2@14 b3@7 ~ b3 ~ b3@2 f#3@2 b2@3, ~@15 a#3 ~@16", AB: "~ b3@12 ~@2 b3 ~ a#3@6 g#3@6 f#3@3",
AC: "[~ e3@13 ~@3 g#4@2 f#4@2 ~@2 b3 ~ g#3@2 f#3@2 e3@2 c#3@2 b2 ~ b2@3 ~ b2 ~ b2@5 ~ b2 ~ b2 ~ b2@3 ~ b2 ~ b2@4 ~@2 b2, ~@15 e3@6 e4@4 ~@39]/2",
AD: "[~ b2@5 ~ b2 ~ b2@4 ~@2 b2 ~ b2@2 b3@4 b2@2 d#3@2 e3 ~ f3@2 f#3@2 b2 ~ b2@3 ~ b2 ~ b2@5 ~ b2 ~ b2@5 ~ b2 ~ b2@5 ~ b2]/2",
AE: "~ b2@5 ~ b2 ~ b2@5 ~ b2 ~ b2@2 b3@2 b2 ~ b2@2 d#3@2 e3@2 f3@2 f#3", AF: "~ b3@13 ~ b3 ~ a#3@13 ~ a#3",
AG: "[~ f#3@12 ~@2 f#3@3 ~ f#2 ~ f#2@4 f#3@6 f#2@2 b2@14 b3@7 ~ b3 ~ b3@2 f#3@2 b2@3, ~@47 a#3 ~@16]/2",
AH: "[~ e3@13 ~@3 g#4@2 f#4@2 ~@2 b3@2 g#3@2 f#3@2 e3@2 c#3@2 b2 ~ b2@3 ~ b2 ~ b2@5 ~ b2 ~ b2 ~ b2@3 ~ b2 ~ b2@4 ~@2 b2, ~@15 e3@6 e4@4 ~@39]/2",
AI: "~ b2 ~ b2@3 ~ b2 ~ b2@5 ~ b2 ~ b2 ~ b2@3 ~ b2 ~ b2@4 ~@2 b2",
AJ: "~ b2 ~ b2@3 ~ b2 ~ b2@5 ~ b2 ~ b2 ~ b2@3 ~ b2 ~ b2@5 ~ b2",
AK: "~ b2 ~ b2@3 ~ b2 ~ b2@5 ~ b2 ~ b2 ~ b2@3 ~ b2 ~@7 b2",
AL: "~ b2@2 b2@3 ~ b2 ~ b2@5 ~ b2 ~ b2 ~ b2@3 ~ b2 ~ b2@4 ~@2 b2", AM: "~ b2@2 b2@3 ~ b2 ~ b2@5 ~@18",
})).s("gm_acoustic_bass").gain(0.27)
// drums · kick
const kick = s("bd").struct(`<
~@4 A B C D E F E G H@2 A B C D I F E G H@2 A B C D A B C D E F E G H@2 A B A B C D E F E G H@2 J B C D A B C D E F E
G H@2 A@5 J A@2 K ~@3
>`.pickRestart({
A: "~ x ~@13 x ~ x ~@14", B: "~ x ~@13 x ~@5 x ~@9 x", C: "~ x ~@15 x ~@13 x", D: "~ x ~@13 x ~ x ~@5 x ~@3 x ~@4",
E: "~ x ~@13 x ~ x ~@13 x", F: "~ x ~@13 x ~ x ~@5 x ~@3 x ~@3 x", G: "~ x ~@13 x ~@5 x ~@5 x ~@3 x",
H: "~ x ~@13 x ~@5 x ~ x ~@3 x ~@3 x", I: "~@2 x ~@12 x ~ x ~@13 x", J: "~@2 x ~@12 x ~ x ~@14", K: "~ x ~@30",
})).gain(0.2)
// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
~@5 A B C B ~ B A@3 ~ A B C B ~ B A@3 ~ A B C ~ A B C B ~ B A@3 ~ A ~ A B C B ~ B A@3 ~ A B C ~ A B C B ~ B A@3 ~@12
>`.pickRestart({
A: "~@19 x ~@12", B: "~@27 x ~@4", C: "~@31 x",
})).gain(0.1)
// drums · rim
const rim = s("rim").struct("<~@4 [~@9 x ~@15 x ~@6]!10 ~@62>").gain(0.5)
// drums · snare
const snare = s("sd").struct("<~@14 [~@9 x ~@15 x ~@6]!58 ~@4>").gain(0.5)
// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@3 B ~@9 A ~@11 A ~@3 B ~@9 A ~@3 B ~@8>".pickRestart({
A: "~@29 x ~@2", B: "~@29 x ~ x",
})).gain(0.5)
// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@23 A ~@3 A ~@9 A ~@11 A ~@3 A ~@9 A ~@3 A ~@8>".pickRestart({
A: "~@27 x ~@4",
})).gain(0.25)
// drums · mid tom
const mid_tom = s("mt").struct("<~@23 A ~ B ~ A ~@9 A ~ B ~@9 A ~ B ~ A ~@9 A ~ B ~ A ~@8>".pickRestart({
A: "~@23 x ~ x ~@6", B: "~@23 x ~@3 x ~ x ~@2",
})).gain(0.4)
// drums · high tom
const high_tom = s("ht").struct("<~@23 A ~ B ~ A ~@9 A ~ B ~@9 A ~ B ~ A ~@9 A ~ B ~ A ~@8>".pickRestart({
A: "~@19 x ~@12", B: "~@19 x ~@9 x ~@2",
})).gain(0.25)
// drums · crash
const crash = s("cr").struct("<~@24 A ~ A ~@11 A ~@13 A ~@13 A ~@9>".pickRestart({
A: "~ x ~@30",
})).gain(0.2)
// drums · ride
const ride = s("rd").struct(`<
A@4 B C@2 D E F G H C I B C@2 D J F G H C I B C@2 D K C@2 D E F G H C I B C B C@2 D E F G H C I K C@2 D B C@2 D E F G
H C I B@5 K B@2 C ~@3
>`.pickRestart({
A: "~@9 x ~@15 x ~@6", B: "~ x ~@29 x", C: "~ x ~@30", D: "~ x ~@17 x ~@5 x ~@5 x", E: "~ x ~@25 x ~@3 x",
F: "~ x ~@17 x ~@12", G: "~ x ~@7 x ~@17 x ~@4", H: "~ x ~@7 x ~@11 x ~@10", I: "~@9 x ~@5 x ~@3 x ~ x ~@3 x ~@5 x",
J: "~@2 x ~@24 x ~@3 x", K: "~@2 x ~@28 x",
})).gain(0.15)
// drums · ride · soft notes
const ride_soft = s("rd").struct(`<
~@4 A B ~ C ~ D E F ~ G A B ~ C ~ D E F ~ G A B ~ C A B ~ C ~ D E F ~ G A B A B ~ C ~ D E F ~ G A B ~ C A B ~ C ~ D E
F ~ G A@8 ~@4
>`.pickRestart({
A: "~@23 x ~@8", B: "~@31 x", C: "~@23 x ~@5 x ~@2", D: "~@27 x ~@3 x", E: "~@19 x ~@11 x", F: "~@15 x ~@11 x ~@3 x",
G: "~@29 x ~@2",
})).gain(0.05)
// drums · shaker
const shaker = s("sh").struct("<A@18 B A@31 B A@18 B A@2 C ~@3>".pickRestart({
A: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", B: "~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
C: "~ x ~@3 x ~@26",
})).gain(0.3)
// drums · shaker · soft notes
const shaker_soft = s("sh").struct("<[~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x]!72 [~@3 x ~@28] ~@3>").gain(0.1)
// … 5 more lines
More by Antonello Venditti
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.