Strudelify
Ti lascio una canzone cover art

1997 · Cosa Faro' Da Grande

Ti lascio una canzone

Paoli

KeyA majorTempo112 bpm
0:00/0:00
// Ti lascio una canzone — Paoli
// 112 bpm, 4/4, key A 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 89 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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(`<
  A B C D A B E F C G H I C J B K L M K N@2 A B C O@2 P Q G R I S A T U Q S R I G F A B A B V@2 C G W I C G H I X Y I Z
  AA AB G AC AD Y AB Z AA I AE G F G F AF@2 B I AG AA B I G F B AH@4
>`.pickRestart({
  A: "g1", B: "f#1", C: "e1", D: "a1@5 g#1@3", E: "e1@11 ~ f#1@12", F: "g#1", G: "a1", H: "d2", I: "b1", J: "a1 g1",
  K: "b1 a1", L: "g1@3 d2", M: "c#2 f#1", N: "g#1/2", O: "g1/2", P: "d2@11 ~ f#1@12", Q: "g1 b1", R: "a#1 f#1",
  S: "a1@23 ~", T: "a1@3 c#1", U: "d1 f#1", V: "[~@24 b2@23 ~, b1]/2", W: "d2@3 c#2", X: "e2@11 ~ g#1@12", Y: "a1 c#2",
  Z: "c2 g#1", AA: "c#2", AB: "b1@23 ~", AC: "b1@4 b1 c#2 d#2@2", AD: "e2 g#1", AE: "a#1", AF: "[~@24 c#3@23 ~, c#2]/2",
  AG: "e2@3 d#2", AH: "[~ b1@29 e1@44 ~@22]/4",
})).s("gm_fretless_bass").gain(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D A B E@2 F@2 G H F@2 I J K L M N@2 O P Q R ~@17 S T U V W X@4 Y@4 ~@16 Z AA AB AC AD AE@4 AF@2 ~@7
>`.pickRestart({
  A: "b3@2 f#4 d4", B: "a3@2 f#4@3 d4@3", C: "g#3@10 ~@2 f#4@3 ~@3 d4@6, ~@11 [g#3,b3]@3 ~@10",
  D: "~@3 e4@2 d4@2 ~, g3@5 ~@3, ~@2 f#4@3 ~@3", E: "[~@4 e4@11 ~ e4@31 ~]/2",
  F: "[d4@3 ~@5 d4@3 ~@2 a4@3, ~@9 d4@14 ~@10 d4@15, ~@15 a4@23 ~@10]/2",
  G: "~@9 f#4@14 ~, f#4@6 c#4@17 ~, ~@3 a3@20 ~", H: "c#4@3 d4@3 a4@3 f#4@2 ~ e4@12", I: "~@6 c#4@3 e4@13 ~@2",
  J: "e4@12 f#4@11 ~", K: "f#4@3 g4@3 f#4@2", L: "f#4@12 e4@11 ~", M: "e4@5 ~ d4@6 e4@5 ~ f#4@6, d4 ~@23",
  N: "[~@3 f#4@5, b4@17 ~@7, ~@9 e4@35 ~@4]/2", O: "b4@6 ~@3 b4@14 ~, ~@6 e4@17 ~",
  P: "~@6 e4@3 d4@14 ~, a4@23 ~, ~@6 d4 ~@17", Q: "~@3 b4", R: "a#4", S: "~@9 a4@14 ~, ~ c#4@6 ~, ~@6 d4@17 ~",
  T: "[f#4,a4]@2 ~@4 [d4,a4]@3 [d4,a4]@13 ~@2, d5 ~@5, e4 ~@23", U: "~@9 a4@14 ~, ~@3 c#4@20 ~, ~@6 d4@17 ~",
  V: "[a4,d5]@9 [e4,c#5]@8 ~@7", W: "~@7 f#3",
  X: "[~@33 d4@17 ~@7 a4@31 ~@8, b3@23 ~@31 e4@33 ~@9, d4@9 d4@22 ~@20 d4@22 ~@23, g3@6 g3@17 ~@7 g3@18 ~@48, ~@3 f#3@20 ~@4 f#3@21 ~@48]/4",
  Y: "[~@33 d4@26 ~@14 e4@10 ~@13, d4@3 g3@9 ~@3 g3@14 ~@19, ~@3 f#3@21 ~@3 f#3@20 ~@24 f#3@10 ~@15, ~@9 d4@21 ~@42 b3@10 ~@14]/4",
  Z: "~@9 b4@14 ~, ~ d#4@6 ~, ~@6 e4@17 ~", AA: "[g#4,b4]@2 ~@4 [e4,b4]@3 [e4,b4]@13 ~@2, e5 ~@5, f#4 ~@23",
  AB: "~@9 b4@14 ~, ~@3 d#4@20 ~, ~@6 e4@17 ~", AC: "[b4,e5]@9 [f#4,d#5]@8 ~@7", AD: "~@7 g#3",
  AE: "[~@33 e4@17 ~@7 b4@33 ~@6, c#4@10 ~@8 f#4@11 ~@3, e4@9 e4@22 ~@20 e4@36 ~@9, a3@3 a3@10 ~@2 a3@11 ~@22, ~@3 g#3@20 ~@4 g#3@21 ~@48]/4",
  AF: "[~@33 e4@14 ~, e4@6 a3@21 ~@3 a3@17 ~, ~@3 g#3@21 ~@3 g#3@20 ~, ~@9 e4@22 ~@17]/2",
})).s("gm_acoustic_guitar_steel").gain(0.37).pan(0.3)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~@11 A ~@31 B C@3 ~@7 D ~@17 E F@3 ~@13>".pickRestart({
  A: "~@9 e4@2 ~@13", B: "c#5 ~@23", C: "[~@23 f#4@9 ~@10 [d4,a4]@18 ~@12]/3", D: "c#4@5 ~@7", E: "d#5 ~@23",
  F: "[~@23 g#4@9 ~@10 [e4,b4]@18 ~@12]/3", // E5
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.3)

