Strudelify
Amarti e l'immenso per me cover art

1989 · In Ogni Senso

Amarti e l'immenso per me

Ramazzotti

KeyF majorTempo62 bpm
0:00/0:00
// Amarti e l'immenso per me — Ramazzotti
// 62 bpm, 4/4, key F 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 67 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(62/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.

// chords · piano
const piano = note(`<
  A B@2 C D E F G D H I J K L M@2 ~ N O@2 P Q R S T U V W X Y Z AA AB AC AD AE@3 ~@10 AF AG AH AI AJ AG AH AI AK AL AM
  AN AO@2 AM AN AP@3
>`.pickRestart({
  A: "~@15 c5, f2@7 a4, [c4,f4]@11 f3@5, f3@8 c5@5 f4@3, c5@3 a4@3 c4@2", // F5
  B: "[~@31 c5, [bb2,f3,bb3,f5]@10 bb4 c5 a4 bb4 g4@2 f4@11 f3@3 a4@2, bb4@4 d5@2 c5@3 d5@6 a4 c5@6 a4@6 c4@4, ~ f4@2 f4@13 [f2,c3]@16, ~@2 e5@14 f3@8 c5@5 f4@3]/2", // Bb5 F5
  C: "~@5 d5 [bb3,d4,f4]@2, [bb2,f3], [bb3,bb4,f5]@2 d5 c5@3 ~@2, ~ f4@11 ~@4, ~ e5@5 ~@2", D: "a3@7 a3, [f2,c3,f3,c4]",
  E: "~@2 d4 c4@5, [bb1,bb2,f3,bb3], f4@7 ~@9, ~@2 e4@5 ~@9", F: "[f3,a3]@12 [f3,a3]@3 c3, [f2,c3,c4], g3 ~@15",
  G: "[c2,c3,f3,bb3,d4]", H: "~@2 d4 c4@5, [c2,c3,f3,bb3], f4@7 ~@9, ~@2 e4@5 ~@9", I: "[f2,f3,c4] [g2,f3,bb3]",
  J: "[a2,f3]@2 ~ bb3, c4, ~ [bb2,f3]", K: "[c3,a3,f4] [d3,a3,f4]", L: "[c3,a3,e4] [c2,bb3,d4]", M: "[f2,a3,c4]/2",
  N: "~ [c2,c3,bb3,d4,f4]", O: "[[f2,f3,c4,f4,a4]@31 ~]/2",
  P: "g3@2 ~ g3@2 ~@6 g3@2 ~@2 g3, [c2,g4]@7 g3@3 bb2@4 bb2@2, [c4,eb4]@5 [g3,c4,eb4]@3 [c4,eb4]@5 [g3,c4,eb4]@3, ~ c3@2 c3 bb1@4", // C5 Cm
  Q: "a3 ~@6 c4 ~@2 a3 ~@4 a3, [a1,c4,f4]@6 a3@2 c4@3 a3 f2 [a3,c4] f2@2, ~ g3@3 a3 eb4@3, ~@3 f3@5 ~ f2@2 d4@5, ~@5 a2@3 [f1,f4]@8", // F Am F
  R: "~@3 f3@2 ~@2 f3 ~@6 a2@2, bb1 a1, [bb3,d4]@5 [f3,bb3,d4]@3 d4@4 a2@2 ~@2, ~@2 bb2@4 bb2@2 a3@2 f3@3 [f3,a3,d4]@3, ~@9 a2@2 a3@2 ~@3", // Bb Dm
  S: "f3@2 ~ f3@2 ~@2 f3 [g1,f3,bb3,d4]@2 [g2,f3] f3!2 ~@2 f3, [g1,d4]@8 ~@3 [a1,a2,a3,c4]@2 [bb1,f3,bb3,d4]@3, bb3@5 [f3,bb3]@3 ~@8, ~ g2@2 g2 ~@3 bb2", // Gm7 G7 G5 Am Bb Bb5
  T: "g3@2 ~ g3@2 ~@6 g3@2 ~@2 g3, [c2,c4,eb4]@5 [g3,c4,eb4]@2 g3@3 bb2@4 bb2@2, ~ c3@2 [c2,c3] bb1@4, ~@8 [c4,eb4]@5 [g3,c4,eb4]@3", // Cm C Cm
  U: "~@15 a3, [a1,c4,f4]@7 c4@4 a3 f2 [a3,c4] f2@2, a3@3 a3!2 eb4@3, ~@2 a2@3 a2@3 [f1,f4]@8, ~@3 f3@5 ~ f2@2 d4@5", // F Am F
  V: "~@4 f3 ~@2 f3 [f3,bb3]@2 ~@2 f3@2 [bb2,f3,d4]@2, bb1, [bb3,d4]@5 [f3,bb3,d4]@3 d4@4 bb3@4, ~@3 bb2@3 bb2@4 c4@6, ~@10 [f3,bb3] bb2@3 ~@2", // Bb5 Bb Bb5
  W: "e3@2 ~@4 a2@2 gb3@3 ~ gb3 ~ d2@2, a1@8 [d2,a3]@5 [gb3,a3]@3, a3@5 ~@3 d4@8, ~ a2!2 ~@3 c4@2, ~@3 e3@2 [e3,a3,d4]@3 ~@3 d3@5", // D5 Gbm Dsus2
  X: "b3 ~@2 [g2,b3] c4!3 [a2,c4], g1 ~, g2@3 ~ a2@3 ~, [d4,g4]!2 [e4,g4]!2, ~ b3@2 ~@5", // G Am G5 Em
  Y: "b3!3 [b2,b3] ~ g3!2 [c3,g3,g4], b2@3 ~ [c3,g4]@3 ~, [d4,g4]!2 [c4,e4]!2", // B C5 G5 C
  Z: "b3!3 [d3,b3] b3!3 [e3,b3], d3@3 ~ e3@3 ~, [d4,g4]!2 [e4,g4]!2", // G E5 G5 Em
  AA: "b3!3 [d3,b3] g3!3 [d2,d3,g3], d3@3 ~ d3@3 ~, [d4,gb4]!2 [c4,e4]!2", // G G5 D C
  AB: "b3 ~@2 [g1,g2,b3] c4!3 [a1,a2,c4], [g1,g2]@3 ~ [a1,a2]@3 ~, [d4,g4]!2 [e4,g4]!2, ~ b3@2 ~@5", // G Am G A G5 Em
  AC: "b3!3 [b1,b2,b3] ~ g3!2 [c3,g3,g4], [b1,b2]@3 ~ c2@4, [d4,g4]@2 [d4,g4]@2 [c3,g4]@3 ~, ~@2 [c4,e4]!2", // B C5 B G5 C5 C
  AD: "b3!3 [d3,b3] b3!3 [e2,e3,b3], d2@4 [e2,e3]@3 ~, d3@3 ~@5, [d4,g4]!2 [e4,g4]!2", // G E5 E G5 Em
  AE: "[b3!3 [d2,d3,b3] g3!2 [g3,c4,e4]@16 ~@2, [d2,d3]@3 ~ [d2,d3]@16 ~@4, [d4,gb4]!2 [c4,e4] ~@9]/3", // G C D C
  AF: "~@4 a3 ~@2 [f2,a3], ~@4 f2@3 ~, ~@2 [c4,f4]!2, ~@5 a3@2 ~", // F F5
  AG: "bb3!3 [g2,bb3] a3!3 [a2,a3], g2@3 ~ a2@3 ~, [d4,f4]!2 [c4,f4]!2", // Gm A Dm F5
  AH: "~ f3!2 [bb2,f3,f4] a3!3 [c3,a3], [bb2,f4]@3 ~ c3@3 ~, [bb3,d4]!2 [c4,f4]!2", // Bb5 F Bb5 Bb F5
  AI: "a3!3 [d3,a3] a3!3 [c3,a3], d3@3 ~ c3@3 ~, [d4,f4]!2 [c4,e4]!2", // D5 F Dm C
  AJ: "f3!3 [c2,c3,f3] a3 ~@2 [f2,a3], c3@3 ~ f1@4, [bb3,d4]@2 [bb3,d4]@2 f2@3 ~, ~@2 [c4,f4]!2, ~@5 a3@2 ~", // F5 F Bb F5
  AK: "~ c2@7, [c3,f3,bb3,d4]", // Bb
  AL: "a3 ~@2 [f2,a3] bb3!3 [g2,bb3], f1 ~, f2@3 ~ g2@3 ~, [c4,f4]!2 [d4,f4]!2, ~ a3@2 ~@5", // F Gm F5 Dm
  AM: "a3!3 [a2,a3] ~ f3!2 [bb2,f3,f4], a2@3 ~ [bb2,f4]@3 ~, [c4,f4]!2 [bb3,d4]!2", // A Bb5 F5 Bb
  AN: "a3!3 [c3,a3] a3!3 [d3,a3], c3@3 ~ d3@3 ~, [c4,f4]!2 [d4,f4]!2", // F D5 F5 Dm
  AO: "[a3!3 [c3,a3] f3!2 ~@2 a3 ~@2 [f2,a3] bb3!3 [g2,bb3], c3@6 ~@2 [c3,bb3,d4]@5 c3@11 ~@8, [c4,e4]@2 [c4,e4]@2 ~@2 [f3,bb3,d4]@2 f2@3 ~ g2@3 ~, ~@4 [c4,f4]!2 [d4,f4]!2, ~@9 a3@2 ~@5]/2", // F Gm C Bb F5 Dm
  AP: "[a3@2 a3@2 a3@2 [c3,a3]@2 f3@2 ~@4 d4@3 [f2,a3,c4]@27 ~@4, c3@3 ~ c3@5 ~@15, [c4,e4]@4 [c4,e4]@4 d4@6 ~@3 g3 ~@30, ~@4 bb3@2 bb3@3 ~@15, ~@5 f3@4 ~@15]/3", // F C
})).s("gm_piano").gain(0.31).pan(0.4)

