0:00/0:00
// Una carezza in un pugno — Adriano Celentano
// 90.4 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 79 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90.4/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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass pick · "PICK BASS"
const bass = note(`<
A@5 B@2 C D E F G D E H I F J E@2 K C D E L G M N O P Q R S T U V S R W X Y Z AA X AB AC AD AE AF AG AH AI AJ AK AH AL
AM AE AG AN AO AP AQ AR AS AT AU@2 AV AW AX AY AZ BA AZ AX BB@3
>`.pickRestart({
A: "[d2@11 ~@6 d2@3 ~@3 d2@21 ~@3 g1@14 ~@4 g1@3 ~@3 a1@15 ~@3 a1@3 ~@3 d2@15 ~@3 d2@3 ~@3 d2@16 ~@2 d2@4 ~@2 d2@15 ~@3 d2@4 ~@2 g1@16 ~@3 g1@3 ~@2 d2@15 ~@3 d2@3 ~@3 d2@15 ~@4 d2@3 ~@3]/5",
B: "d2@15 ~@3 d2@3 ~@3 d2@19 ~@5", C: "f#1@5 ~ f#1 ~ f#1@7 ~", D: "e1@5 ~ e1 ~ e1@7 ~", E: "a1@5 ~ a1 ~ a1@7 ~",
F: "d2@15 ~@3 d2@2 ~@4 d2@20 ~@4", G: "b1@15 ~@3 b1@2 ~@4 b1@22 ~@2", H: "g1@16 ~@2 g1@3 ~@3 g1@21 ~@3",
I: "a#1@5 ~ a#1 ~ a#1@7 ~", J: "e2@5 ~ e2 ~ e2@7 ~", K: "d2@15 ~@3 d2@2 ~@4 d2@21 ~@3",
L: "~ d2@16 ~@2 d2@3 ~@3 c#2@23", M: "~ e2@15 ~@3 e2@3 ~@3 e2@20 ~@3", N: "a1@15 ~@4 a1@3 ~@3 a1@21 ~@2",
O: "~ g1@16 ~@2 g1@3 ~@3 g1@21 ~@2", P: "~ a#1@16 ~@2 a#1@2 ~@4 a#1@21 ~@2", Q: "~ d2@15 ~@3 d2@3 ~@3 d2@21 ~@2",
R: "~ e1@14 ~@4 e1@2 ~@4 e1@21 ~@2", S: "~ f#1@15 ~@3 f#1@2 ~@4 f#1@21 ~@2", T: "~ g1@15 ~@3 g1@2 ~@4 g1@19 ~@4",
U: "~ e1@14 ~@4 e1@3 ~@3 a1@16 ~@2 a1@4 ~", V: "~ d2@15 ~@3 d2@3 ~@3 d2@15 ~@3 d2@3 ~@2",
W: "~ a1@15 ~@3 a1@3 ~@3 a1@21 ~@2", X: "~@2 d2@15 ~@2 d2@3 ~@3 d2@23", Y: "~ b1@15 ~@3 b1@3 ~@4 b1@22",
Z: "~ e2@14 ~@4 e2@2 ~@5 e2@11 b1@11", AA: "~@2 a1@14 ~@3 a1@7 b1@12 c#2@9 ~",
AB: "~@2 f#2@15 ~@3 f#2@2 ~@4 f#2@12 b1@10", AC: "~@2 e2@15 ~@3 e2@2 ~@3 e2@23",
AD: "~ a1@15 ~@4 a1@2 ~@4 a1@12 e2@10", AE: "~@2 d2@16 ~@2 d2@3 ~@3 d2@22", AF: "~ f#1@8 ~ f#1@2 ~ f#1@11",
AG: "~@2 e1@15 ~@3 e1@2 ~@4 e1@22", AH: "~@2 a1@15 ~@3 a1@3 ~@3 a1@21 ~", AI: "~ d2@8 ~ d2 ~@2 c#2@11",
AJ: "~@2 b1@15 ~@3 b1@2 ~@4 b1@22", AK: "~@2 e2@15 ~@3 e2@3 ~@3 e2@21 ~", AL: "~@2 g1@16 ~@2 g1@3 ~@3 g1@21 ~",
AM: "~@2 a#1@15 ~@3 a#1@2 ~@4 a#1@21 ~", AN: "~@3 f#1@15 ~@2 f#1@2 ~@5 f#1@20 ~",
AO: "~@2 g1@15 ~@4 g1@2 ~@4 g1@19 ~@2", AP: "~@3 e1@14 ~@4 e1@4 ~@2 a1@15 ~@3 a1@3",
AQ: "~@3 d2@15 ~@3 d2@4 ~@2 d2@14 ~@4 d2@3", AR: "~@3 f#1@15 ~@3 f#1@2 ~@4 f#1@20 ~", AS: "~ e1@5 ~ e1 ~ e1@7",
AT: "~@3 a1@15 ~@3 a1@2 ~@4 a1@21", AU: "[~@3 d2@15 ~@3 d2@2 ~@4 d2@24 b1@15 ~@2 b1@3 ~@4 b1@21]/2",
AV: "~@3 e2@14 ~@4 e2@2 ~@4 e2@11 b1@10", AW: "~@3 a1@14 ~@4 a1@6 b1@12 c#2@9", AX: "~ d2@5 ~ d2 ~ d2@7",
AY: "~ g1@5 ~ g1 ~ a1@5 ~ a1", AZ: "~@3 d2@15 ~@3 d2@3 ~@3 d2@16 ~@2 d2@3",
BA: "~@3 d2@15 ~@3 d2@4 ~@2 g1@16 ~@2 g1@3", BB: "[~ d2@40 ~@7]/3",
})).s("gm_electric_bass_pick").gain(0.19)
// chords · vibraphone · "VIBE/J.GTR"
const vibraphone = note("<A@4 B C ~@64 D@8 ~>".pickRestart({
A: "[d4@5 f#4@6 d4@6 f#4@7 d4@5 f#4@6 d4@6 f#4@6 d4@6 f#4@6 d4@7 f#4@5 ~ d4@5 f#4@6 d4@6 f#4@7]/2",
B: "d4@5 f#4@6 ~ d4@5 f#4@6 d4@6 f#4@7 d4@6 f#4@6", C: "d4@3 f#4@3 d4@3 f#4@3 d4@3 f#4@3 d4@3 f#4@2 ~",
D: "[~@95 f#4@32 ~, ~ d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@32 ~@3, ~@3 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 f#4@4 ~@33]/8",
})).s("gm_vibraphone").gain(0.36)
// chords · electric guitar jazz · "VIBE/J.GTR"
const electric_guitar_jazz = note(`<
~@6 A@6 B C D@2 E F G H I@7 J K@2 L M@3 N@8 O@3 P@5 Q R@4 S@3 T@3 U V W@3 X Y@3 ~@9
>`.pickRestart({
A: "[~@14 f#3@4 ~@4 c#4@2 ~@6 f#3@4 ~@12 e3@4 ~@4 e4@2 ~@6 a3@4 ~@4 a3@2 ~@4 f#3@6 ~@13 f#4, ~@3 f#3@18 ~@6 f#3@18 ~@6 e3@16 ~@20 e4@12 ~@9 d4@15 ~@9 d4@9 e4@3, ~@12 a3@24 a3@19 ~@5 a3@24 a3@18 ~@6 g3@24 ~@18 a3@36 ~@12 d3@36 ~@12 d3@42, ~@24 f#4@31 ~@17 f#4@30 ~@18 e4@30 ~@18 a4@30 ~@24 a3@24 ~@12 b3@12 b3@18, ~@30 d4@25 ~@23 c#4@24 ~@12 b3@12 b3@24 ~@6 c#4@19 ~@5 c#4@17 ~@7 f#3@24 ~@24 f#3@24 f#3@12]/6",
B: "~@10 g4@4 ~ g4, g4@5 ~@2 f#4, ~ d4@7, ~ b3@3, ~@3 g3@5",
C: "~@9 a3@6 ~@3 [c#4,a4]@3 a3@2 ~, a4@3 ~, ~ e4@5 ~@2, ~@12 c#4@23 ~@13", // F#m
D: "[~@5 g3 ~ g3@2 g3 ~ g3 ~@3 g3, ~@12 g4@19 ~@5 g4@10 ~@14 g4@24 g4@12, ~@24 d4@31 ~@17 d4@24, ~@13 g3@2 ~]/2",
E: "~@3 a3, f#4@3 f#3@5, ~ d4@7", F: "~@3 b3 ~@3 d3, b3@3 ~ d4@4, ~ g3@2 g3, ~@5 b3@3",
G: "c#4@3 ~ e4@2 a4@2, ~@9 c#4@5 ~@10",
H: "~@15 a3@3 ~@3 a3@2 ~, g4@13 ~@11, ~@3 a3@10 ~@11, ~@6 e4@7 ~@5 e4@6, ~@18 c#4@19 ~@11",
I: "[~@42 f#3@12 ~@12 c#4@6 ~@18 f#3@12 ~@36 e3@12 ~@37 a3@11 ~@12 a3@6 ~@12 f#3@18 ~@40 f#4@3 ~@30 g4@12 ~@3 g4@2, ~@6 f#3@36 ~@12 f#3@36 ~@12 e3@32 ~@34 a4@30 ~@24 a3@24 ~@13 b3@12 b3@12 e4@6 g4@30 ~@12 f#4@5, ~@12 a3@24 a3@19 ~@5 a3@24 a3@18 ~@6 g3@24 ~@18 a3@36 ~@12 d3@36 ~@13 d3@42 ~@18 g3@29, ~@24 f#4@31 ~@17 f#4@30 ~@18 e4@30 ~@13 e4@8 ~@3 e4@24 ~@18 d4@30 ~@19 d4@24 ~@6 d4@41, ~@30 d4@25 ~@23 c#4@24 ~@12 b3@12 b3@24 ~@7 c#4@24 c#4@17 ~@6 f#3@24 ~@25 f#3@24 f#3@12 ~@12 b3@35]/7",
J: "~@19 a3@12 ~@6 [c#4,a4]@6 a3@4 ~, ~ a4@36 ~@11, ~@7 e4@29 ~@12, ~@13 c#4@23 ~@12", // F#m
K: "[~@19 g3@6 ~@12 d4@21 ~@9 g3@6 ~@18 g3@5, ~@13 d4@21 ~@27 d4@21 ~@3 d4@11, ~@25 g4@39 ~@9 g4@23]/2",
L: "~@19 d3@12 ~@6 d4@11, ~@2 d4@35 ~@11, ~@7 a3@31 ~@10, ~@13 f#3@25 ~@10",
M: "[~ b3@18 ~@24 d4@7 ~@29 c#4@12 ~@3 c#4@3 ~@36 d4@11, ~@19 e4@28 ~@3 c#4@29 ~@12 b3@6 d4@18 d4@18 ~@11, ~@55 a3@42 ~@6 b3@24 b3@17, ~@61 f#3@36 ~@13 g3@29 ~@5]/3",
N: "[~ d4@18 c#4@6 b3@12 c#4@10 ~@3 f#4@26 ~@20 c#4 c#4@45 ~@4 g4@48 ~@17 a3@12 ~@12 a3@4 ~@98 g4@19 g4@24 f#4@3 g4, ~@47 a3@29 ~@18 f#3@40 ~@8 g3@53 ~@11 c#4@35 d4@46 a3@47 g3@50, ~@49 d4@29 ~@18 a3@38 ~@9 b3@52 ~@5 e4@29 [e4,a4]@13 f#4@47 c#4@46 b3@49, ~@144 e4@50 a4@35 ~@10 a3@47 f#3@50 e4@48, ~@145 f#4@24 ~@23]/8", // A5
O: "[~@20 a3@10 ~@14 a3@3 ~@2 f#4@45 ~@3 f#4@43 e4@3 f#4, ~ a4@17 ~ a4@5 d4@24 c#4@22 ~@2, ~@8 e4@43 ~@43 f#3@46 ~@4, ~@14 c#4@23 ~@10 a3@48 a3@46 ~@3]/3",
P: "[~@20 g3@24 f#4@3 g4@3 ~@42 a3@7 ~@17 d4@6 ~@12 a3@13 ~@41 f#3@12 ~@12 d4@6 ~@11 b3@11, ~ g4@46 ~@3 a4@37 a4@12 ~@23 f#4@25 ~@22 f#4@24 ~@25 g4@22, ~@8 d4@39 ~@9 e4@31 ~@23 a3@23 ~@25 a3@22 ~@2 a3@11 ~@13 b3@23 ~@11, ~@14 b3@33 ~@21 a3@24 ~@12 f#3@31 ~@17 f#3@31 ~@17 g3@36 ~@4, ~@128 d4@20 ~@15 c#4@10 ~@3 c#4@23 ~@24 d4@17]/5",
Q: "~@10 e3@6 ~@3 [a3,e4]@5, ~@3 e4@35 ~@10, ~ c#4@5, ~@7 a3@12 ~@5", // A5
R: "[~@19 a3@8 ~@11 f#3@17 ~@13 b3@6 ~@18 e4@3 f#4@3 ~@13 b3@5 ~@26 g4@4 ~@12 c#4@6 [a3,a4]@18 ~ a3@9, ~@8 d3@32 ~@16 d3@41 ~@95, ~@14 f#3@22 ~@27 f#3@23 f#3@10 ~@20 [g3,g4]@29 ~@47, ~@27 d4@29 ~@18 d4@22 ~@3 g4@17 ~@24 f#4@5 ~ a4@14 ~@32, ~@32 a3@24 ~@24 b3@16 ~@9 d4@29 ~@18 e4@30 [e4,a4]@10]/4", // A G A5
S: "[~@20 g3@6 ~@12 d4@21 ~@33 g3@7 ~@17 d3@12 ~@7 d4@9, ~@14 d4@21 ~@28 d4@20 ~@3 d4@12 ~ d4@36 ~@9, ~@26 g4@39 ~@4 g3@8 ~@27 a3@31 ~@9, ~@74 g4@24 ~@12 f#3@25 ~@9]/3",
T: "[~@2 b3@18 ~@24 d4@7 ~@30 c#4@11 ~@3 c#4@3 ~@37 d4@9, ~@20 e4@28 ~@3 c#4@30 ~@11 b3@6 d4@18 d4@18 ~@10, ~@56 a3@42 ~@7 b3@24 b3@15, ~@62 f#3@36 ~@13 g3@30 ~@3]/3",
U: "~@3 d4@17 c#4@6 b3@13 c#4@9", V: "~@3 f#4@26 ~@19, a3@29 ~@19, ~ d4@14 ~@9",
W: "[~@2 c#4 c#4@44 ~@4 g4@48 ~@18 a3@12 ~@6 [e4,a4]@6 a3@3, f#3@40 ~@7 g3@52 a4@35 ~@10, ~ a3@38 ~@9 b3@52 ~@11 c#4@33, ~@50 e4@50 ~@5 e4@30 ~@9]/3", // A5
X: "~ f#4@15, ~ a3@47, ~ d4@23",
Y: "[~@50 g4@19 g4@24 f#4@3 g4@3 ~@19 a3@10 ~@16, f#3@47 g3@50 ~@47, ~ a3@47 b3@49 ~@14 c#4@23 ~@10, ~@2 c#4@48 e4@47 ~@47, ~@3 f#4@48 ~@48 a4@34 ~@11]/3",
})).s("gm_electric_guitar_jazz").gain(0.24)
// chords · electric guitar jazz · "VIBE/J.GTR" · soft notes
const electric_guitar_jazz_2 = note(`<
~@6 A ~ B@2 C@2 ~ D E ~ F G H ~ A ~ B@2 C@2 ~ I J@2 K L ~ M ~@4 N ~@3 O ~@3 P Q@2 R@4 ~@2 S@2 T@2 ~ U@2 ~@3 V ~@3 W
~@9
>`.pickRestart({
A: "~@3 d4@2 ~@3", B: "[~@6 g3@3 ~@7]/2", C: "[~@7 d3@2 ~@7]/2", D: "~@15 a3@4 ~@5", E: "~@3 g3@5 ~ g3@6 ~@9",
F: "~@5 d3@2 d3, ~ a3@2 ~", G: "~ d3@6 ~", H: "~@12 a3@13 ~@5 a3@7 ~@11, ~@6 e3@19 ~@23", I: "~@31 a3@7 ~@10",
J: "[~@7 g3@8 ~@16 g3@9 ~@3 g3@10 ~@2 g3@8 ~@16 g3@8 ~@9]/2", K: "~@31 d3@7 ~@4 d3@6",
L: "~@13 e3@11 ~@7 e3@16 ~, ~@7 g3@13 ~@28", M: "~@43 g3@5", N: "~@31 a3@12 ~@5", O: "~@33 a3@8 ~@7",
P: "~@13 e4@3, ~@7 c#4@17", Q: "[~@11 f#3@2 ~@11]/2", R: "[~@44 g3@7 ~@29 e3@12 e3@7 ~@40 d3@12 ~@41]/4",
S: "[~@8 g3@8 ~@16 g3@10 ~@2 g3@10 ~@2 g3@9 ~@15 g3@8 ~@8]/2",
T: "[~@32 d3@8 ~@4 d3@8 ~@11 e3@11 ~@6 e3@16, ~@28 g3@7 ~@13]/2", U: "[~@44 g3@7 ~@45]/2", V: "~@11 a3@4 ~",
W: "~@17 a3@4 ~@3",
})).s("gm_electric_guitar_jazz").gain(0.16)
// chords · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note(`<
A@6 B C@3 D@4 E@2 F@2 G@2 H@4 I J K@3 ~ L@2 M N O P@8 Q R S@2 T@4 U V W@3 X@3 Y Z AA AB@8 ~@2 AC AD@5 ~
>`.pickRestart({
A: "[a4@5 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 ~@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@7, ~@107 d6@12 a5@12 f#5@11 ~ a5@11 ~ d5@12 g5@12 b5@12 a4@7 ~@90, ~@64 a5@25 ~@7]/6",
B: "~@11 [d4,d5]@12 [f#4,f#5]@25, ~@11 [a3,a4]@37", // D F# A
C: "[~@11 [a3,a4]@12 [c#4,c#5]@12 [d4,d5]@12 [c#4,e5]@24 [b3,d5]@24 ~@36 a2@13, ~@95 [a3,c#5]@49]/3", // A C# D C#m Bm A
D: "[~@5 d3@5 ~ d3@6 c#3@5 ~ c#3@6 b2@5 ~ b2@6 a2@6 b2@48 e3@48 a3@48 ~]/4",
E: "[[b4,d5,b5,d6]@2 ~@4 [d5,g5,d6]@8 ~@4 [b4,d5,g5,b5,d6]@9 ~@3 [b4,d5,g5,d6]@8 ~@4 [b4,g5,b5,d6]@2 ~@3 [a#4,d5,f5,a5,a#5,d6]@3 ~@4 [a#4,d5,f5,a5,a#5,d6]@6 ~@6 [a#4,d5,f5,a5,a#5,d6]@25 ~@5, g5 ~@4 [b4,b5]@9 ~@15 b5@8 ~@4 d5@2 ~@53]/2", // Bm G5 G A#maj7 B
F: "[[a3,a4,d5,f#5] [e3,b4,e5,g5], d4]/2", G: "[a3,c#4,e4,a4]/2",
H: "[~@48 c#5@33 d5@14 g5@25 ~@18 e5@3 ~@3 c#5@24 d5@12 c#5@12, [f#3,a3]@94 ~ [g3,b3]@48 [a3,c#4]@48 ~, d4@46 ~ c#4@48 ~@36 e3@59 ~@2, ~@23 f#5@30 ~@67 d5@20 ~ d5@4 ~@47]/4", // F#m G A
I: "~@6 [a3,d4,f#4]@10 ~@2 [a3,d4,f#4]@3 ~@9 [a3,d4,f#4]@10 ~@2 [a3,d4,f#4]@3 ~@3, [d3,d5]@29 ~@19, ~ c#3, ~@25 c#5@23", // D
J: "~@6 [b3,d4,f#4]@11 ~ [b3,d4,f#4]@3 ~@3 [a#2,a#4]@6 b4@6 [c#3,c#5]@6 [b3,d4,f#4]@3 ~@3, [b2,b4]@12 ~@3 [b2,b3,d4,f#4]@5 ~ [b2,b4]@3", // Bm A# C# Bm B Bm B
K: "[~@6 [b3,e4,g4]@10 ~@2 [b3,e4,g4]@3 ~@9 [b3,e4,g4]@9 ~@3 [b3,g4]@6 [c#4,a4]@48 ~@48, [b2,b4]@25 ~@17 e4@55 ~@47]/3", // Em F#m B
L: "[d3@12 e3@6 f#3@5 a3@7 g3@6 f#3@6 g3@6]/2", M: "a3@2 b3 c#4", N: "e4@12 d4@13 c#4@9 b3@12 ~@2",
O: "a3@22 c#3@8 ~ d3@6 ~@6 [a3,a4]@5, ~@37 e3@11", // A
P: "[~ [d4,d5]@6 [e4,e5]@6 [f#4,f#5]@6 [e4,e5]@6 [f#4,f#5]@17 ~@7 [f#4,f#5]@6 [c#4,c#5]@12 [b3,b4]@6 [c#4,c#5]@17 ~@7 [e4,e5]@6 [f#4,f#5]@6 [g4,g5]@6 [f#4,f#5]@6 [g4,g5]@17 ~@13 [e4,e5]@41 ~@25 f#5@23 ~@24 c#4@11 ~ d5@11 ~@2 g5@24 ~@18 e5@3 ~@3 c#5@24 d5@12 c#5@11, ~ f#3@95 g3@48 a3@97 ~@46 g3@48 ~ a3@48, ~ d3@47 c#3@49 e3@97 ~@46 b3@25 ~@10 d4@12 ~@37 b3@12 ~@48, ~@42 e5@8 ~@41 b4@8 ~@39 a5@7 [f#4,f#5]@10 ~@37 f#3@95 e3@97, ~@43 e4@8 ~@39 b3@8 ~@41 a4@8 ~@94 c#5@35 ~@37 d5@20 ~ d5@4 ~@46]/8", // D E F# E F# C# B C# …
Q: "~@25 [f#3,f#5]@23", R: "~ c#5@35 ~ d5@11, c#3@3 b2",
S: "[~ g5@24 d5@19 e5@2 ~@3 c#5@24 d5@12 c#5@11, e3@25 b3@23 a3@48, ~@23 d5@2 ~@23]/2",
T: "[~@50 c#5@32 ~@2 d5@11 ~ g5@25 ~@19 e5@2 ~@3 c#5@24 d5@12 c#5@11, ~@2 [f#3,a3]@95 ~@35 e3@59 ~, ~@2 d4@46 c#4@48 ~@25 d5@20 ~ d5@4 ~@46, ~@24 f#5@30 ~@41 [g3,b3]@48 [a3,c#4]@48 ~]/4", // F#m G A
U: "~@8 [a3,d4,f#4]@10 ~ [a3,d4]@3 ~@9 [a3,d4]@10 ~@2 [a3,d4,f#4]@3 ~@2, ~ [d3,d5]@14 f#4@5 ~@4, ~@18 f#4@3 ~@5 [c#3,c#5]@22", // D D5 D C#
V: "~@7 [b3,d4,f#4]@10 ~@2 [b3,d4,f#4]@3 ~@3 [a#2,a#4]@6 ~@6 [c#3,c#5]@6 [b2,f#4,b4]@5, ~ [b2,b4]@25 ~@5 [b2,b4]@8 ~@9, ~@32 [b3,d4,f#4]@10 ~ [b3,d4]@2 ~@3", // Bm A# C# B5 B Bm
W: "[~@7 [b3,e4,g4]@10 ~@2 [b3,e4,g4]@3 ~@10 g4@9 ~@2 [b3,g4]@6 [c#4,a4]@49 ~ [b4,g5,b5,d6]@2 ~@3 [b4,d5,g5,b5,d6]@8 ~@4 [b4,d5,g5,b5,d6]@10 ~@2 [b4,d5,g5,b5,d6]@9 ~@2 [b4,g5,b5,d6]@4 ~, ~ [b2,b4]@26 ~@4 [b3,e4]@10 ~@2 e4@55 ~ d5 ~@39 d5@2 ~@3]/3", // Em F#m G B E5
X: "[~ [a#4,d5,f5,a5,a#5,d6]@3 ~@4 [a5,d6]@8 ~@3 [a#4,f5,a#5,d6]@30 d3@24 e3@12 f#3@11 ~@13 g3@12 f#3@12 g3@11, ~@7 [a#4,d5,f5,a#5]@8 ~@4 [d5,a5]@77 a3@15 ~@33, ~@49 f#5@47 g5@48, ~@97 [e5,b5]@47]/3", // A#maj7 D5 A# D5 E5
Y: "~@25 b3@12 c#4@11, ~ f#5@47, ~ a3@25 ~@22, ~ [a5,c#6]@23", // A
Z: "~@14 d4@11 c#4@11 b3@12, ~ e4@13 ~@34, ~ [g5,b5,d6]@23", // G
AA: "~ [b4,d5]@11 ~@4 d3@3 ~@3 [a3,a4]@2, ~ a3@23 c#3@9 ~@5 e3@10, ~ g4@21 ~@2, ~@25 a4@19 ~@4, ~@13 c#5@11", // Bm A
AB: "[~@2 [d4,d5]@6 [e4,e5]@6 [f#4,f#5]@6 [e4,e5]@6 [f#4,f#5]@18 ~@6 [f#4,f#5]@6 [c#4,c#5]@12 [b3,b4]@6 [c#4,c#5]@18 [b3,b4]@6 [e4,e5]@6 [f#4,f#5]@6 [g4,g5]@6 [f#4,f#5]@6 [g4,g5]@17 ~@7 [f#4,f#5]@7 [e4,e5]@41 ~@71 c#4@12 ~ d5@11 ~ g5@24 ~@24 c#5@24 d5@12 c#5@10, ~@2 f#3@96 g3@47 a3@96 b3@25 ~@11 d4@12 g3@46 d5@4 ~@45, ~@2 d3@47 c#3@50 ~@41 [a4,a5]@9 ~@45 f#3@95 e3@95, ~@44 [e4,e5]@8 ~@46 e3@97 ~@23 f#5@30 ~@77 b3@12 a3@47, ~@242 c#5@35 ~@37 d5@19 e5@4 ~@47]/8", // D E F# E F# C# B C# …
AC: "~@5 d6@4 a5@4 f#5@3", AD: "[~@3 a5@11 ~ d5@12 g5@12 b5@12 ~@96 [f#3,a3,d4]@51 ~@42, ~@17 a5@49 ~@14]/5",
})).s("gm_string_ensemble_2").gain(0.14)
// chords · string ensemble 2 · "STRINGS" · soft notes
const string_ensemble_2_soft = note("<~@10 A@4 ~@14 B C@3 D E F ~@35 G@7 ~@2>".pickRestart({
A: "[~@5 d5@12 c#5@12 b4@12 a4@4 ~@50 g4@46 ~@3 e4@48, ~@47 [b4,d5]@96 [a4,c#5]@49]/4", // Bm A
B: "~ [b4,g5,b5,d6]@2 ~@4 [d5,g5,d6]@8 ~@3 [b4,d5,g5,b5,d6]@10 ~@2 [b4,d5,g5,b5,d6]@9 ~@3 [b4,d5,g5,b5,d6]@3 ~@3, ~ d5 ~@4 [b4,b5]@8 ~@34", // G G5 G B
C: "[[a#4,d5,f5,a5,a#5,d6]@3 ~@3 [a#4,d5,f5,a5,a#5,d6]@8 ~@4 [a#4,f5,a#5,d6]@30 f#5@46 ~@2 [e5,b5]@48, ~@9 [d5,a5]@38 g5@25]/3", // A#maj7 A# E5 D5
D: "[f#5,a5,c#6]", E: "~ [g5,b5,d6]@47", F: "~ [b4,d5]@24 c#5@23, ~ g4@42 ~@5, ~@25 a4@18 ~@5",
G: "[~@3 a4@5 b4@7 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@5 b4@7 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@5 b4@7 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@6 a4@6 b4@7 ~@44]/7",
})).s("gm_string_ensemble_2").gain(0.05)
// chords · piano · "PNO/TRMBNE"
const piano = note("<A@4 B@2 ~@64 C@6 D@3>".pickRestart({
A: "[[a3,d4,f#4]@47 [b3,d4]@24 [c#4,e4]@24 [a3,d4,f#4]@30 [f#3,a3,d4]@43 [b3,d4]@24]/4", // D Bm C#m D Bm
B: "[d4@54 ~@12 a3@6 ~@12 d4@11 ~, a3@66 ~@6 [f#3,e4]@23 ~, f#4@30 f#4@7 ~@11, ~@27 [d4,a4]@10 ~@11]/2", // F#7 D5
C: "[~@4 f#3@46 ~ [g3,b3]@24 e3@24 ~@66 f#3@4 ~@2 [g3,b3]@24 ~@48 d3@45, ~@3 d3@71 ~@25 f#3@60 a3@12 ~@24 f#3@42 f#3@51, ~@3 [a3,d4]@47 ~@25 a3@78 d4@17 ~@25 a3@36 a3@57, ~@100 d3@122 ~@3 d4@63]/6", // G D5
D: "[~@3 [a2,d3,f#3]@115 ~@26]/3", // D
})).s("gm_piano").gain(0.36)
// other · trombone · "PNO/TRMBNE"
const trombone = note("<~@18 A B ~@3 C ~@2 D E F G ~ H I J K ~@18 L M N O P@2 Q R@2 ~@17>".pickRestart({
A: "~@30 c#5@5 ~ d5@5 ~ e5@6", B: "a5@4 ~@8 b5@6 a5@3 ~@15 [a5,a6]@4 ~@8",
C: "~@28 [a3,a4]@2 ~@2 [a3,a4]@3 ~@2 [a3,a4]@11", D: "~ e4@13 ~@5 e4@29", E: "~ a4@14 ~@4 a4@25 ~@4",
F: "~ [g4,b4,d5]@2 ~@4 [g4,b4,d5]@7 ~@5 [g4,b4,d5]@8 ~@4 [g4,b4,d5]@10 ~@2 [g4,b4,d5]@3 ~@2", // G
G: "~ [f4,a#4,d5] ~@5 [f4,a#4,d5]@8 ~@4 [f4,a#4,d5]@26 ~@3", H: "~ a3@5 ~ b3@5 ~ a3@6 b3@5 ~ a3@6 b3@6 a3@5 ~ b3@5",
I: "~ a3@6 b3@2 ~ a3@5 ~ b3@3 a3@25 ~@4", J: "~@25 a4@5 ~ b4@5 ~ a4@5 ~ b4@5", K: "~ a4@5 ~ b4@3 a4@4 ~@2 b4@3 a4@29",
L: "~@2 e4@13 ~@5 e4@28", M: "~@2 a4@14 ~@4 a4@25 ~@3",
N: "~@2 [b4,d5]@2 ~@4 [g4,b4,d5]@8 ~@5 [b4,d5]@8 ~@3 [g4,b4,d5]@10 ~@2 [g4,b4,d5]@2 ~@2, ~@2 g4 ~@17 g4@8 ~@20", // Bm G Bm G
O: "~@2 [f4,a#4,d5] ~@5 [f4,a#4,d5]@8 ~@4 [f4,a#4,d5]@25 ~@3", P: "~@2 a3@5 ~ b3@6 a3@6 b3@6 a3@6 b3@6 ~ a3@5 b3@4",
Q: "~@3 a3@5 b3@3 a3@5 ~ b3@3 a3@25 ~@3",
R: "[~@2 a4@5 ~@2 b4@5 ~ a4@5 ~ b4@6 a4@5 ~ b4@5 ~ a4@5 ~ b4@6 a4@5 ~ b4@3 a4@4 ~@2 b4@3 a4@27]/2",
})).s("gm_trombone").gain(0.2)
// other · trombone · "PNO/TRMBNE" · soft notes
const trombone_soft = note(`<
~@30
[~ a3@5 ~ b3@5 ~ a3@6 b3@6 a3@6 b3@6 a3@5 ~ b3@5]
~@2
[~ a4@5 ~ b4@5 ~ a4@5 ~ b4@6 ~@23]
~@45
>`).s("gm_trombone").gain(0.1)
// drums · kick
const kick = s("bd").struct("<A B@2 C D E D@7 E D@5 F G@7 H G@6 H G@3 I@16 J I@3 K I K L K@13 L M ~@2>".pickRestart({
A: "x ~@16 x ~@5 x ~@23 x", B: "~@17 x ~@5 x ~@23 x", C: "~@17 x ~@5 x ~@24", D: "x ~@2 x!2 ~@3", E: "x ~@5 x!2",
F: "x ~@36 x ~@4 x ~@5", G: "~ x ~@17 x ~@5 x ~@22", H: "~ x ~@35 x ~@5 x ~@4", I: "~ x ~@8 x ~@2 x ~@10",
J: "~ x ~@17 x ~@2 x ~", K: "~ x ~@5 x ~ x ~@6", L: "~ x ~@11 x ~ x", M: "~ x ~@14",
})).gain(0.32)
// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@5 A ~@7 A ~@5 A ~@7 B ~@6 B ~@19 C ~@6 D ~@13 D ~@3>".pickRestart({
A: "~@4 x!2 ~@2", B: "~@25 x ~@5 x ~@16", C: "~@13 x ~@2 x ~@7", D: "~@9 x ~ x ~@4",
})).gain(0.14)
// drums · snare
const snare = s("sd").struct("<A@2 B@3 C B@7 C B@5 C B D@6 E D@6 E D@10 F@9 G F@6 H I J@12 H K ~@2>".pickRestart({
A: "~@11 x ~@23 x ~@12", B: "~ x ~ x", C: "~@4 x ~@6 x ~ x!3", D: "~@13 x ~@23 x ~@10",
E: "~@13 x ~@20 x ~@5 x ~@2 x ~@2 x ~", F: "~@7 x ~@11 x ~@4", G: "~@14 x ~@20 x ~@5 x ~@2 x ~@2 x",
H: "~@5 x ~@6 x ~ x!2", I: "x ~@4 x ~@7 x ~@2", J: "~@5 x ~@7 x ~@2", K: "x",
})).gain(0.32)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@5 A ~@7 A ~@5 B ~@7 C ~@6 C ~@19 D ~@6 E ~@13 E ~@3>".pickRestart({
A: "~@8 x!3 ~ x ~@3", B: "~@24 x ~@2 x ~@2 x ~@6 x ~@10", C: "~@25 x ~@2 x ~@2 x ~@5 x ~@10",
D: "~@26 x ~@2 x ~@2 x ~@5 x ~@9", E: "~@9 x!3 ~ x ~@2",
})).gain(0.09)
// drums · hihat
const hihat = s("hh").struct("<A B@2 C D@15 E F D@2 G D G@19 H@13 I@19 ~@3>".pickRestart({
A: "x ~@4 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x", B: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x",
C: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6", D: "x!8", E: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@4 x ~@5",
F: "~ x ~@4 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5", G: "~ x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4",
H: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", I: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
})).gain(0.37)
// drums · crash
const crash = s("cr").struct(`<
A B ~@2 A ~ A ~@3 A ~@3 A ~ A@3 ~ C ~@3 C ~@3 C ~ C ~ C@2 ~ C ~@3 C@2 ~@6 D ~@3 D ~@3 D ~ E ~ E@2 ~ E ~@3 E@2 ~@2 E ~
E ~ E ~ E ~@2
>`.pickRestart({
A: "x", B: "~@47 x", C: "~ x ~@46", D: "~ x ~@22", E: "~ x ~@14",
})).gain(0.27)
// … 8 more lines
More by Adriano Celentano
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.