Strudelify

Amico assoluto

Zero

KeyB♭ majorTempo74 bpm
0:00/0:00
// Amico assoluto — Zero
// 74 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 92 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(74/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@2 B C D E F G H I B C D E F G H I B C D E F G H J@2 K@2 L M N O P@2 K@2 L M N O Q@2 R S T U V W H X Y Z AA AB AC AD
  AE AF@2 AG@2 AH AI AJ AK AL@2 AG@2 AH AI AJ AK AM@2 AG@2 AH AI AJ AK AN@2 AG@2 AH AI AJ AK AO ~
>`.pickRestart({
  A: "[[eb4,g4,bb4]@3 ~ [eb4,g4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [c4,eb4,bb4]@3 ~ [c4,eb4,bb4]@3 ~ [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~, eb2@31 ~, ~@15 bb2@16 ~, ~@16 eb3@15 ~]/2", // Eb Bb Cm7 Bb
  B: "[eb4,g4,bb4]@6 ~@2 [eb4,g4,bb4]@6 ~@2 [d4,f4,bb4]@6 ~@2 [d4,f4,bb4]@7 ~, eb2@16 bb2@15 ~", // Eb Bb
  C: "[eb4,g4,bb4]@5 ~@3 [eb4,g4,bb4]@5 ~@3 [eb4,g4,bb4]@6 ~@2 [eb4,g4,bb4]@5 ~@3, eb3@29 ~@3", // Eb
  D: "[eb4,g4,bb4]@5 ~@3 [eb4,g4,bb4]@5 ~@3 [c3,eb4,g4,bb4]@8 [f2,c4,f4,a4]@8, eb3@7 ~@9", // Eb Cm7 F
  E: "[d4,f4,bb4]@5 ~@3 [d4,f4,bb4]@5 ~@3 [d4,f4,bb4]@6 ~@2 [d4,f4,bb4]@5 ~@3, bb2@29 ~@3", // Bb
  F: "[c4,eb4,ab4]@3 ~ [c4,eb4,ab4]@4 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~, ab2@16 bb2@15 ~", // Ab Bb
  G: "[g3,d4,g4]@6 ~@2 [g3,d4,g4]@7 ~ [c4,eb4,g4]@5 ~@3 [c4,eb4,g4]@4 ~@4, b2@15 ~ c3@13 ~@3", // G5 Cm
  H: "[eb4,ab4,c5]@7 ~ [eb4,ab4,c5]@8 [eb4,g4,bb4]@7 ~ [eb4,g4,bb4]@7 ~, eb3@16 bb2@15 ~", // Ab Eb
  I: "[bb3,eb4,g4]@8 [bb3,d4,f4]@7 ~ [eb3,bb3,eb4,g4]@8 [bb2,bb3,d4,f4]@8, bb2@15 ~@17", // Eb Bb Eb Bb
  J: "[[bb3,eb4,g4]@8 [bb3,d4,f4]@7 ~ [eb3,bb3,eb4,g4]@8 [bb3,d4,f4] ~@3 [bb3,eb4,g4]@10 ~@2 [bb3,d4,f4] ~@3 [bb3,eb4,g4]@6 ~@2 [bb3,d4,f4]@7 ~ [bb3,eb4,g4] ~@3, bb2@15 ~@49]/2", // Eb Bb Eb Bb Eb Bb Eb Bb …
  K: "[[g3,c4,eb4]@8 [c4,eb4,g4]@7 ~ [c4,eb4,ab4]@7 ~ [c4,eb4,g4]@2 ~@2 [c4,f4,ab4]@10 ~@2 [c4,eb4,g4]@2 ~@2 [c4,f4,ab4]@7 ~ [c4,eb4,g4]@7 ~ [c4,f4,ab4]@2 ~@2]/2", // Cm Ab Cm Fm Cm Fm Cm Fm
  L: "[d4,f4]@8 [d4,f4,bb4]@8 [f4,bb4,d5]@8 [bb4,d5,f5]@7 ~, bb3 ~", // Dm Bb
  M: "[d4,g4]@12 ~@12 b3@7 ~, b3@5 ~ b3@5 ~@5, ~ [d4,g4]", // G5
  N: "[c4,eb4,g4]@7 ~ [eb4,g4]@4 c4@3 ~ [c4,eb4,ab4]@7 ~@5 c4@4, ~@3 [eb4,ab4]", // Cm Eb Ab Ab5
  O: "[c4,eb4,ab4]@7 ~ [c4,eb4,ab4]@6 ~@2 [eb4,g4,bb4]@7 ~@5 eb4@4, ~@3 [g4,bb4]", // Ab Eb Gm
  P: "[[bb3,eb4,f4]@8 [eb4,f4]@4 bb3@3 ~ [bb3,d4,f4]@6 ~@2 [bb3,d4,f4] ~@3 [bb3,eb4,g4]@10 ~@2 [bb3,d4,f4] ~@3 [bb3,eb4,g4]@6 ~@2 [bb3,d4,f4]@7 ~ [bb3,eb4,g4] ~@3, ~@4 bb3 ~@27]/2", // Bbsus4 Ebsus2 Bb Eb Bb Eb Bb Eb
  Q: "[[bb3,eb4,f4]@15 ~ f4@11 ~@5, ~@15 bb3@12 ~@5, ~@31 d4@23 ~@10]/2", // Bbsus4
  R: "[g4,bb4,eb5]@6 ~@2 [g4,bb4,eb5]@6 ~@2 [f4,bb4,d5]@6 ~@2 [f4,bb4,d5]@7 ~, eb2@16 bb2@15 ~", // Eb Bb
  S: "[g4,bb4,eb5]@5 ~@3 [g4,bb4,eb5]@5 ~@3 [g4,bb4,eb5]@6 ~@2 [g4,bb4,eb5]@5 ~@3, eb3@29 ~@3", // Eb
  T: "[g4,bb4,eb5]@5 ~@3 [g4,bb4,eb5]@5 ~@3 [c3,g4,bb4,eb5]@8 [f2,f4,a4,c5]@8, eb3@7 ~@9", // Eb Cm7 F
  U: "[f4,bb4,d5]@5 ~@3 [f4,bb4,d5]@5 ~@3 [f4,bb4,d5]@6 ~@2 [f4,bb4,d5]@5 ~@3, bb2@29 ~@3", // Bb
  V: "[eb4,ab4,c5]@7 ~ [eb4,ab4,c5]@8 [f4,bb4,d5]@6 ~@2 [f4,bb4,d5]@6 ~@2, ab2@16 bb2@15 ~", // Ab Bb
  W: "[g3,g4,d5]@6 ~@2 [g3,g4,d5]@7 ~ [eb4,g4,c5]@5 ~@3 [eb4,g4,c5]@4 ~@4, b2@15 ~ c3@13 ~@3", // G5 Cm
  X: "[eb4,g4,bb4]@8 [d4,f4,bb4]@7 ~ [eb3,eb4,g4,bb4]@8 [c3,g4,c5,e5]@8, bb2@15 ~@17", // Eb Bb Eb C
  Y: "[f4,a4,c5]@6 ~@2 [f4,a4,c5]@6 ~@2 [e4,g4,c5]@6 ~@2 [e4,g4,c5]@7 ~, f2@16 c3@15 ~", // F C
  Z: "[f4,a4,c5]@5 ~@3 [f4,a4,c5]@5 ~@3 [f4,a4,c5]@6 ~@2 [f4,a4,c5]@5 ~@3, f3@29 ~@3", // F
  AA: "[f4,a4,c5]@5 ~@3 [f4,a4,c5]@5 ~@3 [d3,f4,a4,c5]@8 [g2,d4,g4,b4]@8, f3@7 ~@9", // F Dm7 G
  AB: "[e4,g4,c5]@5 ~@3 [e4,g4,c5]@5 ~@3 [e4,g4,c5]@6 ~@2 [e4,g4,c5]@5 ~@3, c3@29 ~@3", // C
  AC: "[d4,f4,bb4]@3 ~ [d4,f4,bb4]@4 [e4,g4,c5]@3 ~ [e4,g4,c5]@3 ~, bb2@16 c3@15 ~", // Bb C
  AD: "[a3,e4,a4]@6 ~@2 [a3,e4,a4]@7 ~ [d4,f4,a4]@5 ~@3 [d4,f4,a4]@4 ~@4, db3@15 ~ d3@13 ~@3", // A5 Dm
  AE: "[f4,bb4,d5]@7 ~ [f4,bb4,d5]@8 [f4,a4,c5]@7 ~ [f4,a4,c5]@7 ~, f3@16 c3@15 ~", // Bb F
  AF: "[[c4,f4,a4]@8 [c4,e4,g4]@7 ~ [f3,c4,f4,a4]@8 [c4,e4,g4] ~@3 [c4,f4,a4]@10 ~@2 [c4,e4,g4] ~@3 [c4,f4,a4]@6 ~@2 [c4,e4,g4]@7 ~ [c4,f4,a4] ~@3, c3@15 ~@49]/2", // F C F C F C F C …
  AG: "[[a3,d4,f4]@8 [d4,f4,a4]@7 ~ [d4,f4,bb4]@7 ~ [d4,f4,a4]@2 ~@2 [d4,g4,bb4]@10 ~@2 [d4,f4,a4]@2 ~@2 [d4,g4,bb4]@7 ~ [d4,f4,a4]@7 ~ [d4,g4,bb4]@2 ~@2]/2", // Dm Bb Dm Gm Dm Gm Dm Gm
  AH: "[e4,g4]@8 [e4,g4,c5]@8 [g4,c5,e5]@8 [c5,e5,g5]@7 ~, c4 ~", // Em C
  AI: "[g4,db5,e5]@7 ~ [g4,db5,e5]@7 ~ [g4,b4,d5]@7 ~ [g4,db5,e5]@6 ~@2", // Dbdim G Dbdim
  AJ: "[a4,d5,f5]@7 ~ [a4,d5,f5]@3 ~ [g4,c5,e5]@2 ~@2 [f4,bb4,d5]@7 ~ [f4,bb4,d5]@7 ~", // Dm C Bb
  AK: "[f4,bb4,d5]@6 ~@2 [f4,bb4,d5]@7 ~ [f4,a4,c5]@7 ~ [f4,a4,c5]@6 ~@2", // Bb F
  AL: "[d5@2 ~@22 [c4,e4,g4] ~@3 [c4,f4,a4]@10 ~@2 [c4,e4,g4] ~@3 [c4,f4,a4]@6 ~@2 [c4,e4,g4]@7 ~ [c4,f4,a4] ~@3, g4@3 ~@5, ~ e5@13 ~@18, ~@4 c5@23 ~@37]/2", // C F C F C F
  AM: "[d5@2 ~@6 d4@2 e4@2 c4@4 [f4,a4,c5]@6 ~@2 [c4,e4,g4] ~@3 [c4,f4,a4]@10 ~@2 [c4,e4,g4] ~@3 [c4,f4,a4]@6 ~@2 [c4,e4,g4]@7 ~ [c4,f4,a4] ~@3, g4!2 ~@6, ~ e5@13 ~@18, ~ c5@3 ~@12]/2", // F C F C F C F
  AN: "[~@4 c6@4 d5@2 ~@2 c5@8 ~@4 [c4,e4,g4] ~@3 [c4,f4,a4]@10 ~@2 [c4,e4,g4] ~@3 [c4,f4,a4]@6 ~@2 [c4,e4,g4]@7 ~ [c4,f4,a4] ~@3, g5@5 e5@5 ~@22, d6 ~ g4@3 ~@11, ~ e6@4 ~@27]/2", // C F C F C F
  AO: "d5@2 ~@2 c5@23 ~@5, g4@27 ~@5, ~ e5@13 ~@2",
})).s("gm_piano").gain(0.38)

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

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@17 A@6 B@3 ~@24 C@6 D@3 ~@33>".pickRestart({
  A: "[~@32 eb5@14 ~@2 bb4@13 ~@3 eb5@13 ~@3 eb4@12 ~@4 eb5@9 ~@7 eb5@5 ~@3 eb4@5 ~@3 d5@8 ~@8 f5@8 ~@8 eb5@8 ~@7 [bb4,d5]@10 ~@6 b4, ~@30 eb4@15 ~@2 d4@13 ~@3 [eb4,g4]@15 ~ g4@14 ~ eb4@10 ~@6 eb4@8 ~ a4@6 ~ f4@9 ~@7 f4@10 ~@6 eb4@9 ~@7 f4@11 ~@7, ~@31 g4@15 ~@32 eb5@14 ~@3 g4@9 ~@7 g4@7 eb5@7 ~@2 bb4@8 ~@8 bb4@9 ~@7 bb4@9 ~@24]/6", // Bb Eb
  B: "[~@16 eb5@5 ~@11 c5@7 ~@8 [eb4,bb4]@10 ~@7 eb5@8 d5@5 ~@3 eb5@5 ~@11, ~@14 g4@6 ~@10 eb4@9 ~@23 eb4@14 ~@20, ~@15 c5@5 ~@11 ab4@9 ~@23 bb4@14 ~@2 bb4@6 ~@11]/3", // Eb5
  C: "[~@16 [eb2,bb4]@6 ~@2 e5@6 ~@2 f5@14 ~@2 c5@13 ~@3 f5@14 f5 ~ f4@12 ~@4 f5@9 ~@7 f5@5 ~@3 f4@5 ~@3 e5@8 ~@8 g5@8 ~@8 f5@8 ~@7 [c5,e5]@10 ~@6 db5, ~@15 eb4@7 g4@8 f4@15 ~@2 e4@13 ~@3 [f4,a4]@15 ~@16 f4@10 ~@6 f4@8 ~ b4@6 ~ g4@9 ~@7 g4@10 ~@6 f4@9 ~@7 g4@11 ~@7, ~@16 eb5@5 ~@2 c5@7 ~ a4@15 ~@33 a4@14 ~@2 a4@9 ~@7 a4@7 f5@7 ~@2 c5@8 ~@8 c5@9 ~@7 c5@9 ~@24]/6", // Eb5 C F
  D: "[~@16 f5@5 ~@11 d5@7 ~@8 [f4,c5]@10 ~@7 f5@8 e5@5 ~@3 f5@5 ~@11, ~@14 a4@6 ~@10 f4@9 ~@23 f4@14 ~@20, ~@15 d5@5 ~@11 bb4@9 ~@23 c5@14 ~@2 c5@6 ~@11]/3", // F5
})).s("gm_acoustic_guitar_steel").gain(0.23)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note("<~@18 A ~@3 B@2 C D ~@24 E F ~@3 G@2 H I ~@33>".pickRestart({
  A: "~@14 bb3@17 ~", B: "[~@4 d5 ~@3, ~@30 g4@9 ~@25]/2", C: "~@2 eb5 ~", D: "~@14 g4@7 ~@11", E: "~@24 c2@7 ~",
  F: "~@14 c4@17 ~", G: "[~@4 e5 ~@3, ~@30 a4@9 ~@25]/2", H: "~@2 f5 ~", I: "~@14 a4@7 ~@11",
})).s("gm_acoustic_guitar_steel").gain(0.11)

// other · string ensemble 1
const string_ensemble_1 = note("<~@9 A@6 B@2 ~@8 C D@8 E@7 ~@9 F G@8 H@8 I@8 H@8 J@8 ~>".pickRestart({
  A: "[~@31 g4@16 f4@16 g4@12 f4@4 ~@16 g4@16 f4@8 c5@8 f4@20 eb4@4 d4@8 [c4,eb4]@16 f4@16 ~, ~@31 bb3@79 ~ c4@16 [bb3,bb4]@32 ~@33]/6", // Cm Bb
  B: "[~@15 eb4@4 g4@4 c5@4 d5@4 eb5@12 c5@4 bb4@8 g4@9, ~@31 ab3@16 bb3@15 ~@2]/2", C: "~@23 bb5@3 ~ g5@5",
  D: "[~@7 bb5@3 ~ g5@7 ~ bb5@4 ~@4 g5@3 ~ f6@4 eb6@18 ~@2 c6@4 ab5@9 ~@3 c6@3 ~ ab5@5 ~@3 c6@6 ~@2 ab5@4 g6@4 f6@2 eb6@2 f6@21 ~@3 b5@16 c6@8 d6@8 eb6@28 ~@4 f6@3 ~ eb6@4 c6@4 f6@3 ~ eb6@4 ~@4 f6@3 ~ eb6@4 bb5@20 ~@4 bb5@3 ~ g5@5]/8",
  E: "[~@7 bb5@3 ~ g5@7 ~ bb5@4 ~@4 g5@3 ~ f6@4 eb6@2 d6@2 eb6@14 ~@2 c6@4 ab5@9 ~@3 c6@3 ~ ab5@5 ~@3 c6@6 ~@2 ab5@4 g6@4 f6@2 eb6@2 f6@21 ~@3 b5@16 c6@8 d6@8 eb6@28 ~@4 f6@3 ~ eb6@4 c6@4 f6@3 ~ eb6@4 ~@4 f6@3 ~ eb6@4 ~]/7",
  F: "~@23 c5@8 ~", G: "[~@15 g5@16 a5@56 b5@8 c6@32 d6@16 e6@32 f6@55 ~ e6@8 f6@8 c6@3 ~ a5@5]/8",
  H: "[~@7 c6@3 ~ a5@7 ~ c6@4 ~@4 a5@3 ~ g6@4 f6@18 ~@2 d6@4 bb5@9 ~@3 d6@3 ~ bb5@5 ~@3 d6@6 ~@2 bb5@4 a6@4 g6@2 f6@2 g6@21 ~@3 db6@16 d6@8 e6@8 f6@28 ~@4 g6@3 ~ f6@4 d6@4 g6@3 ~ f6@4 ~@4 g6@3 ~ f6@4 c6@20 ~@4 c6@3 ~ a5@5]/8",
  I: "[~@7 c6@3 ~ a5@7 ~ c6@4 ~@4 a5@3 ~ g6@4 f6@2 e6@2 f6@14 ~@2 d6@4 bb5@9 ~@3 d6@3 ~ bb5@5 ~@3 d6@6 ~@2 bb5@4 a6@4 g6@2 f6@2 g6@21 ~@3 db6@16 d6@8 e6@8 f6@28 ~@4 g6@3 ~ f6@4 d6@4 g6@3 ~ f6@4 ~@4 g6@3 ~ f6@4 c6@18 ~@6 c6@3 ~ a5@5]/8",
  J: "[~@7 c6@3 ~ a5@7 ~ c6@4 ~@4 a5@3 ~ g6@4 f6@2 e6@2 f6@14 ~@2 d6@4 bb5@9 ~@3 d6@3 ~ bb5@5 ~@3 d6@6 ~@2 bb5@4 a6@4 g6@2 f6@2 g6@21 ~@3 db6@16 d6@8 e6@8 f6@28 ~@4 g6@3 ~ f6@4 d6@4 g6@3 ~ f6@4 ~@4 g6@3 ~ f6@4 c6@18 ~@15]/8",
})).s("gm_string_ensemble_1").gain(0.23)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@11 A ~@2 B@2 C@8 D@2 ~@14 E@3 F@7 G@8 H ~@33>".pickRestart({
  A: "~@15 eb4@16 ~", B: "[~@15 d4@16 [b3,d4]@15 ~ c4@8 bb3@8 ~, ~@31 g4@16 ~@17]/2",
  C: "[~@31 [f4,bb4]@16 [eb4,g4]@7 ~ [f4,bb4]@8 eb5@16 d5@16 eb5@64 d5@32 [ab4,eb5]@16 [bb4,d5]@16 [b4,d5]@16 c5@8 bb4@8 ab4, ~@31 bb3@32 bb4@129 ~@47 eb5@17]/8", // Bb5 Eb Bb5 Ab5 Bb Bm
  D: "[~@15 eb5@23 ~ d5@8 eb5@6 ~@11, ~@15 bb4@37 ~@12]/2", E: "[~@31 eb4@32 d4@32 [bb4,eb5], ~@31 [f4,bb4]@64 ~]/3",
  F: "[~@15 d5@16 eb5@64 d5@32 [ab4,eb5]@16 [bb4,d5]@16 [b4,d5]@16 c5@8 bb4@8 ab4@16 [bb4,eb5]@17, ~@175 eb5@31 ~@18]/7", // Ab5 Bb Bm Eb5
  G: "[~@7 d5@8 eb5@8 [g4,e5]@8 f5@16 ~@16 f5@64 e5@32 [bb4,f5]@16 [c5,e5]@16 [db5,e5]@16 d5@8 c5@8 bb4@16 [c5,f5]@17, ~@31 c5@129 ~@47 f5@31 ~@18]/8", // C Bb5 C Dbm F5
  H: "~@7 e5@8 f5@8 ~@9",
})).s("gm_string_ensemble_1").gain(0.12)

// other · whistle
const whistle = note("<~@18 A B C D E F G H ~@16 I A J K L M N G O P Q R S T U V W ~@33>".pickRestart({
  A: "eb6 f6", B: "g6@12 f6@4 eb6@15 ~", C: "g6@6 f6 eb6", D: "f6@24 bb6@7 ~", E: "ab6 f6", F: "g6@3 d6 eb6@2 g6@2",
  G: "c7@4 bb6@3 g6", H: "f6 bb6@2 ~", I: "~ bb5 c6 d6", J: "g6@7 f6", K: "g6@6 f6 c7", L: "bb6@7 f6", M: "ab6 bb6",
  N: "g6@3 f6 eb6@2 g6@2", O: "f6 eb6!2 e6", P: "f6 g6", Q: "a6@7 g6", R: "a6@6 g6 d7", S: "c7@7 g6", T: "bb6 c7",
  U: "a6@3 g6 f6@2 a6@2", V: "d7@4 c7@3 a6", W: "g6 f6!2 ~",
})).s("gm_whistle").gain(0.16)

// chords · synth brass 1
const synth_brass_1 = note(`<
  ~@25 A B C D@2 ~@3 A B C D@2 ~@20 E F G H I J K L M F G N@2 J K L O F G N@2 J K L P F G N@2 J K L O ~
