Strudelify

Adesso tu

Eros Ramazzotti

KeyF minorTempo70 bpm
0:00/0:00
// Adesso tu — Eros Ramazzotti
// 70 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 2 "BASS" named as a bass, played on electric bass finger (its electric guitar jazz patch is not one)
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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 bass finger · "BASS"
const bass = note(`<
  ~@4 A B C D A E F G H ~@18 I J ~ K L M N O A P Q R A S T U V ~@3 W L X Y Z A S AA AB A S AC AD AE AF AG AH AI AJ AK AG
  AH AL AM AN ~@9
>`.pickRestart({
  A: "ab2@6 ~ ab2 g2@6 ~ g2", B: "f2@6 ~ f2 eb2@4 ~ eb2 ab2 eb2", C: "db2@6 ~ db2 db2@3 ~ c2@4",
  D: "bb1@6 f2 bb2 eb2@3 eb1 ~ eb1 eb2 [c2,db2]", E: "f2@6 ~ f2 eb2@5 f2 ab2 f2", F: "db2@5 db3 ab2@2 db2@2 ~ db2 c2@4",
  G: "bb1@5 f2 bb2@2 eb2@3 eb2 eb1@4", H: "ab1@9 ~@7", I: "bb1", J: "eb1@7 ~", K: "f2@3 c3 f3 c3 f2@2 c2@8",
  L: "bb1@13 ~ bb1@2", M: "c2", N: "db2@5 ab2 db3 ab2", O: "eb2@3 ~", P: "f2@6 ~ f2 eb2@5 f2 [ab2,a2] f2",
  Q: "db2@6 ~ ab2 db3@4 c2@4", R: "bb1@3 f2 bb2 f2 bb1@2 eb2@2 eb1@2 eb2 ~ eb2@2", S: "f2@6 ~ f2 eb2@3 f2 ab2 f2 eb2@2",
  T: "db2@5 ab2 db3 ab2 db2@4 c2@4", U: "bb1@3 f2 bb2@2 bb1@2 eb2@2 ~ eb2 eb1@3 ~", V: "ab1 ~",
  W: "~@3 f2 f3 c3 f2@2 c2@8", X: "c2@13 ~ c2@2", Y: "db2@13 ~ db2@2", Z: "eb2 ~",
  AA: "~@3 ab2 ~ ab2 db3@2 db2@3 ~ c2@4, db2@5 ~@11", AB: "bb1@3 f2 bb2@2 bb1@2 eb2@2 eb1@3 eb2@3",
  AC: "db2@3 ab2 db3@2 db2@4 ~ db2 c2@4", AD: "bb1@3 f2 bb2@2 bb1@2 eb2@2 ~ eb2 eb1@4",
  AE: "ab1@5 ~ ab1 ~ e1@4 e2@2 e1@2", AF: "a2@7 a2 ab2@6 ~ ab2", AG: "gb2@6 ~ gb2 e2@3 gb2 a2 gb2 e2@2",
  AH: "d2@5 a2 d3@2 d2@3 d2 db2@3 ~", AI: "b1@5 gb2 b2@2 e2@3 e2 e1@4", AJ: "a1@4 ~ e2@3, ~@4 e1@3 ~",
  AK: "a1@4 a2@2 ~ a2 ab2@6 ~ ab2", AL: "b1@3 gb2 b2@2 b1@2 e2@4 e1@4", AM: "a1@3 ab1", AN: "gb1@7 ~@9",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · synth strings 1 · "SYN STRING"
const synth_strings_1 = note(`<
  ~@4 A@8 B ~@10 C@5 D@2 E ~@6 F@2 G H@4 I@3 J K L ~@4 M@2 N@6 O@2 P Q@4 R@6 ~@9 S
>`.pickRestart({
  A: "[ab4@8 g4@8 f4@8 eb4@8 db4@12 c4@4 db4@7 ~ ab4@4 g4@4 ab4@8 g4@8 f4@8 eb4@8 db4@12 c4@4 db4@7 ~ ab4@4 g4@4, c4@32 f4@24 eb4@24 ab3@31 ~ bb3@15 ~, eb4@16 ab3@28 ~@4 bb3@15 ~ c4@32 f4@24 eb4@8]/8",
  B: "[c4,ab4]@5 ~@11", // Fm
  C: "[f4@8 e4@8 eb4@8 d4@8 c4@8 [g3,bb3]@4 [ab3,c4]@4 ~ [bb3,db4]@7 [c4,eb4]@8 [bb3,db4]@7 ~ c4@4 [bb3,db4]@4, ab3@40 ~@31 eb4@4 ~@5, c4@31 ~ f3@36 ~@12]/5", // Gm Ab Bbm Cm Bbm
  D: "[[ab3,c4]@2 [g3,bb3] c4 db4@2 [g3,c4,e4]@2, f3@3 ~, ~@3 ab3@3 ~@2]/2", E: "[f3,ab3,f4]@5 ~@11",
  F: "[ab3@23 ~ g3@4 ~@4]/2", G: "ab4 g4, [c4,eb4]@15 ~",
  H: "[f4@8 eb4@8 db4@12 c4@4 db4@7 ~ ab4@4 g4@4 ab4@8 g4@8, ab3@31 ~ bb3@15 ~ c4@15 ~, c4@16 f4@23 ~ eb4@24]/4",
  I: "[f4@8 eb4@8 db4@12 c4@4 db4@8 ab4@4 g4@3 ~, ab3@31 ~ bb3@15 ~, c4@2 f4@3 eb4]/3", J: "[c4,eb4,ab4] ~@3",
  K: "[bb3,db4,f4,bb4] ~@3", L: "[eb4,g4,bb4]@3 ~@13", M: "[ab3@24 g3@5 ~@3]/2",
  N: "[ab4@8 g4@8 f4@8 eb4@8 db4@12 c4@4 db4@8 ab4@4 g4@3 ~ ab4@8 g4@8 f4@10 eb4@5 ~, c4@4 f4@3 eb4@3 ab4@2, eb4@16 ab3@31 ~ bb3@15 ~ c4@31 ~]/6",
  O: "[db4@12 c4@4 db4@8 ab4@4 g4@3 ~, f4@3 eb4, ab3@15 ~ bb3@15 ~]/2", P: "[c4,eb4] [b3,e4], ab4@15 ~",
  Q: "[a4@8 ab4@7 ~ gb4@8 e4@8 d4@12 db4@4 ~@12 ab4@4, db4@31 ~ gb4@23 ~ e4@8, e4@15 a4@44 ~@5, ~@48 b3@15 ~, ~@12 d4@3 ~]/4",
  R: "[[db4,e4,a4]@5 ~@3 [ab3,b3]@8 a4@7 ~ ab4@8 gb4@8 e4@8 d4@12 db4@4 d4@7 ~ a4@3 ~ ab4@4 [db4,a4]@6 ~@10, ~@8 e4@23 ~ a3@31 ~ b3@15 ~@17, ~@16 db4@31 ~ gb4@23 ~ e4@14 ~@10]/6", // A Abm Gbm
  S: "[gb3,a3,db4]@11 ~@5", // Gbm
})).s("gm_synth_strings_1").gain(0.28)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@4 A B C D A B C D E ~@18 F G@2 H F I J K A B L M A B C M N ~ O@2 P F I J K A B Q R A B C R S T U V W X T Y V Z AA AB
  ~@8 AC
>`.pickRestart({
  A: "ab2 g2", B: "f2 eb2", C: "db3@3 c3", D: "bb2@2 eb3 eb2", E: "ab2@7 ~@9", F: "bb2", G: "[eb3@7 ab2@5 g2@4]/2",
  H: "f2@2 c2 c3", I: "c3", J: "db3", K: "eb3@2 eb2 ~", L: "db3 c3", M: "bb2 eb3", N: "ab2@3 ~@5",
  O: "[~@7 ab2@5 g2@4]/2", P: "f2 c3", Q: "db3 db3@11 c3@4", R: "bb2@4 eb3@2 eb2 f2", S: "ab2", T: "a2 ab2",
  U: "gb2 e2", V: "d3@3 db3", W: "b2@8 e3@4 e2@2 gb2 ~", X: "a2 e2", Y: "gb2@7 ~ e2@8", Z: "b2@2 e3 e2", AA: "a2@3 ab2",
  AB: "gb2 ~@3", AC: "gb2 ~",
})).s("gm_string_ensemble_1").gain(0.36).pan(0.4)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@6 A B C ~ D E ~@29 F G ~@2 D H I ~@10 J@2 C ~ K L M ~@2 N@2 O ~@2 P Q R ~@10
>`.pickRestart({
  A: "[db3,ab3]@11 ~ [c3,f3]@4", B: "bb2@4 eb3@2 eb2 f2", C: "ab2 ~@3", D: "~@9 eb4 f4 ab4 bb4@2 ab4 f4",
  E: "bb4@2 ab4 f4 ab4@8 ~@4", F: "[db3,ab3]@3 [c3,f3]", G: "bb2@8 eb3@2 eb2 ~ eb2 f2 ab2@2",
  H: "bb4@9 ab4 f4 eb4@3 eb3 f3", I: "ab3 ~@3",
  J: "[[db3,ab3]@12 c3@3 ~ bb2@7 ~ eb3 eb2 f2 ab2 c3 eb3 db3 c3, ~@3 f3@3 ~@2]/2", K: "~@9 f4 ab4 bb4@3 ab4 f4",
  L: "bb4@5 ab4 f4 eb4@5 eb3 f3 ab3 bb3", M: "ab2@7 ~@9",
  N: "[[d3,a3]@12 db3@3 ~ b2@8 e3 e2@2 b2 e3@4, ~@3 gb3@3 ~@2]/2", O: "a2@3 ~@13", P: "~@9 e4 gb4 a4 b4@2 a4 gb4",
  Q: "a4@3 gb4 e4@2 e3 gb3", R: "a2 ~@3",
})).s("gm_overdriven_guitar").gain(0.4).pan(0.2)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@8 A ~@2 B@2 ~@32 C ~@22 D E ~@15>".pickRestart({
  A: "~@5 ab2 ~@10", B: "[~@3 ab4@2 ~@3]/2", C: "eb4 ~@15", D: "~@12 e2 ~@3", E: "~@3 a2@3 ~@10",
})).s("gm_overdriven_guitar").gain(0.24).pan(0.2)

