Strudelify

Smiling Phases

Traffic

KeyC minorTempo103 bpm
0:00/0:00
// Smiling Phases — Traffic
// 103 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 15, 4/4 at bar 16) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 "CLAVINET" clavinet (copy of ch 1 "CLEAN GTR" electric guitar clean)
// note: Full arrangement: all 63 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(103/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 · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A@3 B C@3 D E@2 F G H I J K L M N O L P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL L AM AN AO@3 B AP@5
  AQ@4 AR AS@2
>`.pickRestart({
  A: "[~@10 d4@2 ~@2 d4 eb4@2 ~@3 eb4 ~ [f4,bb4]@2 ~@2 e4@2 ~@8 f4 ~ [g4,c5]@2 ~@4 bb4@3 ab4, ~@8 bb3@9 d4@2 ~@2 d4@3 c4@6 c4@4 c4@6 ~@8, ~@12 f4@6 bb3@6 ~@4 g4@5 g4@2 ~@7 g4@5 ~, ~@31 f4@5 ~ e4@3 eb4@8]/3", // Bb5 C5
  B: "~@4 ab4 ~ bb4 ~@5 a4@2 ~ f4, g4 eb4@3 c4@3 c4, ~ bb4@3 ~ g4@3 ~@2 f4@5 ~",
  C: "[~ [f4,bb4] ~ [f4,bb4] bb4 ~ c4@2 ~@4 c5@2 ~ c5 ~ [ab4,db5] ~ [ab4,db5]!2 ~ ab4@2 ~ [ab4,c5]@15 [eb3,bb3,eb4]@4 [g4,bb4,eb5]@2 ~@2, ~@4 f4@4 eb4@6 eb4@7 ~@3 eb4@16 ~@8, ~@5 a4@3 ~@2 ab4@7 ~@4 c5@3 ~@24]/3", // Bb5 Db5 Ab Eb5 Eb
  D: "[eb3,ab3,eb4]@4 [eb4,ab4,c5]@2 c5!2 ~@4 [g4,bb4,eb5]@2 c5 ~, ~@4 [eb3,bb3,eb4]@3 ~", // Ab5 Ab Eb Eb5
  E: "[eb3,ab3,eb4]@4 [eb4,ab4,c5]@2 c5!2 ~@4 [g4,bb4,eb5]@2 c5!2, ~@4 [eb3,bb3,eb4]@3 ~", // Ab5 Ab Eb Eb5
  F: "eb4@3 ~ [eb4,ab4,c5]@2 c5!2 [f3,c4]@4 [a4,c5,f5] ~@3, [eb3,ab3]@3 ~@5", // Ab F5 F Ab5
  G: "[f3,bb3]@4 [f4,bb4,d5] ~@7 [a4,c5,f5] ~@3, ~@4 [f3,c4]@3 ~", // Bb5 Bb F F5
  H: "[f3,bb3]@4 [f4,bb4,d5] ~@3 [f3,c4]@4 [a4,c5,f5] ~@3", // Bb5 Bb F5 F
  I: "~@4 [f4,bb4,d5] ~@3 [f3,c4]@4 [a4,c5,f5]@2 ~@2, [f3,bb3]@3 ~@5", // Bb F5 F Bb5
  J: "[g2,d3,b3,d4,g4]@3 ~ [g2,d3,b3,d4,g4]@3 ~ [g2,d3,b3,d4,g4]@3 ~ [g2,d3,b3,d4,g4]@2 ~@2", // G
  K: "[c3,g3,e4,g4,c5]@3 ~ [c3,g3,e4,g4,c5]@4 [c3,g3]@2 [e4,g4,c5]@2 ~@2 [eb4,gb4,b4]@2, ~@3 [b2,gb3]", // C C5 C B B5
  L: "[bb2,f3] ~ [bb2,f3]@2 [d4,ab4,bb4]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 [d4,ab4,bb4]@2 ~@2", // Bb5 Bb7 Bb5 Bb7
  M: "[bb2,f3] ~ [bb2,f3]@2 [d4,ab4,bb4]@3 ~ [bb2,f3]@2 [bb2,f3]@2 [d4,ab4,bb4]@2 ~@2", // Bb5 Bb7 Bb5 Bb7
  N: "[eb3,bb3] ~ [eb3,bb3]@2 [g4,bb4,eb5]@2 ~@2 [eb3,bb3] ~ [eb3,bb3]@2 [g4,bb4,eb5]@2 ~@2", // Eb5 Eb Eb5 Eb
  O: "[eb3,bb3] ~ [eb3,bb3]@2 [g4,bb4,eb5]@3 ~ [eb3,bb3]@2 [eb3,bb3]@2 [g4,bb4,eb5]@2 ~@2", // Eb5 Eb Eb5 Eb
  P: "[bb2,f3] ~ [bb2,f3]@2 [d4,ab4,bb4]@2 ~@2 [d4,f4,bb4]@3 [bb3,d4,f4]@3 [d4,f4,bb4]@2", // Bb5 Bb7 Bb
  Q: "[bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~ [ab3,db4,f4]@3 ~ [ab3,db4,f4]@3 ~", // Eb Db
  R: "[gb3,b3,eb4]@3 ~ [gb3,b3,eb4]@3 ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@3 ~", // B Ab
  S: "~@2 d4@2 ~@2 d4 eb4@2 ~@3 eb4 ~ [f4,bb4]@2, bb3@9 d4@2 ~@2 d4@3, ~@2 f4@3 bb3@3", // Bb5
  T: "~@2 e4@2 ~@8 f4 ~ [g4,c5]@2, c4@3 c4@2 c4@3, ~@4 g4@5 g4@2 ~@5, ~@7 f4@5 ~ e4@3", // C5
  U: "~@4 bb4@3 ab4 ~@4 ab4 ~ bb4 ~, eb4@9 bb4@3 ~ g4@3, ~@2 g4@5 ~ g4@2 eb4@6",
  V: "~@4 a4@2 ~ f4 ~ [f4,bb4] ~ [f4,bb4] bb4 ~ c4@2, c4@6 c4@3 ~@4 a4@3, ~@2 f4@5 ~@5 f4@4", // Bb5
  W: "~@4 c5@2 ~ c5 ~ db5@2 ~ db5 ~ ab4@2, eb4@6 eb4@7 ~@3, ~@2 ab4@10 ~ c5@3", X: "~ [ab4,c5]@15, eb4@15 ~",
  Y: "[eb3,bb3]@4 [g4,bb4,eb5]@2 ~@2 [eb3,ab3,eb4]@4 [eb4,ab4,c5]@2 c5!2", // Eb5 Eb Ab5 Ab
  Z: "~@4 [g4,bb4,eb5]@2 c5 ~ [eb3,ab3,eb4]@4 [eb4,ab4,c5]@2 c5!2, [eb3,bb3,eb4]@3 ~@5", // Eb Ab5 Ab Eb5
  AA: "~@4 [g4,bb4,eb5]@2 c5!2 [eb3,ab3,eb4]@4 [eb4,ab4,c5]@2 c5!2, [eb3,bb3,eb4]@3 ~@5", // Eb Ab5 Ab Eb5
  AB: "~@4 [g4,bb4,eb5]@2 c5!2 eb4@3 ~ [eb4,ab4,c5]@2 c5!2, [eb3,bb3,eb4]@3 ~ [eb3,ab3]@3 ~", // Eb Ab Eb5 Ab5
  AC: "[f3,c4]@4 [a4,c5,f5] ~@3 [f3,bb3]@4 [f4,bb4,d5] ~@3", // F5 F Bb5 Bb
  AD: "~@4 [a4,c5,f5] ~@3 [f3,bb3]@4 [f4,bb4,d5] ~@3, [f3,c4]@3 ~@5", // F Bb5 Bb F5
  AE: "[f3,c4]@4 [a4,c5,f5] ~@7 [f4,bb4,d5] ~@3, ~@4 [f3,bb3]@3 ~", // F5 F Bb Bb5
  AF: "[f3,c4]@4 [a4,c5,f5]@2 ~@2 [g2,d3,g3,b3,d4,g4]@3 ~ [g2,d3,g3,b3,d4,g4]@3 ~", // F5 F G
  AG: "[g2,d3,g3,b3,d4,g4]@3 ~ [g2,d3,g3,b3,d4,g4]@2 ~@2 [c3,g3,c4,e4,g4,c5]@3 ~ [c3,g3,c4,e4,g4,c5]@4", // G C
  AH: "[c3,g3,c4]@2 [e4,g4,c5]@2 [b2,gb3,b3]@2 [eb4,gb4,b4]@2 [bb2,f3] ~ [bb2,f3]@2 [d4,ab4,bb4]@2 ~@2", // C5 C B5 B Bb5 Bb7
  AI: "[bb2,f3] ~ [bb2,f3]@2 [d4,ab4,bb4]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 [d4,ab4,bb4]@3 ~", // Bb5 Bb7 Bb5 Bb7
  AJ: "[bb2,f3]@2 [bb2,f3]@2 [d4,ab4,bb4]@2 ~@2 [eb3,bb3] ~ [eb3,bb3]@2 [g4,bb4,eb5]@2 ~@2", // Bb5 Bb7 Eb5 Eb
  AK: "[eb3,bb3] ~ [eb3,bb3]@2 [g4,bb4,eb5]@2 ~@2 [eb3,bb3] ~ [eb3,bb3]@2 [g4,bb4,eb5]@3 ~", // Eb5 Eb Eb5 Eb
  AL: "[eb3,bb3]@2 [eb3,bb3]@2 [g4,bb4,eb5]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 [d4,ab4,bb4]@2 ~@2", // Eb5 Eb Bb5 Bb7
  AM: "[d4,f4,bb4]@3 [bb3,d4,f4]@3 [d4,f4,bb4]@2 [bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~", // Bb Eb
  AN: "[ab3,db4,f4]@3 ~ [ab3,db4,f4]@3 ~ [gb3,b3,eb4]@3 ~ [gb3,b3,eb4]@3 ~", // Db B
  AO: "[[ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@3 ~@3 d4@2 ~@2 d4 eb4@2 ~@3 eb4 ~ [f4,bb4]@2 ~@2 e4@2 ~@8 f4 ~ [g4,c5]@2 ~@4 bb4@3 ab4, ~@8 bb3@9 d4@2 ~@2 d4@3 c4@6 c4@4 c4@6 ~@8, ~@12 f4@6 bb3@6 ~@4 g4@5 g4@2 ~@7 g4@5 ~, ~@31 f4@5 ~ e4@3 eb4@8]/3", // Ab Bb5 C5
  AP: "[~ [f4,bb4] ~ [f4,bb4] bb4 ~ c4@2 ~@4 c5@2 ~@2 c5 db5@2 ~ db5 c5 [eb4,ab4]@2 ~@4 d5@2 ~@2 d5 eb5@3 [ab4,eb5] [bb4,d5]@3 ~@12 f4 ~ g4@2 ~@12 f4 ~ g4@2 ~@7 f4, ~@4 f4@4 eb4@5 ~ eb4@7 ~@3 f4@5 ~ f4@6 ~@4 c4@4 g4@5 g4@3 ~@8 g4@5 g4@3 ~@8 g4@4, ~@5 a4@3 ~@2 ab4@4 ~ ab4@6 ~@5 bb4@4 ~ bb4@5 ~@6 e4@4 c4@4 c4@6 c4@5 ~ c4@4 c4@6 c4@5 ~ c4@2, ~@47 f4@5 ~ e4@3 ~@2 e4@5 f4@5 ~ e4@3 ~@2 e4@5 ~]/5", // Bb5 Ab5 Bb
  AQ: "[~@4 f4 ~ g4@2 ~@3 g4@3 e4 ~ g4@3 ~@3 e4 ~@4 g4@3 e4 ~ g4@3 ~@3 e4 ~@4 g4@3 e4 ~ g4@3 ~@3 e4 ~@4 c5@3 g4 ~, ~ g4@3 ~ e4@3 ~@2 e4@4 ~ e4@6 ~@5 e4@4 ~ e4@6 ~@5 e4@4 ~ e4@6 ~@5 e4@5 ~, ~@2 c4@6 c4@16 c4@16 c4@16 c4@7 ~, ~@2 c5 ~ c5 ~ c5 ~, ~@19 g4@5 ~@11 g4@5 ~@11 g4@5 ~@2 g4@3 ~@3]/4",
  AR: "[c4,e4,g4]@3 g4@2 g4 e4 eb4 ~@3 c5@3 g4 ~, ~@8 c4@7 ~, ~@10 e4@5 ~, ~@10 g4@3 ~@3", // C
  AS: "[[c4,e4,g4]@3 g4@2 g4 e4 eb4 [c4,e4,g4]@16 ~@8]/2", // C
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.4)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@7 A ~@8 B@2 C@2 B D ~@9 E ~@7 F B G C H B ~@18>".pickRestart({
  A: "~@15 c5", B: "~@7 [bb2,f3] ~@7 [bb2,f3]", C: "~@7 [eb3,bb3] ~@7 [eb3,bb3]", D: "~@7 [bb2,f3] ~@8",
  E: "~@7 c5 ~@8", F: "~@15 [bb2,f3]", G: "~@7 [bb2,f3] ~@7 [eb3,bb3]", H: "~@7 [eb3,bb3] ~@7 [bb2,f3]",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.4)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@6 A B C D E F G H I J K L M N O P Q R S ~@5 T@2 U V W X Y Z AA AB AC AD M AE AF AG AH AI@2 ~@4 AJ AK AL AM AN AO
  AP@4
>`.pickRestart({
  A: "~@8 eb2@4 ~@2 bb1 ~", B: "eb2 ~ eb2@3 ~@3 eb2@4 ~@2 bb1 ~", C: "eb2 ~ eb2@3 ~@3 eb2 ~ eb2@4 ~@2",
  D: "eb2 ~ eb2@3 ~ bb1 ~ eb2 ~ eb2@3 ~@2 bb1", E: "eb2 ~ eb2@4 c2@2 f2 ~ f2@4 c2 ~",
  F: "d2 ~ f2@3 ~ c2 ~ f2 ~ f2@3 ~ c2 d2", G: "f2 ~ f2@3 ~ c2 d2 f2 ~ f2@4 d2 f2",
  H: "f2 ~ f2@3 ~ c2 d2 f2 ~ f2@3 ~ f2 gb2", I: "g2@3 ~ g2@4 d2@3 ~ db2@3 ~", J: "c2@3 ~ c2@3 ~ c2@3 ~ b1@3 f1",
  K: "bb1@2 bb1@2 ~@3 f1 bb1@2 bb1@3 ~@2 f1", L: "bb1@2 bb1@3 ~@2 f1 bb1@2 bb1@2 ~@3 d2",
  M: "eb2@2 eb2@3 ~@2 bb1 eb2@2 eb2@3 ~@2 bb1", N: "eb2@2 eb2@3 ~@2 bb1 eb2@2 g1 ~ ab1@2 a1 ~",
  O: "bb1 ~ bb1@3 ~@2 f1 bb1@2 bb1@2 ~@3 f1", P: "bb1@2 bb1 ~ bb1 ~ bb1 ~ bb1@3 c2@3 d2@2",
  Q: "eb2@3 ~ eb2@3 ~ db2@3 ~ db2@3 ~", R: "b1@3 ~ b1@2 ~ b1 ab1 ~ ab1 ~ ab1 ~ ab1 ~", S: "bb1@11 ~@5",
  T: "eb2@4 ~@2 bb1 ~ eb2 ~ eb2@3 ~@3", U: "eb2 ~ eb2@4 ~@2 eb2 ~ eb2@3 ~ bb1 ~",
  V: "eb2 ~ eb2@3 ~@2 bb1 eb2 ~ eb2@4 c2@2", W: "f2 ~ f2@4 c2 ~ d2 ~ f2@3 ~ c2 ~",
  X: "f2 ~ f2@3 ~ c2 d2 f2 ~ f2@3 ~ c2 d2", Y: "f2 ~ f2@4 d2 f2!2 ~ f2@3 ~ c2 d2", Z: "f2 ~ f2@3 ~ f2 gb2 g2@3 ~ g2@4",
  AA: "d2@3 ~ db2@3 ~ c2@3 ~ c2@3 ~", AB: "c2@3 ~ b1@2 ~ f1 bb1@2 bb1@2 ~@3 f1",
  AC: "bb1@2 bb1@3 ~@2 f1 bb1@2 bb1@3 ~@2 f1", AD: "bb1@2 bb1@2 ~@3 d2 eb2@2 eb2@3 ~@2 bb1",
  AE: "eb2@2 g1 ~ ab1@2 a1 ~ bb1 ~ bb1@3 ~@2 f1", AF: "bb1@2 bb1@2 ~@3 f1 bb1@2 bb1 ~ bb1 ~ bb1 ~",
  AG: "bb1@3 c2@3 d2@2 eb2@3 ~ eb2@3 ~", AH: "db2@3 ~ db2@3 ~ b1@3 ~ b1@2 ~ b1",
  AI: "[ab1 ~ ab1 ~ ab1 ~ ab1 ~ bb1@11 ~@13]/2", AJ: "~@4 c2!4",
  AK: "c2@2 g1@2 bb1@2 b1@2 c2@2 c2@2 c2@2 c2 ~, b1 ~@15", AL: "c2 g1 bb1 b1 c2!4, b1 ~@15",
  AM: "c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2 ~, b1 ~@15", AN: "c2@2 c2@2 c2@2 c2 ~ c2@2 c2@2 c2@2 c2 b1, b1 ~@7 b1 ~@7",
  AO: "c2@2 c2@2 c2@2 c2 ~ c2@2 c2@2 c2@2 c2@2, ~@8 b1 ~@7",
  AP: "[c2 ~ c2@2 c2@2 c2 g1 c2@2 c2@4 g1 c2@2 g1 e1 ~ f1@2 gb1 g1 c2@2 c2@2 c2@2 g2 c3@2 g2 e2@2 f2@2 g2@2 c2@16 ~@8]/4",
})).s("gm_fretless_bass").gain(0.49)

// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  A@7 ~@3 B C@2 D E F G H I J K@2 L M N O P Q R@2 ~@4 S T U V@2 W H X Y Z@2 AA AB AC@4 AD@8 AE@4
>`.pickRestart({
  A: "[~@8 [d5,f5,bb5]@6 ~ [d5,f5,bb5]@7 [d5,f5,bb5] ~ [e5,g5,c6]@6 ~ [e5,g5,c6]@6 ~ [e5,g5,c6] ~ [eb5,g5,bb5]@7 [eb5,g5,bb5]@6 ~ [eb5,g5,bb5] ~ [f5,a5,c6]@6 ~ [f5,a5,c6]@6 ~ [f5,a5,c6] ~ [ab5,c6,eb6]@30 ~@10]/7", // Bb C Eb F Ab
  B: "~@8 [f5,a5,c6]@3 ~ [f5,a5,c6] ~@3", C: "[d5,f5,bb5]@3 ~ [d5,f5,bb5] ~@3 [f5,a5,c6]@3 ~ [f5,a5,c6] ~@3",
  D: "[d5,f5,bb5]@3 ~ [d5,f5,bb5] ~@5 [f5,a5,c6] ~@2 [f5,a5,c6] ~@2", E: "[d5,f5,b5]@15 ~",
  F: "[e5,g5,c6]@3 [eb5,gb5,b5]", G: "[d5,f5,bb5]@3 ~ [d5,f5,ab5,bb5]@3 ~@5 [d5,f5,ab5,bb5]@4",
  H: "~@4 [d5,f5,ab5,bb5]@3 ~@5 [d5,f5,ab5,bb5]@3 ~", I: "~@4 [eb5,g5,bb5]@3 ~@5 [eb5,g5,bb5]@3 ~",
  J: "~@4 [eb5,g5,bb5]@3 ~@5 [eb5,g5,bb5]@2 ~@2", K: "[[d5,f5,ab5,bb5]@24 [f5,bb5]@3 [f5,c6]@3 [f5,d6]@2]/2",
  L: "[g5,bb5,eb6]@7 ~ [f5,ab5,db6]@7 ~", M: "[eb5,gb5,b5]@7 ~ [c5,eb5,ab5]@7 ~",
  N: "[d5,f5,bb5]@6 ~ [d5,f5,bb5]@7 [d5,f5,bb5] ~", O: "[e5,g5,c6]@6 ~ [e5,g5,c6]@6 ~ [e5,g5,c6] ~",
  P: "[eb5,g5,bb5]@7 [eb5,g5,bb5]@6 ~ [eb5,g5,bb5] ~", Q: "[f5,a5,c6]@6 ~ [f5,a5,c6]@6 ~ [f5,a5,c6] ~",
  R: "[[ab5,c6,eb6]@7 ~]/2", S: "[f5,a5,c6]@3 ~ [f5,a5,c6]@3 ~ [d5,f5,bb5]!2 ~ [d5,f5,bb5] [d5,f5,bb5]@3 ~",
  T: "~@2 [f5,a5,c6] ~@2 [f5,c6]@2 ~ [d5,f5,bb5]!2 ~ [d5,f5,bb5] [d5,f5,bb5]@3 ~, ~@5 a5 ~@10", // F F5 Bb
  U: "[f5,a5,c6]@3 ~ [f5,a5,c6]@3 ~ [d5,f5,bb5]@3 ~ [d5,f5,bb5]@2 ~@2", // F Bb
  V: "[~@2 [f5,a5,c6] ~@2 [f5,a5,c6] ~@2 [d5,f5,b5]@16 [e5,g5,c6]@7 ~]/2", // F Bdim C
  W: "[e5,g5,c6]@3 ~ [eb5,gb5,b5]@3 ~ [d5,f5,bb5]@4 [d5,f5,ab5,bb5]@3 ~", // C B Bb Bb7
  X: "~@4 [d5,f5,ab5,bb5]@3 ~@5 [eb5,g5,bb5]@3 ~", Y: "~@2 [eb5,g5,bb5]@2 ~@2 [eb5,g5,bb5] ~",
  Z: "[~@4 [eb5,g5,bb5]@2 ~@2 [d5,f5,bb5]@23 ~]/2", AA: "[f5,bb5]@3 [f5,c6]@3 [f5,d6]@2 [g5,bb5,eb6]@7 ~",
  AB: "[f5,ab5,db6]@7 ~ [eb5,gb5,b5]@7 ~", // Db B
  AC: "[[c5,eb5,ab5]@7 ~ [d5,f5,bb5]@6 ~ [d5,f5,bb5]@7 [d5,f5,bb5] ~ [e5,g5,c6]@6 ~ [e5,g5,c6]@6 ~ [e5,g5,c6] ~ [eb5,g5,bb5]@7 [eb5,g5,bb5]@6 ~ [eb5,g5,bb5] ~ [f5,a5,c6]@6 ~ [f5,a5,c6]]/4", // Ab Bb C Eb F
  AD: "[~@6 [f5,a5,c6] ~ [ab5,c6,eb6]@15 ~ [bb5,d6,f6]@16 [c5,e5,g5]@30 ~@2 e5@8 f5@8 e5@8 f5@8 e5@8 f5@8 [g4,c5,e5]@8, ~@9 [g4,c5]@2 [g4,c5]@2 [g4,c5]@2 ~]/8", // F Ab Bb C C5
  AE: "[f5 e5 f5 e5 f5 [c5,e5,g5]@2 ~, ~ [g4,c5]@2 [g4,c5]@2 ~@3]/4", // C C5
})).s("gm_drawbar_organ").gain(0.24).pan(0.8)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@2 A@5 ~@3 B C@3 D E ~@10 F G H@2 ~@4 I@2 J K@3 ~@9 L@8 M@6>".pickRestart({
  A: "[~@8 [eb4,g4,bb4]@16 [f4,a4,c5]@16 [eb4,ab4,c5]@31 ~@9]/5", B: "~@2 [f4,a4] [e4,g4]",
  C: "[d4,f4]@2 [f4,a4] [e4,g4]", D: "[d4,f4]", E: "[c4,e4]@3 ~", F: "[eb4,g4,bb4]", G: "[f4,a4,c5]",
  H: "[[eb4,ab4,c5]@7 ~]/2", I: "[f4,a4] [e4,g4] [d4,f4]@2", J: "[f4,a4]@4 [e4,g4]@4 [d4,f4]@7 ~",
  K: "[[f4,a4]@4 [e4,g4]@4 [d4,f4]@15 ~ [c4,e4]@12 ~@12]/3", // F Em Dm C
  L: "[~@8 [eb4,g4,bb4]@16 [f4,a4,c5]@16 [eb4,ab4,c5]@16 [f4,bb4,d5]@16 [g4,c5,e5]@15 ~ [g4,c5]@15 ~ [g4,c5]@15 ~ [g4,c5]@8]/8", // Eb F Ab Bb C C5
  M: "[~@8 [g4,c5]@15 ~ [g4,c5]@15 ~ [g4,c5]@16 [g4,c5]@15 ~ [e4,g4,c5]@16 ~@8]/6", // C5 C
})).s("gm_string_ensemble_1").gain(0.25).pan(0.2)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@15 A B C D E F G H I J ~@13 K L M N@2 O P Q R S@2 ~@14>".pickRestart({
  A: "e5@3 ~ c5@3 ~ d5@2 g4 ~ c5@2 b4@2", B: "bb4@3 ~ f5@3 ~ f5@6 ~@2", C: "bb4@2 g5 f5 bb5 g5 f5@2",
  D: "bb4@2 f5 eb5@4 eb5", E: "bb4@3 ~ f5@2 eb5@2 bb5@2 g5 ~ f5 eb5 f5@2", F: "bb4@2 f4 ~ f5@3 ~ f5@7 ~",
  G: "bb4@4 g5@2 f5 ~ g5@2 ~ f5@5", H: "eb5@2 ~ eb5@5 db5@2 ~ db5@2 ~ db5@2", I: "b4@2 ~ b4@6 ~ ab4@2 ~ ab4@2 ~",
  J: "bb4@7 ~", K: "~@8 e5@3 ~ c5@3 ~", L: "d5@2 g4 ~ c5@2 b4@2 bb4@3 ~ f5@3 ~", M: "f5@3 ~ bb4@2 g5 f5",
  N: "[bb5@2 g5@2 f5@4 bb4@4 f5@2 eb5@8 eb5@2 bb4@3 ~ f5@2 eb5@2]/2", O: "bb5@2 g5 ~ f5 eb5 f5@2 bb4@2 f4 ~ f5@3 ~",
  P: "f5@7 ~ bb4@4 g5@2 f5 ~", Q: "g5@2 ~ f5@5 eb5@2 ~ eb5@5", R: "db5@2 ~ db5@2 ~ db5@2 b4@2 ~ b4@5",
  S: "[~@2 ab4@2 ~ ab4@2 ~ bb4@14 ~@10]/2",
})).s("gm_overdriven_guitar").gain(0.31).pan(0.8)

// other · flute
const flute = note("<A B C D E F ~@8 G H ~@6 I J K L M N O@2 ~@7 P@3 ~@5 Q R S T U V W X Y@7 Z AA ~>".pickRestart({
  A: "~@8 bb4@3 ~ f4@3 ~", B: "d5@7 ~ c5@3 ~ c5@2 d5@2", C: "e5@2 d5@2 c5@3 ~@5 bb4@3 ~, eb5 ~@15",
  D: "g5@7 ~ f5@4 f5@2 g5@2", E: "a5@2 g5@2 f5@3 ~ ab5@3 ~ eb5@3 ~", F: "c6@3 ~", G: "g4@15 ~", H: "g4@3 gb4",
  I: "g4@9 ~ ab4@2 a4@2 bb4@2", J: "b4@7 ~ ab4@7 ~", K: "bb4@4 f4@3 ~ d5@8",
  L: "c5@3 ~ c5@2 d5 ~ e5@2 d5@2 c5@4, ~@8 eb5 ~@7", M: "~@4 bb4@3 ~ g5@7 ~", N: "f5@3 g5 a5 g5 f5@2",
  O: "[ab5@4 eb5@3 ~ c6@21 ~@3]/2", P: "[~@8 g4@15 ~ g4@12 gb4@4 ~@8]/3", Q: "~ g4", R: "~@2 ab4@2 a4@2 bb4@2 b4@7 ~",
  S: "ab4@7 ~ bb4@4 f4@3 ~", T: "d5@8 c5@3 ~ c5@2 d5 ~", U: "e5@2 d5@2 c5@4 ~@4 bb4@3 ~, eb5 ~@15",
  V: "g5@7 ~ f5@6 g5@2", W: "a5 g5 f5@2 ~@2 eb5@2", X: "c5@4 ab4@3 ~@5 d5@4",
  Y: "[bb4@4 f4@3 ~ g4@11 ~ a4 c5 a4 ~ g4@14 ~@2 e5@10 a5@2 [eb5,e5] c5@16 ~@3 e5@10 ~ e5 d5 c5 a4 e4 g4@14 ~@2 a4@4 g4@2 e4 ~, ~@72 eb5 ~@31 ab4 ~@7]/7", // Emaj7
  Z: "g4@7 ~ a4@4 g4@2 e4 ~, ~@8 ab4 ~@7", AA: "g4@7 ~@9",
})).s("gm_flute").gain(0.38).pan(0.9)

// other · alto sax
const alto_sax = note("<A@6 B ~@17 C D C E F@2 ~@17 G@4 H@7 ~@5>".pickRestart({
  A: "[~@8 f4@15 ~ g4@15 ~ eb4@16 f4@16 ab4@21 [ab4,bb4] bb4 [ab4,bb4]]/6", B: "[ab4,bb4] ~@15", C: "bb4@15 ~",
  D: "c5@15 ~", E: "c5@7 ~", F: "[eb5@15 ~]/2", G: "[~@8 bb4@15 ~ c5@15 ~ bb4@15 ~ c5@8]/4",
  H: "[~@8 eb5@15 ~ f5@15 ~ g5@31 ~ g5@28 ~@12]/7",
})).s("gm_alto_sax").gain(0.33).pan(0.4)

// other · alto sax · soft notes · Absus2
const alto_sax_soft = note("<~@6 [~ [ab4,bb4]!3 ~@12] ~@56>").s("gm_alto_sax").gain(0.22).pan(0.4)

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

// drums · snare
const snare = s("sd").struct(`<
  ~ A B@2 C D E F@8 G H F@4 I H F J@2 K L ~ M H F@2 N F@4 O P F@4 Q R F S A@2 B T U V W O X F@4 S ~