// chords · french horn
const french_horn = note("<~@42 A B@2 ~ C D@2 E@2 F@2 G ~@17 H I@2 ~ J K@2 L@2 K@2 M@6 ~>".pickRestart({
  A: "~@5 d5 ~@2", B: "[~@3 e5@6 c#4 d4 a4 ~@4]/2", C: "~@7 [a#3,f#4]",
  D: "[[b3,g4]@23 ~ [d4,g4]@24, ~@23 [a3,b3]@25]/2", E: "[d2,a3,d4,f#4]/2",
  F: "[[b3,g4]@23 ~ [d4,g4]@24, ~@23 [a3,b3]@24 ~]/2", G: "[d2,a3,d4,f#4]", H: "~@5 e5 ~@2",
  I: "[~@3 f#5@6 d#4 e4 b4 ~@4]/2", J: "~@7 [c4,g#4]", K: "[[c#4,a4]@23 ~ [e4,a4]@24, ~@23 [b3,c#4]@25]/2",
  L: "[e2,b3,e4,g#4]/2", // E
  M: "[[a3,c#4]@23 ~ [g#3,b3]@23 ~ [f#3,a#3]@24 ~ [a3,b3]@28 ~ b4@41 ~, e4@99 ~@2 [e4,g#4]@43, c#5@17 ~@127]/6", // A G#m F# Asus2 E
})).s("gm_french_horn").gain(0.06).pan(0.3)

