Strudelify
Tutti Frutti cover art

Here's Little Richard

Tutti Frutti

Little Richard

KeyF majorTempo188 bpm
0:00/0:00
// Tutti Frutti — Little Richard
// 188 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 118 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(188/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.

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A B C D E F G H I J K ~ L M N M O P Q M R S@2 ~ T M N M U V Q M W X Y ~ L M N M O P Q M R S@2 ~ T M N M U V Q M W X
  Y ~ Z B N AA AB AC AD AE AF AG AH AI N M N M U V Q M W X Y ~ L M N M O P Q M R S@2 ~ T M N M U V Q M W X Y ~ AJ ~@8
>`.pickRestart({
  A: "~@4 f1@4 a1@3 ~ c2@4", B: "d2@4 f2@3 ~ d2@3 ~ c2@3 ~", C: "a1@3 ~ f1@3 ~ a1@4 c2@4, g1 ~@15",
  D: "d2@4 f2@3 ~ eb2@3 ~ d2@3 ~, ~@4 a2 ~@11", E: "c2@3 ~ bb1@4 d2@4 f2@3 ~", F: "g2@3 ~ bb2@3 ~ g2@3 ~ f2@3 ~",
  G: "d2@3 ~ f1@4 a1@4 c2@3 ~", H: "d2@3 ~ f2@4 d2@3 ~ c2@3 ~", I: "bb1@3 ~ c2@3 ~ e2@3 ~ g2@4",
  J: "c2@3 ~ bb1@4 d2@3 ~ f2@3 ~", K: "bb2@3 ~ f1@3 ~@9", L: "~ f1 a1 c2", M: "d2 f2 d2 c2", N: "a1 f1 a1 c2",
  O: "a1 bb1 ab1 g1", P: "f1 bb1 ab1 g1", Q: "f1@3 ~ f1@4 a1@4 c2@4", R: "a1@2 f1 ~@5", S: "~@2 f1 ~@5",
  T: "~@3 [a1,c2] f1@4 a1@4 c2@4", U: "a1 bb1 d2 f2", V: "d2 bb1 ab1 g1", W: "a1 c2 e2 g2", X: "c2@3 ~ bb1@4 d2@4 f2@4",
  Y: "d2@4 f1@3 ~@9", Z: "~@4 f1@4 a1@3 ~ c2@3 ~", AA: "d2@3 ~ eb2@4 d2@3 ~ c2@4", AB: "a1 bb1 c2 d2",
  AC: "f2@4 bb2@3 ~ ab2@4 g2@3 ~", AD: "f2 f1 a1 c2", AE: "d2@4 f2@4 d2@3 ~ c2@4", AF: "a1@4 c2@4 e2@4 g2@3 ~",
  AG: "a2@4 bb1@4 d2@3 ~ f2@4", AH: "g2@4 f1@4 a1@4 c2@3 ~", AI: "d2@4 f2@3 ~ d2@4 c2@4", AJ: "~@4 f1@3 ~@9",
})).s("gm_acoustic_bass").gain(0.5)

// chords · piano · "A.PIANO"
const piano = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z U@2 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AL AQ AR AS AT
  AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT@2 BU BV BW BX BY BZ CA CB CC CD CE CF CG
  CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ ~ DA@8 ~
>`.pickRestart({
  A: "~@11 g7 [b6,c7,d7,e7,f7] [d6,e6,f6,g6,a6] [f5,g5,a5,b5,c6] [b4,c5,d5,e5]", // Bdim Dm F Cmaj7
  B: "[d4,e4,f4,g4,a4] [f3,g3,a3,b3,c4] [b2,c3,d3,e3] [e2,f2,g2,a2] [b1,c2,d2,f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Dm F Cmaj7 Fmaj7 Bm7b5 F Bb Fdim …
  C: "[bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Bb Fdim F Bb Fdim F
  D: "[f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [bb4,d5] ~ [f4,ab4,b4] ~ [a4,c5] ~ [f4,a4,c5] ~", // Bb Fdim F Bb Fdim Am F
  E: "[f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [bb4,d5] ~ [f4,ab4,b4] ~ f4 [a4,c5] [f4,a4,c5] ~, ~@4 f4 ~@3", // Bb Fdim F Bb Fdim Am F
  F: "[bb4,d5] ~ [f4,ab4,b4] ~ [d5,f5] [bb4,gb5] [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [db5,e5,f5] ~ [d5,f5] ~ [bb4,d5,f5] ~, ~@5 bb4 ~@2", // Bb Fdim Dm Ebm Bb Eb Db Dm …
  G: "[bb4,eb5,g5] ~ [db5,e5] ~ [d5,f5] ~ [bb4,d5,f5] ~ [eb5,g5] ~ [db5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~, ~ bb4 ~@2 bb4!2 ~@2", // Eb Dbm Dm Bb Eb Dbm Bb
  H: "[eb5,g5] ~ [bb4,d5,f5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~, bb4 ~@7", // Eb Bb F Bb Fdim F
  I: "[f4,bb4,d5] ~ [f4,ab4,b4] ~ [a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Bb Fdim Am F Bb F
  J: "[f4,ab4,bb4,d5] ~ [f4,a4,c5] ~ [b4,c5,e5,g5] ~ [e5,g5] ~ [c5,f5,a5] ~ [c5,eb5,gb5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~", // Bb7 F Cmaj7 Em F Cdim C
  K: "[c5,f5,a5] ~ [c5,e5,g5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [db5,eb5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~, ~@5 bb4 ~@2", // F C Bb Eb Dbm Bb
  L: "[bb4,eb5,g5] ~ [bb4,db5,eb5,g5] ~ [f4,a4,b4,c5] ~@11", // Eb Eb7 F
  M: "~@12 [b6,c7,d7,e7,f7,g7] [b5,c6,d6,e6,f6,g6,a6] [c5,d5,e5,f5,g5,a5] [e4,f4,g4,a4,b4]", // Cmaj7 Bm7b5 Dm7 Em
  N: "[c4,d4] [d3,e3,f3,g3,a3] [f2,g2,a2,b2,c3] e2 [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Csus2 Dm F Bb Fdim F
  O: "[f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [a4,c5] ~ [f4,a4,c5] ~", // Bb Fdim F Bb Fdim Am F
  P: "[bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Bb Fdim F Bb Fdim F
  Q: "[f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [ab4,b4] ~ [a4,c5] ~ [f4,a4,c5] ~", // Bb Fdim F Bb Abm Am F
  R: "[f4,bb4,d5] ~ [a4,c5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,db5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~", // Bb Am Bb Eb Bbdim Bb
  S: "[bb4,eb5,g5] ~ [bb4,db5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,db5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~", // Eb Bbdim Bb Eb Bbdim Bb
  T: "[bb4,eb5,g5] ~ [bb4,d5,f5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [a4,c5] ~", // Eb Bb F Bb Fdim F Am
  U: "[f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Bb Fdim F Bb Fdim F
  V: "[f4,bb4,d5] ~ [f4,a4,c5] ~ [f1,f2,f4,c5]@2 ~@10, ~@4 f5 ~@11", W: "~@2 [f2,f4,c5,f5] ~@5, ~@4 f1 ~@11",
  X: "~@2 [f1,f2,f4,c5,f5] ~@5", // F5
  Y: "~@4 [e7,f7,g7] [a6,b6,c7,d7] [d6,e6,f6,g6] [a5,b5,c6] [e5,f5,g5] [b4,c5,d5] a4 [d4,f4] [g3,a3,b3,c4] [e3,f3] [b2,c3,d3] [g2,a2,e3]", // Em D7 Em7 Am Em Bm Dm Cmaj7 …
  Z: "d3 [b2,c3] [f2,g2,a2] [c2,d2,e2] [b1,f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Cmaj7 F C F Bb Fdim F
  AA: "[bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [a4,b4,c5] ~, ~@7 f4", // Bb Fdim F Bb Fdim F Am
  AB: "[bb4,d5] ~ [f4,a4,c5] ~ [bb4,d5,e5,f5] ~ [bb4,d5] ~ [bb4,eb5,g5] ~ [bb4,db5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~", // Bb F Bb Eb Bbdim Bb
  AC: "[bb4,eb5,g5] ~ [bb4,db5,d5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,db5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~", // Eb Bbdim Bb Eb Bbdim Bb
  AD: "[eb5,g5] ~ [bb4,d5,f5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Eb Bb F Bb Fdim F
  AE: "[f4,bb4,d5] ~ [f4,ab4,b4] ~ [a4,c5] ~ [f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,ab4,b4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Bb Fdim Am F Bb Fm F
  AF: "[f4,bb4,d5] ~ [f4,a4,c5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,f5,a5] [e5,g5] [eb5,gb5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~", // Bb F C F Em Ebm C
  AG: "[c5,f5,a5] ~ [c5,e5,g5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,db5,eb5,e5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~", // F C Bb Eb Bbdim Bb
  AH: "[bb4,eb5,g5] ~ [bb4,d5,f5,g5] ~ [f4,c5,f5]@2 ~@10", // Eb Gm7 F5
  AI: "~@12 [a1,b1,c2,d2] [e2,f2,g2,a2,b2,c3] [d3,e3,f3,g3,a3,b3] [c4,d4,e4,f4,g4,a4]", // D7 Cmaj7 Em7 Dm7
  AJ: "[b4,c5,d5,e5,f5] [g5,a5,b5,c6,d6] [e6,f6,g6,a6] [b6,c7,d7,e7] [f5,a5,c6,f7,g7] ~ [a5,c6] ~ [bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [a5,c6] ~", // Bdim G Fmaj7 Cmaj7 F Am Bb Abm …
  AK: "[bb5,d6] ~ [f5,ab5,b5] ~ [a5,c6] ~ [a5,c6] ~ [bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [a5,c6] ~", // Bb Fdim Am Bb Abm Am
  AL: "[bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [a5,c6] ~ [bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [a5,c6] ~", // Bb Abm Am Bb Abm Am
  AM: "[bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [a5,c6] ~ [bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ a5 ~", // Bb Abm Am Bb Abm Am
  AN: "[bb5,d6] ~ [a5,c6] ~ [bb5,d6,f6] ~ d6 ~ [eb6,g6] ~ db6 ~ [d6,f6] ~ [bb5,d6,f6] ~", // Bb Am Bb Eb Dm Bb
  AO: "[bb5,eb6,g6] ~ [bb5,db6,e6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~ [bb5,eb6,g6] ~ [bb5,db6,e6] ~ [d6,f6] ~ [bb5,d6,f6] ~", // Eb Bbdim Bb Eb Bbdim Dm Bb
  AP: "[eb6,g6] ~ [d6,f6] ~ [f5,a5,c6] ~ [a5,c6] ~ [f5,bb5,d6] ~ [ab5,b5] ~ [f5,a5,c6] ~ [a5,c6] ~", // Eb Dm F Am Bb Abm F Am
  AQ: "[bb5,d6] ~ [a5,c6] ~ [f2,f3,f5,c6]@2 ~@10, ~@4 f6 ~@11", AR: "~@2 [f3,f5,c6,f6] ~@5, ~@4 f2 ~@11",
  AS: "~@2 [f2,f3,f5,c6,f6] ~@5", // F5
  AT: "~@4 [e8,f8,g8] [a7,b7,c8,d8] [d7,e7,f7,g7] [a6,b6] [e6,f6,g6] [b5,c6,d6] a5 d5 [g4,a4,b4,c5] [e4,f4] [b3,d4] e4", // Em D7 Em7 Asus2 Em Bm Cmaj7 Fmaj7 …
  AU: "d4 [b3,c4] [f3,g3,a3] [c3,d3,e3] [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [a5,c6] ~", // Cmaj7 F C F Bb Abm Am
  AV: "[bb5,d6] ~ [ab5,b5] ~ [f5,a5,c6] ~ [a5,c6] ~ [f5,bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [f5,a5,c6] ~", // Bb Abm F Am Bb Abm Am F
  AW: "[bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [f5,a5,c6] ~ [bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [a5,c6] ~", // Bb Abm Am F Bb Abm Am
  AX: "[bb5,d6] ~ [f5,ab5,b5] ~ [a5,c6] ~ [a5,c6] ~ [bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [b5,c6] ~", // Bb Fdim Am Bb Abm Am Cmaj7
  AY: "[bb5,d6] ~ [a5,c6] ~ [bb5,d6,e6] ~ [bb5,d6] ~ [bb5,eb6,g6] ~ [bb5,db6,e6] ~ [d6,f6] ~ [bb5,d6,f6] ~", // Bb Am Em7b5 Bb Eb Bbdim Dm Bb
  AZ: "[bb5,eb6] ~ [db6,d6,e6] ~ [d6,f6] ~ [d6,f6] ~ [bb5,eb6,g6] ~ [bb5,db6,e6] ~ [bb5,d6,f6] ~ [d6,f6] ~", // Eb5 Dbm Dm Eb Bbdim Bb Dm
  BA: "[eb6,g6] ~ [bb5,d6,f6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,bb5,d6] ~ [ab5,b5] ~ [a5,c6] ~ [a5,c6] ~", // Eb Bb F Bb Abm Am
  BB: "[bb5,d6] ~ [f5,ab5,b5] ~ [a5,c6] ~ [f5,a5,c6] ~ [bb5,d6] ~ [f5,ab5,b5] ~ [a5,c6] ~ [f5,a5,c6] ~", // Bb Fdim Am F Bb Fdim Am F
  BC: "[bb5,d6] ~ [f5,a5,c6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [f6,a6] e6 [eb6,gb6] ~ [c6,e6,g6] ~ [e6,g6] ~", // Bb F C F Ebm C Em
  BD: "[f6,a6] ~ [c6,e6,g6] ~ [bb5,d6,f6] ~ [d6,f6] ~ [bb5,eb6,g6] ~ [bb5,db6,eb6,e6] ~ [d6,f6] ~ [d6,f6] ~", // F C Bb Dm Eb Bbdim Dm
  BE: "[bb5,eb6,g6] ~ g6 ~ [f5,c6,f6]@2 ~@10", // Eb F5
  BF: "~@12 [a2,c3,d3] [e3,f3,g3,a3,b3,c4] [d4,e4,f4,g4,a4,b4] [c5,d5,e5,f5,g5,a5]", // D7 Cmaj7 Em7 Dm7
  BG: "[b5,c6,d6,e6,f6] [g6,a6,b6,c7,d7] [e7,f7,g7,a7] [b7,c8,d8,e8] [f6,a6,c7,f8,g8] ~ [a6,c7] ~ [a6,c7] ~ [f6,a6,c7] ~ [a6,c7] ~ [a6,c7] ~", // Bdim G Fmaj7 Cmaj7 F Am F Am
  BH: "[f6,a6,c7] ~ [a6,c7] ~ [f6,a6,c7] ~ [a6,c7] ~ [f6,a6,c7] ~ [a6,c7] ~ [a6,c7] ~ [a6,c7] ~", // F Am F Am F Am
  BI: "[a6,c7] ~ [a6,c7] ~ [f6,a6,c7] ~ [f6,a6,c7] ~ [f6,bb6,d7] ~ [f6,ab6,b6] ~ [f6,a6,c7] ~ [f6,a6,c7] ~", // Am F Bb Fdim F
  BJ: "[f6,bb6,d7] ~ [f6,ab6,b6] ~ [f6,a6,c7] ~ [f6,a6,c7] ~ [f6,bb6,d7] ~ [ab6,b6] ~ [f6,a6,b6,c7] ~ [f6,a6,c7] ~", // Bb Fdim F Bb Abm F
  BK: "[f6,bb6,d7] ~ [a6,c7] ~ [ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~, ~ f6 ~@6", // Bb Am Ab Fm Ab Fm
  BL: "[f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~", // Fm
  BM: "[f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,a6,c7] ~ [a6,c7] ~ [a6,c7] ~ [a6,c7] ~ [a6,c7] ~ [a6,c7] ~", // Fm F Am
  BN: "[a6,c7] ~ [a6,c7] ~ [f6,a6,c7] ~ [a6,c7] ~ [a6,c7] ~ [a6,c7] ~ [a6,c7] ~ [f6,a6,c7] ~", // Am F Am F
  BO: "[f6,a6,c7] ~ [f6,a6,c7] ~ [e6,g6,c7] ~ [e6,g6,c7] ~ [e6,g6,c7] ~ [e6,g6,c7] ~ [e6,g6,c7] ~ [e6,g6,c7] ~", // F C
  BP: "[e6,g6,c7] ~ [e6,g6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,ab6,c7] ~", // C Fm
  BQ: "[f6,ab6,c7] ~ [f6,ab6,c7] ~ [f6,a6,c7] ~ [f6,a6,c7] ~ [f6,bb6,d7] ~ [f6,ab6,c7] ~ [f6,a6,c7] ~ [f6,a6,c7] ~", // Fm F Bb Fm F
  BR: "[f6,bb6,d7] ~ [ab6,c7] ~ [f6,a6,c7] ~ [a6,c7] ~ [bb6,d7] ~ [ab6,c7] ~ [f6,a6,c7] ~ [f6,a6,c7] ~", // Bb Ab F Am Bb Ab F
  BS: "[f6,bb6,d7] ~ [f6,a6,c7] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,bb5,d6] ~ [f5,ab5,b5] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // Bb F Bb Fdim F
  BT: "[f5,bb5,d6] ~ [f5,ab5,b5] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,bb5,d6] ~ [f5,ab5,b5] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // Bb Fdim F Bb Fdim F
  BU: "[bb5,d6] ~ [f5,ab5,b5] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,bb5,d6] ~ [f5,ab5,b5] ~ [f5,a5,c6] ~ [a5,b5,c6] ~, ~@7 f5", // Bb Fdim F Bb Fdim F Am
  BV: "[bb5,d6] ~ [f5,a5,c6] ~ [bb5,d6,e6,f6] ~ [bb5,d6] ~ [bb5,eb6,g6] ~ [bb5,db6,e6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~", // Bb F Bb Eb Bbdim Bb
  BW: "[bb5,eb6,g6] ~ [bb5,db6,d6,e6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~ [bb5,eb6,g6] ~ [bb5,db6,e6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~", // Eb Bbdim Bb Eb Bbdim Bb
  BX: "[eb6,g6] ~ [bb5,d6,f6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,bb5,d6] ~ [f5,ab5,b5] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // Eb Bb F Bb Fdim F
  BY: "[f5,bb5,d6] ~ [f5,ab5,b5] ~ [a5,c6] ~ [f5,a5,c6] ~ [f5,bb5,d6] ~ [f5,ab5,b5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // Bb Fdim Am F Bb Fm F
  BZ: "[f5,bb5,d6] ~ [f5,a5,c6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [c6,f6,a6] [e6,g6] [eb6,gb6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~", // Bb F C F Em Ebm C
  CA: "[c6,f6,a6] ~ [c6,e6,g6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~ [bb5,eb6,g6] ~ [bb5,db6,eb6,e6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~", // F C Bb Eb Bbdim Bb
  CB: "[bb5,eb6,g6] ~ [bb5,d6,f6,g6] ~ [f5,c6,f6]@2 ~@10", // Eb Gm7 F5
  CC: "~@12 [a2,b2,c3,d3] [e3,f3,g3,a3,b3,c4] [d4,e4,f4,g4,a4,b4] [c5,d5,e5,f5,g5,a5]", // D7 Cmaj7 Em7 Dm7
  CD: "[b5,c6,d6,e6,f6] [g6,a6,b6,c7,d7] [e7,f7,g7,a7] [b7,c8,d8,e8] [f5,f8,g8] ~ [a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [a5,c6] ~", // Bdim G Fmaj7 Cmaj7 Fsus2 Am F Am
  CE: "[f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [a5,c6] ~", // F Am
  CF: "[f5,a5,c6] ~ [a5,c6] ~ [f5,a5,c6] ~ [a5,c6] ~ [f5,a5,c6] ~ [a5,c6] ~ [f5,a5,c6] ~ [a5,c6] ~", // F Am F Am F Am F Am
  CG: "[f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [bb5,d6] ~ [ab5,b5] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // F Bb Abm F
  CH: "[f5,a5,c6] ~ [f5,a5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~", // F Fm Ab Fm
  CI: "[f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,ab5,c6] ~", // Fm Ab Fm
  CJ: "[f5,ab5,c6] ~ [f5,ab5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [a5,c6] ~ [a5,c6] ~", // Fm F Am
  CK: "[a5,c6] ~ [a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6]@3 [g5,b5]", // Am F G
  CL: "[c5,d5,e5,f5] [f4,g4,a4,b4] [b3,c4,d4,e4] [f3,g3,a3] [f1,f2]@3 ~@9, ~@4 [d3,e3] ~@11", // Dm7 G7 Cmaj7 F Dsus2
  CM: "~@5 f2@2 ~@9, ~@4 [f1,f4,f5]@3 ~@9", CN: "~@5 [f1,f2,f4,f5]@2 ~@9, ~@5 ab1 ~@10",
  CO: "~@4 c2 [d2,e2,f2] [g2,a2,b2] [c3,d3,e3] [f3,g3,a3] [b3,c4,d4] [e4,f4,g4] [a4,b4,c5] [d5,e5,f5] [g5,a5,b5,c6] [d6,e6] [d5,e5,f6,g6,a6]", // Dm G C F Bm Em Am Dm …
  CP: "[f5,g5,a5,b6,c7] [b5,c6,d6,e6] [f6,g6,a6] [b6,c7] [f5,a5,c6] ~ a5 c6 [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [a5,c6] ~", // F Cmaj7 F Cmaj7 F Am
  CQ: "[a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~ [a5,c6] ~, f5 ~@7", // Am
  CR: "[f5,bb5,d6] ~ [f5,ab5,b5] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~ [f5,a5,c6] ~", // Bb Fdim F
  CS: "[a5,c6] ~ [a5,c6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~", // Am F F7
  CT: "[a5,eb6,f6] ~ [a5,eb6] ~ [ab5,c6,db6] ~ [ab5,c6,f6] ~ [ab5,c6,f6] ~ [ab5,c6,eb6,f6] ~ [ab5,c6,f6] ~ [ab5,c6,eb6,f6] ~, ~ f6 ~@6", // F7 Adim Dbmaj7 Fm Fm7 Fm Fm7
  CU: "[ab5,c6,f6] ~ [ab5,c6,f6] ~ [ab5,c6,f6] ~ [ab5,c6,f6] ~ [ab5,c6,f6] ~ [ab5,c6,f6] ~ [ab5,c6,eb6,f6] ~ [ab5,c6,eb6,f6] ~", // Fm Fm7
  CV: "[ab5,c6,eb6,f6] ~ [ab5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~", // Fm7 Fm F
  CW: "[a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~ [a5,c6,f6] ~", // F
  CX: "[a5,c6] ~ [a5,c6,f6] ~ [c6,d6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~ [c6,e6,g6] ~", // Am F C
  CY: "[c6,e6,g6] ~ [c6,e6,g6] ~ [bb5,d6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~ [bb5,d6,f6] ~, ~ f6 ~@6", // C Bb
  CZ: "[bb5,d6,f6] ~ [bb5,d6,f6] ~ [a5,c6,f6]@3 ~@9, ~@4 g5 ~@11", DA: "[~ [f3,f5,c6,f6]@31, ~@2 a5 ~@61]/8",
})).s("gm_piano").gain(0.3).pan(0.6)

// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
  ~@2 A B ~ C ~@2 D E ~@3 F G C H I ~ J ~ K ~@2 L ~@3 C M ~ N D O ~@2 P Q R S T U V W S X ~@2 Y Z AA AB AC AD AE AF AG
  AH AI AJ AK AL AM AN AO@2 ~ AP AQ ~@3 AR ~@3 AS AT ~ AU AV AW ~@2 AX AY@2 AZ BA BB BC BD BE ~@4 BF BG ~ BH BI ~@3 BJ
  ~@12
>`.pickRestart({
  A: "f4 ~@7 f4 ~@7", B: "~@8 f4 ~@3 f4 ~@3", C: "f4 ~@15", D: "~@4 f4 ~@11", E: "~@6 c5 ~@9", F: "b3 ~@15",
  G: "~@12 f4 ~@3", H: "~@10 f4 ~ f4 ~@3", I: "~@2 f4 ~@7 eb5 ~@5", J: "~@8 ab4 ~@5 f4 ~", K: "~@3 c2 ~@12",
  L: "~@10 g4 e4 ~@3 f3", M: "~@6 f5 ~@9", N: "bb4 ~@7", O: "~@10 c5 ~@5", P: "~@12 g1 ~@3",
  Q: "~@6 f5 ~ f5 ~ f5 ~ f5 ~ f5 ~", R: "f5 ~@3 f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~",
  S: "f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~", T: "f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ [f5,c6] ~",
  U: "f5 ~ f5 ~@3 [bb5,f6] ~ bb5 ~ [bb5,eb6,e6] ~ bb5 ~@3", V: "~@12 bb5 ~@3",
  W: "bb5 ~ bb5 ~@3 f5 ~ ab5 ~ f5 ~@3 f5 ~", X: "f5 ~ f5 c3 ~@12", Y: "~@7 c7 ~@2 g5 [e5,f5] ~@2 c4 [g3,a3,f4]",
  Z: "~@4 b2 ~@5 f5 ~ f5 ~ f5 ~", AA: "f5 ~ f5 ~@3 f5 ~@3 f5 ~ f5 ~@3", AB: "f5 ~ f5 ~ f5 ~@3 f5 ~ f5 ~ f5 ~ f5 ~",
  AC: "f5 ~@3 f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5@2, ~@14 a5 ~", AD: "~@2 f5 ~ f6 ~ f6 ~@5 bb5 ~@3",
  AE: "g6 ~ bb5 ~ bb5 ~ bb5 ~@7 bb5 ~", AF: "bb5@2 ~@8 f5 ~ f5 ~ f5 ~", AG: "f5 ~@3 f5 ~@3 f5 ~ c6 ~ f5 ~@3",
  AH: "f5 ~@7 c6 g6 c6 ~@3 c6 ~", AI: "c6 ~@5 bb5 ~@5 bb5 ~ bb5 ~", AJ: "~@2 [bb5,d6,f6] ~@13", AK: "~@12 [g2,b2] ~@3",
  AL: "~@6 f6 ~ f6 ~@3 f6 ~ [f6,d7] ~", AM: "~@2 f6 ~@3 f6 ~@5 f6 ~ f6 ~", AN: "f6 ~ f6 ~@13", AO: "~@10 f6 ~@5",
  AP: "~@6 f6 ~ f6 ~ f6 ~ f6 ~ f6 ~", AQ: "f6 ~ f6 ~@3 f6 ~ f6 ~ f6 ~ f6 ~@3", AR: "~@2 f6 ~@3 f6 ~ f6@3 ~@5",
  AS: "f5 ~@15", AT: "~@6 f6 ~@9", AU: "bb5 ~@7", AV: "~@4 f5 ~@11", AW: "~@10 c6 ~@5", AX: "~@12 g2 ~@3",
  AY: "~@14 f5 ~", AZ: "~@2 f5 ~@3 f5 ~@3 f5 ~@3 f5 ~", BA: "~@8 f5@3 ~@5", BB: "~@10 f5 ~@5", BC: "~@8 f5 ~@7",
  BD: "~@12 f5 ~ f5 ~", BE: "f5 ~ f5 ~@13", BF: "~@6 f5 ~@7 f5 ~", BG: "~@4 f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~",
  BH: "f5 ~ f5 ~@3 d6 ~@9", BI: "~@8 eb6 ~@7", BJ: "f6 ~@15",
})).s("gm_piano").gain(0.15).pan(0.6)

// other · tenor sax
const tenor_sax = note(`<
  ~ A B@2 C D E@2 C F@3 ~ G H I H I J K L I G@2 ~ M N O P@2 N O Q R@2 S ~ G H I H I J K L I G@2 ~ M N O P@2 N O Q R@2 S
  ~@13 M N O P@2 N O Q R@2 S ~ G H I H I J K L I G@2 ~ M N O P@2 N O Q R@2 S ~ T ~@8
