Strudelify

I Just Wanna Stop

Gino Vannelli

KeyE♭ majorTempo70 bpm
0:00/0:00
// I Just Wanna Stop — Gino Vannelli
// 70 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 9 electric guitar clean (copy of ch 13 epiano1)
// note: Full arrangement: all 72 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 · epiano1
const epiano1 = note(`<
  A@2 B C@3 D@3 E@2 F@2 G H@2 I@5 J@2 K@7 L@5 M@2 N@2 O@2 P@2 Q R S T@3 U@5 V@4 W@5 X@5 Y Z@3
>`.pickRestart({
  A: "[~@11 bb4@2 [g4,bb4]@2 ab4@8 ab4@6 ab4@3, [eb2,bb3,d4]@15 [eb2,bb3,db4,f4]@17, g4@13 ~@19, ~@9 d5@6 ~@8 c5@9]/2", // Gm Ebmaj7 Bbm
  B: "g4@7 ~@7 bb3@2, [eb2,d4], bb3@13 g4@3, ~@7 d5@9, ~@7 g4@4 bb4@5", // Ebmaj7
  C: "[f4@7 [f4,c5]@6 [eb2,db4,f4,ab4] ~ [d4,g4]@8 [d4,g4,bb4]@8 f4@10 ~@5 f4@2, [eb2,bb3,db4,ab4]@14 ~ [eb2,bb3]@16 [eb3,bb3,db4]@17, ~@31 ab4@13 ab4@4, ~@41 [eb2,c5]@7, ~@41 f4@5 ~@2]/3", // F5 Db G5 Gm Ebsus4 Eb5 Eb7 Cm
  D: "[d4@7 ~@6 d4@2 [eb2,eb3,bb3,db4,f4,ab4]@14 [eb2,eb3,db4,f4,ab4] ~ [eb2,eb3,bb3,d4,g4]@6 bb3@2 [bb4,d5]@9, [eb2,eb3]@15 ~@24 c3@7 ~@2, g4@11 g4@4 ~@22 g4 ~@10, ~@7 bb4@8 ~@33, ~@7 d4@6 ~@24 eb4@10 ~]/3", // Bbm7 Db Ebmaj7 Bb Eb
  E: "[g4@2 ~@7 [c5,eb5] ~ [c5,g5] ~ eb5@2 [ab2,f5]@8 ~@5 ab4@4, [ab3,c4,eb4]@23 ~@9, ab2@10 ~@3 c5@10 ~@9, ~@3 f4@20 ~@9, ~@13 ab2 ~@9 [bb2,c4,eb4,bb4]@9]/2", // Cm C5 Db Ab Cm7
  F: "[[eb3,bb3,d4,g4]@8 ~ [eb4,gb4,bb4]@3 ~ [c4,eb4,bb4] ~ [eb3,d4,eb4,g4]@8 [c4,eb4,g4,bb4]@9, ~@8 b2@4 bb2@3 bb3@6 ~@2 c3@7 ~@2, ~@23 d4 ~@8]/2", // Ebmaj7 Ebm Cm7 Ebmaj7 Cm7
  G: "[eb4,g4]@3 [eb4,f4]@12 ~, [ab3,c4]@15 ~, ab2@13 ~@3", // Eb Ebsus2 Ab
  H: "[[ab2,ab3,c4,eb4,g4]@7 [g2,g3,bb3,d4,f4]@7 ~ [f2,f3,ab3,c4,eb4]@7 ~ [bb2,c4,eb4,ab4]@8 ~]/2", // Abmaj7 Gm7 Fm7 Ab
  I: "[[bb2,c4,eb4,g4,bb4]@4 [a2,eb4,g4,c5]@3 ~ [eb4,g4,c5]@13 [eb4,g4,c5] ~ [g2,bb3,d4,f4]@7 [eb2,bb3,db4,f4]@6 [eb3,db4,f4,ab4]@4 [ab2,eb4,g4,c5]@15 [g2,bb3,d4,f4]@6 ~ [eb3,bb3,db4,f4]@6 [eb2,db4,f4,ab4]@4 [ab2,eb4,g4,c5]@8, ~@8 ab2@15 ~@57]/5", // Cm7 Am7b5 Cm Gm7 Bbm Db Abmaj7 Gm7 …
  J: "[~@2 [ab2,eb4,g4,c5] ~ [g2,d4,f4,bb4] ~ [f2,c4]@8 [b2,gb4]@6 [db3,ab4,c5]@4 [eb2,bb3,d4,g4]@8, ~@6 eb4@18 c4 ~@7, ~@3 ab4@7 ~@6]/2", // Abmaj7 Gm7 F5 B5 Dbmaj7 Ebmaj7
  K: "[~ [bb3,d4,g4] ~@2 [bb3,d4,g4]@2 ~@11 f5@2 ~@2 db5@2 [c4,db4] ~@7 bb5@8 [eb3,bb3,db4,f4,ab4]@13 ~ [eb3,db4,f4,ab4] ~ [eb2,bb3,d4,g4]@8 ~@6 d5@3 g4@2 ~@6 [c5,f5] g5 ~ [c5,eb5] ~ [c5,f5] ~ g5 [ab2,eb5]@7 ~@5 ab4@3 ~ [eb3,bb3,d4,g4]@8, ~@7 [eb3,bb3,db4,f4]@16 [eb2,g4,d5]@16 ~@33 ab2@14 ~@10 bb2@8 ~@8, ~@15 c6@8 ~ d4@13 ~@26 [c4,eb4,g4,bb4]@10 ~@2 f4@19 ~@18, ~@19 ab5@4 eb4@14 ~@35 [ab3,c4,eb4]@22 ~ [c4,eb4]@8 ~@9, ~@30 g5@9 ~@48 c5@8 bb4@4 ~@13]/7", // Gm Dbmaj7 Bbm7 Db Ebmaj7 F5 Cm F5 …
  L: "[~ [eb4,gb4,bb4]@3 ~ [d4,f4,ab4] ~ [eb2,bb3,d4]@8 ~@6 g4@2 ~ g4@2 ~@11 ab3@2 ~ [ab2,ab3,c4,eb4,g4]@7 [g2,g3,bb3,d4,f4]@7 ~ [f2,f3,ab3,c4,eb4]@8 [bb2,c4,eb4,bb4]@8 ~ [bb2,c4,eb4,g4,bb4,eb5,bb5]@4 [a2,eb4,g4,c5,g5,a5,c6]@4, b2@3 ~ bb2@3 g4@12 bb4@5 c4@15 ~@41, ~@15 eb4@24 ~@41, ~@15 [c3,c4]@8 ~ [ab2,ab3]@13 ~@43, ~@18 d5@6 ~@3 f4@12 ~@41]/5", // Ebm Ddim Ebmaj7 Abmaj7 Gm7 Fm7 Cm7 Am7b5 …
  M: "[[ab2,eb4,g4,c5]@14 ~ [g2,bb3,d4,f4]@7 [bb3,db4,f4,db5,ab5]@5 ~ [db4,f4,ab4,c6]@4, ~@22 eb3@9 ~, ~@27 f5@4 ~]/2", // Abmaj7 Gm7 Bbm7 Dbmaj7
  N: "[[ab2,eb4,g4,c5]@14 ~ [g2,bb3,d4,f4]@7 [bb3,db4,f4,db5,f5]@5 ~ [db4,f4,ab4,f5,ab5]@4, ~@22 eb3@9 ~]/2", // Abmaj7 Gm7 Bbm Db
  O: "[[ab2,eb4,g4,c5]@6 ~@4 [ab2,eb4,g4,c5,eb5,c6] ~ [g2,d4,f4,bb4,d5,bb5] ~ [f2,c4,eb4,ab4,c5,ab5]@8 [b2,gb4,bb4,bb5]@6 [db3,c4,ab4,ab5]@3 ~, ~@11 [eb4,eb5]@5]/2", // Abmaj7 Gm7 Fm7 Bmaj7 Dbmaj7 Eb
  P: "[[eb3,bb3,d4,g4,d5,g5]@7 eb5@2 ~@6 bb5@8 [c5,g5] ~ [c5,g5] [c5,f5,g5] ~ [c5,g5]@2 [c5,f5] ab3, ~@7 [c3,c4,eb4,g4,bb4,d6]@8 [ab2,ab3,c4,eb4,g4]@16 ~, ~@9 c6@6 ~@17, ~@11 g5@12 ~@9, ~@13 eb5@10 ~@9]/2", // Ebmaj7 C5 Csus4 C5 F5 Cm7 Abmaj7
  Q: "[ab2,ab3,c4,eb4,g4]@7 [c4,eb4,bb4]@5 [c4,eb4,ab4]@4, ~@7 bb2@9", // Abmaj7 Cm7 Ab
  R: "[bb3,d4,eb4]@3 ~ [b2,b3,eb4,gb4,bb4]@2 [bb2,c4,eb4,ab4]@2, [eb3,g4] ~", // Ebmaj7 Bmaj7 Ab Eb
  S: "[eb2,bb3,d4,g4]@8 g4@3 ~@2 g4@3, ~ [c3,c4,eb4,d5], ~@11 bb4@5", // Ebmaj7 Cm
  T: "[g4@3 ~@4 eb5@2 ~@5 ab3 ~ [ab2,ab3,c4,eb4,g4]@6 ~ [g2,g3,bb3,d4,f4]@7 ~ [f2,f3,ab3,c4,eb4]@7 ~ [bb2,c4,eb4,bb4,eb5,bb5]@8 ~, [ab2,ab3,c4,eb4]@5 ~@11, ~@3 f4@12 f5@7 ~@26, ~@7 bb5@4 c5@11 ~@26, ~@9 g5@4 eb5@9 ~@26]/3", // Abmaj7 Gm7 Fm7 Cm7 Ab
  U: "[[bb2,c4,eb4,g4,bb4,eb5,bb5]@4 [a2,eb4,g4,c5,g5,c6]@3 ~ [ab2,eb4,g4,c5,eb5,c6]@15 [g2,bb3,d4,f4,d5,bb5]@7 [eb3,bb3,db4,f4,ab5]@6 [eb2,db4,f4,ab4,g5]@4 [ab2,eb4,g4,c5,eb5,c6]@14 ~ [g2,bb3,d4,f4,d5,bb5]@7 [eb3,bb3,db4,f4,db5,f5]@6 [eb2,db4,f4,ab4,db5,ab5]@4 [ab2,eb4,g4,c5,eb5,c6]@8, ~@3 db5 ~@4]/5", // Cm7 Am7b5 Abmaj7 Gm7 Bbm7 Db Abmaj7 Gm7 …
  V: "[~@2 [ab2,eb4,g4,c5,eb5,c6] ~ [g2,d4,f4,bb4,d5,bb5] ~ [f2,c4,eb4,ab4,c5,ab5]@8 [b2,gb4,bb4,bb5]@6 [db3,ab4,c5,ab5]@3 ~ [eb4,g4,c5]@10 [ab2,eb4,g4,c5] ~@2 [ab2,eb4,g4,c5] ~@2 [g2,d4,f4,g4,bb4]@6 [eb3,bb3,db4,f4,ab4,c5]@6 [eb2,bb3,db4,f4]@4 [ab2,eb4,g4,c5]@8, ~@14 [eb4,eb5]@9 ~ ab2@8 ~@32]/4", // Abmaj7 Gm7 Fm7 Bmaj7 Dbmaj7 Cm Abmaj7 Gm7 …
  W: "[~@2 [ab2,eb4,g4,c5] ~@2 [ab2,eb4,g4,c5] ~@2 [g2,d4,bb4]@6 [eb3,bb3,db4,f4,ab4,c5]@6 [eb2,bb3,db4,f4,ab4]@4 [ab2,eb4,g4,c5]@14 ~ [g2,d4,f4,g4,bb4]@7 eb3@4 eb2@2 eb4@2 eb2@2 [ab2,eb4,g4,c5]@15 [g2,bb3,d4,g4]@6 ~ [eb3,bb3,db4,f4,ab4]@2, ~@4 [f4,g4]@2 ~@17 [bb3,db4,f4,ab4,c5]@3 [bb3,db4,f4,g4,bb4]@2 ~@12]/5", // Abmaj7 Gm Dbmaj7 Bbm7 Abmaj7 Gm7 Abmaj7 Gm …
  X: "[~@2 eb2@2 eb4@2 eb3@2 [ab2,eb4,g4,c5]@15 [g2,bb3,d4,f4,g4]@6 ~ [eb3,bb3,db4,f4,ab4]@5 ~ [eb2,db4,f4,ab4,c5]@4 [ab2,eb4,g4,c5]@15 [bb3,d4,f4]@5 ~@2 eb3@4 eb2@2 eb4@2 eb3@2 [ab2,eb4,g4,c5]@8, ~@4 [bb3,db4,f4]@4 ~@47 g2@7 [bb3,db4]@9 ~@9, ~@31 [f4,ab4,c5]@3 [f4,bb4]@2 ~@4]/5", // Abmaj7 Gm7 Bbm7 Dbmaj7 Abmaj7 Bb Abmaj7 Bbm …
  Y: "~@2 [ab2,eb4,g4,c5] ~ [g2,d4,f4,bb4] ~ [f2,c4,eb4,ab4]@10", // Abmaj7 Gm7 Fm7
  Z: "[[b2,gb4,bb4]@5 [db3,ab4]@4 ~@21 d7@10 ~@8, eb4@9 ~ [eb2,bb3,d4,g4]@13 g6@2 d6@3 bb6@12 ~@8, ~@17 g5@23 ~@8, ~@9 d5@11 ~@4, ~@10 d6 bb5@9 ~@4]/3", // Bmaj7 Db5 Ebmaj7
})).s("gm_epiano1").gain(0.33).pan(0.7)

