Strudelify
L'altra donna cover art

Uomini soli

L'altra donna

Pooh

KeyF minorTempo70 bpm
0:00/0:00
// L'altra donna — Pooh
// 70 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: 
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 81 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.

// chords · string ensemble 2 · "Strings2"
const string_ensemble_2 = note("<~@4 A B C D E F G H I J K L M ~@17 N O P Q R S T U V W X Y Z AA ~@33>".pickRestart({
  A: "~@2 [ab3,b3,eb4] ~ [b3,eb4] ~ [ab3,b3,eb4] ~, ~@8 ab3 ~@7", // Abm B Abm
  B: "[ab3,b3,eb4]@2 ~@2 [ab3,db4,e4]@2 ~@2 [ab3,db4] ~@3 [ab3,db4,e4]@2 ~@2, ~@4 e4 ~@3", // Abm Dbm Db5 Dbm
  C: "[ab3,db4,e4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~", // Dbm Gb
  D: "[bb3,db4,gb4]@2 ~@2 [b3,gb4] ~@3 [b3,eb4,gb4]@2 ~@2 [eb3,g3,bb3,eb4]@2 ~@2, ~@2 eb4 ~@5", // Gb B5 B Eb
  E: "[g3,bb3,eb4] ~ [ab3,b3,eb4] ~ [ab3,b3,eb4] ~ [ab3,b3,eb4] ~", // Eb Abm
  F: "[gb3,b3] ~@3 [ab3,db4,eb4]@2 ~@2 [ab3,db4,eb4]@2 ~@2 [ab3,db4,e4]@2 ~@2, eb4 ~@7", // B5 Absus4 Dbm
  G: "[ab3,db4,e4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [e4,gb4] ~, ~@12 [bb3,db4] ~@3", // Dbm Gb Esus2 Bbm
  H: "[bb3,db4,e4,gb4] ~ [b3,eb4,gb4] ~ [b3,eb4,gb4] ~ [eb3,g3,bb3,eb4] ~", // Gb7 B Eb
  I: "[eb3,g3,bb3,eb4] ~ [c4,eb4] ~ c4 ~ [c4,eb4] ~, ~@8 eb4 ~@7", // Eb Cm
  J: "[c4,eb4] ~ [ab3,c4,g4] ~ [ab3,c4,g4] ~ [ab3,c4,f4] ~", // Cm Abmaj7 Fm
  K: "[ab3,c4,f4] ~ d4 ~ [bb3,d4] ~ [ab3,d4] ~, ~@4 bb3 ~@11", L: "[ab3,d4] ~ [bb3,eb4] ~ [bb3,eb4] ~ [c4,d4] ~",
  M: "c4 ~ [b3,d4] ~ [b3,d4] ~@3, d4 ~@15", N: "~@6 [c4,e4] ~",
  O: "[c4,e4]@2 ~@2 [c4,e4] ~@3 [c4,e4]@2 ~@2 [d4,f4]@2 ~@2", P: "[d4,f4] ~ [d4,f4] ~ [d4,f4] ~ [b3,d4,g4] ~",
  Q: "[b3,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [c4,e4,g4] ~, d4 ~@15", // Em G C
  R: "[c4,e4,g4] ~ [b3,e4] ~ [b3,e4] ~ c4 ~, ~@12 e4 ~@3", S: "[c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [d4,e4] ~",
  T: "[d4,e4]@2 ~@2 [d4,f4]@2 ~@2 [d4,f4] ~@3 [b3,d4,g4]@2 ~@2", // Dsus2 Dm G
  U: "[b3,d4,g4] ~ [b3,f4,g4] ~ [b3,d4,f4,g4] ~ [c4,e4,g4] ~, ~@4 d4 ~@11", // G G7 C
  V: "[c4,e4,g4] ~ b3 ~ [b3,e4] ~ [db4,e4] ~, ~@4 e4 ~@11", W: "[db4,e4] ~ e4 ~ [db4,e4] ~ [db4,ab4] ~, ~@4 db4 ~@11",
  X: "db4 ~ [db4,gb4] ~ [db4,gb4] ~ [b3,eb4] ~, ab4 ~@15", Y: "[b3,eb4]@2 ~@2 eb4@2 ~@2 eb4@2 ~@2 [b3,e4] ~@3",
  Z: "[b3,e4] ~ [db4,eb4] ~ [db4,eb4] ~ [c4,eb4] ~", AA: "[c4,eb4] ~@7",
})).s("gm_string_ensemble_2").gain(0.19)

