Strudelify

Quanto amore sei

Ramazzotti

KeyD♭ majorTempo113 bpm
0:00/0:00
// Quanto amore sei — Ramazzotti
// 113 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 16 piano (copy of ch 5 choir aahs)
// note: Full arrangement: all 119 bars on a 16-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(113/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 · distortion guitar
const distortion_guitar = note(`<
  ~@16 A@3 ~@6 B@2 C@2 ~@3 D@3 C@2 ~@33 E@2 F@2 ~@18 G H@2 I@2 J K L M N@2 ~@16
>`.pickRestart({
  A: "[~@3 [gb3,db4]@20 ~, ~@3 [eb4,b4]@4 ~@17]/3", B: "[~@7 f2, ~ gb2@7]/2", C: "eb2/2",
  D: "[~@3 [eb4,b4]@4 ~@15 f2@2, ~@3 [gb3,db4]@20 ~, ~@5 gb2@7]/3", E: "[~@7 g2, ~ ab2@7]/2", F: "f2/2",
  G: "~ [eb3,eb4] [ab3,ab4] [eb3,eb4] [bb3,bb4] [eb3,eb4] [c4,c5] [eb3,eb4]", // Eb Ab Eb Bb Eb C Eb
  H: "[eb5@8 db5@6 c5@8 ~@2 c5@3 db5@3 [eb4,eb5]@2, eb4 ~@7 db4 ~@5 c4 ~@9 c4 ~@2 db4 ~@4]/2", // Eb
  I: "[g5@8 eb5@6 c5@8 [g4,ab4] [e4,f4,gb4] c5@3 db5@3 [eb4,eb5]@2, g4 ~@7 eb4 ~@5 c4 ~@9 c4 ~@2 db4 ~@4]/2", // Abmaj7 Eb
  J: "f5@4 [ab2,ab4,ab5] ~ f5@4 [eb4,eb5]@2 [db4,db5]@2 [eb4,eb5]@2, f4 ~@5 f4 ~@9", // Ab Eb Db Eb
  K: "db5@6 ~@2 c5@3 bb4@3 [ab3,ab4]@2, db4 ~@7 c4 ~@2 bb3 ~@4", // Ab
  L: "c5@6 ab4 [e4,f4,gb4,g4] eb5@6 [ab4,ab5]@2, c4 ~@7 eb4 ~@7", // Ab
  M: "[g4,g5] [eb4,eb5] [bb3,bb4] [g3,g4]!2 [eb3,eb4] [c3,c4] [eb3,eb4]", N: "[eb4@31 ~, eb3 ~@31]/2",
})).s("gm_distortion_guitar").gain(0.43).pan(0.6)

// other · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@62 A@2 B@2 ~@30 C ~@2 D ~@19>".pickRestart({
  A: "[ab2@15 ~]/2", B: "f2/2", C: "~@5 [bb4,b4] a4 ~@9", D: "~@6 [a4,bb4,b4] ~@9",
})).s("gm_distortion_guitar").gain(0.24).pan(0.6)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A@2 B@2 C@2 D@2 ~@7 E@4 ~@12 E@4 ~@20 F@2 G@2 H I ~@47 J@2 K@2 L M ~@4
>`.pickRestart({
  A: "[[db3,db4]@21 ~ [b2,b3]@4 [bb2,bb3]@2 [ab2,ab3]@2 [gb2,gb3]@2]/2", // Db B Bb Ab Gb
  B: "[[ab2,ab3] [eb2,eb3] [eb2,eb3]@8 ~ [b2,b3]@2 [bb2,bb3] [ab2,ab3] [gb2,gb3]]/2", // Ab Eb B Bb Ab Gb
  C: "[[ab2,ab3]@2 [eb2,eb3]@2 [eb2,eb3]@16 ~@2 [eb3,eb4]@4 [eb3,eb4] ~ [eb3,eb4]@2 [db3,db4] ~]/2", // Ab Eb Db
  D: "[[db3,db4] [bb3,bb4]@2 [bb3,bb4]@12 ~]/2", E: "[~@6 [db4,gb4]@43 ~@15]/4", F: "[db4@7 gb3@5 gb3@2 ab3@2]/2",
  G: "[db4@4 b3@3 bb3@5 gb3@2 ab3@2]/2", H: "db4", I: "gb3@3 ~", J: "[eb3@7 ab2@5 ab2@2 bb2@2]/2",
  K: "[eb3@4 db3@3 c3@5 ab2@2 bb2@2]/2", L: "eb3", M: "ab2@3 ~",
})).s("gm_electric_guitar_clean").gain(0.44).pan(0.3)

// bass · synth bass 2
const bass = note(`<
  ~ A@2 B@2 C@2 A D A@2 B E C F A G A@2 B E C F A H A@2 B@2 I J A K A@2 B L C M N A O P Q R S B T A U P Q R V B T B C I
  W X Y X@2 Z AA AB AC X AD X@2 Z AE AB AF AG X AH AI AJ AK AL Z AM X AN AI AJ AK AO Z AP X AN AI AJ AK AL Z AM X AN AI
  AJ AK AO Z AQ Z AB A AR P AS AT AU@2 ~