// bass · electric bass finger
const bass = note(`<
  ~@3 A B C D E@2 F G H@2 I J K L@5 M@2 N O N P Q F R S Q T U V W@2 X@2 Y@2 Z F G AA AB AC J K AD@5 AE@2 AF@2 AG@2 AH@2
  AI@2 AJ@2 AK@2 AL AM@3
>`.pickRestart({
  A: "~@15 eb1", B: "eb1@4 ~@2 eb1 eb1@5 ~@3 eb1", C: "eb1@3 ~@4 eb1@4 ~@4 eb1", D: "eb1@3 ~@3 eb1 eb1@4 ~@4 eb1",
  E: "[eb1@4 ~@2 eb1 eb1@4 ~ eb2 db2 bb1 eb1@3 ~@5 eb1 c2@2 ~@5 c2]/2", F: "ab1@2 ~@5 eb1 ab1@2 ~@5 eb1",
  G: "ab1@3 ~@4 eb1 bb1@3 ~@4 bb1", H: "[eb1@3 ~@4 eb1 b1!2 ~ b1 bb1 bb2 bb1 eb1@3 ~@5 eb1 c2@2 ~@5 c2]/2",
  I: "ab1@2 ~@5 eb1 ab1 ~@6 eb1", J: "ab1 ~ ab1 ~@4 d1 g1@3 ~@4 c1", K: "f1@3 ~@4 f1 bb1@4 bb2@4",
  L: "[bb1@4 a1@3 ~ ab1@3 ~ f2@2 eb2@7 bb1 ab1 g1@6 ~ eb1@6 eb2@2 eb1 ~ ab1@2 ~@2 f2@2 eb2@6 ~ bb1 ab1 g1@6 ~ eb1@6 eb2@2 eb1@2 ab1@4 ~@4]/5",
  M: "[~@2 ab1 ~ g1 ~ f1@8 b0@6 db1@3 eb1 eb1@3 ~@4 eb1]/2", N: "eb1@2 ~@5 eb1 eb1@2 ~@5 eb1",
  O: "eb1@2 ~@5 eb1 eb1@3 ~@4 eb1", P: "eb1@2 ~ eb1 eb2 db2 bb1 eb1@5 ~@3 eb1", Q: "c2@2 ~@5 c2 ab1@2 ~@5 eb1",
  R: "bb1@3 ~@4 bb1 eb1@4 ~@3 eb1", S: "b1!2 ~ b1 bb1 bb2 bb1 eb1@5 ~@3 eb1", T: "ab1@3 ~@4 eb1 ab1 ~ ab1 ~@4 d1",
  U: "g1@3 ~@4 c1 f1@4 ~@3 c1", V: "bb1 bb2 bb1 a1",
  W: "[ab1@3 ~ f2@2 eb2@7 bb1 ab1 g1@6 ~ eb1@4 eb2 ~ db2@2 bb1 ~, ~@28 d2 ~@3]/2",
  X: "[ab1@3 ~ f2@2 eb2@7 bb1 ab1 g1@6 ~ eb1@4 eb2 ~ db2@2 bb1 ~]/2", Y: "[ab1@4 ~@6 ab1 ~ g1 ~ f1@7 ~ b0@6 db1@4]/2",
  Z: "eb1@3 ~@4 eb1 c2@2 ~@5 g1", AA: "eb1@4 ~@3 eb1 b1!2 ~ b1 bb1!2 ~ bb1", AB: "eb1@4 ~@3 eb1 c2@2 ~@5 g1",
  AC: "ab1@3 ~@4 eb1 ab1@2 ~@5 eb1",
  AD: "[bb1@4 a1@3 ~ ab1@3 ~ f2@2 eb2@6 ~ bb1 ab1 g1@5 ~@2 eb1@4 eb2 ~ db2@2 bb1 ~ ab1@2 ~@2 f2@2 eb2@6 ~ bb1 ab1 g1@5 ~@2 eb1@4 eb2 ~ db2@2 bb1 ~ ab1@5 ~@3]/5",
  AE: "[~@2 ab1 ~ g1 ~ f1@8 b0@6 db1@4 ab1 ~@4 ab1 ~ ab1]/2",
  AF: "[ab1 ~ ab1 ~@2 ab1 ~@2 g1@5 ~ eb1@4 eb2@2 db2@2 bb1@2 ab1 ~@4 ab1 ~ ab1]/2",
  AG: "[ab1 ~ ab1 ~@2 ab1 ~@2 g1@5 ~ eb1@4 eb2 ~ db2@2 bb1 ~ ab1@2 ~@5 ab1]/2",
  AH: "[ab1 ~@4 ab1 ~ ab1 g1@4 ~ g1 eb1@4 eb2 ~ db2@2 bb1 ~ ab1 ~@4 ab1 ~ ab1]/2",
  AI: "[ab1 ~@4 ab1 ~ ab1 g1@4 ~ g1 eb1@4 eb2 ~ db2@2 bb1 ~ ab1@2 ~@5 ab1]/2",
  AJ: "[ab1@2 ~@3 ab1 ~ ab1 g1@4 ~ g1 eb1@4 eb2 ~ db2@2 bb1 ~ ab1@2 ~@5 ab1]/2",
  AK: "[ab1 ~@4 ab1 ~ ab1 g1@4 ~ g1 eb1@4 eb2 ~ db2@2 bb1 ~ ab1@4 ~@4]/2", AL: "~@2 ab1 ~ g1 ~ f1@10",
  AM: "[b0@4 ~ db1@5 eb1@29 ~@9]/3",
})).s("gm_electric_bass_finger").gain(0.44)