// bass · fretless bass
const bass = note(`<
  ~@10 A B C D E ~@5 F G H I F J K L M N O P M N O Q R S T U V W X Y T Z AA AB AC M AD AE@2 M AF AG AH AI AJ C AK AI AJ
  C AL AM@2
>`.pickRestart({
  A: "f2 g2", B: "a2@8 bb2@7 ~", C: "c2 d2", D: "c2 c1", E: "f1@15 ~", F: "c2 bb1", G: "a1@8 f1@3 f1@5", H: "bb1 a1",
  I: "g1@7 ~ g1@3 d2 ~ g2@3", J: "a1 f1", K: "bb1@7 ~ bb1@8", L: "a1@2 d2!2", M: "g1 a1", N: "b1 c2", O: "d2 e2",
  P: "d2@2 d2!2", Q: "d2 d3", R: "g2 gb2", S: "e2 d2", T: "c2 b1", U: "a1@7 ~ d3@2 a3 d3!2 a3 d3@2", V: "a2 ab2",
  W: "gb2 e2", X: "d2 db2", Y: "b1@2 e2 e1", Z: "a1 g1", AA: "f1@3 f2 e2@4", AB: "d2@7 ~ g1@4 a1@4",
  AC: "bb1 bb2 a2 f2 c3@4 f1@6 ~ f1", AD: "bb1@7 ~ c2@6 c2 db2", AE: "[d2@8 c2@6 c3@6 c3@4 f1@7 ~]/2", AF: "bb1 c2",
  AG: "d2 c2", AH: "c2@5 d2@3 c3@3 c4 g3 c3@3", AI: "f1 g1", AJ: "a1 bb1", AK: "c2@2 c3!2", AL: "c2@4 c3@3 bb1",
  AM: "[~ f1@30 ~]/2",
})).s("gm_fretless_bass").gain(0.39)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~ A B ~@4 C ~ D ~@6 E F G ~@17 H I J K ~@27>".pickRestart({
  A: "~@9 d5 bb4 c5 a4 ~@2 a4", B: "c5@11 ~@5", C: "[g3,d4]@7 ~", D: "[c3,g3,d4]@15 ~", E: "~ d4@3 ~ d4@3, g4 gb4",
  F: "~@2 d4@4 ~@7 c5@2 ~, f4@7 ~@2 c4@6 ~, ~@10 f4@5 ~, ~@11 bb4@5", G: "~ g4, f4@3 ~",
  H: "~@5 d4@2 g3 ~@5 d4@2 gb3, d4@5 ~@3 d4@5 ~@3, ~ g3@2 g3@4 ~@2 gb3@2 gb3@4 ~, ~ g4@3 ~ g4@3",
  I: "~@5 d4@2 e3 ~@5 d4@3, d4@5 ~@3 d4@5 ~@3, ~ e3@2 e3@4 ~@2 g3@2 g3@4 ~, ~ g4@3 ~ g4@3",
  J: "~@5 g4@3 ~@3 b3@5, e4@2 g4@3 ~@5 g4@6, ~ g3@8 g3@7, ~@3 e4@5 d4@5 ~@3", K: "~ a3@2 ~@2 c4@3 d4@6 ~@2, c4@5 ~@11",
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.3)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~ A ~@5 B ~@11 C ~@17 D@2 E ~@27>".pickRestart({
  A: "~@13 bb4 g4 ~", B: "c3@7 ~", C: "a4@8 g4@7 ~", D: "[~@15 g3@2 ~@12 d4@3]/2", E: "~@3 a3@5 ~@8, ~ g4@3 ~@4",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.3)