// chords · french horn · "FrenchHo"
const french_horn = note("<~@16 A@4 B@8 C@7 ~@12 D@4 E@8 F@2 G@2 H@7 I@7 J@3 ~>".pickRestart({
  A: "[~@3 [c3,c4,e4,g4]@4 [e3,b3,d4,g4]@4 [f3,a3,c4,f4]@4 [g3,a3,c4,f4]]/4", // C Em7 F
  B: "[~@2 [g3,b3,d4,g4]@4 [c3,c4,e4,g4]@8 [e3,b3,d4,g4]@8 [f3,c4,f4,a4]@8 [e3,b3,e4,ab4]@8 [a3,c4,e4,a4]@8 [e3,a3,c4,g4]@8 [f3,c4,f4,a4]@4 [c4,f4,a4]@4 ~ [a3,c4], ~@31 f3]/8", // G C Em7 F E Am Am7 F …
  C: "[~@4 [g3,b3,d4,g4]@8 [c3,c4,e4,g4]@16 [e3,b3,d4,g4]@16 [f3,c4,f4,a4]@16 [c4,f4]@8 [b3,d4,g4]@8 ~@2 g3@14 [c3,g3,c4,e4]@11 ~@9, ~@30 g3@7 ~ [c3,c4,e4]@8 ~@10]/7", // G C Em7 F F5 G C
  D: "[~ [db3,ab3,db4,f4]@4 [f2,f3,ab3,c4,f4]@4 [gb3,bb3,db4,gb4]@4 [ab3,bb3,db4,eb4]@2 [ab3,c4,eb4]]/4", // Db Fm Gb Absus4 Ab
  E: "[~ [db3,ab3,db4,f4]@4 [f3,ab3,c4,f4]@4 [gb3,db4,gb4,bb4]@4 [f3,c4,f4,a4]@4 [bb3,db4,f4,bb4]@4 [ab3,db4,f4,ab4]@4 [gb3,db4,gb4,bb4]@2 [gb3,db4,gb4,bb4]@2 [gb4,bb4]@2 [eb4,ab4,c5], ~@29 ab3@3]/8", // Db Fm Gb F Bbm Db Gb Ab
  F: "[~ [db3,db4,f4,ab4]@4 [f3,db4,f4,ab4]@3]/2", // Db
  G: "[~@4 [gb4,bb4,db5]@4 ~@4 [db4,gb4,bb4]@8 [eb4,ab4]@7 ~ [eb4,ab4,c5]@4, ~@4 gb3@15 ~ ab3@12]/2", // Gb Ab5 Ab
  H: "[~@4 [db3,db4,f4,ab4]@16 [f4,ab4,c5,eb5]@16 [gb3,db4,gb4,bb4]@16 [c4,f4,a4]@7 ~ [c4,f4,a4,c5]@8 [bb3,db4,f4,bb4]@16 [f3,bb3,db4,ab4]@16 [gb3,db4,gb4,bb4]@8 [db4,gb4,bb4]@4, ~@52 f3@13 ~@47, ~@52 g4 ~@59]/7", // Db Fm7 Gb F Bbm Bbm7 Gb
  I: "[~@3 [bb3,db4]@3 [ab3,c4,eb4,ab4]@4 [db3,db4,f4,ab4]@8 [f3,f4,ab4,c5]@8 [gb3,db4,gb4,bb4]@8 [ab3,gb4,bb4]@4 [ab3,eb4,ab4,c5]@4 [db3,db4,f4,ab4]@8 [db4,f4,ab4]@6, ~@4 gb3@7 ~@101]/7", // Bbm Ab Db Fm Gb Ebm Ab Db
  J: "[~@3 [db3,db4,f4,ab4]@16 ~@5]/3", // Db
})).s("gm_french_horn").gain(0.11).pan(0.4)

// chords · electric guitar jazz · "Jazz Gt."
const electric_guitar_jazz = note("<~@16 A@3 ~ A@3 B@3 ~@2 C@3 ~ D E F ~@12 G H@3 I@6 ~@2 J@2 ~@20>".pickRestart({
  A: "[~@9 c4@3 ~@5 c4@3 ~@4, ~@7 g3@5 ~@3 g3@5 ~@4, ~@2 d4 ~ d4 ~]/3",
  B: "[~@22 ab4@3 ~@11 c5@4 ~@8, ~@14 e3@11 ~@9 b4@6 ~@8, ~@16 b3@9 ~@7 a4@8 ~@8, ~@18 e4@7 ~@5 e4@10 ~@8]/3",
  C: "[~@22 g4@2 ~@16 b4@3 ~@5, ~@14 g3@10 ~@6 g3@13 ~@5, ~@16 d4@8 ~@8 d4@11 ~@5, ~@18 c4@6 ~@10 c4@9 ~@5, ~@36 g4@7 ~@5]/3",
  D: "~@2 g4 b4 a4 d4 c4 g3", E: "d4 c4 ~ g3 ~@3 g3", F: "d4 c4 g4 ~@5", G: "~@10 db4@5 ~, ~@6 ab3@9 ~, ~@8 eb4@7 ~",
  H: "[~@3 ab3 eb4 db4@16 ~@3]/3",
  I: "[~@19 db5@3 ~@2, ~@3 ab3@8 ab3@16 f3@9 bb4 c5@7 ~@4, ~ eb4@2 eb4@4 c4@4 ~, ~@5 db4@8 db4@16 f4@6 f4@9 ~@4, ~@31 a4@13 ~@4]/6",
  J: "[~@14 ab3@8 ~@4 db4@2 ab4 ~@3, ~@2 db4@3 db4@8 ~@3, ~@3 ab3@4 ~@4 ab3@3 ~@2, ~@2 eb4@4 eb4 ~]/2",
})).s("gm_electric_guitar_jazz").gain(0.22)