// chords · pad new age
const pad_new_age = note(`<
  A@2 B C ~@10 D@2 E@5 F@6 ~@5 G@3 H@2 I@2 J@2 K@3 L@2 M N@2 O@5 P@2 Q@2 R@7 S@3 T U@3
>`.pickRestart({
  A: "[[bb3,d4,g4]@14 ~ [bb3,db4,f4,ab4]@17]/2", B: "[bb3,d4,g4]", C: "[bb3,db4,f4,ab4]@15 ~",
  D: "[c5 ~ c5 ~@4 [g3,bb3,d4,bb4]@5 ~@3 [f3,ab3,c4,c5]@7 ~ [c4,eb4,bb4]@8 ~, [ab3,c4,eb4] ~@7]/2", // Gm Fm Cm7 Ab
  E: "[[c4,eb4,g4,bb4]@4 [a3,eb4,g4,c5]@4 ~@4 [g4,c5]@2 [eb4,g4,c5]@8 ~ [bb3,d4,f4]@5 ~@2 [db4,f4,bb4]@6 [f4,ab4,c5]@4 ~@4 [f4,g4,c5]@2 [eb4,g4,c5]@7 ~@2 [bb3,d4,f4]@5 ~@2 [db4,f4,bb4]@5 ~ db4!2 ~@2 [eb4,g4,c5] ~@7, ~@12 f4 ~@55 [f4,ab4,c5]@4 ~@8]/5", // Cm7 Am7b5 C5 Cm Bb Bbm Fm Fsus2 …
  F: "[~@2 [c4,eb4,g4] ~ [bb3,d4,f4] ~ [ab3,c4,eb4]@7 ~ [b3,eb4,gb4,bb4]@6 [db4,eb4,ab4]@4 [bb3,d4,g4]@14 ~ [bb3,db4,f4,ab4]@15 ~ [bb3,d4,g4]@15 ~ [bb3,db4,f4,ab4]@14 ~@11, ~@24 c4 ~@71]/6", // Cm Bb Ab Bmaj7 Dbsus2 Gm Bbm7 Gm …
  G: "[~@8 c5 ~ c5 ~@4 [g3,bb3,d4]@7 ~ [f3,ab3,c4]@7 ~ [c4,eb4,bb4]@8 ~ [c4,eb4,g4,bb4]@4 [a3,eb4,g4,c5]@3 ~, ~@8 [ab3,c4,eb4]@7 ~@33]/3", // Gm Fm Cm7 Am7b5 Ab
  H: "[~@4 [f4,g4,c5] ~ [eb4,g4,c5]@6 ~@3 [bb3,d4,f4]@6 ~ [db4,f4,bb4]@5 ~ [db4,f4,c5]@4]/2", // Fsus2 Cm Bb Bbm Dbmaj7
  I: "[~@4 [f4,g4,c5] ~ [eb4,g4,c5]@6 ~@3 [bb3,d4,f4]@6 ~ [db4,f4,bb4]@5 ~ [db4,f4,c5]@3 ~]/2", // Fsus2 Cm Bb Bbm Dbmaj7
  J: "[[eb4,g4,c5]@2 ~@8 [eb4,g4,c5] ~ [d4,f4,bb4] ~ [c4,eb4,ab4]@8 [b3,eb4,gb4,bb4]@6 [db4,eb4,ab4]@4]/2", // Cm Bb Ab Bmaj7 Dbsus2
  K: "[[bb3,d4,g4]@6 ~ [c4,eb4,g4]@6 ~@2 [ab3,c4,eb4]@23 ~ [c4,eb4,bb4]@9]/3", // Gm Cm Ab Cm7
  L: "[[bb3,d4,g4]@7 ~ [b3,eb4,gb4]@4 ~ c4@3 [bb3,g4]@7 ~ [c4,eb4,g4]@7 ~, ~ bb4 ~@2, ~@6 eb4@5 ~@5]/2", // Gm B Eb Cm
  M: "[ab3,c4,eb4]@7 ~", N: "[c5 ~ c5 ~@4 [g3,bb3,d4]@6 ~@2 [f3,ab3,c4]@7 ~ [c4,eb4,bb4]@8 ~, [ab3,c4,eb4]@5 ~@27]/2",
  O: "[[c4,eb4,g4,bb4]@4 [a3,eb4,g4,c5]@3 ~@5 [f4,g4,c5]@2 [eb4,g4,c5]@5 ~@4 [bb3,d4,f4]@6 ~ [db4,f4,bb4]@5 ~ [db4,f4,c5]@3 ~@5 [f4,g4,c5]@2 [eb4,g4,c5]@6 ~@3 [bb3,d4,f4]@6 ~ [db4,f4,bb4]@5 ~ [db4,f4,c5]@3 ~ [eb4,g4,c5]@2 ~@6]/5", // Cm7 Am7b5 Fsus2 Cm Bb Bbm Dbmaj7 Fsus2 …
  P: "[~@2 [eb4,g4,c5] ~ [d4,f4,bb4] ~ [c4,eb4,ab4]@7 ~ [b3,eb4,gb4,bb4]@6 [db4,eb4,ab4]@3 ~ [eb4,g4,c5]@8]/2", // Cm Bb Ab Bmaj7 Dbsus2 Cm
  Q: "[~@2 [eb4,g4,c5] ~@2 [eb4,g4,c5] ~@2 [d4,f4,bb4]@4 ~@8 c5@3 ~ [eb4,g4,c5]@7 ~, ~@14 [db4,f4,ab4]@9 ~@9]/2", // Cm Bb Cm Db
  R: "[~@2 [eb4,g4,c5] ~@2 [eb4,g4,c5] ~@2 [d4,f4,bb4]@4 ~@2 ab4@6 bb4@2 ~@2 [eb4,g4,c5]@14 ~ [d4,f4,bb4]@6 ~ [f4,ab4]@6 ~@4 [eb4,c5]@14 ~ [d4,f4,bb4]@5 ~@2 [bb3,db4,f4,ab4]@6 [f4,ab4,c5]@3 ~ [eb4,g4,c5]@14 ~ [d4,f4,bb4]@5 ~@2 [bb3,db4,f4,ab4]@2, ~@14 [bb3,db4,f4]@9 ~@23 [bb3,db4]@10 ~@56, ~@26 g4@9 ~@21]/7", // Cm Bb Cm Bb Fm Cm Bb Bbm7 …
  S: "[~@4 [f4,ab4,c5]@3 ~ [eb4,g4,c5]@14 ~ [d4,f4,bb4]@5 ~@2 [f4,ab4]@6 g4@3 ~ [eb4,g4,c5]@4 ~@4, ~@15 [bb3,db4]@5 ~@4]/3", // Fm Cm Bb Fm Cm Bbm
  T: "~@2 [eb4,g4] ~ [d4,f4] ~ [c4,eb4]@9 ~", U: "[[b3,eb4,gb4,bb4]@5 [db4,eb4,ab4]@4 ~ [bb3,d4,g4]@29 d4 ~@8]/3",
})).s("gm_pad_new_age").gain(0.05).pan(0.4)

