Strudelify

Private Number

Bell

KeyE majorTempo99 bpm
0:00/0:00
// Private Number — Bell
// 99 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 70 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(99/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 jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B@2 C@2 D@2 E F D@2 E G H@2 I@2 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q R S@2 T U H@2 I@2 J@2 K@2 L@2 M@2 N@2 V@2 W@2 X@2 Y@2
  Z@2 AA@2 AB@2 AC@5
>`.pickRestart({
  A: "~@5 [a2,e3] [b2,f#3] [c3,g3]", // A5 B5 C5
  B: "[[c#3,g#3]@4 [g#3,c#4,e4] ~@3 [b3,d#4] ~ d#4 ~ b3@2 [e3,a3]@4 ~@4 c#4@4 [a2,e3]@2 [b2,f#3]@2 [c3,g3]@2, ~@11 d#4@2 ~ c#4@6 a3@5 ~@7, ~@18 e3@7 ~@7]/2", // C#5 C#m B A5 B5 C5
  C: "[[c#3,g#3]@4 [g#3,c#4,e4] ~@3 [b3,d#4] ~ d#4 ~ b3@2 [e3,a3]@4 ~@4 c#4@2 b2 c#3 [e3,a3,c#4]@3 ~ [a3,c#4] ~, ~@11 d#4@2 ~ c#4@6 a3@4 ~@8, ~@9 e3@3 ~@4]/2", // C#5 C#m B A5 A
  D: "[[g#3,b3]@2 [g#3,b3]@2 ~@2 [g#3,e4]@2 ~@2 g#3@2 ~@2 [b3,d#4,f#4]@4 ~@4 [b3,d#4,f#4]@2 [a3,c#4,e4]@2 [a3,c#4,e4] ~@5, e4 ~ e4 ~@5]/2", // G#m C#m B A
  E: "~@2 g#4 a4 [f#4,g#4]@2 [e4,g#4]@2 [c#4,e4]@2 [b3,e4]@2 g#3@2 b3 ~", F: "~@2 g#4 a4 [f#4,g#4]@2 [c#4,e4]@6 ~@4",
  G: "[d#4,f#4]@2 g#4 a4 [f#4,g#4]@2 [c#4,e4]@4 [c#4,e4]@2 [c#4,e4]@2 [c#4,e4] ~", // D#m F#sus2 C#m
  H: "[[a3,c#4,e4]@7 ~ [a#3,c#4,f#4]@5 ~ [b3,d#4,f#4]@8 ~@2 d#4 e4 b3@4 ~@2, ~@22 b3@4 d#4 ~@5]/2", // A F# B
  I: "[~@4 [b3,d#4,g#4]@4 [b3,d#4,g#4]@2 [b3,d#4,g#4]@4 [c#4,e4,g#4]@5 ~@3 e4@2 f#4 [f#4,g#4] ~@2 c#4@2 b3@2, ~@10 c#4@2 ~ e4@3]/2", // G#m C#m F#sus2
  J: "[d4!2 [a3,d4,f#4] [a3,d4,f#4]@2 [a3,d4] [a3,d4,f#4] [a3,d4,f#4]@2 [a3,d4,f#4] [d3,a3,d4,f#4] [d3,a3,d4,f#4]@2 [a3,d4,f#4]!2 [d3,a3,d4,f#4], ~@3 d3@3 ~ d3@3 ~@6]/2", // D D5 D
  K: "[[b2,a3,c#4,e4,f#4]@2 [c#4,e4,f#4]@2 f#4@2 [b2,a3,c#4,e4,f#4]@4 [a3,c#4,e4,f#4]@2 [a3,c#4,e4,f#4]@2 b2@5 ~ b2@2 [b2,a3,c#4,e4,g#4]@6 [a3,c#4,e4,f#4]@4, ~ [b2,a3]@2 ~@2 b2@2 [a3,c#4,e4,g#4]@4 ~@5]/2", // F#m7 F#7 F#m7 C#m7 F#m7 B7 Amaj7
  L: "[~@6 c#5@4 g#4@4 [e3,a3,c#4,e4]@4 e4@6 [f#4,a4] [f#4,g#4] c#4@2 [a3,c#4,e4]@2 [e3,a3,c#4,e4]@2, [g#3,b3,e4]@7 ~@2 [a3,c#4]@4 ~@3]/2", // A F#m F#sus2 A E A
  M: "[[f#3,a3,c#4,e4,f#4]@2 [f#3,a3,c#4,e4,f#4]!2 [a3,b3]@2 [a3,b3] [g#3,b3,e4]@2 [g#3,b3,e4]@2 [c#4,f#4,a4] [d#4,g#4,b4]!2 [c#4,f#4,a4]@2, ~@4 d#4@3 ~@9]/2", // F#m7 Asus2 E F#m G#m F#m
  N: "[[g#3,b3,e4,g#4]@4 [b3,e4,g#4]@6 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [a3,c#4,e4,a4]@6 [c#4,e4,a4]@2 [e4,a4]@2 f#4 [f#4,g#4] c#4@2 [c#4,e4]@2 [e3,a3,c#4]@2, ~@2 g#3@5 ~@3 a3@4 ~@2, ~@11 c#4@2 ~@3]/2", // E A A5 F#sus2 C#m A
  O: "[[f#3,a3,c#4,e4]@2 [f#3,a3,c#4,e4]!2 [a3,b3]@2 [a3,b3] [g#3,b3,e4]@2 [g#3,b3,e4]@2 [b3,e4,g#4]!2 [b3,e4,g#4]@3, ~@4 d#4@3 ~@9]/2", // F#m7 Asus2 E
  P: "[[g#3,b3] [g#3,b3]@2 [g#3,e4] ~ g#3@2 [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4] [a3,c#4,e4] [a3,c#4,e4]@2 [a3,c#4,e4], e4@3 ~ e4@3 ~@9]/2", // G#m C#m B A
  Q: "e4@2 g#4 a4 [f#4,g#4]@2 [e4,g#4]@2 [c#4,e4]@2 [b3,e4]@2 g#3@2 b3 ~, [g#3,b3]@3 ~@5", // F#sus2 E C#m E5 G#m
  R: "[b4,c#5] b4@3 [b3,d#4,f#4]@2 [a3,c#4,e4]@6 ~@4, [b3,d#4,f#4] ~@3", // Bsus2 B A B
  S: "[[g#3,b3]!2 ~ [g#3,e4] ~ g#3 ~ [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4] [a3,c#4,e4]!3 ~, e4 ~ e4 ~@5]/2", // G#m C#m B A
  T: "~@2 g#4 a4 [f#4,g#4]@2 [e4,g#4]@2 [c#4,e4]@2 [b3,e4]@2 g#3@2 b3 ~, [g#3,b3]@7 ~@9, e4@5 ~@11", // F#sus2 E C#m E5 G#m
  U: "f#4@2 g#4 a4 [f#4,g#4]@2 [c#4,e4]@4 [c#4,e4]@2 [c#4,e4]@2 [c#4,e4]@2, d#4@3 ~@5", // F#sus2 C#m
  V: "[[f#3,a3,c#4,e4]@2 [f#3,a3,c#4,e4]!2 [a3,b3]@2 [a3,b3] [g#3,b3,e4]@2 [g#3,b3,e4]@2 [b3,e4,g#4]!2 [a2,e3] [b2,f#3] [c3,g3], ~@4 d#4@3 ~@9]/2", // F#m7 Asus2 E A5 B5 C5
  W: "[~@4 [g#3,c#4,e4] ~@3 [b3,d#4] ~ d#4 ~ b3@2 [e3,a3]@4 ~@4 c#4@4 [a2,e3]@2 [b2,f#3]@2 [c3,g3]@2, ~@11 d#4@2 ~ c#4@6 a3@5 ~@7, ~@18 e3@7 ~@7]/2", // C#m B A5 B5 C5
  X: "[[c#3,g#3]@4 [g#3,c#4,e4] ~@3 [b3,d#4] ~ d#4 ~ b3@2 [e3,a3]@4 ~@4 c#4@2 b2 c#3 [e3,a3,c#4]@4 [e3,a3,c#4]@2, ~@11 d#4@2 ~ c#4@6 a3@4 ~@8, ~@9 e3@3 ~@4]/2", // C#5 C#m B A5 A
  Y: "[~@6 c#5@7 ~ [e3,a3,c#4,e4]@4 e4@6 f#4 g#4 c#4@2 [a3,c#4,e4]@2 [e3,a3,c#4,e4]@2, [g#3,b3,e4]@14 ~@4 [a3,c#4]@7 f#4@3 ~@4, ~@4 g#4@9 ~@11 a4@3 ~@5]/2", // A E A
  Z: "[[f#3,a3,c#4,e4,f#4]@4 [f#3,a3,c#4,e4,f#4]@2 ~@2 [a3,b3,d#4]@5 ~ [g#3,b3,e4]@4 [g#3,b3,e4]@4 [c#4,f#4,a4]@2 [d#4,g#4,b4]@2 [d#4,g#4,b4]@2 [c#4,f#4,a4]@4]/2", // F#m7 B7 E F#m G#m F#m
  AA: "[[g#3,b3,e4,g#4]@4 [b3,e4,g#4]@6 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [a3,c#4,e4,a4]@6 [c#4,e4,a4]@2 [e4,a4]@2 f#4 g#4 c#4@2 ~@2 c#4@2, ~@2 g#3@5 ~@3 a3@4 [c#4,e4] ~, ~@22 c#4@3 f#4@3 ~ [e4,f#4]@3]/2", // E A A5 C#m Esus2
  AB: "[[a3,c#4,e4,f#4]@2 [a3,c#4,e4,f#4] ~ [a3,c#4,e4]!2 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [f#3,c#4,a4] [g#3,d#4,b4] [a2,g#3,d#4,b4] [f#3,c#4,a4] ~]/2", // F#m7 A E F#m G#m F#m
  AC: "[[b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@2 [d4,f#4]@4 [d4,f#4]@2 [e3,a3,c#4,e4]@6 [a3,c#4,e4,a4]@2 ~@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@4 [f#3,a3,c#4,f#4]@4 [f#3,a3,c#4,f#4]@2 [f#3,a3,c#4,f#4]@2 ~@2 [a3,c#4,f#4] ~ [a3,c#4,f#4]@2 ~@2 [e3,g#3,b3,e4]@26 ~@8, g#3@3 ~ [f#3,b3]@3 ~@33]/5", // E D A G#m F#m E B5
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.2)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~ A ~ A ~ B C ~@2 B C ~@6 D E F ~@2 G ~@6 H I ~@2 B J ~@6 D E F ~@2 G ~@6 A ~ A ~@2 G ~@11
>`.pickRestart({
  A: "~@10 e4 ~@5", B: "~@3 b3 [g#3,b3] b3 ~@2", C: "~@2 [b3,d#4,f#4] ~@13", D: "[d3,a3,f#4]!2 d3 ~@2 f#4 d3 ~",
  E: "~@5 d3@2 ~", F: "~@2 [c#4,e4] ~@5", G: "~ e3@4 ~@3", H: "~@3 b3 [g#3,b3] b3@2 ~", I: "~ [b3,d#4,f#4] ~@6",
  J: "~@2 [b3,d#4,f#4] ~@11 [a3,c#4,e4]@2", // B A
})).s("gm_electric_guitar_jazz").gain(0.16).pan(0.2)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B@2 C@2 D E F G D G D H I@2 J@2 K L M N O@2 P@2 Q@2 R@2 D E F G D G D H I@2 S@2 K T M N U@2 V@2 W@2 X@2 Y@2 Z@2 AA@2
  AB@2 W@2 AC@2 AD@5