// chords · string ensemble 2 · "Strings2"
const string_ensemble_2_2 = note("<A@5 B@6 C D@8 E@6 F@7 G@5 H@4 I@4 J@7 K@2 L@3 M@4 N@8 O P@8 ~@2>".pickRestart({
  A: "[~@13 b4@2 bb4@2 b4@3, ~@4 b3@27 ~@9, ~@9 eb4@6 ~@2 ab4@2 ~]/5",
  B: "[~ eb5@2 e5@2 [bb4,db5]@4 e5 eb5 f5 g5 [ab4,b4]@4 eb5@2 e5@2 [bb4,db5]@2 db5, ~@4 ab4@16 ~@16 b4@8 [bb4,eb5]@7 ~@17 ab4@16 ~@12]/6", // Bbm Abm Bbm Eb5
  C: "~ e5 eb5 [bb4,eb5,f5], ~ b4@2 ~", // Bbsus4
  D: "[g5@4 [g4,c5,eb5]@16 [ab4,c5,g5]@8 [ab4,c5,f5]@8 ~@9 ab4@7 [g4,bb4,eb5]@8 [d4,c5]@8 b4@8 ~@2 c5@14 g5@16 a5@16 [c5,c6]@4, ~@36 [bb4,d5]@15 ~@9 [g4,d5]@16 e5@16 ~@36, ~@68 g3@13 ~@47]/8", // Cm Abmaj7 Fm Eb D7 C Bb G5
  E: "[~@4 g5@8 [c5,e5]@16 g5@14 f5 g5 a5@16 ab5@8 e5@2 [gb4,gb5]@2 [ab4,ab5]@2 a5@2 e6@8 c6@8 c6@4, ~@76 a4@15 ~@5]/6", // C Gb Ab
  F: "[~@4 g5@8 ~@4 f5@5 ~ a5@2 b5@2 [a4,c6]@2 b5@16 [c5,c6]@16 g5@8 e5@8 a5@8 f5@8 e5@8 d5@8 ~@4, e5@6 a5@5 ~@45, ~@14 c5@7 ~@79 d4@6 ~@6]/7", // Am C
  G: "[c5@27 ~ a4@8 g4@8 e5@8 f5@8 b4@8 g4@8 [g4,c5,f5]@4, ~@7 c5@4 a4@4 d5@4 ~]/5", // Csus4
  H: "[e5@4 gb5@4 ab5@3 ~ a4@8 g4@8 e5@8 f5@8 [b4,d5]@8 [g4,d5]@8 [g4,c5,f5]@4, ~@4 [b4,e5]@7 ~ c5@15 ~ a4@16 ~@20]/4", // Bm G5 Csus4 E5
  I: "[e5@4 gb5@4 ab5@3 ~ [ab4,db5]@16 [a4,db5,ab5]@8 [a4,db5,gb5]@8 ~@9 a4@7 [ab4,b4,e5]@4, ~@4 [b4,e5]@7 ~ e5@14 ~@18 [b4,eb5]@16 ~@4]/4", // Db5 Amaj7 Gbm E E5 B
  J: "[~@4 [eb4,db5]@8 [ab3,c5]@8 ~@2 db5@14 ~@5 ab4@9 ~@2 [gb4,bb5]@16 [db5,db6]@8 [ab4,ab5]@8 [db5,f5]@16 ab5@12, ~@2 [ab4,eb5]@8 ab6@31 ~@15, ~@5 f5@4 ab5@4 ~@15]/7", // Eb7 Ab Gb Db Ab Db Ab5
  K: "[~@5 gb4@15 a5@8 f5@2 [g4,g5]@2, ~ bb5@4 ~@3]/2", // G
  L: "[[a4,a5] bb5 ~@12 bb5@4 ~@2 gb5@3 [gb4,bb5], ~@4 bb4@15 ~@17 gb4@10 ~@2, ~@4 f6@12 ~@3 ab6@14 ~@15, ~@4 f5@7 ~ f5@6 ~ db5@4 ~]/3", // A Gb
  M: "[[ab4,c6]@2 [bb4,db6]@2 [ab4,c6]@15 ~ [db4,db5]@4 ab6@3 ~@7 ab6@18 [gb4,bb4]@12, ~@19 ab6@4 ~ db5@28 ~@12, ~@5 ab4@8 ~@3, ~@5 f5@4 ~@7, ~@7 db4@6 ~@3]/4", // Ab Bbm Ab Db Gb
  N: "[~@4 [db5,eb5]@8 c5@8 f6@4 ~@12 c5@16 [gb4,bb4,db5]@16 ~@8 c6@4 f5@4 ~@8 db6@7 ~@9 ab5@8 ~@4 gb5@5 ~ bb5@2, ~@12 ab4@40 ~@16 [f4,a4,c5]@16 ~@4 f5@14 ~@2 f5@12 ~@2 db5@7 ~@3, ~@20 db5@16 ~@48 bb4@15 ~ db6@8 ~@8 bb5@10 ~@2, ~@24 [f5,f6]@28 ~@24 f6@8 f6@8 ~@7 ab6@14 ~@15]/8", // Dbsus2 Gb F
  O: "c6 [bb4,db6] c6@6", // Bbm
  P: "[~@26 c6@10 ~@8 bb5@8 ~@8 f6@8 f6@4 f6@3 ~@9 [ab4,db5]@8 [f4,ab4,db5]@36, ~@2 [f5,f6]@16 ~@3 db5@5 ~@38, ~ db5@4 c5@4 [gb4,gb5]@4 [ab4,eb5,ab5]@4 [db4,db5,f5]@4 ~@11, ~@10 ab5@26 ~@39 f6@53]/8", // Db5 Db F Gb Ab5 Db
})).s("gm_string_ensemble_2").gain(0.12).pan(0.4)

