0:00/0:00
// Lui non ci sara — Fiorello
// 87 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(87/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 · electric guitar clean · "CLEAN GT+"
const electric_guitar_clean = note(`<
~ A@4 B@2 C D ~@5 E F G H I J K L M N O P Q R S R T ~@2 U@2 V@2 W X Y@2 Z@2 AA K L M N O P Q R S R T ~@2 AB@2 V@2 W AC
AD AE AF AG ~@7 Q R S R T ~@2 U@2 AH@2 W X ~@2 AI@2 V@2 W AJ@2 ~@9
>`.pickRestart({
A: "[~@2 e4 d4 ~ c#4 e4 [g#3,b3]@8 ~, d3@7 ~ [a2,a3]@6 ~@18, ~@2 a3@5 ~@25]/2", // G#m A
B: "[~@4 e4@2 d4@2 ~@2 b3@2 e4@2 [a3,c#4]@9 ~ [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~, d3@7 ~ e3@6 ~@18, ~@2 a3@5 ~@25]/2", // A D A
C: "[g#3,b3,e4]@7 ~ [a3,d4,f#4]@4 [a3,c#4,e4]@3 ~", D: "[g#3,b3,e4]@15 ~",
E: "d3@2 ~@8 a3@2 ~@2 a3 ~, [a3,d4,f#4]@6 [a3,d4,f#4]@5 ~ [d4,f#4]@3 ~, ~@3 d3@5 ~ d3@4 d3@2 ~", // D
F: "[a3,c#4,f#4]@3 ~ a3 ~ [a2,a3]@3 ~ a3@2 [a3,c#4,e4]@2 a2 ~, f#2@2 ~ f#2@2 ~ [c#4,e4]@6 ~@4, ~@9 a2@4 ~@3", // F#m A C#m
G: "b2@5 ~@2 b2@5 ~@2 b3 ~, [b3,d4,f#4]@11 ~ [b3,d4,f#4]@2 ~@2, ~@13 b2@3", // Bm
H: "[f#2,a3,c#4,f#4]@3 [a3,c#4,f#4]@2 ~ [c#4,f#4] a3 [a2,a3,c#4,e4]@3 ~ [b2,b3,d#4,f#4]@3 ~, ~@5 f#2@3 ~@8", // F#m F#5 A B
I: "[f#2,a3]@3 ~ a3@2 c#4@2 [a3,c#4,e4,f#4]@3 f#2 ~ f#2 a3 ~, [c#4,e4,f#4]@3 ~@3 [a3,c#4,e4,f#4] ~, ~@3 f#2@7 ~@6", // F#m F#m7 F#7 F#m7
J: "[a3,d4,f#4]@3 ~ a3@2 [a3,d4,f#4]@5 ~@3 a3@2, d3@2 ~ d3@8 d3@2 d3@3, ~@6 [a3,d4,f#4] ~", // D
K: "[f#2,a3,c#4,f#4]@3 ~ [a3,c#4,f#4] a3 [a2,a3,c#4,e4]@6 ~@2 a3 ~, ~@3 f#2@3 ~@6 [c#4,e4]@2 ~@2, ~@13 a2@2 ~", // F#m A C#m
L: "[b3,d4,f#4]@4 ~@2 [d4,f#4]@4 b2@2 [b3,d4,f#4]@2 b2 ~, b2@9 ~@7, ~ b3@2 ~", // Bm D Bm
M: "[a2,a3,c#4,e4]@2 ~ [a3,c#4,e4] a2@2 [e2,g#3,b3,e4]@4 e3@2 g#3 ~ e3 ~, ~@12 [b3,e4]@3 ~, ~@13 e2@3", // A E E5
N: "[d4,f#4]@6 ~@4 a3@2 [a3,d4,f#4]@2 a3 ~, a3@3 ~@3 a3@4 ~@6, ~@2 d4 ~", // D
O: "[a3,c#4,f#4]@2 ~ [a3,c#4,f#4]@3 [c#4,e4]@6 ~@2 e4 ~, ~@6 a3@5 ~ a3@3 ~, ~@13 c#4@2 ~", // F#m C#m
P: "[b3,d4,f#4]@5 b3 [b3,d4,f#4]@4 b3@2 ~ d4 b3 ~, ~@6 f#4 ~", Q: "[d3,a3]@6 [d3,a3] ~ [e3,b3]@6 ~@2",
R: "[a2,e3]@7 ~ [d3,a3]@7 ~", S: "[e3,b3]@7 ~ [d3,a3]@7 ~",
T: "[e2,e3,b3]@3 ~ [e3,b3] ~ [e3,b3] ~ c#3@2 b2@2 a2@2 b2 ~, ~@5 e2@3 ~@8", // E5
U: "[[a3,d4,f#4]@3 ~@3 a3 ~ [f#2,c#4,f#4]@4 [a3,c#4] ~@5 e3@2 g#3 ~@2 g#3 c#4@2 b3@2 a3@2 b3 ~, ~@3 d3@2 d3@2 ~@7 [e2,g#3,b3,e4]@6 ~ e2@10 ~, ~@4 [a3,d4,f#4]@2 ~@2 a3 ~@11 [b3,e4]@2 e3@9 ~]/2", // D F#5 A E D E5
V: "[[d2,d3,a3]@4 [d3,a3] ~ [d3,a3] ~ [e2,e3,b3] ~ [e2,b3]@2 e3 ~ [f#3,c#4]@6 [f#3,c#4]@4 [b2,f#3]@4 [a2,e3]@4, ~@5 d2@3 ~@2 e3 ~@3 f#2@9 ~@9]/2", // D5 E5 F#5 B5 A5
W: "[e2,b2]@8 [b2,f#3]@3 ~ [a2,e3]@4", X: "[e2,b2]@8 c#3@2 b2@2 a2@2 b2 ~",
Y: "[~@4 e4@2 d4@2 ~@2 c#4@2 e4@2 ~@4 e3 ~ [e3,b3]@3 e2 c#4@2 b3@2 a3@2 b3 ~, d3@7 ~ [a2,a3]@6 b3@6 ~@12, ~@2 a3@5 ~@7 g#3@16 ~@2, ~@16 e2@5 ~@11]/2", // E5 A
Z: "[[a3,d4,f#4]@2 d3@2 [a3,d4,f#4] ~ a3@2 [c#4,e4]@2 a3@2 [c#4,e4] ~ [g#3,b3,e4]@17 ~, d3 ~@4 d3@3 a2@4 ~@20, ~@8 a3 ~@23]/2", // D C#m E
AA: "[a3,d4,f#4]@3 ~ a3 ~ [a3,d4,f#4]@5 ~@3 a3@2, d3@2 ~ d3@8 d3@2 d3@3, ~@6 [a3,d4,f#4] ~", // D
AB: "[[a3,d4,f#4]@3 ~@2 d3 a3 ~ [f#2,c#4,f#4]@4 [a3,c#4] ~@5 e3@2 g#3 ~@2 g#3 c#4@2 b3@2 a3@2 b3 ~, ~@3 d3@2 ~@9 [e2,g#3,b3,e4]@6 ~ e2@10 ~, ~@4 [a3,d4,f#4]@2 ~@2 a3 ~@11 [b3,e4]@2 e3@9 ~]/2", // D F#5 A E D E5
AC: "e2@2 [b3,e4]@11 ~@3", AD: "[a3,c#4]@5 ~ [a3,c#4]@9 ~", AE: "[a3,c#4]@5 ~ [b3,d4]@9 ~",
AF: "[a3,c#4]@2 ~ [a3,c#4] ~@2 [b3,d4]@9 ~", AG: "f#3 e3 f#3@10 ~@4",
AH: "[[d2,d3,a3]@4 ~@2 [d3,a3] ~ [e2,e3,b3] ~ [e2,b3]@2 e3 ~ [f#3,c#4]@6 [f#3,c#4]@4 [b2,f#3]@4 [a2,e3]@4, ~@4 [d3,a3]@2 ~@4 e3 ~@21, ~@5 d2@3 ~@6 f#2@9 ~@9]/2", // D5 E5 F#5 B5 A5 D5
AI: "[[a3,d4,f#4]@3 ~@3 a3 ~ [f#2,c#4,f#4]@4 [a3,c#4] ~ [e2,g#3,b3,e4]@4 e3@2 g#3 ~@2 g#3 c#4@2 b3@2 a3@2 b3 ~, ~@3 d3@2 d3@2 ~@14 e2@10 ~, ~@4 [a3,d4,f#4]@2 ~@2 a3 ~@11 [b3,e4]@2 e3@9 ~]/2", // D F#5 A E D E5
AJ: "[[e2,e3,b3]@15 ~]/2", // E5
})).s("gm_electric_guitar_clean").gain(0.12)
// chords · piano
const piano = note("<A B@4 C@2 D E ~@30 B@2 ~@25 F ~@38>".pickRestart({
A: "~@8 c#5@2 b4@2 a4@2 b4 ~",
B: "[~@2 d3@2 ~@4 [c#4,e4]@2 a3@2 [c#4,e4] ~@5 e3@2 g#3 ~ e3@2 c#5@2 b4@2 a4@2 b4 ~, [d2,a3,d4,f#4]@4 [d4,f#4]@2 d3@2 a2@5 ~ [e2,g#3,b3,e4]@6 ~ e2@3 ~@8, ~@5 d2@2 a3@2 ~@11 [b3,e4]@2 ~@10]/2", // C#m D E E5
C: "[~@2 d3@2 ~@3 [a3,d4] [b3,e4,g#4]@2 e3@2 [b3,e4,g#4] ~ [f#2,c#4,f#4]@6 ~@2 b4 c#5 [f#4,a4,d5]@4 [e4,a4,c#5]@4, [d2,a3,d4,f#4]@4 [d4,f#4]@2 d3@2 ~@6 a3@3 ~@15, ~@5 d2@2 ~ e2@5 ~@19]/2", // D5 E F#5 D A D
D: "[e4,g#4,b4]@7 ~ [f#4,a4,d5]@3 ~ [e4,a4,c#5]@3 ~", E: "[e4,g#4,b4]@15 ~", F: "[f#3,f#4] [e3,e4] [f#3,f#4]@10 ~@4",
})).s("gm_piano").gain(0.27).pan(0.4)
// bass · electric bass finger · "BASS"
const bass = note(`<
A B@4 C@2 D E@2 ~@8 F G H I J K L M N O P Q R S T U@2 V@2 W X B@2 Y@2 G H I Z K L M N O P Q R S T U@2 V@2 W AA AB AC
AD AE G H I J K L M N O P Q R S T AF@2 V@2 AG X AH T AF@2 V@2 AG AI@2 ~@7 AJ@2
>`.pickRestart({
A: "~@4 c#3 b2 a2 b2", B: "[d2@6 ~ d2 a1@6 e1@4 e1@2 e2@3 e1 c#3@2 b2@2 a2@2 b2 ~, ~@3 d1 ~@12]/2",
C: "[d2@4 d1@2 d2 d1 e1 ~ e1@2 e2@2 ~@4 f#2@5 f#1 d2@4 a1@4, ~@7 f#1@4 ~@5]/2", D: "e2@6 e1 e2 d2@4 a1@4",
E: "[e1@29 ~@3]/2", F: "~@7 f#1 f#1@4 e1@3 ~", G: "d2@3 ~ d2 ~ d2@3 ~ d2@3 ~ d2 ~", H: "f#1@2 ~ f#1 ~@2 a1@7 ~ a1 ~",
I: "b1@4 ~@2 b1 ~ b1@5 ~ b1@2", J: "a1@2 ~ a1 ~@2 e1@3 e2@5 e1@2", K: "d2@5 ~ d2@2 ~@2 d2@3 ~ d2@2",
L: "f#1@2 ~ f#1 ~@2 a1@6 ~@2 a1@2", M: "b1@4 ~@2 b1 ~ b1@4 ~@2 b1 ~",
N: "d2@4 ~@2 d2 ~ e2@2 ~@2 e2@2 ~@2, ~@5 e1@2 ~", O: "a1 ~ a1@3 ~@2 a1 d2 d2@3 d2@2 ~ d2",
P: "e1 ~ e1@2 e2@3 e1 d2 ~ d2@3 ~ d2 a1", Q: "a1 ~ a1@4 ~ a1 d2 ~ d2@3 ~ d2@2",
R: "e1 ~ e1@2 e2@3 e1 c#2@2 b1@2 a1@2 b1 ~", S: "d1 ~ d1@2 d2@3 d1 a1 a1@2 ~ a1 ~ a1 ~",
T: "e1 ~ e1@2 e2@3 e1 c#3 ~ b2@2 a2@2 b2@2",
U: "[d1 ~@3 d2@2 ~ d1 f#1 ~ f#1 ~ f#1 ~@5 e2@5 e1 e1@2 e2@2 e1 f#2 e2 e1, ~ d1@2 ~@4 e1@4 ~@5]/2",
V: "[d1 ~ d1@2 d2@3 d1 e1 ~ e1 ~ e1 ~ f#1@4 f#1@2 f#2 ~ f#2 f#1 b1@4 a1@4]/2", W: "e1@5 e2 ~ e1 b1@4 a1@3 ~",
X: "~@2 e2@2 ~ e2@2 e1 c#2 ~ b1@2 a1@2 b1 ~, e1@3 ~@5",
Y: "[d2@3 d1 d2@2 d1@2 a1 ~ a1 ~ a1@2 ~@4 e2@13 ~, ~@14 e1@17 ~]/2", Z: "a1@2 ~ a1 ~@2 e1@3 e2@4 ~ e1@2",
AA: "e1@3 ~@3 e2@5 e1 e2 b1 e2 e1, ~@3 e1@7 ~@6", AB: "f#1@2 ~ f#1 c#2@2 f#2@3 f#2@2 ~ f#2 c#2 f#1@2",
AC: "f#1@2 ~ f#1 c#2 f#1 f#2@4 c#2@2 f#1 c#2 f#1 ~", AD: "f#1@2 ~ f#1 ~ f#1 f#2@4 f#2 ~ f#2 c#2 f#1 ~, ~@2 c#2 ~@5",
AE: "f#1@4 f#2@2 ~ f#1 c#3@2 b2@2 a2@2 b2 ~",
AF: "[d1 ~@3 d2@2 ~ d1 f#1 ~ f#1 ~ f#1 ~@5 e2@4 ~ e1 e1@2 e2@2 e1 f#2 e2 e1, ~ d1@2 ~@4 e1@4 ~@5]/2",
AG: "e1@5 e2@2 e1 b1@4 a1@3 ~", AH: "d1 ~ d1@2 d2@3 d1 a1 a1@3 a1 ~ a1 ~", AI: "[~@7 e2@8 ~, e1@15 ~]/2",
AJ: "[e1@31 ~]/2",
})).s("gm_electric_bass_finger").gain(0.27)
// chords · epiano2 · "HARD"
const epiano2 = note(`<
~@19 A B C D E F G H I J K L M@2 N@2 O@2 P Q ~@2 R@2 S B T D E F G H I J K L U@2 N@2 O@2 V Q W X Y Z S B C D E F AA H
I J K L M@2 N@2 O@2 V Q M@2 N@2 O@2 V AB@2 ~@7 AC@2
>`.pickRestart({
A: "d2@5 ~ d2@6 ~ d2@2 ~, [a3,d4,e4,f#4]@12 [a3,d4,e4,f#4]@3 ~", // D
B: "[a3,c#4,f#4]@3 ~ a3 ~ [a2,c#4]@6 ~@2 a3 ~, f#2@2 ~ f#2@3 [a3,e4]@7 a2@2 ~, ~@12 c#4@3 ~", // F#m A A5
C: "b3@5 ~@3 b2@4 [b3,d4,f#4]@2 b2 ~, [d4,f#4]@11 ~@5, b2 ~, ~@6 b3@5 ~@5", // Bm D
D: "[a2,a3,c#4,e4]@2 ~ [a2,a3,c#4,e4] ~@2 [e2,g#3,b3,e4]@5 e2 g#3 ~ g#3 ~, ~@12 [b3,e4]@3 ~, ~@13 e2@3", // A E E5
E: "d3@9 ~ d3@2 a3 ~ a3 ~, [a3,d4,f#4]@6 [d4,f#4] ~, ~@13 d3@3", // D
F: "[f#2,a3,c#4,f#4]@6 [a2,a3,c#4,e4]@6 [a3,c#4] ~ [a3,c#4] ~, ~@12 e4@3 ~, ~@13 a2@2 ~", // F#m A
G: "b2@9 ~ b2@2 [b3,d4] ~ b3@2, [b3,d4,f#4]@6 f#4 ~, ~@13 b2@2 ~", // Bm
H: "[d2,d3,a3,d4]@4 [d3,a3] ~ [d3,a3,d4] ~ [e2,e3,b3,e4]@4 e3 e2 [e3,b3,e4] ~, ~@2 d4 ~@3 [b3,e4] ~, ~@5 d2@3 ~@8", // D5 E5
I: "[a2,a3,c#4,e4]@7 a2 ~@4 d2@4, ~@8 [a3,d4,f#4]@7 ~", // A D
J: "[b3,e4,g#4]@7 e2 ~ d2@3 [a3,f#4] ~ a3 ~, e2@5 ~@3 d4@7 ~, ~@8 [a3,f#4]@4 ~ d2@2 ~", // E D
K: "[a2,a3,c#4,e4]@6 a2@2 [d2,a3,d4,f#4]@7 d2", // A D
L: "[e2,b3,e4]@4 b3 ~ b3 ~ c#4@2 b3@2 a3@2 b3 ~, ~@4 e4@3 ~@9, ~@5 e2@3 ~@8", // E5
M: "[a3 ~ a3 ~ [a3,d4,f#4]@2 d2@2 [c#4,e4]@2 a3@2 [c#4,e4] ~ g#3@3 ~ g#3@2 g#3 ~ g#3 ~ c#4@2 b3@2 a3@2 b3 ~, [d2,d4,f#4]@4 ~@4 a2@5 ~ [e2,b3,e4]@6 ~ e2@3 ~@8, ~@8 a3 ~@11 [b3,e4]@4 ~@8]/2", // D C#m D E5
N: "[[d2,a3,d4,f#4]@4 [a3,d4] ~ a3 ~ [c#4,f#4]@2 a3@2 [c#4,f#4] ~ g#3@3 ~ g#3@2 g#3 ~ g#3@2 c#4@2 b3@2 a3@2 b3 ~, ~@4 f#4@3 ~ a3 ~@11 [b3,e4]@4 ~@8, ~@5 d2@3 f#2@5 ~ [e2,b3,e4]@6 ~ e2@7 ~@4]/2", // D D5 F#5 E5
O: "[[d2,a3]@4 ~@2 [a3,d4] ~ [e2,b3,e4]@4 [g#3,b3,e4] ~ [f#2,a3,c#4,f#4]@6 ~@2 a3 ~ [b2,b3,d4,f#4]@4 [a2,a3,c#4,e4]@4, [d4,f#4]@3 ~ [d4,f#4]@2 ~@2 g#3 ~@11 [c#4,f#4]@3 ~@9, ~@5 d2@3 ~@13 f#2@2 ~@9]/2", // D5 E5 E F#m Bm A D F#5
P: "[e2,e4] ~, [g#3,b3]@3 ~@5, d#4 ~@15", Q: "[e2,g#3,b3,e4]@11 e2 g#3 e2 ~@2, ~@6 [b3,e4] ~",
R: "[[d4,f#4]@8 [c#4,e4]@5 ~ [b3,e4]@17 ~]/2", S: "d2@6 d2@6 ~ d2@2 ~, [a3,d4,e4,f#4]@12 [a3,d4,e4,f#4]@3 ~",
T: "b3@6 ~@2 b2@4 [b3,d4,f#4]@2 b2 ~, [d4,f#4]@11 ~@5, b2 ~, ~@6 b3@5 ~@5", // Bm D
U: "[a3 ~ a3 ~ [a3,d4,f#4]@2 d2 ~ [c#4,e4]@2 a3@2 [c#4,e4] ~ g#3@3 ~ g#3@2 g#3 ~ g#3 ~ c#4@2 b3@2 a3@2 b3 ~, [d2,d4,f#4]@4 ~@4 a2@5 ~ [e2,b3,e4]@6 ~ e2@3 ~@8, ~@8 a3 ~@11 [b3,e4]@4 ~@8]/2", // D C#m D E5
V: "[e2,b3,e4] ~, g#3@3 ~@5, d#4 ~@15", // E5
W: "[f#2,c#4]@3 ~ c#4 ~ f#2@7 ~ e4 ~, [f#4,a4]@5 ~ [e4,g#4,b4]@9 ~, ~@3 f#2@2 ~@8 f#2@2 ~", // F#5 F#m E
X: "[f#2,c#4]@3 ~ c#4 ~ [f#2,b3,d4]@6 ~@2 b3 ~, [f#4,a4]@5 ~ g#4@5 ~ g#4@3 ~, ~@3 f#2@2 ~@8 f#2@2 ~", // F#5 Bm F#m
Y: "[f#2,c#4]@3 ~ c#4 ~ [f#2,g#4]@4 f#2@2 ~@2 b3 ~, [f#4,a4]@5 ~ d4@9 ~, ~@3 f#2@2 ~ b3@6 g#4@3 ~, ~@13 f#2@2 ~", // F#5 F#sus2 F#m
Z: "[a3,c#4,f#4]@6 a3@6 ~@2 c#4 ~, f#2@10 ~@2 f#2@3 ~, ~@6 [c#4,f#4]@7 a3@2 ~", // F#m F#5
AA: "b2@9 ~ b2@2 [b3,d4] ~ b3 ~, [b3,d4,f#4]@6 f#4 ~, ~@13 b2@2 ~", AB: "[[e2,g#3,b3,e4]@31 ~]/2",
AC: "[[e2,b3,e4,g#4]@15 ~]/2", // E
})).s("gm_epiano2").gain(0.14).pan(0.6)
// chords · rock organ · "ORGAN"
const rock_organ = note("<~@27 A@4 ~@5 B C ~ D E D ~@9 A@4 ~@5 B F G ~@12 A@4 ~@5 B C ~@6 B F H@2 ~@9>".pickRestart({
A: "[a6@55 ~@9]/4", B: "~@2 [d5,f#5] [c#5,e5]", C: "[b4,e5]@8 [d5,f#5]@4 [c#5,e5]@3 ~", D: "f#5@3 ~",
E: "~@4 c#6 b5 a5 b5", F: "[b4,e5]@2 [d5,f#5] [c#5,e5]", G: "[b5,e6]@15 ~", H: "[[e5,g#5,b5]@3 ~]/2",
})).s("gm_rock_organ").gain(0.18)
// other · distortion guitar · "DIST GT"
const distortion_guitar = note("<~@66 A B C D E F G ~@32>".pickRestart({
A: "~@14 e3 f#3", B: "a3@3 ~ f#3 e3 f#3@8 e3 f#3", C: "b3@4 a3 b3 a3@4 ~@2 b4@4",
D: "b4@3 a4 b4@3 a4 b4 a4 b4@3 a4 b4 ~, a4 ~@15", E: "b4@2 d5 b4@2 a4 b4@4 a4 [a4,b4] g#4 e4 c#4@2",
F: "f#4@7 ~@2 c#4 e4 f#4 a4 f#4 b4 a4", G: "b4@2 d5 b4@2 a4 e5 ~ e5@3 ~@5",
})).s("gm_distortion_guitar").gain(0.26).pan(0.3)
// chords · acoustic guitar steel · "12 GT"
const acoustic_guitar_steel = note(`<
A B@2 C@2 D@2 E F ~ G H I J K L M N O G P I J K Q R S T U V W X@2 Y@2 Z@2 AA AB B@2 C@2 G P I AC AD Q R S T U V W X@2
Y@2 Z@2 AE AF AG@3 AH AI P I AC AJ Q R S T U V W X@2 AK@2 AL@2 AE AB X@2 Y@2 Z@2 AA ~ AM AN@2 AO@2 AP@2 AQ AR ~
>`.pickRestart({
A: "~@8 c#5@2 b4@2 a4@2 b4 ~",
B: "[[d3,d4,f#4]@3 d3 ~@2 a3@2 [c#4,e4]@2 a3@2 [c#4,e4] ~@7 [g#3,b3,e4]@2 ~@4 b3@2 ~@2 [g#3,b3] ~, ~@4 [d4,f#4]@2 ~@2 a3 ~@5 [g#3,b3,e4]@6 ~@3 e3@2 e4@5 ~@2, ~@5 d3@3 ~@10 e2@8 ~@2 e2@3 ~, ~@24 g#3@5 e3@2 ~]/2", // D C#m E G#m D E
C: "[[d3,d4,f#4]@3 d3 ~@2 a3@2 [c#4,e4]@2 a3@2 [c#4,e4] ~@7 [g#3,b3,e4]@2 ~@4 b3@2 ~@2 [g#3,b3] ~, ~@4 [d4,f#4]@3 ~ a3 ~@5 [g#3,b3,e4]@6 ~@3 e3@2 e4@5 ~@2, ~@5 d3@3 ~@10 e2@8 ~@2 e2@3 ~, ~@24 g#3@5 e3@2 ~]/2", // D C#m E G#m D E
D: "[[d3,f#4]@3 a3 ~@2 a3@2 e4@2 g#3@2 [b3,e4] ~ a3@2 ~@2 a3 ~@3 a3@2 [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~, d4@2 ~@2 [d4,f#4]@2 ~@2 g#3 ~@5 [f#3,c#4]@6 [c#4,f#4]@4 ~@8, ~@5 d3@3 e3@5 ~@8 f#3@3 ~@8]/2", // D E5 D A D F#5
E: "[b3,e4]@2 g#3 [g#3,b3,e4]@2 e3 [g#3,b3,e4] e3 [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~, e3 ~@3, g#3 ~@15", // E5 E D A
F: "[b3,e4] ~@2 g#3 ~@4, e3@5 e3@5 ~@6, g#3 ~ g#3@4 ~@10, ~@3 [b3,e4]@4 ~@9", // E5
G: "a3@2 ~@3 d4 [a3,d4,f#4]@3 ~ a3 ~ [a3,d4,f#4]@2 d3@2, [d4,f#4]@2 a3 ~@5, d3 ~ d3@6 ~ d3@4 ~@3", // D
H: "[f#2,a3,c#4,f#4]@3 f#2 [a3,c#4,f#4] ~ [a3,c#4,e4]@3 ~@2 a2 ~@2 a3 ~, ~@6 a2@2 ~ a2@2 ~@2 a2@2 ~, ~@5 [a3,e4] [a3,c#4,e4] ~", // F#m A A5 A
I: "[a3,d4,f#4]@3 ~ a3@2 ~ a3@2 ~ a3@2 [a3,d4,f#4]@2 ~ a3, b2@2 [d4,f#4]@3 ~@3, ~@6 b2@3 b2@4 ~ b2@2", // D
J: "[a2,a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 a2 g#3@4 ~@4 e3 ~, ~@6 [e2,b3,e4]@6 [g#3,b3,e4]@3 ~, ~@10 e3@3 e2@2 ~", // A E5 E
K: "[d3,a3]@3 ~ a3@2 [a3,d4,f#4]@3 ~ a3 ~ [a3,d4] ~ a3 ~, [d4,f#4]@5 ~@7 f#4@3 ~, ~@3 d3@5 ~ d3@4 d3@3", // D5 D D5 D
L: "[a3,c#4,f#4]@3 ~ a3 c#4 [a3,c#4,e4]@3 [a3,c#4,e4]@2 a2 ~@2 a3 ~, f#2@2 ~ f#2@3 a2@5 ~ [a3,c#4,e4]@2 ~@2, ~@13 a2@2 ~", // F#m A
M: "[b2,f#4]@4 f#4@2 ~ [b3,d4,f#4]@2 ~ b3@2 ~@2 b3@2, [b3,d4]@6 b2@2 ~ b2@3 [b3,d4,f#4]@2 ~@2, ~@13 b2@3", // B5 Bm
N: "a3@3 a3@2 f#2 [a3,c#4,f#4] f#2 [a2,a3,c#4,e4]@3 ~ [b2,f#3,b3,d#4]@3 ~, [f#2,c#4,f#4]@5 ~@11", // F#m A B F#5
O: "a3@3 ~ a3@2 [a3,c#4,f#4]@3 ~@2 a3 ~ f#2 f#3 ~, f#2@8 ~ f#2@3 ~@4, [c#4,f#4]@5 ~@7 [a3,c#4,f#4]@2 ~@2, ~@3 f#3@6 ~ f#3@3 ~@3", // F#m F#5 F#m
P: "[f#2,a3,f#4]@3 f#2 [a3,c#4,f#4] f#2 [a3,c#4,e4]@4 a2@2 ~@2 a3 ~, c#4 ~@5 a2@3 ~@3 [a3,c#4,e4]@2 ~@2, ~@13 a2@2 ~", // F#m A
Q: "[f#2,a3,c#4,f#4]@2 ~ [a3,c#4,f#4]@2 f#2 a3@3 ~ a3@2 ~@3 c#4, ~@3 [a2,c#4,e4]@3 e4@2, ~@13 a2@3, ~@7 a3", // F#m A
R: "[b3,d4,f#4]@4 b3 ~ [b3,d4,f#4]@4 b2@2 [b3,d4,f#4] ~ b3 ~, b2@9 ~@4 b2@3", // Bm
S: "[a3,d4,f#4]@3 ~@3 a3 ~ g#3@2 e3@2 ~ e2 e3 g#3, d3@4 [d4,f#4]@2 ~@6 [g#3,b3,e4]@3 ~, ~@3 a3@2 d3@2 ~ [e2,b3,e4]@4 ~@4", // D E E5
T: "a3@2 ~@2 [a3,c#4,e4]@3 a2 d3 c#4 ~@2 [f#3,a3,d4]@3 d3, a2 ~ a2@4 ~@3 [f#3,a3,d4]@3 ~@4, ~@5 d3@2 ~", // A D
U: "~@2 g#3@2 [g#3,b3,e4]@3 e3 d3 ~ d3@2 f#3 ~ f#3@2, e3@4 c4 ~@4 [f#3,a3,d4]@3 [a3,d4]@4, ~@13 d3@3", // E D D5
V: "a2 ~ a2@2 [a3,c#4,e4]@3 a2 d3 ~@3 [f#3,a3,d4]@3 d3, ~@9 [f#3,a3,d4]@3 ~@4, ~@5 d3@2 ~", // A D
W: "g#3@2 g#3 ~ g#3 ~ g#3 ~ c#4@2 b3@2 a3@2 b3 ~, [e2,b3,e4]@4 [b3,e4]@3 ~@9, ~@5 e2@3 ~@8", // E5
X: "[[d3,a3,f#4]@3 ~@3 a3@2 c#4@2 a3@2 [c#4,e4] ~ [g#3,b3]@4 g#3 ~ g#3 ~@2 b3 c#4@2 b3@2 a3@2 b3 ~, ~@4 [a3,d4,f#4]@2 ~@2 a3 ~@5 [e3,e4]@6 [b3,e4]@4 ~@8, ~@5 d3@3 [a2,e4]@4 ~@9 e3@3 ~@8, ~@11 g#3 ~@4]/2", // D C#m G#m D E E5 A5
Y: "[[d3,a3,d4,f#4]@3 ~@3 a3@2 [c#4,f#4]@2 a3@2 [c#4,f#4] ~@5 e2@2 ~@2 e3@2 c#4@2 b3@2 a3@2 b3 ~, ~@4 [a3,f#4]@2 ~@2 a3 ~@5 [g#3,b3,e4]@6 [b3,e4]@3 ~@9, ~@5 d3@3 f#2@4 ~@9 e2@3 ~@8]/2", // D F#5 D E E5
Z: "[[d3,a3,d4,f#4]@4 [a3,d4,f#4] ~ a3 ~ b3@2 g#3@2 [b3,e4] ~ [c#4,f#4]@4 a3@2 [a3,c#4,f#4]@4 [b3,d4,f#4]@3 b2 ~@2 [a3,c#4] ~, ~@5 d3@3 [e2,e4]@4 ~@2 f#2@10 b2 ~@4 a2@3, ~@8 g#3 ~@5 a3@3 ~@11 [a3,c#4,e4]@2 ~@2]/2", // D E5 F#5 F#m Bm A E A
AA: "[b3,e4]@7 ~ [b3,d4,f#4]@3 b2 a3 ~ a3 ~, g#3@5 ~@3 b2@2 ~@2 [c#4,e4]@3 ~, ~@13 a2@3", // E5 Bm C#m
AB: "g#3@2 e3@3 [g#3,b3,e4]@2 ~ c#4@2 b3@2 a3@2 b3 ~, [e2,b3,e4]@5 ~@2 e2@7 ~@2", // E E5
AC: "[a2,a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 a2 g#3@4 e3@2 ~@2 e3 ~, ~@6 [e2,b3,e4]@6 [g#3,b3,e4]@3 ~, ~@13 e2@2 ~", // A E5 E
AD: "[d3,a3]@3 ~ a3@2 [a3,d4,f#4]@3 ~ a3 ~ [a3,d4] ~ a3 ~, [d4,f#4]@5 ~@7 f#4@3 ~, ~@3 d3@5 ~ d3@3 ~ d3@3", // D5 D D5 D
AE: "[b3,e4]@7 ~ [b3,d4,f#4]@3 b2 a3 ~ a3 ~, g#3@5 ~@3 b2@2 ~@2 [c#4,e4]@3 ~, ~@13 a2@2 ~", // E5 Bm C#m
AF: "~@2 [g#3,b3]@13 ~, e3@15 ~", // G#m
AG: "[f#2@3 ~@3 b3 ~@3 b3@2 ~@4 f#2@3 ~@3 b3@2 ~@5 b3 d4 ~ f#2@3 ~@3 b3@2 ~@2 b3@2 ~@2 b3 ~, ~@3 b3@2 f#2@3 f#4@2 ~@2 f#4@8 d4@3 ~ d4@2 ~ f#4@2 ~@7 d4@3 ~ d4@3 ~ d4@2 ~@2, ~@4 f#4@2 ~ b3@2 f#2@4 f#2@3 ~@5 f#2@3 ~ f#2@3 f#2@3 ~@6 f#2@3 ~ f#2@3 ~ f#2@2 ~, ~@14 b3@4 ~ b3@2 ~@5 b3@3 ~@2 b3@3 ~ b3@2 ~@11]/3",
AH: "~@8 c#4@2 b3@2 a3@2 b3 ~, f#2, ~ f#3@7",
AI: "a3@2 ~@3 d4 [a3,d4,f#4]@3 ~ a3 ~ [a3,d4,f#4]@2 d3@2, [d4,f#4]@2 a3 ~@5, d3 ~ d3@6 ~ d3@3 ~@4", // D
AJ: "[d3,a3]@3 ~ a3@2 [a3,d4,f#4]@3 ~ a3 ~ a3 ~ a3 ~, [d4,f#4]@5 ~@7 [d4,f#4]@3 ~, ~@3 d3@5 ~ d3@3 ~ d3@3", // D5 D
AK: "[[d3,a3,d4,f#4]@3 ~@3 a3@2 [c#4,f#4]@2 a3@2 [c#4,f#4] ~ [g#3,b3,e4]@4 e2@2 ~@2 e3@2 c#4@2 b3@2 a3@2 b3 ~, ~@4 [a3,f#4]@2 ~@2 a3 ~@11 [b3,e4]@3 ~@9, ~@5 d3@3 f#2@4 ~@9 e2@3 ~@8]/2", // D F#5 E D E5
AL: "[[d3,a3,d4,f#4]@4 ~@2 a3 ~ b3@2 g#3@2 [b3,e4] ~ [c#4,f#4]@4 a3@2 [a3,c#4,f#4]@4 [b3,d4,f#4]@3 b2 ~@2 [a3,c#4] ~, ~@4 [a3,d4,f#4]@2 ~@2 g#3 ~@5 a3@3 ~@11 [a3,c#4,e4]@2 ~@2, ~@5 d3@3 [e2,e4]@4 ~@2 f#2@10 b2 ~@4 a2@3]/2", // D E5 F#5 F#m Bm A D A …
AM: "~@8 c#3@2 b2@2 a2@2 b2 ~",
AN: "[[d3,d4,f#4]@3 d3 ~@2 a3 ~ [c#4,e4]@2 a3@2 [c#4,e4] ~ [b3,e4]@4 e3@2 ~ e3@3 [c#3,c#4]@2 [b2,b3]@2 [a2,a3]@2 [b2,b3] ~, a3@4 [d4,f#4]@2 ~@2 a3 ~@11 [b3,e4]@3 ~@9, ~@5 d3@3 a2@5 ~ e2@8 ~@10]/2", // D C#m E5 C# B A B D …
AO: "[[d3,a3,d4,f#4]@3 d3 ~@2 a3@2 [a2,a3] ~ a2@2 [a3,c#4,e4] ~ [e2,b3,e4]@4 ~@2 [g#3,b3,e4]@2 e2 e3 [c#3,c#4]@2 [b2,b3]@2 [a2,a3]@2 [b2,b3] ~, ~@2 [a3,d4,f#4] ~ [c#4,e4]@2 ~@10, ~@5 d3@3 ~@10 [e2,e3]@4 ~@10]/2", // D A E5 E C# B A B …
AP: "[[d3,a3,d4,f#4]@3 d3 [a3,d4,f#4] ~ a3 ~ e3 ~ e3@2 b3 ~ a3@4 f#3@2 ~@3 a3 [b2,b3,d4,f#4]@4 [a2,a3,c#4]@4, ~@5 d3@3 [b3,e4,g#4]@4 ~@2 [f#2,c#4,f#4]@6 [a3,c#4,f#4]@2 f#3@2 ~@4 e4@2 ~@2, ~@21 f#2@2 ~@9]/2", // D Bm A E F#5 F#m
AQ: "[g#3,b3,e4]@5 ~ [g#3,e4] ~ [b2,b3,d4,f#4]@3 ~ [a2,a3,c#4,e4]@4, e2 ~, ~@5 e3@3 ~@8", AR: "[e2,e3,g#3,b3,e4]",
})).s("gm_acoustic_guitar_steel").gain(0.17)
// drums · kick
const kick = s("bd").struct(`<
~@19 A@6 B C D@8 E F G H I ~ J ~ K L K M L N K O D@8 E F G H K P Q R A@3 N A P S C D@8 E F G H T D@3 E F G O ~@10
>`.pickRestart({
A: "x ~@2 x ~@2 x ~@3 x ~@5", B: "x ~@2 x!2 ~@3", C: "x ~ x ~@3 x ~@6 x ~@2", D: "x ~@7 x ~ x ~@4 x",
E: "x ~@8 x ~@4 x ~", F: "~@2 x ~@5 x ~@2 x ~@4", G: "x ~@6 x!2 ~@2 x ~@4", H: "x ~@6 x", I: "x ~@6 x!2 ~ x ~@3 x ~",
J: "x ~@3 x!2 ~ x", K: "x ~@2 x ~ x ~@2", L: "x ~@5 x ~@3 x ~@4 x", M: "x ~@2 x ~@4", N: "x ~@2 x ~@2 x ~@3 x ~@4 x",
O: "x", P: "x ~@2 x ~@2 x ~@9", Q: "x ~@2 x ~@2 x ~@8 x", R: "x ~@6 x ~@3 x ~@4", S: "x ~@2 x!3 ~ x",
T: "x ~@8 x!2 ~@4 x",
})).gain(0.42)
// drums · rim
const rim = s("rim").struct("<~@19 [~ x ~ x]!6 [~ x ~@2] ~@79>").gain(0.36)
// drums · snare
const snare = s("sd").struct(`<
~@25 A B C@8 D E F G H I H ~ H@3 J H@3 K C@8 D E F G L M N O H@5 P H B C@8 D E F G D C@3 D E F ~@11
>`.pickRestart({
A: "~@3 x", B: "~@4 x ~@3 x!2 ~ x ~@4", C: "~@4 x ~@2 x ~ x ~@2 x ~@3", D: "~@4 x ~@2 x ~@4 x ~@3",
E: "~@4 x!4 ~@4 x ~@3", F: "~@4 x!2 ~@6 x ~@3", G: "~@11 x!2 ~@3", H: "~ x ~ x", I: "~@4 x!2 ~ x ~@8",
J: "~@4 x ~@4 x ~ x ~@4", K: "~@3 x ~@2 x!2 ~@8", L: "~@4 x ~@7 x!2 ~ x", M: "~@4 x ~@5 x!2 ~@4",
N: "~@4 x ~@7 x!2 ~@2", O: "~@2 x ~@2 x ~@2 x ~@3 x!2 ~@2", P: "~@4 x ~@4 x ~@2 x!2 ~@2",
})).gain(0.48)
// … 54 more lines
More by Fiorello
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.