Strudelify
Credo cover art

1975 · Un po' del nostro tempo migliore

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, A@4 for four bars: 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 M@8 N@3 F 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: "~@3 [f#3,a3]@8 [g3,b3]@5", // F#m G
  M: "[~@7 [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]@16 [g3,b3]@15 [a3,c#4]@16 [f#3,a3]@15 [f#3,a3]@16 [g3,b3]@10]/8", // A F#m G A F#m G A F#m …
  N: "[~@5 [a3,c#4]@15 ~ [f#3,a3]@15 [f#3,a3]@15 ~ [g3,b3]@15 [a3,c#4]@15 ~ [f#3,a3]@13]/3", // A F#m G A F#m
  O: "~ [a3,c#4]@15 [f#3,a3]@15 ~", // A F#m
})).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 AA AE AF@3 AG AH
>`.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: "~ 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
  AF: "[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
  AG: "~@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
  AH: "~@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 D ~@40 F G H D E D I G E J I K L M>".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: "~@6 d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3@2 d3@2 d3@2 d3@2 d3 ~@2 d3@2 d3",
  G: "~ d3 ~ d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3",
  H: "~ d3 ~ d3 ~ d3 ~@2 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2",
  I: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 d3@2 d3 ~ d3@2 d3",
  J: "d3!2 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3!2 ~ d3 ~",
  K: "~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~ d3@2 d3!2 ~ d3 ~ d3@2 d3 ~ d3@2 d3 ~",
  L: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3!2 ~ d3@2 d3 ~ d3@2 d3 ~ d3 ~ d3 ~ d3",
  M: "~ 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 B ~@20 D E F ~@21 G H I J K L M@2 N O>".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: "~@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
  E: "~@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
  F: "~@2 [d4,f#4] ~ [d4,f#4]@3 ~@25", // D
  G: "~@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
  H: "~@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
  I: "~@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
  J: "~ [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
  K: "~ [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
  L: "[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
  M: "[[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
  N: "~@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
  O: "~ [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 N ~ P@2 Q@2 R@2 ~@6 S@2 T@4 U@2 V@2 W@2 X Y
>`.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", // D5 Bm A D5
  P: "[~@8 [a4,d5]@16 ~ [b4,d5]@16 [a4,c#5]@16 [a4,d5]@7]/2", Q: "[~@9 [a4,d5]@16 [b4,d5]@16 [a4,c#5]@16 [a4,d5]@7]/2",
  R: "[~@9 [b4,d5]@15 [a4,c#5]@16 [a4,d5]@12 ~@12]/2", S: "[~@6 [f#4,a4]@16 [g4,b4]@16 ~ [a4,c#5]@16 [a4,d5]@8 ~]/2",
  T: "[~ [f#4,a4]@2 [g4,b4]@2 [a4,c#5]@2 [a4,d5]]/2", U: "[~@8 [f#4,a4]@16 [g4,b4]@15 [a4,c#5]@16 [a4,d5]@8 ~]/2",
  V: "[~@6 [f#4,a4]@16 [g4,b4]@15 [a4,c#5]@15 ~ [a4,d5]@8 ~@3]/2", // F#m G A D5
  W: "[~@4 [f#4,a4]@15 ~ [g4,b4]@15 [a4,c#5]@16 [a4,d5]@8 ~@5]/2", X: "~@2 [f#4,a4]@15 [g4,b4]@15",
  Y: "~ [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@4 D E@2 F G H I J@3 K ~@8 L M@3 N M@3 O P@3 Q R ~@10 S M T U V W X Y Z AA
>`.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 ~@5 x ~@2", E: "~ x ~@5 x ~@7 x ~ x ~@5 x ~@7 x", F: "~ x ~@5 x ~@7 x ~ x ~@6 x ~@7",
  G: "x!2 ~@2 x ~@3 x!2 ~@2 x ~@2 x", H: "~ x ~@2 x ~@3 x!2 ~@2 x ~@3", I: "x ~ x ~@5 x ~@8 x ~ x ~@5 x ~@6",
  J: "~ x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@6", K: "~ x ~ x ~@5 x ~@7 x ~ x ~@12", L: "~@3 x ~ x ~ x ~@5 x ~@8 x ~ x ~@5 x ~",
  M: "~@3 x!2 ~@2 x ~@3 x!2 ~@2 x", N: "~@3 x ~@3 x ~@5 x ~@8 x ~ x ~@5 x ~", O: "~@4 x ~@3 x ~@5 x ~@7 x ~@2 x ~@5 x",
  P: "~@7 x ~ x ~@5 x ~@7 x ~ x ~@5 x", Q: "~@7 x ~ x ~@4 x ~@7 x ~ x ~@5 x ~", R: "~@3 x!2 ~@2 x ~@3 x!2 ~@3",
  S: "~@2 x!3 ~@2 x ~@3 x!2 ~@2 x", T: "~@6 x ~ x ~@5 x ~@7 x ~ x ~@4 x ~@2", U: "~@5 x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@2",
  V: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~", W: "~@3 x ~ x ~@5 x ~@7 x ~ x ~@5 x ~@4",
  X: "~@2 x ~ x ~@5 x ~@7 x ~ x ~@4 x ~@6", Y: "~ x ~ x ~@5 x ~@7 x ~ x ~@4 x ~@7",
  Z: "x ~ x ~@5 x ~@7 x!2 ~@5 x ~@7 x", AA: "~ x ~@5 x ~@6 x ~ x ~@5 x ~@7 x ~",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@4 A ~ B ~ B C D ~ E F G ~ H ~@14 I J ~@2 I K L ~ M ~@15 N ~ O P L Q ~ B>".pickRestart({
  A: "~@25 x ~ x ~@4", B: "~@27 x!2 ~@3", C: "~ x ~ x", D: "~@9 x ~@15 x ~@6", E: "~@28 x!2 ~@2", F: "~@9 x ~@16 x ~@5",
  G: "~@5 x ~@7 x ~@2", H: "~@30 x!2", I: "~@3 x!2 ~@11 x ~@15", J: "x ~@15 x ~@14 x", K: "x!2", L: "x",
// … 77 more lines

More by Pooh