Strudelify
Outside cover art

Twenty Five

Outside

Michael George

KeyF majorTempo122 bpm
0:00/0:00
// Outside — Michael George
// 122 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 151 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass pick
const bass = note(`<
  ~@2 A@2 B@2 C@2 D E F G H G I G H J F G H K I L@2 M@2 N@2 O@2 P@6 Q R@2 S T U V S Q W@2 X Y Z AA AB@2 AC AD AE AF AG
  AH AI AJ AG AK AL AM AN AO@3 AP@2 AQ AR AS@2 AQ AT AP@2 AQ AU@8 AV@3 AW@2 AX@2 AY AZ BA BB BC BD BE BF BG BH BI BF BG
  BJ BE BF BK BL BM BN AQ AT AP@2 BO BP BQ@3 BR@4 BS@4 BT@4 BU BV BW BX BY BZ CA CB CC CD CE@4
>`.pickRestart({
  A: "[~@30 g1@6 ~@2 g1@5 ~@8 bb1@3 d2@4 ~ c2@5]/2",
  B: "[~@3 c2@4 ~@4 d2@4 f2@5 ~@3 f2@7 ~ g1@4 ~@4 g1@5 ~@7 bb1@4 d2@4 c2@5]/2",
  C: "[~@3 d2@4 ~@4 f2@4 ~@4 f2@11 ~ g1@6 ~@2 g1@5 ~@8 bb1@4 d2@4 c2@4]/2", D: "~@4 c2@4 ~@4 d2@4 f2@5 ~@3 f2@7 ~",
  E: "g2@2 ~@2 g2@3 ~@3 g2@2 db2@2 c2@2", F: "~@2 d2@2 ~@2 f2@2 ~@2 bb2@5 ~",
  G: "g1@3 ~@5 g1@4 ~@2 g1 ~ g1@4 bb1@4 d2@4 c2@4", H: "~@4 c2@6 ~@2 d2@4 f2@6 ~@2 f2@4 g2@3 ~",
  I: "~@4 d2@4 ~@4 f2@4 ~@4 f2@11 ~", J: "g2@4 ~@4 g2@6 ~@2 g2@3 ~ g2@4 db2@4 c2@4",
  K: "g1@3 ~@5 g2@4 f2@4 g2@3 ~ bb1@4 d2@4 c2@4",
  L: "[~ g1@5 ~@2 g2@4 f2@5 g2@4 bb1@4 d2@4 c2@6 ~@2 c2@6 ~@2 d2@4 f2@7 ~ f2@4 g2@3]/2",
  M: "[~ g2@5 ~@3 g2@4 ~@8 g2@4 db2@4 c2@5 ~@3 d2@5 ~@3 f2@4 g2@4 d2@4 ~ c2@4 bb1@2]/2",
  N: "[~@2 g1@4 ~@4 g1@3 ~@3 g1 ~ g1@4 bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@6 ~@2 f2@4 g2@2]/2",
  O: "[~@2 g1@4 ~@4 g1@4 ~@2 g1 ~ g1@4 bb1@4 d2@4 c2@5 ~@3 d2@4 ~@4 f2@5 ~@4 bb2@9]/2",
  P: "[~@3 g1@4 ~@4 g1@3 ~@3 g1 ~ g1@4 bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@6 ~@2 f2@4 g2@3 ~ g1@4 ~@4 g2@4 ~@4 g2@3 ~ g2@4 db2@4 c2@4 ~@4 d2@5 ~@3 f2@5 ~@3 bb2@4 c3@4 d3@3 ~ g1@4 ~@4 g1@3 ~@3 g1 ~ g1@4 bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@5 f2@6 ~@2 f2@4]/6",
  Q: "g2@3 ~ g1@4 ~@4 g1@4 ~@2 g1 ~ g1@4 bb1@4 d2@4",
  R: "[c2@3 ~@5 d2@4 ~@4 f2@4 ~@4 f2@11 ~ g1@4 ~@4 g1@3 ~@3 g1 ~ g1@4 bb1@4 d2@4]/2",
  S: "c2@5 ~@3 c2@5 ~@3 d2@4 f2@6 ~@2 f2@4", T: "g2@3 ~ g1@6 ~@2 g2@4 ~@4 g2@2 ~@2 g2@4 d2@4",
  U: "c2@6 ~@2 d2@4 ~@4 f2@4 bb2@3 ~ d2@4 c2@4", V: "bb1@4 g1@4 ~@4 g1@3 ~@3 g1 ~ g1@4 bb1@4 d2@4",
  W: "[c2@6 ~@2 d2@5 ~@3 f2@4 bb2@7 ~ c3@7 ~ g1@4 ~@4 g1@3 ~@3 g1 ~ g1@4 bb1@4 d2@4]/2",
  X: "c2@5 ~@3 c2@5 ~@3 d2@5 f2@6 ~@2 f2@3", Y: "~ g2@3 ~ g2@4 ~@4 g2@4 ~@4 g2@2 ~@2 g2@4 db2@3",
  Z: "~ c2@3 ~@5 d2@5 ~@3 f2@4 ~@4 d2@3 ~ c2@3", AA: "~ bb1@3 ~ c2@6 ~@2 c2@4 ~@4 bb1@4 c2@5 ~@2",
  AB: "[~ c2@3 ~@6 c2@3 ~@5 f2@4 ~@4 g2@4 f2@4 c2@4 g1@5 ~@3 g1@4 ~ g1@2 f1@4 g1@4 ~@3]/2",
  AC: "~@2 g1@5 ~@3 g1@4 ~@4 bb1@5 ~@3 g1@5 ~", AD: "~@2 bb1@3 ~ c2@4 ~@4 c2@4 ~@4 bb1@4 c2@6",
  AE: "~@2 c2@3 ~@5 c2@4 ~@3 f2@5 ~@4 g2@4 f2@2", AF: "~ c2@4 g1@7 ~@2 g1@4 ~ g1 ~@2 f1@4 g1@6",
  AG: "~@2 g1@3 ~@4 g1@5 ~@4 bb1@4 ~@4 g1@5 ~", AH: "~@2 bb1@3 c2@4 ~@5 c2@4 ~@3 bb1@4 ~ c2@5 ~",
  AI: "~ c2@4 ~@5 c2@4 ~@4 f2@5 ~@3 g2@5 ~", AJ: "~@2 f2@3 g1@5 ~@4 g1@4 ~@2 g1@2 f1@4 g1@4 ~@2",
  AK: "~@2 bb1@3 ~ c2@5 ~@3 c2@5 ~@3 bb1@4 c2@5 ~", AL: "~@2 c2@5 ~@3 c2@5 ~@3 bb1@5 ~@3 c2@4 ~@2",
  AM: "~@2 c2@4 d2@6 ~@2 d2@6 ~@2 c2@4 d2@5 ~", AN: "~@2 d2@3 ~@6 f2@5 ~@3 g2@4 ~@4 f2@4 ~",
  AO: "[~@3 g2@3 ~ g1@4 ~@4 g1@5 ~@7 bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@4 ~@4 f2@4 g2@3 ~ g1@4 ~@5 g1@4 ~@8 bb1@4]/3",
  AP: "[d2@4 c2@4 ~@4 d2@4 ~@4 f2@4 ~@4 f2@11 ~ g1@4 ~@4 g1@5 ~@7 bb1@4]/2", AQ: "d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@4 ~@4",
  AR: "f2@4 g2@3 ~ g1@5 ~@3 g2@4 ~@8 g2@3 ~",
  AS: "[db2@4 c2@5 ~@3 d2@4 ~@4 f2@5 ~@3 bb2@10 ~@2 g1@4 ~@4 g1@5 ~@7 bb1@4]/2",
  AT: "f2@4 g2@3 ~ g1@4 ~@4 g1@4 ~@8 bb1@4",
  AU: "[f2@4 g2@3 ~ g2@4 ~@3 g2@5 ~@3 g2@2 ~@2 g2@4 db2@4 c2@4 ~@20 d2@4 f2@4 g2@4 g1@6 ~@2 g1@4 ~@2 g1 ~ g1@4 bb1@3 d2@4 c2@4 ~@4 c2@5 ~@3 d2@4 f2@6 ~@2 f2@4 g2@3 ~ g1@6 ~@2 g1@4 ~@2 g1 ~ g1@4 bb1@4 d2@4 c2@4 ~@4 d2@5 ~@3 f2@4 bb2@3 ~ bb2@4 c3@4 bb2@3 ~ g1@4 ~@4 g1@3 ~@3 g1 ~ g1@4 bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@5 ~@3 f2@2]/8",
  AV: "[~@2 g2@3 ~ g1@4 ~@4 g2@5 ~@3 g2@2 ~@2 g2@4 db2@4 c2@4 ~@5 d2@5 ~@3 f2@4 ~@4 d2@4 c2@4 bb1@4 g1@3 ~@9 g2@2 g2@2 ~@9]/3",
  AW: "[~@7 g1@3 ~@9 g2@2 g2@2 ~@8 f2@2 g2@2 ~@4 g1@3 ~@9 g2@2 g2@2 ~@9]/2",
  AX: "[~@7 g1@3 ~@9 g2@2 g2@2 ~@8 d2@6 ~@2 g1@4 ~@8 g1 ~ g1@3 ~@3 d2@4 ~]/2",
  AY: "~ f2@4 ~@2 g1@4 ~@8 g1 ~ g1@3 ~@3 d2@4 ~", AZ: "~ d2@4 ~@2 g1@4 ~@8 g1 ~ g1@3 ~@3 d2@4 ~", BA: "~ f2@2 ~@13",
  BB: "~@4 c2@3 ~ c2@2 ~@2 bb1@2 c2@2", BC: "~@4 c2@3 ~@5 c2@3 ~@5 f2@4 ~@4 g2@4",
  BD: "f2@4 c2@4 g1@5 ~@3 g1@4 ~@2 g1@2 f1@4 g1@4", BE: "~@4 g1@4 ~@4 g1@4 ~@4 bb1@5 ~@3 g1@4",
  BF: "~@4 bb1@3 ~ c2@4 ~@4 c2@4 ~@4 bb1@4 c2@4", BG: "~@4 c2@3 ~@5 c2@4 ~@4 f2@5 ~@3 g2@4",
  BH: "f2@3 ~ c2@4 g1@7 ~ g1@4 ~@2 g1 ~ f1@4 g1@4", BI: "~@4 g1@3 ~@5 g1@5 ~@3 bb1@4 ~@4 g1@4",
  BJ: "~@4 f2@4 g1@5 ~@3 g1@4 ~@2 g1@2 f1@4 g1@4", BK: "~@3 c2@5 ~@3 c2@5 ~@3 bb1@5 ~@3 c2@4 ~",
  BL: "~@3 c2@4 d2@6 ~@2 d2@6 ~@2 c2@4 d2@5", BM: "~@3 d2@3 ~@5 f2@5 ~@3 g2@4 ~@4 f2@4 ~",
  BN: "~@3 g2@3 ~ g1@4 ~@5 g1@4 ~@8 bb1@4", BO: "~ d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@4 ~@3",
  BP: "~ f2@4 g2@3 ~ g1@5 ~@3 g2@4 ~@8 g2@3",
  BQ: "[~ db2@4 c2@5 ~@3 d2@4 ~@4 f2@5 ~@4 bb2@10 ~@2 g1@4 ~@4 g1@5 ~ g1 ~ g1@4 bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@4 ~@2]/3",
  BR: "[~@2 f2@4 g2@3 ~ g1@4 ~@4 g1@4 ~@2 g1 ~ g1@4 bb1@4 d2@4 c2@4 ~@4 d2@4 ~@4 f2@4 ~@4 f2@11 ~ g1@4 ~@4 g1@5 ~ g1 ~ g1@4 bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@4 ~@2]/4",
  BS: "[~@3 f2@4 g2@3 ~ g2@4 ~@4 g2@5 ~@3 g2@2 ~@2 g2@4 db2@4 c2@4 ~@4 d2@4 ~@4 f2@4 ~@4 d2@4 c2@4 bb1@4 g1@4 ~@4 g1@5 ~ g1 ~ g1@4 bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@4 ~]/4",
  BT: "[~@3 f2@4 g2@3 ~ g1@4 ~@4 g1@4 ~@2 g1 ~ g1@4 bb1@4 d2@4 c2@4 ~@4 d2@4 ~@4 f2@4 ~@4 f2@11 ~ g1@4 ~@4 g1@5 ~@2 g1@2 g1@3 bb1@4 ~ d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@4]/4",
  BU: "~@4 f2@4 g2@3 ~ g2@4 ~@4 g2@5 ~@3 g2@2 ~@2", BV: "g2 db2 c2 ~ d2 ~ f2 ~",
  BW: "d2@4 c2@4 bb1@4 g1@4 ~@4 g1@5 ~ g1 ~ g1@4", BX: "bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@4",
  BY: "~@4 f2@4 g2@3 ~ g1@4 ~@4 g1@4 ~@2 g1 ~ g1@4", BZ: "bb1@4 d2@4 ~ c2@4 ~@4 d2@4 ~@3 f2@4 ~@4",
  CA: "~ f2@11 ~ g1@4 ~@4 g1@5 ~ g1@2 g1@3", CB: "~ bb1@4 d2@4 c2@5 ~@3 c2@5 ~@3 d2@4 f2@3",
  CC: "~@5 f2@4 g2@3 ~ g2@4 ~@4 g2@5 ~@3 g2@2 ~", CD: "~ g2@4 ~ db2@3 c2@4 ~@5 d2@4 ~@4 f2@4 ~@2",
  CE: "[~@2 d2@4 c2@4 bb1@5 ~ g1@93 ~@19]/4",
})).s("gm_electric_bass_pick").gain(0.22)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@14 A@2 B@2 C ~@14 D@2 ~@10 E F ~@2 G@2 ~@8 H@2 ~@5 I@4 ~@2 J@4 ~@9 K@2 ~@2 L@2 ~@10 M ~@6 N@3 ~@4 O@2 ~@5 P ~@28
>`.pickRestart({
  A: "[~@4 [c4,f4,c5]@2 [bb3,d4,bb4] [c4,c5]@2 [bb3,bb4]@6 ~, ~@7 f4@8 ~]/2", // F5 Bb C Bb
  B: "[~@2 [c4,f4] [bb3,d4] [g3,c4] d4@2 ~@2 d4@3 ~@4, ~@5 bb3@7 ~@4, ~@7 f4@5 ~@4]/2", // F5 Bb C5
  C: "[a4,c5] [g4,bb4] [f4,a4] [g4,bb4] ~@2 c5 ~, ~@4 [f4,a4]@3 ~", // Am Gm F Gm F
  D: "[~@3 bb4@4 bb3@4 bb4@4 bb3@4 bb4@4 bb3@4 bb4@12 bb3@8 [a3,c4]@6 ~@11, ~@3 [d4,g4]@44 ~@17]/2", // Am G5
  E: "~@2 f4 e4 d4 e4 f4 bb3", F: "c4 d4@5 c4 ~",
  G: "[~@5 bb4@4 bb3@4 bb4@4 bb3@4 bb4@4 bb3@4 bb4@12 bb3@8 [a3,c4]@6 ~@9, ~@5 [d4,g4]@44 ~@15]/2", // Am G5
  H: "[~@3 f4@3 g4@3 ~@2 f4@3 g4@3 ~@2 f4@2 f3@2 f4@2 [f3,a4]@2 [a3,f4]@3 [g3,d4]@2, ~@3 [bb3,d4]@16 c4@11 ~@2, ~@19 a3@6 ~@7]/2", // F Dm G5 Bb
  I: "[~@19 [gb4,a4]@16 [g4,bb4]@20 [f4,a4]@16 g4@32 ~@25, ~@19 d4@36 c4@48 ~@25]/4", // Gbm Gm F
  J: "[~@4 [c4,e4]@2 [bb3,d4] [c4,e4]@4 [bb3,f4]@6 ~ g4 f4 g4 f4@3 g4 ~@7, ~@18 d4@7 ~@7]/4", // C Bb C Bb5
  K: "[~@5 f4@2 e4@2 d4@2 e4@2 f4@2 bb3@2 c4@2 d4@10 c4@2 ~]/2", L: "[~@6 [d3,bb3,d4]@44 ~ [a3,c4]@6 ~@7]/2",
  M: "~ g4 f4 ~",
  N: "[~@2 [bb3,d4]@2 f4@2 f3@2 f4@2 [f3,a4]@2 [a3,f4]@3 g3@5 [bb3,g4]@16 ~@12, ~@8 c4@22 d4@41 ~@25, ~@2 a3@3 ~@19]/3", // Bb F Dm Eb
  O: "[~@2 [f4,a4,c5]@2 [g4,bb4,d5] [f4,a4,c5]@4 ~@7]/2", P: "~@9 c5@6 d5@4 ~@13, ~@9 [f4,a4]@10 ~@13",
})).s("gm_lead_2_sawtooth").gain(0.09).pan(0.3)

// chords · epiano1
const epiano1 = note(`<
  ~@11 A@8 B C B D E ~ F G H@2 I@8 J K J K J K J K J K J L M N O@2 P@8 Q@2 R@2 S@3 T@2 U V U V U W ~@7 X Y@2 Z@4 AA@2
  ~@7 AB@6 AC@8 AD@3 U V U V AE AF@2 AG@2 AH@4 AI@2 AJ@4 AK@2 AL@4 AM@4 AN@6
