Strudelify
China In Your Hand cover art

Bridge Of Spies

China In Your Hand

T'Pau

KeyB majorTempo69 bpm
0:00/0:00
// China In Your Hand — T'Pau
// 69 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 5, 4/4 at bar 6, 2/4 at bar 8, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 alto sax (copy of ch 7 alto sax, 0.104 beats late)
// note: Full arrangement: all 82 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(69/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
const piano = note(`<
  A B C D E F G H I J K L M L N L O@2 P@2 B C D E F G H I J K L M L N L O@2 P@2 B@2 Q@6 R@8 S@7 T@8 U@8 V@4
>`.pickRestart({
  A: "~@24 [f#4,b4,d#5]@5 ~ b3@5 ~ [f#4,b4,d#5]@5 ~ b3@3 [f#4,b4,d#5]@3", // B
  B: "[f#4,a#4,c#5]@5 ~ c#4@3 [f#4,a#4,c#5]@3 [e4,g#4]@3 g#4@2 ~ e4@3 g#4@2 ~ [f#4,b4,d#5]@5 ~ b3@5 ~ [f#4,b4,d#5]@5 ~ b3@3 [f#4,b4,d#5]@3, ~@12 b4@11 ~@25", // F# E B
  C: "[f#4,a#4,c#5]@5 ~ c#4@3 [f#4,a#4,c#5]@3 [e4,g#4]@3 g#4@2 ~ e4@3 g#4@2 ~ [b4,d#5,f#5]@5 ~ f#4@5 ~ [b4,d#5]@5 ~ f#4@5 ~, ~@12 b4@11 ~@25", // F# E B
  D: "[b4,d#5,f#5]@5 ~ f#4@5 ~ [b4,d#5]@5 ~ [f#4,b4,d#5]@3 f#4@3 f#4@3 c#5@3 a#4@3 f#4@3 e4@3 g#4@3 b4@3 e5@3, ~@24 [a#3,c#4]@11 ~ [g#3,b3]@11 ~", // B A#m G#m
  E: "[f#4,b4,d#5]@5 ~ b3@5 ~ [f#4,b4]@5 ~ b3@5 ~ [f#4,b4,d#5]@5 ~ [d#4,f#4,b4]@3 [f#4,b4,d#5]@3 [c#5,e5]@3 [b4,d#5]@3 [a#4,c#5]@3 [g#4,b4]@3", // B B5 B C#m B A#m G#m
  F: "[f#4,b4,d#5]@5 ~ b3@5 ~ [f#4,b4]@5 ~ b3@5 ~ [f#4,b4,c#5]@5 ~ b3@5 ~ [f#4,b4]@5 ~ b4@3 g#4@3", // B B5 F#sus4 B5
  G: "f#4@3 c#5@3 a#4@3 f#4@3 e4@3 g#4@3 b4@3 e5@3 [b4,d#5]@5 ~ f#4@5 ~ [b4,d#5]@5 ~ f#4@5 ~, [a#3,c#4]@11 ~ [g#3,b3]@11 ~@25", // B A#m G#m
  H: "[b4,d#5]@5 ~ f#4@5 ~ [a#4,c#5]@5 ~ f#4@5 ~ [b4,d#5]@5 ~ g#4@5 ~ [b4,d#5]@5 ~ g#4@5 ~", // B A#m B
  I: "[b4,d#5]@5 ~ g4@5 ~ [b4,d#5]@5 ~ g4@5 ~ [b4,d#5]@5 ~ f#4@5 ~ [b4,d#5]@5 ~ f#4@5 ~", // B
  J: "[e4,g#4,b4]@5 ~ c#4@5 ~ [e4,g#4,b4]@5 ~ c#4@5 ~ [e4,g#4,b4]@5 ~ c#4@5 ~ [e4,g#4,b4]@5 ~ c#4@5 ~", // E
  K: "[b4,c#5,e5]@5 ~ f#4@5 ~ [b4,c#5,e5]@5 ~ f#4@5 ~ [b4,c#5,e5]@5 ~ f#4@5 ~ [b4,c#5,e5]@5 ~ f#4@5 ~", // C#m7
  L: "[b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~", // C#m7 F#7
  M: "[f#4,b4,d#5]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,g#4,b4]@11 ~ [c#4,f#4,a#4]@11 ~", // B F# G#m F#
  N: "[c#4,d#4,f#4]@23 ~ [b3,e4,g#4]@11 ~ [c#4,f#4,a#4]@11 ~", // D#m7 E F#
  O: "[[b3,d#4,f#4]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,f#4,g#4,b4]@35 ~ [c#4,e4,f#4,a#4]@11 ~ [g#4,b4,c#5,e5]@23 ~]/2", // B F# G#m7 F#7 C#m7
  P: "[e5@11 ~ d#5@11 ~ [e4,f#4,b4,c#5]@47 ~ [f#4,b4,d#5]@5 ~ b3@5 ~ [f#4,b4,d#5]@5 ~ b3@3 [f#4,b4,d#5]@3, [g#4,b4]@23 ~@73]/2", // Esus2 B G#m
  Q: "[[f#4,a#4,c#5]@6 c#4@3 ~ [f#4,a#4,c#5]@3 [e4,g#4]@3 g#4@3 e4@3 ~ g#4 ~@2 [b3,d#4,f#4]@78 [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [f#4,b4,d#5]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,g#4,b4]@11 ~ [c#4,f#4,a#4]@11 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [c#4,d#4,f#4]@23 ~ [b3,e4,g#4]@11 ~ [c#4,f#4,a#4]@4, ~@13 b4@11 b2@80 ~@184, ~@25 d#3@79 ~@184]/6", // F# E B C#m7 F#7 B F# G#m …
  R: "[~@8 [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [b3,d#4,f#4]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,f#4,g#4,b4]@35 ~ [c#4,e4,f#4,a#4]@11 ~ [g#4,b4,c#5,e5]@23 ~ e5@11 ~ d#5@11 ~ [e4,f#4,b4,c#5]@47 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [f#4,b4,d#5]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,g#4,b4]@11 ~ [c#4,f#4,a#4]@11 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [c#4,d#4,f#4]@16, ~@152 [g#4,b4]@23 ~@209]/8", // C#m7 F#7 B F# G#m7 F#7 C#m7 Esus2 …
  S: "[~@8 [b3,e4,g#4]@11 ~ [c#4,f#4,a#4]@11 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [b3,d#4,f#4]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,f#4,g#4,b4]@35 ~ [c#4,e4,f#4,a#4]@11 ~ [g#4,b4,c#5,e5]@23 ~ e5@11 ~ d#5@11 ~ [e4,f#4,b4,c#5]@47 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [f#4,b4,d#5]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,g#4,b4]@11 ~ [c#4,f#4,a#4]@4, ~@176 [g#4,b4]@23 ~@137]/7", // E F# C#m7 F#7 B F# G#m7 F#7 …
  T: "[~@8 [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [c#4,d#4,f#4]@23 ~ [b3,e4,g#4]@11 ~ [c#4,f#4,a#4]@11 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [b3,d#4,f#4]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,f#4,g#4,b4]@35 ~ [c#4,e4,f#4,a#4]@11 ~ [g#4,b4,c#5,e5]@23 ~ e5@11 ~ d#5@11 ~ [e4,f#4,b4,c#5]@47 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [f#4,b4,d#5]@11 ~ [f#4,a#4,c#5]@4, ~@248 [g#4,b4]@23 ~@113]/8", // C#m7 F#7 D#m7 E F# C#m7 F#7 B …
  U: "[~@8 [d#4,g#4,b4]@11 ~ [c#4,f#4,a#4]@11 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [c#4,d#4,f#4]@23 ~ [b3,e4,g#4]@11 ~ [c#4,f#4,a#4]@11 ~ [b3,c#4,e4,g#4]@23 ~ [c#4,e4,f#4,a#4]@23 ~ [b3,d#4,f#4]@11 ~ [f#4,a#4,c#5]@11 ~ [d#4,f#4,g#4,b4]@35 ~ [c#4,e4,f#4,a#4]@11 ~ [g#4,b4,c#5,e5]@23 ~ e5@11 ~ d#5@11 ~ [e4,f#4,b4,c#5]@47 ~ [f#4,b4,d#5]@5 ~ b3@5 ~ [f#4,b4,d#5]@5 ~ b3@3 [f#4,b4,d#5]@3 [f#4,a#4,c#5]@5 ~ c#4@3 [f#4,a#4,c#5]@3 [g#4,b4]@3 g#4, ~@272 [g#4,b4]@23 ~@85 e4@2 ~@2]/8", // G#m F# C#m7 F#7 D#m7 E F# C#m7 …
  V: "[~@2 e4@2 ~ g#4@2 ~ [f#4,b4,d#5]@5 ~ b3@5 ~ [f#4,b4,d#5]@5 ~ b3@3 [f#4,b4,d#5]@3 [f#4,a#4,c#5]@5 ~ c#4@3 [f#4,a#4,c#5]@3 [e4,g#4]@3 g#4@2 ~ e4@2 ~ g#4@2 ~ [f#4,b4,d#5]@5 ~ b3@5 ~ [f#4,b4,d#5]@6 b3@3 ~ [f#4,b4,d#5]@3 [f#4,a#4,c#5]@6 c#4@3 ~ [f#4,a#4,c#5]@3 [e4,g#4]@3 g#4@3 ~ e4@3 g#4 ~@3 f#4@70 ~@14, ~@44 b4@11 ~@39 b4@11 b2@73 ~@14, ~@53 d#3@36 ~@7, ~@107 [b3,d#4]@71 ~@14]/4", // B F# E B F# E B
})).s("gm_piano").gain(0.3)

