0:00/0:00
// Lasciarsi per amore — Morandi
// 55 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 58 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 25.
setcpm(55/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.
// other · string ensemble 1
const string_ensemble_1 = note("<A B ~@29 C D C E F G@2 ~@4 H I J K L M N O P Q R A S@4>".pickRestart({
A: "~@9 [a3,a4] [g#3,g#4] [e3,e4]", B: "[f#3,f#4]", C: "[d4,d5]@2 [a4,a5] [g4,g5]", D: "[b3,b4]@5 [a3,a4] [c4,c5]@6",
E: "[b4,b5]@2 [a4,a5] [b3,b4]", F: "[e4,e5]@4 [f#4,f#5] [e4,e5] [g4,g5]@3 [b3,b4]@3",
G: "[[c4,c5]@8 [b3,b4]@2 [a3,a4]@2 [c4,c5]@8 [b3,b4]@2 [a3,a4]@25 ~]/2", H: "~ [e5,e6]",
I: "[b5,b6]@3 [a5,a6]@3 [c#5,c#6]@5 [b4,b5]", J: "[d5,d6] [e5,e6]", K: "[b5,b6] [a5,a6] [c#6,c#7]@2",
L: "[b5,b6]@3 [c#5,c#6]@3 [f#5,f#6]@4 [g#5,g#6] [f#5,f#6]", M: "[a5,a6]@3 [c#5,c#6]@3 [d5,d6]@4 [c#5,c#6] [b4,b5]",
N: "[d5,d6]@3 [c#5,c#6]@3 [a4,a5]@4 [g#4,g#5] [f#4,f#5]", O: "[a4,a5]@6 [d5,d6]@5 [a4,a5]",
P: "[e5,e6]@4 [d5,d6] [c#5,c#6] [d5,d6] [c#5,c#6] [a4,a5] [d5,d6] [c#5,c#6] [a4,a5]", // E D C# D C# A D C# …
Q: "[d5,d6] [c#5,c#6] [a4,a5] [d5,d6] [c#5,c#6] [a4,a5] [c#5,c#6]@6", R: "[b4,b5] ~",
S: "[[f#3,f#4]@26 [a3,e4]@47 ~@23]/4", // F# A5
})).s("gm_string_ensemble_1").gain(0.18)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@22 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB ~@8>".pickRestart({
A: "~@6 [a3,d4,e4]@3 [f#3,a3]!2 ~@7 [a3,d4,e4]@3 [f#3,a3]!2 ~, d3@11 ~ b2@11 ~, ~ f#3 ~@2 f#3 ~", // Asus4 F#m Asus4 F#m
B: "[b3,f#4]@3 [b3,f#4]!2 ~ [b3,f#4]@3 [b3,f#4]!2 ~ [d4,g4]@4 [d4,g4]@2 [d4,g4]@3 [c#4,e4] [c#4,e4,g4] ~, g3!2 a3!2", // B5 G5 C#m C#dim
C: "[d4,e4]@4 ~@2 [a3,d4,e4]@3 a3 [f#3,a3] ~@7 [a3,d4,e4]@3 [f#3,a3] a3 ~, d3@11 ~ b2@11 ~, ~@2 f#3@2 ~@2 [d4,e4]@3 ~@3, ~@4 f#3 ~", // Dsus2 Asus4 F#m Asus4 F#m Dsus2
D: "[b3,f#4]@3 f#4 [b3,f#4] ~ [b3,f#4]@3 [b3,f#4]!2 ~ [c#4,e4]@4 [c#4,e4]@2 [c#4,e4]@3 [a#3,c#4]!2 ~, g3!3 f#3", // B5 C#m A#m
E: "~@6 [b3,d4,f#4]@3 [f#3,b3]!2 ~@7 [a3,d4,e4]@3 [f#3,a3] a3 ~, b2@11 ~ a2@11 ~, ~ f#3 ~@2 f#3 ~", // Bm B5 Asus4 F#m
F: "[d4,f#4]@3 [d4,f#4]!2 ~ [d4,f#4]@3 [d4,f#4]!2 ~ [c#4,f4]@4 [c#4,f4]@2 [c#4,f4]@3 [c#4,f4]!2 ~, b2@11 ~ [c#3,g#3]@6 [f3,g#3]@6, b3!2 ~@2", // D C# C#5 Fm
G: "[c#4,f#4]@4 ~@2 [a3,c#4,f#4]@3 [f#3,a3] a3 ~@7 [a3,c#4,f#4]@3 [f#3,a3]!2 ~, f#2@11 ~ e2@11 ~, ~@2 f#3@2 ~@2 [c#4,f#4]@3 ~@3, ~@4 f#3 ~", // F#5 F#m F#5
H: "[c#4,f#4]@3 [c#4,f#4]!2 ~ [c#4,f#4]@3 f#4 [c#4,f#4] ~ [b3,e4,g4]@4 [b3,e4,g4]@2 [b3,e4,g4]@3 [b3,e4,g4] [b3,g4] ~, f#2@11 ~ e2@11 ~, a3!2 ~@2", // F#5 Em
I: "[b3,e4,g4]@4 [b3,e4,g4]@2 [b3,e4,g4]@3 [b3,g4] [b3,e4] ~ [c4,e4,g4]@4 [c4,e4,g4]@2 [c4,e4,g4]@3 [e4,g4] [c4,e4,g4] ~, d2@11 ~ d2@11 ~, g3!4", // Em E5 C Em C
J: "[b3,d4,g4]@3 [b3,d4]!3 [d4,g4]@2 [d4,g4]@2 [b3,d4] ~ [g3,b3,e4]@3 [g3,b3]!3 [b3,e4]@2 [b3,e4]@2 [g3,b3] ~, ~@3 b3@2 ~@4 g3@2 ~", // G Bm G5 Bm Em G E5 G
K: "[g3,c4,e4]@3 [g3,c4]!3 [c4,e4]@2 [c4,e4]@2 [g3,c4] ~ [a3,d4,f#4]@3 a3 [a3,d4]!2 [d4,f#4]@2 [d4,f#4]@2 [a3,d4] ~, ~@3 g3@2 ~@4 a3@2 ~", // C C5 C C5 D D5 D D5
L: "[b3,d4,g4]@3 [b3,d4]!3 [d4,g4]@2 [d4,g4]@2 [b3,d4] ~ [g3,b3,e4]@3 [g3,b3]!2 g3 [b3,e4]@2 [b3,e4]@2 [g3,b3] ~, ~@3 b3@2 ~@4 g3@2 ~", // G Bm G5 Bm Em G E5 G
M: "[g3,c4,e4]@2 [g3,c4]!4 [c4,e4]@2 [c4,e4]@2 [g3,c4] ~ [c4,e4,f#4]@2 [c4,e4] c4 [c4,e4]!2 [d#4,f#4]@2 [d#4,f#4]@2 [a3,d#4] ~, ~@3 g3@2 ~@4 a3@2 ~", // C C5 C C5 F#m7b5 C D#m Adim
N: "[b3,e4,g4]@3 [b3,e4]!2 e4 [e4,g4]@2 [e4,g4]@2 [b3,e4] ~ [g3,b3,e4]@3 [g3,b3]!3 [b3,e4]@2 [b3,e4]@2 [g3,b3] ~, ~@3 b3@2 ~@4 g3@2 ~", // Em E5 Em E5 Em G E5 G
O: "[a3,c4,e4]@3 [a3,c4]!3 [c4,e4]@2 [c4,e4]@2 [a3,c4] ~ [g3,c4,e4]@3 [g3,c4]!2 c4 [c4,e4]@2 [c4,e4]@2 [g3,c4] ~, ~@3 a3@2 ~@4 g3@2 ~", // Am C Am C C5 C C5
P: "[a3,d4,g4]@3 [a3,d4]!2 a3 [d4,g4]@2 [d4,g4]@2 [a3,d4] ~ [a3,d4,f#4]@3 [a3,d4] d4 [a3,d4] [d4,f#4]@2 [d4,f#4]@2 [a3,d4] ~, ~@3 a3@2 ~@4 a3@2 ~", // Dsus4 D5 G5 D5 D D5 D D5
Q: "[b3,d4,g4]@2 [b3,d4]!3 b3 [d4,g4]@2 [d4,g4]@2 [b3,d4] ~ [a3,d4,f#4]@2 [a3,d4]!4 [d4,f#4]@2 [d4,f#4]@2 [a3,d4] ~, ~@3 b3@2 ~@4 a3@2 ~", // G Bm G5 Bm D D5 D D5
R: "[g3,b3,e4]@2 [g3,b3]!4 [b3,e4]@2 [b3,e4]@2 [g3,b3] ~ [g3,b3,d4]@2 [g3,b3]!3 g3 [b3,d4]@2 [b3,d4]@2 [g3,b3] ~, ~@3 g3@2 ~@4 g3@2 ~", // Em G E5 G Bm G
S: "[g3,c4,e4]@2 [g3,c4]!4 [c4,e4]@2 [c4,e4]@2 [g3,c4] ~ [g3,b3,d4]@2 [g3,b3] b3 [g3,b3] g3 [b3,d4]@2 [b3,d4]@2 [g3,b3] ~, ~@3 g3@2 ~@4 g3@2 ~", // C C5 C C5 G Bm G
T: "[a3,c4,e4]@2 [a3,c4]!4 [c4,e4]@2 [c4,e4]@2 [a3,c4] ~ [b3,e4,a4]@2 [b3,e4] b3 [b3,e4]!2 [e4,a4]@2 [e4,a4]@2 [b3,e4] ~, ~@3 a3@2 ~@4 b3@2 ~", // Am C Am Esus4 E5 A5 E5
U: "[b3,e4,g#4]@2 [b3,e4]!3 b3 [e4,g#4]@2 [e4,g#4]@2 [b3,e4] ~ [c#4,e4,a4]@3 e4 [c#4,e4]!2 [e4,a4]@2 [e4,a4]@2 [c#4,e4] ~, ~@3 b3@2 ~@4 c#4@2 ~", // E E5 E E5 A C#m A5 C#m
V: "[a3,c#4,f#4]@3 [a3,c#4]!3 [c#4,f#4]@2 [c#4,f#4]@2 [a3,c#4] ~ [a3,d4,f#4]@3 [a3,d4]!3 [d4,f#4]@2 [d4,f#4]@2 [a3,d4] ~, ~@3 a3@2 ~@4 a3@2 ~", // F#m A F#5 A D D5 D D5
W: "[b3,e4,g#4]@3 [b3,e4]!3 [e4,g#4]@2 [e4,g#4]@2 [b3,e4] ~ [c#4,e4,a4]@3 [c#4,e4]!3 [e4,a4]@2 [e4,a4]@2 [c#4,e4] ~, ~@3 b3@2 ~@4 c#4@2 ~", // E E5 E E5 A C#m A5 C#m
X: "[a3,c#4,f#4]@3 [a3,c#4]!3 [c#4,f#4]@2 [c#4,f#4]@2 [a3,c#4] ~ [a3,d4,f#4]@2 d4 [a3,d4]!3 [d4,f#4]@2 [d4,f#4]@2 [a3,d4] ~, ~@3 a3@2 ~@4 a3@2 ~", // F#m A F#5 A D D5 D D5
Y: "[d4,f#4,g#4]@2 [d4,f#4]!4 [f4,g#4]@2 [f4,g#4]@2 [b3,f4] ~ [c#4,f#4,a4]@3 [c#4,f#4]!3 [f#4,a4]@2 [f#4,a4]@2 [c#4,f#4] ~, ~@3 b3@2 ~@4 c#4@2 ~", // G#m7b5 D Fm Bdim F#m F#5 F#m F#5
Z: "[a3,c#4,f#4]@3 [a3,c#4] c#4!2 [c#4,f#4]@2 [c#4,f#4]@2 [a3,c#4] ~ [b3,d4,f#4]@3 d4 [b3,d4] d4 [d4,f#4]@2 [d4,f#4]@2 [b3,d4] ~, ~@3 a3@2 ~@4 b3@2 ~", // F#m A F#5 A Bm D Bm
AA: "[b3,d4,f#4]@3 b3 [b3,d4]!2 [c#4,f4]@2 [c#4,f4]@2 [g#3,c#4] ~ [c#4,f#4,a4]@3 [c#4,f#4]!3 [f#4,a4]@2 [f#4,a4]@2 [c#4,f#4] ~, ~@3 g#3@2 ~@4 c#4@2 ~", // Bm C# C#5 F#m F#5 F#m F#5
AB: "[b3,e4,g#4]@3 [b3,e4]!3 [e4,g#4]@2 [e4,g#4]@2 [b3,e4] ~@13, ~@3 b3@2 ~@7", // E E5 E E5
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0)
// other · french horn
const french_horn = note("<~@38 A B C D@2 E F G H I J K ~@8>".pickRestart({
A: "[b3,b4] [d4,d5] [a3,a4] [d4,d5]", B: "[g3,g4]@6 [d4,d5]@5 ~ [g3,g4]@12", C: "[e3,e4] [g3,g4] [d3,d4] [g3,g4]",
D: "[[e3,e4]@5 ~ [e3,e4]@2 [f#3,f#4] [g3,g4]@2 [a3,a4] [b3,b4]@23 ~ e4@12]/2", E: "b4@3 a4@3 c#4@5 b3", F: "d4 e4",
G: "b4 a4 c#5@2", H: "b4@3 c#4@3 f#4@4 g#4 f#4", I: "a4@3 c#4@3 d4@4 c#4 b3", J: "d4@3 c#4@3 a4@4 g#4 f#4", K: "a4 ~",
})).s("gm_french_horn").gain(0.31).pan(0.6)
// chords · synth strings 1
const synth_strings_1 = note("<A@2 B@2 C@2 D@2 E@6 F@8 G@6 H@3 I@6 J K L@2 M@5 N@4 O P Q R S@4>".pickRestart({
A: "[a2 f#2 d2 [e2,b3], g#3@3 ~, a3@23 ~ a3@23 ~]/2", B: "[a3@12 ~@12 a3@11 b3@13, [g#3,c#4] ~, ~ f#3@3]/2",
C: "[a3 ~@2 [e3,b3], [g#3,c#4] a3, ~ f#3@3]/2", D: "[g#3@23 ~@12 b3@13, [c#4,e4], a3@3 ~, ~@23 f#3@24 ~]/2",
E: "[g#3@23 f#3@12 ~@7 f4@5 ~ [a3,f#4]@35 ~ [c4,d#4]@12 [c#4,e4]@35 ~ b3@12, e4@41 g#4@6 a4@36 g#4@48 ~@13, [a3,c#4]@35 g#3@7 c#4@42 ~@47 [f#3,d4,f#4]@13, ~@36 b3@13 ~@35 g#3@48 ~@12, ~@36 [d4,f#4]@7 ~@101]/6", // D Cm C#m A D
F: "[[g3,g4]@12 ~@11 a3@24 ~@12 g4@12 [a3,c#4]@24 ~@12 g4@7 [a#3,c#4]@5 d4@24 e4@12 d4@12 ~ e4@23 ~, ~@12 c#4@36 ~@95 g4@24 ~@25, ~@12 [e3,e4,a4]@13 ~@22 [b3,d4]@24 ~@24 [b3,d4]@19 ~@5 b3@49 ~@24, ~@23 f#4@36 ~@12 f#4@36 ~@7 f#4@30 ~@23 [c#4,a4]@24 ~]/8", // G A A#m A5 Bm F#m
G: "[a3@24 f#4@12 g4@12 a3@24 ~@11 g4@7 a#3@6 [b3,d4]@36 [g#3,c#4,f4,g#4]@12, d4@95 ~@49, ~@4 b3@4 f#4@6 ~ f#4@7 ~@2, ~@4 b3 ~@3]/6", // Bm C#
H: "[[a3,c#4,f#4]@36 b3@12 [a3,c4]@23 ~, ~ [g3,e4]]/3", // F#m Am C
I: "[d3@12 e3@24 a3@11 ~@37 c4@5 d#3@6 g3@24 a3@12 g3@12 ~, g3@47 [g3,b3]@37 f#3@11 e3@49, b3@36 d3@24 e3@29 b3@30 c4@25]/6", // G
J: "g4 f#4, [a3,d4]", K: "[g3,b3] [f#3,a3], d4", L: "[b3@2 c4 [d3,b3], g3, e3@3 ~]/2",
M: "[[e3,a3,c4]@12 [a3,b3]@12 [g#3,b3]@12 e3@12 f#3@24 b3@11 ~@13 f#3@24, ~@12 e4@24 a3@47 [a3,c#4]@37, ~@36 c#4@36 e3@25 ~@23]/5", // Am Asus2 G#m A
N: "[d4@5 f3@6 [f#3,a3]@24 d4@12 ~ d4@5 ~ f4@6 f#3@12 e3@12 [b2,f#3]@12, g#3 ~@4 [a3,c#4]@2 ~, ~@5 c#4@30 [b3,f#4]@18 [c#4,g#4]@6 ~@37]/4", // F#m B5 A B5 C#5
O: "[c#3,g#3]@2 [b2,f#3] [c#3,g#3]", P: "[d3,a3] [b2,e3] [d3,c#4]@2", Q: "[e3,b3] ~", R: "a2 f#2, [g#3,a3]",
S: "[[d3,f#3]@12 b3@14 a2@47 ~@23, a3@73 ~@23, ~@12 e3@61 ~@23]/4", // D
})).s("gm_synth_strings_1").gain(0.1)
// other · string ensemble 2
const string_ensemble_2 = note("<A@3 ~@11 B@8 C D E F G H I J K ~@22 L@5>".pickRestart({
A: "[a3@11 ~@12 [e3,a3]@28 ~@21, e4@17 ~@7, c#4@23 ~@49, ~@11 f#3@40 ~@21]/3", // A5
B: "[[b3,d4,g4]@12 [c#4,e4,a4]@11 [a3,d4]@24 ~@12 g4@12 [a3,d4]@24 ~@12 g4@6 [a#3,c#4]@6 d4@24 e4@12 d4@12 [c#4,e4,a4]@24 ~, ~@23 f#4@36 ~@12 f#4@36 ~@6 f#4@30 g4@24 ~@25, ~@47 [b3,d4]@24 ~@24 [b3,d4]@19 ~@5 b3@49 ~@24]/8", // G A D5 A#m A Bm
C: "~@9 [d4,d5] [c#4,c#5] [a3,a4]", D: "[b3,b4]@2 [d4,d5] [c#4,c#5]", E: "[e4,e5]@6 [d4,d5]@4 [c#4,c#5] [a3,a4]",
F: "[b3,b4]@2 [d4,d5] [f#4,f#5]", G: "[d4,d5]@4 [c#4,c#5] [b3,b4] [d4,d5]@4 [e4,e5] [f#4,f#5]",
H: "[d4,d5]@4 [c#4,c#5] [b3,b4] [c#4,c#5]@4 [b3,b4] [a3,a4]", // D C# B C# B A
I: "[c#4,c#5]@4 [b3,b4] [a3,a4] [c#4,c#5]@4 [b3,b4] [a3,a4]", // C# B A C# B A
J: "[c#4,c#5]@4 [b3,b4] [a3,a4] [b3,b4]@4 [a3,a4] [g3,g4]", K: "[a3,a4]@23 ~",
L: "[c#4@23 [e3,d4]@27 [a3,c#4]@47 ~@23, e4@97 ~@23]/5", // E7 A
})).s("gm_string_ensemble_2").gain(0.25).pan(0.6)
// chords · piano
const piano = note(`<
~@15 A B A C D E F G H I J K L M N@2 O P@2 Q R S T U ~@3 V W X@2 Y Z AA AB AC AD AE AF AG AH@2 ~
>`.pickRestart({
A: "[f#5,a5]@7 ~ c#5@2 d5@2 c#5@2 ~@2 a5@6 ~@2, ~@7 d5@4 ~", B: "~@6 d5@3 c#5 d5 e5", C: "~@12 g5@6 f#5@5 ~",
D: "d5@7 ~ c#5@2 d5@2 c#5@2 ~@2 a5@6 ~@2, ~@7 d5@4 ~", E: "[e5,g5]@7 ~ f#5@2 e5@2 g5@8 f#5@2 e5@2", F: "d5@4 c#5@3 ~",
G: "[a4,d5,e5]@5 ~ [f#4,a4]@4 a3@2", H: "b3@6 [d4,g4]@3 ~ d4@2, ~@4 a3@3 ~, ~@3 g4",
I: "[f#4,a4]@8 ~@2 [a3,d4]@7 ~@7", J: "[b3,f#4]@11 ~ [c#3,g3,b3]@5 ~ [c#3,f#3,a#3]@5 ~",
K: "b3@7 ~ b3@2 ~@2 b3@7 ~ [b3,d4,f#4]@3 ~, f#3@23 ~, f#4@5 ~, ~@10 d4@9 ~@5", // Bm
L: "b3@6 [b3,d4,f#4]@4 ~@4 c#4@4 [c#4,f4,g#4]@5 ~, f#3, ~@12 [f4,g#4]@5 ~@7", // Bm C# Fm
M: "[c#4,f#4]@9 ~ f#4@2 [c#4,f#4]@7 ~ [f#4,a4]@3 ~, ~@10 a4@9 ~@5", N: "[[c#4,f#4,a4]@9 ~@3 [b3,e4,g4]@14 ~@22]/2",
O: "[b4,d5]@7 ~ f#4@2 g4@2 f#4@2 ~@6 [g3,d4]@4, ~@7 g4@4 ~, ~@8 d5@3 ~", // Bm G5
P: "[~@4 [e4,g4,a4]@2 g4@3 f#4 g4 [c4,a4] a4@3 [b4,d5] a3@2 ~@3 e3 g3@2, ~@11 g3@3 ~@2 c4@3 g4@4 ~, ~@6 g3 ~, ~@20 d5@3 ~]/2", // A7 F Bm
Q: "d4 g3 b3 g3 a3 b3 ~@2 c4 [b3,d#4]@2 ~, ~@2 e4 ~, ~@7 a3@2 ~@3", // B
R: "[e4,g4]@7 ~ f#4@2 e4@2 [e4,g4]@6 ~@2 [e4,g4]@4", S: "[a4,c5]@7 ~ b4@2 a4@2 c5@8 b4@2 a4@2",
T: "~@4 g3 ~ f#3@3 [d3,f#3]@3, g4@3 f#4@2 ~, ~@5 c4@6 ~", // D
U: "[g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@3 ~@15", V: "~@12 [c#5,e5]@7 ~ g#4@2 a4@2",
W: "g#4 ~@3 [a3,e4]@2 ~@4 [f#4,a4,b4]@2, ~ a4@4 ~@7, ~@2 e5@3 ~@7", // A5 B7
X: "[a4@3 g#4 a4 [d4,b4] b4@3 [c#5,e5] b3@2 ~@3 f#3 a3@2 e4 a3 c#4 a3 b3 c#4, ~@5 a3@3 ~@2 d4@3 a4@4 ~@7, ~@4 a3 ~@3, ~@14 e5@3 ~@7]/2", // G C#m
Y: "~@4 d4@2 [c#4,f4]@4 ~@2 [f#4,a4]@7 ~ g#4@2 f#4@2, f#4 ~@3, ~ b3@2 ~@9", // C# F#m
Z: "[f#4,a4]@6 ~@2 [f#4,a4]@4 [b4,d5]@7 ~ c#5@2 b4@2", // F#m Bm
AA: "[b3,d4,f#4]@4 ~@2 [c#4,f4,g#4]@6 [c#4,f#4]@5 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [c#4,f#4,a4] ~, ~@4 a4 ~@3", // Bm C# F#5 F#m
AB: "[g#3,b3,e4]@5 ~ [b3,e4,g#4]@5 ~ [b3,d4,f#4]@5 ~ [b3,d4,f#4] ~ [b3,d4,f#4]@3 ~", // E Bm
AC: "[c#4,e4,g#4]@5 ~ [c#4,e4,g#4] ~ [c#4,e4,g#4]@2 ~@2 [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~", // C#m Bm C#m
AD: "[d4,f#4,a4] ~ [d4,f#4,a4] ~ [d4,f#4,a4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~ [a3,d4]@4 ~@2 [a3,d4]@4 ~@2, ~@6 f#4@5 ~", // D E D5
AE: "[b3,e4,g#4] ~", AF: "[a4,c#5,e5]@7 ~ [e4,e5]@2 g#4@2 e5@6 ~@6, ~@3 a4 ~@2",
AG: "[a4,e5]@7 ~@3 a4@2 e5@10 ~@2, ~@2 [f#4,f#5] c#5@2 ~", AH: "[~@3 [a4,c#5]@29 ~@16, ~ e4@15 ~@8]/2",
})).s("gm_piano").gain(0.17).pan(0.9)
// chords · distortion guitar · G Dm7 G7 C B5 C#5 B5 C#5 …
const distortion_guitar = note(`<
~@49
[~@8 [g3,a3,b3] [c3,d3,e3,f3] [f2,g2,a2,b2] [c2,d2,e2] [b2,f#3]@12]
[[c#3,g#3]@2 [b2,f#3] [c#3,g#3]]
[[d3,a3]@6 [e3,b3]@6 [d3,a3]@6 [c4,d4] b3 [g3,a3] [d3,e3,f3] [b2,c3] [f2,g2,a2]]
[[e2,b2] ~]
~@5
>`).s("gm_distortion_guitar").gain(0.5)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note("<~@24 A B C ~ D E F ~ G H I J ~ K L H M I N ~@2 O ~ P Q ~@9>".pickRestart({
A: "~@9 f#3 ~@12 f#3 ~", B: "~@3 b3 ~@20", C: "~@22 f#3 ~", D: "~@10 f#3 ~@13", E: "~@22 e4 ~", F: "~@9 e4 g4 ~@13",
G: "~@15 d4 ~@8", H: "~@17 b3 ~@6", I: "~@15 e4 ~@8", J: "~@5 b3 ~@18",
K: "~@3 g3!2 ~@3 a3@2 g3 ~@4 f#3 [f#3,a3] f#3 ~@2 a3@2 f#3 ~", L: "~@5 d4 ~@18", M: "~@15 g3 ~ b3 ~@6",
N: "~@5 e4 ~@9 c#4 ~@8", O: "~@14 a3 ~@9", P: "~@4 a3!2 ~@9 b3 ~ b3 ~@6", Q: "~@3 d4 ~@20",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(1)
// bass · electric bass finger
const bass = note(`<
A B ~@12 C D E D F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ@2 ~
>`.pickRestart({
A: "a1@11 ~ f#1@11 ~", B: "d2@11 ~ e2@11 ~", C: "a1@11 ~ g2@11 ~", D: "d1@11 ~ b0@11 ~", E: "g1@11 ~ a1@11 ~",
F: "g1@11 ~ c#1@6 f#1@5 ~", G: "b1@11 ~ a1@11 ~", H: "e1@11 ~ d1@11 ~", I: "a1@11 ~ a1@11 ~",
J: "d1@7 ~ c#1@2 d1@2 b0@12", K: "g1@12 a1@6 a1@5 ~", L: "d1@9 ~ d1@2 b0@7 ~ b1@2 a1@2", M: "g1@2 c#1 f#1",
N: "b1@9 ~ b1@2 a1@9 ~ a1@2", O: "g#1@9 ~ g#1@2 c#2@6 f1@6", P: "f#1@9 ~ e2 ~ e2@12", Q: "d#2 e2",
R: "d2@10 g1@2 d1@5 a1 d2 a1 d2@2 a1@2", S: "g1@7 ~ f#1@2 g1@2 e1@11 ~", T: "c1@11 ~ d1@6 c2@5 ~",
U: "g1@6 ~@2 f#1@2 g1@2 e1@11 ~", V: "c1@6 c2@6 f#1@6 b1@5 ~", W: "e1@9 ~ e1@2 d1@11 ~",
X: "a1@9 ~ a1@2 g1@7 ~ g1@2 a1@2", Y: "d1@11 ~ d1@5 d1 d3 a2 d2@4", Z: "g1@9 ~ g1@2 f#1@9 ~ f#1@2",
AA: "e1@5 e1 d1@3 d2@3", AB: "c2@4 g1 c2 b1@6", AC: "a1@12 e1@10 ~ b1",
AD: "e2@3 b1 e1 a1 b1@2 e2@2 b1@2 a1@7 a1 g#1@2 a1@2", AE: "f#1@7 f#1 f#1@2 e1@2 d1@10 d1@2",
AF: "e1@6 d2@5 ~ a1@6 ~ a1 g#1@2 a1@2", AG: "f#1@7 f#1 f#1@2 e1@2 d1@6 d2@6", AH: "g#1@6 c#2@5 ~ f#1@9 ~ f#1@2",
AI: "e1@11 ~ b1@9 ~ b1@2", AJ: "g#1@6 c#2@6 f#1@6 f#1 g#1 a1 c#2 f#2 ~", AK: "e2@3 e1@3 b1@3 b2@2 b1",
AL: "c#2@6 c#3@3 ~@3 b0 ~ b0 ~ b0 ~ c#1 ~ c#1 ~ c#1 ~", AM: "d1 ~ d1 ~ d1 ~ e1 ~ e1 ~ e1 ~ d1@9 ~ e2@2", AN: "e1 ~",
AO: "a1@12 f#1@11 ~", AP: "d2 e2", AQ: "[~@2 a1@31 ~@15]/2",
})).s("gm_electric_bass_finger").gain(0.54)
// chords · electric guitar clean
const electric_guitar_clean = note("<A B C@8 D@4 E@2 F@8 G@2 H@4 I ~@7 J K@2 L M ~@10 A N@3 ~>".pickRestart({
A: "~@11 a3, a2@10 a3@5 ~ a3@4 g#3@4, ~ g#3@2 e4@3 ~ g#3@2 e4@3, ~@4 a3@4 g#3@4 f#2@11 ~",
B: "~@19 e4@5, d3@10 a3@5 ~ a3@5 ~@3, ~ f#3@2 e4@3 ~ f#3@2 ~@3, ~@4 a3@4 f#3@4 e3@11 ~",
C: "[~@95 g#3, a2@10 a3@5 ~ a3@4 g#3@4 d3@10 a3@5 ~ a3@4 f#3@4 a2@10 a3@5 ~ a3@4 g#3@4 d3@10 a3@5 ~ a3@4 f#3@4 a2@10 a3@5 ~ a3@4 g#3@4 d3@10 a3@5 ~ a3@4 f#3@4 a2@10 a3@5 ~ a3@4 g#3@4 d3@10 a3@5 ~ b3@5 ~@3, ~ g#3@2 e4@3 ~ g#3@2 e4@3 ~ f#3@2 e4@3 ~ f#3@2 e4@3 ~ g#3@2 e4@3 ~ g#3@2 e4@3 ~ f#3@2 e4@3 ~ f#3@2 e4@3 ~ g#3@2 e4@3 ~ g#3@2 e4@3 ~ f#3@2 e4@3 ~ f#3@2 e4@3 ~ g#3@2 e4@3 ~ g#3@2 e4@3 ~ f#3@2 e4@3 ~ g#3@2 ~ f3@2, ~@4 a3@4 g#3@4 f#2@10 a3@5 ~ a3@4 f#3@4 e2@10 a3@5 ~ a3@4 g#3@4 f#2@10 a3@5 ~ a3@4 f#3@4 e2@10 a3@5 ~ a3@4 g#3@4 f#2@10 a3@5 ~ a3@4 f#3@4 e2@10 a3@5 ~ a3@4 g#3@4 f#2@10 a3@5 ~ a3@4 f#3@4 g#2@6 [c#3,c#4]@6]/8", // C#
D: "[~@47 d4, f#2@10 c#4@5 ~ c#4@4 a3@4 d#3@10 c#4@5 ~ d#4@4 g#3@4 c#3@10 c#4@5 ~ c#4@4 g#3@4 a#2@10 c#4@5 ~ d4@4 b3@4, ~ a3@2 f#4@3 ~ a3@2 f#4@3 ~ a3@2 f#4@3 ~ g#3@2 g#4@3 ~ g#3@2 e4@3 ~ g#3@2 e4@3 ~ g#3@2 e4@3 ~ b3@2 f#4@3, ~@4 c#4@4 a3@4 e3@10 c#4@5 ~ c#4@4 a3@4 c3@10 d#4@5 ~ c#4@4 g#3@4 b2@10 c#4@5 ~ c#4@4 g#3@4 b2@12]/4",
E: "[~@5 d4@2 ~@16 d4, ~@2 b3@4 g4@6 ~@4 e4@4 c#4@4 d3@10 d4@5 ~ d4@4 c#4@4, ~@2 d4@2 b3@2 ~ c#4@2 a4@3 ~ c#4@2 a4@3 ~ c#4@2 a4@3, ~@22 e4@5 ~ d4@4 c#4@4 b2@11 ~]/2",
F: "[~@32 g4 ~@38 c#4@2 ~@4 d4@2 ~@4 d4@2 ~@4 b3@2 ~@2 d4@3, g3@10 d4@5 ~ d4@4 d4@4 ~@2 c#4@4 a4@6 ~@2 c#4@4 a4@6 ~@2 b3@4 a4@6 g4@4 ~@2 f#4@6 ~@2 b3@4 f#4@6 ~@2 b3@4 f#4@6 ~@2 b3@4 g4@6 ~@2 b3@4 g4@6 ~@2 b3@4 g4@6 ~@2 a3@4 a4@6 ~@4 d4@5 ~@7 d4@5 ~@7 b3@5 ~@7 b3@5 ~@3, ~@2 b3@4 a4@6 ~@2 b3@4 c#4@4 a4@5 ~ d4@4 c#4@4 b2@10 d4@5 ~ d4@4 b3@4 ~@2 b3@4 ~@2 b3@4 b2@10 d4@5 ~ d4@4 b3@4 e3@10 e4@5 ~ e4@4 b3@4 a2@10 d4@5 ~ c#4@4 a3@4 ~@2 a3@4 e4@6 ~@6 e4@6 ~@6 d4@6 ~@12, ~@4 d4@4 b3@4 a3@11 ~ d3@10 d4@5 ~ d4@4 c#4@4 g3@10 d4@5 ~ e4@5 ~ e4@5 ~ d4@4 b3@4 a2@10 d4@5 ~ e4@4 b3@4 d3@10 e4@5 ~ d4@4 b3@4 a2@11 ~@9 a3@4 ~@2 a3@4 ~@2 a3@4 ~@2 a3@4 ~@2 a3@4 ~@2 a3@4 ~@6]/8",
G: "[~@10 d4@4 ~@8 d4@4 ~@8 b3@4 ~@4 f#4@5 ~, ~@2 a3@4 e4@6 ~@4 d4@4 a3@4 ~@2 a3@4 d4@6 ~@2 e4@9 ~, ~@2 d4@2 a3@2 ~ a3@2 e4@3 ~@2 b3@2 a3@2 ~@6]/2",
H: "[~@5 d4@2 ~@4 d4@2 ~@4 d4@2 ~@4 c#4@2 ~@4 c#4@2 ~@4 c#4@2 ~@4 c#4@2 ~@3 b3@2, ~ b3@2 f#4@3 ~@2 d4@2 b3@2 ~ b3@2 f#4@3 ~@2 c#4@2 g#3@2 ~ a3@2 f#4@3 ~@2 c#4@2 a3@2 ~ a3@2 f#4@3 ~@2 b3@2 ~@2, ~@2 d4@2 b3@2 ~ b3@2 f#4@3 ~@2 d4@2 b3@2 ~ g#3@2 f4@3 ~@2 c#4@2 a3@2 ~ a3@2 f#4@3 ~@2 c#4@2 a3@2 ~ g3@2 e4@3]/4",
I: "~@4 c4@2 ~@2 c4@5 ~@7 c4@4, ~ a3@2 e4@3 ~ a3@2 e4@3, ~@4 c4 ~",
J: "~@11 d4, g3@10 d4@5 ~ d4@4 a3@4, ~ b3@2 g4@3 ~ a3@2 a4@3, ~@4 d4@4 b3@4 f#3@11 ~",
K: "[~@23 d4, e3@10 e4@5 ~ e4@4 b3@4 c3@10 e4@5 ~ d4@4 b3@4, ~ b3@2 g4@3 ~ b3@2 g4@3 ~ c4@2 g4@3 ~ b3@2 g4@3, ~@4 e4@4 b3@4 e3@10 e4@5 ~ e4@4 c4@4 b2@11 ~]/2",
L: "~@12 [a3,e4]@5 ~ [a3,e4]@5 ~, e3@10 c4@5 ~@9, ~ a3@2 e4@3 ~@6, ~ c4 a3 ~@3", M: "[g#3,e4]@5 ~ [g#3,e4]@5 ~@13",
N: "[~@23 f#3@3 ~ [e4,b4]@31 ~@14, d3@10 a3@5 ~@2 a3@6 ~@3 [a3,c#4]@32 ~@14, ~@2 f#3@4 e4@6 ~@2 f#3@5 e4@7 ~@46, ~@4 a3@4 f#3@4 e3@13 ~@47]/3", // E5 A
})).s("gm_electric_guitar_clean").gain(0.49)
// drums · kick
const kick = s("bd").struct("<~@22 A@4 B A B A C B@2 D B@8 E F@7 G H I ~@5>".pickRestart({
A: "x!2", B: "x ~@4 x!2 ~@5", C: "x ~@9 x ~ x ~@4 x ~@6", D: "x ~@3 x!3 ~@5", E: "~@6 x ~@4 x", F: "x ~@5 x ~@4 x",
G: "x ~@5 x!6", H: "x!7 ~@5", I: "x",
})).gain(0.56)
// drums · rim
const rim = s("rim").struct("<~@22 [~ x ~ x]!8 [~ x ~@2] ~@27>").gain(0.64)
// drums · snare
const snare = s("sd").struct("<~@30 A B@6 C B@3 D E B@7 F A ~@6>".pickRestart({
A: "~@3 x", B: "~ x ~ x", C: "~@6 x ~@8 x!2 ~@7", D: "~@2 x ~@2 x!2 ~", E: "x!2 ~ x", F: "~ x ~@2",
})).gain(0.72)
// drums · low tom
const low_tom = s("lt").struct("<~@21 A ~@8 A ~@6 B ~@4 C ~@6 D E F ~@6>".pickRestart({
A: "~@11 x", B: "~@10 x!2", C: "~ x ~@3 x ~@6", D: "~@5 x ~@6", E: "~@6 x!6", F: "x!6 ~@5 x",
})).gain(0.48)
// drums · hihat
const hihat = s("hh").struct("<~@22 A@8 B A@3 C A@2 D A E A@2 F A F A F A@2 G A H I ~@5>".pickRestart({
A: "x!12", B: "x!9 ~@2 x", C: "x!10 ~@2", D: "x!7 ~@2 x!3", E: "x!11 ~", F: "x!5 ~ x!6", G: "x!3 ~@3 x!6",
H: "x!5 ~ x!4 ~@2", I: "x",
})).gain(0.48)
// … 38 more lines
More by Morandi
Andavo a cento all'oraC minor · 170 bpmBanane e lamponiD minor · 93 bpmC'era un ragazzoF major · 124 bpmC'era un ragazzo che come me amava i Beatles e i Rolling StonesF major · 124 bpmDove va a finire il mio affettoF♯ minor · 122 bpmIn ginocchio da teE♭ major · 108 bpmOcchi di ragazzaE♭ major · 120 bpmBanane e lamponeD minor · 92 bpm
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.