// other · vibraphone
const vibraphone = note(`<
  ~@4 A B C D@2 ~ E F G H I J K@3 ~ L@2 M@2 N@4 O P Q R S ~@3 T@2 U@2 V@2 W@3 ~@3 X@6 Y@4 ~@9
>`.pickRestart({
  A: "c5@6 a4 c5@5 ~@3 a4", B: "f5@2 e5@2 d5@2 c5@4 d5 f4@2 g4@3", C: "~@2 a4@4 f4 a4@7 ~ f4",
  D: "[a4@2 bb4@2 c5@2 a4 f4@4 ~ d4@2 c4@11 ~@7]/2", E: "c5@6 a4 c5@7 a4@2", F: "f5@2 e5@2 d5@2 c5@4 d5@2 f4 g4@2 ~",
  G: "~@2 a5@4 f5 a5@7 f5@2", H: "a5 bb5 c6 a5@2 f5 g5@2", I: "f5@7 ~@9", J: "~@6 a4 bb4 c5 bb4@2 a4@2 c5@3",
  K: "[bb4@3 ~ c5@2 bb4@6 c5@2 bb4@6 ~ f4 bb4 c5 d5@3 c5!2 g4 a4@7 ~@11]/3",
  L: "[eb5@2 f5 d5 ~ eb5 c5@2 ~@2 d5 bb4@2 c5@2 a4@2 g4 f4@4 ~ f4 f5 eb5 ~ d5 c5@3 ~]/2",
  M: "[d5@2 eb5 c5@2 d5 bb4@4 c5 a4@2 bb4 a4 g4@5 ~@12]/2",
  N: "[eb6@2 f6 d6@2 eb6 c6@4 d6 bb5@2 c6@2 a5@2 g5 f5@3 ~@2 f5 f6@2 eb6 d6@2 eb6@2 d6@6 ~ d6!2 d6@2 c6@2 bb5@2 d6@10 ~@8]/4",
  O: "d6@6 b5 d6@5 ~@2 b5@2", P: "g6@2 gb6@2 e6@2 d6@4 e6@2 g5 a5@3", Q: "b5@6 g5 b5@7 g5@2",
  R: "b5 c6 d6 b5@2 g5 a5!2", S: "~ g5@4 ~@3", T: "[g4@3 ~ g4 a4 g4@5 ~ g4 a4 g4@7 g4 a4 c5@3 b4 a4 g4 g4@2 ~]/2",
  U: "[~@4 g4 a4 g4@4 ~ g4@2 a4 g4@5 ~@2 g4 a4 c5@2 ~ b4!2 a4 a4@2 ~]/2",
  V: "[~@4 a4 b4 a4@2 ~@4 a4 b4 a4@6 ~ a4 b4 d5@3 db5 e5 db5 b4 a4@2]/2",
  W: "[~@5 a4 b4 a4@2 e4@3 ~ gb5 e5 db5@2 a4@3 ~ a4 b4 d5@3 db5!2 b4 c5@19]/3",
  X: "[~@8 c6@6 a5 c6@5 ~@2 a5@2 f6@2 e6@2 d6@2 c6@4 d6 f5 g5@3 ~ a5@6 f5 a5@7 f5@2 a5@2 bb5@2 c6@2 a5@4 f5 g5@5 c5@6 a4 c5@5 ~@2 a4@2 f5@2 e5@2 d5@2 c5@2]/6",
  Y: "[~@2 d5@2 f4 g4@3 ~@2 a4@4 f4 a4@4 ~@3 f4@2 a4@2 bb4@2 c5@2 a4 g4@6 ~@7 f5 c5 f5@16 ~@2]/4",
})).s("gm_vibraphone").gain(0.08)