>`.pickRestart({
  A: "ab3@2 bb3@2 f3@3 ~@7 f3@2", B: "[~@4 f3@2 ~@5 f3@7 ~@2 f3@2 ~@8 f3@2]/2", C: "~@4 f3@2 ~@4 f3@5 ~",
  D: "c4@4 f3@3 ~@7 f3@2", E: "[~@2 f3 ~@2 f3@4 bb3 f3 ~@4 f3]/2",
  F: "[f3@4 g3@3 ~@7 g3@5 ~ ab3@3 ~@7 ab3@6 f3@3 ~@9]/3", G: "~@4 f3@3 ~@9", H: "~@4 f3@2 ~@4 f3@3 ~ f3@2",
  I: "ab3@2 bb3@2 f3@3 ~@9", J: "~@4 f3@2 ~@4 f3@2 ~@3 g3, ~@7 f3", K: "c4@3 ~ f3@4 ~@8", L: "~@4 f3@3 ~@4 f3@5",
  M: "~@2 f3 ~@5", N: "~@2 f3 ~@2 f3@3", O: "ab3 bb3 f3 ~@5", P: "[~@4 f3@2 ~@4 f3@8 c4@2 f3@3 ~@9]/2",
  Q: "~@2 f3 ~@2 f3@2 ~", R: "[f3@2 gb3@2 g3@3 ~@7 g3@6 f3@2 ~@10]/2", S: "g3@4 f3@3 ~@9", T: "~@4 f4@3 ~@9",
})).s("gm_tenor_sax").gain(0.4).pan(0.6)

// bass · baritone sax · "BARITONSAX"
const bass_2 = note(`<
  ~ A B@2 C D E@2 C F@3 ~ G H I H I J K L I G@2 ~ M N O P@2 N O Q R@2 S ~ G H I H I J K L I G@2 ~ M N O P@2 N O Q R@2 S
  ~@13 M N O P@2 N O Q R@2 S ~ G H I H I J K L I G@2 ~ M N O P@2 N O Q R@2 S ~ G ~@8