// other · piano
const piano_2 = note("<A B C@2 D E F@2 G H I ~@8 A B J@2 D E F@2 G H K ~@47 L@4 ~>".pickRestart({
  A: "~@24 b2@17 ~ b2@5 ~", B: "f#2@11 ~ e2@8 ~ e2@3 b2@17 ~ b2@5 ~",
  C: "[f#2@11 ~ e2@8 ~ e2@3 b2@41 ~ b3@5 ~ f#2@11 ~ e2@11 ~]/2", D: "b2@44 ~ f#3@3", E: "b3@41 ~ b3@5 ~",
  F: "[f#2@11 ~ e2@11 ~ b2@35 ~ a#3@11 ~ g#3@17 ~ g#3@5 ~]/2", G: "g3@17 ~ g3@5 ~ f#3@17 ~ f#3@5 ~", H: "e2@47 ~",
  I: "f#2@14 ~@4 f#2@5 ~ f#2@23 ~", J: "[f#2@11 ~ e2@8 ~ e2@3 b2@38 ~@4 b3@5 ~ f#2@11 ~ e2@11 ~]/2",
  K: "f#2@17 ~ f#2@5 ~ f#2@23 ~",
  L: "[~@8 b2@17 ~ b3@5 ~ f#3@11 ~ e3@11 ~ b2@17 ~ b3@5 ~ f#3@11 ~ e3@11 ~ b2@18 b3@6 ~ f#3@12 ~ e3@11 ~@39]/4",
})).s("gm_piano").gain(0.25)

