Strudelify

Non piango piu

Ruggeri

KeyB♭ majorTempo66 bpm
0:00/0:00
// Non piango piu — Ruggeri
// 66 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 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(66/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 H I J K L M N O P Q R S T U V W X Y Z AA AB@3 AC AD@2 AE AF AG AH AI@2 AJ@2 AK AL AM AN AO AP AQ AR AS
  AT AU AV AS AT AU AW AX AY AZ BA AK AL AM AN AO AP AQ AR AS AT AU BB BC AT BD BE BF@2
>`.pickRestart({
  A: "~@10 d4@2 gb4@2 a4 ~",
  B: "[~ g4 ~@2 bb3@2 ~@2 [d3,e4,gb4]@2 [db3,bb3,e4]@2 [gb3,d4] ~@2 [b2,a4], [d3,b3,a4,b4]@8 ~@4 bb3@4 a3 ~@7 b2@6 ~@2, ~@2 g4@2 ~@3 a4@3 ~@6, ~@5 gb4@3 ~@20 [b3,gb4]@4, ~@3 e4@5 ~@5 [gb3,d4]@3]/2", // D Bbdim D B7 Bm7 B5 D
  C: "~@3 g4 ~@3 d4, e3 [a2,a3,e4], g4@3 ~@3 [g3,db4]@2, e4@2 [e4,b4]@2 d4@3 ~, ~@2 [b3,a4]@6 ~@3 e3@5", // A5 Gdim E5 B7
  D: "[d3,gb3]@3 ~@3 d4@2 [db3,gb3]@3 ~@3 db2@2, [a3,d4]@5 a3@3 [bb3,e4]@8, ~@3 d3@5 ~@3 db3@5, ~ gb3 ~ [gb3,gb4]", // D Gb5 D5 Bbdim Gb
  E: "[b3,d4]@3 ~@3 b3@2 [g3,b3]@4 [g3,b3,g4]@4, [b1,b2,gb4] [e2,e4], ~@3 b3@3 ~@10, ~ d4 ~@2", // Bm G B5 E
  F: "a3 ~@5 a3@2 ~@4 gb3@2 gb3@2, a2 b2, [db4,e4]!2 [d4,gb4]!2, ~ a3@2 ~@2 b3@3", // Dbm D
  G: "[g3,b3,e4]@2 g3!2 [a3,db4,e4]@2 [a3,db4,e4]@2, e2 a2, ~ [b3,e4] ~@2", // Em A E5
  H: "b3@3 [b3,d4,gb4]@2 gb2 [b1,b3,d4]@6 ~@3 d3, [b2,db4,e4]@3 gb4@2 ~ [a2,gb3]@2, ~@6 db4!2, ~@13 d4@3", // Bm Dbm7 D
  I: "a3@4 ~@3 e3 [a2,a3,e4]@4 ~@3 g4, g2@2 ~ [db3,a3,e4], [b3,d4]@5 b3@3 ~@8, ~ a3 ~@2, ~@3 d4 ~@3 a4", // A5 A Bm
  J: "[d3,e4] gb3 a3 [gb2,d4] gb3 d3 [b3,d4]@6 ~@2 g4 ~, ~@6 g2@9 ~, ~@12 b3@3 ~, ~@13 d4@2 ~", // Dsus2 D Bm
  K: "[a3,gb4]@4 [gb3,d4]@4 [g3,d4,e4]@3 e3 [g3,db4,e4]@3 ~, a4 ~, e4 ~@7 a2@8", // D Em7 Dbdim
  L: "d3@3 ~@2 a3@2 d4 [d3,gb3]@3 ~ [a2,d4,e4]@4, d4@7 ~@9, [g3,a3]@4 g3@4 ~@3 a3@5, ~@3 d3@5 ~@8", // D Asus4 Gsus2
  M: "[d3,a3,d4,gb4]@2 ~ [g3,b3,d4], ~ g2", N: "[a3,d4,e4] [a3,db4,e4] ~ [a4,d5], a2 [d3,a3,d4,gb4]",
  O: "[b3,d4]@4 ~ d4@2 ~ [a4,b4,d5]@4 [d4,g4,b4]@3 ~, [b2,gb3]@8 g2@7 ~, ~ b3 ~@2", // Bm Bm7 G B5
  P: "[ab4,b4,e5]@3 ~ [ab3,b3,e4]@3 ~ d4@4 db4@3 ~, ab2 [a2,a3,e4]", // E A5
  Q: "d4@6 d4@2 [gb3,a3]@2 ~@3 db4@3, [b2,gb3,b3] gb2, ~@8 db4@5 ~@3, ~@5 gb3@3, ~@11 a3@5", // Gbm B5
  R: "[e2,e3,g3,b3]@3 [e3,a3,db4]@3 [e3,a3,db4]@2, ~@3 a2@5", // Em A
  S: "gb4@6 g4@2 [a3,d4,e4]@4 [a3,db4,e4]@3 ~, [d2,a3,d4] a2", // Asus4 A D5
  T: "[a3,d4,g4]@6 [a3,d4,g4]@2 [a3,d4,gb4]@3 ~ b3 b3@2 ab3, d2@11 ab3@2 ~@3, ~@3 [e2,e4]", // Dsus4 D E
  U: "[e3,a3,db4]@3 ~ [e3,a3,db4]@4 [gb3,a3,d4]@3 ~ [gb3,a3,d4]@4, a2 d2", // A D
  V: "[e3,ab3,b3]!2 [e3,a3,db4]!2, e2@8 a2@7 ~", W: "[e3,a3,db4]!2 [gb3,a3,d4]!2, a2 d2",
  X: "[e3,a3,b3]@4 [e3,ab3,b3]@4 [a2,a3,db4]@4 ~ db2@3, e2@8 e3@7 ~, ~@3 [a3,db4]", // Esus4 E A
  Y: "[gb3,a3,d4]!2 [a3,b3,e4] [ab3,b3,e4], d2 e2", // D Asus2 E
  Z: "[a3,db4,e4]@4 [a3,db4,e4]@4 [d4,e4]@3 ~@2 a3@3, db2 d2, ~@8 a3@2 ~ a3@2 ~@3, ~@3 [d4,e4]", // A Dsus2
  AA: "[a3,db4,e4]@4 [a3,db4,e4]@3 ~ [b3,d4]@2 e4@2 [d4,gb4]@2 [b4,d5]@2, a2 b2, ~@10 db4 ~@5", // A Bm D Bm
  AB: "[[e4,a4,b4]@3 ~ [e4,ab4,b4]@4 [db4,e4,a4]@3 ~ [a3,db4,e4]@4 db4@2 ~@4 e4@2 d4 ~ d4@2 d4 db4 ~@2 [e3,ab3]@4 a3@2 e4@2 [a3,db4,e4]@4 [a3,db4,e4]@4, e3 a2@2 d2 e2 a2, ~@8 e4@2 db4@2 ~@3 b3@3 ~@6, ~@16 a3 ~ a3@6 [a3,gb4]@4 ~@20]/3", // Esus4 E A E A D
  AC: "[a3,db4] ~ db4 e4 d4 e4 gb4 d4, a2 [b2,gb3,b3], e4 ~@3, ~@2 a3@5 ~@9", // A B5
  AD: "[a3@2 ab3 a3 ~@5 e3 [bb2,f3,bb3,d4]@2 [bb3,f4,g4]@2 [bb3,eb4,g4] d4, e2@2 a2@3 ~ eb2@2, [e3,b3]@3 ~ [a3,db4]@2 [a3,db4]@2 [a3,db4]@2 ~@6, ~@5 e3@2 e3@2 ~@7]/2", // Bb Gm7 Eb E5 A
  AE: "[ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@4 [bb3,eb4,f4]@4 [bb3,d4,f4]@3 ~, ab2 bb2", // Ab Bbsus4 Bb
  AF: "[bb3,f4,g4]@3 ~ [eb4,eb5]@2 [d4,d5]@2 [eb4,eb5]@3 ~@2 g4@2 ~, eb3 c3, ~@11 g3@4 ~, ~@12 eb4@3 ~", // Gm7 Eb D Eb
  AG: "[bb3,c4,eb4]@2 ab3 [g2,g3] [a2,a3,c4,f4]@2 [f2,a3,c4,f4]@2, ab2@3 ~@5, ~ [c4,eb4] ~@2", // Cm7 G F Cm
  AH: "[bb3,eb4,f4]@3 ~ [bb3,d4,f4]@4 [c4,eb4,g4]@4 eb4@2 c4@2, bb2@7 ~ c3@8, ~@3 g4", // Bbsus4 Bb Cm
  AI: "[[c4,d4,g4]@3 ~ [bb3,d4,g4]@4 [f2,c4,eb4,ab4]@6 bb2@6 ~@2 f3 ab3 f4@2 ~@2 eb3@2 ab4@2, g2@8 ~@6 [d4,f4,bb4]@9 ~ [bb3,g4]@8, ~@20 bb2@3 ~@3 eb4@6, ~@21 d3@2 ~ eb3@4 ~@4]/2", // Csus2 Gm Fm7 Bb Eb
  AJ: "[[bb3,eb4]@4 [bb3,d4]@4 [eb4,ab4]@2 ~ [eb4,ab4]@2 bb3 [bb3,eb4,ab4]@2 [bb3,eb4,g4]@4 [f2,a3,eb4,f4]@4 [f3,c4,d4]@4 [f3,bb3,d4]@4, [bb2,f4]@2 eb2@3 ~ bb2@2, ~@8 bb3 ~ bb3@2 ~@20]/2", // Eb5 Bb Ab5 Ebsus4 Eb F7 Dm7 Bb …
  AK: "[bb3,f4,g4] [bb3,eb4,g4] [bb3,c4,f4] [a3,c4,f4], eb2 f2", // Gm7 Eb Bbsus2 F
  AL: "[bb3,d4,f4]@3 ~@3 bb2 ~ [bb2,d4,f4]@4 ~@2 bb2@2, bb2@4 [bb3,d4,f4]@4 c4@3 ~ [bb3,d4,f4]@4", // Bb
  AM: "[bb3,f4,g4] [bb3,eb4,g4] [bb3,c4,f4] [a3,c4,f4], eb3 f2", // Gm7 Eb Bbsus2 F
  AN: "[bb2,bb3,d4]@4 ~ d2@3 [g3,bb3,f4]@4 [g3,bb3,eb4]@4, f4@3 ~ [bb3,d4,f4]@4 eb2@8", // Bb Gm7 Eb Bb
  AO: "[f3,bb3,c4] [f3,a3,c4] [f3,bb3,d4]!2, f2 d2", // Fsus4 F Bb
  AP: "[eb2,bb3,eb4]@4 eb3 [eb2,eb4]@3 [f3,bb3,d4]@4 [f3,bb3,d4]@3 ~, g3@3 ~ [g3,bb3]@4 bb2@7 ~", // Eb5 Eb Bb Gm
  AQ: "[c4,eb4] [d4,f4] [eb4,g4] [eb4,eb5] [c4,f4,bb4]@2 [c4,f4,a4]@2, [c3,g3]@3 ~ f2@4", // Cm Dm Eb Fsus4 F C5
  AR: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4] ~@2 f4, bb2@3 [bb2,d4], ~@2 f4 ~, ~@5 bb3@3", // Bb
  AS: "eb4 ~ eb4@2 eb4 d4 ~@2 [f3,a3]@4 bb3@2 f4@2, eb2 f2, [bb3,g4]@2 ~ c4@3 ~@2", // F Eb
  AT: "[bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4] ~ d4 f4, bb2!2, ~@2 f4 ~, ~@10 bb3@5 ~", // Bb
  AU: "eb4 f4 g4 eb4 bb3@2 a3 bb3, [c3,g3,c4] f2, ~@4 [f3,c4]@3 ~", // C5 F5
  AV: "~@4 bb3 ~ d4 f4, bb2@3 [bb2,f3], [bb3,d4]!2 d4 ~, ~ f3@2 f3@2 bb3@3", // Bb5 Bb
  AW: "[bb3,d4]@2 ~ [c4,eb4]@2 ~@5 [bb3,bb4]@2 [d4,d5]@2 [f4,f5]@2, bb2!2, f3 ~ f3@3 f3@4 ~@7, ~@3 [d4,f4]@2 ~@3", // Bb Cm Bb D F Dm
  AX: "[g3,bb3,f4] [g3,bb3,eb4] [f3,bb3,c4] [f3,a3,c4], eb2 f2", // Gm7 Eb Fsus4 F
  AY: "[f3,bb3,d4]@4 [f3,bb3,d4]@4 [eb2,bb3,eb4]@4 eb3 [eb2,eb4]@3, bb1@8 g3@3 ~ [g3,bb3]@4", // Bb Eb5 Eb Gm
  AZ: "[f3,bb3,d4]@4 [f3,bb3,d4]@3 ~ [c4,eb4]@2 [d4,f4]@2 [eb4,g4]@2 [eb4,eb5]@2, bb2@7 ~ [c3,g3]@6 ~@2", // Bb Cm Dm Eb C5
  BA: "[c4,f4,bb4] [c4,f4,a4] [f3,c4,d4] [f3,bb3,d4], f2 bb2", // Fsus4 F Dm7 Bb
  BB: "[bb3,d4]@2 ~ [c4,eb4]@2 ~@5 [bb3,bb4]@2 [d4,d5] [eb4,eb5] ~ [f4,f5], bb2!2, f3 ~ f3@3 f3@4 ~@7, ~@3 [d4,f4]@2 ~@3", // Bb Cm Bb D Eb F Dm
  BC: "eb4 ~ eb4@2 eb4 d4 c4@2 [c4,f4,bb4]@4 ~@2 f2@2, eb2@4 f2@3 ~, [bb3,g4,g5] ~@2 [c4,f4,a4]", // Fsus4 Eb F
  BD: "eb4 f4 g4 eb4 [c4,f4,bb4]@2 [c4,f4,a4]@2, [c3,g3,c4] f2", BE: "[eb3,g4,g5]@2 [d3,f4,f5] [c3,eb4,eb5]",
  BF: "[[bb2,d4,f4,bb4]@31 ~]/2", // Bb
})).s("gm_piano").gain(0.36)

// bass · electric bass finger
const bass = note(`<
  ~@13 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z@2 AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC AN BD BE BF BG AO BH BI BJ@2