>`.pickRestart({
  A: "~@5 a1 b1 c2", B: "[c#2@7 ~ b1 ~ b1@3 ~ a1@11 ~ a1@2 b1@2 c2@2]/2",
  C: "[c#2@7 ~ b1 ~ b1@3 ~ a1@8 ~@2 b1 c#2 e2@2 c#2@2 b1@2, ~@28 c2 ~@3]/2", D: "e2@2 e2@2 ~@2 e2 ~ e2@2 e2@2 ~@2 e2@2",
  E: "~@2 e2@2 ~@2 e2 ~ e2 ~ e2@3 ~ e2 ~", F: "e2 ~ e2@2 ~@2 e2 ~ e2@2 e2@2 ~@2 e2@2",
  G: "~@2 e2@2 ~@2 e2 ~ e2@2 e2@2 ~@2 e2 ~", H: "~@2 e2@3 ~ e2 ~ e2@2 e2@3 ~ e2 ~",
  I: "[a1@7 ~ f#1@5 ~ b1@9 ~ a1@7 ~]/2", J: "[g#1@7 ~ g#1@2 b1@2 c2@2 c#2@9 ~ c#2@6 a2@2]/2",
  K: "d2@2 d2@2 d2@4 d2@2 d2 ~ d2@4", L: "d2@2 d2@2 d2@3 ~ d2@2 d2 ~ d2@2 c#2@2", M: "b1@2 b1@2 b1@3 ~ b1@2 b1 ~ b1@4",
  N: "b1@2 b1 ~ b1@4 b1@2 b1@2 g#1@2 f#1@2", O: "[e1@7 ~ e1 ~ f#1 ~ g#1 ~ a1@9 ~ a1 ~ a1 ~ c#2@2 e1 ~]/2",
  P: "[f#1@5 ~ f#1 ~ b1 ~ b1@2 ~@2 e1@6 ~@2 b1@2 e1@2 g#1@2 a1@2 b1 ~]/2",
  Q: "[e2@7 ~ e2@2 c#2@2 b1@2 a1@9 ~ a1@2 a1@2 c#2@2 e1 ~]/2",
  R: "[f#1@5 ~ f#1 ~ b1@2 b1@3 ~ e2@9 ~ b1 c#2 e2@2 b1 c#2 e2@2]/2",
  S: "[g#1@7 ~ g#1@2 b1@2 c2@2 c#2@9 ~ c#2@4 b1@2 c#2@2]/2", T: "d2@2 d2@2 d2@3 ~ d2@2 d2 ~ c#2@2 c2@2",
  U: "[e1@7 ~ e1 ~ f#1 ~ g#1 ~ a1@9 ~ a1 ~ a1 ~ c#2@2 e2 ~]/2",
  V: "[f#2@5 ~ f#2 ~ b1@5 ~ e2@6 ~@2 b1@2 e2@2 g#1@2 a1@2 b1@2]/2",
  W: "[e2@7 ~ e2@2 c#2@2 b1@2 a1@9 ~ a1@2 a1@2 c#2@2 e2 ~]/2",
  X: "[f#2@5 ~ f#1 ~ b1@2 b1@3 ~ e2@7 ~ b1@2 e1@2 a1 ~ b1@2 c2 ~]/2", Y: "[c#2@8 b1 ~ b1@3 ~ a1@11 ~ a1@2 b1@2 c2@2]/2",
  Z: "[c#2@8 b1 ~ b1@3 ~ a1@8 ~@2 b1 c#2 e2@2 c2 c#2 e2@2]/2",
  AA: "[e2@7 ~ e2 ~ f#1 ~ g#1 ~ a1@9 ~ a1 ~ a1 ~ c#2@2 e2 ~]/2",
  AB: "[f#2@5 ~ f#2 ~ b1 ~ b1@3 ~ e2@6 ~@2 b1@2 e2 ~ g#1@2 a1@2 b1 ~]/2",
  AC: "[f#2@7 ~ b1@2 b1@3 ~ e2@7 ~ b1@2 e1@2 b1 ~ c#2 ~ d#2 ~]/2",
  AD: "[e2@7 ~ b1@5 ~ a1@9 ~ g#1@6 f#1@9 ~ b1@6 e1@26 ~@8]/5",
})).s("gm_fretless_bass").gain(0.49)

// chords · piano · "A.PIANO 1" · C#m B A
const piano = note(`<
  ~@3
  [[c#6,e6,g#6] ~ [c#6,e6,g#6] ~ [c#6,e6,g#6] ~ [c#6,e6,g#6] ~ [b5,d#6,f#6] ~ [b5,d#6,f#6] ~@3 [a5,c#6] ~]
  [[a5,c#6,e6] ~ [a5,c#6,e6] ~@3 [a5,c#6] ~ [a5,c#6,e6] ~ [a5,c#6,e6] ~@5]
  ~@65
>`).s("gm_piano").gain(0.27).pan(0.8)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@21 A@2 ~@2 B@2 ~@18 A@2 ~@2 B@2 ~@2 C@2 D E F@2 ~@2 G@2 ~@7>".pickRestart({
  A: "[[e4,g#4,b4]@3 [e4,g#4,b4] [c#4,f#4,a4]@2 [b3,e4,g#4] [c#4,f#4,a4]@2 [c#4,f#4,a4]@3 ~@4]/2", // E F#m E F#m
  B: "[~@2 [e4,g#4,b4]!2 [c#4,f#4,a4]@2 [b3,e4,g#4] [c#4,f#4,a4]@2 [c#4,f#4,a4]@3 ~@4]/2", // E F#m E F#m
  C: "[[e4,g#4,c#5]@8 [d#4,f#4,b4]@6 [c#4,e4,a4]@15 ~@3]/2", // C#m B A
  D: "[e4,g#4,c#5]@8 [d#4,f#4,b4]@6 [c#4,e4,g#4] [b3,d#4,f#4]", E: "[a3,c#4,e4] [g#3,b3,d#4] [a3,c#4,e4]@11 ~@3",
  F: "[~@2 [e4,g#4,b4,e5]!2 [c#4,f#4,a4,c#5]@2 [b3,e4,g#4,b4] [c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5]@3 ~@4]/2", // E F#m E F#m
  G: "[~@4 [e4,g#4,b4,e5]@2 [e4,g#4,b4,e5]@2 [c#4,f#4,a4,c#5]@4 [b3,e4,g#4,b4]@2 [c#4,f#4,a4,c#5]@4 [e4,a4,c#5,e5]@3 ~@11]/2", // E F#m E F#m A
})).s("gm_epiano1").gain(0.32).pan(0.4)

// other · trumpet
const trumpet = note("<~@14 A@2 B C D E F ~ G H@2 ~ I J@2 ~@9 A@2 B C D E K ~ G H@2 ~ I J@2 ~@12 L@5>".pickRestart({
  A: "[~ b4 c#5 e5 f#5 e5 f#5 g#5@7 ~@2]/2", B: "~@2 c#5@2 b4@2 g#4@2 f#4@2 e4@2 c#4@2 b3 ~, ~@2 b4 ~@13", C: "a3 d4",
  D: "f#4 a4", E: "b3 c#4", F: "e4@15 ~", G: "~ b4 c#5 e5 f#5 e5 c#5 b4", H: "[c#5@4 b4@3 g#4@3 ~@6]/2",
  I: "~@2 b4@2 c#5@2 e5@2 f#5@2 e5@2 c#5@2 b4 ~", J: "[c#5@7 ~ b4@6 g#4@10 ~@8]/2", K: "e4 f#4",
  L: "[g#4@7 ~ f#4@5 ~ a4@9 ~ g#4@5 ~ f#4@9 ~ f#4@5 ~ e4@26 ~@8]/5",
})).s("gm_trumpet").gain(0.22).pan(0.9)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@5 A B A C A B D@2 E@2 F@2 G@2 H I J@2 ~ K L@2 ~ M N ~@6 O E@2 F@2 G@2 H I J@2 ~ K L@2 ~@3 P Q R S@2 ~ T U ~@2 V W@5
>`.pickRestart({
  A: "[e2,b3]", B: "b3 c#4, e2", C: "d#4@3 c#4@5, [e2,b3]",
  D: "[e2@16 [e2,d#4]@6 [e2,c#4]@4 ~ g#3 a3 b3 c#4 d#4, b3@13 ~@3]/2", E: "[a3@4 f#3@3 [b3,d#4]@9, c#4@7 ~@9]/2",
  F: "[[b3,d#4]@7 [c#4,e4]@9]/2", G: "[d4,f#4]/2", H: "[a3,c#4,e4]",
  I: "c#4 a3 b3 c#4 d#4 e4 f#4 g#4 a4 b4 c#5 d#5 e5 f#5 g#5 a5", J: "[[e5,g#5]@7 [e5,f#5]@5 ~@4]/2",
  K: "~@2 [e3,e4] [f#3,f#4] [g#3,g#4]@2 [f#3,f#4]@2", L: "[[e2,e4]@7 [a2,c#4]@5 ~@4]/2", M: "~ g#4 f#4 e4 c#4 e4 ~@2",
  N: "[e2,g#3]", O: "~@11 g#3 a3 b3 c#4 d#4", P: "~ c#5 b4 g#4 f#4 e4 c#4 b3", Q: "c#4@8 b3@7 ~",
  R: "a3@4 b3 c#4 d#4 e4 a3 b3 c#4 d#4 e4 [f#4,g#4] [a4,b4] [c#5,d#5]", S: "[[e5,g#5]@7 [e5,a5]@7 ~@2]/2",
  T: "~@2 [e4,g#4] [f#4,a4] [g#4,b4]@2 [f#4,a4]@2", U: "[e4,g#4]@3 ~", V: "~@12 a4 [b4,c#5] d#5 [e5,f#5]",
  W: "[g#5@7 ~ f#5@6 e5@9 ~ d#5@6 c#5@10 c#5@5 ~ b4@26 ~@8]/5",
})).s("gm_string_ensemble_1").gain(0.22).pan(0.7)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@28 A ~ B C D C B E@2 ~@33>".pickRestart({
  A: "~@6 c#4 b3", B: "b3 c#4, e2", C: "[e2,b3]", D: "d#4@3 c#4@5, [e2,b3]",
  E: "[e2@8 [e2,d#4]@3 [e2,c#4]@2 ~@3, b3@13 ~@3]/2", // Emaj7 C#m
})).s("gm_string_ensemble_1").gain(0.16).pan(0.7)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  ~@5 A B A C A B A D E@2 F@2 G H I J K@2 ~ L M@2 ~ N O B A C A B A D E@2 F@2 G H I J K@2 ~ L M@2 ~@3 P Q R S@2 ~ T U
  ~@2 V W@5