// bass · synth bass 2
const bass = note(`<
  A B C@2 D E F@2 G H I J K J L J M N O P B Q@2 D E F@2 G H R J K J L J M S T@2 U V W@3 X@2 Y@2 Z AA AB@2 AC@2 AD AE
  AF@3 AG@2 AH@2 AI@2 AJ AK AL@2 AC@2 AD AE AF@3 AM@6
>`.pickRestart({
  A: "~@24 b1@17 ~ b1@5 ~", B: "f#1@10 ~@2 e1@7 ~@2 e1@3 b1@16 ~@2 b1@5 ~",
  C: "[f#1@10 ~@2 e1@7 ~@2 e1@3 b1@40 ~@2 b2@5 ~ f#1@10 ~@2 e1@10 ~@2]/2", D: "b1@43 ~@2 f#2@3", E: "b2@40 ~@2 b2@5 ~",
  F: "[f#1@10 ~@2 e1@10 ~@2 b1@34 ~@2 a#2@10 ~@2 g#2@16 ~@2 g#2@5 ~]/2", G: "g2@16 ~@2 g2@5 ~ f#2@16 ~@2 f#2@5 ~",
  H: "e1@23 ~", I: "f#1@13 ~@5 f#1@5 ~ f#1@22 ~@2", J: "e2@16 ~@2 e2@5 ~ f#2@16 ~@2 f#2@5 ~",
  K: "b1@5 ~ a#1@5 ~ g#1@5 ~ f#1@5 ~", L: "d#2@16 ~@2 d#2@5 ~ e2@10 ~@2 f#2@10 ~@2",
  M: "b1@10 ~@2 a#1@10 ~@2 g#1@16 ~@2 g#1@5 ~", N: "g#1@10 ~@2 f#1@10 ~@2 e2@16 ~@2 e2@3 ~@3",
  O: "e2@16 ~@2 e2@5 ~ f#2@22 ~@2", P: "f#2@22 ~@2 b1@16 ~@2 b1@5 ~",
  Q: "[f#1@10 ~@2 e1@7 ~@2 e1@3 b1@37 ~@5 b2@5 ~ f#1@10 ~@2 e1@10 ~@2]/2", R: "f#1@16 ~@2 f#1@5 ~ f#1@22 ~@2",
  S: "g#1@10 ~@2 f#1@10 ~@2 e2@16 ~@2 e2@5 ~", T: "[e2@16 ~@2 e2@5 ~ f#2@16 ~@2 f#2@28 ~@2 b1@16 ~@2 b2@5 ~]/2",
  U: "f#2@10 ~@2 e2@10 ~@2 b1@16 ~@2 b2@5 ~", V: "f#2@10 ~@2 e2@10 ~@2 b1@17 ~ b2@5 ~",
  W: "[f#2@11 ~@2 e2@11 ~@2 b1@77 ~ e2@16 ~@2 e2@5 ~ f#2@16]/3",
  X: "[~@2 f#2@5 ~ b1@10 ~@2 a#1@10 ~@2 g#1@10 ~@2 f#1@10 ~@2 e1@16 ~@2 e1@5 ~ f#1@16]/2",
  Y: "[~@2 f#1@5 ~ d#1@16 ~@2 d#1@5 ~ e1@10 ~@2 f#1@10 ~@2 e1@16 ~@2 e1@5 ~ f#1@16]/2",
  Z: "~@2 f#1@5 ~ b1@10 ~@2 a#1@10 ~@2 g#1@16", AA: "~@2 g#1@5 ~ g#1@10 ~@2 f#1@10 ~@2 e1@16",
  AB: "[~@2 e1@5 ~ e1@16 ~@2 e1@5 ~ f#1@46 ~@2 e2@16]/2",
  AC: "[~@2 e2@5 ~ f#2@16 ~@2 f#2@5 ~ b1@10 ~@2 a#1@10 ~@2 g#1@10 ~@2 f#1@10 ~@2 e2@16]/2",
  AD: "~@2 e2@5 ~ f#2@16 ~@2 f#2@5 ~ d#2@16", AE: "~@2 d#2@5 ~ e2@10 ~@2 f#2@10 ~@2 e2@16",
  AF: "[~@2 e2@5 ~ f#2@16 ~@2 f#2@5 ~ b1@10 ~@2 a#1@10 ~@2 g#1@16 ~@2 g#1@5 ~ g#1@10 ~@2 f#1@10 ~@2 e2@16 ~@2 e2@5 ~ e2@16]/3",
  AG: "[~@2 e2@5 ~ f#2@22 ~@2 f#2@22 ~@2 e2@16 ~@2 e2@5 ~ f#2@16]/2",
  AH: "[~@2 f#2@5 ~ b1@10 ~@2 a#1@10 ~@2 g#1@10 ~@2 f#1@10 ~@2 e2@16 ~@2 e2@5 ~ f#2@16]/2",
  AI: "[~@2 f#2@5 ~ d#2@16 ~@2 d#2@5 ~ e2@10 ~@2 f#2@10 ~@2 e2@16 ~@2 e2@5 ~ f#2@16]/2",
  AJ: "~@2 f#2@5 ~ b1@10 ~@2 a#1@10 ~@2 g#1@16", AK: "~@2 g#1@5 ~ g#1@10 ~@2 f#1@10 ~@2 e2@16",
  AL: "[~@2 e2@5 ~ e2@16 ~@2 e2@5 ~ f#2@22 ~@2 f#2@22 ~@2 e2@16]/2",
  AM: "[~@2 e2@5 ~ f#2@22 ~@2 f#2@22 ~@2 b1@16 ~@2 b2@5 ~ f#2@10 ~@2 e2@10 ~@2 b1@16 ~@2 b2@5 ~ f#2@10 ~@2 e2@10 ~@2 b1@17 ~ b2@5 ~@2 f#2@11 ~@2 e2@12 ~ b1@70 ~@15]/6",
})).s("gm_synth_bass_2").gain(0.4)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@11 A B C D A E@2 F@2 ~@10 A B C D A E@2 F@2 ~@4 G H@2 I@2 J@2 K@8 L@3 H@2 I@2 J@2 K@8 M@3 ~@4
>`.pickRestart({
  A: "[g#3,g#4]@23 ~ [a#3,a#4]@17 ~ [f#3,f#4]@3 [c#3,c#4]@3", // G# A# F# C#
  B: "[d#3,d#4]@11 ~ [c#3,c#4]@11 ~ [b3,b4]@11 ~ [a#3,a#4]@11 ~", C: "[g#3,g#4]@23 ~ [a#3,a#4]@17 ~ [a#3,a#4]@5 ~",
  D: "[f#3,f#4]@23 ~ [g#3,g#4]@11 ~ [a#3,a#4]@11 ~", // F# G# A#
  E: "[[f#3,f#4]@11 ~ [c#4,c#5]@11 ~ [b3,b4]@35 ~ [b3,b4]@5 ~ [c#4,c#5]@3 [d#4,d#5]@3 [e4,c#5,e5]@17 ~ [e4,c#5,e5]@3 [e4,c#5,e5]@3]/2", // F# C# B C# D# C#m
  F: "[[e4,c#5,e5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [c#4,a#4,c#5]@3 [c#4,a#4,c#5]@3 [c#4,a#4,c#5]@3 [c#4,c#5]@47 ~@25]/2", // C#m G#m F# C#
  G: "~@8 [g#3,g#4]@23 ~ [a#3,a#4]@16", // G# A#
  H: "[~@2 [f#3,f#4]@3 [c#3,c#4]@3 [d#3,d#4]@11 ~ [c#3,c#4]@11 ~ [b3,b4]@11 ~ [a#3,a#4]@11 ~ [g#3,g#4]@23 ~ [a#3,a#4]@16]/2", // F# C# D# C# B A# G# A#
  I: "[~@2 [a#3,a#4]@5 ~ [f#3,f#4]@23 ~ [g#3,g#4]@11 ~ [a#3,a#4]@11 ~ [g#3,g#4]@23 ~ [a#3,a#4]@16]/2", // A# F# G# A# G# A#
  J: "[~@2 [f#3,f#4]@3 [c#3,c#4]@3 [f#3,f#4]@11 ~ [c#4,c#5]@11 ~ [b3,b4]@35 ~ [b3,b4]@5 ~ [c#4,c#5]@3 [d#4,d#5]@3 [e4,c#5,e5]@16]/2", // F# C# F# C# B C# D# C#m
  K: "[~@2 [e4,c#5,e5]@3 [e4,c#5,e5]@3 [e4,c#5,e5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [c#4,a#4,c#5]@3 [c#4,a#4,c#5]@3 [c#4,a#4,c#5]@3 [c#4,c#5]@47 ~ [g#3,g#4]@23 ~ [a#3,a#4]@17 ~ [f#3,f#4]@3 [c#3,c#4]@3 [d#3,d#4]@11 ~ [c#3,c#4]@11 ~ [b3,b4]@11 ~ [a#3,a#4]@11 ~ [g#3,g#4]@23 ~ [a#3,a#4]@17 ~ [a#3,a#4]@5 ~ [f#3,f#4]@23 ~ [g#3,g#4]@11 ~ [a#3,a#4]@11 ~ [g#3,g#4]@23 ~ [a#3,a#4]@17 ~ [f#3,f#4]@3 [c#3,c#4]@3 [f#3,f#4]@11 ~ [c#4,c#5]@11 ~ [b3,b4]@35 ~ [b3,b4]@4]/8", // C#m G#m F# C# G# A# F# C# …
  L: "[~@2 [c#4,c#5]@3 [d#4,d#5]@3 [e4,c#5,e5]@17 ~ [e4,c#5,e5]@3 [e4,c#5,e5]@3 [e4,c#5,e5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [c#4,a#4,c#5]@3 [c#4,a#4,c#5]@3 [c#4,a#4,c#5]@3 [c#4,c#5]@47 ~ [g#3,g#4]@23 ~ [a#3,a#4]@16]/3", // C# D# C#m G#m F# C# G# A#
  M: "[~@2 [c#4,c#5]@3 [d#4,d#5]@3 [e4,c#5,e5]@17 ~ [e4,c#5,e5]@3 [e4,c#5,e5]@3 [e4,c#5,e5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [d#4,b4,d#5]@3 [c#4,a#4,c#5]@3 [c#4,a#4,c#5]@3 [c#4,a#4,c#5]@3 [c#4,c#5]@47 ~@41]/3", // C# D# C#m G#m F# C#
})).s("gm_overdriven_guitar").gain(0.3)

// other · pizzicato strings
const pizzicato_strings = note(`<
  A B C D E ~ F G ~@3 H I H J K L M N O B C D E ~ F G ~@3 H I H J K L M N O B P Q ~ R S@2 T U V@2 W X Y@2 Z AA AB@3 AC
  AD S@2 T U V@2 W X Y@2 Z AA AB@3 AC AE@3 AF ~