// chords · french horn · soft notes
const french_horn_soft = note("<~@42 A B C D@2 ~@24 E F G H@2 ~@13>".pickRestart({
  A: "~@3 c#4@3 d4@3 a4@3 c#5@3 ~@3 a5@3 c#6@2 c#6", B: "d6 c#6 a5 ~@5", C: "~@4 c#5 d5 a5@2", D: "[f#5@3 ~]/2",
  E: "~@3 d#4@3 e4@3 b4@3 d#5@3 ~@3 b5@3 d#6@2 d#6", F: "e6 d#6 b5 ~@5", G: "~@4 d#5 e5 b5@2", H: "[g#5@3 ~]/2",
})).s("gm_french_horn").gain(0.03).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@25 [~@14 a4@3 b4@5 ~@2, d5, ~@3 g4 ~@2] ~@28 [~@2 a5@3 c#6@3 e6@3 d#6@12 ~] ~@34>")
  .s("gm_string_ensemble_2").gain(0.64).pan(1)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@25 A@8 B C@8 ~@12 D@8 E@2 F@7 ~@11 G@6 ~>".pickRestart({
  A: "[~@12 g4@2 [f#4,a4]@3 [e4,b4]@3 ~@4 f#4@12 e4@11 ~@7 g4@2 f#4@3 [g3,g4]@12 ~ a4@11 [a3,d5]@11 ~@13 f#3@12 b3@24 a3@24 [a3,b3,d4]@25, ~@20 d4@4 d5@47 [f#3,a5]@13 ~@10 a#3@13 ~@85, ~@21 a4@33 ~@17 f#4@24 [e4,c#5]@25 ~@72, ~@21 a3@26 d4@26 ~@46 [d4,d5]@48 ~@25]/8", // F#m E5 G D5 Bm7 F#m C#m D
  B: "e4@5 a4@3 b4@3 [a3,c#4,a4,c#5]@3 [b3,d4,b4,d5]@3 [c#4,e4,c#5,e5]@6 [d4,f#4,a4,f#5], c#4@11 ~@13", // A Bm C#m D
  C: "[~@11 [c#4,e5]@6 ~ a3@5 ~@6 g4@3 f#4@3 ~ g3@11 [f#3,a4,a5]@12 [d5,d6]@12 a#3@12 f#3@12 ~@24 a3@23 ~@2 f#4@23 [g3,a3,d4]@24 ~, ~@11 e4@12 [b3,d4]@24 [a3,f#4]@24 ~@24 [d4,f#5]@48 d5@49, ~@17 d5@32 ~@46 b3@24 ~@23 g#3@25 ~@25, ~@35 g4@13 ~@23 [e4,c#5,c#6]@25 b4@48 ~@48]/8", // C#m F#m D Gsus2 Bm D C#m
  D: "[~@12 d#5@2 [g#4,e5]@3 ~@7 g#4@12 f#4@11 ~@7 a4@2 g#4@3 [a3,a4]@11 ~ [g#3,b4]@12 ~@24 g#3@12 c#4@24 b3@24 [b3,c#4,e4]@25, ~@17 [f#4,f#5]@4 b4@33 ~@16 b5@14 ~@10 c4@13 ~@12 [e4,e5]@48 ~@25, ~@20 e4@4 b5@23 e4@26 ~@10 [b3,e5]@13 ~@96, ~@21 b3@26 e6@24 g#4@24 [f#4,d#5]@25 ~@72]/8", // C#m A G#m C#m7 F# E E5 D#m
  E: "[f#4@5 b4@3 c#5@3 [b3,d#4,b4,d#5]@3 [c#4,e4,c#5,e5]@3 [d#4,f#4,d#5,f#5]@6 [e4,g#4,g#5]@12 [d#4,f#5]@6 ~ b3@5 e4, d#4@11 ~@12 b4@25, ~@35 f#4@13, ~@41 e5@7]/2", // B C#m D#m E D#m
  F: "[~@6 a4@2 g#4@3 ~ a3@11 [g#3,b4,b5]@12 [e5,e6]@12 c4@12 g#3@12 ~@24 b3@24 ~ g#4@23 [a3,b3,e4]@25, c#4@23 [b3,g#4]@24 ~@24 [e4,g#5]@48 a#3@25 ~@24, ~@11 a4@13 ~@23 [f#4,d#5,d#6]@24 c#4@24 ~@24 e5@49, ~@3 c#5@2 ~@2]/7", // G#m E Asus2 E D#m
  G: "[e4@143 ~]/6",
})).s("gm_string_ensemble_1").gain(0.39)

// chords · epiano1
const epiano1 = note("<~@49 A B@2 ~ C ~@24 D E@2 ~ F@6 ~>".pickRestart({
  A: "~@12 f#4@2 ~ e4@2 ~ [d4,a4]@4 ~@2, ~@2 a4 ~, ~@12 e4 ~@11", // D5
  B: "[[d4,a4]@5 ~ f#4@3 e4@6 d4@28 ~@5, ~@6 a4@37 ~@5, ~@6 e4 ~@41]/2", // D5
  C: "~@12 f#4@2 ~ e4@2 ~ [d4,a4]@6, ~@2 a4 ~, ~@12 e4 ~@11", // D5
  D: "~@12 g#4@2 ~ f#4@2 ~ [e4,b4]@4 ~@2, ~@2 b4 ~, ~@12 f#4 ~@11", // E5
  E: "[[e4,b4]@5 ~ g#4@3 f#4@6 e4@28 ~@5, ~@6 b4@37 ~@5, ~@6 f#4 ~@41]/2", // E5
  F: "[~@12 g#5@3 f#5@3 ~@12 g#5@3 f#5@6 ~@21 g#5@3 f#5@3 ~@13 g#5@4 f#5@7 e5@10 ~@3 e5@40 ~, ~@18 e5@12 f#5 ~@8 e5@22 ~@5 e5@13 ~@22 g#4@42 ~, ~@24 b4@24 a#4@25 a4@29 b4@41 ~]/6",
})).s("gm_epiano1").gain(0.22).pan(0.6)

