0:00/0:00
// Nessun dolore — Battisti Lucio
// 119 bpm, 4/4, key C 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 153 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(119/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 · electric guitar muted · "BASS GTR"
const bass = note(`<
A ~ B ~ C D ~ E F ~ B ~ C D ~ E G H G I G J G I G H G I G J K L G H G I G@3 I M N O P M Q O R S@3 T S@3 U G H G I G J
K L G H G I G J G I M N O P M N O P M N O P M Q O R S@3 T S@3 V G H G I G J K W G H G X Y Z AA AB AC AD M N O P M N O
P M N O P M Q O R S@3 T S@3 V S@3 T S@3 U AE ~@6
>`.pickRestart({
A: "~@6 d3 ~", B: "d3@5 ~@3", C: "c3@5 c#3 ~@2", D: "~@3 f#3@2 ~@3", E: "~@3 d3@2 ~@3", F: "c3@5 ~ d3 ~",
G: "c3 ~ c3@2 ~ c3 ~ c3 c3@2 ~@6", H: "c3 ~ c3@2 ~ c3 ~@2 c3@2 ~@6", I: "c3 ~ c3@2 ~ c3 ~ c3 c3@2 a2@2 a#2@2 b2@2",
J: "c3 ~ c3@2 ~ c3 ~ c3 c3@3 ~@5", K: "c3 ~ c3@2 ~ c3 ~ c3 c3@2 e2@2 f2@2 f#2@2", L: "g2 ~@7",
M: "c3 e3 f3 f#3 g3 a3 a#3 b3", N: "c4@2 d#3@2 f3@2 f#3@2 g3 ~ a2@2 a#2@2 b2@2", O: "c3 d#3 f3 f#3 g3 a3 a#3 b3",
P: "c4!2 a#3@2 a3@2 g#3 ~ g3@2 f3@2 d#3@2 d3@2", Q: "c4@2 d#3@2 f3@2 f#3@2 g3!2 a2@2 a#2@2 b2@2",
R: "c4!2 a#3@2 a3@2 g#3!2 g3@2 f3@2 d#3@2 g3 d#3", S: "c3 ~ c3@4 g2 a2 c3 ~ c3@4 g2 a2",
T: "c3 ~ c3@4 g2 a2 d#3 ~ d#3@2 d3 ~ d3@2", U: "c3 e2 f2 f#2 g2 a2 a#2 b2",
V: "c3 ~ c3@2 c3@2 c3@2 d#3 ~ d#3@2 d3 ~ d3@2", W: "g2 ~ g2@2 a2 ~ a2@2 a#2 ~ a#2@2 b2 ~ b2@2",
X: "c3 ~ c3@2 a2@2 a3@2 a#2@2 a#3@2 ~@2 b3@2, ~@3 b2", Y: "c3 ~ c3@2 ~@4 c3@2 ~@6",
Z: "a#2 ~ a#2@2 ~ a#2 ~ a#2 a#2@2 ~@6", AA: "a2 ~ a2@2 ~ a2 ~ a2 a2@2 ~@6", AB: "g#2 ~ g#2@2 ~ g#2 ~ g#2 g#2@3 ~@5",
AC: "g2@5 ~ g2@10", AD: "~ g2 e2@2 f2@2 f#2@2 g2@2 a2@2 a#2@2 b2@2", AE: "c3@5 ~@3",
})).s("gm_electric_guitar_muted").gain(0.48)
// bass · electric guitar muted · "BASS GTR" · soft notes
const bass_soft = note(`<
A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 ~ F ~@7 F ~@7 F ~@7 G ~ H ~@13 F ~@7 F ~@7 G ~ H ~ G ~ H ~ G ~ H ~@13 F ~@7 F ~@2 I
~@6 G ~ H ~ G ~ H ~ G ~ H ~@20 J@2 ~@5
>`.pickRestart({
A: "[~@5 c#3 ~ d#3@9]/2", B: "[~@5 d#3 d3 c#3@9]/2", C: "[~@6 d3 d#3@2 e3 f3 ~@2 g#3 f#3@2]/2",
D: "[f3@7 e3@2 d#3@2 ~@2 c#3@2 c#3]/2", E: "[f3@14 e3@4 d#3@4 ~@4 c#3@3 ~ c#3@2]/2", F: "~@7 c3 ~@8", G: "~@9 g3 ~@6",
H: "~@7 g#3 ~@8", I: "~@5 c3 ~ c3 ~@8", J: "[~@5 c#3 d3 d#3@9]/2",
})).s("gm_electric_guitar_muted").gain(0.24)
// chords · piano · "A.PIANO"
const piano = note(`<
A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 F@2 G H I@2 J@3 K L M N@7 O@2 P Q R S T U V W T X Y Z AA AB AC AD AE AF@4 AG AH AI@2
AJ@4 AK AL AM@2 AN AO S T U V W T X AP S T U V W T X Y Z AA AB AC AD AE AQ@4 AR@2 AS@6 AT AO AU@2 AV AW AX@2 S T U V W
T X AP S T U V W T X AY Z AA AZ AC AD AE BA@3 AA AB AC Z AE BB@4 BC@5
>`.pickRestart({
A: "[[c3,e4]@5 [c#3,f4] [d3,f#4] [d#3,g4]@9]/2", B: "[[d3,f#4]@5 [d#3,g4] [d3,f#4] [c#3,f4]@9]/2",
C: "[[c3,e4]@5 [c#3,f4] [d3,f#4] [d#3,g4]@2 [e3,g#4] [f3,a4] [f#3,a#4]@2 [g#3,c5] [f#3,a#4]@2]/2", // C C# D D# E F F# G# …
D: "[a4@5 c5 a4 [e3,g#4]@2 [d#3,g4]@2 [d3,f#4]@2 [c#3,f4]@2 [c#3,f4], f3@7 ~@9]/2", // E D# D C#
E: "[a4@10 c5@2 a4@2 [e3,g#4]@4 [d#3,g4]@4 [d3,f#4]@4 [c#3,f4]@3 ~ [c#3,f4]@2, f3@7 ~@9]/2", // E D# D C#
F: "[[c3,g3,e4]@5 [c#3,g#3,f4] [d3,a3,f#4] [d#3,a#3,g4]@9]/2", G: "[f3,c4,f4,a4]@5 ~@2 [f3,c4], ~@14 [f4,a4] ~",
H: "~ [c3,c4,e4,g4]@7", // C
I: "[[c3,c4,e4]@5 [c#3,c#4,f4] [d3,d4,f#4] [d#4,g4]@2 [f4,g#4] [f#4,a4] g4@2 g4 a#4@2, ~@7 d#3@7 ~@2, ~@11 a#4@3 ~@2, ~@13 c5@3]/2", // C C# D D# Fm F#m
J: "[[f4,a4,c5]@12 ~@2 [e4,g4,c5]@17 ~ [g4,c5]@16, f3@14 ~@17 c3@17]/3", K: "[d#3,g4,a#4]", L: "[f3,a4,c5,f5]",
M: "c3@10 a2 ~@5, [g4,c5,e5]", // C
N: "[[e4,g4,c5]@16 [g4,a#4,d#5]@15 ~ [a4,c5,f5]@14 ~@2 [f4,g4,c5]@2 ~@30 [d#3,g4,a#4,a#5]@16 [f3,a4,c5,f5,a5]@16, c3@31 c3@15 d3@4 ~@13 c3@17 ~@32, ~@4 [g4,c5] ~@2, ~@9 g5@5, ~@19 c6@9]/7", // C D# F Fsus2 D# F C5
O: "[c3@9 ~ a2 ~@5 [g4,c5]@16, [g4,c5,e5]@15 c3@17]/2", P: "[d#3,g4,a#4,a#5]",
Q: "f3@5 ~ [c5,f5,a5]@2, [c5,f5,a5]@3 ~, ~@5 f3@3", R: "c3@5 a2 ~ b2, [e5,g5,c6]",
S: "[g5,c6]@3 [e5,g5,c6], c3, e5@5 ~@3", T: "[g5,a#5]@3 [g5,a#5,c6], d#3, d#5@5 ~@3",
U: "[f3,d5,f5,a5,c6]@3 [f3,d5,f5,a5,c6]", V: "[c3,e5,g5,c6]", W: "[e5,g5,c6]@3 [e5,g5,c6], c3",
X: "[f3,f5,a5,c6]@3 [f5,a5,c6], d5@5 ~@3", // F
Y: "[c3,g5,c6]@2 [g5,a#5,d#6]@3 [f5,a#5,d6] ~@2 [d#5,g5,a#5] ~@2 [c5,f5,a5]@2 ~ [a#4,d#5,g5]@2, ~@7 c3@2 ~ c3@2 ~ c3@2 ~", // C5 D# A# D# F D#
Z: "~@2 [g4,e5]@3 [g4,e5] ~@6 g5@4, [c3,c5]@7 c3@9, ~ [g4,c5,e5]", // C
AA: "~@2 [g4,a#4]@3 [g4,a#4] ~@6 a#5@4, [d#3,d#5]@7 d#3@9, ~ [g4,a#4,d#5]", // Gm D#
AB: "~@2 [a4,c5,f5]@3 [a4,c5,f5] ~@8 a#5 a5, a5@7 ~, f3@6 ~ f3@8 ~, ~ [a4,c5,f5]", // F
AC: "~@2 [g4,c5,e5]@3 [g4,c5,e5]@2 ~ [g4,a#4,d#5]@4 [f3,a4,c5,f5]@4, g5, c3@7 d#3@5 ~@4", // C D# F
AD: "~@2 [g4,e5]@3 [g4,e5] ~@6 g5@4, c5 [g4,c5,e5], c3@6 ~ c3@9", // C
AE: "~@2 [g4,a#4]@3 [g4,a#4] ~@6 a#5@4, d#5 [g4,a#4,d#5], d#3@6 ~ d#3@9", // Gm D#
AF: "[~@2 [a4,c5,f5]@2 ~ [a4,c5,f5] ~@8 a#5 a5 ~@2 [g4,c5,e5]@3 [g4,c5,e5]@2 ~ [g4,a#4,d#5]@4 [f3,a4,c5,f5]@3 ~ c5@8 ~@8 d#5@2 ~@6 g5@8, a5@7 ~ g5@9 ~@3 c5@5 d#5@7, f3@6 ~ f3@9 c3@7 d#3@5 ~@3 [c3,e4]@13 c6@2 a#5@5 ~ a#5@6 ~@6, ~@2 d5 ~@5 [a4,c5,f5]@10 ~@14 g4@16 [d#3,g4,a#4]@16, ~@21 g5@5 ~ c6@3 ~@2]/4", // F C D# F C F D#
AG: "f5 ~@2 a5, [f3,a4]@5 g5@3, c5 ~ f5@6, ~@3 c6@5, ~ f4", // F
AH: "c3@2 ~ c3 [d#3,d#5,g5,a#5]@2 [f3,c5,f5,a5]@2, [g4,c5,e5] ~, ~ c4 ~@2", // D# F C
AI: "[~@2 g5@3 ~@21 g5@2 [a#4,g5]@3 ~, c3@31 ~, [e4,c5]@14 d#6@17 ~, g4@12 c6@2 a#4@12 c6@5 ~, ~@10 g5@4 [g4,d#5]@8 g5@2 g4@7 ~]/2", // D# C Cm
AJ: "[[a4,c5,f5]@10 ~ c2 f2@2 f#2 ~ [f4,g4,c5]@2 ~@14 [g4,c5]@10 f4@2 [f#4,a4]@2 [d#3,g4,d#5]@18, c3@9 ~ e2@2 ~@3 g2@3 ~@13 c3@11 ~@2 d3 ~@19]/4", // F Fsus2 C5 F#m D#
AK: "[f3,a4,c5,f5]@6 d5 [f3,a4,c5,d5,f5]", AL: "~ c3@4 a2 ~ b2, ~@2 [g4,c5,e5]@13 ~",
AM: "[[c3,g4,c5]@5 f4 [f#4,a4] [d#3,g4,d#5]@9, ~@12 d3 ~@19]/2", AN: "[f3,a4,c5,f5]@12 ~@2 [f3,a4,c5,f5] ~",
AO: "~ c3@4 a2 ~ b2, ~ [g4,c5,e5]@7", AP: "[c3,c5,e5,g5]",
AQ: "[~@2 [a4,c5,f5]@2 ~ [a4,c5,f5] ~@8 a#5 a5 ~@2 [g4,c5,e5]@3 [g4,c5,e5]@2 ~ [g4,a#4,d#5]@4 [f3,a4,c5,f5]@3 ~ c5@8 ~@6 a#5@4 ~@6 g5@8, a5@14 ~@2 g5@18 ~@6 c5@11 ~@3 c6@6 ~@4, f3@6 ~ f3@9 c3@7 d#3@4 ~@4 [c3,e4]@15 [d#3,g4,a#4]@18, ~@4 [a4,c5,f5]@5 ~@7 g4@6 c6@2 ~ d#5@7, ~@21 g5@5 a#5@3 ~@3]/4", // F C D# F C D# F
AR: "[c5 ~@10 c3 [d#3,d#5,g5,a#5]@2 [f3,c5,f5,a5]@2, [f3,a4]@5 g5@2 [f4,a4,c5] [e4,g4,c5]@4 ~@4, f4@8 f4@4 ~ f3@2 c3@7 ~@10, ~ f5@3 ~ c4 ~@2, ~@3 c6@5 ~@8]/2", // D# F C
AS: "[~@2 g5@2 ~@22 [d#5,g5]@2 [a#4,d#5,g5]@3 ~ [a4,c5,f5]@10 e2 c2 f2@2 f#2 ~ [f4,g4,c5]@2 ~@14 [g4,c5]@10 f4@2 [f#4,a4]@2 [d#3,g4,d#5]@18, c3@31 c3@9 ~@7 g2@3 ~@13 [c3,e4]@11 ~@2 d3 ~@19, [e4,c5]@14 d#6@17 ~@65, g4@12 c6@2 a#4@12 [a#5,c6]@5 ~@65, ~@4 c6@6 g5@4 [g4,d#5]@8 g5@2 g4@7 ~@65]/6", // D# F Fsus2 C5 F#m D# C A#sus2 …
AT: "[f3,a4,c5,d5,f5]@6 d5 [f3,a4,c5,d5,f5]", AU: "[[c3,e4,g4,c5]@5 f4 [f#4,a4] [d#3,g4,a#4,d#5]@9, ~@12 d3 ~@19]/2",
AV: "[a3,a4,c5,f5]@3 f4", AW: "[g#3,f4,g#4,c5,f5]@15 ~", AX: "[[e5,g5]@3 [c5,e5,g5]@13, [c3,c6]]/2",
AY: "[c3,g5,c6]@2 [g5,a#5,d#6]@3 [f5,a#5,d6] ~@2 [d#5,g5,a#5] ~@2 [c5,f5,a5]@2 ~ [a#4,d#5,g5]@2, ~@7 c3@3 ~@3 c3@2 ~", // C5 D# A# D# F D#
AZ: "~@2 [a4,c5,f5]@2 ~ [a4,c5,f5] ~@8 a#5 a5, a5@7 ~, f3@6 ~ f3@8 ~, ~ [a4,c5,f5]", // F
BA: "[~@2 [a4,c5,f5]@2 ~ [a4,c5,f5] ~@8 a#5 a5 ~@2 [g4,c5,e5]@3 [g4,c5,e5]@2 ~ [g4,a#4,d#5]@4 [f3,a4,c5,f5]@3 ~ g4@2 [g4,e5]@3 [g4,e5] ~@6 g5@4, a5@7 ~ g5@9 ~@7, f3@6 ~ f3@9 c3@7 d#3@4 ~@4 c3@7 ~ c3@9, ~@8 [a4,c5,f5]@10 ~@13 e4@10 ~@7, ~@4 c5 [g4,c5,e5]]/3", // F C D# F C F C
BB: "[~@2 [a4,c5,f5]@2 ~ [a4,c5,f5] ~@8 a#5 a5 ~@2 [a#5,d#6]@3 [f5,a#5,d6] ~@2 [d#5,a#5] ~@2 [c5,f5,a5]@2 ~ [a#4,d#5]@2 [c3,c4,e4]@10 [c#3,c#4,f4]@2 [d3,d4,f#4]@2 [d#4,g4]@4 [f4,g#4]@2 [f#4,a4]@2 g4@4 [g4,c5]@2 a#4@4, a5@7 ~ g5@12 ~@12, f3@6 ~ f3@9 c3@6 ~ c3@3 ~@3 c3@2 ~@15 d#3@14 ~@4, ~@4 [a4,c5,f5]@5 ~@18 a#4@3 ~@2]/4", // F D#5 A# D#5 F D#5 C C# …
BC: "[[f4,a4,c5]@6 ~ [e4,g4]@31 ~@2, f3@7 c5@30 ~@3]/5", // F Em
})).s("gm_piano").gain(0.48)
// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
A@2 B@2 C D E@2 A@2 B@2 F@2 G@2 ~@2 H ~@2 I J@3 K ~ L ~@3 M@2 K ~ N@2 K O P Q R ~@3 R S T ~@6 U ~@2 V W ~ X Y ~ Z@3 AA
P AB@2 AC P Q R ~@3 R S ~ Q R ~@3 R AD T ~@9 V AE ~ AF AG ~@2 AH@2 AA P AI ~ AJ ~@3 Q R ~@3 R S ~ Q R ~@3 R AD T ~@15
T ~ AK AL@5
>`.pickRestart({
A: "[g3@5 g#3 a3 a#3@9]/2", B: "[a3@5 a#3 a3 ~@6 f5@3, ~@7 g#3@9, ~@11 c5@5]/2", C: "g3@5 g#3 a3 a#3",
D: "~ b3 c4 c#4@2 d#4 c#4@2", E: "[c4@14 b3@4 a#3@3 ~ a3@4 g#3@4 g#3@2]/2",
F: "[g3@9 ~ g#3@2 a3@2 a#3@4 b3@2 c4@2 c#4@4 d#4@2 c#4@4]/2", G: "[c4@14 b3@4 a#3@4 a3@4 g#3@3 ~ g#3@2]/2",
H: "~@5 [f3,c4,f4,a4]@2 ~", I: "~@3 [d#3,g4]", J: "[~@12 [f4,a4,c5]@2 c3@17 e4@17]/3", K: "d#5", L: "~@12 a#2 ~ b2 ~",
M: "[~@15 e4@17]/2", N: "[~@12 a#2 ~ b2 e4@17]/2", O: "d5", P: "~@6 a#2 ~", Q: "~@5 e5 ~@2", R: "~@5 d#5@3",
S: "~@12 f3@3 ~, ~@5 d5@3", T: "e5 ~@7", U: "~@5 d5 ~@2 d5@8", V: "~@3 c6, ~@5 a#5@3", W: "~ c5@7",
X: "~@3 g5@2 ~@2 a#5, ~ c6@2 ~", Y: "~@4 a#5@6 d#5@2 d#5@3 ~, ~@10 a#5@5 ~",
Z: "[~@15 e4@10 ~ [c#3,g#4]@2 ~@2 a#4@18]/3", AA: "~@6 [f3,a4,c5,f5] ~", AB: "[e4@5 [c#3,g#4] ~ a#4@9]/2",
AC: "~@6 [f3,a4,c5,d5,f5] d5", AD: "~@3 f3, ~@5 d5@3", AE: "~@2 c5@9 ~ [f4,a4,c5]@2 ~@2, ~@11 f3@2 ~@3, ~@3 a5",
AF: "~@3 g5@2 ~@2 a#5", AG: "~@2 a#5@3 ~@3", AH: "[~@5 [c#3,g#4] ~ a#4@9]/2", AI: "~@5 [c#3,g#4] ~@2",
AJ: "~@3 [c5,f5]", AK: "~@3 [d#3,g4,c5]", AL: "[~@6 [f4,a4,c5] c3@31 ~@2]/5",
})).s("gm_piano").gain(0.24)
// other · french horn · "PRG.CHANGE"
const french_horn = note("<A@2 B@2 C@2 D E F@2 B@2 C@2 D G ~@137>".pickRestart({
A: "[~@5 f3 f#3 g3@9]/2", B: "[f#3@5 g3 f#3 f3@9]/2", C: "[e3@5 f3 f#3 g3@2 g#3 a3 a#3@2 c4 ~@2]/2",
D: "a3@5 c4 a3 ~", E: "~@2 g3@4 f#3@4 f3@3 ~ f3@2", F: "[e3@5 f3 f#3 g3@9]/2", G: "~@2 g3@4 f#3@4 f3@3 ~@3",
})).s("gm_french_horn").gain(0.12)
// other · french horn · "PRG.CHANGE" · soft notes
const french_horn_soft = note("<~@5 A B@2 ~@5 A B@2 ~@137>".pickRestart({
A: "~@3 a#3", B: "[~@7 g#3@2 ~@7]/2",
})).s("gm_french_horn").gain(0.08)
// chords · french horn · "HORN/CHOIR"
const french_horn_2 = note(`<
A@2 B ~ C@2 D@2 E@2 B ~ C@2 F@2 G@3 ~ H@3 ~@9 I J K L I J ~@2 M N@2 O P Q@2 R S T U V S T W@3 ~@7 X@3 Y Z@3 AA AB AC@2
O P Q@2 AD AB AC@2 O P Q@2 R S T U V S T AE@4 AF AG AH@2 AI AJ@4 AA AK@2 AL AM@8 Q@2 AN@8 AO AP@8 AQ@3 AR@7 AS@3 ~@2
>`.pickRestart({
A: "[~@5 c#3 d3 d#3@9]/2", B: "d3@5 d#3 d3 ~", C: "[c3@5 c#3 d3 d#3@2 e3 f3 f#3@2 g#3 ~@2]/2",
D: "[~@7 e3@2 d#3@2 d3@2 c#3@2 c#3]/2", E: "[c3@5 c#3 d3 d#3@9]/2", F: "[~@14 e3@4 d#3@4 d3@4 c#3@3 ~ c#3@2]/2",
G: "[~@5 f3 g4 d#4@7 a#4 a4@7 f4 g4, c4 ~@3]/3", H: "[c4@6 g4 d#4@7 a#4 a4@7 f4 g4]/3", I: "[g3,c4]", J: "a#3",
K: "[c4,f4]", L: "[g3,c4,e4]", M: "[g4,c5]@3 c5, e4@5 ~@3",
N: "[[g4,a#4]@3 g4 [d4,f4,a4]@3 [d4,f4,a4,c5], d#4@5 ~ c5@8 ~@2]/2", O: "[e4,g4,c5]", P: "[e4,g4,c5]@3 [g4,c5]",
Q: "[[g4,a#4]@3 [g4,a#4] [f4,a4]@3 [f4,a4,c5], d#4@5 ~ c5@8 ~@2, ~@8 d4@5 ~@3]/2", // Gm F
R: "c5@2 [g4,a#4,d#5]@3 [f4,a#4,d5] ~@2 [d#4,g4,a#4] ~@2 [c4,f4,a4]@2 ~ [a#3,d#4,g4]@2", // D# A# D# F D#
S: "~@2 [g3,c4,e4]@3 [g3,c4,e4] ~@2 [g3,c4,e4]@8", T: "~@2 [g3,a#3,d#4]@3 [g3,a#3,d#4] ~@2 [g3,a#3,d#4]@8",
U: "~@2 [a3,c4,f4]@2 ~ [a3,c4,f4] ~@2 [a3,c4,f4]@8", V: "~@2 [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,a#3,d#4]@4 [a3,c4,f4]@4",
W: "[~@2 [a3,c4,f4]@2 ~ [a3,c4,d4,f4] ~@2 [a3,c4,f4]@10 [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,a#3,d#4]@4 [a3,c4,f4]@3 ~ g3@10 ~@6, ~@2 d4 ~@5 d4@8 ~@15 e3@10 ~@7]/3", // F Dm7 F C D# F
X: "[g3@5 [f3,g#3] [f#3,a3,g4] d#4@7 a#4 ~ [a3,c4,f4]@6 [d4,f4] [a3,c4,d4,f4,g4], c4@6 ~ [g3,a#3]@9 ~@8, ~@5 a4@3]/3", // Fm F#m F Dm Dm7 Gm
Y: "~@2 [g3,c4,e4]@13 ~", // C
Z: "[g3@10 [f3,g#3]@2 [f#3,a3,g4]@2 d#4@14 a#4@2 ~@2 [a3,c4,f4]@12 f4@2 [a3,c4,f4] ~, c4@6 ~ [g3,a#3]@9 ~@8, ~@15 a4@7 ~ g4]/3", // Fm F#m F Gm
AA: "~ [g3,c4,e4]@7", AB: "[g4,c5]@3 [e4,g4,c5], e4@5 ~@3",
AC: "[[g4,a#4]@3 [g4,a#4] [d4,f4,a4]@3 [d4,f4,a4,c5], d#4@5 ~ c5@8 ~@2]/2", AD: "[c4,e4,g4]",
AE: "[~@2 [a3,c4,f4]@2 ~ [a3,c4,f4] ~@2 [a3,c4,f4]@10 [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,a#3,d#4]@4 [a3,c4,f4]@3 ~ c4@8 ~@6 a#4@4 ~@2 a#4@6 ~@6, ~@31 e3@15 [g3,a#3]@18, ~@16 g3@6 c5@2 ~ d#4@7, ~@40 c4@11 ~@13, ~@21 g4@5 ~@6]/4", // F C D# F Gm
AF: "a3", AG: "[e3,g3,c4] ~", AH: "[g3@14 g3@17 ~, [e3,c4] ~, ~@7 a#3@7 ~@2, ~@7 d#4@6 ~@3]/2",
AI: "[a3,c4,f4]@11 ~@5", // F
AJ: "[[f3,g3,c4] ~@7 g3@5 [f3,g#3] [f#3,a3,g4] d#4@7 a#4 ~ [a3,c4,f4]@6 f4 [a3,c4,f4,g4], ~@15 e3@10 ~@5 [g3,a#3]@18 d4@16, ~@8 c4@6 ~@9 a4@9]/4", // Fsus2 Fm F#m F Gm
AK: "[[e3,g3]@5 [f3,g#3] [f#3,a3,g4] ~@7 a#4@2, c4@6 ~ [g3,a#3,d#4]@9]/2", AL: "[f4,a4]@3 f4, [a3,c4]",
AM: "[[c4,d4]@3 ~@9 [g4,c5]@3 [e4,c5] [g4,a#4]@3 [g4,a#4] [d4,f4,a4]@3 [d4,f4,a4,c5] [e4,g4,c5]@4 [e4,g4,c5]@3 [g4,c5], [f3,g#3,f4]@15 ~@33 e4@10 ~@6 d#4@10 ~@2 c5@16 ~@36, ~@3 c4@29]/8", // Csus2 C5 C Gm Dm Dm7 C C5 …
AN: "[[e4,g4]@4 [g4,c5]@3 [e4,c5] [g4,a#4]@3 [g4,a#4] [d4,f4,a4]@3 [d4,f4,a4,c5] [g4,c5]@4 [e4,g4,c5]@3 [g4,c5] [d#4,g4,a#4]@3 [g4,a#4] [f4,a4]@3 [f4,a4,c5], c4, ~@8 e4@5 ~@3 d#4@5 ~ c5@8 ~@2 e4@7 ~@15 c5@8 ~@2, ~@56 d4@5 ~@3]/8", // Em C5 C Gm Dm Dm7 C5 C …
AO: "c5@2 [g4,a#4,d#5]@3 [f4,a#4,d5] ~@2 [d#4,g4,a#4] ~@2 [f4,a4]@2 ~ [a#3,d#4,g4]@2, ~@11 c4@5", // D# A# D# F D#
AP: "[~@2 [g3,e4]@3 [g3,e4] ~@2 [g3,e4]@8 ~@2 [g3,a#3,d#4]@3 [g3,a#3,d#4] ~@2 [g3,a#3,d#4]@9 ~ [a3,c4,f4]@3 [a3,f4] ~@2 [c4,f4]@10 [g3,c4,e4]@3 [g3,e4]@2 ~ [g3,a#3,d#4]@4 [a3,c4,f4]@6 [g3,c4,e4]@3 [g3,e4] ~@2 [g3,e4]@9 ~ [g3,a#3,d#4]@3 [g3,a#3,d#4] ~@2 [g3,a#3,d#4]@9 ~ [a3,c4,f4]@3 [a3,f4] ~@2 [a3,c4,f4]@10 [g3,c4,e4]@3 [g3,e4]@2 ~ [g3,a#3,d#4]@4 [a3,c4,f4]@4, ~@2 c4@6 c4@26 ~@3 c4@3 a3@8 ~@5 c4@7 ~@9 c4@3 c4@26 ~@3 c4@3 ~@13 c4@7 ~@4]/8", // C D# F Dm F5 C D# F …
AQ: "[g3@2 [g3,c4,e4]@3 [g3,c4]@3 [g3,e4]@8 ~@2 [g3,a#3,d#4]@3 [g3,a#3,d#4] ~@2 [g3,a#3,d#4]@9 ~ [a3,c4,f4]@3 [a3,f4] ~@2 [a3,c4,f4]@8, ~@5 e4 ~@2 c4@26 ~@3 c4@3 ~@8]/3", // C C5 C D# F Dm F
AR: "[~@2 [g3,c4,e4]@3 [g3,e4]@2 ~ [g3,a#3,d#4]@4 [a3,c4,f4]@6 [g3,c4,e4]@3 [g3,e4] ~@2 [g3,e4]@9 ~ [g3,a#3,d#4]@3 [g3,a#3,d#4] ~@2 [g3,a#3,d#4]@9 ~ [a3,c4,f4]@3 [a3,f4] ~@2 [a3,f4]@9 ~ [g4,a#4,d#5]@3 [f4,a#4,d5] ~@2 [d#4,g4,a#4] ~@2 [f4,a4]@3 [a#3,d#4,g4]@2 e3@10 [c#2,f3]@2 [d2,f#3]@2 d#2@14 ~@4, ~@5 c4@7 ~@9 c4@3 c4@26 ~@3 c4@3 c4@19 c4@31 ~@6]/7", // C D# F C D# F Dm D# …
AS: "[~@7 [e3,g3]@16 ~]/3", // Em
})).s("gm_french_horn").gain(0.16)
// chords · french horn · "HORN/CHOIR" · soft notes
const french_horn_soft_2 = note(`<
~@2 A@2 ~ B C ~@3 A@2 ~ B C ~ D@2 E F G@2 H@2 ~@7 I@4 J@2 K L M N O ~@2 P Q R S ~@15 T@2 ~ U ~ V ~ W ~ X Q ~@2 P Q R ~
X Q ~@2 P Q R S ~@9 Y Z ~ AA AB ~@4 U ~@7 AC Q ~@2 P Q R ~ AC Q ~@2 P ~ R S ~@7 T@2 ~@6 AD AE@2 AF@3 ~@2
>`.pickRestart({
A: "[~@7 c#3@9]/2", B: "~@3 f#3", C: "f3@7 ~", D: "[[c2,g2,e3]@5 [c#2,g#2] [d2,a2,f#3] [d#2,a#2,g3]@9]/2",
E: "[f2,c3,f3,a3]@10 [f2,c3,f3,a3]@4 [f2,c3,f3,a3] ~", F: "~ [c2,c3,e3,g3]@7",
G: "[[c2,c3,e3]@5 [c#2,c#3,f3] [d2,d3,f#3] [d#3,g3]@2 [f3,g#3] [f#3,a3] [g3,a#3]@2 [g3,c4] a#3@2, ~@7 d#2@7 ~@2]/2", // C C# D D# Fm F#m Gm C5
H: "[[f3,a3,c4]@6 f3 [c2,e3,g3,c4]@9, f2@7 ~@9]/2", // F C
I: "[~@2 [g3,d#4,a#4] [a3,a4], ~@15 e3@17 ~@32, ~@3 g4@5, ~@7 c5@9]/4", J: "[~@15 e3@17]/2", K: "[g3,d#4,a#4]",
L: "[c4,f4,a4]@3 [c4,f4,a4], d4", M: "[e4,g4,c5]", N: "~@5 e4 [e4,g4]@2", O: "~@3 a#4, ~@5 d#4@3", P: "~@3 e4",
Q: "~@5 d#4@3", R: "~@5 d4@3", S: "[e4,g4] ~@7", T: "[~@15 e3@10 ~@7]/2", U: "~@6 [a3,c4] ~", V: "e3@5 ~@3",
W: "~@6 [a3,c4,d4] d4", X: "~@5 e4 ~@2", Y: "~@3 c5, ~@3 c5@3 ~@2, ~ g4, ~@5 a#4@3",
Z: "~@3 a4, ~ c4@7, ~ f4@3, ~@3 c5@5, ~@5 g4@3", AA: "~@2 g4@3 ~@7 c5@4", AB: "~@5 [d#4,g4] [a#3,d#4,g4]@2",
AC: "~@5 e4 g4@2", AD: "e4 ~@7",
AE: "[[c2,c3]@5 c#3 d3 [d#3,g3]@2 [f3,g#3] [f#3,a3] g3@2 [g3,c4] [d#2,g3,a#3,c4]@2, ~@11 a#3@3 ~@2]/2", // C D# Fm F#m C5 Cm7
AF: "[[f3,a3,c4]@6 [f3,a3] c2@16 ~, f2@7 ~@17, ~@6 c4@17 ~]/3", // F
})).s("gm_french_horn").gain(0.06)
// drums · kick
const kick = s("bd").struct("<~@32 A@24 B@7 ~ A@32 B@7 ~ A@8 C D A@32 ~@7>".pickRestart({
A: "x!4", B: "~ x ~ x", C: "x", D: "~@7 x",
})).gain(0.64)
// drums · snare
const snare = s("sd").struct(`<
~@31 A B@7 C D@7 E D@3 E D@4 B@7 A B@7 ~ D@16 E@7 D B@6 ~ F B@8 G F D@15 H D@16 ~@7
>`.pickRestart({
A: "~@11 x!2 ~@3", B: "~@3 x", C: "~@5 x ~@2", D: "~ x ~ x", E: "~@4 x ~@6 x!2 ~@3", F: "x", G: "~@3 x!2 ~@11",
H: "~@4 x ~@2 x!2 ~@7",
})).gain(0.64)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@23 A ~@31 A ~@3 A ~@36 A@6 ~@2 A@4 ~@4 B C ~@14 D ~@24>".pickRestart({
A: "~@7 x", B: "~@2 x!2 ~@12", C: "x", D: "~@11 x ~@4",
})).gain(0.4)
// drums · low tom
const low_tom = s("lt").struct("<~@71 [~@7 x] ~@57 [~@7 x] ~@23>").gain(0.56)
// drums · hihat
const hihat = s("hh").struct(`<
~@8 A@8 B@3 C B@3 D B@3 C B@3 ~ B@3 C B@3 C E@16 B C B D B C@2 ~ B@3 C B@3 F E@24 G H I D I H@2 ~ G H I D C@4 ~@2 E@15
J E@16 K A@2 L A@2 M
>`.pickRestart({
A: "x!4", B: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", C: "x ~ x!3 ~ x!3 ~ x!3 ~@3", D: "x ~ x!3 ~ x!3 ~@3 x ~@3",
E: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2", F: "x ~ x!3 ~ x!3 ~ x!3 ~ x ~", G: "x ~ x!3 ~ x!3 ~@3 x ~@2 x",
H: "x ~ x!3 ~ x!3 ~@2 x!2 ~@3", I: "x ~ x!3 ~ x!3 ~@2 x!2 ~@2 x", J: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!3 ~",
// … 118 more lines
More by Battisti Lucio
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.