>`.pickRestart({
  A: "~@12 [d4,f4] ~ [eb4,g4]@2", B: "~@8 [d4,f4]@2 ~@2 [eb4,g4]@6 ~@2 [d4,f4]@4 ~@4 [eb4,g4]@3 ~",
  C: "[c4,eb4]@8 g4@7 ~ ab4@8 [eb4,g4]@2 ~@2 [f4,ab4]@4, ~ eb4@2 ~", // Cm Eb Fm
  D: "[~@8 [eb4,g4]@2 ~@2 [f4,ab4]@5 ~@3 [eb4,g4]@5 ~@3 [f4,ab4]@2 ~ [d4,f4]@8 ~ [d4,f4]@7 ~ bb4@8 d5@8, ~@48 f4@15 ~]/2", // Eb Fm Eb Fm Dm
  E: "~@12 [e4,g4] ~ [f4,a4]@2", F: "~@8 [e4,g4]@2 ~@2 [f4,a4]@5 ~@3 [e4,g4]@4 ~@4 [f4,a4]@3 ~",
  G: "[d4,f4]@8 a4@7 ~ bb4@8 [f4,a4]@2 ~@2 [g4,bb4]@4, ~ f4@2 ~", // Dm F Gm
  H: "~@8 [f4,a4]@2 ~@2 [g4,bb4]@5 ~@3 [f4,a4]@5 ~@3 [g4,bb4]@2 ~@2", I: "g4 e5, c5@31 ~", J: "db4@2 d4 db4, [e4,a4]",
  K: "[d4,f4,a4]@15 ~ [bb3,f4,bb4]@16", L: "[bb3,d4,g4]@15 ~ [a3,c4,f4]@16",
  M: "f4@14 ~@2 e4@5 ~@3 [e4,g4]@2 ~@2 [f4,a4]@4, [g3,c4]@21 ~@11", // Em F C5
  N: "[~@8 [f4,a4]@2 ~@2 [g4,bb4]@5 ~@3 [f4,a4]@5 ~@3 [g4,bb4]@2 ~ [e4,g4]@8 ~ [e4,g4]@7 ~ c5@8 e5@8, ~@48 g4@15 ~]/2", // F Gm F Gm Em
  O: "[c4,f4]@7 ~ [c4,e4]@7 ~ [a3,c4,f4]@4 ~@4 [e4,g4]@2 ~@2 [f4,a4]@4, g3@15 ~@17", // F5 C F Em F
  P: "[g3,c4,f4]@15 ~ [g3,c4,e4]@7 ~ [e4,g4]@2 ~@2 [f4,a4]@4", // Csus4 C Em F
})).s("gm_synth_brass_1").gain(0.34)

// other · pizzicato strings
const pizzicato_strings = note(`<
  ~@25 A B C D E F G H I B C D E F G H J ~@16 K L M N O P E Q R L M N O P E Q S L M N O P E Q R L M N O P E Q ~@2