// other · orchestral harp
const orchestral_harp = note("<~@42 A B@2 C@2 ~@24 D E@2 F@2 ~@13>".pickRestart({
  A: "~@3 c#5@3 d5@3 a5@3 c#6@3 d6@3 a6@3 c#7@2 c#7", B: "[d7 c#7 a6 e6@6 c#5 d5 a5 c#6 d6 a6@2]/2", C: "[f#6@3 ~]/2",
  D: "~@3 d#5@3 e5@3 b5@3 d#6@3 e6@3 b6@3 d#7@2 d#7", E: "[e7 d#7 b6 f#6@6 d#5 e5 b5 d#6 e6 b6@2]/2", F: "[g#6@3 ~]/2",
})).s("gm_orchestral_harp").gain(0.14).pan(0.8)

// chords · piano
const piano = note(`<
  A@4 B C D@2 E@4 F@6 G@3 H@2 I@3 J@4 K@2 L@6 M N O P Q@2 R@3 S@2 T@2 U@2 V@4 W@2 X Y Z AA AB@2 AC@2 AD@2 AE AF@3 AG@3
  AH@2 AI@4 AJ@6 ~
>`.pickRestart({
  A: "[~@12 d5@14 ~@22 d4@26 ~@21 f#4, d4@26 ~@7 d4@10 ~@53, ~@18 d5@19 ~@11]/4",
  B: "~@6 e5@16 f#5 g5, g4@11 ~, ~@3 b4@20 ~", C: "f#5@2 e5@2 ~@4 d6@2 ~ c#6@3 a5@10, ~ f#5 ~@4, ~@3 a5@2 ~@7",
  D: "[~@20 a4@4 b4@23 ~, g#4@5 ~ a4@4 ~@14, ~@2 b4@3 ~@19, ~@8 e5@8 e5@31 ~]/2",
  E: "[~@6 g3@3 d4@6 ~@15 g3@2 ~ d4@4 ~@2 a4@8 ~@34 [a3,e4,f#4]@3 [a3,c#4,e4]@12, e2@4 a2@4 d3@5 a4 ~@2, d4@7 ~@8 a4@17 ~@16 f#4@24 c#4@12 ~@12, ~@3 f#3@8 ~@13 d4@7 ~@16 c#4@24 ~ b2@24, ~@27 f#3@5 ~@15 a3@28 d4@9 ~@12]/4", // F#m7 A
  F: "[~@48 a4@22 ~@10 [f#3,c#4,e4]@4 ~@8 [d#4,f#4]@3 ~ b4@9 ~@9 [d3,f#4]@6 [c#3,b3]@12 [f#2,a#3,e4]@12, e2@15 a4@21 g2@12 f#2@36 ~@11 d4@10 [d4,g4,b4]@14 ~ f#4@24, d4@9 d4@14 ~ d4@6 g3@9 a4@9 ~@23 a3 e4@4 a3@7 ~ [d#4,f#4]@8 ~@3 f#4@19 c#4@29 ~, ~@3 f#3@21 a2@9 d4@14 e4@25 b2@12 ~ a2@11 d5@15 d5@9 ~@24, ~@6 g3@18 ~@3 f#3@19 f#3@24 f#3@10 ~@4 b3@4 b3@8 g2@23 ~@25]/6", // F#7 D#m D C#7 F#7 G D#m
  G: "[[c#4,e4]@3 d4@3 e4@3 f#4@2 ~@13 f#5@11 ~, [b2,a3]@12 [a2,a3,c#4]@27 f#4@3 d5@28 ~@2, ~@22 d4@5 d4@6 c#5@37 ~@2, ~@23 f#4@7 f#4@6 d4@34 ~@2, ~@12 [g#2,g#3,b4]@23 ~]/3", // C#m B7 A G#m
  H: "[~@13 d4 ~ a3, g2 f#2, b4@3 b4@5 a4@3 d5@3 d4@2, ~@3 b3@19 a3@17 [e4,a4]@9, ~@6 e4@15 ~@2 d4@7 e5@17 ~]/2", // A5
  I: "[[a3,d4,f#4]@3 ~@15 d4@17 ~, e2@11 g3@24 ~, ~@6 [b3,d4,g4]@17 a#3@47 ~@2, ~@12 e4@23 ~, ~@24 g2@41 ~@7]/3", // D G
  J: "[~ f#4@11 d4@6 ~@12 g4@3 f#4@3 ~@6 b4@3 ~@45 [a#4,g5]@6, [d2,a3,d4]@12 f#2@12 b3@15 g3@5 ~ d5@26 c#4 [a#2,e4]@24, ~@12 [a3,e4]@9 ~@3 a4@36 d6@23 c#4 f#2@12, ~@9 d4@14 ~ [a2,f#5]@24, ~@12 [g2,g3]@6 [b2,g4]@17 [f#3,a#3]@13]/4", // D# D5 A#dim A5 D G Em F#
  K: "[[a4,f#5]@8 ~@3 c#5@3 [a4,c#5]@2, b2, ~ [a2,f#5], ~@4 a4@3 ~, ~@11 e5@5]/2", // D A D
  L: "[~@30 a3@12 ~@6 [d2,d3,d4,f#4,a4]@12 [d4,a4]@12 ~@18 b4@3 ~@14 d6@10 ~@3 a#2@12 ~@6 [a#4,g5]@6, [g2,a4,b4,d5]@24 ~@6 [f#2,e4]@12 [b2,g4]@17 a#3@10 ~@3, ~@24 a2@37 ~@11 [g2,d4,a4]@15 g3@5 ~@4 [a2,f#5]@24 e4@18 ~@6, ~@27 e3@34 ~@11 g3@6 g4@3 f#4@9 ~@3 d5@26 c#4@10 ~@3 [f#2,c#4]@12, ~@42 [a3,c#4,e4]@19 ~@11 b3@22 ~@23 f#3@21 ~@6]/6", // D D5 D# G F#7 Em Gsus2 D …
  M: "[b2,a4,f#5]", N: "f#5@9 c#5@8 ~ [a4,c#5]@6, a2, a4@17 ~@7, ~@3 e5@5", O: "[g#4,b4,d5]@16 ~@2 e5@3 c#5@3, g#2",
  P: "[g2,a4], d5@11 ~, b4@5 ~", // Gsus2
  Q: "[~@21 c#6@2 ~@10 e5@15, ~ c#4@4 d5@4 c#6 a5@6, ~@6 d4@12 a5@5 c#6 d6@24, ~@3 a4@13, ~ c#5@3]/2",
  R: "[~@23 [a#3,f#4], ~@3 c#4@12 d5@9 f#5@18 b2@28 ~@2, ~ d4@2 a5@5 ~@4, ~@9 a4@39 b1@23 ~, ~ c#5@3 ~@2]/3", // D#m
  S: "[[e2,b3,g4]@23 ~ [a2,d4,g4]@23 ~, ~@23 [a3,b3]@24 ~]/2", // Em Dsus4 Asus2
  T: "[f#4@12 e4@3 ~@3 [d4,a4]@6 a4 ~@5 f#4@2 ~@7 [d4,a4]@9, [d2,a3], d4@5 e4@3 d4@5 ~@3, ~@12 f#4@12 ~@6 e4 ~@2 e4@15, ~@4 a4@2 ~@4 a4@3 ~@3]/2", // D5
  U: "[[b3,g4]@5 ~ [a2,d4]@6, e2@23 [a3,b3]@24 ~, ~@12 g4@11 ~]/2", // Em D5 Asus2
  V: "[f#4@12 e4@2 ~@10 [a3,c#4,e4]@12 [b3,d#4,f#4]@11 ~@2 g#4@11 e4@6 ~@12 a4@3 g#4@3 ~@6 c#5@3 e5@2 ~, [d2,a3]@24 b1@23 ~ [e2,e4]@12 g#2@12 [a2,a3]@12 [c#3,a4]@12, d4@18 d4@18 ~@11 b3@13 [b3,f#4]@9 ~@3 c#4@15 a3@5 ~@4, ~ [f#4,a4] ~@4 b4@2, ~@15 e4@8 ~@43 e4@28 ~@2]/4", // A B D5 E A F#m B5 F#m
  W: "[g#5 ~@11 e6 ~@11 c3@12 ~@6 [c5,a5]@6, b2@23 d#4@12 ~ g#2@12, ~@11 [g#3,c4]@10 ~@3, ~@4 f#4@3 ~, ~@18 d#4@5 ~]/2", // F G#
  X: "[c#3,b4,g#5]", Y: "g#5@9 d#5@8 ~ [b4,d#5]@6, b2, b4@17 ~@7, ~@3 f#5@5", Z: "[a2,b4,c#5], e5@11 ~",
  AA: "~@6 b3@11 ~ [b3,d#4,f#4]@6, b2, ~@3 f#3@19 ~@2", // B
  AB: "[[e2,e4,g#4,b4]@4 [e4,b4]@4 ~@7 e5, ~@12 [g#2,f#4]@27 a3@3 c#5@5 ~, ~ [a2,c#4,e4,b4], ~@2 a3 [c#3,a4], ~@10 a4 g#4@5]/2", // E E5 G#7 A F#m
  AC: "[~@4 e6@3 ~@7 [c5,a5]@2, b2, g#5@7 g#3@5 [g#2,d#4]@4, ~@22 c4@25 ~, ~@23 d#4 [c3,f#4,d#6]@24]/2", // F G#5 Cdim
  AD: "[[b4,g#5]@8 ~@3 d#5@3 [b4,d#5]@2, c#3, ~ [b2,g#5], ~@4 b4@3 ~, ~@11 f#5@5]/2", // E B E
  AE: "~@7 d#5, [a#2,a#4,c#5,e5], ~@3 f#5", // A#dim
  AF: "[~@45 d#6@2 ~@10 f#5@15, [a2,c#5]@12 d#5@5 d#6 b5@6, e5@11 b4@13, b4@10 e4@3 e5@11, ~@27 d#4@15 b5@5 d#6 e6@24]/3", // A
  AG: "[~@8 g#5@8 ~@7 [c4,g#4], ~ d#4@4 e5 b5@2 c#3@16, ~@6 e4@17 [e5,f#5]@42 ~@7, ~@3 b4@13 c#2@8, ~ d#5@3 ~@2]/3", // Fm Esus2
  AH: "[[f#2,c#4,a4]@23 ~ [b2,e4,a4]@24, ~@23 [b3,c#4]@24 ~]/2", // F#m Esus4 Bsus2
  AI: "[~@12 f#4@2 f#4@4 e4@6 ~@9 f#4@6 e4@3 ~@6 c#4@23 ~ [b2,e4,a4]@23 ~, [e2,b3]@42 ~@6 [f#2,a4]@25 ~@23, g#4@30 f#4@2 ~ b4@37 ~@26, e4@18 ~@6 e4@12 ~@35 [b3,c#4]@24 ~, ~@12 b4@12 b4@7 g#4@31 ~@34]/4", // Esus4 E5 F#m Bsus2
  AJ: "[~@12 g#5@3 f#5@3 ~@12 g#5@3 f#5@6 ~@21 g#5@3 f#5@3 ~@13 g#5@4 [c#5,f#5]@7 ~@13 e6@40 ~, [a2,c#5]@24 [g#2,b4]@24 [f#2,a#4]@24 b4@11 ~@8 b4@11 b5@40 ~@2, ~@18 e5@12 f#5 ~@8 e5@22 ~@5 e5@13 ~@11 e5@10 e5@44, ~@73 [b2,a4]@28 g#5@41 ~@2, ~@101 e2@34 ~@9]/6", // F#5 A G#m F# B7
})).s("gm_piano").gain(0.48)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  A B C D E F G H I@4 J@3 K L M N O@2 P@5 Q R@2 S@2 T U@2 V W@2 X Y@2 Z AA ~@13 AB AC@2 AD AE AF AG@2 AH AI@2 AJ AK@2 AL
  AM ~@18