>`.pickRestart({
  A: "d1@4 ~ d1!2 ~ g1@7 ~", B: "a1@4 ~ a1 a1@2 d1@4 d2@2 db2@2", C: "b1@4 ~ b1 b1@2 g1@6 gb1@2",
  D: "ab1@4 e1@4 a1@7 ~", E: "b1@4 ~ b1 b1@2 gb1@7 ~", F: "e1@6 b1@4 a2@4 e2 a1", G: "d2@4 ~ d2 d2@2 a1@5 ~ a1@2",
  H: "d1@4 ~ d1!2 ~ d1@4 e1@4", I: "a1@2 ~ a1@3 db2@2 d2@2 ~ d2@5", J: "e1@2 ~ e1@3 ab1@2 a1@2 ~ a1@3 e1 gb1",
  K: "a1@2 ~ a1@3 db1@2 d1@2 ~ d1@4 gb1", L: "e1@2 ~ e1@3 ab1@2 a1@3 e1 a1 db1@3", M: "d1@5 ~ d1@2 e1@2 ~ e1@3 e2 d2",
  N: "db2@4 ~@2 db2@2 d2@3 a1 d1@4", O: "a1@4 ~ a1 a1@2 b1@5 ~ b1@2", P: "e1@4 e2@2 e1@2 a1@4 a1@3 e2",
  Q: "b2 e2 a2@3 a1 db2@2 d2@5 ~ d2@2", R: "e2@6 e1@2 a1 ~@2 a1@3 e1@2", S: "a1@3 db2 b1@3 b1",
  T: "e2@3 e1@3 ab1@2 a1@5 ~ e1@2", U: "a1@4 bb1@4 eb2@5 ~ eb2 ~", V: "ab2@5 ~ ab1 ~ bb1@5 ~ bb1@2",
  W: "eb2@5 ~ d2@2 c2@6 g1@2", X: "ab1@3 ab1 a1@2 f1@2", Y: "bb1@2 ~ bb1@2 f1 bb1 b1 c2@4 ~ c2 c2@2",
  Z: "[g1@4 ~ g1 g1@2 f1@3 f2@2 ~ bb1@4 bb1@6 eb2@7 c3]/2", AA: "[bb2@8 eb1@12 f1@4 bb1@2 ~ bb1@3 d2@2]/2",
  AB: "eb2@2 ~ eb2@5 f2@2 ~ f2@3 f1@2", AC: "bb1@2 ~ bb1@5 bb1@2 ~ bb1@3 d2@2", AD: "eb2@2 ~ eb2@4 g2 f2@2 ~ f2@3 f1@2",
  AE: "c2@2 c3 f2 bb2 d2@3 eb2@5 ~ eb2@2", AF: "f2@2 ~ f2@3 c2 db2 d2@4 ~@2 d2@2",
  AG: "eb2@4 ~ eb1@3 bb1@4 ~ bb1 bb1@2", AH: "c2@4 g1@2 c2 g1 f1@4 f2@2 f1@2",
  AI: "bb1@4 bb1@3 f2 c3 f2 bb2@3 d3 bb2 f2", AJ: "eb2@5 ~ eb2 ~ f2@5 ~ f2 ~",
  AK: "bb1@2 ~ bb1@3 f1@2 bb1@3 f1 d1 ~ d1@2", AL: "c1@5 ~ c1@2 f1@3 c2 f1@2 a1@2",
  AM: "bb1@7 [g2,c3] bb2 f2@2 d2@2 d2 bb2 d2", AN: "eb2@4 ~@2 eb2 ~ f2@5 ~ f1@2",
  AO: "bb1@2 ~ bb1@3 f1@2 bb1@3 c2 d2@4", AP: "c2@5 ~ c2@2 f1@2 ~ f1@3 a1@2", AQ: "bb1@6 ~ f2 bb2@5 f2 d2@2",
  AR: "eb2@5 ~ eb2@2 f2@2 ~ f2@3 c2 f2", AS: "bb1@3 bb1 ~@2 d1 ~ eb1@3 bb1 eb2 ~ eb2 f2",
  AT: "bb1@2 ~ bb1@2 bb1!2 ~ c2@2 ~ c2@3 g1@2", AU: "f1@3 c2 f2@2 c2 f1 bb1@2 ~ bb1@2 ~ d2@2",
  AV: "eb2@2 ~ eb2@4 ~ f1@2 ~ f1@3 a1@2", AW: "bb1@2 ~ bb1@2 ~ f1 g1 bb1@2 ~ bb1@2 ~ d2@2",
  AX: "eb2@2 ~ eb2@4 ~ f1@2 ~ f1@2 ~ a1@2", AY: "bb1@2 ~ f1 bb1 d1@3 eb1@4 ~ eb1 eb1@2",
  AZ: "f1@3 f1 f2@2 c2 db2 d2@3 ~ bb2@2 d2@2", BA: "eb2@2 ~ bb1 eb2 eb1@3 bb1@4 ~ bb1 bb1@2",
  BB: "c2@5 ~ c2@2 f1@3 c2 f2 f1@3", BC: "bb1@2 ~ bb1@3 bb2@2 bb1 bb2@2 bb1 d2 f2 bb2 f2",
  BD: "bb1@2 ~ bb1@3 f1@2 bb1@5 ~ d2@2", BE: "c2@5 ~ c2@2 f1@2 ~ f1@2 c2 f2 c2",
  BF: "bb1@2 ~ bb1@3 ~ d3@2 c3 bb2 f2 d2@2 bb1 d2", BG: "eb2@4 ~ bb1 eb2@2 f2@5 ~ f1@2", BH: "c2@5 ~ g2@2 f2@6 bb2 d3",
  BI: "eb3@2 d3 c3", BJ: "[bb2@11 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.33)

// other · overdriven guitar
const overdriven_guitar = note("<~@49 A B@2 C D E F G H ~@11 A I J C D E F K L M@2>".pickRestart({
  A: "~@5 bb3 d4 f4", B: "[g4@2 eb4 ~ eb4 d4 c4@6 f4@2 d4@10 ~@2 bb3@2 d4@2 f4@2]/2", C: "eb4 f4 g4 eb4 c4@3 bb3",
  D: "bb3@9 ~ f4@2 d5 ~ eb5 f5", E: "f5 ~ g5@3 eb5 ~ d5 c5@6 bb4@2", F: "d5@6 c5 bb4 f4 ~ bb4@2 d5@2 f5@2",
  G: "eb5 f5 g5 eb5 c5@3 bb4", H: "bb4@5 ~@3", I: "g4@2 eb4 ~ eb4 d4 c4@8 f4@2", J: "d4@5 bb3 d4 f4",
  K: "eb5@2 f5@2 g5@2 eb5@2 d5@2 eb5 f5 c5@2 bb4@2", L: "g5@2 f5 eb5", M: "[d5@11 ~@5]/2",
})).s("gm_overdriven_guitar").gain(0.36).pan(0.2)

// other · oboe
const oboe = note("<~@13 A B C D E F G H ~@59>".pickRestart({
  A: "gb4@3 g4", B: "e4@6 d4 e4 gb4@4 d5@2 db5@2", C: "d5@7 db5", D: "b4@2 d5 db5", E: "d5 db5", F: "b4@3 a4@3 g4@2",
  G: "gb4@3 g4 e4@3 d4", H: "d4@3 b4",
})).s("gm_oboe").gain(0.18)

// other · french horn
const french_horn = note("<~@29 A@2 B C@2 ~@15 D E@2 F G H I F J ~@11 D H I F K H I F L@2 ~>".pickRestart({
  A: "[~@2 a3@2 db4@2 e4@2 gb4@2 d4@2 d4 db4 b3@6 e4@2 db4@10]/2", B: "~ a3 db4 e4 d4 e4 gb4 d4",
  C: "[b3@3 a3 a3@6 ~@6]/2", D: "~@5 bb3 d4 f4", E: "[g4@2 eb4@2 eb4 d4 c4@6 f4@2 d4@11 ~ bb3@2 d4@2 f4@2]/2",
  F: "eb4 f4 g4 eb4 c4@3 bb3", G: "bb3@9 ~ bb3@2 d4@2 f4@2", H: "g4@2 eb4@2 eb4 d4 c4@8 f4@2",
  I: "d4@9 ~ bb3@2 d4@2 f4@2", J: "bb3", K: "bb3@5 bb3 d4 f4", L: "[bb3@5 ~@3]/2",
})).s("gm_french_horn").gain(0.33).pan(0.7)

// other · french horn · soft notes
const french_horn_soft = note("<~@25 A@2 ~ B ~@16 C D E F G ~@8 H@2 ~ I ~@3 C D E F G ~@10>".pickRestart({
  A: "[gb3@4 a3@4 b3@12 a3@4 d4@7 ~]/2", B: "b3 a3", C: "~@2 g3 bb3", D: "c4@3 bb3", E: "eb4@7 ~@9", F: "~ c4",
  G: "bb3@9 ~@7", H: "[g3@4 bb3@4 c4@12 bb3@4 eb4@7 ~]/2", I: "c4 bb3",
})).s("gm_french_horn").gain(0.19).pan(0.7)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@5 A@3 B C D E F G ~@6 H I J@5 K L@2 M N O P@3 Q R@5 S T S U V W X Y Z AA AB AC Z AA AB AC AD@2 AE AF@7 AG AH AI AA
  AB AC AI AA AB AJ ~@2
>`.pickRestart({
  A: "[~@3 [g5,d6] [a3,db6]@2 [b3,gb5]@2 [g3,e5]@2 [a3,a5,db6]@2, gb3 e5@2 d6@2 ~, ~ [b4,d6]@2 ~@9, ~ g3 ~@4]/3", // G5 A B5 C A Bm
  B: "[b3,e5,db6]@3 [b3,gb5,d6]@3 [b3,gb5,d6]@6 [db4,a4,a5]@4", C: "a5@2 g5 gb5 [d5,a5]@2 [db5,g5]@2, [b4,b5] [a4,e5]",
  D: "[d4,a4,d5]@3 [gb3,gb4,a4]@3 [a3,a4]@6 [g3,g4]@4, ~@6 b4@9 ~", E: "a3 gb3 [e3,g4] [a3,a4,db5], a4 ~, ~ d5@2 ~",
  F: "[g3,g4]@2 [gb3,gb4] [a3,d4,a4], [d4,d5]@3 ~", G: "gb4@15 ~, d4@5 ~@3, a4@7 ~@9",
  H: "g4@2 gb4 [e3,b3,ab4], [d3,a3]@3 ~", I: "[e3,db4] [gb3,d4], a4",
  J: "[[b3,ab4]@2 ~@2 e3@2 [gb3,d4]@2 ~ ab4 db4@2 [gb3,d4]@2 ~ ab4 db4@2 [gb3,d4]@2, e3@2 ~@2 e3@2 ~ e3@2 ~, ~@2 a4@7 ~ a4@5 ~ a4@4, ~ db4@2 ~ b3 ~@2 b3 ~@2]/5", // E D
  K: "[e3,db4,e4] [gb3,b3,d4]", L: "[a4@4 ab4@4 [a2,db4,a4]@16 [a3,d4,gb4] ~@3 [a3,d4,gb4] ~@3, [e3,b3] ~@3]/2",
  M: "[b3,e4,ab4] ~@3 [b3,e4,ab4] ~@3 [db4,e4,a4] ~@3 [db4,e4,a4] ~@3", // E A
  N: "[db4,e4,a4] ~@3 [db4,e4,a4] ~@3 [b3,d4,gb4] ~@3 [b3,d4,gb4] ~@3", // A Bm
  O: "[b3,e4,a4] ~@3 [b3,e4,ab4] ~@3 [db4,e4,a4] ~@3 [a3,a4] [b3,b4] [a3,a4] [b3,b4]", // Esus4 E A B A B
  P: "[[db4,db5] [d4,d5] [e4,e5] ~ [f4,f5] ~ [bb3,bb4] ~ f4@4 eb4@2 d4@2 ~@4 [ab3,ab4]@4 eb4@4 d4@4 f4@4 eb4@2 d4@2 [bb3,eb4,g4]@7 d4, ~@2 [bb3,g4]@3 ~ bb3@4 ~@2, ~@2 c4 f4 g4 ~]/3", // Db D E F Bb Ab Eb
  Q: "[ab3,ab4] [a3,a4], c4", // Ab A
  R: "[eb4@4 d4@4 eb5@8 d5@4 [bb3,bb4]@4 [ab3,f4,ab4]@6 bb4@6 ab4@4 f4@4 ~@2 ab4@2 ~@4 d4@4 ab3@8 g3@4 [a3,c4,f4]@4 [f3,d4,bb4] ~@3 [f3,d4,bb4] ~@3, [bb3,bb4]@4 g4@8 ~@8 g4@3 ~ f4@4 ~@12, ~@4 c4@6 ~@5 [bb3,f4]@5 bb3@8 [bb3,eb4]@6 ~@6, ~@11 eb4@2 ~@7]/5", // Bb Db F Bb Bb5 Eb5
  S: "[g3,eb4,bb4] ~@3 [g3,eb4,bb4] ~@3 [f3,c4,bb4] ~@3 [f3,c4,a4] ~@3", // Eb Fsus4 F
  T: "[f3,d4,bb4] ~@3 [f3,d4,bb4] ~@3 [f3,d4,bb4] ~@3 [f3,d4,bb4] ~@3", // Bb
  U: "[f3,d4,bb4] ~@3 [f3,d4,bb4] ~@3 [g3,eb4,bb4] ~@3 [g3,eb4,bb4] ~@3", // Bb Eb
  V: "[f3,c4,bb4] ~@3 [f3,c4,a4] ~@3 [f3,d4,bb4] ~@3 [f3,d4,bb4] ~@3", // Fsus4 F Bb
  W: "[g3,eb4,bb4] ~@3 [g3,eb4,bb4] ~@3 [f3,d4,bb4] ~@3 [f3,d4,bb4] ~@3", // Eb Bb
  X: "[g3,eb4,bb4] ~@3 [g3,eb4,bb4] ~@3 bb4@4 a4@4, ~ [f3,c4]", Y: "[f3,d4,bb4]", Z: "[bb3,eb4,g4] [c4,f4,a4]",
  AA: "bb4@3 a4, [d4,f4]", AB: "[eb4,g4]@2 bb4 a4, c4, ~ f4", AC: "[d4,f4,bb4]",
  AD: "[[g3,eb4]@2 ~ a4 d4@2 [g3,eb4]@2, bb4@3 ~ bb4@4, ~ f3@2 ~, ~ c4 ~@2]/2", AE: "[f3,d4,f4] [g3,c4,eb4]",
  AF: "[bb4 a4 [f3,d4]@2 [g3,eb4]@2 ~ a4 ~@2 f3@2 [g3,eb4]@2 ~ a4 d4@2 [g3,eb4]@2 ~ a4 d4@2 [g3,eb4]@2 [f3,d4,f4]@2, [f3,c4]@2 bb4@5 ~ bb4@7 ~ bb4@5 ~ bb4@4 ~@2, ~@3 f3@2 ~@2 f3@2 ~ f3@2 ~@2, ~@3 c4 d4@2 ~ c4 ~@2 c4 ~@3]/7", // Dm Cm Dm F5
  AG: "[g3,c4,eb4]@2 bb4 a4, ~ [f3,c4]", AH: "[bb2,d4,bb4]", AI: "[bb3,eb4,g4]@2 bb4 a4, ~ [c4,f4]", AJ: "[bb3,bb4]",
})).s("gm_string_ensemble_1").gain(0.17)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@13 A B C D E F G H ~@56 I@3>".pickRestart({
  A: "~@5 gb4@3 ~@5 g4@3, d3 g2, ~ a3@3 ~@4, ~@3 d4@5 ~@3 d4@5",
  B: "~@5 a4@2 ~ e4 ~@2 a3@2 ~ [db3,a3]@2, a2@4 d3@3 ~, ~@2 db4@5 ~@3 d4@3 d4@3, ~@3 e4@5 ~ gb4@7", // Gbm
  C: "~@3 b3 db4 ~ b3@2 ~@5 d4@2 ~, b2 g2, ~@2 gb3@5 ~@3 d3@5 ~, ~@11 g3@5, ~@3 b3",
  D: "~@2 e4@2 ~@2 b4@2 ~@2 d4 ~ db4@3 ~, ab2@3 ~@2 ab4@3 ~ a3@6 ~, ~ b3@2 ~ b3@3 ~ e3@7 ~, ~@11 e4@3 ~@2",
  E: "[d3,gb3]@2 ~@2 db4 d4 ~@7 db4@3, b3@4 ~@4 gb2@7 ~, ~@10 gb3@5 ~, ~@11 a3@5", // D
  F: "[b3,e4]@5 ~@4 db4@2 b3 a3 g3 gb3 e3", // E5
  G: "~@5 gb4@2 ~ e3@2 ~@3 a4@2 ~, d3@8 ~@2 e3@5 ~, ~ a3@3 a3@4, ~@3 d4@5 ~@3 e4@4 ~",
  H: "~@5 g4@2 ~ [a3,d4,gb4]@3 ~ [b3,e4]@4, d3@7 d3@3 ~ e3@4 ~, ~@2 a3@5 ~@9, ~@3 d4@4 ~@9", // D E5
  I: "[~@5 g4@2 ~@4 f4 ~@3 eb4 [f3,bb3]@24 ~@8, eb3@7 ~ d3@4 c3@3 bb2@24 ~@9, ~@2 bb3@5 ~@2 f3@3 ~ eb3@3 ~@32, ~@3 eb4@5 ~@2 bb3@2 ~@2 bb3@2 d4@22 ~@10]/3", // Bb5
})).s("gm_acoustic_guitar_steel").gain(0.26).pan(1)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~@13 A ~ B C@3 D E ~@59>".pickRestart({
  A: "~@10 b3@5 ~", B: "~@5 d4 ~@10", C: "[~@19 gb3@3 b3 ~@9 g3@5 ~@11, ~@15 b2@8 ~@8 b2@6 ~@11, ~@18 d3@5 ~@25]/3",
  D: "~@7 a2 ~@8", E: "~@3 ab3",
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(1)