// chords · string ensemble 2 · "Strings2" · soft notes
const string_ensemble_2_soft = note("<A@5 ~@9 B ~ C@5 ~@4 D@2 ~ E@4 F@3 ~@9 G@2 ~@25 H ~@9>".pickRestart({
  A: "[~@15 eb4@2 ~@3, ~@2 b6@15 ~@3]/5", B: "~ f4@2 ~", C: "[~@6 g6@31 ~@3]/5", D: "[~@11 g6@14 ~@7, e5@7 ~@9]/2",
  E: "[~@11 g6@8 ~ g6@32 ~@12]/4",
  F: "[~@4 g6@4 ~@4 [c4,c5]@4 ~@10 g6@9 ~@13, ~@8 g6@7 ~ g6@10 ~@22, ~@3 e5@4 ~@5, ~@20 c4@21 ~@7]/3", // C
  G: "[~@13 gb4@8 ~@11]/2", H: "~@3 ab6@8 ~@5",
})).s("gm_string_ensemble_2").gain(0.05).pan(0.4)

// chords · acoustic guitar nylon · "OverdrGt"
const acoustic_guitar_nylon = note("<A@5 ~@7 B C@4 ~@64>".pickRestart({
  A: "[~@16 gb4@3 ~, ~@3 gb3@2 gb3@2 gb3@4 gb3@2 gb3@2 gb3@4 gb3@2 gb3@2 gb3@4 gb3@2 gb3@2 gb3@7 ~@2, ~@2 b3@4 b3@4 b3@4 b3@5 ~, ~@3 db4@4 db4@4 db4@4 db4@4 ~, ~ gb4 gb4 gb4 ~]/5",
  B: "~@7 g4, ~ eb3@2 eb3, ~@3 g3@5, ~ c4, ~@5 eb4@3",
  C: "[~@12 f4@7 ~ f3@2 ~@6 g4@7 ~@7 eb4@2 g3@2 ~@10 g4@7 ~, ~@4 f3@15 ~@3 f3@13 ~ g3@8 ~@2 g3@6 g3@11 ~, ~@6 ab3@13 ~@5 bb3@11 ~@13 c4@15 ~, ~@8 c4@11 ~@7 d4@9 ~@15 d4@4 d4@9 ~, ~@10 g4@9 ~@45]/4",
})).s("gm_acoustic_guitar_nylon").gain(0.15).pan(0.6)

// other · acoustic guitar steel · "OverdrGt"
const acoustic_guitar_steel = note(`<
  ~@42
  [~@6 e3 ab3]
  [db4 e4 e3 ab4@3 gb3 a3]
  [db4 ab4 gb4@4 gb3!2]
  [b3 eb4 ab4@4 ab3@2]
  [ab3 e4 ab3!2 db4 eb4 ab3 eb4]
  [ab4 ~@3]
  ~@33
>`).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.6)