>`.pickRestart({
  A: "~@5 e4 ~@2, g2@23 ~, ~@6 d3@17 ~, ~ g3", B: "~ d3@2 ~@3 d3@2, f#2@11 ~ f#2@12, ~@9 [d3,e4]@5 ~@10",
  C: "~@5 e4 ~@2, e2@23 ~, ~ b2@3, ~@12 b3@11 ~", D: "~@3 [e3,g3]@3 [e3,g3]@8 ~ [g#2,f#3,c4]@8 ~, a2@7 ~@5",
  E: "~@5 e4 ~@2, g2@11 ~, ~@3 d3@8 ~, ~@12 g3@11 ~", F: "~@3 d3@5 ~ e4@3 ~@6 d3@6, f#2@11 ~ f#2@12, ~@9 d3@2 ~@13",
  G: "g#3@7 ~ g#3@4 a3@7 ~ a3@3 ~", H: "b3",
  I: "[~@3 f#3@3 ~@15 g3@3 ~@3 f#3@3 ~@12 f#3@4 ~@2 c#4@14 ~@4 c#4@8 ~@6 c#4 d4@2 ~@7 f#3@3 a3@3, ~@6 g3@12 f#3@6 ~@6 g3@12 ~@4 f#3@15 ~@35, ~@5 a4@7 ~ a4@5 ~@14, ~@47 a3@14 ~@2 a3@11 ~@10 c#4@9 ~@3]/4",
  J: "[~ f#3 ~@5 g3 ~ f#3 ~@4 f#3 a3 ~@2 a3@4 c#4@2, ~ g3@2 f#3 ~ g3@2 ~ e4@2 ~@2, ~@5 a4@7 ~ a4@5 ~@6, ~@51 f#3@11 ~@10]/3",
  K: "~@4 a3@4 c#4@5 ~@3 b3@4 d#4@4", L: "~@3 c#4, ~@3 g3@13 f#3@8, ~@6 b3@11 a3@6 ~, ~@3 e4@3 ~@2",
  M: "b3@3 ~@3 b3@6 a#3@11 ~, ~@3 c#4@20 ~", N: "[f#3,a3]@7 ~",
  O: "[~@6 b3@17 ~ [d4,f#4]@24, ~ f#3@14 ~, ~@23 b3@25]/2", // D
  P: "[~@23 [d4,a4]@22 ~@3 [a3,d4]@5 ~ d4@9 d4@8 ~@2 e4@43 ~@4, g2 ~@4, ~ b3@7 ~@16 a#3@14 ~@2, ~ e4@3 ~@16, ~@22 a3@23 ~@2 f#3@5 ~@2 [g3,b3]@17 g3@43 ~@6]/5", // D5 G
  Q: "[f#3,a3,d4] [a3,d4,e4]", // D Asus4
  R: "[[g3,b3]@15 ~@14 b3 d4@3 a3@14 ~, d4@12 ~@3 g3@17 ~@16, ~@18 b3@11 ~@19, ~@7 d4@2 c#4@7, ~ f#4]/2", // G
  S: "[a#3@3 c#4@3 ~@6 f#3@14 ~@7 d4@15, e4@9 c#4@13 ~@8 b3@18, ~@6 a#3@17 ~@4 f#3@21]/2", T: "f#4@3 e4@3 c#4@2",
  U: "[~@9 d4@12 ~@2 a4@3 ~ c#4@9 a3@3 [b3,d4]@3 [c#4,e4]@6, ~ g3@6 ~@5 c#4@2 ~@2, ~@6 b3@15 ~ c#4@4 ~ a4@14 ~@7]/2", // Bm C#m
  V: "[a3,d4,f#4]@5 ~ [a3,e4]@6", // D A5
  W: "[~@27 c#4@3 ~@3 a3@14 ~, ~@12 d4@17 ~ d4@17 ~, ~@15 a3@5 ~ a3@12 ~@15, ~@18 g4@6 f#4@19 ~@5]/2",
  X: "a#3@17 ~ [e3,c#4]@5 ~", // C#m
  Y: "[[d3,b3]@3 ~@6 d4@3 ~@9 f#3@4 ~@8 e4@9 c#4@6, ~@3 f#3@17 ~@7 f#3@10 ~@11, ~@6 b3@9 d4@17 ~ d4@3 ~@12, ~@3 f#4@5 ~@4, ~@9 b3@5 ~ a3@3 ~@6]/2", // G
  Z: "~ b3, f#4@8 ~ f#4@15, ~ b3@2 ~@5, ~ d4@3", AA: "~ a3, d4@8 ~ d4@15, ~ g3@7, ~@6 a3@5 ~@13",
  AB: "[g#3,b3,e4]@5 ~ [b3,e4,f#4]@6", // E Bsus4
  AC: "[[a3,c#4]@15 ~@15 e4@3 b3@13 ~@2, e4@20 ~ e4@6 d#4@19 ~@2, ~@15 a3@17 ~@16, ~@18 c#4@11 ~ c#4 ~@17, ~@12 g#4@11 ~]/2", // A
  AD: "c4@3 d#4@3 ~@6 g#3@10 ~@2, f#4@9 d#4@13 ~@2, ~@6 c4@17 ~", AE: "~@3 e4@5, ~ g#3@7, ~ c#4@3",
  AF: "g#4@3 f#4@3 d#4@2",
  AG: "[~@9 e4@12 ~@2 b4@3 ~ d#4@9 b3@3 [c#4,e4]@3 [d#4,f#4]@6, ~ a3@6 ~@5 d#4@2 ~@2, ~@6 c#4@15 ~ d#4@4 ~ b4@13 ~@8]/2", // C#m D#m
  AH: "[b3,e4,g#4]@5 ~ [b3,f#4]@6", // E B5
  AI: "[~@27 d#4@3 ~@3 b3@14 ~, ~@12 e4@17 ~ e4@17 ~, ~@15 b3@5 ~ b3@12 ~@15, ~@18 a4@6 g#4@19 ~@5]/2",
  AJ: "c4@17 ~ [f#3,d#4]@5 ~", // D#m
  AK: "[[e3,c#4]@3 ~@6 e4@3 ~@9 g#3@4 ~@8 f#4@9 d#4@6, ~@3 g#3@17 ~@7 g#3@10 ~@11, ~@6 c#4@9 e4@17 ~ e4@3 ~@12, ~@3 g#4@5 ~@4, ~@9 c#4@5 ~ b3@3 ~@6]/2", // C#m
  AL: "~ c#4, g#4@8 ~ g#4@15, ~ c#4@2 ~@5, ~ e4@3", AM: "~ b3, e4@8 ~ e4@15, ~ a3@7, ~@6 b3@5 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.33).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~@26 A@7 B A@8 C@4 ~ A@6 D E A@7 B A@8 C@4 ~ A@9 F G ~@2>".pickRestart({
  A: "x", B: "x ~@2 x", C: "~ x", D: "x ~@6 x", E: "~@3 x ~@3 x", F: "~ x ~@22", G: "~ x ~@2",
})).gain(0.8)

// drums · rim
const rim = s("rim").struct("<~@26 [~ x]!16 ~@5 [~ x]!7 ~@22 [~ x]!9 [~@5 x ~@2] ~@3>").gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@55 [~ x]!16 ~@18>").gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@26 A B@6 C A B@6 D E F E ~@2 A B@6 C A B@5 G H A B@2 D I B@2 D E F E ~@2 J K B J B K A B L M ~@3
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x!2 ~@2", D: "x!3 ~", E: "~@3 x ~@4", F: "x ~@2 x ~@4", G: "x ~ x!2", H: "x",
  I: "x!3 ~ x ~ x ~", J: "~@2 x ~ x!3 ~", K: "x ~ x ~ x!3 ~", L: "x ~@5 x ~@5 x ~@6 x ~@4", M: "~ x ~@6 x ~@6 x ~@8",
})).gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@26 A B C B C B@2 ~ B@2 C B@4 ~@3 D ~@2 C B C B C B@2 ~@7 E@2 ~@3 F ~@6 D ~@2 G ~ C G B G C B ~@5
>`.pickRestart({
  A: "~ x ~ x ~ x ~@2", B: "~@5 x ~@2", C: "~ x ~@3 x ~@2", D: "x", E: "~ x ~@2", F: "~@3 x", G: "~ x ~@6",
})).gain(0.16)

// drums · low tom
const low_tom = s("lt").struct("<~@54 [~@3 x] ~@34>").gain(0.8)

// … 42 more lines

More by Paoli