>`.pickRestart({
  A: "[[d4,f4,a4]@26 ~@2 [c4,f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5 ~@3 [c4,f4]@5 ~@3, ~@56 a4@3 ~@5]/2", // Dm F F5
  B: "[d4,f4,a4]@7 [c4,e4,g4]", C: "~@6 c4 ~ c4@2 ~@2 c4@2 d4 ~", D: "~@14 [bb3,d4]@4 ~@6 [bb3,d4]@3 ~@5",
  E: "[bb3,d4,f4]@28 ~ [g3,c4,g4]@3", F: "~ [d4,f4,a4]@27 ~ [c4,e4,g4]@3", G: "~@13 c4@3 ~ c4@5 ~@4 c4@5 ~",
  H: "[~@2 [c4,f4,a4]@27 ~ [c4,e4,g4]@13 ~@3 c4@3 ~ c4@5 ~@3 c4@3 ~ bb3@2]/2", // F C
  I: "[c4@2 [c4,f4,a4]@27 ~ [c4,e4,g4]@13 ~@3 c4@3 ~ c4@5 ~@4 c4@3 ~ bb3@2 ~@2 [c4,a4]@27 ~ [c4,e4,g4]@13 ~@3 c4@3 ~ c4@4 ~@4 c4@3 ~ bb3@2 c4@2 [c4,f4,a4]@27 ~ [c4,e4,g4]@13 ~@3 c4@3 ~ c4@4 ~@4 c4@3 ~ bb3@2 c4@2 [c4,f4,a4]@27 ~ [c4,e4,g4]@13 ~@4 c4@2 ~@2 c4@5 ~@3 c4@4, ~@65 c4@2 ~@189, ~@66 f4@27 ~@163]/8", // F C F C F C F C
  J: "bb3@2 c4@2 [c4,f4,a4]@27 ~", K: "[c4,e4,g4]@13 ~@3 c4@2 ~@2 c4@4 ~@4 c4@3 ~",
  L: "[c4,e4,g4]@13 ~@4 c4@2 ~ c4@5 ~@4 c4@3", M: "~ bb3@2 c4@2 [c4,f4,a4]@27",
  N: "~ [c4,e4,g4]@13 ~@3 c4@3 ~ c4@5 ~@3 c4@3", O: "[~ bb3@2 c4@2 [bb3,d4]@31 ~ [a3,c4]@27]/2",
  P: "[~@6 g3@31 ~ g3@31 ~ d4@31 ~ [a3,c4]@26, ~@5 bb3@30 ~@2 bb3@30 ~@2 bb3@33 ~@26]/4", // Am
  Q: "[~@6 g3@31 [bb3,d4,f4]@27, ~@5 bb3@30 ~@29]/2", R: "[~@3 [bb3,d4]@16 [a3,c4]@13]/2",
  S: "[~@6 [d4,f4,a4]@31 ~@2 d4@32 [d4,f4,a4]@25, ~@19 [gb4,a4]@16 ~@13]/3", // Dm Gbm
  T: "[~@3 [c4,f4,a4]@15 ~ [c4,f4,a4]@2 ~@2 [c4,f4,a4]@5 ~@3 [c4,f4,a4]@5 ~@3 [d4,f4,a4]@25]/2", // F Dm
  U: "~@4 [c4,f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5 ~@3", V: "[c4,f4,a4]@5 ~@3 [d4,f4,a4]@24", W: "[c4,f4,a4] ~@7",
  X: "~@7 [c4,f4,a4]@25", Y: "[~@3 e4@12 ~@3 c4@3 ~ c4@5 ~@3 c4@4 bb3@2 c4@2 [c4,f4,a4]@26, ~ [c4,g4]@6 ~@25]/2",
  Z: "[~@2 [c4,e4,g4]@13 ~@3 c4@3 ~ c4@4 ~@4 c4@4 bb3@2 c4@2 [c4,f4,a4]@26]/2", // C F
  AA: "[~@3 [e4,g4]@12 ~@3 c4@3 ~@2 c4@5 ~@3 c4@3 ~ bb3@2 c4@3 ~@24, ~@2 c4@13 ~@49]/2", // Em
  AB: "[~@8 [bb3,d4]@31 ~ [a3,c4]@28 ~@4 [g3,bb3]@31 ~ [g3,bb3]@31 ~ [bb3,d4]@31 ~ [a3,c4]@24]/6", // Bb Am Gm Bb Am
  AC: "[~@8 [g3,bb3]@31 ~ [g3,bb3]@31 ~ [bb3,d4]@31 ~ [a3,c4]@27 ~@5 [g3,bb3]@31 ~ [bb3,d4,f4]@27 ~@5 [bb3,d4]@31 [a3,c4]@25]/8", // Gm Bb Am Gm Bb Am
  AD: "[~@7 [d4,f4,a4]@30 ~@2 [d4,gb4,a4]@32 [d4,f4,a4]@25]/3", // Dm D Dm
  AE: "~@5 [c4,f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5 ~@2", // F
  AF: "[~ [c4,f4]@5 ~@3 [d4,f4,a4]@26 ~@2 [c4,f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5 ~@2, ~ a4@3 ~@60]/2", // F5 Dm F
  AG: "[~@2 [f4,a4]@4 ~@4 [f4,a4]@25 ~@3 [c4,f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5 ~, ~ c4@5 ~@3 d4@25 ~@30]/2", // F
  AH: "[~@2 [c4,f4,a4]@5 ~@3 [d4,f4,a4]@26 ~@2 [c4,f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5 ~]/2", // F Dm F
  AI: "[~@3 c4@5 ~@3 [d4,f4,a4]@26 ~@2 [c4,f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5, ~ f4@2 ~@29, ~@3 a4@3 ~@58]/2", // Dm F
  AJ: "[~@3 [c4,f4]@5 ~@3 [d4,f4,a4]@25 ~@3 [c4,f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5, ~@3 a4@3 ~@58]/2", // F5 Dm F
  AK: "[~@3 [c4,f4]@5 ~@3 [d4,f4,a4]@25 ~@4 [c4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@4, ~@3 a4@3 ~@33 f4@15 ~@10]/2", // F5 Dm F
  AL: "[~@4 [c4,f4,a4]@4 ~@4 [d4,f4,a4]@25 ~@3 [c4,f4,a4]@15 ~ [c4,f4,a4]@2 ~@2 [c4,f4,a4]@4]/2", // F Dm F
  AM: "[~@4 [c4,f4,a4]@4 ~@4 [d4,f4,a4]@25 ~@4 [f4,a4]@15 ~ [c4,f4,a4]@3 ~ [c4,f4,a4]@5 ~@3 [c4,f4]@5 ~@3 [d4,f4,a4]@26 ~@2 [c4,f4,a4]@15 ~ [c4,f4,a4]@2 ~@2 [c4,f4,a4]@3, ~@40 c4@15 ~@14 a4@3 ~@56]/4", // F Dm F F5 Dm F
  AN: "[~@5 [c4,f4]@5 ~@3 [d4,f4,a4]@26 ~@2 [c4,f4,a4]@15 ~@2 [c4,f4,a4]@2 ~@2 [c4,f4,a4]@5 ~@3 [c4,f4,a4]@5 ~@6 g4@99 ~@12, ~@5 a4@3 ~@71 g3@101 ~@12, ~@80 [bb3,d4]@101 ~@11]/6", // F5 Dm F Bb
})).s("gm_epiano1").gain(0.17).pan(0.3)

// other · pad poly
const pad_poly = note(`<
  ~@10 A ~@7 A ~@7 B ~@15 C D ~@6 E@2 ~@6 F@2 ~@30 G H ~@6 I J ~@22 K L ~@6 M N ~@6 O P ~@6 Q R ~@3