// bass · fretless bass · "Fretless"
const bass = note(`<
  ~ A@7 B@4 C@5 D E F G D E H I J K L@2 M@2 F N O P Q R S@2 Q R T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ@2 AK@4 AL@2
  AM AN AO@4 AP AQ@2 AR AS AT AU@3 ~
>`.pickRestart({
  A: "[~@10 db4@10 b3 ~ gb3@13 e3 eb3@8 db3@8 ab2@16 eb3@8 e3@8 gb2@15 ~ b2@7 ~ eb2@4, ~@10 b3 ~@101]/7",
  B: "[~@4 ab2@7 bb2 b2@8 eb3@6 db3 eb3 e3@23 ~ b2@8 eb3@4]/4",
  C: "[eb2@3 ~ c2@15 ~ f2@15 ~ bb1@8 bb2@8 g2@8 g1@8 g1@7 ~ c2@4]/5", D: "~@2 c2 ~ c2@7 ~ e2@4",
  E: "~@2 e2 ~ e2@7 ~ f2@4", F: "~@2 f2 ~ f2@7 ~ g2@4", G: "~@2 g2@2 g2@3 ~ g2 f2 e2 d2 c2@4",
  H: "~@2 f2 ~ f2@7 ~ e2@4", I: "~@2 e2@2 e2@7 ~ a1@4", J: "~@2 a1 ~ a2@7 ~ g1@4", K: "~@2 g2 ~ g1@8 f1@4",
  L: "[~@2 f1 ~ f1@7 ~ g2@7 ~ d2@3 ~ g2@3 ~ c2@4]/2", M: "[~@2 c2 ~ c2@5 ~ c2 ~ e2@6 e2 ~ e2@5 ~ e2 ~ f2@4]/2",
  N: "~@2 g2 ~ g2@7 ~ c2@4", O: "~@2 c2 ~ c2@5 ~ g1@2 c2@4", P: "~@2 c2 ~ c2@7 ~ a1@4", Q: "~@2 a1 ~ a1@5 ~ a1 ~ d2@4",
  R: "~@2 d2 ~ d2@5 ~ d2 ~ g2@4", S: "[~@2 g2 a2 g2@5 ~ g2 ~ c2@6 e2 ~ e2@3 ~ e2 ~ d2 ~ a1@4]/2",
  T: "~@2 g2 b2 g2@5 ~ g2 ~ c2@4", U: "~@2 e2 ~ e2@7 ~ db2@4", V: "~@2 e2 ~ db2@5 ~ db2 ~ gb2@4",
  W: "~@2 gb2 ~ gb2@5 ~ gb2@2 b2@2 b1@2", X: "b1@4 b1@6 b1 ~ e2@4", Y: "~@2 e2 ~ ab2@5 ~ ab1 ~ ab1@4",
  Z: "~@2 ab1@2 db2@5 ~ db2 ~ db2@4", AA: "~@2 db2 ~ f2@5 ~ f2 ~ f2@4", AB: "~@2 f2 ~ gb2@5 ~ gb2 ~ gb1@4",
  AC: "~@2 gb1 ~ ab1@5 ~ ab1 ~ ab2@4", AD: "~@2 ab2 ~ db2@2 db3@3 ~ db2 ~ db2@4", AE: "~@2 db2 ~ f2@5 ~ f2 g2 ab2@4",
  AF: "~@2 ab2 ~ gb2@2 bb2@3 ~ gb2 ~ gb2@4", AG: "~@2 gb2 ~ f2@5 ~ f2 ~ c3@4", AH: "f2@3 ~ bb2@5 ~ bb1 ~ bb1@4",
  AI: "bb2@3 ~ ab2@5 ~ ab2 ~ ab2@4", AJ: "[~@2 ab2 ~ gb2@6 gb1 ~ gb1@7 ~ ab2@5 ~ ab2 ~ ab2@4]/2",
  AK: "[~@2 ab2 ~ db3@5 ~ db2 ~ db2@7 ~ f2@5 ~ f2 ~ f2@7 ~ gb2@5 ~ gb2 ~ gb2@9 ab2@4 ~ ab2 ~ ab2@4]/4",
  AL: "[~@2 ab2 ~ db2@6 db2 ~ db2 ~ db3@5 ~ f2@4 ~@2 f2 ~ f2@4]/2", AM: "~@2 f2 ab2 gb2@5 ~ gb2 ~ gb1@4",
  AN: "gb2@4 f2@5 ~ f2 a2 c3@3 ~",
  AO: "[c3 db3 c3@2 bb1@5 ~ bb1 ~ bb2@7 ~ ab1@5 ~ ab2 ~ ab1@8 gb1@4 ~@2 gb1 ~ gb1@7 ~ ab2@7 ~ eb2@3 ~]/4",
  AP: "ab2@3 ~ db2@5 ~ db2 ~ db2@4", AQ: "[~@2 db2 ~ f2@5 ~ f2 gb2 ab2@2 f2@4 f2 ~ gb2@5 ~ gb2 ~ gb2@4]/2",
  AR: "~@2 gb2 ~ ab2@5 ~ ab2 ~ ab2@4", AS: "ab1@3 ~ db2@5 ~ db2 ~ db2@4", AT: "~@2 db2 ~ db2@5 ~ db2 ~ db2@4",
  AU: "[~ db1@7, ~@5 db2@5 ~@38]/3",
})).s("gm_fretless_bass").gain(0.29)

// chords · epiano1 · "E.Piano1"
const epiano1 = note("<~@4 A@8 B C D E F ~@17 G H I J K L M J N O P Q R S ~@33>".pickRestart({
  A: "[~@4 [ab3,b3,eb4]@2 ~@2 [ab3,b3,eb4]@4 [ab3,b3,eb4]@3 ~ [ab3,b3,eb4]@4 [db4,eb4]@2 ~@2 [ab3,db4,eb4]@4 [ab3,db4,e4]@3 ~ [ab3,db4,e4]@4 [gb3,bb3,db4]@3 ~ [gb3,bb3,db4]@4 [gb3,bb3,db4,e4]@3 ~ [gb3,bb3,db4,e4]@4 [gb3,b3,eb4]@2 ~@2 [gb3,b3,eb4]@4 [g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@4 [ab3,b3,eb4]@2 ~@2 [ab3,b3,eb4]@4 [ab3,b3,eb4]@3 ~ [ab3,b3,eb4]@4 [db4,eb4]@2 ab3 ~ [db4,eb4]@2 ab3@2 [ab3,db4,e4]@3 ~ [ab3,db4,e4]@4 [gb3,bb3,db4]@3 ~ [gb3,bb3,db4]@4 [gb3,bb3,db4,e4]@3 ~ [gb3,bb3,db4,e4]@4 [gb3,b3,eb4]@3 ~ [gb3,b3,eb4]@4 [eb3,g3]@4, ~@4 ab2@4 ~@4 gb2@6 ~@2 ab2@6 ~@2 ab2@6 ~@2 gb2@6 ~@2 gb2@6 ~@2 b2@4 ~@4 eb3@6 ~@2 ab2@4 ~@4 gb3@6 ~@2 ab2@7 ~ ab2@6 ~@2 gb2@6 ~@2 gb2@6 ~@2 b2@4 ~@8, ~@84 ab3 ~@3 ab3 ~@35 [bb3,eb4]@2 ~@2]/8", // Abm Dbsus2 Absus4 Dbm Gb Gb7 B Eb …
  B: "[g3,bb3,eb4] [c4,eb4,g4]!3", C: "[c4,eb4,g4] [f3,c4,g4]!2 [f3,c4,f4]", D: "[f3,c4,f4] [bb3,d4,f4]!3",
  E: "[bb3,d4,f4] [bb3,eb4]!2 [b3,d4]", F: "[b3,d4]@2 [b3,d4]@2 [b3,d4] ~@3", G: "~@3 [a3,c4,e4]",
  H: "[a3,c4,e4]!3 [d4,e4]", I: "[a3,d4,e4] [a3,d4,f4]!2 [g3,b3,d4]", J: "[g3,b3,d4] [g3,b3,d4,f4]!2 [g3,c4,e4]",
  K: "[g3,c4,e4] [ab3,b3,e4]!2 [a3,c4,e4], ~ e3@2 ~", L: "[a3,c4,e4]@2 [a3,c4,e4]@2 [a3,c4,e4]@2 a3!2, ~ g3@2 [d4,e4]",
  M: "a3!2 [a3,d4,f4]@2 [a3,d4,f4]@2 [g3,b3,d4]@2, [d4,e4] ~@3", N: "[g3,c4,e4] [ab3,b3,e4]!2 [db4,e4,ab4], ~ e3@2 ~",
  O: "[db4,e4,ab4]!3 [gb3,a3,db4,ab4]", P: "[gb3,a3,db4,ab4] [gb3,a3,db4,gb4]!2 [b3,eb4,gb4]",
  Q: "[b3,eb4,gb4]!3 [e3,ab3,b3,e4], ~ a3@2 ~", R: "[e3,ab3,b3,e4] [eb3,ab3,c4,eb4]!3", S: "[eb3,ab3,c4,eb4] ~@3",
})).s("gm_epiano1").gain(0.13).pan(0.7)

