Strudelify
I'm In You cover art

1996

I'm In You

Peter Frampton

KeyC majorTempo100 bpm
0:00/0:00
// I'm In You — Peter Frampton
// 100 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 3 "OVERDRIVE" overdriven guitar (copy of ch 6 "OVERDRIVE" overdriven guitar)
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): OVERDRIVE.
setcpm(100/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 · "A.PIANO 1"
const piano = note(`<
  A@8 B@3 C D E F G H I J K@2 L M N O L P Q R@4 B@3 C D E F S H I J K@2 T U V W T U X Y Z AA AB AC AD AE AF@2 AG AH AG
  AI@5 AJ@3 C D E F G H AK J K@2 AL AM AN AO AL AM AP AQ AL AR AS AT@2 AU@3 AV AW AX@2
>`.pickRestart({
  A: "[~@10 [a3,e4,a4,c5]@2 [g3,d4,g4,b4]@2 [c4,f4,a4]@6 ~@6 [d4,g4,b4]@2 [e4,c5]@2 [d4,g4,b4]@6 [d4,g4,b4]@4 [d4,g4,b4]@2 [c4,f4,a4]@3 ~ [c4,e4,g4]@6 [c4,e4,g4]@4 [c4,e4,g4]@2 [c4,f4,a4]@4 [c4,e4,g4]@6 [c4,e4,g4]@4 [c4,e4,g4]@2 [a4,c5] ~ [d4,g4,b4] ~ [f3,c4,f4,a4]@6 ~@6 [d4,g4,b4]@2 [e4,a4,c5] ~ [d4,g4,b4]@6 ~@8 [b3,e4,g4]@2 ~@2 [f1,f2]@6 f1@4 ~@2 [f2,a3,d4,f4]@4, ~@14 f3@8 f3@7 ~ g3@12 ~@44 f3@7 ~ e3@8 e3@8 ~@8 [f2,a3,d4,f4]@6 ~@4, ~@20 a4@8 a4 ~@99, ~@20 [c4,f4]@4 [c4,f4]@5 ~@45 e4@2 ~@8 [c4,f4,a4]@9 ~@7 [d4,g4,b4]@6 [c4,f4,a4]@4 [a3,d4,f4]@8 ~@4 f1@6]/8", // Am G F G C G F C …
  B: "[g1@4 ~@2 [b3,e4,g4]@4 [e4,a4,c5] ~ [d4,g4,b4] ~ [c4,f4,a4]@8 ~@4 [d4,g4,b4]@2 [e4,a4,c5] ~ [d4,g4,b4]@6 ~@2 e3@4 [c4,f4,a4]@2 [b3,e4,g4]@4, g2@5 ~@6 [c4,f4,a4]@2 ~@5 [d4,g4,b4]@3 ~@3, [b3,e4,g4]@6 ~@8 f3@10 f3@13 ~@11, ~ g1@2 ~@9]/3", // Em Am G F G Am G F …
  C: "[f1,f2,a3,d4,f4]@3 f1@2 ~ [f2,a3,d4,f4]@2, ~@3 [f2,a3,d4,f4]@3 ~@2, ~@5 f1@3", // Dm
  D: "[g1,g2,b3,e4,g4]@6 [g1,g2,b3,e4,g4]@6 [b3,e4,g4]@3 ~", // Em
  E: "c3@2 ~@5 c3, c2, [g3,c4,e4,g4]@3 [g3,c4,e4,g4]@3 [g3,c4,e4,g4]@2, ~@2 c3@3 c3@2 ~", // C
  F: "c3 ~@2 [a3,c4,e4,a4], c2, [a3,c4,e4,a4]@3 [a3,c4,e4,a4]@3 ~@2, ~@2 c3@3 c3@3", // Am
  G: "[g3,a#3,d4,g4]@3 ~@4 g2, g1, g2@5 g2@2 ~, ~@3 [g3,a#3,d4,g4]@3 [g3,a#3,d4,g4]@2", // Gm
  H: "f2 ~@2 [f3,a3,c4,f4], f1, [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 ~@2, ~@2 f2@3 f2@3", // F
  I: "c3@2 ~@3 c3 [b1,b2,g3,b3,e4,g4]@2, c2@3 ~, [g3,c4,e4,g4]@3 [g3,c4,e4,g4]@3 ~@2, ~@2 c3@3 ~@3", // Em C
  J: "a2@2 ~@5 a2, a1, [g3,c4,e4,g4]@3 [g3,c4,e4,g4]@3 [g3,c4,e4,g4]@2, ~@2 a2@3 a2@2 ~", // C
  K: "[g2@4 ~@24 [f4,a4,c5,f5]@2 f2 ~, g1@15 f1@16 ~, [g4,a#4,d5,g5]@3 [g4,a#4,d5,g5]@3 [g4,a#4,d5,g5]@2 [f4,a4,c5,f5]@3 [f4,a4,c5,f5]@3 ~@2, ~@2 g2@3 g2@2 g2 ~@2 f2@3 f2@2 ~]/2", // F Gm F
  L: "d#2 ~@2 [c4,d#4,g#4,c5], d#1, [c4,d#4,g#4,c5]@3 [c4,d#4,g#4,c5]@3 ~@2, ~@2 d#2@3 d#2@3", // G#
  M: "f2 ~@2 [d4,f4,a#4,d5], f1, [d4,f4,a#4,d5]@3 [d4,f4,a#4,d5]@3 ~@2, ~@2 f2@3 f2@3", // A#
  N: "[c3,c4,e4,g4]@4 c3 ~@9 c3@2, c2, ~@3 [c4,f4,a4,c5]@3 [c4,f4,a4,c5]@2, ~@5 c3@2 ~", // C F
  O: "[c3,c4,e4,g4,c5]@4 [c4,f4,a4,c5] ~@7 [c4,e4,g4,c5]@2 c3 ~, c2@15 ~, ~@3 [c4,e4,g4,c5]@3 ~@2, ~@5 c3@2 ~", // C F C
  P: "f2@2 ~@5 f2, f1, [d4,f4,a#4,d5]@3 [d4,f4,a#4,d5]@3 [d4,f4,a#4,d5]@2, ~@2 f2@3 f2@2 ~", // A#
  Q: "g2@2 g2 g2@2 ~@2 g2, g1, [d4,g4,b4]@3 [e4,a4,c5]@3 [e4,a4,c5]@2, ~@5 g2@2 ~", // G Am
  R: "[g2@6 g2@4 [e4,a4] ~ [d4,g4,b4] ~ [c4,f4,a4]@6 ~@6 [d4,g4,b4]@2 [e4,a4,c5] ~ [d4,g4,b4]@6 ~@8 [b3,e4,g4]@2 ~@2 [f1,f2]@6 f1@4 ~@2 [f2,a3,d4,f4]@4, [g1,d4,g4,b4]@10 c5@2 ~@8 [c4,f4,a4]@9 ~@7 [d4,g4,b4]@6 [c4,f4,a4]@4 [a3,d4,f4]@8 ~@4 f1@6, ~@22 f3@7 ~ e3@8 e3@8 ~@8 [f2,a3,d4,f4]@6 ~@4]/4", // A5 G F G Am G Em F …
  S: "[g3,a#3,d4,g4]@3 [g3,a#3,d4,g4]@3 [g3,a#3,d4,g4]@2, g1", // Gm
  T: "[c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~ [c4,d#4,g#4] ~", // G#
  U: "[d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~", // A#
  V: "[c4,e4,g4] ~@5 [c4,f4,a4]@8 ~@2", W: "[c4,e4,g4,c5]@2 ~@2 [c4,f4,a4,c5] ~ [c4,f4,a4,c5]@3 ~ [c4,e4,g4,c5]@5 ~",
  X: "[d4,g4,b4]@6 [e4,g4,c5]@6 [e4,g4,c5]@3 ~", Y: "[d4,g4,b4]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@4",
  Z: "[d4,g4,b4]@5 ~ [e4,g4,c5]@3 ~ [e4,g4,c5] ~ [e4,g4,c5]@3 ~", // G C
  AA: "[d4,g4,b4] ~ [d4,g4] ~ g4 ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // G G5 G
  AB: "[f4,a#4,d5]@3 [f4,a4,c5]@5", AC: "[f4,a#4,c5]@3 [f4,a4,c5]@3 [f4,g4,c5]@2",
  AD: "[c4,e4,g4,c5]@5 ~ [d4,f4,a#4,c5]@6 [d4,f4,a#4,c5]@4", AE: "[c4,e4,g4,c5]@3 [d4,f4,a#4,c5]@3 [d4,f4,a#4,c5]@2",
  AF: "[g4,a#4,d5]@3 [f4,a4,c5]@5", AG: "[a4,c5,e5]@3 [g4,b4,d5]@5", AH: "[f4,a4,c5]@3 [g4,b4,d5]@5",
  AI: "[~@2 [f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@4 [e4,a4,c5]@2 [d4,g4,b4]@2 [c4,f4,a4]@6 ~@6 [d4,g4,b4]@2 [e4,a4,c5] ~ [d4,g4,b4]@6 ~@2 e3@4 [c4,f4,a4]@2 [b3,e4,g4]@2 ~@2 [f1,f2]@6 f1@4 ~@2 [f2,a3,d4,f4]@4, ~@36 [c4,f4,a4]@9 ~@7 [d4,g4,b4]@6 ~@4 [a3,d4,f4]@8 ~@4 f1@6, ~@38 f3@7 ~ e3@8 ~@16 [f2,a3,d4,f4]@6 ~@4]/5", // F Am G F G Am G F …
  AJ: "[g1@4 ~@2 [b3,e4,g4]@4 [e4,a4,c5] ~ [d4,g4,b4] ~ [c4,f4,a4]@8 ~@2 f3@2 [d4,g4,b4]@2 [e4,a4,c5] ~ [d4,g4,b4]@6 ~@2 e3@4 [c4,f4,a4]@2 [b3,e4,g4]@4, g2@5 ~@6 [c4,f4,a4]@2 ~@5 [d4,g4,b4]@3 ~@3, [b3,e4,g4]@3 ~@4 f3@5 ~@12, ~ g1@2 ~@9]/3", // Em Am G F G Am G F …
  AK: "c3@2 ~@3 c3 [b1,g3,b3,e4,g4]@2, c2@3 ~, [g3,c4,e4,g4]@3 [g3,c4,e4,g4]@3 ~@2, ~@2 c3@3 ~@3", // Em C
  AL: "[c4,d#4,g#4,c5] ~ [c4,d#4,g#4,c5] ~ [c4,d#4,g#4,c5] ~ [c4,d#4,g#4,c5] ~ [c4,d#4,g#4,c5] ~ [c4,d#4,g#4,c5] ~ [c4,d#4,g#4,c5] ~ [c4,d#4,g#4,c5] ~", // G#
  AM: "[d4,f4,a#4,c5] ~ [d4,f4,a#4,c5] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~", // A#
  AN: "[c4,e4,g4,c5] ~@5 [c4,f4,a4,c5]@4 [c4,f4,a4,c5] ~ [c4,f4,a4,c5]!2 [f4,a4,c5] ~, ~@7 c4", // C F
  AO: "[c4,e4,g4,c5]@2 ~@2 [c4,f4,a4,c5] ~ [c4,f4,a4,c5]@5 ~ [c4,f4,a4,c5]@4", // C F
  AP: "[e4,g4,c5,e5] ~@5 [f4,a4,c5,f5]@4 [f4,a4,c5,f5] ~ [f4,a4,c5,f5]!2 [f4,a4,c5] ~, ~@7 f5", // C F
  AQ: "[e4,g4,c5,e5]@2 ~@2 [f4,a4,c5,f5] ~ [f4,a4,c5,f5]@5 ~ [f4,a4,c5,f5]@4", // C F
  AR: "[d4,f4,a#4,c5] ~ [d4,f4,a#4,c5] ~ [d4,f4,a#4,d5] ~ [d4,f4,a#4,d5] ~ [d4,f4,a#4,d5] ~ [d4,f4,a#4,d5] ~ [d4,f4,a#4,d5] ~ [d4,f4,a#4,d5] ~", // A#
  AS: "[d4,g4,b4]@2 ~@4 [d4,a4,c5]@6 [d4,a4,c5]@3 ~", AT: "[d4,g4,b4]@2 ~@4 [d4,a4,c5]@5 ~ [d4,a4,c5]@3 ~",
  AU: "[[d4,g4,b4]@2 ~@4 [d4,a4,c5]@3 ~ [e4,a4,c5] ~ [d4,g4,b4] ~ [c4,f4,a4]@6 [f4,a4]@4 [f4,a4]@2 [d4,g4,b4]@2 [e4,a4,c5] ~ [d4,g4,b4]@6 [d4,g4,b4]@4 [d4,g4,b4]@2 [c4,f4,a4] ~ [b3,e4,g4]@4, ~@10 c4@3 ~@11]/3", // G D7 Am G F G Am G …
  AV: "[a3,d4,f4]@3 [a3,d4,f4]@3 [a3,d4,f4,a4]@2", AW: "[d4,f4,a4,c5] [f4,a4,c5,d5]", AX: "[g4,b4,d5,e5]/2",
})).s("gm_piano").gain(0.31).pan(0.6)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A@3 B@4 C D@3 E F G H I@2 J K L M N O P Q R S T U@3 V W@3 E X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AS AT AU@2 AV AW AX AY@4 AZ BA@3 BB BC G BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BU BW@3 BX BY
  BZ@2
>`.pickRestart({
  A: "[~@5 a2 g2 f2@3 f2@2 f2@2 f2 g2@3 g2@2 g2 g2@2 c2]/3",
  B: "[~@2 c2@2 c2@4 c2@2 g1@2 a1@2 c2@4 c2@2 c2@4 c2@2 a2@2 g2@2 f2@5 ~ f2@4 f2@2 g2@2 f2@2 e2@6 e2@4 e2@2 b1@2 e1@3 ~]/4",
  C: "f1@6 f1@6 f1@3 ~", D: "[g1@6 g1@3 ~ a2@2 g2@2 f2@5 ~ f2@4 f2@4 f2@2 e2@5 ~ e2@4 e2@2 b1@2 e1@3 ~]/3",
  E: "f1@6 f1@6 f2@2 f1 f#1", F: "g1@5 ~@2 g1@5 a2 [e2,g2] d2 [g1,c2]", G: "c1@15 ~", H: "c1@13 ~ c1 d1",
  I: "[g1@14 ~ f1@11 f2@4 a1@2]/2", J: "c2@3 b1", K: "a1@5 ~ a1@10", L: "g1@5 ~ g1@6 c2@4",
  M: "f1@6 f1@6 f1@2 ~ [f1,c2]", N: "d#2@5 ~ d#2@5 ~ d#2@4, ~@6 c2 ~@5 c2 ~@3", O: "f2@3 f2@4 a1, e2 ~@15",
  P: "c2@6 c2@7 ~ c2 g1", Q: "c1@6 c2@3 ~ c2 g1 c1@3 ~", R: "d#2@3 d#2@2 c2 d#1 d#2, d2 ~@5 d2 ~@9",
  S: "f2@5 ~ f2@4 c2@2 f1@3 ~, e2 ~@5 e2 ~@9", T: "g2@5 ~ g2@6 g3@4, f#2 ~@5 f#2 ~@5 f#3 ~@3",
  U: "[g2@9 ~ a1@2 g1@2 f1@11 ~ g1@2 f1@2 e1@12 d1@2 e1@4]/3", V: "f1@3 f1@3 f2 f1",
  W: "[g1@5 ~ g1@4 a1@2 g1@2 f1@11 ~ g1@2 f1@2 e1@7 ~ e1@8 e1@2]/3", X: "g1@3 g1@2 g2 f2@2", Y: "c2@6 c2@8 ~ g1",
  Z: "c1@6 c1@9 e1", AA: "g1@6 g2@4 g2@3 d2 g1@2", AB: "f1@5 ~ f1@4 f2@2 f1@4", AC: "c2@3 c2@3 b1@2",
  AD: "a1@6 a1@9 d2", AE: "g1@6 g1@8 b1 c2", AF: "f1@3 f1@3 f1 ~",
  AG: "d#2@4 d#2@3 ~ d#2@3 ~ [d2,d#2] c2 d#1@2, d2 ~@3 d2 ~@3 d2 ~@7", // D#maj7
  AH: "f2@3 ~ f2@6 f2@4 a1@2, e2 ~@3 e2 ~@5 e2 ~@5", AI: "c2@6 g2 d2", AJ: "c2@6 c2@9 ~",
  AK: "d#2@6 d#2@4 d#2 c2 d#1@2 d#2@2, ~@6 d2 ~@9", AL: "f2@6 f2@5 ~ f2 c2 f1@2, e2 ~@5 e2 ~@9",
  AM: "g2@6 g2@6 ~ d2 e2@2", AN: "g2@5 ~ g2@6 c2 d2 f2 g2", AO: "g1@4 g2@3 g1 g2@7 d2",
  AP: "g1@4 g2@2 g1@2 g2@4 g2@2 c2 d2", AQ: "f2@10 c2!2 c2@2 a1 c2", AR: "f2@6 f2@4 f2@2 f2@2 g1 a1",
  AS: "c2@4 c2@2 c2@4 c2@2 c2@2 c2 g1", AT: "c1@2 c2@2 c2@2 c1@2 c2@2 c1@2 c2 c1 d1 e1",
  AU: "f1@4 f2@2 f2@4 f2@2 f2 c2 f1@2", AV: "a2@3 g2@5", AW: "d2@2 e2@2 g2@2 g1@7 d2 g2@2", AX: "g2",
  AY: "[~ d2 g2@3 ~ g2@4 g3@4 g3@4 g2@4 g1@4 a2@2 g2@2 f2@10 f2@2 g2@2 f2@2 e2@4 e2@2 e2@4 e2@2 d2@2 e2@4]/4",
  AZ: "f2@5 ~ f2@6 f2@4", BA: "[g2@5 ~ g2@3 ~ a2@2 g2@2 f2@4 f2@2 f2@4 f2@2 g2@2 f2@2 e2@4 e2@2 e2@4 e2@6 e2@2]/3",
  BB: "f2@3 f2@3 f2@2", BC: "g2@6 g2@3 ~ g2@2 d2@2 g1@2", BD: "c1@10 c2@2 g1 c1 d1 e1", BE: "g1@3 g1@2 g1 c1@2",
  BF: "f1@6 f1@6 ~ g1 a1 b1", BG: "c1@3 c1@2 c2 b0 b1", BH: "a1@5 ~ a1@8 d1 e1", BI: "g1@6 g1@6 g1@2 c1 d1",
  BJ: "f1@3 f1@2 f2@3", BK: "d#2@5 ~ d#2@5 ~ d#2 a#1 d#1@2", BL: "f2@5 ~ f2@6 f2@3 ~, ~@6 e2 ~@9",
  BM: "c1@2 ~@4 c1@7 ~ c1@2", BN: "c1 ~@5 c1@8 c1 ~", BO: "d#2@6 d#2@3 ~ d#2@2 a#1@2 d#1@2, ~@6 d2 ~@9",
  BP: "f2@5 ~ f2@4 d#2 f2 c2@3 a1", BQ: "c1@2 ~@4 c1@7 ~ c1 ~", BR: "c1 ~@5 c1@8 ~@2", BS: "d#2@3 d#2@3 d#2 d#1",
  BT: "f2@3 f2", BU: "g1@4 g1@4 g1 ~ g1@3 ~ e2@2", BV: "g2@13 ~ d2@2",
  BW: "[g2@5 ~ g2@4 a2@2 g2@2 f2@7 ~ f2 ~ f2@2 g2@2 f2@2 e2@6 b1@2 e1@3 ~ e1 ~ e1@2 ~@2]/3", BX: "d1@5 ~ d1@5 ~ d1@3 ~",
  BY: "g1@5 ~ g1@5 ~ g1@3 ~", BZ: "c1/2",
})).s("gm_fretless_bass").gain(0.38)

// other · flute
const flute = note("<~@89 A B ~@4 C@3 D ~@3>".pickRestart({
  A: "~@7 c4", B: "d#4@2 d#4@2 d4@2 d4@4 c4@5 ~", C: "[~@5 g4 f4 e4@6 d4 e4 d4@6 c4 b3@2]/3", D: "a3",
})).s("gm_flute").gain(0.28).pan(0.4)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@28 A@3 B C ~@2 D E F@2 G H I@2 J ~@7 K@2 L@2 M@2 N O P Q R@2 S@4 ~@15 T U V W X Y Z AA AB J AC AD AE AF ~@4 AG@2
>`.pickRestart({
  A: "[~@10 a4@2 b4@2 c5@11 ~ d5@2 c5@2 b4@12 a4@2 g4@4]/3", B: "f4@7 ~ f5@2 e5@2 d5@2 c5@2", C: "d5@2 g4@4 g4@9 ~",
  D: "~@5 d4 f4 a4", E: "c5@3 ~ b4@10 ~@2", F: "[c5@31 ~]/2", G: "d5, c#5 ~@15", H: "c5@15 ~",
  I: "[g4@4 c5@2 e5@2 g5@23 ~]/2", J: "f5@15 ~", K: "[g4@13 g4 g4@2]/2", L: "[g4@5 b4 c5 d5@9]/2",
  M: "[c4@25 ~ a#3@2 a3@2 g3@2]/2", N: "~@2 g3 a3 c4@2 d4@2 e4 ~ f4 g4 a4 ~ c5 a4", O: "g4@6 ~ g4",
  P: "~@2 g4@2 f4 d#4@2 f4@6 ~ f4@2", Q: "f4@10 e4@2 d4@2 c4 ~", R: "[c4@13 ~ d4@11 ~ d4@4 c4 ~]/2",
  S: "[d4@9 ~ d4@2 e4@2 f4@4 g4@4 a4@4 b4@3 ~ c5@4 d5@4 e5@4 f5@4 f5@11 ~@7]/4", T: "~@2 g#3 g3", U: "f3@7 ~",
  V: "f3@15 ~", W: "~ g2 a2 c3 e3 g3 a3 c4", X: "c#4", Y: "d4@15 ~", Z: "~@10 f4 g4 a4@2 c5 a4",
  AA: "c5@7 ~@2 c5 ~ a4 c5@4, ~@4 d5 ~@3", AB: "~ f4 c5@2 f4 g#4 f4 d#5", AC: "~@5 c5 b4 a4", AD: "g4 f4 e4 d4@5",
  AE: "~@3 f4 a4 d5 f5 e5", AF: "f5@13 ~@3", AG: "g5/2",
})).s("gm_overdriven_guitar").gain(0.35).pan(0.4)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@7 B C D@2 E F G@2 H I G@2 J K L M N@2 O P Q@4 B R@3 B F S@2 T U S@2 T U V W ~@2 X J Y@4 Z AA AB@2 AC@2 AD AE AD AF@2
  AG@2 AH AI AJ AK AH AL AM@2 AN@2 AO@2 AP AQ AR AS AT AU X J AV AW X J AX@4 AY@2 AZ@2 BA@2