>`.pickRestart({
  A: "~@15 [d#5,f#5,b5] ~@5 [d#5,f#5,b5] ~@2", // B
  B: "~@6 [c#5,f#5,a#5]@2 ~@7 [b4,e5,g#5]@2 ~@13 [d#5,f#5,b5]@2 ~@10 [d#5,f#5,b5]@2 ~@4", // F# E B
  C: "~@6 [c#5,f#5,a#5]@2 ~@7 [b4,e5,g#5]@2 ~@31", // F# E
  D: "~@24 d#6@2 ~ c#6@2 ~ a#5@2 ~ f#5@2 ~ e5@2 ~ g#5@2 ~ b5@2 ~ e6@2 ~",
  E: "d#6@2 ~@4 [d#5,f#5,b5]@2 ~@10 [d#5,f#5,b5]@2 ~@10 [d#5,f#5,b5]@2 ~@7 [d#5,f#5,b5]@2 ~ [d#5,f#5,b5]@2 ~@4", // B
  F: "d#6@2 ~ c#6@2 ~ a#5@2 ~ f#5@2 ~ e5@2 ~ g#5@2 ~ b5@2 ~ e6@2 ~@7 [d#5,f#5,b5]@2 ~@10 [d#5,f#5,b5]@2 ~@4", // B
  G: "~@6 [d#5,f#5,b5]@2 ~@7 [c#5,f#5,a#5]@2 ~@31", H: "~@3 b4 ~@2 f#5 ~@2 b4 ~@5 d#5 ~@2 f#5 ~@2 d#5 ~@2",
  I: "d#5@2 ~ b4@2 ~ b5@2 ~ d#6@2 ~@4 f#5@2 ~ d#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~ b4@2 ~ c#5@2 ~ f#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~",
  J: "~@3 f#5 ~@2 c#5 ~@2 f#5 ~@5 g#5 ~@5 a#5 ~@2", K: "~@3 g#5 ~@2 e5 ~@2 g#5 ~@5 c#5 ~@2 f#5 ~@2 c#5 ~@2",
  L: "d#5@2 ~ b4@2 ~ f#4@2 ~ d#5@2 ~ c#5@2 ~ a#4@2 ~ f#4@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~ b4@2 ~ c#5@2 ~ f#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~",
  M: "b4@2 ~ d#5@2 ~ f#5@2 ~ d#5@2 ~ b4@2 ~ a#4@2 ~ b4@2 ~ d#5@2 ~ e5@2 ~@4 e5@2 ~@4 b4@2 ~@4 e5@2 ~@4",
  N: "~@3 e5 ~@2 b4 ~@2 e5 ~@5 b5 ~@2 f#5 ~@2 b5 ~@2", O: "~@3 b5 ~@2 f#5 ~@2 b5 ~@5 [d#5,f#5,b5] ~@5 [d#5,f#5,b5] ~@2",
  P: "~@6 [c#5,f#5,a#5]@2 ~@7 [b4,e5,g#5]@2 ~@13 [b4,d#5,f#5]@2 ~@10 [b4,d#5,f#5]@2 ~@4", // F# E B
  Q: "~@3 [a#4,c#5,f#5] ~@4 [g#4,b4,e5] ~@15", R: "~@7 b4 ~@2 f#5 ~@2 b4 ~@5 d#5 ~@2 f#5 ~",
  S: "[~@2 d#5@2 ~@4 d#5@2 ~ b4@2 ~ b5@2 ~ d#6@2 ~@4 f#5@2 ~ d#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~ b4@2 ~ c#5@2 ~ f#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~@7 b4@2 ~@4 f#5@2 ~@4 b4@2 ~@10 d#5@2 ~@4 f#5@2 ~@2]/2",
  T: "~ d#5 ~@5 f#5 ~@2 c#5 ~@2 f#5 ~@5 g#5 ~@4", U: "~ a#5 ~@5 g#5 ~@2 e5 ~@2 g#5 ~@5 c#5 ~@2 f#5 ~",
  V: "[~@2 c#5@2 ~@4 d#5@2 ~ b4@2 ~ f#4@2 ~ d#5@2 ~ c#5@2 ~ a#4@2 ~ f#4@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~ b4@2 ~ c#5@2 ~ f#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~ b4@2 ~ d#5@2 ~ f#5@2 ~ d#5@2 ~ b4@2 ~ a#4@2 ~ b4@2 ~ d#5@2 ~ e5@2 ~@4 e5@2 ~@4 b4@2 ~@2]/2",
  W: "~ e5 ~@5 e5 ~@2 b4 ~@2 e5 ~@5 b5 ~@2 f#5 ~", X: "~ b5 ~@5 b5 ~@2 f#5 ~@2 b5 ~@5 b4 ~@2 f#5 ~",
  Y: "[~@2 b4@2 ~@10 d#5@2 ~@4 f#5@2 ~@4 d#5@2 ~@4 d#5@2 ~ b4@2 ~ b5@2 ~ d#6@2 ~@4 f#5@2 ~ d#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~ b4@2 ~ c#5@2 ~ f#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~@7 b4@2 ~@4 f#5@2 ~@2]/2",
  Z: "~ b4 ~@5 d#5 ~@2 f#5 ~@2 d#5 ~@5 f#5 ~@2 c#5 ~", AA: "~ f#5 ~@5 g#5 ~@5 a#5 ~@5 g#5 ~@2 e5 ~",
  AB: "[~@2 g#5@2 ~@10 c#5@2 ~@4 f#5@2 ~@4 c#5@2 ~@4 d#5@2 ~ b4@2 ~ f#4@2 ~ d#5@2 ~ c#5@2 ~ a#4@2 ~ f#4@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~ b4@2 ~ c#5@2 ~ f#5@2 ~ c#5@2 ~ b4@2 ~ f#4@2 ~ b4@2 ~ d#5@2 ~ f#5@2 ~ d#5@2 ~ b4@2 ~ a#4@2 ~ b4@2 ~ d#5@2 ~ e5@2 ~@4 e5@2 ~@4 b4@2 ~@4 e5@2 ~@10 e5@2 ~@4 b4@2 ~@2]/3",
  AC: "~ e5 ~@5 b5 ~@2 f#5 ~@2 b5 ~@5 b5 ~@2 f#5 ~", AD: "~ b5 ~@5 b4 ~@2 f#5 ~@2 b4 ~@5 d#5 ~@2 f#5 ~",
  AE: "[~@2 b5@2 ~@10 [d#5,f#5,b5]@2 ~@10 [d#5,f#5,b5]@2 ~@10 [c#5,f#5,a#5]@2 ~@7 [b4,e5,g#5]@2 ~@13 [d#5,f#5,b5]@2 ~@10 [d#5,f#5,b5]@2 ~@10 [c#5,f#5,a#5]@2 ~@7 [b4,e5,g#5]@2 ~@13 [b4,d#5,f#5]@2 ~@10 [b4,d#5,f#5]@2 ~@11 [a#4,c#5,f#5]@2 ~@7]/3", // B F# E B F# E B F#
  AF: "~ [g#4,b4,e5]@2 ~@45", // E
})).s("gm_pizzicato_strings").gain(0.3)

// other · alto sax
const alto_sax = note("<~@42 A@2 B@4 C D E@3 F@2 G@2 H@4 I@2 J@2 K L@4 ~@12>".pickRestart({
  A: "[~@41 f#4 ~ f#4 g#4@3 b4@2 ~ c#5@3 b4@2 ~ c#5 d#5@3 f#5@32 ~ d#5@3]/2",
  B: "[e5@3 d#5@4 ~ c#5@2 ~ c#5@5 ~ c#5@8 b4@3 b4@26 ~@11 g#5@3 ~ g#5@8 f#5@2 ~ f#5@6 g#5@2 ~ f#5@5 ~ d#5@6 c#5 b4 [f#4,g#4] c#5 b4 c#5@14 c#5@2 d#5@2 ~ e5@3 d#5@2 ~@2 c#5@2 d#5@3 e5@2 d#5 c#5 d#5 ~ [d#5,e5]@2 c#5 ~ d#5@2 f#5@3 d#5@15 ~@3 d#5@3 f#5@2 ~ d#5@3 c#5@2 b4 c#5@10, ~@5 b4 ~@59 e5 ~@30, ~@131 d#5@2 ~@59]/4", // F#sus2 Emaj7
  C: "~@9 f#4 ~ [g#4,a#4] ~ b4 c#5@3 c#5@8 ~ b4@2 ~ c#5@6 c#5@6 b4 ~ g#4 c#5@3 b4, ~@14 g#4 ~@9", // G#sus2
  D: "~ g#4 c#5@3 d#5@4 ~ e5 d#5@15 c#5 ~ a#4 g#4 ~ f#4 g#4@2 ~ b4@12 ~, ~@14 b4 ~@9",
  E: "[~@5 d#5@3 e5@2 ~ f#5@3 g#5@3 ~ g#5@5 f#5@2 ~ f#5@9 ~@3 f#6@88 ~@18]/3",
  F: "[~@11 d#4@2 ~ d#5@3 e5@3 d#5@2 ~ c#5@3 b4@3 g#4@3 b4@24 ~@40]/2",
  G: "[~@8 g#5@2 f#5@3 ~ d#5@3 b4@3 b4@3 g#4@3 b4@3 b4@9 c#5@3 g#4@15 ~@40]/2",
  H: "[~@14 f#5@3 d#5@2 ~ d#5@2 ~ f#5@12 ~ b5@17 g#5@2 ~@2 g#5@24 d#5@3 e5@3 ~ d#5@7 c#5@3 b4@3 c#5@15 ~@3 d#5@3 e5@3 g#5@5 ~ a5@2 ~ f#5@3 ~ f#5@14 b5@36 ~@4, ~@133 g#5@2 ~@57]/4",
  I: "[~@38 d#5@2 f#5@4 d#5@3 c#5@3 a#4@3 b4@3 f#5@5 ~ g#4@3 ~ b4@14 ~@16]/2",
  J: "[~@33 c#5@2 ~ c#5@17 d#5@3 b4@23 ~@17]/2", K: "~@33 c#5@2 ~@2 c#5 b4@4 c#5@2 ~@2 c#5@2, ~@18 d#5 ~@5",
  L: "[~ d#5 c#5 b4@3 c#5 ~@2 c#5@2 ~@2 c#5 b4@3 c#5@3 d#5@5 ~ f#5@32 ~@11 d#5@3 e5@3 f#5@2 f#5@27 ~ f#6@66 ~@21, ~@6 d#5 ~@89]/4",
})).s("gm_alto_sax").gain(0.45).pan(0.3)

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

// drums · rim
const rim = s("rim").struct("<~@19 A B@10 ~@8 B@3 C ~@34 D E@2 F ~@2>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@13 x ~@34", D: "~@11 x", E: "~@5 x ~@5 x", F: "~@10 x ~@12 x",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@11 A@8 ~@11 A@8 ~@5 B@8 C B@3 D B@3 E B@3 F B@3 G H B@3 D B@3 I ~@5>".pickRestart({
  A: "~ x ~ x", B: "~@5 x ~@5 x", C: "~@6 x!3 ~@35 x ~@3", D: "~@2 x ~@8 x", E: "~@17 x ~@2 x ~@27",
  F: "~@5 x ~@2 x ~@3", G: "~@10 x ~@8 x ~@2 x ~", H: "~@11 x", I: "~@5 x ~@6",
})).gain(0.4)

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

// drums · low tom
const low_tom = s("lt").struct("<~@33 A ~@13 B ~@3 C ~ D ~ D ~@3 E F ~ G ~ G ~@3 H ~ D ~ D ~@9>".pickRestart({
  A: "~@7 x", B: "~ x ~@22", C: "~@26 x ~@2 x ~@18", D: "~@29 x ~@18", E: "~@22 x!2", F: "x!4 ~@20", G: "~@5 x ~@42",
  H: "~@10 x!6 ~@8",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@14 A ~@2 B ~@15 A ~@2 B ~@8 C ~ C ~ D ~@3 E ~@7 F ~@8 E ~@9 G H>".pickRestart({
  A: "~@7 x", B: "~@3 x ~@4", C: "~ x ~@22", D: "~@13 x ~@10", E: "~@17 x ~@30", F: "~@41 x ~@6",
  G: "~@11 x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~@2 x", H: "~@2 x ~@2 x ~@42",
})).gain(0.1)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct(`<
  ~@80
  [~@23 x]
  [~ x ~@2 x ~@2 x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~@13]
>`).gain(0.05)

// drums · mid tom
// … 22 more lines