// other · alto sax
const alto_sax = note("<~@65 A@2 B@2 ~ C@2 D@3 ~@10>".pickRestart({
  A: "[a4@25 e4 gb4 a4 gb4 ~ db4 c4, ~@29 e4@2 ~]/2", B: "[b3 a3 gb3 a3@10 gb3 a3 e4@5 d4 db4 b3 a3 ~ gb3 ~ e3@5]/2",
  C: "[a4@24 ~ a4 gb4 e4 db4 c4 b3 a3]/2", D: "[a3 gb3 a3 b3 a3@9 gb3 a3 e4@5 d4 db4 b3 a3 ~ ab3 ~ gb3 e3@6 ~@14]/3",
})).s("gm_alto_sax").gain(0.4).pan(0.6)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  ~@8 A B@4 ~@18 C@4 D E@3 ~@4 F G@4 ~@4 H@2 I@2 ~@4 A J@4 ~@5 K L@3 M ~@10
>`.pickRestart({
  A: "~ [c4,c5] [db4,db5] [eb4,eb5] [eb4,eb5]@4", B: "[[f4,f5]@10 ~ g4 ~@4, ab4@11 ~@5, ~@10 eb4@3 ~@3, ~@5 eb5 ~@2]/4",
  C: "[[f3,db4]@15 ~@15 [ab3,c5]@10 bb4@7 ~ ab4@8 g4@8, bb4@15 ~@17, ~@15 g3@13 ~@12 g3@6 ~@2 f3@15 ~, ~@16 eb4@31 c4@16 ~]/4", // Db Ab
  D: "~@5 db3@10 ~, f4, ~ bb3@3", E: "[g4@15 ~ db4@15 ~@3 bb3@6 ~@8, ~@15 f3@15 ~@2 eb4@11 ~@5, ~@2 ab4@3 ~]/3",
  F: "~ [c4,c5] [db4,db5] eb5 [eb4,eb5]@4, ~@6 eb4 ~@9", // C Db Eb
  G: "[[f4,f5]@10 ~ g4 [c4,ab4] ~@3, ab4@11 ~@5, ~@10 eb4@3 ~@3, ~@5 eb5 ~@2]/4", // F Fm
  H: "[[db3,bb3,f4]@15 ~ [c4,g4]@16, ~@15 eb3@15 ~@2]/2", I: "[db4@15 ~ eb4@11 ~@5, ab4@3 ~, ~@15 bb3@9 ~@8]/2",
  J: "[[f4,f5]@20 ~@2 g4@2 c4@3 ~ e4@4, ab4@11 ~ ab4@4, ~@5 eb4@2 ~, ~@5 eb5 ~@2]/4", // F
  K: "~ [db4,db5] [d4,d5] [e4,e5] [e4,e5]@4", L: "[~@2 a4@8 a4 ab4, gb4@39 ~ e4@8, ~ gb5@39 ~@8]/3",
  M: "[db4,a4]@3 ~@5", // Gbm
})).s("gm_string_ensemble_1").gain(0.2).pan(0.6)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@12 A ~@22 B C D@2 ~@10 E@2 F G H@3 ~@29>".pickRestart({
  A: "[c4,ab4] ~@3", B: "ab5", C: "[eb3,c4,bb5]", D: "[~@16 ab3@2 ~@6 [g4,g5]@3 ~@5, ab5@3 ~]/2",
  E: "[~@7 ab6@5 g6@4]/2", F: "~ c6, f6", G: "db6", H: "[~ bb6@14 ~ ab6@23 ~ [g4,g6]@3 ~@5, ~@5 f3@5 ~@6]/3",
})).s("gm_string_ensemble_1").gain(0.08).pan(0.6)

// chords · piano · "A.PIANO"
const piano = note(`<
  ~@4 A B C D E F G H I ~@10 J K L M N O P Q R S@2 T U V@2 W X Y C Z AA AB AC AD AE ~ AF@2 AG AH AI AJ@2 AK AL AM AN AO
  AP AQ AR AS AT AU AV AW@3 AX AY AZ@2 BA BB BC BD BE BF BG BH BI BJ