>`.pickRestart({
  A: "ab2@2 bb2@2 f2@3 ~@7 f2@2", B: "[~@4 f2@2 ~@5 f2@7 ~@2 f2@2 ~@8 f2@2]/2", C: "~@4 f2@2 ~@4 f2@5 ~",
  D: "c3@4 f2@3 ~@7 f2@2", E: "[~@2 f2 ~@2 f2@4 bb2 f2 ~@4 f2]/2",
  F: "[f2@4 g2@3 ~@7 g2@5 ~ ab2@3 ~@7 ab2@6 f2@3 ~@9]/3", G: "~@4 f2@3 ~@9", H: "~@4 f2@2 ~@4 f2@3 ~ f2@2",
  I: "ab2@2 bb2@2 f2@3 ~@9", J: "~@4 f2@2 ~@4 f2@2 ~@3 g2, ~@7 f2", K: "c3@3 ~ f2@4 ~@8", L: "~@4 f2@3 ~@4 f2@5",
  M: "~@2 f2 ~@5", N: "~@2 f2 ~@2 f2@3", O: "ab2 bb2 f2 ~@5", P: "[~@4 f2@2 ~@4 f2@8 c3@2 f2@3 ~@9]/2",
  Q: "~@2 f2 ~@2 f2@2 ~", R: "[f2@2 gb2@2 g2@3 ~@7 g2@6 f2@2 ~@10]/2", S: "g2@4 f2@3 ~@9",
})).s("gm_baritone_sax").gain(0.35)

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

// drums · snare
const snare = s("sd").struct(`<
  A B C D E D C D C@3 F G H C@2 I J C D C K L M N J C@2 O P C D C@3 K Q J C@2 I J C@3 F R@2 S C@2 D C@6 T F G J C@2 I J
  C U C@4 I J C@2 O P C D C@3 K Q J C@2 I J C@3 F R@2 S C@2 D C@6 T F ~ V ~@8
>`.pickRestart({
// … 47 more lines

More by Little Richard