>`.pickRestart({
  A: "~@5 x!2 ~@9", B: "~@2 x!2 ~@12", C: "~ x ~ x ~ x!2 ~@3 x ~@5", D: "~ x ~ x ~@2 x!2 ~@5 x ~ x", E: "~@3 x",
  F: "x!4", G: "x ~@3 x ~@2 x ~@8", H: "~ x!3", I: "x ~ x!6", J: "~@13 x!2 ~", K: "~@10 x!2 ~@4", L: "~@10 x!2 ~ x ~@2",
  M: "x ~@4 x!3 ~@8", N: "x ~@3 x ~@3 x ~@3 x ~ x!2", O: "x ~@3 x ~@3 x ~@3 x ~@2 x", P: "~ x!3 ~@8 x ~@3",
  Q: "x ~ x ~ x ~ x!2", R: "x!4 ~@2 x ~", S: "x!2 ~@2", T: "~@2 x!2 ~ x ~@10", U: "~ x ~@3 x ~@10",
  V: "~@2 x!2 ~@8 x ~@3", W: "x ~@3 x!2 ~@2 x ~@3 x ~@3", X: "~ x!3 ~ x!4 ~@3 x ~@3",
})).gain(0.44)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@3 A ~ B ~@17 C D ~@3 C ~@4 E ~@13 F ~@5 A ~@9>".pickRestart({
  A: "~ x ~@14", B: "~@5 x ~@8 x ~", C: "~@15 x", D: "x", E: "~@13 x ~@2", F: "~@7 x!2 ~@7",
})).gain(0.27)

// drums · low tom
const low_tom = s("lt").struct("<~@2 A@2 ~@2 B ~@8 C ~@10 D@2 ~ E ~@9 F ~@23>".pickRestart({
  A: "~@3 x ~@4", B: "~@5 x!3 ~@8", C: "~@14 x!2", D: "~@7 x", E: "~@13 x!3", F: "~@7 x ~@8",
})).gain(0.38)

// drums · hihat
const hihat = s("hh").struct("<A B@4 C D E F E G E@2 H ~@10 I@5 ~ J E K H J E@2 L ~@9 A B@5 M ~@9>".pickRestart({
  A: "~@3 x", B: "x!2 ~ x", C: "x!3 ~", D: "~@6 x!2", E: "x!4", F: "x ~ x ~ x!3 ~", G: "x ~ x!2 ~@2 x!2",
// … 38 more lines

More by Traffic