0:00/0:00
// Canzoni stonate — Morandi
// 76 bpm, 4/4, key B 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 80 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(76/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 · fretless bass
const bass = note(`<
~@9 A B C D A E C F G H I J K L I M N E I O A E P Q R S T U V W X Y Z AA AB AC AD AE AB AF AG AH AI AJ AK AL AM AN AO
AP AQ AR AS AL AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH ~@2
>`.pickRestart({
A: "f#1@7 f#1 f#1@8", B: "b1@6 ~ b1 b1@4 a1@4", C: "g#1@6 ~ g#1 g#1@8", D: "c#2@6 ~ c#2 c#2@6 g#1 g1",
E: "b1@6 ~ b1 b1@4 a1@3 ~", F: "c#2@6 ~ c#2 c#2@4 c#3 g#2 c#2@2", G: "f#1@5 ~@2 f#1 f#1@8",
H: "b1@6 ~ b1 b1@3 f#2 b2 f#2 b1 a1", I: "g#1@7 g#1 g#1@8", J: "c#2@7 g#1 c#2@3 d#2@3 ~ c#2, ~@7 f2",
K: "f#2@7 c#2 f#1@7 ~", L: "b1@7 f#1 b1@4 a1@3 ~", M: "c#2@6 ~ c#2 c#2@3 d#2@3 f2 ~", N: "f#2@6 ~ f#2 c#2@4 f#1@4",
O: "c#2@6 ~ c#2!2 f2 g#2 d3 c#2 c#3 g#2 c#2", P: "g#1@6 ~ g#1 g#1@7 ~",
Q: "c#2@3 g#2@2 c#2 c#3 g#2 b2 c#3 b2@4 g#2 e2", R: "f#2@7 c#2 f#2@6 a1 c#2", S: "b1@7 f#2 b1@4 a1@4",
T: "g#1@6 ~ g#1 g#1@6 g#1 b1", U: "c#2@6 ~ c#2!2 f#2 g#2 c#3@5", V: "f#2@6 ~ f#2 e2@3 a1@3 f#1@2",
W: "b1@7 b1 a1@6 ~ a1", X: "g#1@6 ~ g#1 g#1@6 ~ g#1", Y: "c#2@3 d#2@3 f2@3 f#2 g#2 c#3 b2@2 g#2 f2", Z: "f#2",
AA: "b1", AB: "g#1@15 ~", AC: "c#2", AD: "f#1@15 ~", AE: "b1 a1", AF: "c#2@3 d#2@3 f2@3 g#2 c#3 f2 c#3 g#2 f2 c#2",
AG: "f#2@7 c#2 f#1@2 f#1@5 ~", AH: "b1@6 ~ b1!2 ~ b1@4 a1 ~", AI: "g#1@6 ~ g#1!2 ~ g#1@6",
AJ: "c#2@7 g#2 c#3 c#2 c#3@4 g#2 c#2", AK: "f#1@6 ~ c#2 f#1 ~ f#1@6", AL: "b1@7 f#2 b1 ~ b1@4 a1 ~",
AM: "g#1@7 d#2 g#1@2 g#1@3 ~ g#1 b1", AN: "c#2@7 g#2 c#2 g#2 c#3@2 c#2 g#2 c#2@2", AO: "f#1@7 c#2 f#1 ~ f#1@6",
AP: "b1@7 f#2 b1 ~ b1@4 a1@2", AQ: "g#1@7 d#2 g#1@2 g#1@5 ~", AR: "c#2@7 g#1 c#2 ~ c#2@3 b1 g#1 f1",
AS: "f#1@7 c#2 f#1 ~ f#1@3 ~ f#1 a1", AT: "g#1@7 d#2 g#2 d#2 g#1@4 g#2 g#1",
AU: "c#2 g#2 c#2@4 g#2 c#2 c#3 g#2 c#2 g#2 c#2 b1@3", AV: "a1@7 f#1!2 ~ f#1@5 ~", AW: "b1@7 f#2 a1@2 a1@3 ~ a1@2",
AX: "g#1@7 d#2 g#1 ~ g#1@5 g#1", AY: "c#2@7 g#1 c#2 ~ c#2@5 g#1", AZ: "f#1@7 c#2 f#1 ~ f#1@4 f#1 a1",
BA: "b1@7 f#2 b1 ~ b1@2 a1@4", BB: "g#1@7 d#2 g#1@2 g#1@5 g#1", BC: "c#2@7 g#1 c#2@2 c#2@3 b1 g#1 f1",
BD: "f#1@7 c#2 f#1@2 f#1@5 ~", BE: "b1@6 ~ f#1 b1@2 b1@4 b1 c#2", BF: "f#1@7 c#2 f#1@2 f#1@4 f#1 g#1",
BG: "b1@6 ~ f#1 b1@2 b1@4 b1!2", BH: "e2@15 ~",
})).s("gm_fretless_bass").gain(0.48)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<A@2 B@7 C@4 D@4 E@8 F@6 G@6 H@4 I@8 J@8 K@8 L@8 M@2 N O P@3>".pickRestart({
A: "[~ [c#4,f#4], ~@15 [f#2,f#3,a3]@17]/2", // F#5 F#m
B: "[~@6 e4@2 ~@8 [f#3,b3]@16 ~@6 f#4@2 f4@7 ~@2 g#4@15 ~@6 e4@2 d#4@3 e4@2 f#4@2 ~ f#3@16 ~@6 f#4@2 f4@8, b2@15 g#2@17 c#3@16 ~@16 b2@14 ~@18 c#3@16, ~@2 f#3@14 ~@18 g#3@14 [f#3,a3,c#4]@17 ~ f#3@13 ~ b3@18 g#3@14, ~@4 a3@12 f#4@22 ~@9 f#2@17 ~@15 g#2@15 ~@18, ~@8 d#4@24 ~@4 b3@12 e4@20 a3@11 ~ [d#4,g#4]@20 b3@11 ~]/7", // B5 F#m G#5
C: "[e4 ~ [c#4,e4]@2 ~@59 f#3, [f#3,a3]@6 f#3@2 f#3@2 f#3@2 f#3@2 f#3@2 b2@8 [b2,d#4]@4 a2@4 g#2@7 d#4@7 f#3@2 c#3@7 b3@2 g#3@2 c#4@3 b3@2, ~@4 c#4@12 ~@2 a3@3 a3@2 a3@3 a3@4 a3@2 ~@2 b3@2 f#3 b3@4 f#3@2 f#4@7 b3@2 g#3 b3 g#3@2 [c#3,f4]@8, ~@4 e4@7 e4@8 e4@5 ~@3 d#4@4 d#4@7 f#3@2 g#2@7 d#4@17, ~@7 a3@2 a3@4 a3@2 a3@2 f#3@3 f#3@2 f#3@2 ~ f#3@3 ~ f#3@3 ~ f#3@2 f#4@7 b3@2 f#3 b3@4 g#3@2 f#4@5 ~@2 b3@2 g#3@4]/4", // C#m F#m B C#
D: "[~@7 f#3 ~@52 g#3@2 ~ g#3, f#2@15 a3@2 f#3@2 e4@4 d#4@3 b3@3 ~ b3@4 b3@2 f#3 b3@4 f#3@2 g#4@11 g#3@2 ~ g#3@3 ~@4, ~ f#3@2 e4@9 f#3 e4@5 a3@2 f#3 a3@6 d#4@4 d#4@7 f#3@2 g#2@7 b3@2 g#3@2 d#4@4 b3@3 b3@4 b3@2, ~@2 a3@3 c#4@5 f#3 c#4@13 ~ f#3@3 ~ f#3@3 ~ f#3@2 g#4@7 b3@2 f#3 b3 f#3@2 c#3@8 [c#3,f4]@8, ~@4 f#3@2 a3@2 f#3 a3@5 f#3@2 b2@6 f#3@2 b2@4 a2@4 g#2@7 d#4@11 b3@2 g#3 f#4@3 ~@3 c#4@5]/4", // C#
E: "[~@15 f#3 ~@12 f#3@2 ~ a3 ~@31 b3 ~@55 b3 ~@7 b3, f#3@6 a3 a4@31 g#3 g#4@31 f#3@2 f#3@6 f#3@2 b2@6 f#3@2 b2@4 a2@4 g#2@7 d#4@8 b3@2 ~ b3@3 b3@2 ~@3 b3@2 g#3@4, ~ a3@2 g#4@10 a3@2 e4@2 f#3 a3 e4@3 f#3@2 d#4@2 a3@4 f#3@2 g#3@2 g#3 f#4@9 g#3 f#4@4 g#3 b3 f#4 g#3 b3@4 g#3@2 f4@5 ~ a3@2 e4@8 e4@7 a3@2 f#3 a3@5 a3@4 a3@2 ~@2 b3@2 f#3 b3@4 f#3@2 f#4@8 f#4@5 f4@8, ~@2 e4@7 a3@2 e4@3 c#4@6 f#3 a3@2 c#4@2 f#3@2 d#4@15 g#3 d#4@11 g#3@2 c#3@5 b3 c#3@2 ~@2 c#4@2 a3@3 a3@2 a3@3 a3@4 ~ f#3@2 e4@4 d#4@4 d#4@4 d#4@7 f#3@2 g#2@5 b3 g#2@2 c#3@8 c#3@5 b3 c#3@2, ~@4 a3 c#4@3 f#3@2 c#4@2 f#3@3 ~ b2@8 b2@8 ~ b3@3 g#3 b3@3 g#3 b3@5 g#3 b3 c#3@7 f4@3 b3@2 g#3@4 f#3@5 c#4@5 c#4@3 c#4@2 c#4@9 ~ f#3@3 ~ f#3@3 ~ f#3@2 f#4@7 b3@2 f#3@4 ~ g#3@3 g#3@2 g#3@2 ~ g#3@2 c#4@5]/8",
F: "[~@55 b3 ~@7 b3 f#3 ~@4 a3@2 ~ f#3 ~ f#3 ~ f#3 ~@7 f#3 ~@10 d#4, f#3@2 f#3@2 f#3@2 f#3@2 f#3@2 f#3 a4@6 f#3@2 e4@3 f#3@3 f#3 b3@2 a2 f#3@3 ~ g#3@2 g#4@17 g#3 b3 g#3@2 ~ g#3@2 c#4@7 f#3@2 f#3@3 ~@2 a3@3 ~ a3@4 f#3@2 e4@5 d#4@6 ~@2, ~ a3@4 a3@4 a3@3 f#3 a3@2 c#4@8 d#4@7 b3@3 ~ b3@3 b3@4 b3@4 b3@2 b3@2 g#3 b3 f#4@5 ~@4 g#3@3 ~@2 a3@3 ~@3 c#4@7 ~ c#4@7 f#3@4 f#3@2 ~ f#3@3, ~@3 e4@15 a3@2 f#3 a3@10 d#4@8 d#4@4 d#4@13 ~@2 b3@4 c#3@16 f#3@2 b2@11 ~ a2@3 ~, ~@7 c#4@7 f#3@2 b2@7 ~ b2@7 ~ g#2@3 ~ g#3@2 g#3@2 g#3@2 g#3@2 g#3@2 g#3@2 c#3@8 [c#3,f4]@5 f4@3 ~@3 e4@8 e4@7 a3@2 ~ a3@2 c#4@2 ~@2 b3@2 ~ b3@2]/6", // C#
G: "[~@4 g#3 ~@7 g#3 b3 ~@6 g#3 ~@10 b3 ~@2 f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~@9 b2 ~@8 b3 ~@4 g#3 ~@3 g#3 ~@3 g#3 ~@7 g#3 ~@2 b3 ~@2 g#3 ~@4 b3, g#2@6 g#3@2 g#2@6 g#3@2 c#3@6 g#3@2 [c#3,f4]@4 g#3@2 c#3@16 f#3@2 b2@5 a3@3 d#4@2 ~ d#4@11 ~ d#4@3 ~ d#4@7 b3@3 f#4@2 ~ f4@3 f#4@3 ~@2, ~ g#3@2 g#4@29 ~@3 e4@7 ~ e4@7 a3@2 f#3@5 f#3@2 ~ f#3@3 ~ g#3@2 g#3@2 ~@2 g#3@2 ~@2 g#3@2 ~@2 g#3@2 c#3@7 ~ c#3@5 g#4@3, ~@2 b3@2 ~ b3@4 g#3 b3 f#4@4 b3 f#4@2 b3@3 f#4@2 ~@3 b3@3 f4@3 ~ a3@3 ~ a3@3 ~ a3@3 ~ a3@4 f#3@2 e4@5 b2@5 ~ b2@2 ~@3 g#4@9 ~ g#4@6 d#4@5 ~@4 g#3@3 ~, ~@7 d#4@10 g#3@2 d#4@4 b3@2 g#3@2 c#4@5 f#3@2 ~@5 c#4@7 ~ c#4@7 ~ c#4@3 a3@2 ~ c#4@3 ~ b3@3 ~ b3@3 ~ b3@5 ~ b3@2 g#3@3 ~@2 g#3@3 b3@5 c#3@2]/6", // C#
H: "[f#3 ~@3 f#3 ~@2 a3 ~@4 f#3 ~@23 f#3 ~@8 b3 g#2 ~@9 g#3 ~ g#3 ~@4 b3, ~ a3@5 f#3@2 f#3@2 f#3@2 ~ a3@3 b2@6 f#3@2 b2@2 a3@3 f#3@3 g#2@7 ~ g#2@5 ~@3 c#3@5 b3@3 f4@4 g#3@3 ~, ~@2 f#3@2 ~ e4@13 a3@2 f#3 a3@4 f#3@3 a2@2 ~ c#4@2 ~ b3@2 ~ b3@2 b3@2 ~ b3@2 ~@3 b3@2 ~ b3@2 g#3@2 g#3@2 ~ b3@4 f4@3, ~@3 c#4@11 f#3 c#4@15 a3@2 ~ f#3@2 ~@3 f#3@2 ~ f#3@2 ~ f#3@4 ~ g#3@2 f#4@4 c#3@7 c#3@2, ~@9 a3@2 f#4@6 f#3@2 e4@4 d#4@4 d#4@7 ~ d#4@7 ~ d#4@14 ~@2 c#4@5]/4",
I: "[~@8 f#3 ~@12 a3 f#4 ~@3 a3 ~@11 g#3 ~@5 g#3 b3 ~@7 b3 ~ b3 ~@7 b3 f#3 ~@3 f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~@7 f#3 ~@11 g#3 ~@3 g#3 ~ g#3 ~ g#3 ~ g#3 ~ g#3 ~@7 g#3 b3 ~@9 b3, f#3@2 f#3@2 f#3@2 f#3@2 ~ a3@2 e4@7 a3@2 f#3@5 f#3@2 ~ f#3@2 a3@2 g#3@2 g#3@2 g#3@2 ~@2 g#3@2 g#3@2 ~@2 g#3 b3 c#3@7 ~ c#3@4 g#3@2 c#3@2 ~ a3@3 ~ a3@3 ~ a3@3 ~ a3@3 b2@6 f#3@2 a2@5 b3@3 ~ b3@3 ~ b3@3 ~ b3@3 ~ b3@3 c#3@6 g#3@2 [c#3,f4]@5 f4@3, ~ a3@2 e4@7 f#3@2 f#3@2 f#3@2 b2@5 ~@2 a3@2 ~@4 b3@3 ~ b3@3 ~ b3@3 ~ b3@2 f#4@6 g#3@2 f#4@4 ~ f4@8 ~@2 f#3@2 ~@3 f#4@19 b3@2 f#3@3 d#4@7 ~ d#4@7 g#3 d#4@10 ~ b3@4 c#3@2, ~@5 a3@2 c#4@6 a3@4 f#3@2 e4@5 d#4@6 ~ d#4@7 ~ d#4@11 b3@2 g#3@2 g#3@2 ~ g#3 b3@3 g#4@3 ~@3 e4@7 ~ e4@6 f#3@2 e4@4 d#4@7 a3@2 ~@2 g#3@2 ~@7 f#4@6 g#3 b3 f#4@4 b3@2 g#3@2 c#4@5, ~@15 c#4@11 ~ c#4@2 ~@6 g#4@24 c#4@19 f#3 c#4@3 a3@2 ~ a3@4 f#3@2 f#4@7 ~ g#4@25 g#3@4]/8", // C#
J: "[~@2 f#3 ~ f#3 ~@3 f#3 ~@3 f#3 ~@17 f#3 a3 ~@4 g#3 ~ g#3 ~ g#3 ~@3 g#3 ~@8 b3 ~ b3 ~@2 g#3 ~@4 b3 ~@2 f#3 ~ f#3 ~ f#3 ~ f#3 ~@3 f#3 ~@5 b3 ~@3 b2 ~@6 b3 a2 b3 g#3 ~@3 g#3 ~@3 g#3 ~@3 g#3 b3 ~ b3 ~@5 f#4@2 ~@8 b3, f#3@2 ~ e4@7 f#3@2 ~ a3@4 f#3@2 e4@4 c#4@2 ~@2 b3@3 ~@3 b3@3 ~ b3@3 ~ b3@3 ~ b3@4 g#3@2 f#4@4 ~@5 g#3@4 f#3@2 ~ e4@7 ~ e4@7 ~ e4@5 d#4@3 d#4@11 ~ d#4@10 g#3 b3@2 g#3@4 ~ g#3@2 ~ g#3@3 ~, ~ a3@3 ~ a3@2 c#4@7 f#3@2 b2@5 a3@3 d#4@4 a3@2 ~@2 g#3@2 g#3@2 ~@6 g#3@2 ~@2 g#3@2 c#3@7 ~ [c#3,f4]@5 f4@3 ~ a3@3 ~ a3@3 ~ a3@3 ~ a3@3 ~ f#3@3 f#3@4 a2@5 ~@6 g#4@8 g#4@11 ~ b3@2 ~ b3@4 c#3@2, ~@6 f#3@2 ~ a3@2 e4@7 a3@2 f#3@5 ~ f#3@3 d#4@9 ~ d#4@7 ~ d#4@12 c#4@11 ~ c#4@7 ~ c#4@7 ~ c#4@2 ~ b3@2 ~@5 b3@3 ~ b3@3 ~ b3@3 ~@4 f#4@3 d#4@6 ~@2 c#4@5, ~@15 c#4@7 b2@2 ~ b2@6 ~@4 g#4@7 ~ g#4@7 b3@2 g#3@2 g#3@3 b3@5 c#3@2 ~@10 f#3@2 ~@2 f#3@2 b2@5 a3@3 ~ f#3@2 ~ f#3@4 ~@2 g#3@2 ~@2 g#3@2 ~@2 g#3@2 ~@2 g#3@2 c#3@7 ~ [c#3,f4]@5 f4@2 ~]/8", // C#
K: "[~@2 f#3 ~ f#3 ~ f#3 a3 f#3 ~ f#3 ~ f#3 ~@2 a3 ~@6 b2 a3 ~@12 g#3 ~ g#3 ~ g#3 ~ g#3 ~ g#3 ~@5 b3 ~ g#3 ~@8 b3 ~ b3 f#3 ~@3 f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3@2 ~@8 b2 ~@5 f#3 ~@7 g#3 ~ g#3 ~ g#3 ~ g#3 ~@3 g#3@2 ~@13 b3 ~ b3, e4@4 ~ e4@7 ~ e4@2 ~@2 f#3@2 c#4@7 b3@2 a2@2 b3@3 g#3@2 g#4@4 f#4@11 ~ f#4@3 g#3@2 c#3@5 ~ c#3@2 ~@2 f#3@2 ~@10 f#3@2 b2@5 a3@3 ~ f#3@3 ~@3 d#4@10 b3@2 d#4@12 f4@4 f4@5, f#3@2 ~ c#4@7 ~ c#4@7 a3@2 f#3@4 [b2,d#4]@3 d#4@2 a3@2 d#4@14 b3@4 g#3@2 ~@2 b3@4 g#3@2 c#4@11 ~ c#4@26 ~ b3@2 ~ b3@2 f#4@5 g#3@2 ~@2 c#3@7 ~ c#3@5 ~ c#3@2, ~ a3@5 ~@3 a3@5 f#3@2 [b2,e4]@5 e4@3 ~ f#3@7 g#2@14 g#3@2 c#3@7 f4@9 ~@3 e4@7 ~ e4@7 a3@2 f#3@4 b2@3 d#4@3 b3@2 ~ g#3@2 g#4@14 ~ b3@2 g#3@2 g#3@2 ~ g#3@3 g#3@3 ~, ~@34 b3@2 ~ b3@3 ~ b3@2 g#4@4 d#4@11 b3@2 g#3@3 ~@2 a3@3 ~ a3@3 ~ a3@3 ~@3 a3@2 f#3@2 e4@4 d#4@3 b3@3 a3@3 g#2@13 b3@4 g#3@2 f#4@2 b3@3 ~@2 b3@2 ~@4]/8", // B E5
L: "[f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~@3 f#3 ~@9 b2 ~@7 a3 ~@5 g#3 ~ g#3 ~ g#3 ~ g#3 ~ g#3 ~@10 b3 ~@7 b3 f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~@3 f#3 ~@9 b2 ~@11 g#3 ~ g#3 ~@5 g#3 ~ g#3 ~@7 g#3 ~@2 b3 ~@7 c#3, ~ a3@2 e4@15 a3@2 f#3@4 b2@2 a3@2 a2@2 ~ b3@2 g#3@2 g#4@4 f#4@7 g#3@2 c#3@7 ~ [c#3,f4]@5 f4@3 ~@3 e4@7 ~ e4@7 a3@2 f#3@4 b2@3 b3@3 a3@2 ~ d#3@6 b3@2 d#3@5 g#3@2 c#3@7 ~ c#3@6 b3@2, ~@5 a3@2 c#4@7 f#3 c#4@18 ~ b3@2 ~ b3@3 ~ b3@3 ~ b3@4 g#3@2 d#4@6 ~ b3@4 c#3@2 ~@10 f#3@2 ~@2 f#3@2 b2@5 a3@3 ~ f#3@3 a2@2 ~@2 g#2@6 g#3@2 g#2@7 b3@2 g#3@2 d#4@6 ~ b3@3 f4@3, ~@9 a3@2 f#4@5 b2@5 a3@3 ~ f#3@2 b3@2 f#3@3 g#2@14 ~ f#4@5 g#3@2 g#3@2 ~ g#3@3 g#3@3 ~@2 a3@3 ~ a3@3 ~ a3@3 ~ a3@4 f#3@2 e4@4 d#4@27 b3@4 g#3@2 ~ g#3@2 c#4@5, ~@10 f#3@2 ~ a3@4 f#3@2 e4@4 d#4@19 ~ d#4@7 b3@3 f#4@2 ~@4 c#4@11 ~ c#4@7 ~ c#4@7 ~@4 a3@2 ~ f#3@2 b3@2 ~@2 b3@2 g#4@6 b3@2 f#4@7 ~ f#4@2 ~ f4@4 g#3@3 ~]/8", // C#
M: "[~@7 a3 ~@7 a3 ~@2 a3 ~@4 a3 ~@2 a3 ~@4 a3, [f#3,e4]@5 e4@3 ~@3 c#4@5 ~ f#3@6 ~@2 f#3@6 ~, ~ a3@5 f#3@2 [f#3,e4]@5 e4@6 b3@2 f#4@3 ~@4 a3@2 b3@2, ~@3 c#4@5 ~ a3@5 f#3@2 [b2,d#4]@7 ~ [b2,d#4]@7 ~, ~@20 a3@2 b3@2 ~@3 b3@2 f#4@3]/2", // F#7 B
N: "f#3 ~@6 a3 f#3 ~@6 a3, e4@3 c#4@6 ~ f#3@3 e4@3, ~ a3@5 f#3@2 ~ a3@5 f#3@2, ~@2 f#3@3 e4@3 e4@3 c#4@5",
O: "~@2 a3 ~@4 a3 ~@2 a3 ~@4 a3, [b2,d#4]@7 ~ [b2,d#4]@7 ~, ~ f#3@6 ~@2 f#3@6 ~, ~@3 b3@2 f#4@3 ~@4 a3@2 b3@2, ~@4 a3@2 b3@2 ~@3 b3@2 f#4@3", // B
P: "[[f#3,e4] ~ g#4@32 ~@14, b2@9 ~@7, ~ [e3,g#3,b3,e4]@32 ~@15]/3", // F#7 E
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.6)
// other · distortion guitar
const distortion_guitar = note("<~@32 A B@2 C D E@4 ~@23 F G H I J K@2 L ~@8>".pickRestart({
A: "~@7 c#5", B: "[d5@6 c#5@7 ~ g#4@6 f#4@6 ~@2 f#4 g#4 a4 c#5]/2", C: "c#5@5 ~ c#5!2 b4@4 ~@2 f#4@2",
D: "f#4@2 f4@3 ~@2 a4", E: "[b4@6 b4!2 a4@5 ~ e4@6 d#4@4 f#4 g#4 a4 c#5 f#5 a5 b5@12 b5@2 ~ b5@13 ~@6]/4",
F: "~@15 a4", G: "d5@5 d5!3 c#5@5 ~ g4@2", H: "g#4@4 f#4@7 ~ f#4 g#4 a4 c#5", I: "c#5@5 ~ c#5!2 b4@5 ~ f#4@2",
J: "f#4@4 f4@8 ~@2 b4!2", K: "[e5 b4 e5@3 ~ e5@2 c#5 b4@2 a4@8 ~@5 a4@3 ~ b4@4]/2", L: "b4@6 b4@2 b4@7 ~",
})).s("gm_distortion_guitar").gain(0.46).pan(0.3)
// chords · pad warm
const pad_warm = note("<~@17 A@4 B@3 C D@4 E@2 F@8 G@2 H@2 ~@5 I@7 J@7 K@8 L@7 M@2 ~>".pickRestart({
A: "[f#3@4 ~@3 a3 ~@5 f#4 f4 d4, e4@3 d#4@3 ~@2, a3@2 ~@6 b3@6 ~@2 g#3@11 ~@5]/4",
B: "[~@2 b2 [b3,d#4]@2 ~, c#4 ~, f#3@7 ~@17, ~@4 a3@11 ~@9, ~ e4@2 ~@3]/3", C: "~@5 d5 c#5 b4, ~ [b3,f4,g#4]",
D: "[[e4,e5]@4 [c#4,c#5]@2 [e4,a4]@2 ~@8 [g#3,b3]@8 ~@5 d5 c#5 b4, f#3@2 g#4 f#4@4 f4, a4@3 a3@5 ~@4 c#4@4, ~@10 d#4@6 b4@13 ~@3]/4", // E C# A5 G#m
E: "[e5 a5 g#5 [b4,d#5,f#5], [e4,a4]@3 ~, f#3 b3, ~ c#5@2 ~]/2", // B A5
F: "[b4@12 ~@18 g#4 ~ c#4@16 f#5 ~@15 g#3@16 ~@8 f5@8 a5@12 c#5@4 [b3,b4]@8 [d#4,d#5]@4 [c#4,c#5]@4, [g#3,d#4]@16 c#3@13 f#4@2 a4@32 ~ [b4,b5]@32 ~@32, ~@12 f#4@12 f4@3 [c#4,d#4]@5 c#5 ~@15 b3@48 [e4,a4]@16 ~@16, ~@16 c#4@10 g#3@6 [f#3,a5]@32 ~@16 f#5 g#3@15 [f#3,e5]@24 [a3,a4]@8, ~@7 f4 [e4,e5]@6 [d#4,d#5]@6 c#4@8 ~@4]/8", // B D# C# G#5 B C#sus2 A5 F#m …
G: "[[b3,f#4,b4]@2 f#4 f4, g#3@15 ~, ~@8 c#4@7 ~]/2", H: "[e4@2 b3 ~, a3@23 ~@9, f#3@5 ~@3, c#4@7 ~@9]/2",
I: "[~@3 d#4 ~@3 b4 ~@8 b3@4 b4@2 a4@2 ~@13 d5 c#5 b4 ~@8 b3@4 ~@2 c#5@2, g#3@8 ~@8 f#3@31 ~ b4@27 ~@5 a4@28 ~@4, ~@2 b3@6 c#4@23 ~@9 a3@7 ~ g#3@32 f#3@32, ~ d#4@2 ~@3 g#4@2 ~@12 f#4@16 [f4,g#4]@4 e4@12 ~@4, ~@4 f#4@6 f4@4 ~@2 [e4,a4,c#5]@24 d#4@23 ~ c#4@32 ~@8 [a3,d#4]@8]/7", // Fm A Adim
J: "[~@4 d#4@4 ~@6 c#6@2 [e5,e6]@4 [c#5,c#6]@3 a5 g#5@2 f#5@2 d#5@2 c#5@2 ~@13 f#5 f5 [d5,b5] a5@4 ~@2 c#5@2, g#3@8 [f#3,e4]@4 ~ f#4@7 c#4@8, [f#4,b4]@24 [f4,c#5]@7 ~@15 a4@10 a3@7 ~ g#3@32 [f#3,e4]@16, b3@16 c#4@32 b3@40 f4@7 ~@9 a4@8, ~@56 d#4@8 b4@30 e5 ~ e5@12 ~@4]/7", // E C# G F#7 B5 C# F#7
K: "[~@40 f4@7 ~ [e5,e6]@8 [c#5,c#6]@4 [a4,a5]@4 [g#4,g#5]@8 [f#4,f#5]@8 [d#5,d#6]@8 [b4,b5]@4 [g#4,g#5]@4 [f#4,f#5]@8 ~@4 b3@2 ~@2 [c#5,c#6]@8 [a4,a5]@4 [f#4,f#5]@4, b3@48 a3@30 ~@2 g#3@31 ~ [f#3,a3,e4]@16, b4@23 ~@9 d#4@16 ~@4 [f4,f5]@4 ~@8, a3@15 ~ g#3@16 c#4@33 ~@31 c#4@32, ~@2 f#4@8 ~@2 e4@4 b3@11 ~@5]/8", // E C# A G# F# D# B G# …
L: "[e5@8 d#5@4 b4@4 ~@16 f4@15 ~ a3@23 ~ [b3,d#4]@8 [a3,c#4,f#4]@8 a3@24, b3@47 ~@65, a3 g#3@2 f#3@3 ~, ~@8 d#4@23 ~ c#4@39 ~@17 f#4@8 ~@16, ~@8 c#5@15 ~@33]/7", // B F#m
M: "[~ [g#3,e4,g#4,e5]@17 ~@14]/2", // C#m
})).s("gm_pad_warm").gain(0.33)
// other · epiano2
const epiano2 = note("<~@10 A B ~@4 C@2 ~@2 D E ~ F G H ~@14 I J K L M N O P Q R ~@22 S T U V W X ~@2>".pickRestart({
A: "~@8 b5@6 ~ c#4, ~@7 b4@7 b3@2", B: "b3 ~",
C: "[~@16 c#6@7 ~@9, g#4@12 g#5@2 b5@9 ~@9, ~@4 b4@19 ~@9, ~@8 c#5@15 ~@9, ~@10 f5@13 ~@9]/2",
D: "[c#4,g#4,b4,f#5]@7 ~ [d4,g#4,b4,f5]@3 d5@5", E: "[f#4,a4]@3 ~, c#5@7 ~", F: "~@5 g#4 b4 c#5", G: "d5 c#5 g#4 b4",
H: "c#5@5 ~@11", I: "c#5 b4 a4 g#4", J: "e4@3 ~", K: "~@14 b3 c#4", L: "b3@5 ~@3", M: "~@7 f#4 f4@4 c#4@3 ~",
N: "[f#3,a3,c#4,e4]@7 ~", O: "~@7 g#4, ~@14 g4 ~", P: "[g#3,b3,d#4,b4]@11 ~ d#5@4",
Q: "c#5@2 ~@5 b5, ~ [d4,f4,g#4,b4,c#5], ~@5 f#5@3, ~@3 g#5", R: "c#6@3 ~@5",
S: "[c#5,c#6] [b4,b5] [a4,a5] [g#4,g#5], ~@4 a#4 ~@11", T: "e6@5 ~ [c#5,c#6]@7 ~ [a4,a5]@2, [e4,e5]@5 ~@3",
U: "[g#4,g#5]@2 [f#4,f#5]@5 ~", V: "[e5,e6]@6 [c#5,c#6]@7 ~ [a4,a5]@2", W: "[g#4,g#5]@4 [f#4,f#5]@9 ~ [e4,e5]@2",
X: "[g#4,g#5]", // G#
})).s("gm_epiano2").gain(0.29).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
~@9 A@7 B A@3 C A@3 D A E A@3 B A F A E G E B@2 H I J K@2 L K@2 J M B G@6 N G@5 O P Q H R S T E U E V A@2 W X ~@3
>`.pickRestart({
A: "x ~@6 x!2 ~@7", B: "x ~@6 x!2 ~@6 x", C: "x ~@6 x!2 ~@4 x ~@2", D: "x ~@2 x ~@3 x!2 ~@6 x",
E: "x ~@6 x!2 ~@2 x ~ x ~@2", F: "~ x ~ x ~ x ~ x ~@3 x ~ x ~@2", G: "x ~@6 x!2 ~ x ~@5", H: "x ~@6 x!2 ~@2 x ~@3 x",
I: "~ x ~ x ~@3 x ~ x ~ x ~@3 x", J: "x", K: "x ~@14 x", L: "x ~@12 x ~@2", M: "~ x ~@2 x ~@2 x ~ x ~ x ~ x ~ x",
N: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~ x", O: "x ~@6 x!2 ~ x ~@2 x ~@2", P: "x ~@6 x!2 ~ x ~@4 x",
Q: "x ~@2 x ~ x ~ x ~ x ~@5 x", R: "x ~@2 x ~@3 x!2 ~@2 x ~ x ~@2", S: "x ~@2 x ~@3 x!2 ~ x ~@4 x",
T: "x ~@6 x ~ x!2 ~@2 x ~ x", U: "x ~@2 x ~@3 x!2 ~@4 x ~@2", V: "x ~@2 x ~@3 x ~ x!2 ~@2 x ~@2",
W: "x ~@6 x!2 ~ x ~@2 x ~ x", X: "~@7 x!2 ~ x ~@2 x ~ x",
})).gain(0.46)
// drums · rim
const rim = s("rim").struct("<~@9 A@7 B C ~@23 A@5 B A ~@26 D A@2 ~@3>".pickRestart({
A: "~ x ~ x", B: "~@4 x ~@6 x!2 ~@3", C: "~ x ~@2", D: "~@3 x",
})).gain(0.59)
// drums · snare
const snare = s("sd").struct("<~@17 A B@6 C B@7 D B@7 E ~@6 F G B@7 H B@7 I B J B K B L B M B N ~@5>".pickRestart({
A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@4 x!6 ~", D: "x ~@3 x ~ x ~@2 x!2 ~ x ~@2 x", E: "x ~ x ~ x!3 ~", F: "~@15 x",
G: "x ~@2 x ~@2 x ~ x ~ x ~ x ~ x ~", H: "~@4 x ~@2 x ~@2 x ~@3 x ~", I: "~ x!2 ~", J: "~@4 x ~@7 x ~@2 x",
K: "~@3 x!2 ~@6 x!2 ~@3", L: "~@4 x ~@6 x!2 ~@3", M: "~@4 x ~@6 x!2 ~@2 x", N: "~ x ~@2",
})).gain(0.52)
// drums · low tom
const low_tom = s("lt").struct("<~@16 [~@13 x!2 ~] ~@23 [~@13 x!2 ~] ~@23 [~@9 x ~@2 x!2 ~@2] ~@15>").gain(0.39)
// drums · hihat
const hihat = s("hh").struct(`<
A ~@8 B C B D E A F A G H I J I J D K ~@8 L M N O P Q R S T U V W X Y@2 Z AA AB AC@5 AD V AC@4 AE AF AD AG AH Y AG Y
AI Y AI AJ AK AL AM ~@3
>`.pickRestart({
A: "x!4", B: "x!5 ~ x ~", C: "x ~ x!5 ~", D: "x ~ x ~ x ~ x!2", E: "x!3 ~ x ~ x!2", F: "x!3 ~ x ~ x ~",
G: "~@2 x ~ x!4", H: "x ~ x ~ x!4", I: "x!8", J: "x!7 ~", K: "x!4 ~@4", L: "~@4 x ~ x ~ x!3 ~ x!4",
M: "x!5 ~ x!3 ~ x!3 ~@3", N: "x ~ x!2 ~ x!4 ~ x!2 ~@2 x!2", O: "x ~ x!2 ~ x!3 ~@2 x!2 ~@2 x!2",
P: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~ x!2 ~", Q: "~ x!3 ~ x!4 ~ x!2 ~ x!2 ~", R: "x ~ x!3 ~ x!10",
S: "x ~ x ~ x!3 ~ x ~ x ~@5", T: "~@3 x ~ x ~ x ~@8", U: "~@5 x ~ x ~@3 x ~ x ~@2", V: "~@3 x ~ x ~@3 x ~@3 x ~@2",
W: "~@3 x ~ x ~@3 x ~@3 x ~ x", X: "~ x ~ x ~ x ~@3 x ~@3 x ~ x", Y: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
Z: "~@2 x ~ x!2 ~ x ~@8", AA: "~@3 x ~ x ~@10", AB: "~@5 x ~@7 x ~@2", AC: "~ x ~@3 x ~@3 x ~@3 x ~@2",
AD: "~ x ~@4 x ~@9", AE: "~ x ~@3 x ~@3 x ~@5 x", AF: "~ x ~@3 x ~@7 x ~@2", AG: "~ x ~ x ~ x ~ x ~ x ~@3 x ~ x",
AH: "~ x ~@3 x ~@2 x ~@2 x ~ x ~ x", AI: "~ x ~@3 x ~ x ~ x ~ x ~ x ~ x", AJ: "~@4 x ~ x ~ x!8",
AK: "x!3 ~ x!3 ~ x!8", AL: "x!11 ~ x!3 ~", AM: "~ x!10 ~ x!3 ~",
})).gain(0.39)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@9 A B C D E F G D H I ~ C ~ C D ~@56>".pickRestart({
A: "~@5 x ~ x", B: "~ x ~@5 x", C: "~@7 x", D: "~ x ~ x ~ x ~@2", E: "~@3 x ~ x ~@2", F: "~ x ~ x ~ x ~ x",
G: "~@3 x ~ x ~ x", H: "~@3 x ~@4", I: "~ x ~@6",
})).gain(0.2)
// drums · mid tom
const mid_tom = s("mt").struct("<~@40 [~@15 x] ~@23 [~@11 x ~@2 x ~] ~@15>").gain(0.39)
// drums · open hat
const open_hat = s("oh").struct("<~@10 A ~ A ~ A ~@3 A ~ A ~ A ~@11 B ~@5 C ~@34 A@2 ~@3>".pickRestart({
A: "~@15 x", B: "~@13 x ~@2", C: "~ x ~ x ~@3 x ~ x ~@6",
})).gain(0.39)
// drums · high tom
const high_tom = s("ht").struct("<~@64 [~@15 x] ~@15>").gain(0.46)
// drums · crash
const crash = s("cr").struct("<~@29 A ~@2 B A ~@7 A ~@6 C A ~@6 D A ~ A ~@5 A ~ A ~ A ~@3 A ~@6>".pickRestart({
A: "x", B: "~ x ~@5 x ~@5 x ~@2", C: "~ x ~@7 x ~ x ~@3 x", D: "~@5 x ~@2 x ~@2 x ~@3 x",
})).gain(0.39)
// drums · ride
const ride = s("rd").struct(`<
~@17 A@2 ~@6 B C@3 D C@2 E ~@8 D C@4 F C G D C@6 H D C@6 I J K D C D C@3 ~@7
>`.pickRestart({
A: "x", B: "x ~ x ~ x ~ x!2", C: "x!8", D: "~ x!7", E: "x ~ x!2 ~ x!2 ~", F: "x!2 ~ x!5", G: "x ~@2 x ~@2 x ~@9",
H: "x!3 ~@5", I: "x ~ x ~@2 x ~@10", J: "~ x ~ x!3 ~ x", K: "x ~ x!2 ~@2 x!2 ~ x!2 ~ x ~ x ~",
})).gain(0.46)
// drums · tambourine
const tambourine = s("tb").struct("<~@19 [~ x ~@2]!54 ~@7>").gain(0.52)
stack(
bass, acoustic_guitar_steel, distortion_guitar, pad_warm, epiano2, kick, rim, snare, low_tom, hihat, hihat_soft,
mid_tom, open_hat, high_tom, crash, ride, tambourine
)
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.