// other · french horn · Fmaj7 Am
const french_horn = note("<~@47 [~@6 [e4,f4] [a3,c4] g3@3 ~@5] ~@19>").s("gm_french_horn").gain(0.2).pan(0)

// other · string ensemble 2
const string_ensemble_2 = note("<~@28 [g2 a2] [b2 c3] [d3 e3] d3 ~@35>").s("gm_string_ensemble_2").gain(0.27)

// chords · pad warm
const pad_warm = note(`<
  A B@2 C ~@6 D@2 E@2 F ~@5 G H@3 G I@2 J K L@3 K L@3 M@2 N@2 O P Q@2 R S T@2 U V@3 W V@3 X Y Z@3 Y Z@3 ~@2
>`.pickRestart({
  A: "c5@3 a4 c5@3 a4", B: "[f5 e5 d5 c5@8 a4 c5@3 a4]/2", C: "f5 e5 d5 ~@2 f5@2 ~, ~@6 c5@7 ~@3",
  D: "[[f3,c5]@2 [g3,bb4]@2 a3@2 ~ bb4, f4, ~@4 c5@3 ~, ~@3 bb3]/2", // F5 Gm
  E: "[c4 d4 [c4,e5,e6] [c3,bb4,d5,d6], a4@3 ~, [f5,f6] ~]/2", F: "[f3,a4,c5,c6]", G: "c5 bb4, [g4,eb5]",
  H: "[[f4,a4]@16 bb4@8 a4@8 [g4,bb4]@11 [a4,c5]@2 [bb4,d5]@3, f5, ~ d5 ~]/3", I: "[[f4,a4] [bb4,d5], f5]/2",
  J: "e5@2 d5 c5, a4, ~ d4", K: "[g4,b4,d5] [a4,c5,e5]",
  L: "[[b4,d5] [c5,e5] d5 e5 [d5,gb5] [a4,c5,e5], g5@2 ~, ~@2 b4@3 ~]/3", // Bm C D Am
  M: "[[g3,b4] [gb3,a4] [e3,g4] [d3,gb4], d5]/2", N: "[[c3,c5] [b2,d5] a2 [d3,a4], g4@3 ~, ~ c5]/2",
  O: "[a3,db5] [ab3,b4], e4", P: "[gb3,a4] [e3,ab4], db4", Q: "[[d3,gb4] [db3,e4] [b2,d4] [e3,ab3,b3], a3@3 ~]/2",
  R: "e5 d5, g4", S: "c5 b4, e4", T: "[a4@2 g4@2 f4@2 [g3,d4] [a3,e4], c4@3 ~]/2", U: "[bb3,f4] [c4,g4] [f4,a4,c5]@2",
  V: "[[g4,bb4,d5] [a4,c5] [bb4,d5] c5 d5 [c5,e5], ~ f5@4 ~, ~ a4]/3", W: "[g4,bb4,d5] [f4,a4,c5]", X: "[g4,bb4,d5]",
  Y: "[f4,a4,c5] [g4,bb4,d5]", Z: "[[a4,c5] [bb4,d5] c5 d5 [c5,e5] [g4,bb4,d5], f5@2 ~, ~@2 a4@3 ~]/3",
})).s("gm_pad_warm").gain(0.08)