>`.pickRestart({
  A: "[~@7 c7@8 b6@6 a6@2 g6@14 ~@2 f3@8 g3@9]/7", B: "a3", C: "b3", D: "[c4@7 d4@9]/2", E: "e4 f4", F: "g4", G: "c5/2",
  H: "[d5,g5]", I: "[c5,f5]", J: "[a#4,d5,f5]", K: "[f4,c5,f5]", L: "d#6", M: "f6", N: "[~ c6, g6]/2", O: "[g#4,d#6]",
  P: "[a#4,f6]@15 [g#4,a4]", Q: "[[g4,g6]@12 ~@3 a4@8 [e4,g4]@9]/4", R: "[g4@7 a4@8 [e4,g4]@9]/3",
  S: "[g5 a5, [c6,e6]]/2", T: "[a#5,d6]", U: "[a5,c6]", V: "[d#4,g#4]", W: "[d4,f4,a#4]", X: "[g#4,c5,d#5]",
  Y: "[~@7 f5, [g4,d5,g5]]/4", Z: "g4@3 f4@5", AA: "g4@3 ~@3 a4@2, a#4@3 ~, ~@3 f4@5", AB: "[~@3 c5@5, g4]/2",
  AC: "[d5@3 c5@5 d5@3 c5@5, [f5,g5]]/2", AD: "[c5,e5]@3 [b4,d5]@5", AE: "[a4,c5]@3 [b4,d5]@5",
  AF: "[~ c5, a4@5 ~@3, c5 ~, ~ g5@3]/2", AG: "[[a4,f5,c6]@7 [g4,e5,b5]@9]/2", AH: "[c5,f5,a5]", AI: "[b4,g5]",
  AJ: "[f5,a5,c6]", AK: "[e5,g5,b5]", AL: "[b4,e5,g5]", AM: "[c6,e6,g6]/2", AN: "[[a#5,d6] [a5,c6], [f6,g6]]/2",
  AO: "[g6 a6, [c6,e6]]/2", AP: "[a#5,d6,g6]", AQ: "[a5,c6,f6]", AR: "~@2 g#3 g3, [d#4,g#4]", AS: "[f3,f4,a#4]",
  AT: "[c4,e4,g4] ~@5 [c4,f4,a4]@10", AU: "[c4,e4,g4] ~@5 [c4,f4,a4]@9 ~, c7", AV: "[c5,e5,g5] ~@5 [a4,c5,f5]@9 ~",
  AW: "[g4,c5,e5] ~@5 [a4,c5,f5]@10", AX: "[g5,d6,g6]/4", AY: "[~ e5, g5]/2", AZ: "[d5,g5]/2", BA: "[b4,e5,g5]/2",
})).s("gm_string_ensemble_1").gain(0.22).pan(0.7)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@17 A@2 ~@9 B@3 C D@3 C E ~@2 F@2 ~@2 F@2 G ~@23 H ~@26 I ~@5>".pickRestart({
  A: "[~@3 e5@5]/2", B: "[~@7 [c4,f4]@8 b3@9]/3", C: "[d4,f4]", D: "[[b3,e4]@7 [c4,f4]@8 b3@9]/3", E: "[b3,e4]",
  F: "f6", G: "c4", H: "e5", I: "f5",
})).s("gm_string_ensemble_1").gain(0.11).pan(0.7)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@2 A@3 ~@3 B@3 C D E@2 F G H@2 I J K I L M N O P@2 ~@8 H Q I J R@2 O S ~@2 T U V@4 W@2 X@2 Y@2 Z@2 AA AB AA AC@3 ~@7
  AD@2 I J AD@2 I J AE@2 AF AG N O AF@2 N O AH@2 AI@2 AJ@2 AK@2 AL@2
>`.pickRestart({
  A: "[~@14 g4@11 ~ f4@4 e4@12 e4@2 d4@2 ~@2, ~@15 c4@7 ~@2]/3", B: "[~@7 [e4,a4,c5]@8 [d4,g4,b4]@9]/3",
  C: "[c4,f4,a4]", D: "[b3,e4,g4]", E: "[g3 a3, [c4,e4]]/2", F: "[g3,a#3,d4]", G: "[f3,a3,c4]", H: "[g3,c4,e4]",
  I: "[a#3,d4,f4]", J: "[a3,c4,f4]", K: "[g#3,c4,d#4]", L: "[g3,e4]@3 [a3,f4]@5, c4",
  M: "[g3,e4]@2 [a3,f4] [g3,e4]@5, c4", N: "[c4,d#4,g#4]", O: "[d4,f4,a#4]", P: "[b3@3 ~@5 b3@4 ~@4, [d4,g4]@3 ~]/2",
  Q: "[a3,c4,e4]", R: "[[e4,g4] [e4,a4], c4]/2", S: "[a3,c4,f4,g4]", T: "c6", U: "g6", V: "[~ [d6,g6], c7@35 ~@29]/4",
  W: "[[d6,g6]@31 ~]/2", X: "[~@6 g6 ~, [c6,f6]]/2", Y: "[c6,e6]/2", Z: "[a#5,d6]@3 [a5,c6]@5, f6",
  AA: "[a5,c6,e6]@3 [g5,b5,d6]@5", AB: "[f5,a5,c6]@3 [g5,b5,d6]@5",
  AC: "[~@21 c7@22 ~@5, g6@7 ~, [f5,c6]@7 ~@5, a5@13 ~@11]/3", AD: "[c4,e4,g4]/2",
  AE: "[[g#3,c4,d#4]@15 ~ [d4,f4]@16, ~@15 a#3@16 ~]/2", AF: "[g3,c4,e4] ~@5 [a3,c4,f4]@10",
  AG: "[g3,e4] ~@5 [a3,c4,f4]@10", AH: "[[b4,d5]@3 [c5,e5]@5 [d5,f5]@3 [c5,e5]@5, g5]/2",
  AI: "[[d5,f5]@6 [c5,e5]@9 d5@17, g5, ~@3 [g6,b6]@13, ~@15 f5@12 ~@5]/2", AJ: "[f5 [g4,d5], [c6,c7]]/2",
  AK: "[[a3,c4,f4] [f4,g4,a4], [c6,c7]]/2", AL: "[b4,e5,g5]/2",
})).s("gm_string_ensemble_2").gain(0.27).pan(0.3)