>`.pickRestart({
  A: "~@4 bb4 [d5,f5] d5 [f5,bb5] f5 [bb5,d6] bb5 [d6,f6] d6 [f6,bb6] f6 [f6,bb6] bb6 [d6,f6] f6 [bb5,d6] d6 [f5,bb5] bb5 [d5,f5] f5 [bb4,d5] d5@2 bb4@2 ~@2", // Dm Bb5 Bb Dm Bb5 Dm Bb Bb5 …
  B: "~@5 bb4 d5 [d5,f5] f5 [f5,bb5] bb5 [bb5,d6] d6 [d6,f6] f6 [f6,bb6] bb6 [f6,bb6] f6 [d6,f6] d6 [bb5,d6] bb5 f5 [f5,bb5] [d5,f5] d5 d5@2 ~ bb4@2, ~@27 bb4 ~@4", // Dm Bb5 Bb Dm Bb5 Dm Bb Bb5 …
  C: "~@8 bb4 d5 [d5,f5] f5 [f5,bb5] bb5 [bb5,d6] d6 [d6,f6] f6 [f6,bb6] bb6 [f6,bb6] f6 [d6,f6] d6 [bb5,d6] bb5 [f5,bb5] f5 [d5,f5] d5 d5@2, ~@30 bb4 ~", // Dm Bb5 Bb Dm Bb5 Dm Bb Bb5 …
  D: "bb4 ~@15",
  E: "[~@9 bb4 [d5,f5] d5 [f5,bb5] f5 [bb5,d6] bb5 [d6,f6] d6 [f6,bb6] f6 [f6,bb6] bb6 [d6,f6] f6 [bb5,d6] d6 [f5,bb5] bb5 [d5,f5] f5 [bb4,d5] d5@2 bb4@2 ~@29]/2", // Dm Bb5 Bb Dm Bb5 Dm Bb Bb5 …
  F: "[~@9 bb4 d5 [d5,f5] f5 [f5,bb5] bb5 [bb5,d6] d6 f6 [d6,f6] [f6,bb6] bb6 [f6,bb6] f6 d6 [d6,f6] [bb5,d6] bb5 f5 [f5,bb5] [d5,f5] d5 d5@2 bb4@2 ~@29, ~@31 bb4 ~@32]/2", // Dm Bb5 Bb Dm Bb5 Dm Bb Bb5 …
  G: "~@10 bb4 d5 [d5,f5] f5 bb5 [f5,bb5] d6 [bb5,d6] f6 [d6,f6] bb6 [f6,bb6] f6 [f6,bb6] d6 [d6,f6] bb5 [bb5,d6] f5 [f5,bb5] d5 [d5,f5]", // Dm Bb5 Bb Dm Bb5 Dm Bb Bb5 …
  H: "bb4 d5@2 bb4@2 ~@27",
  I: "~@12 [bb4,d5] f5 [d5,f5] bb5 [f5,bb5] d6 [bb5,d6] f6 [d6,f6] bb6 [f6,bb6] f6 [f6,bb6] d6 [d6,f6] bb5 [bb5,d6] f5 [f5,bb5] d5", // Bb Dm Bb5 Bb Dm Bb5 Dm Bb …
  J: "[d5,f5] bb4 d5@2 bb4@2 ~@26", // Dm
  K: "~@13 bb4 d5 [d5,f5] f5 [f5,bb5] bb5 [bb5,d6] d6 [d6,f6] f6 [f6,bb6] bb6 [f6,bb6] f6 d6 [d6,f6] [bb5,d6] bb5 f5", // Dm Bb5 Bb Dm Bb5 Dm Bb
  L: "[f5,bb5] [d5,f5] d5 d5@2 ~ bb4@2 ~@24, ~@3 bb4 ~@28", // Bb5 Dm
  M: "~@15 bb4 [d5,f5] d5 [f5,bb5] f5 [bb5,d6] bb5 [d6,f6] d6 [f6,bb6] f6 [f6,bb6] bb6 [d6,f6] f6 [bb5,d6] d6", // Dm Bb5 Bb Dm Bb5 Dm Bb
  N: "[f5,bb5] bb5 [d5,f5] f5 [bb4,d5] d5@2 bb4@2 ~@23", // Bb5 Dm Bb
  O: "~@16 bb4 [d5,f5] d5 [f5,bb5] f5 [bb5,d6] bb5 [d6,f6] d6 [f6,bb6] f6 [f6,bb6] bb6 [d6,f6] f6 [bb5,d6]", // Dm Bb5 Bb Dm Bb5 Dm Bb
  P: "d6 [f5,bb5] bb5 [d5,f5] f5 [bb4,d5] d5@2 bb4@2 ~@22", // Bb5 Dm Bb
  Q: "~@18 [bb4,d5] f5 [d5,f5] bb5 [f5,bb5] d6 [bb5,d6] f6 [d6,f6] bb6 [f6,bb6] f6 [f6,bb6] d6", // Bb Dm Bb5 Bb Dm Bb5
  R: "[d6,f6] bb5 [bb5,d6] f5 bb5 [d5,f5] f5 [bb4,d5] d5@3 bb4@3 ~@18", // Dm Bb Dm Bb
})).s("gm_pad_poly").gain(0.15)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@2 A@2 ~@2 B@3 ~@2 C D C E C D F ~@16 G@2 ~@14 H I@4 J@8 K@7 L@2 M N O ~@3 P Q ~@10 R@3 ~@2 S@2 T@2 U@2 V W@3 V W@3 V
  X@6 ~@7 Y Z AA AB@2 Z AC AD AE AF AC AG@2 AH AI AJ AK AL AI AM@2 AN AO AP ~@4
>`.pickRestart({
  A: "[~ c6@4 bb5 c6 a5 bb5 a5 f5 d5 c5 bb4 c5 a4@9 ~@8]/2", B: "[~@23 a5@2 bb5@2 c6@2 d6@2 a5@36 ~@29]/3",
  C: "~@4 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@3 d5 ~ d5 ~ d5@2 ~@2 a4 ~ a4 ~",
  D: "a4@2 ~@2 f4 ~ f4 ~ f4 ~@3 d4 ~ d4 ~ d4 ~@3 a3 ~@3 a3@2 bb3@2 a3@2 ~@2", E: "a4@2 ~@2 a4@2 f4 ~@3 f4 ~ d4@16 ~@4",
  F: "~@4 a5 ~ a5 ~ a5 ~@3 f5 ~ f5 ~ f5@2 ~@2 d5 ~ d5 ~ d5 ~@3 c6@4",
  G: "[~@11 f5@7 ~ a5@2 f5@2 g5@2 a5@2 c6 ~ c6@2 d6@2 ~@2 c7 ~ c7@2 d7@2 ~@23]/2", H: "~@29 c6 ~ c6",
  I: "[~ d6 ~@3 bb5@32 a5@16 bb5@8 c6@8 ~ a5@23 bb5@5 ~ c6 ~ g5@27, ~@50 bb5 ~@13]/4",
  J: "[~@6 bb5@31 a5@16 bb5@8 c6@8 ~ a5@23 bb5@5 ~ c6 ~ g5@27, ~@50 bb5 ~@13]/4",
  K: "[~@6 bb5@32 a5@16 bb5@8 c6@8 a5@60 ~@9 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@3 d5 ~ d5 ~ d5@2 ~@2 a4 ~ a4 ~ a4@2 ~@2 f4 ~ f4 ~ f4 ~@3 d4 ~ d4 ~ d4 ~@3 a3 ~@3 a3@2 bb3@2 a3@2 ~@6 a5 ~ a5 ~ a5 ~@3 f5 ~@2 f5 ~ f5@2 ~@2 d5 ~ d5 ~]/7",
  L: "[d5 ~@3 a4 ~ a4 ~ a4@2 ~@2 a4@2 f4 ~@3 f4 ~ d4@16 ~@8 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@3 d5 ~ d5 ~]/2",
  M: "d5@2 ~@2 a4 ~ a4 ~ a4@2 ~@2 f4 ~ f4 ~ f4 ~@3 d4 ~ d4 ~ d4 ~@3 a3 ~@3",
  N: "a3@2 bb3@2 a3@2 ~@6 a5 ~ a5 ~ a5 ~@3 f5 ~ f5 ~ f5@2 ~@2 d5 ~ d5 ~", O: "d5 ~@2 c6@5 ~@24", P: "~@14 a3 bb3",
  Q: "c4 bb3 a3 bb3 c4 bb3 a3 bb3 ~@8", R: "[~@31 a5@2 bb5@2 c6@2 d6@2 a5@49 ~@8]/3",
  S: "[~@8 f4@2 a4@2 c5@2 ~ a4@2 f4@2 e4@2 f4@2 a4@2 c5@2 a4@2 f4@2 ~ f4@2 a4@2 c5@2 ~@2 f4@2 a4@2 c5@2 ~ a4@2 f4@2 e4@2 ~ e4@2 d4@2 d4@6, ~@7 e4@2 ~@22 e4@2 ~@6 e4@2 ~@12 f4@2 ~@9]/2",
  T: "[~@8 f4@2 a4@2 c5@2 ~ a4@2 f4@2 e4@2 f4@2 a4@2 c5@2 a4@2 f4@2 e4@2 f4@2 a4@2 c5@2 e4@2 f4@2 a4@2 c5@2 a4@2 f4@2 e4@2 f4@2 e4@2 d4@2 d4@4 c6, ~@7 e4@2 ~@55]/2",
  U: "[~ c6 ~ d6 ~@3 bb5@32 a5@16 ~ bb5@8]/2", V: "c6 a5@3", W: "[bb5@5 c6 bb5@2 g5@29 ~@3 bb5@32 a5@16 bb5@8]/3",
  X: "[bb5@5 c6 bb5@2 g5@29 ~@3 bb5@31 a5@16 bb5@8 c6@8 a5@59 ~@30]/6",
  Y: "~@14 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@3 d5 ~",
  Z: "d5 ~ d5@2 ~@2 a4 ~ a4 ~ a4@2 ~@2 f4 ~ f4 ~ f4 ~@3 d4 ~ d4 ~ d4 ~@3 a3 ~",
  AA: "~@2 a3@2 bb3@2 a3@2 ~@6 a5 ~ a5 ~ a5 ~@3 f5 ~ f5 ~ f5@2 ~@2 d5 ~",
  AB: "[d5 ~ d5 ~@3 a4 ~ a4 ~ a4@2 ~@2 a4@2 f4 ~@3 f4 ~ d4@16 ~@8 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@3 d5 ~]/2",
  AC: "~@3 a3@2 bb3@2 a3@2 ~@6 a5 ~ a5 ~ a5 ~@3 f5 ~ f5 ~ f5@2 ~@2 d5", AD: "~ d5 ~ d5 ~@3 c6@5 ~@20",
  AE: "~@15 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@3 d5",
  AF: "~ d5 ~ d5@2 ~@2 a4 ~ a4 ~ a4@2 ~@2 f4 ~ f4 ~ f4 ~@3 d4 ~ d4 ~ d4 ~@3 a3",
  AG: "[~ d5 ~ d5 ~@3 a4 ~ a4 ~ a4@2 ~@2 a4@2 f4 ~@3 f4 ~ d4@16 ~@8 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@3 d5]/2",
  AH: "~@2 d5 ~ d5@2 ~@2 a4 ~ a4 ~ a4@2 ~@2 f4 ~ f4 ~ f4 ~@3 d4 ~ d4 ~ d4 ~@3",
  AI: "a3 ~@3 a3@2 bb3@2 a3@2 ~@6 a5 ~ a5 ~ a5 ~@3 f5 ~ f5 ~ f5@2 ~@2", AJ: "d5 ~ d5 ~ d5 ~@3 c6@5 ~@19",
  AK: "~@16 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@3",
  AL: "d5 ~ d5 ~ d5@2 ~@2 a4 ~ a4 ~ a4@2 ~@2 f4 ~ f4 ~ f4 ~@3 d4 ~ d4 ~ d4 ~@3",
  AM: "[d5 ~ d5 ~ d5 ~@3 a4 ~ a4 ~ a4@2 ~@3 a4@2 f4 ~@3 f4 ~ d4@16 ~@8 a5 ~ a5 ~ a5@2 ~@2 f5 ~ f5 ~ f5 ~@2]/2",
  AN: "~ d5 ~ d5 ~ d5@2 ~@2 a4 ~ a4 ~ a4@2 ~@2 f4 ~ f4 ~ f4 ~@3 d4 ~ d4 ~ d4 ~@2",
  AO: "~ a3 ~@3 a3@2 bb3@2 a3@2 ~@6 a5 ~ a5 ~ a5 ~@3 f5 ~ f5 ~ f5@2 ~", AP: "~ d5 ~@2 d5!2 ~@3 c6@5 ~@18",
})).s("gm_string_ensemble_1").gain(0.2)