// chords · pizzicato strings · G5 C5 F5 C D5
const pizzicato_strings = note(`<
  ~@44
  [~ g3 d4 g4 ~ d5 g5 ~@2 g3 d4 [d5,g5] ~ g4 [d5,g5] ~]
  [~ g3 d4 g4 ~ d5 g5 ~ c4 g4 [c5,g5]!6]
  [[c5,f5]!8 [c5,e5]!8]
  [[a4,d5]!8 ~@8]
  ~@19
>`).s("gm_pizzicato_strings").gain(0.15).pan(0.4)

// chords · harpsichord
const harpsichord = note(`<
  ~@28 A B C D A B C E ~@2 F ~ G H I J K L M N O P Q R S P Q R T U V W X U V W Y ~@2
>`.pickRestart({
  A: "[g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [a5,c6,d6] ~ [a5,c6,d6] ~ [a5,c6,d6] ~ [a5,c6,d6] ~", // G D7
  B: "[g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~", // G C
  C: "[g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,d6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~", // G Em
  D: "[gb5,b5,d6] ~ [gb5,b5,d6] ~ [gb5,b5,d6] ~ [gb5,b5,d6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~", // Bm C
  E: "[gb5,b5,d6] ~ [gb5,b5,d6] ~ [gb5,b5,d6] ~ [gb5,b5,d6] ~ [gb5,a5,d6] ~ [gb5,a5,d6] ~ [gb5,a5,d6] ~ [gb5,a5,d6] ~", // Bm D
  F: "[c6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~", // C G
  G: "[a5,db6,e6] ~ [a5,db6,e6] ~ [a5,db6,e6] ~ [a5,db6,e6] ~ [ab5,b5,e6] ~ [ab5,b5,e6] ~ [ab5,b5,e6] ~ [ab5,b5,e6] ~", // A E
  H: "[gb5,a5,db6] ~ [gb5,a5,db6] ~ [gb5,a5,db6] ~ [gb5,a5,db6] ~ [e5,a5,db6] ~ [e5,a5,db6] ~ [e5,a5,db6] ~ [e5,a5,db6] ~", // Gbm A
  I: "[gb5,a5,d6] ~ [gb5,a5,d6] ~ [gb5,a5,d6] ~ [gb5,a5,d6] ~ [e5,a5,db6] ~ [e5,a5,db6] ~ [e5,a5,db6] ~ [e5,a5,db6] ~", // D A
  J: "[d5,gb5,b5] ~ [d5,gb5,b5] ~ [d5,gb5,b5] ~ [d5,gb5,b5] ~ [e5,ab5,b5] ~ [e5,ab5,b5] ~ [e5,ab5,b5] ~ [e5,ab5,b5] ~", // Bm E
  K: "[g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~ [g5,b5,e6] ~", // C Em
  L: "[a5,c6,e6] ~ [a5,c6,e6] ~ [a5,c6,e6] ~ [a5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~", // Am C
  M: "[a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~ [g5,c6,e6] ~", // F C
  N: "[f5,a5,d6] ~ [f5,a5,d6] ~ [f5,a5,d6] ~ [f5,a5,d6] ~ [g5,b5,d6] ~@3 [a5,c6,e6] ~@3", // Dm G Am
  O: "[bb5,d6,f6] ~@3 [c6,e6,g6] ~ [c6,e6,g6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // Bb C F
  P: "[g5,bb5,c6] ~ [g5,bb5,c6] ~ [g5,bb5,c6] ~ [g5,bb5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // C7 F
  Q: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // Bb F
  R: "[f5,a5,d6] ~ [f5,a5,d6] ~ [f5,a5,d6] ~ [f5,a5,d6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~", // Dm Am
  S: "[d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // Bb F
  T: "[d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~", // Bb
  U: "[f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [g5,bb5,c6] ~ [g5,bb5,c6] ~ [g5,bb5,c6] ~ [g5,bb5,c6] ~", // F C7
  V: "[f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~", // F Bb
  W: "[f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,d6] ~ [f5,a5,d6] ~ [f5,a5,d6] ~ [f5,a5,d6] ~", // F Dm
  X: "[e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~ [d5,f5,bb5] ~", // Am Bb
  Y: "[e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [d5,g5,bb5] ~ [d5,g5,bb5] ~ [d5,g5,bb5] ~ [d5,g5,bb5] ~", // Am Gm
})).s("gm_harpsichord").gain(0.23).pan(0.8)