// chords · piano · "Piano 1"
const piano = note("<~@16 A@6 B@4 C@6 D@3 ~@12 E F G H I J K L M N O@2 P@8 Q@6 R@8>".pickRestart({
  A: "[~@26 g4@2 ~@6 g3@2 ~@6 b2@2 ~@12 [a3,f4]@2 c3 ~@7 b3@2 ~@4 d4@2 [d3,d4]@2 ~@4 g3@2 g3@2 g3@2 g3@2 [g3,c4,e4]@2 g3 ~ g3@2 g3@2, ~@12 c2@8 g3@2 c4@2 e4@4 b3@8 [g3,b3,e4]@8 ~@4 f3@4 c4@7 ~ b3@6 ~@2 b3@8 [c4,e4]@4 c3@11 ~@5, ~@12 e4@6 e3@10 g3@4 e3@6 e3@6 ~@2 c3@12 ~@4 d3@8 d3@4 ~@2 c2@15 ~@5, ~@12 c4@4 c3@12 ~@2 b2@10 d4@4 ~@6 a3@4 f3@5 ~ g3@4 g3@8 [g3,g4]@4 ~@2 g2@13 ~ [e2,e3,b3,d4]@4, ~@12 g3@2 g2@14 e2@16 f2@15 ~ [g2,d4]@8 [d4,g4]@4 ~@8 e4@4 [c4,e4]@4 ~@8]/6", // Dm D C Em C G E7 G5 …
  B: "[~@10 b2@2 ~@6 a3@2 ~@6 a3@2 ~@14 [b4,b5] ~@6 a3@3 ~@6 e3@2 [g3,c4]@4, [g3,d4]@12 c4@8 [c4,f4]@8 [b3,e4]@6 [e4,e5]@3 ab3 [ab4,ab5] b3 [a4,a5] ab3@2 ~@3 c3@14 ~@4, b3@6 b2@4 ~@2 f2@16 e2@15 ~ [a1,c5,c6]@16 ~@4, ~@2 b2@2 [e4,g4]@4 [e3,b3,e4,g4]@4 a3@4 f3@6 c3@6 ~@2 e3@4 b3@2 [gb4,gb5]@7 ~@5 e3@6 e3@2 c4@4 ~@4, ~@4 b4@8 ~@2 c3@6 a3@4 f3@4 ab3@4 ab3@3 e3@8 ~ a2@8 [a2,a3]@8 ~@4]/4", // B C5 G5 F5 E5 E Ab A …
  C: "[~@6 g3@2 [g3,c4,d4]@4 ~@6 a3@2 a3@2 a3@2 a3@2 a3@2 f3@2 f3@2 f3@2 f3@2 g3 ~ g3@2 g3@2 g3@2 g3 ~@13 c4@2 ~@10 b3@2 ~@2 g3@2 ~@14 a3@2 ~@2 d3@2, e3@3 e3@3 f2@8 [g2,d3]@4 [g2,d3]@4 c2@8 e2@8 f2@8 g2@2, ~ g3@2 ~@3 a3@2 f3@6 ~@8 c4 g3@4 c3@3 g3@2 g3@5 ~ a3@3 a3@3 f4@2 ~@2, ~@2 [c4,d4]@2 ~@2 [c4,f4]@4 [c4,f4]@2 [c4,f4]@2 [a3,c4]@2 [a3,c4]@2 [b3,d4]@2 [b3,d4]@2 e4@2 c4 e4@5 ~ e3@5 [e3,b3]@2 ~ c3@3 c4@4 ~@2, ~@7 c3@7 ~@8 c3@4 c4@2 g3@2 b3@3 b3 e4@4 ~@2 f3@3 f3@3 ~@2]/6", // Gsus4 G5 Csus2 F5 Am Bm E5
  D: "[~@2 a3@2 ~@6 a3@2 d4 ~@13 g2@2 [c2,c3,g3,c4,e4]@15 ~@5, f3 g2@2 [c2,c3,g3,c4]@4 ~@5, ~@4 b3@6 ~@3 e4@15 ~@20, ~ d3 ~@6, ~@2 g3 ~@9]/3", // C C5
  E: "~@4 [db5,f5]@2 ab4 ~ [db5,f5]@2 ab4 ~ [db5,f5]@2 ~@2, ~ db4@3, ~@4 ab4 ~@3 ab4 ~@3 ab4 ~@3", // Db
  F: "[db5,f5]@2 ~@2 [f3,ab4] ~ ab4 ~ [c5,f5]@2 ab4@2 [f4,ab5,c6]@2 f5@2, ~@2 f4@3 ~@3, ~@4 c5@2 ~@2 ab4 ~@3 f5 ~@3", // Db Fm F5 Fm
  G: "[f4,f5,ab5,c6]@2 f4@2 [db5,gb5]@2 bb4@2 db5 ~ gb5@2 [db5,gb5]@2 bb4 ~, ~@2 gb4@3 ~ gb4@2, ~@4 bb4 ~@11", // Fm Gb5
  H: "[db5,gb5]@2 bb4@2 [bb4,db5]@2 gb4@2 bb4@2 db5@2 [ab3,eb5]@2 ab4 c5, ~@4 ab3@6 ~@2 [ab4,c5] ~@3", // Gb5 Bbm Ab5 Ab
  I: "~ eb5 ab4 c5 [db5,f5]@2 ab4@2 ~ eb5 f5@2 db5@2 ab4 ~, ab3 ~ db4@3 ~ db4@2, ~@4 ab4 ~@3 db5@2 ~@2 ab4 ~@3", // Db
  J: "db5 ab4 [f4,ab5] ~ [c6,f6] [f5,ab5,c6] [f4,f5,ab5] f4, ab4 ~@5 f4@2 ~@8, ~@7 ab5@2 ~@7", // Fm F5 Fm
  K: "[ab4,c5,f5] ~ [db5,gb5] bb4 [bb4,db5,gb5] gb4 [db5,gb5,bb5] gb4, ~@4 gb4@5 ~@7, ~@4 bb4 ~@11", // Fm Gb5 Gb
  L: "[bb4,db5]@2 gb4@2 [f4,a4,c5,f5]@2 f4@2 [f4,a6] c6 [f4,f6] a5 [f4,a5,c6] f5 f4 c5", // Bbm F
  M: "[f4,f5] ~ f5@2 db5@2 bb4@2 db5@2 f4@2 [bb4,db5,f5]@2 bb4@2, ~ bb3 ~@2, ~@4 bb4 ~@11", // F Bbm
  N: "[db5,f5] bb4 e4 bb4 [bb4,db5,f5]@2 [db5,f5] bb4, bb4 ~@11 bb4 ~@3", // Db Bbm Db
  O: "[[db5,f5]@2 bb4@2 db5@2 bb4@2 db5@2 bb4@2 db5@2 bb4 ~ db5@2 bb4@2 [bb4,db5]@2 gb4@2 [bb4,db5]@2 gb4@2 [ab3,eb5]@2 ab4 c5, ~@4 gb4@7 ~ gb4@6 ~@6 gb4 ~@3 [ab4,c5] ~@3, ~@4 bb4 ~@7 bb4 ~@19]/2", // Db Bbm Ab5 Ab
  P: "[eb5 ab4 c5 eb5 [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5]@2 ab4 ~ [db5,f5]@2 ab4@2 [db5,f5]@2 ~@2 [ab4,f5] ~@3 [db5,f5]@2 ~@2 [db5,f5]@2 ab4@2 [db5,gb5]@2 bb4 ~ [db5,gb5]@2 ~@2 [bb4,db5] ~ bb4 ~ [bb4,db5,gb5]@2 bb4@2 [bb4,db5]@2 ~@2 [bb4,db5]@2 gb4@2 [c5,eb5]@2 ab4 ~ [ab4,c5] ~ db4@2 [db3,db4,db5] ~ db5@2 f5@2 db5 ~ [f5,ab5]@2 db5 ~ [f5,ab5]@2 db5@2 [c5,eb5]@2 ab4 ~ [ab4,c5] ~ ab4 ~ [c5,eb5]@2 ~@2 [ab4,c5] ~ ab4@2 [db5,gb5]@2 bb4 ~ [db5,gb5]@2 bb4 ~ [db5,gb5]@2 bb4 ~ [db5,gb5]@2 bb4@2 [c5,f5]@2 a4 ~ [a4,c5,f5]@2 ~@2 [f4,a4,c5,f5]@4, ~@4 db4@14 ~@2 ab4 ~@3 db5@2 ~@2 ab4 ~@3 ab4 ~@3 bb4 ~@3 bb4 ~@3 gb5@2 ~@6 gb4 ~@3 gb4 ~@3 ab4 ~@3 eb5@2 ~@2 [f5,db6]@2 ~@2 db5 ~@3 db5 ~@3 db5 ~@3 ab4 ~@3 eb5@2 ~@2 ab4 ~@3 eb5@2 ~@2 bb4 ~@3 bb4 ~@3 bb4 ~@3 bb4 ~@3 a4 ~@11, ~@4 ab4 ~@3 ab4 ~@3 ab4 ~@3 ab4 ~@3 f4@14 ~@2 gb4@14 ~@2 ab3@6 ~@2 ab3@6 ~@6 db4@10 ~@2 f4@14 ~@2 gb4@14 ~@2 f4@5 ~@7]/8", // Db Gb5 Bbm Gb Bbm Cm Ab Db …
  Q: "[[f5,a5,c6]@2 a4@2 ~@5 bb3@3 ~@6 f3@2 ~@10 ab3@2 [ab3,db4,eb4]@4 ~@6 bb3@2 bb3@2 bb3@2 bb3@2 bb3@2 gb3@2 gb3@2 gb3@2 gb3@2 ab3 ~ ab3@2 ab3@2 ab3@2 [db5,f5]@2 ab4@2 db5@2 [ab4,eb5]@2 [db5,f5]@2 ~@2 [db5,f5]@2 ab4@2 [f4,c5]@2 ~@3 c7 ab6 f6 c6 f6 [c5,c6] ab5, ~ [bb1,db5,db6]@4 ~@4 gb2@4 [ab2,eb3]@2 [ab2,eb3]@2 ~@7, ~@2 bb2@4 [bb2,bb3]@4 ~@2 f3@3 f3@3 ~ db3@7 ~@22, ~@6 db3@14 ab3@6 ab3@4 ~@6 bb3@4 gb3@12 ~@24 ab4 ~@3 ab4 ~@5 ab4@5 ~@5, ~@8 f3@6 f3@2 db4@4 db4@8 [db4,eb4]@4 ~@4 [db4,gb4]@8 [db4,gb4]@4 [db4,gb4]@4 [bb3,db4]@4 [bb3,db4]@4 [c4,eb4]@4 [c4,eb4]@4 db4@7 ~ db4@6 ~@6 c5@3 ~@5]/6", // F Absus4 Db Ab5 Db F5 C Bbm …
  R: "[[c5,f5]@2 ab4@2 [bb4,db5]@2 gb4@2 bb4@2 gb4@2 bb4 ~@3 bb4@2 db5@2 [bb4,db5]@2 gb4@2 bb4@2 db5@2 [c5,eb5]@2 ~@2 [c5,eb5]@2 ~@2 [db5,f5]@2 ~@2 [db5,f5]@2 ab4 ~ [db5,f5]@2 ~@2 [db5,f5]@2 ~@2 [f4,ab4,db5]@4 [ab4,db5]@4 ~@4 [db3,f4,ab4,db5]@5 ~@24 eb7@21 ~@14, ~@12 db5@4 ~@4 gb4 ~@7 ab4 ~@3 ab4 ~@3 ab4 ~@3 ab4 ~@3 ab4 ~@3 ab4 ~@3 db4@10 db4@8 ~@2 ab4@3 ab5 f5@6 db6@32 ~@14, ~@14 gb4@4 ~@2 ab3@7 ~ ab3@6 ~@2 db4@14 ~@2 db3@12 ~@6 [db3,db4]@13 ab6@2 f6@29 ~@14, ~@56 f4@2 ~@2 [f4,ab4,db5]@4 ~@6 db5@3 eb5@5 db6 ab5@9 db7@8 ~@32, ~@74 db5@7 eb6@32 ~@15]/8", // F5 Bbm Cm Db Db5 Db
})).s("gm_piano").gain(0.25)