>`.pickRestart({
  A: "[e4,g#4]", B: "[d#4,f#4] [e4,a4]", C: "[f#4,b4]@3 [e4,a4]@5", D: "[f#4,b4]@6 [e4,a4]@5 c#4 d#4 e4 f#4 g#4",
  E: "[[e4,a4]@4 [f#4,a#4]@3 [f#4,b4]@9]/2", F: "[g#4@4 g#4@3 [g#4,c#5]@9, b4@7 ~@9]/2", G: "[a4,d5]", H: "[d5,f#5]",
  I: "[a4,c#5] [c#5,e5]", J: "a4 f#4 g#4 a4 b4 c#5 d#5 e5 f#5 g#5 a5 b5 c#6 d#6 e6 f#6",
  K: "[[b5,e6]@7 [a5,c#6]@5 ~@4]/2", L: "~@2 [b4,g#5] [c#5,a5] [d#5,b5]@2 [c#5,a5]@2",
  M: "[[b4,g#5]@7 [a4,f#5]@5 ~@4]/2", N: "~ g#4 f#4 e4 c#4 e4 c#4 b3", O: "[b3,e4]", P: "~ c#5 b4 g#4 f#4 e4 c#4 b3",
  Q: "c#4@7 ~ b3@8", R: "a3@2 ~@2 b3 c#4 d#4 e4 f#4 g#4 a4 b4 c#5 [d#5,e5] f#5 [g#5,a5]", S: "[b5@7 c#6@7 ~@2]/2",
  T: "~@2 [g#5,b5] [a5,c#6] [b5,d#6]@2 [a5,c#6]@2", U: "[g#5,b5]@3 ~", V: "~@12 f#5 [g#5,a5] b5 [c#6,d#6]",
  W: "[[b5,e6]@4 [b5,d6]@3 [a5,c#6]@5 [g#5,b5]@3 [f#5,a5]@5 [f#5,a5]@3 [e5,g#5]@13 ~@4]/5", // E5 Bm A G#m F#m E
})).s("gm_string_ensemble_1").gain(0.22).pan(0.3)

// other · alto sax
const alto_sax = note("<~@14 A@2 B C D E F ~ G H@2 ~ I J@2 ~@9 A@2 B C D E K ~ G H@2 ~ I J@2 ~@12 L@5>".pickRestart({
  A: "[~ b3 c#4 e4 f#4 e4 f#4 g#4@7 ~@2]/2", B: "~ c#5 b4 g#4 f#4 e4 c#4 b3", C: "a3 d4", D: "f#4 a4", E: "b3 c#4",
  F: "e4@15 ~", G: "~@2 b3@2 c#4@2 e4@2 f#4@2 e4@2 c#4@2 b3 ~", H: "[c#4@4 b3@3 g#3@3 ~@6]/2",
  I: "~ b3 c#4 e4 f#4 e4 c#4 b3", J: "[c#4@4 b3@3 g#3@5 ~@4]/2", K: "e4 f#4",
  L: "[[b3,e4]@8 [b3,d4]@5 ~ [c#4,e4]@9 ~ [b3,d#4]@6 [a3,c#4]@9 ~ [a3,c#4]@5 ~ [e3,g#3,b3]@26 ~@8]/5", // E5 Bm C#m B A E
})).s("gm_alto_sax").gain(0.35).pan(0.6)

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

// drums · snare
const snare = s("sd").struct("<~ A@15 B A@3 C A@19 B A@11 D A@3 E A@11 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@2 x!6 ~@3", C: "~@2 x ~@2 x!2 ~", D: "~@4 x ~@2 x!6 ~ x ~", E: "~@4 x ~@2 x ~@2 x ~ x ~@3",
})).gain(0.38)

// drums · low tom
const low_tom = s("lt").struct("<~@64 [~@4 x!4] ~@5>").gain(0.38)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@10 A ~@2 B@3 C D@2 E F ~@4 G H ~ H ~@5 A ~@6 D@2 E F ~@4 G H ~@10 G H ~@7
>`.pickRestart({
  A: "~ x ~@6", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~@4", D: "~@4 x!2 ~ x", E: "~@4 x ~@2 x", F: "~ x",
  G: "~@3 x ~ x ~@2", H: "~@5 x ~@2",
})).gain(0.16)

// drums · crash
const crash = s("cr").struct("<~@17 A ~@3 A ~@3 A ~@19 A ~@3 A ~@7 A ~@3 A ~@3 B C@2 ~@2>".pickRestart({
  A: "x", B: "x ~@6 x", C: "~@4 x ~@2 x",
})).gain(0.38)

stack(
  electric_guitar_jazz, electric_guitar_jazz_2, bass, piano, epiano1, trumpet, string_ensemble_1,
  string_ensemble_1_soft, string_ensemble_1_2, alto_sax, kick, snare, low_tom, hihat, hihat_soft, crash
)

More by Bell