// chords · synth strings 2
const synth_strings_2 = note(`<
  A@4 ~@4 B C ~@4 D E F G H@2 I J@3 K L@3 ~@8 M@2 N@2 O P Q@2 R S T@2 U ~@18
>`.pickRestart({
  A: "[[f3,a4]@8 [bb2,f4]@8 [f3,a4]@8 [bb2,f4]@7 ~, c5@31 ~]/4", B: "[f2,a3,c4]", C: "[c2,bb3,d4,f4]@9 ~@7", D: "f3",
  E: "gb3", F: "g3 gb3", G: "f3 c3", H: "[f2@27 ~@5]/2", I: "c4 bb3, eb4",
  J: "[a3@16 ~@8 a3@8 g3@8 bb4@3 [eb4,c5]@2 [f4,d5]@3, f4@32 g4@13 ~@3, ~@2 bb3 ~@3, ~@20 d4@23 ~@5]/3", // Cm Dm
  K: "c5 bb4, [g4,eb5]", L: "[[a4,c5]@16 bb4@16 [e4,a4]@8 ~@4 c5@3 ~, f5@32 ~@8 [d4,gb4]@7 ~, ~@4 d5@7 ~]/3",
  M: "[[g2,b3] [gb2,a3] [e2,g3] [d2,gb3], d4]/2", N: "[[c2,c4] [b1,b3] a1 [d2,gb3], g3@3 ~, ~ a3]/2",
  O: "[a2,db4] [ab2,b3], e3", P: "[gb2,a3] [e2,ab3], db3", Q: "[[d2,gb3] [db2,e3] [b1,d3] [e2,ab2,b2], a2@3 ~]/2",
  R: "[c3,e4] [b2,d4], g3", S: "[a2,c4] [g2,b3], e3", T: "[[f2,a3]@2 [e2,g3]@2 [d2,f3]@2 [g2,d3] [a2,e3], c3@3 ~]/2",
  U: "[bb2,f3] [c3,g3] ~@2", // Bb5 C5
})).s("gm_synth_strings_2").gain(0.21)