// chords · piano · "Piano 1" · soft notes
const piano_soft = note(`<
  ~@20 A B C ~@8 D E ~@14 F G H I ~ J K L M ~ I N O P ~ Q ~ F ~ R ~@4 F S ~ F T U ~ V@3
>`.pickRestart({
  A: "~ g2@2 ~", B: "c4 ~@3", C: "~ e3 ~@2", D: "~@3 c3@3 ~@2", E: "~@5 b3 ~@2", F: "~@14 ab4 ~", G: "ab4!2 ~@6",
  H: "~@12 bb4 ~@3", I: "bb4 ~@7", J: "~@7 f5@2 ~ f4@2 ~@4", K: "f4!2 ~@6", L: "~@9 f6 c6 ~@3 [f5,g5,a5] ~",
  M: "c5 a4 ~@8 f5@2 ~@4", N: "bb4 ~@13 eb5 ~", O: "~@10 ab4 ~@5", P: "~@6 ab4 ~@3 ab4 ~@3 ab4 ~", Q: "~@6 gb4 ~@9",
  R: "~@5 a4 ~@2", S: "~@12 c5 ~@3", T: "~ ab4 ~@6", U: "~@5 f4 ~@2",
  V: "[~@25 db8@10 ~@13, ~@11 ab6@23 ~@14, ~@8 db7@9 ~@7, ~@19 ab7@15 ~@14]/3",
})).s("gm_piano").gain(0.13)

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

// drums · rim
const rim = s("rim").struct("<~@17 A@7 B ~@9 C A@7 B A@4 C A@7 ~@26>".pickRestart({
  A: "x!2", B: "x", C: "~ x",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@24 A B@3 C B@5 D ~@11 E ~@7 E B@3 F G B@7 H B@3 G B@4 I ~@4>".pickRestart({
  A: "~@4 x!2 ~ x!2 ~@7", B: "x!2", C: "x ~@3 x!2 ~ x ~@8", D: "x", E: "~@12 x!2 ~ x", F: "x ~@7 x ~@3 x!2 ~ x",
  G: "~ x", H: "x!2 ~@6 x ~@7", I: "x ~@7 x ~@3 x!4",
})).gain(0.36)
// … 66 more lines

More by Pooh