Strudelify

Credo

Pooh

KeyD majorTempo56 bpm
0:00/0:00
// Credo — Pooh
// 56 bpm, 4/4, key D 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 23, 4/4 at bar 23, 2/4 at bar 26, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 63 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(56/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 · harpsichord
const harpsichord = note("<~@20 A B C D E F G H ~@14 I J K L M N O P ~@13>".pickRestart({
  A: "~@19 [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5]", // Em
  B: "~ [b4,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5]", // Em G C
  C: "~ [c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5]", // C G Am
  D: "~ [a4,c5,e5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5]", // Am Em D
  E: "~ [d5,f#5,a5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,d5,g5] ~@2 [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // D Em G
  F: "[b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G C G
  G: "[b4,d5,g5] ~ [b4,d5,g5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~@2 [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5]", // G Am Em
  H: "~ [b4,e5,g5] ~ [b4,e5,g5] ~@28", I: "~@24 [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~",
  J: "[b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~", // Em G C
  K: "[c5,e5,g5] ~ [c5,e5,g5]!2 ~ [c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5]", // C G Am
  L: "~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5]!2 ~ [d5,f#5,a5] ~", // Am Em D
  M: "[d5,f#5,a5] ~ [d5,f#5,a5] ~ [d5,f#5,a5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // D Em G
  N: "[b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G C G
  O: "[b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~", // G Am Em
  P: "[b4,e5,g5] ~ [b4,e5,g5] ~ [b4,e5,g5] ~@27", // Em
})).s("gm_harpsichord").gain(0.3).pan(0.4)