>`.pickRestart({
  A: "gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~", B: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~",
  C: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", D: "gb1 ~ gb1 ~ gb1 ~ gb1 ~ db2 eb2 gb2@2 eb2@2 db2@2",
  E: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ ab1 bb1 db2@2", F: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 bb1",
  G: "gb1 ~ gb1 ~ gb1 ~ e2@4 b1@2 e1@2 ab1@2, ~@6 eb2 ~@9",
  H: "gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ b1 db2 e1@4, ~@12 ab2 ~@3", I: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~",
  J: "b1 ~ b1 ~ b1 ~ b1 ~ db2 ~ db2 ~ db2 ~ db2 ~", K: "gb1 ~ gb1 ~ b1 db2 gb2@6 db2@2 gb2@2",
  L: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 gb1", M: "db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ gb2 ab2",
  N: "db2 ~ db2 ~ db2 ~ gb2 ab2 db3@2 ab2@2 db2@2 ab2@2", O: "gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ ab1 ~",
  P: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~", Q: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2",
  R: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ bb1 ~ bb1 ~ ab1 ~", S: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 bb1",
  T: "db1!2 ab1 db2@2 ab1 db2 ab1", U: "gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ ab1@2",
  V: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1@2 gb1@2", W: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 gb1 db2@2",
  X: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~", Y: "db2 ~ db2 ~ db2 ~ db2 ~ db2 ~@7",
  Z: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", AA: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ bb1 c2 eb2@2",
  AB: "db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~", AC: "db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 c2",
  AD: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ db2 eb2 gb1@4, ~@12 bb2 ~@3", AE: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ab1",
  AF: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ ab2 bb2", AG: "eb2 ~ eb2 ~ eb2 ~ ab2 bb2 eb3@2 bb2@2 eb2@2 bb2@2",
  AH: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ bb1@2", AI: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  AJ: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2", AK: "db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ c2 ~ c2 ~ bb1 ~",
  AL: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 c2", AM: "eb1!2 bb1 eb2@2 bb1 eb2 bb1",
  AN: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ bb1 ~", AO: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2 ab1@2",
  AP: "eb1 ~ eb1 ~ bb1@2 eb2@4 bb1@2 eb2@2 bb1@2", AQ: "eb1 ~ eb1 ~ bb1@2 eb2@4 bb1 ~ bb1 ~ bb1 ~",
  AR: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ab1 eb2@2", AS: "eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~",
  AT: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab2@4 ab1!2", AU: "ab1/2",
})).s("gm_synth_bass_2").gain(0.56)

// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
  A@7 B@2 ~@10 C@2 ~@4 D@3 ~@2 E F@2 D@3 ~@4 G@2 H@2 I J K@2 L@2 M@2 I J N@2 ~@6 O@2 P@2 ~@4 Q@3 ~@4 R@2 S@2 T U V@2 R@2
  S@2 T U V@2 R@2 S@2 T U V@2 R@2 S@2 T U V@2 ~@6 W X@2 ~
>`.pickRestart({
  A: "[~@16 [db4,gb4]@33 ~@5 db4@27 ~@3 db4@28, ~@15 [gb3,bb3]@34 ~ eb3@31 ~ gb3@28 ~@2, ~@52 bb3@29 ~@31]/7", // Gb5 Gb
  B: "[~@2 bb3@29 ~, gb3]/2", C: "[~ gb3 ~@3 gb3@2 gb3@9, ~@2 gb3@3 ~@11, ~@6 db4@9 ~@17]/2",
  D: "[~@2 [db4,gb4]@15 ~@7]/3", E: "~@3 b2 ~@3 db3, eb3@7 ~ eb3@8, ~ gb3@3 ~ f3@3, ~ b3 ~ db4",
  F: "[~@4 db4@21 ~@7, db3@25 ~@7, ~@2 gb3@23 ~@7]/2",
  G: "[~@7 gb4, db4!2 db4!2, ~ bb3@3 ~ bb3@3 ~@8, ~ gb4@2 gb4@2 gb4@2 ~]/2",
  H: "[~@7 f4, db4!2 db4!2, ~ bb3@3 ~ bb3@3 ~@8, ~ f4@2 f4@2 f4@2 ~]/2",
  I: "~@7 b3, eb4 db4, ~ b3@3 ~@4, ~@2 gb4@3 gb4@3", J: "~@4 b3 ~ gb4@2, ~ b3@3 ~ b3@3, ~ gb4@2 ~",
  K: "[~@3 db4 ~@3 db4 ~@3 gb4 ~@3 db4, db4@3 ~ db4@3 ~ db4@2 db4@2 ~ db4@2 ~, ~ bb3@3 ~ bb3@3 ~ ab3@2 ~@3 ab3@2, ~ gb4@2 gb4@2 ~ f4 ~]/2",
  L: "[~@7 gb4, db4!2 db4!2, ~ bb3@3 ~ bb3@3 ~@5 bb3@3, ~ gb4@2 gb4@2 gb4@2 ~]/2",
  M: "[~@7 f4, db4!2 db4!2, ~ bb3@3 ~ bb3@3 ~@5 bb3@3, ~ f4@2 f4@2 f4@2 ~]/2",
  N: "[~@3 db4 ~@3 db4 ~@3 gb4 ~@2 ab3@2, db4@3 ~ db4@3 ~ db4@2 db4@2 ~ db4@2 ~, ~ bb3@3 ~ bb3@3 ~ ab3@2 ~@5, ~ gb4@2 gb4@2 ~ f4 ~]/2",
  O: "[[ab2,eb3]@15 ~]/2", P: "[~@6 eb4@25 ~, f2@31 ~, ~@2 f3@29 ~, ~@4 ab3@27 ~]/2", Q: "[~@2 [eb4,ab4]@15 ~@7]/3",
  R: "[~@7 ab4, eb4!2 eb4!2, ~ c4@3 ~@12, ~ ab4@2 ab4@2 ab4@2 ~]/2",
  S: "[~@7 g4, eb4!2 eb4!2, ~ c4@3 ~@12, ~ g4@2 g4@2 g4@2 ~]/2", T: "~@7 db4, f4 eb4, ~ db4@3 ~@4, ~@2 ab4@3 ab4@3",
  U: "~@4 db4 ~ ab4@2, ~ db4@3 ~ db4@3, ~ ab4@2 ~",
  V: "[~@3 eb4 ~@3 eb4 ~@3 ab4 ~@3 eb4, eb4@3 ~ eb4@3 ~ eb4@2 eb4@2 ~ eb4@2 ~, ~ c4@3 ~ c4@3 ~ bb3@2 ~@3 bb3@2, ~ ab4@2 ab4@2 ~ g4 ~]/2",
  W: "[ab3,c4]@9 ~ [f3,ab3,db4]@5 ~", X: "[[ab3,c4], eb3@9 ~@7]/2",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.7)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_3 = note(`<
  ~@41 A ~ A ~@5 B ~ B ~@25 C D C D ~@4 C D C D ~@4 C D C D ~@4 C D C D ~@14
>`.pickRestart({
  A: "~ bb3@3 ~ bb3@3", B: "~ bb3@3 ~@4", C: "~@5 c4@3", D: "~ c4@3 ~ c4@3",
})).s("gm_electric_guitar_clean").gain(0.14).pan(0.7)

// chords · epiano2
const epiano2 = note(`<
  ~@18 A@2 ~@3 B C ~@9 D@3 E F G H@2 I@2 J@2 K L H@2 I@2 J@2 K L H@2 M ~ N@2 ~@9 O@3 P Q R S@2 T@2 U@2 V W S@2 T@2 U@2 V
  W S@2 T@2 U@2 V W S@2 T@2 U@2 V W S@2 X ~ Y@2 Z AA@2 ~
>`.pickRestart({
  A: "[~ [eb4,f4,ab4,db5], ~@7 [bb5,db6]@9, ~@15 f5@17]/2", B: "~@7 [gb3,b3,eb4]", C: "[gb3,bb3,db4]",
  D: "[~@6 bb4@4 ab4 ~ ab4@2 gb4@21 ~@5 db4@4 bb3@4]/3", E: "[b3,eb4]", F: "[db4,f4]", G: "[eb4,gb4]",
  H: "[gb3,bb3,db4]/2", I: "[f3,ab3,db4]/2", J: "[[gb3,b3,eb4]@10 [gb3,bb3,db4] ~@3 [ab3,b3,eb4]@18]/2",
  K: "[gb3,bb3,db4]@7 ~", L: "[f3,ab3,db4]", M: "[e3,b3,db4]", N: "[[db4,gb4,bb4]@9 [b3,eb4]!4 ~@3]/2",
  O: "[~@6 c5@4 bb4 ~ bb4@2 ab4@21 ~@7 ab3@2 c4@2 eb4@2]/3", P: "[ab3,db4,f4]@7 ~", Q: "[eb4,g4]", R: "[f4,ab4]",
  S: "[ab3,c4,eb4]/2", T: "[g3,bb3,eb4]/2", U: "[[ab3,db4,f4]@10 [ab3,c4,eb4] ~@3 [bb3,db4,f4]@18]/2",
  V: "[ab3,c4,eb4]@7 ~", W: "[g3,bb3,eb4]", X: "[gb3,db4,eb4]",
  Y: "[[eb4,ab4,c5]@9 [db4,f4] [db4,f4]@3 [db4,f4]!2 ~]/2", Z: "[c4,eb4]@5 [db4,f4]@3", AA: "[c4,eb4]/2",
})).s("gm_epiano2").gain(0.3).pan(0.6)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@29 A B@3 ~@4 C D E F@2 G@2 H@2 I J F@2 G@2 H@2 I J ~@6 K@6 L@2 M@2 N@2 O P Q R@2 S@2 T@2 U C R@2 V@2 T@2 U W R@2 X@2
  T@2 U W R@2 Y@2 T@2 U C Z@6 AA@3 ~
>`.pickRestart({
  A: "e4", B: "gb4/3", C: "eb4", D: "f4", E: "gb4", F: "gb4/2", G: "f4/2", H: "[eb4@5 db4@2 b3@9]/2", I: "bb3",
  J: "db4", K: "[ab4@6 eb4 bb4]/2", L: "[ab4@18 eb4 ~ bb4 ~ eb4 ~ c5 ~ eb4 ~ bb4 ~ eb4 ~]/2",
  M: "[~@4 eb6@23 ~ [bb5,db6]@4, ~ c6@7]/2", N: "[[ab5,c6]@13 ab4 c5 eb5]/2", O: "[ab3,f4,f5]", P: "[bb3,g4,g5]",
  Q: "ab5@6 g5@2 ab5 ~ eb5 ~ c5 ~ ab4 ~, [db4,ab4]@15 ~", R: "[ab4,ab5]/2", S: "[g4,g5]/2",
  T: "[f4@5 eb4@2 db4@9, ab5]/2", U: "[c4,ab5]", V: "[g4,bb5]/2", W: "[eb4,ab5]", X: "[bb5@4 f6@3 eb6@7 bb5@2, g4]/2",
  Y: "[bb5@3 f6@3 eb6@8 bb5@2, g4]/2", Z: "[eb6@8 ab5@4 ab5@2 bb5@2 eb6@4 db6@3 c6@7 bb5@2 ab5@16, ab3]/6",
  AA: "[[c4,eb4]@5 [db4,f4]@3 [c4,eb4]@16, ab5]/3", // Cm Db Cm
})).s("gm_string_ensemble_2").gain(0.28).pan(0.4)

// other · drawbar organ
const drawbar_organ = note("<~@25 A@4 ~@4 A@4 ~@18 B C@4 D@2 ~@8 E@4 ~@34 F G@4 H I ~@4>".pickRestart({
  A: "[~@4 db5@23 ~ db5@4 eb5@32, ~ [gb4,bb4]@15]/4", // Gb
  B: "~@14 [eb4,f4,gb4,ab4,bb4,c5,db5] [eb5,f5,gb5,ab5,bb5,b5,db6,eb6,f6]", // Ebm7
  C: "[[gb6,db7]@28 ~@2 [eb4,f4,gb4,ab4,bb4,c5,db5] [eb5,f5,gb5,ab5,bb5,b5,db6,eb6,f6], [ab6,bb6] ~@31]/2", // Gb5 Ebm7 Absus2
  D: "[[gb6,db7]@3 ~, [ab6,bb6] ~@31]/2", E: "[~@4 eb5@23 ~ eb5@4 f5@32, ~ [ab4,c5]@15]/4",
  F: "~@14 [f4,g4,ab4,bb4,c5,d5,eb5] [f5,g5,ab5,bb5,c6,db6,eb6,f6,g6]", // Fm7
  G: "[[ab6,eb7]@28 ~@2 [f4,g4,ab4,bb4,c5,d5,eb5] [f5,g5,ab5,bb5,c6,db6,eb6,f6,g6], [bb6,c7] ~@31]/2", // Ab5 Fm7 Bbsus2
  H: "[ab6,eb7], [bb6,c7] ~@15", I: "g6",
})).s("gm_drawbar_organ").gain(0.08).pan(0.2)

// chords · pad warm
const pad_warm = note(`<
  ~ A@8 B@2 C@2 D@2 E@2 B@2 F@2 D@2 G@2 B@2 C@2 H I E@2 B@2 C@2 J K L M@2 N@2 O@2 P Q M@2 N@2 O@2 P Q P R S T U@2 V@2
  W@2 X@2 Y@2 V@2 Z@2 AA AB AC AD@2 AE@2 AF@2 AG AH AD@2 AE@2 AF@2 AG AH AD@2 AE@2 AF@2 AG AH AD@2 AE@2 AF@2 AG AH AG AI
  P Q AJ@2 AK@3 ~
>`.pickRestart({
  A: "[[gb3,db4] eb3 b2 [gb3,db4], [gb4,db5], ~ eb4@2 ~]/8", B: "[gb3,db4]/2", C: "[gb3@5 ab3@2 bb3@9, db4]/2",
  D: "[[gb3,db4,eb4]@15 ~]/2", E: "[[gb3,bb3,db4]@11 [b3,e4]@5]/2", F: "[gb3@5 ab3@2 bb3@9, eb4]/2",
  G: "[gb3,bb3,db4]/2", H: "[ab3,b3,e4]", I: "eb4@4 db4@3 ~, [gb3,b3]@7 ~", J: "[gb3,db4,eb4]", K: "[ab3,db4,f4]",
  L: "[gb3,db4,eb4] [ab3,db4,f4]", M: "[gb3,bb3]/2", N: "[bb3,db4]/2",
  O: "[eb4@5 [bb3,db4]@2 b3@9, b3@4 ~@3 ab3@8 ~]/2", P: "[gb3,bb3]", Q: "[f3,ab3]@7 ~", R: "[gb3,b3]", S: "[e3,ab3]",
  T: "[eb3,gb3]@7 ~", U: "[[gb4,bb4]@12 eb4 ~@3]/2", V: "[ab3,eb4]/2", W: "[ab3@5 bb3@2 c4@9, f4]/2",
  X: "[[ab3,eb4,f4]@15 ~]/2", Y: "[ab3,c4,eb4]/2", Z: "[ab3@5 bb3@2 c4@9, eb4]/2", AA: "[ab3,eb4,f4]",
  AB: "[bb3,eb4,g4]", AC: "[ab3,eb4,f4] [bb3,eb4,g4]", AD: "[ab3,c4]/2", AE: "[c4,eb4]/2",
  AF: "[f4@5 [c4,eb4]@2 db4@9, db4@4 ~@3 bb3@8 ~]/2", AG: "[ab3,c4]", AH: "[g3,bb3]@7 ~", AI: "[ab3,db4]",
  AJ: "[[ab4,c5]@12 f4 ~@3]/2", AK: "[c4@5 db4@3 c4@16, ab3@2 ~]/3",
})).s("gm_pad_warm").gain(0.19).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~ A@24 B@8 C@7 D@16 E@6 F@8 G@7 H@32 I@6 J K@2 ~>".pickRestart({
  A: "[[db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]]/8", // Gb5
  B: "[[db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [ab3,b3,gb4]@3 [ab3,b3,gb4]@2 [b2,gb3,b3]@3 [b2,gb3,b3]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]]/8", // Gb5 Abm7 B5 Gb5
  C: "[[db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]]/7", // Gb5
  D: "[[db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,f3,db4]@3 [db3,f3,db4]@2 [db3,f3,db4]@3 [db3,f3,db4]@3 [db3,f3,db4]@2 [b2,gb3,b3]@3 [b2,gb3,b3]@3 [bb2,gb3,bb3]@2 [ab2,eb3,ab3]@3 [ab2,eb3,ab3]@3 [ab2,eb3,ab3]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,f3,db4]@3 [db3,f3,db4]@3 [db3,f3,db4]@2 [db3,f3,db4]]/8", // Gb5 Db B5 Ebm Ab5 Gb5 Db
  E: "[[db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 [db3,gb3,db4]@2 [db3,gb3,db4]@3 [db3,gb3,db4]@3 ~@3]/6", // Gb5
  F: "[[eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]]/8", // Ab5
  G: "[[eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]]/7", // Ab5
  H: "[[eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,g3,eb4]@3 [eb3,g3,eb4]@2 [eb3,g3,eb4]@3 [eb3,g3,eb4]@3 [eb3,g3,eb4]@2 [db3,ab3,db4]@3 [db3,ab3,db4]@3 [c3,ab3,c4]@2 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,g3,eb4]@3 [eb3,g3,eb4]@3 [eb3,g3,eb4]@2 [eb3,g3,eb4]]/8", // Ab5 Eb Db5 Fm Bb5 Ab5 Eb
  I: "[[eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@2 [eb3,ab3,eb4]@3 [eb3,ab3,eb4]@3 ~@3]/6", // Ab5
  J: "[eb3,ab3,eb4]@4 [eb3,ab3,eb4]@6 [db3,ab3,db4]@4 [eb3,ab3,eb4]!2", K: "[[ab3,eb4], eb3 ~]/2",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~ A@60 B A@38 C A@13 B D E ~@2>".pickRestart({
  A: "x!2", B: "x ~@2 x!2 ~@3", C: "x ~@2 x!3 ~@2", D: "x ~@3 x!2 ~@2", E: "x",
})).gain(0.61)

// drums · snare
const snare = s("sd").struct("<A B@7 C B@30 D B@7 E B@7 F B@5 G B@14 D B@7 H B@7 I B@7 J B@7 K B@6 L ~@3>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@7 x ~@2 x", D: "~@4 x ~@3 x ~ x ~ x ~ x!2", E: "~@4 x ~@7 x ~ x!2",
  F: "~@4 x ~@5 x!6", G: "~ x ~@2", H: "~@2 x ~@2 x!3", I: "~@4 x ~@5 x!5 ~", J: "~@2 x ~ x ~@3 x!3 ~ x ~ x!2",
  K: "~@2 x ~@3 x ~ x ~ x!5 ~", L: "~@2 x ~@2 x ~@2",
})).gain(0.55)

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

More by Ramazzotti