// other · tenor sax
const tenor_sax = note("<A@2 B C@2 ~@35 D E F G H I J ~@25>".pickRestart({
  A: "[~@4 bb4@14 f4!2 ~ f4 eb4 gb4@2 eb4@7, ~@25 f4 ~@6]/2", B: "~@3 c5@4 bb4@5 g4 ~ f4 eb4",
  C: "[db4@11 db4@3 c4 bb3@12 ~@5]/2", D: "~@15 bb3", E: "~ c5@4 bb4!2 ab4 ab4@3 g4 ~ g4 f4!2",
  F: "eb4 g4@2 ab4 [f4,g4] eb4@5 ~@5 c5", G: "bb4@2 c5 ~ eb5@2 c5 bb4 ~ gb4@2 [eb4,f4] f4!2 ~ [eb4,f4], db5 ~@15",
  H: "g4 ~ bb4@4 ~@2 g4 bb4 ~ bb4 g4 ~ bb4!2", I: "bb4@4 ab4!2 ~ g4 g4@5 f4!2 eb4",
  J: "~ g4@2 ab4 [f4,g4] eb4@4 c4 g3 bb3@4 ~", // Fsus2
})).s("gm_tenor_sax").gain(0.34)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@14 A@2 B C@2 D@2 E@6 ~@5 F@3 G@2 H@2 I@2 J K L M N O P@2 Q R@2 S@2 T@4 U V@8 ~ W@4
>`.pickRestart({
  A: "[~@7 [bb4,d5,f5]@7 ~ [ab4,c5,eb5]@8 [c4,eb4,bb4]@9]/2", B: "[eb4,g4,bb4]@4 [g4,a4,c5]@3 ~ [ab4,c5,eb5]@2 ~@6",
  C: "[~@7 [g4,bb4,d5]@5 ~@2 [f4,bb4]@6 [f4,c5]@3 ~@9]/2", D: "[~@7 [g4,bb4,d5]@6 ~ [f4,bb4]@5 ~ [f4,c5]@3 ~@9]/2",
  E: "[~@2 [ab4,c5,eb5] ~ [g4,bb4,d5] ~ [f4,ab4,c5]@8 [eb4,bb4]@6 [db4,ab4]@3 ~ [d4,g4]@15 [db4,ab4]@16 [f4,g4,bb4]@16 [f4,c5]@14 ~@11]/6", // Ab Gm Fm Eb5 Db5 G5 Db5 Gm7 …
  F: "[~@15 [bb4,d5,f5]@7 ~ [ab4,c5,eb5]@8 [c4,eb4,bb4]@8 ~ [eb4,g4,bb4]@4 [g4,a4,c5]@3 ~]/3", // Bb Ab Cm7 Eb Am7
  G: "[[ab4,c5,eb5]@2 ~@13 [g4,bb4,d5]@6 ~ [f4,ab4]@5 ~ [f4,c5]@4]/2", // Ab Gm Fm F5
  H: "[~@15 [g4,bb4,d5]@7 [f4,bb4]@5 ~ [f4,c5]@3 ~]/2", // Gm Bb5 F5
  I: "[~@10 [ab4,c5,eb5] ~ [g4,bb4,d5] ~ [f4,ab4,c5]@8 [b3,bb4]@6 [db4,ab4]@3 ~]/2", J: "[d4,g4]@7 ~ [eb4,bb4]@8",
  K: "[c4,g4] [eb4,c5]", L: "ab4@7 ~@5 bb4@4, c4, ~@7 eb4@9", M: "[d4,g4]@6 ~ [b3,eb4,bb4]@4 ~ [c4,eb4,bb4]@4",
  N: "[d4,g4] [eb4,bb4]", O: "g4 eb4, c4", P: "[~@7 [bb4,d5,f5]@7 ~ [ab4,c5,eb5]@7 ~ [c4,eb4,bb4]@8 ~]/2",
  Q: "[eb4,g4,bb4]@4 [g4,a4,c5]@3 ~ [ab4,c5,eb5] ~@7", R: "[~@7 [g4,bb4,d5]@6 ~ [f4,bb4]@6 [ab4,c5]@3 ~@9]/2",
  S: "[~@7 [g4,bb4,d5]@6 ~ [f4,bb4]@5 ~ [ab4,c5]@3 ~@9]/2", // Gm Bb5 Ab
  T: "[~@2 [ab4,c5,eb5] ~ [g4,bb4,d5] ~ [f4,ab4,c5]@8 [b3,bb4]@6 [db4,ab4]@4 [ab4,c5]@10 [ab4,c5] ~@2 [ab4,c5] ~@2 [g4,bb4]@5 ~ [f4,bb4]@6 [ab4,c5]@4 [ab4,c5]@8]/4", // Ab Gm Fm Bmaj7 Db5 Ab Gm Bb5 …
  U: "~@2 [ab4,c5] ~@2 [ab4,c5] ~@2 [g4,bb4]@5 ~ [f4,bb4]@2", V: "[~ [ab4,c5] [ab4,c5]@30]/8",
  W: "[~@2 [eb5,g5] ~ [bb4,d5,f5] ~ eb5@9 ~ [b3,bb4]@5 db4@5 [eb3,d4,g4]@29 ~@9, ~@2 c5@13 ~@49, ~@3 ab4@10 ~@19]/4", // Eb Bb Bmaj7 Ebmaj7
})).s("gm_string_ensemble_2").gain(0.08).pan(0.8)

// chords · string ensemble 2 · Cm
const string_ensemble_2_2 = note(`<
  ~@14
  [[eb4,g4,c5] ~ [eb4,g4,c5] ~@13]
  ~@17
  [~@8 [eb4,g4,c5] ~ [eb4,g4,c5] ~@5]
  ~@14
  [[eb4,g4,c5] ~ [eb4,g4,c5] ~@13]
  ~@24