// bass · electric bass finger
const bass = note(`<
  A@6 B C D E@2 F G H I J@2 K@2 L M ~@6 N@3 O P Q@2 R S T U V W X Y Z ~@6 AA@3 AB AC AD AE@3 AF AG@4
>`.pickRestart({
  A: "[~@25 d3@16 ~ d3@16 d3@13 a2@4 d2@12 a2@4 ~ d3@16 ~ d3@16 d3@13 a2@4 d2@12 ~ a2@3 ~ d2@6 d2@2 d2@4 d3@4 d2@5 ~@2 d2 ~ d2@4 d3@4]/6",
  B: "d2@5 ~ d2 ~ d2@4 d3@4 d2@5 ~ d2 ~ d2@2 ~@2 d3@4", C: "d2@4 d3@2 a2@2 d2@4 a2@2 d3@2 d2@5 ~ d2 ~ d2@3 ~ a2@2 d3@2",
  D: "d2@4 ~@2 d2 ~ d2@3 ~ a2@2 d3@2 d2@5 ~ d2 ~ d2@2 a1 b1 d2 e2 d2 b1",
  E: "[d2@4 ~@2 d2 ~ d2@5 ~ a1 ~ d2@5 ~ d2 ~ d2@2 d3@2 ~ a2 b2 d3@2 d2@6 d3 ~ d3@5 ~ d3@2 d2@4 d3@2 d3@2 d3@2 f#2@2 g2 g#2 a2]/2",
  F: "~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@4 b2@3", G: "~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@2 a2@2 f#2 g2 a2",
  H: "~ d2@4 ~@2 d2 ~ d2@5 ~ a1 ~ d2@5 ~@2 d2 ~ d2@2 d3@2 a2 b2",
  I: "d3@2 d2@6 d3 ~ d3@5 ~ d3@2 d2@4 d3@2 d3@2 d3@2 f#2@2 g2 g#2",
  J: "[a2 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@4 b2@4 d2@5 ~ d2 ~ d2@3 ~@2 a2@4 d2@5 ~ d2 ~ d2@2 a2@2 f#2]/2",
  K: "[g2 a2 ~ d2@6 d3 ~ d3@4 a2@3 ~ d2@5 ~ d2 ~ d2@3 ~ b2@3 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@3 ~ f#2]/2",
  L: "g2 a2 ~ d2@2 d3 ~ d3 ~ d3@2 ~@2 d3 ~ d3 ~ d3@2 d2@2 d3 ~ d3 ~ d3@2 d3 ~ d3 ~ d3",
  M: "~ d3@2 d2@4 d3 ~ d3@5 ~ d3@4 e2@2 ~@11",
  N: "[~@5 d2@8 d3@8 ~ d2@7 d3@7 ~@2 d2@8 d3@8 ~ d2@8 a2@4 d3@4 d2@4 d3@2 a2@2 d2@4 a2@2 ~ d3 ~ d2@5 ~ d2 ~]/3",
  O: "d2@3 ~ a2@2 d3 ~ d2@4 ~@2 d2 ~ d2@3 ~ a2@2 d3@2 d2@5 ~ d2 ~",
  P: "d2@2 a1 b1 d2 e2 d2 b1 d2@4 ~@2 d2 ~ d2@4 ~@2 a1 ~ d2@5 ~ d2 ~",
  Q: "[d2@2 d3@2 a2 b2 d3@2 d2@5 ~ d3 ~ d3@5 ~ d3@2 d2@4 d3@2 d3 d3@2 f#2@2 g2 g#2 a2 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 ~ d2@5 ~ d2 ~]/2",
  R: "d2@4 b2@4 d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~",
  S: "d2@2 a2@2 f#2 g2 a2 ~ d2@4 ~@2 d2 ~ d2@4 ~@2 a1 ~ d2@5 ~ d2 ~",
  T: "d2@2 d3@2 a2 b2 d3@2 d2@6 d3 ~ d3@5 ~ d3@2 d2@4 d3@2 d3@2",
  U: "d3@2 f#2@2 g2 g#2 a2 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 ~ d2@5 ~ d2", V: "~ d2@4 b2@4 d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2",
  W: "~ d2@2 a2@2 f#2 g2 a2 ~ d2@6 d3 ~ d3@4 a2@3 ~ d2@5 ~ d2", X: "~ d2@3 ~ b2@3 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2",
  Y: "~ d2@3 ~ f#2 g2 a2 ~ d2@2 d3!2 ~ d3@2 ~@2 d3 ~ d3 ~ d3@2 d2@2 d3 ~ d3 ~ d3@2",
  Z: "d3 ~ d3 ~ d3 ~ d3@2 d2@4 d3 ~ d3@4 ~@2 d3@4 e2@2 ~@6",
  AA: "[~@6 d2@6 d3 ~ d3@8 d2@8 ~ d3@7 ~ d2@6 d3 ~ d3@7 ~ d2@4 d3 ~ d3@2 a2@4 d3@4 ~ d2@6 d3 ~ d3@8 d2@4 d3 ~ d3 ~]/3",
  AB: "d3@7 ~ d2@4 d3 ~ d3 ~ d3@7 ~ d2@4 d3 ~ d3 ~", AC: "d2@2 a1 b1 d2 e2 d2 b1 d2@5 ~ d2 ~ d2@5 ~ a1 ~ d2@6 d2 ~",
  AD: "d2@2 f#2@2 g2 g#2 a2 ~ d2@4 ~@2 d2 ~ d2@4 a2@3 ~ d2@5 ~ d2 ~",
  AE: "[d2@2 a1 b1 d2 e2 d2 b1 d2@5 ~ d2 ~ d2@3 a2@4 ~ d2@5 d2 ~ d2@3 ~ b2@3 ~ d2@5 ~ d2 ~ d2@3 ~ a2@4 d2@5 ~ d2 ~ d2@2 a1 [b1,d2] e2 d2 b1 d2@3 ~ d3 ~ d3 ~ a2@3 g#2@3 g#2 a2 d2@4 ~@2 d2@2 d3 ~]/3", // Bm
  AF: "[a2,b2] ~ b2@2 ~ d2@4 ~@2 d2@2 b2 ~@2 a2 ~ a2@2 ~ d2@5 ~ d2 d2@2 a1 b1", // Asus2
  AG: "[d2 e2 d2 b1 d2@5 ~ d2@2 d3@2 ~ a2@3 ~@2 d2@5 d2@2 f#3@2 e3 ~ e3@2 d3 ~ d2@4 ~@2 d2@2 d3!4 ~ a2@2 ~ d2@4 ~ d2 ~ d3 d3@2 e3@2 f#3@2 ~ d2@4 ~@2 d2@2 d3!4 ~ a2@2 d2@4 ~@2 d2 ~ b2@2 d3@2 ~@2 b2@2 d2@4 ~@2 d2@2 b2@2 ~ a2@2 f#2@2 d2@5 ~ d2@2 f#3@2 e3 ~ e3@2 d3 ~, ~@47 d3@2 ~@29 d3@2 ~@48]/4",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · string ensemble 2
const string_ensemble_2 = note("<A@6 B C B C D@2 E D F@2 G@5 ~@6 H I J@8 K@6 ~@6 L@8 M@4 N O>".pickRestart({
  A: "[~@25 [f#3,a3]@17 [g3,b3]@17 [a3,c#4]@16 [f#3,a3]@16 ~ [f#3,a3]@17 [g3,b3]@17 [a3,c#4]@16 [f#3,a3]@16 ~ [f#3,a3]@16 [g3,b3]@16 ~]/6", // F#m G A F#m G A F#m G
  B: "[a3,c#4] [f#3,a3]", C: "[f#3,a3] [g3,b3]", D: "~ [f#3,a3]@16 [g3,b3]@15", E: "~ [a3,c#4]@16 [f#3,d4]@15",
  F: "~ [f#3,a3]@8 [g3,b3]@7", // F#m G
  G: "[~@2 [a3,c#4]@16 ~ [f#3,d4]@16 [f#3,a3]@16 [g3,b3]@16 [a3,c#4]@16 [f#3,d4]@16 [b2,g3]@16 [c#3,e3,a3]@16 [d3,f#3,a3]@16 ~@13]/5", // A D F#m G A D Em A …
  H: "~@5 [f#3,a3]@16 ~ [g3,b3]@10", I: "~@6 [a3,c#4]@16 ~ [f#3,a3]@9",
  J: "[~@7 [f#3,a3]@16 ~ [g3,b3]@16 [a3,c#4]@16 [f#3,a3]@16 [f#3,a3]@16 [g3,b3]@16 [f#3,a3]@16 [g3,b3]@15 [f#3,a3]@16 ~ [g3,b3]@16 [a3,c#4]@16 [f#3,d4]@16 [f#3,a3]@16 [g3,b3]@16 [f#3,a3]@16 [g3,b3]@8]/8", // F#m G A F#m G F#m G F#m …
  K: "[~@8 [f#3,a3]@16 ~ [g3,b3]@16 [a3,c#4]@16 [f#3,d4]@16 [f#3,a3]@16 [g3,b3]@16 [a3,c#4]@16 [f#3,d4]@16 [b2,g3]@15 [c#3,e3,a3]@16 [d3,f#3,a3]@16 ~@8]/6", // F#m G A D F#m G A D …
  L: "[~@6 [f#3,a3]@16 [g3,b3]@16 ~ [a3,c#4]@16 [f#3,a3]@16 ~ [f#3,a3]@16 [g3,b3]@16 [a3,c#4]@16 [f#3,a3]@16 [f#3,a3]@16 [g3,b3]@16 [a3,c#4]@16 [f#3,a3]@16 [f#3,a3]@15 ~ [g3,b3]@15 [a3,c#4]@16 [f#3,a3]@9]/8", // F#m G A F#m G A F#m G …
  M: "[~@6 [f#3,a3]@15 ~ [g3,b3]@15 [a3,c#4]@15 ~ [f#3,a3]@15 [f#3,a3]@15 ~ [g3,b3]@15 [a3,c#4]@15 ~ [f#3,a3]@13]/4", // F#m G A F#m G A F#m
  N: "~@2 [f#3,a3]@15 [g3,b3]@15", O: "~ [a3,c#4]@15 [f#3,a3]@15 ~",
})).s("gm_string_ensemble_2").gain(0.36)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A B C D E F G F H I J K L M N O P Q R S ~@6 T U V@2 W X@4 Y@7 ~@6 Z AA AB@2 AC@2 AD AE AF AG@3 AH AI
>`.pickRestart({
  A: "~@8 b4@3 g4@2 ~@3", B: "~ c#5@4 a4@4 e4@2 d4 ~@5 e4@6 ~ d4@4 ~@4", C: "~@2 f#4@6 d4@4 ~@7 b4@4 g4@6 ~@3",
  D: "~@4 c#5@4 a4@4 e4@2 d4 ~@5 e4@6 ~ d4@4 ~",
  E: "~@3 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 ~ g4@2 b4@4 g4@6", // D
  F: "~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@3 ~ d3@5 ~",
  G: "~@4 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 b4@4 g4@6", // D
  H: "d3@8 [a3,d4,f#4]@5 ~@3 d3@8 [d4,g4]@8", I: "~ d3@8 [d4,f#4]@8 d3@8 [d4,g4]@7",
  J: "~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@9", // F#m G
  K: "~@3 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@9", // A F#m
  L: "~ d3@8 [a3,d4,f#4]@5 ~@3 d3@8 ~ g4@6, ~@25 [b3,d4]@7", // D Bm
  M: "~@2 d3@7 ~ [d4,f#4]@8 d3@7 ~ [d4,g4]@6, ~@9 a3@8 ~@8 b3@7", // D G5
  N: "~@4 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@8", // F#m G
  O: "~@4 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@4 d4 ~ [f#4,a4] ~ [f#4,a4]@7", // A F#m
  P: "~@5 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@7", // F#m G
  Q: "~@5 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@7", // A F#m
  R: "~@5 d4 ~ [g4,b4] ~ [g4,b4]@10 ~@2 e4 ~ [a4,c#5] ~ [a4,c#5]@7", S: "~@5 d4 ~ [f#4,a4] ~ [f#4,a4]@8 ~@15",
  T: "~@9 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@4 d4@2 g4@2 b4@4", // D
  U: "g4@6 ~@2 e4@2 a4@2 c#5@4 ~ a4@5 ~@3 d3@2 a3@2 d3@3",
  V: "[~ d3@5 ~@5 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~@2 [d4,f#4]@3 ~@3 d4@2 g4@2 b4@4 g4@6 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@2]/2", // D
  W: "~@2 d3@5 ~ d3@8 [a3,d4,f#4]@5 ~@3 d3@8", // D
  X: "[[d4,g4]@8 d3@8 [d4,f#4]@8 d3@7 [d4,g4]@7 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@7 d4 ~ [g4,b4] ~ [g4,b4]@9 ~@3 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@9 ~ d3@8 [a3,d4,f#4]@5 ~@3 d3@8]/4", // G5 D G5 F#m G A F#m D
  Y: "[[b3,d4,g4]@8 d3@7 ~ [d4,f#4]@8 d3@7 ~ [d4,g4]@7 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@7 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@10 ~@2 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@6 ~@6 d4 ~ [g4,b4] ~ [g4,b4]@9 ~@3 e4 ~ [a4,c#5] ~ [a4,c#5]@9 ~@3 d4 ~ [f#4,a4] ~ [f#4,a4]@9 ~@3 d4 [g4,b4] ~ [g4,b4]@10 ~@2 e4 ~ [a4,c#5] ~ [a4,c#5]@8 ~@4 d4 ~ [f#4,a4] ~ [f#4,a4]@8 ~@10, ~@15 a3@8 ~@8 b3@7 ~@186]/7", // G D G5 F#m G A F#m G …
  Z: "~@10 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 ~ b4@3", // D
  AA: "~ g4@6 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@3",
  AB: "[~ d3@5 ~@6 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 b4@4 g4@6 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@2]/2", // D
  AC: "[~@2 d3@5 ~@5 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 b4@4 g4@6 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@2]/2", // D
  AD: "~@2 d3@5 ~@5 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@2 d4@2 g4@2 b4@3", // D
  AE: "~ g4@5 ~@3 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@3",
  AF: "~ d3@5 ~@4 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 g4@2 b4@3 ~", // D
  AG: "[g4@5 ~@2 e4@2 a4@2 c#5@4 a4@5 ~@3 d3@2 a3@2 d3@3 d3@5 ~@5 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@3 d4@2 ~ b4@3 ~ g4@5 ~@3 e4@2 a4@2 c#5@4 a4@5 ~@2 d3@2 a3@2 d3@3 ~ d3@4, ~@28 g4 ~@19]/3", // D
  AH: "~@6 [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~@2 d4@2 g4@2 b4@3 ~ g4@5", // D
  AI: "~@3 e4@2 a4@2 c#5@4 a4@5 ~@2 d3@2 a3@2 d3@3 ~ d3@5 ~",
})).s("gm_electric_guitar_clean").gain(0.23).pan(0.6)

// other · electric guitar jazz
const electric_guitar_jazz = note("<A@4 B C D E F ~@40 G H I J K L M N O P Q R S T>".pickRestart({
  A: "[~@27 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@4 d4@2 ~ e4@2 d4@2 ~@2 d4@2 g4@2 d4@4 d4@4 ~ d4@2 ~@2 e4@2 a4@2 e4@2 ~@2 e4@2 ~@6 a3@2 d4@2 ~@15 d4@3 ~@14 g4@10 ~ d4@4, ~@94 a3@14 ~@3 d4@11 ~@6]/4", // D
  B: "g4@2 d4@3 ~ d4@6 d4@4 a3@2 d4@3 ~@2 a3@4 a3@3 ~ d3",
  C: "~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3@2 d3@2 ~ d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2",
  D: "d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~",
  E: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~",
  F: "d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~",
  G: "~@6 d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3@2 d3@2 d3 ~@2 d3@2 d3",
  H: "~ d3 ~ d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3",
  I: "~ d3 ~ d3 ~ d3 ~@2 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2",
  J: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2",
  K: "d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3 ~ d3@2 d3 ~ d3@2",
  L: "d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~",
  M: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 d3@2 d3 ~ d3@2 d3",
  N: "~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2 d3",
  O: "~ d3!2 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~",
  P: "d3!2 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3!2 ~ d3 ~",
  Q: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 d3@2 d3 ~ d3 ~ d3",
  R: "~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3!2 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~",
  S: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3!2 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3",
  T: "~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3!2 ~ d3@2 d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~",
})).s("gm_electric_guitar_jazz").gain(0.23).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@4 A@2 B C D ~@20 E F G ~@21 H I J K L M N@2 O P>".pickRestart({
  A: "[~@31 [d4,f#4]@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,g4] ~ [d4,g4] ~@2 [d4,g4] ~ [d4,g4]@3 ~ [d4,g4] ~ [d4,g4]@3 ~]/2", // D G5
  B: "[c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2", // C#m D
  C: "[d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@3 ~ [d4,g4] ~ [d4,g4]@3 ~", // D G5
  D: "[c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@3 ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@3 ~", // C#m D
  E: "~@7 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~@2 [d4,f#4]@3 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2", // D G5
  F: "~@2 [d4,g4] ~ [d4,g4]@3 ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@3 ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@2", // G5 C#m D
  G: "~@2 [d4,f#4] ~ [d4,f#4]@3 ~@25", // D
  H: "~@8 [d4,f#4]@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2", // D G5
  I: "~@2 [d4,g4] ~ [d4,g4]@2 ~@2 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@2", // G5 C#m D
  J: "~@2 [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,g4]!2 ~ [d4,g4] ~ [d4,g4]@3", // D G5
  K: "~ [d4,g4] ~ [d4,g4]@2 ~@2 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3", // G5 C#m D
  L: "~ [d4,f#4] [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@3 ~", // D G5
  M: "[d4,g4] [d4,g4]@2 ~@2 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 [d4,f#4] ~", // G5 C#m D
  N: "[[d4,f#4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2 [d4,g4] ~ [d4,g4] ~ [d4,g4] [d4,g4]@3 ~ [d4,g4] ~ [d4,g4]@2 ~@2 [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] ~ [c#4,e4]@2 ~@2 [d4,f#4]!2 ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2]/2", // D G5 C#m D
  O: "~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@3 ~ [d4,g4] ~ [d4,g4]@2 ~", // D G5
  P: "~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4]@3 ~ [c#4,e4] [c#4,e4]@2 ~@2 [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4]@3 ~ [d4,f#4] ~ [d4,f#4]@2 ~@2", // C#m D
})).s("gm_acoustic_guitar_steel").gain(0.25)

// chords · pad choir
const pad_choir = note(`<
  ~@2 A@4 B C B D ~ E F G ~ H I J@2 K@2 ~@6 L@2 M@2 N ~ O@2 P ~ Q@2 R@2 S@2 ~@6 T@2 U@4 V@2 W@2 X@2 Y Z
>`.pickRestart({
  A: "[~@28 [d4,f#4]@17 [d4,g4]@17 [e4,a4]@16 [d4,f#4]@8 ~@9 [f#4,a4]@16 [g4,b4]@16 ~]/4", B: "[a4,c#5]@2 [a4,d5] ~",
  C: "[f#4,a4] [g4,b4]", D: "[d5,f#5]@7 ~@25", E: "~ [a4,d5]@16 [b4,d5]@15", F: "~ [a4,c#5]@16 [a4,d5]@8 ~@7",
  G: "~ [d5,f#5]@8 ~@23", H: "~ [a4,d5]@8 [b4,d5]@7", I: "~@2 [a4,c#5]@16 ~ [a4,d5]@8 ~@5",
  J: "[~@3 [a4,d5]@16 [b4,d5]@16 [a4,c#5]@16 [a4,d5]@8 ~@5]/2", K: "[~@3 [b4,d5]@16 [a4,c#5]@16 [a4,d5]@12 ~@17]/2",
  L: "[~@5 [f#4,a4]@16 ~ [g4,b4]@16 [a4,c#5]@16 ~ [a4,d5]@8 ~]/2", // F#m G A D5
  M: "[~@7 [f#4,a4]@16 ~ [g4,b4]@16 [a4,c#5]@16 [a4,d5]@8]/2", N: "~@8 [d5,f#5]@7 ~@17",
  O: "[~@7 [a4,d5]@16 ~ [b4,d5]@16 [a4,c#5]@16 [a4,d5]@8]/2", P: "~ [d5,f#5] ~@2",
  Q: "[~@8 [a4,d5]@16 ~ [b4,d5]@16 [a4,c#5]@16 [a4,d5]@7]/2", R: "[~@9 [a4,d5]@16 [b4,d5]@16 [a4,c#5]@16 [a4,d5]@7]/2",
  S: "[~@9 [b4,d5]@15 [a4,c#5]@16 [a4,d5]@12 ~@12]/2", T: "[~@6 [f#4,a4]@16 [g4,b4]@16 ~ [a4,c#5]@16 [a4,d5]@8 ~]/2",
  U: "[~ [f#4,a4]@2 [g4,b4]@2 [a4,c#5]@2 [a4,d5]]/2", V: "[~@8 [f#4,a4]@15 ~ [g4,b4]@15 [a4,c#5]@16 [a4,d5]@8 ~]/2",
  W: "[~@6 [f#4,a4]@15 ~ [g4,b4]@15 [a4,c#5]@15 ~ [a4,d5]@8 ~@3]/2", // F#m G A D5
  X: "[~@4 [f#4,a4]@15 ~ [g4,b4]@15 [a4,c#5]@15 ~ [a4,d5]@8 ~@5]/2", Y: "~@2 [f#4,a4]@15 [g4,b4]@15",
  Z: "~ [a4,c#5]@15 [a4,d5]@8 ~@8", // A D5
})).s("gm_pad_choir").gain(0.38)

// other · string ensemble 1
const string_ensemble_1 = note("<~@20 A@6 B C@3 ~@12 D@2 E@2 F@6 ~@11>".pickRestart({
  A: "[~@19 e3@16 d3@16 c3@3 ~ e4@2 c4@2 g3@2 e3@2 c3@2 g2@2 d3@2 g3 f#3 g3 ~ d3 c#3 d3@4 b2@4 c4@2 [e3,e4]@2 [c3,c4]@2 [c4,a4]@2 e4@2 e3@2 [c3,c4]@2 [a2,a3]@2 [b2,b3]@2 [e3,e4] [d#3,d#4] [e3,e4] ~ [b2,b3] [a#2,a#3] [b2,b3]@4 [g2,g3]@4 d4@2 c#4@2 d4@2 c#4@2 [d3,d4]@2 [c#3,c#4]@2 [d3,d4]@2 [d#3,d#4]@2 e3@16 d3@16 ~ c3@4 e4@2 c4@2 g3@2 e3@2 c3@2 g2@2 d3@2 g3 f#3 g3 ~ d3 c#3 d3@4, ~@83 c3 ~@7 a3 ~ c4 ~@21 a2@8 ~@69]/6", // E C F C A B E D# …
  B: "b2@4 [c3,c4]@2 [e3,e4]@2 [c3,c4]@2 [c4,a4]@2 ~ e4@2 e3@2 [c3,c4]@2 [a2,a3]@2 [b2,b3]@2 [e3,e4] [d#3,d#4] [e3,e4] ~ [b2,b3] [a#2,a#3] [b2,b3]@3, ~@13 a3 ~ c4 ~@16", // C E C F C A B E …
  C: "[~ [g2,g3]@4 d3@66 ~@25]/3", D: "[~@24 e3@16 d3@16 c3@3 ~ e4@2 c4@2]/2",
  E: "[g3@2 ~ c3@2 g2@2 d3@2 g3 f#3 g3 ~ d3 c#3 d3@4 b2@4 c4@2 [e3,e4]@2 [c3,c4]@2 c4@2 e4@2 e3@2 [c3,c4]@2 [a2,a3]@2 [b2,b3]@2 [e3,e4] [d#3,d#4] [e3,e4] ~ [b2,b3] [a#2,a#3] [b2,b3]@4 [g2,g3]@4 d4@2 c#4 ~@2 c#4@2 [d3,d4]@2, ~@2 e3@2 ~@19 c3 ~@5 a4 ~ a3 ~ c4 ~@21 a2@8 ~, ~@59 d4@2 ~@3]/2", // E C A B E D# E B …
  F: "[[c#3,c#4]@2 [d3,d4]@2 [d#3,d#4]@2 e3@16 d3@16 c3@3 ~ e4@2 c4@2 g3@2 e3@2 c3@2 g2@2 d3@2 g3 f#3 g3 ~ d3 c#3 d3@4 b2@4 c4@2 [e3,e4]@2 [c3,c4]@2 [c4,a4]@2 e4@2 e3@2 [c3,c4]@2 [a2,a3]@2 [b2,b3]@2 [e3,e4] [d#3,d#4] [e3,e4] ~ [b2,b3] [a#2,a#3] [b2,b3]@4 [g2,g3]@4 d3@65 ~@25, ~@70 c3 ~@7 a3 ~ c4 ~@111]/6", // C# D D# E C F C A …
})).s("gm_string_ensemble_1").gain(0.43)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B C@3 D E F@2 G H I J K@3 L ~@8 M N@3 O N@3 P Q@3 R S ~@10 T N U V W X Y Z AA AB
>`.pickRestart({
  A: "~@31 x", B: "~@5 x ~@7 x ~ x ~@6 x ~@7 x ~", C: "x ~@2 x ~@3 x!2 ~@2 x ~@3 x", D: "x ~@5 x ~@7 x ~ x ~@5 x ~@8 x",
  E: "~ x ~@5 x ~@7 x ~ x ~@5 x ~@5 x ~@2", F: "~ x ~@5 x ~@7 x ~ x ~@5 x ~@7 x", G: "~ x ~@5 x ~@7 x ~ x ~@6 x ~@7",
  H: "x!2 ~@2 x ~@3 x!2 ~@2 x ~@2 x", I: "~ x ~@2 x ~@3 x!2 ~@2 x ~@3", J: "x ~ x ~@5 x ~@8 x ~ x ~@5 x ~@6",
  K: "~ x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@6", L: "~ x ~ x ~@5 x ~@7 x ~ x ~@12", M: "~@3 x ~ x ~ x ~@5 x ~@8 x ~ x ~@5 x ~",
  N: "~@3 x!2 ~@2 x ~@3 x!2 ~@2 x", O: "~@3 x ~@3 x ~@5 x ~@8 x ~ x ~@5 x ~", P: "~@4 x ~@3 x ~@5 x ~@7 x ~@2 x ~@5 x",
  Q: "~@7 x ~ x ~@5 x ~@7 x ~ x ~@5 x", R: "~@7 x ~ x ~@4 x ~@7 x ~ x ~@5 x ~", S: "~@3 x!2 ~@2 x ~@3 x!2 ~@3",
  T: "~@2 x!3 ~@2 x ~@3 x!2 ~@2 x", U: "~@6 x ~ x ~@5 x ~@7 x ~ x ~@4 x ~@2", V: "~@5 x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@2",
  W: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~", X: "~@3 x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@4",
// … 86 more lines

More by Pooh