// chords · synth strings 2
const synth_strings_2 = note(`<
  ~@11 A@8 ~@8 B@2 C@2 D@4 ~@8 E F E F E F E F G H@8 I@8 J@2 K@4 L@2 ~@7 M N@2 O@4 P@2 ~@7 Q@8 R@8 S T@4 U@6 V@8 W@2 X@6
  Y@6 ~@3
>`.pickRestart({
  A: "[[g3,bb3,d4]@25 ~@3 [f3,a3,c4]@34 ~@2]/2", B: "[~@2 [bb3,d4,f4]@26 ~@2 [g3,c4,e4]@33 ~]/2",
  C: "[~@2 [bb3,d4,f4]@26 ~@3 [c4,e4]@33, ~@30 g3@33 ~]/2", D: "[~@3 [bb3,d4,f4]@26 ~@2 [g3,c4,e4]@33]/2",
  E: "~@5 [bb3,d4,f4]@25 ~@2", F: "~ [g3,c4,e4]@31", G: "~@3 g3@13, ~@5 [bb3,d4]@27",
  H: "[~@3 [f3,a3]@15 ~ [g3,bb3,d4]@31 ~ [g3,bb3,d4]@15 ~ [f3,a3]@15 ~ [g3,bb3,d4]@31 ~ g3@13, ~@5 c4@31 ~@97 c4@31 ~@65 [bb3,d4]@27]/8", // F Gm F Gm Bb
  I: "[~@6 [f3,a3]@30 ~@2 [g3,bb3,d4]@62 ~@2 [g3,bb3,d4]@32 [f3,a3,c4]@29 ~@3 g3@32 ~ gb3@31 ~ [g3,bb3,d4]@25, ~@5 c4@31 ~@130 [a3,c4]@64 ~@26]/8", // F Gm F Gm Am
  J: "[~@3 [f3,a3,c4]@34 ~@2 [g3,bb3,d4]@25]/2", K: "[~@2 [f3,a3,c4]@17 ~ [g3,bb3,d4]@12]/2",
// … 288 more lines

More by Michael George