>`).s("gm_string_ensemble_2").gain(0.21)

// other · string ensemble 1
const string_ensemble_1 = note("<~@4 A@4 ~@64>".pickRestart({
  A: "[~@13 [bb4,bb5] [c5,c6] [eb5,eb6]@2 [c5,c6]@6 ~@9]/2", // Bb C Eb C
})).s("gm_string_ensemble_1").gain(0.24)

// chords · epiano1
const epiano1_2 = note(`<
  ~@3 A@2 B@2 ~@4 C@2 ~@3 D@2 E@2 ~@2 F@2 G@2 ~@3 H@2 ~@3 I@2 ~ J ~@2 K@2 ~@2 L@2 ~@3 M@2 N@2 ~@3 O@2 P@2 Q@2 R@2 S@4
  T@4
>`.pickRestart({
  A: "[~@8 [d4,f4]@7 ~, ~@15 [g4,bb4]@15 ~@2]/2", B: "[~@16 [d4,f4]@15 ~, ~@15 [g4,bb4]@15 ~@2]/2",
  C: "[~@8 [gb4,bb4,db5]@4 b4@3 [f4,g4,bb4]@9 ~@8, ~@7 [b3,eb4]@5 ~@20]/2", // Gb Gm7 B
  D: "[~@3 bb4 ~@3 g4 [ab3,c4]@2 ~@2 f4@2 eb4@6 ~@12, c4@2 g4@2 ~ c4@2 ~@25, ~ eb4@2 ~ [a3,c5]@4 ~@24, ~@6 eb4@4 ~ [g4,c5]@9 ~@12]/2", // Ab Am C5
  E: "[~@6 f4 [eb4,c5]@4 ~@5, ~@11 g4@10 ~@11, ~@11 c5@2 ~@19]/2", F: "[~@8 [d4,f4]@15 ~@9, ~@7 [g4,bb4]@15 ~@10]/2",
  G: "[~@12 [d4,f4]@15 ~@5, ~@11 [g4,bb4]@15 ~@6]/2", // Dm Gm
  H: "[~@16 [eb4,gb4,bb4,db5]@4 b4@3 [f4,g4,bb4]@8 ~, ~@15 b3@5 ~@12]/2", // Ebm7 Gm7
  I: "[~@11 bb4 ~@3 g4 [ab3,c4]@2 ~@2 f4@2 eb4@8 ~@2, ~@8 c4@2 g4@2 ~ c4@3 ~@4 g4@10 ~@2, ~@9 eb4@2 ~ [a3,c5]@4 ~@16, ~@14 eb4@4 ~ c5@11 ~@2]/2", // Ab Am
  J: "~@2 f4 [eb4,g4,c5]@4 ~, ~@3 [g4,c5]@2 ~@11", K: "[~@8 [d4,f4]@5 ~@3, ~@15 [g4,bb4]@11 ~@6]/2",
  L: "[~@8 db5@4 b4@3 [f4,g4,bb4]@8 ~@9, ~@7 [b3,eb4,gb4,bb4]@5 ~@20]/2", // Gm7 Bmaj7
  M: "[~@3 bb4 ~@3 g4 [ab3,c4]@3 ~ [f4,g4]@2 [eb4,g4,c5]@9 ~@9, c4@2 g4@2 ~ c4@3 ~@24, ~ eb4@2 ~ [a3,c5]@4 ~@24, ~@6 eb4@5 c5@3 ~@18]/2", // Ab Fsus2 Cm Am
  N: "[~@12 f4@2 [eb4,g4,c5]@9 ~@9, ~@11 [g4,c5]@2 ~@19]/2", // Cm C5
  O: "[~@14 [f4,bb4]@5 ~ [f4,ab4,c5]@4 ~@8, ~@13 [bb3,db4]@6 db4@5 ~@8]/2", // Bb5 Fm Bbm
  P: "[~@14 [db4,f4,ab4]@5 ~ [f4,ab4,c5]@4 ~@8, ~@13 bb3@6 db4@5 ~@8]/2", // Db Fm
  Q: "[~@7 [f4,ab4]@3 ~ bb4 ~@4, ~@13 [bb3,db4]@6 ~ [bb3,db4,g4,c5]@5 ~@7]/2", // Fm Bbm Gdim
  R: "[~@14 [db4,f4,bb4]@5 ~ [f4,ab4,c5]@4 ~@8, ~@13 bb3@6 db4@5 ~@8]/2", // Bbm Fm
  S: "[~@14 [f4,ab4]@5 ~ [g4,c5]@4 ~@8, ~@13 [bb3,db4]@6 [bb3,db4]@5 ~@8]/2", // Fm C5 Bbm
  T: "[~@16 [eb4,gb4,bb4]@4 ~ [db4,eb4,ab4]@5 ~ [g3,bb3,d4]@32 ~@5, ~@15 b3@5 c4@5 ~ [f4,g4,bb4]@32 ~@6]/4", // Ebm Dbsus2 Gm Gm7
})).s("gm_epiano1").gain(0.27).pan(0.1)

// chords · string ensemble 1
const string_ensemble_1_2 = note("<~@59 A B@2 C@4 D@2 ~@4>".pickRestart({
  A: "~@15 [g5,eb6]", // Cm
  B: "[[g5,eb6] [f5,d6]!4 [eb5,c6]!2 [eb5,c6]@2 [d5,bb5] [d5,bb5]@4 [db5,bb5]@4 c6@2 eb6@2 c6 ~ [g5,eb6]@2 ~@5 [g5,eb6]]/2", // Cm Dm Cm Gm Gb Cm
  C: "[[g5,eb6] [f5,d6]!4 [eb5,c6]!2 [eb5,c6]@2 [d5,bb5] [d5,bb5]@3 ~ [db5,bb5]@4 c6 ~ eb6@2 c6 ~ [g5,eb6]@2 ~@5 [g5,eb6]]/2", // Cm Dm Cm Gm Gb Cm
  D: "[[g5,eb6] [f5,d6]!4 [eb5,c6]!2 [eb5,c6]@2 [d5,bb5] [d5,bb5]@3 ~ [db5,bb5]@4 c6 ~ eb6@2 c6 ~ [g5,eb6]@2 ~@6]/2", // Cm Dm Cm Gm Gb Cm
})).s("gm_string_ensemble_1").gain(0.12).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A B C B D E F@2 G E F@3 H I J K L M N F@3 O F@3 P F@2 Q R S T S T U V F@3 W F@3 Q H K J K L M X Y Z Y N AA N AB N
  AB N AC L AD AE ~ AF
>`.pickRestart({
  A: "~@15 x", B: "x ~@5 x!2 ~@7 x", C: "x ~@6 x ~@7 x", D: "x ~@5 x!2 ~@5 x ~ x", E: "~@7 x!2 ~@6 x",
  F: "x ~@6 x!2 ~@6 x", G: "x ~@6 x!3 ~@3 x ~ x", H: "x ~ x ~ x ~ x!2", I: "~@5 x ~ x ~@6 x ~",
  J: "~@3 x!2 ~@3 x ~@3 x ~ x ~", K: "~@7 x ~@6 x ~", L: "~@3 x!2 ~@3 x ~@7", M: "~ x!3 ~@3 x",
  N: "~@4 x ~@2 x!2 ~@6 x", O: "x ~@4 x ~ x ~@7 x", P: "x!2 ~@3 x ~ x ~@7 x", Q: "x ~@6 x!2 ~@2 x!2 ~@2 x",
  R: "x ~@2 x!2 ~@2 x!2 ~@3 x ~@3", S: "x ~@3 x ~ x ~@8 x", T: "~@6 x ~@4 x!2 ~@3", U: "x ~@4 x!3", V: "~@3 x ~@2 x ~",
  W: "x ~@6 x!3 ~ x!3 ~@2", X: "~@4 x ~@3 x ~@4 x ~ x", Y: "x ~ x ~@2 x ~@2 x ~@4 x!2 ~", Z: "~@4 x ~@3 x ~@4 x ~@2",
  AA: "x ~@4 x ~ x ~@5 x!2 ~", AB: "x ~@4 x ~ x!2 ~@4 x!2 ~", AC: "x ~@4 x ~ x!2 ~@5 x ~", AD: "~ x!3 ~@4",
  AE: "x ~@4 x ~@4 x ~@5", AF: "~ x",
})).gain(0.54)

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

// drums · low tom
const low_tom = s("lt").struct(`<
// … 77 more lines

More by Gino Vannelli