>`.pickRestart({
  A: "[eb4,ab4]@2 c4 ~ [eb4,ab4]@2 c4 ab3 [eb4,g4]@2 bb3 ~ [eb4,g4]@2 c4 g3, ab3@3 ~ g3@3 ~, c4 ~@3 c4 ~@3 bb3 ~@3 c4 ~@3", // Ab5 Eb
  B: "[c4,f4]@2 ab3 ~ [c4,f4]@2 ab3 f3 [c4,eb4]@2 ab3 ~ [c4,eb4]@2 ab3 eb3, f3@3 ~ eb3@3 ~, ab3 ~@3 ab3 ~@3 ab3 ~@3 ab3 ~@3", // F5 Cm
  C: "[db4,f4]@2 ab3 ~ [db4,f4]@2 ab3 db3 [db3,db4,f4]@2 ab3 ~ [c4,f4]@2 ab3 ~, db3@3 ~@3 c3@2, ab3 ~@3 ab3 ~@3 ab3 ~@3 ab3 ~@3", // Db F5
  D: "[db4,f4]@2 ab3 ~ [bb3,db4,f4]@2 ab3 bb2 [eb3,eb4,ab4]@2 ~@4 bb3 eb3, [bb2,bb3]@4 ~@7 eb3@2 eb4@2 ~, ab3 ~@3 ab3 ~@3 bb3 ~ bb3@2 g4@3 ~", // Db Bbm Ab5 Bb
  E: "[ab3,eb4,ab4]@2 ~@2 [eb4,ab4]@2 ~ ab3 g3@2 c4@2 ~ c4 eb4 [g3,c4], c4 ~ c4@3 ~ c4@2 [eb4,g4]@5 ~ g4@2, ~@3 ab3@3 ~@6 g3@3 ~", // Ab5 C5 Eb
  F: "f4@2 ab3@2 [c4,f4]@2 ab3 f3 ~@2 ab3@2 [c4,eb4]@2 ~ eb3, f3@3 ~ eb3@3 ab3", // F5 Cm
  G: "[db4,f4]@2 ab3@2 [db4,f4]@2 ab3 db3 [db3,db4,f4]@2 ab3 ~ ab3 ~ ab3 ~, db3@3 ~@3 [c3,c4,f4]@2, ~@4 ab3 ~@3 ab3 ~@7", // Db F5
  H: "db4@2 ~@2 f4 ~ f4 bb2 [eb3,bb3,eb4]@2 ab3 ~ [g3,bb3,eb4]@2 eb3@2, bb2@5 db4@2 ~@5 db4 ~@3, [bb3,f4]@4 bb3@3 ~@9, ab3 ~ ab3@5 ~ ab3 ~@2 eb3@2 ~@3", // Eb5 Eb Bb5
  I: "[ab3,c4,eb4,ab4]@3 ~", J: "[f3,ab3,c4] c3 [f3,ab3,c4] c3 [e3,ab3,c4] c3 [e3,ab3,c4] c3",
  K: "[eb3,ab3,c4]@2 c3@2 [eb3,ab3,c4]@2 c3@2 [d3,ab3,c4]@2 c3@2 d3 eb3 e3@2", // Ab Dm7b5
  L: "[f3,ab3,c4] c3 [f3,ab3,c4] c3 [f3,g3,bb3] c3 [f3,ab3,c4] c3", // Fm Gm7 Fm
  M: "[bb3,db4,f4] f3 [bb3,db4,f4] f3 [bb3,c4,eb4] f3 [bb3,c4,eb4] f3", // Bbm Cm7
  N: "[bb3,db4,f4]@2 f3@2 [bb3,db4,f4]@2 f3@2 [bb3,c4,eb4]@2 f3@2 [bb3,db4]@2 f3 ~", // Bbm Cm7 Bbm
  O: "[f3,ab3,c4] ~ [ab3,c4] f3 [g3,bb3] f3 ~ f3, ~@2 f2@11 ~@3, ~@4 f3 ~@7 [ab3,c4]@4", // Fm Ab Gm Ab
  P: "[ab3,db4,f4] f3 [ab3,db4,f4] f3 [g3,c4,e4] e3 [g3,c4,e4] e3", Q: "[f3,ab3,c4,f4]@11 ~@5",
  R: "~@3 f4@5, f3@7 ~, ~ bb3@6 ~, ~@2 db4@5 ~",
  S: "[~@6 g4@6 ~@2 [c4,eb4]@4 ~@4 ab4 ab3 g4@2 bb3@2 [eb4,g4]@2 bb3 g3, g3@6 ~ ab3@4 ~ g3@3 ~, ~ bb3@5 ~@3 c4@2 ~@5, ~@2 eb4@4 ~ ab4@3 eb4@2 ~@4]/2", // Cm Eb
  T: "[ab3,c4,f4]@2 ab3 ~ [c4,f4]@2 ab3 ~ [f3,g3,bb3]@2 f3 ~ f3 ~ f3 ~, f3@7 ~ c3@6 ~@2, ~@4 ab3 ~@7 [ab3,c4]@4", // Fm F5 Gm7 Ab
  U: "db4 ~@3 f4@4, bb2@13 ~@3, ~@2 f3@13 ~, ~ bb3@3, ~@3 db4@5",
  V: "[~@20 ab3@2 db4@2 ab3@5 ~@2 f3, c3@4 g4@5 ~@7, ~@2 g3@12 ~@2 db3@15 ~, ~@4 bb3@13 ~ f3@12 ab3@2, ~@3 eb4@6 ~@3 [db4,f4]@4]/2", // Db
  W: "~@4 bb3@2 eb4 ~ [eb3,g3,bb3,eb4]@6 ~@2, eb3@3 ~@5, ~@2 ab3@5 ~@9", // Eb
  X: "[eb4,ab4]@2 c4 ~ [eb4,ab4]@2 c4 ab3 [eb4,g4]@2 bb3 ~ [eb4,g4]@2 bb3 g3, ab3@3 ~ g3@3 ~, c4 ~@3 c4 ~@3 bb3 ~@3 bb3 ~@3", // Ab5 Eb
  Y: "[c4,f4]@2 ab3 ~ [c4,f4]@2 ab3 f3 [c4,eb4]@2 ab3 ~ [c4,eb4]@2 ab3 eb3, f3@5 ~@3 eb3@6 ~@2, ab3 ~@3 ab3 ~@3 ab3 ~@3 ab3 ~@3", // F5 Cm
  Z: "bb2@3 ~@4 f4 ~ ab4 ~ ab4 [eb3,eb4,g4]@2 bb3 eb3, [bb3,db4,f4]@4 ab3@4 eb3@3 ~@5, ab3 ~@2 bb2@2 bb3@3 ~ bb3@3 bb3 ~@3, ~@3 db4 ~ eb4 ~@2", // Eb Bbm
  AA: "[c4,eb4,ab4]@2 c4 ~ [eb4,ab4]@2 c4 ab3 [eb4,g4]@2 bb3 ~ [eb4,g4]@2 c4 g3, ab3@3 ~ g3@3 ~, ~@4 c4 ~@7 c4 ~@3", // Ab Ab5 Eb
  AB: "[f3,c4]@2 ab3 ~@3 eb4 ~ ab3 ~@3 [c4,eb4]@2 ab3 eb3, f4@4 ab3@3 f3@2 ~ eb3@4 ~@2, ab3 ~@2 f3@2 c4@5 ~@2 ab3 ~@3, ~@6 f4@3 ~@7", // F5 Cm
  AC: "[db4,f4]@2 ab3 ~ [db4,f4]@2 ab3 ~@4 ab3 ~@2 [c4,db4] f4, db3@6 ~ db3@4 ~ [c3,f4]@3 ~, ab3 ~@3 ab3 ~@3 ab3@2 db4@2 ~ ab3@3, ~@9 f4@2 ~@5", // Db Dbmaj7 F5
  AD: "[bb2,db4,f4]@4 ~@2 db4 ~ [eb4,ab4]@2 bb3 ~ [eb4,g4]@2 bb3 eb3, [ab3,bb3]@3 ~ ab3@3 eb3@3 ~ eb3@3 ~@2, ~@5 bb3@2 ~ bb3 ~@3 bb3 ~@3", // Bbm Ab5 Eb Absus2
  AE: "[ab3,c4,eb4,ab4] ~", // Ab
  AF: "[~@20 ab4@2 c4 ab3 g4@2 ~@5 g3, ~@7 ab3@4 ~ g3@3 g4, ~@14 ab4@4 eb4@5 ~@5 eb4@4, ~@16 c4@5 ~@5 bb3@6]/2",
  AG: "f4@2 ab3 ~ [c4,f4]@2 ab3 ~ f3@2 f3 ~ [f3,ab3,c4]@2 ~ c3, f3@3 ~ c3@3 ~, ~@4 ab3 ~@3 [g3,bb3]@4 ~@2 f3@2", // F5 Fm Gm
  AH: "~@3 f3@7 ~@2 f3 ~ f3 bb2, f4@11 ~@5, bb2@9 ~ bb2@4 ~@2, ~ db4@10 ~@5, ~ bb3@5 [bb3,db4]@2", // Bbm
  AI: "~@3 c4@4 ~@3 c4@2 [eb4,g4]@2 c4 g3, c3@7 c3@8 ~, ~ g3@7 g3@7 ~, ~@2 [bb3,eb4]@7 ~@7", // Eb Eb5
  AJ: "[~@2 ab3@5 ~@4 eb4 ~@3 f3 ~@2 bb3@2 [eb4,ab4]@2 bb3 eb3 [eb3,bb3,eb4,g4]@6 ~@2, [db4,f4]@8 f3@5 ~ ab3@3 ~@15, db3@5 ~@2 db3@7 ~@2 eb3@6 ~@10, ~@9 ab3@4 db4@4 ~@15, ~@5 db4 f4@3 ~@7]/2", // Ab5 Eb Db
  AK: "[ab3,eb4,ab4]@2 ~@2 [eb4,ab4]@2 ~ ab3 [eb4,g4]@2 ~@2 [eb4,g4]@2 c4 g3, c4 ~ c4@3 ~ c4@2 ~@4 c4 ~@3, ~@3 ab3@3 ~@2 g3@4 ~@4", // Ab5 Eb
  AL: "[ab3,c4,f4]@3 ~ c4@2 ab3 f3 [c4,eb4]@2 ab3 ~ [c4,eb4]@2 ab3 eb3, f3@3 ~ eb3@3 ~, ~@2 f4@3 ~@3, ~@4 ab3 ~@3 ab3 ~@3 ab3 ~@3", // Fm Cm
  AM: "[db4,f4]@2 ab3 ~ [db4,f4]@2 ab3 db3 [db3,db4,f4]@2 ~ [db4,f4] [c3,c4,f4]@2 ab3 c3, db3@5 ~@11, ab3 ~@3 ab3 ~@3 ab3 ~ ab3@2 ab3 ~@3", // Db F5
  AN: "[bb2,db4]@3 ~@3 db4 f4 ~ bb3 eb4@2 [eb3,bb3,eb4,g4]@2 bb3 eb3, [bb3,f4]@4 ab3@2 ~@2 eb3@3 ~@5, ab3 ~@2 bb2@2 bb3@2 ~@3 ab4 ~@5", // Bbm Eb Bb5
  AO: "[ab3,eb4,ab4]@2 c4 ~ [c4,eb4,ab4]@3 ab3 [c4,eb4,g4]@3 ~ [c4,eb4,g4]@3 g3, c4 ~@2 ab3@2 ~@3 g3@6 ~@2", // Ab5 Ab Cm
  AP: "[ab3,c4,f4]@2 ab3 ~ c4@2 ab3 f3 [c4,eb4]@2 ab3 ~ [c4,eb4]@2 ab3 eb3, f3@3 ~ eb3@3 ~, ~@4 f4@7 ~@5, ~@4 ab3 ~@3 ab3 ~@3 ab3 ~@3", // Fm Cm
  AQ: "[db4,f4]@2 ab3 ~ [db4,f4]@2 ab3 db3 [db3,db4,f4]@2 ab3 ~ [c3,c4,f4]@2 ab3 ~, db3@3 ~@5, ab3 ~@3 ab3 ~@3 ab3 ~@3 ab3 ~@3", // Db F5
  AR: "[bb3,db4,f4]@2 ab3 ~ [bb3,db4,f4]@2 ab3 bb2 [eb4,ab4]@2 bb3 ~ [eb4,g4]@2 bb3 ~, bb2@3 ~ eb3@3 ~, ab3 ~@3 ab3 ~@3 bb3 ~@3 bb3 ~@3", // Bbm Ab5 Eb
  AS: "[eb4,ab4]@4 ~@8 gb4 ~@2 e3, ab3@6 ab4@4 ~ b3@2 ab4@2 ~, c4@3 ~ c4@4 e3@6 ~@2, ~@5 eb4@4 ~ ab3@4 e4@2, ~@12 b4@3 ~", // Ab5
  AT: "[e4,a4,db5]@2 e4 ~ [e4,a4]@2 db4 a3 ~@2 db4 ~ [e4,ab4]@2 db4 ab3, a3@3 ~ ab3@3 ~, ~@3 a2@3 ~@10, ~@4 db4 ~@7 db4 ~@3", // A A5 E
  AU: "~@3 gb3 e3@3 [db4,e4,a4], gb3@5 a3@3 ~@8, ~ a3@2 gb4@5 ~@8, ~ db4 db4@2 ~@4", // A
  AV: "~ b3 ~ e4 ~@2 a3 ~ [a3,d4,gb4]@2 a3 d3 [db3,db4,gb4]@2 a3 db3, d3@6 ~ d3@4 ~@5, ~ a3@4 d4@2 ~@5 a3 ~@3, ~@2 d4@2 gb4@3 ~@9", // D Gb5
  AW: "[[a3,b3,d4]@4 ~ a3 b3 b2 [b3,e4,a4]@3 ~ [b3,e4,ab4]@2 ~@2 [db4,e4,a4]@6 ~@2 [b3,e4,ab4]!7 ~ [e4,a4]@2 ~@2 a4@2 db4 e3 ~@2 e4 ~@3 ab3@2, [b2,gb4]@6 ~@9 a2@7 ~@2 e2@5 ~@2 a2@7 ~@10, ~@4 gb3@3 ~ e3@7 ~ e3@5 ~ e3@9 ~ e3@6 ~@2 ab3@5 db4@2 ~, ~@32 db4 ~ db4@3 ~@4 db4@3 e4@2 ~@2, ~@35 e4@3 ~@5 ab4@3 ~@2]/3", // Bm7 Esus4 E A E A5 B5
  AX: "[gb3,db4,gb4]@2 a3 ~ a3 ~@2 gb3 ~@4 [db4,e4]@2 a3 e3, a3 ~@2 gb3@3 a3@2 e3@6 ~@2, ~@4 [db4,gb4]@5 ~@3 a3 ~@3", // Gb5 Dbm Gb5
  AY: "[a3,d4,gb4]@3 ~ d4 ~ d4 ~ [a3,d4,gb4]@3 d3 [db3,a3,db4,e4]@2 a3 db3, d3@5 gb4@2 ~@9, ~@3 a3@3 ~ d3@3 ~@6", // D A
  AZ: "[[b3,d4,gb4]@2 ~@2 d4@2 gb4 b2 [d4,e4,a4]@2 d4 ~ [d4,e4,ab4]@3 ~ [a2,db4,e4,a4]@12 ~@4, b2@3 ~ e3@5 ~@7, a3 ~ a3@4 ~@26, ~@3 b3@3 ~@6 bb4 ~@19]/2", // Bm Dsus2 E7 A
  BA: "[gb3,a3,db4] db3 [gb3,a3,db4] db3 [f3,a3,db4] db3 [f3,a3,db4] db3", // Gbm Faug
  BB: "[e3,a3,db4]@2 db3@2 [e3,a3,db4]@2 db3@2 [eb3,a3,db4]@2 db3@2 [eb3,a3,db4] e3 f3 ~", // A Ebm7b5
  BC: "[gb3,a3,db4]@2 db3@2 [gb3,a3,db4]@2 db3@2 [gb3,ab3,db4]@2 db3@2 [gb3,a3,db4]@2 db3 ~", // Gbm Gbsus2 Gbm
  BD: "[b3,d4,gb4] gb3 [b3,d4,gb4] gb3 [b3,db4,e4] gb3 [b3,db4,e4] gb3, ~@12 eb4 ~@3", // Bm Dbm7
  BE: "[b3,d4,gb4] gb3 [b3,d4,gb4] gb3 [db4,e4] gb3 [b3,d4] gb3", // Bm Dbm Bm
  BF: "[a3,db4] db3 [gb3,a3,db4] db3 [gb3,ab3,b3] db3 [gb3,a3,db4] db3", // A Gbm Abm7 Gbm
  BG: "[gb3,a3,d4] d3 [gb3,a3,d4] d3 [f3,ab3,db4] db3 [f3,ab3,db4] db3", // D Db
  BH: "[gb3,a3,d4] d3 [gb3,a3,d4] d3 [ab3,db4,f4] db3 [ab3,db4,f4] db3", // D Db
  BI: "[gb3,a3,d4]@2 d3@2 [gb3,a3,d4]@2 d3@2 [ab3,db4,f4]@2 db3@2 [ab3,db4,f4]@2 db3 ~", BJ: "[gb2,gb3,a3,db4,gb4]@7 ~",
})).s("gm_piano").gain(0.32).pan(0.7)

// other · acoustic guitar steel · "MANDOLIN"
const acoustic_guitar_steel = note("<~@22 A ~@2 B@5 C ~@16 D E F ~@2 G H I ~@30>".pickRestart({
  A: "~@8 f6@3 ~@5, ~@7 [f5,ab5]@5 ~@4", B: "[f5@9 e5]/5", C: "f5@3 ~@5", D: "~@15 f5", E: "[bb5,db6] ~@14 g5",
  F: "[bb5,eb6] ~@7", G: "db6 ~ g6 ~ ab6 ~@11", H: "c6 ~ g6 ~ ab6 ~@11", I: "eb6 ~ f6 ~ ab6 ~@11",
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.8)

// chords · acoustic guitar nylon · "A.GUITAR"
const acoustic_guitar_nylon = note("<~@31 A@3 B C D@2 E ~@8 F@2 G@2 H I J@2 K ~@29>".pickRestart({
  A: "[[db4,f4,bb4,db5]@13 ~@3 [bb3,g4,bb4]@12 ~@4 ab4@2 ~@2 ab4@2 c5@2 ~@4 g4@2 bb4 ~, ~@15 eb4@12 ~@3 c4@9 ~ bb3@7 ~, ~@15 c5@3 ~@2 bb4@2 ~@2, ~@34 eb4@6 ~@2 eb4@5 ~]/3", // Bbm Eb
  B: "~@3 c4 [f4,ab4]@2 c4 ~ [c4,f4,g4]@4 c4@2 f4@2, f3@7 ~@9, ~ ab3@2 ~@5", // Fm Csus4
  C: "~@6 bb4@9 ~, bb3@13 ~@3, ~ db4@6 ~, ~@3 f4@11 ~@2, ~@4 db5@11 ~",
  D: "[[g3,bb3,eb4,g4,bb4]@13 ~@3 [db4,f4,ab4]@14 ~@2, ~@15 ab3@14 ~@3]/2", // Eb Db
  E: "~@3 bb4@3 ~@2 [bb3,eb4,g4,bb4]@7 ~, bb3@3 ~@5, ~ eb4@5 ~@10, ~ ab4@2 ~@5", // Eb
  F: "[~@16 [db4,f4,bb4]@9 ~@7, ~@15 bb3@10 ~@7]/2", // Bbm
  G: "[~ g4@8 ~@9 eb4@2 c4@2 eb4 ab3 ~@2 bb3@2 ~@3 g3, [g3,bb3,eb4]@9 ~@5 ab3@6 ~@4 g3@6 bb3@2, ~@7 c4@2 ~@5 eb4 ~, ~@16 ab4@6 ~@2 g4@4 ~ g4@3]/2", // Eb
  H: "~@2 ab3@2 c4@2 ab3 f3 ~@2 g4 bb4 ~@2 c4@2, f3@6 ~@3 f4@2 ~ ab4@3 ~, f4@4 ~@4 c4@5 f4@3",
  I: "~@12 f4@2 db4 bb3, bb3@6 ~ bb3@5 ~@4, ~ db4@4 ~ db4@6 ~@4, ~ f4@4 ~@3, ~@3 bb4@6 ~ bb4@4 ~@2",
  J: "[~@4 eb4@10 ~@2 [db4,f4,ab4]@5 ~@7 f4@2 db4 ~, g3@13 ~@2 ab3@5 ~ ab3@9 ~@2, ~ c4@13 ~@8 db4@6 ~@4, ~ bb3@6 ~@5 db5@3 ~, ~@3 g4@11 ~@9 f4@3 ab4@4 ~@2]/2", // Db
  K: "eb4 ~ eb4@2 ~@3 bb3 ~@3 bb4@5, bb3@5 ab4@2 ~@2 bb3@7, ~@2 bb4@2 ~ eb4@3, ~@3 eb4 g3@4",
})).s("gm_acoustic_guitar_nylon").gain(0.28).pan(0.8)

// drums · kick
const kick = s("bd").struct("<~@3 A B@8 A ~@18 A@3 C A@4 B@8 A ~@4 D A D A B@7 D A E F G H I B@4 A ~@10>".pickRestart({
  A: "x ~@6 x!2 ~@7", B: "x!4 ~ x!7 ~ x!3", C: "x ~@5 x!3 ~@7", D: "x ~@6 x!2 ~@5 x ~", E: "x ~@6 x!2 ~@6 x",
  F: "x ~@6 x!2 ~ x ~@4 x", G: "x ~@5 x!3 ~@6 x", H: "x ~@5 x!3 ~@2 x ~@2 x ~", I: "x ~@6 x!3 ~@6",
})).gain(0.1)

// drums · snare
// … 43 more lines

More by Eros Ramazzotti