// other · electric guitar jazz · "JAZZ GTR" · C5
const electric_guitar_jazz = note(`<
  ~@86
  [~@2 [g4,c5] ~@2 [g4,c5] ~@2]
  [[g4,c5] ~@7]
  [~@2 d#4@2 c4 a#3 g3 f#3 f3 c3 d#3@2 c3 a2 c3@2]
  [~@2 d#3 e3 g3 a3 c4@6 ~@2 d4@2]
  [d#4 ~@7]
  ~@11
>`).s("gm_electric_guitar_jazz").gain(0.4).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@37 A@9 B@2 A@3 C D@2 E F G H I H I J@3 K L M A N A@4 N A@8 O@2 D C M J D@2 P J N@2 M Q M N A@3 ~
>`.pickRestart({
  A: "x", B: "x ~@6 x", C: "x ~@2 x ~@3 x", D: "x ~@2 x ~@4", E: "x ~ x ~ x ~ x!2", F: "x ~ x!2 ~ x ~@2",
  G: "x ~ x!2 ~@3 x", H: "x ~ x ~@2 x!3", I: "x ~ x ~@2 x!2 ~", J: "x!4", K: "~ x ~ x ~ x ~ x", L: "~ x ~ x ~@4",
  M: "x ~@4 x ~ x", N: "x ~@4 x ~@2", O: "x!2", P: "x ~@2 x!2 ~@3", Q: "x ~@2 x ~ x ~@2",
})).gain(0.44)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@65 A ~@2 A ~ A ~ A B ~@8 C@2 ~@4 A ~@3 A@2 ~@8>".pickRestart({
  A: "~@7 x", B: "~@3 x ~@3 x", C: "~@3 x ~@4",
})).gain(0.27)

// drums · clap
const clap = s("cp").struct("<~@55 [~ x ~ x]!9 ~@38>").gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@47 A ~@7 B@8 ~@19 C@2 ~@2 C@2 ~@14>".pickRestart({
  A: "~@12 x!2 ~@2", B: "~ x ~ x", C: "~@3 x",
})).gain(0.55)

// drums · low tom
const low_tom = s("lt").struct("<~@49 A ~@4 B C@9 ~@20 D E ~@2 D F ~ G H ~@9>".pickRestart({
  A: "~@3 x", B: "~@11 x!2 ~ x ~", C: "~ x ~ x", D: "~@7 x", E: "x ~@7 x ~@2 x!2 ~ x ~", F: "~@15 x", G: "~@14 x!2",
  H: "x",
})).gain(0.44)

// drums · hihat
// … 44 more lines

More by Peter Frampton