// chords · overdriven guitar
const overdriven_guitar_2 = note(`<
  ~@21 A B C D E F G H@2 I@2 J@2 ~@7 K L M N O P Q R S T U V U T U V U W X Y Z L M N O P Q R S T U V U T U V AA@2 ~
>`.pickRestart({
  A: "~ a3 ~ d4, a2@7 ~@3 a3@6, ~ e3@3 d3@4", B: "~ e4 ~ a3, e3@7 ~ a2@8, ~ b3@3 ~ e3@3",
  C: "~ a3 ~ d4, a2@4 ~ a3@3, ~@2 e3@6 d3@7 ~", D: "~@4 e4@4 ~@2 e3@2 a3 db3@3, e3@2 a2 ~, ~ b3@3 ~@4",
  E: "~ d4 ~ e4, d3@7 ~ e3@7 ~, ~ a3@3 ~ b3@3", F: "~ db4 ~ d4, db3 d3, ~ a3@3 ~ a3@3",
  G: "~ a3 ~ b3, a2@7 ~ b2@7 ~, ~ e3@3 ~ gb3@3",
  H: "[~ e4 ~@3 a2 ~ d4, e3@8 a2@11 ~@13, ~ b3@3 ~ e3@2 e3@2 e3@3 d3@4, ~@12 a3@4 a3@7 ~@3 a3@6]/2",
  I: "[~ e4 ~@3 a3 ~ b3, e3 a2@2 b2, ~ b3@3 ~ e3@4 e3@3 ~ gb3@3, ~@3 a3@2 ~@3]/2",
  J: "[~ e4 ~ a3@2 [bb2,f3,bb3] ~@2, e3@2 a2@3 ~@3, ~ b3@3 ~ e3@5 ~@6]/2", K: "g3 a3 ~ bb3, ~@8 bb2@7 ~, ~@5 f3@3",
  L: "~ eb4 ~ f4, eb3@8 f3@7 ~, ~ bb3@3 ~ c4@3", M: "~ bb3 ~ bb3, bb2!2, ~ f3@3 ~ f3@3",
  N: "~ eb4 ~ f4, eb3@7 ~ f3@8, ~ bb3@3 ~ c4@3", O: "~@2 f3@2 bb3 d3@3 ~@4 eb4@4, bb2@4 ~@4 eb3@7 ~, ~@5 bb3@3",
  P: "~ f4 ~ d4, f3@7 ~ d3@8, ~ c4@3 ~ bb3@3", Q: "~ eb4 ~ bb3, eb3 bb2, ~ bb3@3 ~ f3@3",
  R: "~ c4 ~ f4, c3@7 ~@3 c4@6, ~ g3@3 f3@4", S: "~@3 bb2, bb2@11 ~@5, ~ f3@2 f3@2 f3@3, ~@4 bb3@4 bb3@7 ~",
  T: "~ eb4 ~ f4, eb3 f3, ~ bb3@3 ~ c4@3", U: "~@3 bb3, bb2, ~ f3@4 f3@3, ~ bb3@2 ~",
  V: "~ c4 ~ f4, c3@4 ~ c4@3, ~ g3@3 f3@4", W: "~ eb4 ~ f4, eb3@7 ~ f3@7 ~, ~ bb3@3 ~ c4@3",
  X: "~ bb3 ~ eb4, bb2@4 ~ bb3@3, ~ f3@3 eb3@4", Y: "~ bb3 ~ c4, bb2@8 c3@7 ~, ~ f3@3 ~ g3@3",
// … 109 more lines

More by Ruggeri