>`.pickRestart({
  A: "~@14 eb5 g5", B: "eb5 g5 eb5 g5 d5 g5 eb5 g5 eb5 g5 d5 g5 d5 g5 eb5 g5",
  C: "c5 g5 c5 g5 c5 g5 c5 g5 c5 g5 c5 g5 c5 g5 f5 ab5, ~@28 c5 ~@3",
  D: "f5@2 ab5@2 f5@2 ab5@2 eb5@2 g5 ~ f5@2 ab5@2 f5@2 ab5@2 eb5@2 g5@2 eb5@2 g5@2 f5@2 ab5 ~",
  E: "d5 f5 d5 f5 d5 f5 d5 f5 d5 f5 d5 f5 d5 f5 d5 f5", F: "b4 d5 b4 d5 b4 d5 b4 d5 b4 d5 b4 d5 b4 d5 b4 d5",
  G: "c5 eb5 c5 eb5 c5 eb5 c5 eb5 c5 eb5 c5 eb5 c5 eb5 c5 eb5",
  H: "c5 eb5 c5 eb5 c5 eb5 c5 eb5 bb4 eb5 bb4 eb5 bb4 eb5 bb4 eb5",
  I: "bb4@2 eb5@2 bb4@2 eb5@2 bb4@2 eb5@2 bb4@2 eb5@2 bb4@2 d5@2 bb4@2 d5@2 bb4 ~@3 eb5@2 g5@2", J: "bb4 ~@15",
  K: "~@14 f5 a5", L: "f5 a5 f5 a5 e5 a5 f5 a5 f5 a5 e5 a5 e5 a5 f5 a5",
  M: "d5 a5 d5 a5 d5 a5 d5 a5 d5 a5 d5 a5 d5 a5 g5 bb5, ~@28 d5 ~@3",
  N: "g5@2 bb5@2 g5@2 bb5@2 f5@2 a5 ~ g5@2 bb5@2 g5@2 bb5@2 f5@2 a5@2 f5@2 a5@2 g5@2 bb5 ~",
  O: "e5 g5 e5 g5 e5 g5 e5 g5 e5 g5 e5 g5 e5 g5 e5 g5", P: "db5 e5 db5 e5 db5 e5 db5 e5 db5 e5 db5 e5 db5 e5 db5 e5",
  Q: "d5 f5 d5 f5 d5 f5 d5 f5 c5 f5 c5 f5 c5 f5 c5 f5",
  R: "c5@2 f5@2 c5@2 f5@2 c5@2 f5@2 c5@2 f5@2 c5@2 e5@2 c5@2 e5@2 c5 ~@3 f5@2 a5@2", S: "c5 ~@13 f5 a5",
})).s("gm_pizzicato_strings").gain(0.27)

// chords · synth brass 2
const synth_brass_2 = note("<~@29 A ~@7 A ~@24 B ~@7 B ~@7 B ~@13>".pickRestart({
  A: "[bb3,f4,bb4]@7 ~", B: "[c4,g4,c5]@7 ~",
})).s("gm_synth_brass_2").gain(0.1)

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

// drums · rim
const rim = s("rim").struct("<~@18 [~@3 x]!7 ~@67>").gain(0.51)

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

// drums · low tom
const low_tom = s("lt").struct("<~@29 A ~@3 B ~@3 C ~@12 A ~@11 A ~@3 B ~@7 D ~@3 A ~@3 B ~@3 C ~@5>".pickRestart({
  A: "~@7 x", B: "~@5 x ~@2", C: "~@24 x ~@2 x ~ x ~ x", D: "~@3 x!3 ~@2",
})).gain(0.57)
// … 43 more lines

More by Zero