// chords · harmonica · Bmaj7 Amaj7 Fsus2 Abmaj7 G5 Dm Dbmaj7
const harmonica = note(`<
  ~@8
  [[a4,bb4,b4] ~@5 a4@2 [bb4,b4] ~@2 [ab4,a4] [f4,g4] g4 a4 c5, c5@6 ~@2 c5@3 ~@5]
  [f5@2 e5@2 d5@2 c5@4 db5 g4 [g4,ab4] [g4,d5] [d4,f4] [c4,db4], e5 ~@9 d5@2 ~@4]
  ~@57
>`).s("gm_harmonica").gain(0.23).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@20 A B A C A@2 D A E A@3 E A@2 F A@3 G E B A@3 H A@6 I J A@2 K A@3 L A@4 M ~
>`.pickRestart({
  A: "x!2", B: "x ~@7 x ~@2 x ~@4", C: "x ~@7 x ~@2 x ~ x ~@2", D: "x ~@6 x!2 ~ x ~@5", E: "x ~@6 x!2 ~@7",
  F: "x ~@4 x ~@2", G: "x ~@12 x ~@2", H: "x ~@7 x ~ x ~@2 x!2 ~", I: "x ~@4 x!2 ~ x ~@7", J: "x ~@6 x!2 ~@6 x",
  K: "x ~@2 x ~ x ~@2", L: "x ~@7 x ~@4 x!2 ~", M: "~ x ~@14",
})).gain(0.45)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@20 A@3 ~ A@2 ~@2 B A@3 B A@2 ~@3 A ~@2 A C ~ A ~@2 A B@3 ~@3 B ~@2 A@3 ~ A@3 ~@3
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@15 x", C: "~@7 x ~@7 x",
// … 77 more lines

More by Ramazzotti