Strudelify
Girls Girls Girls cover art

A Glass of Champagne

Girls Girls Girls

Sailor

KeyF minorTempo118 bpm
0:00/0:00
// Girls Girls Girls — Sailor
// 118 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(118/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 · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  ~@22 A B C D A B C E F G H I J K L M N K O P Q R S T U ~@11 V W X Y Z AA AB AC AD AE AF AG AH AI@3 AJ AK AF AG AH AI@3
  AJ AL ~@3 AM
>`.pickRestart({
  A: "f2 ~ ab2 ~ c3 ~ c2 ~", B: "f2 ~ ab2 ~ c2 ~ ab1 ~", C: "g2 ~ g1 ~ c2 ~ e2 ~", D: "f2 ~ ab1 db1 g1 d1 c2 c1",
  E: "f2 ~ c2 ~ ab1 ~ f1 ~", F: "bb1 ~ f1 ~ bb1 ~ f1 bb1", G: "eb2 ~ bb1 ~ eb2 ~ bb1 ~", H: "ab1 ~ eb1 ~ ab1 ~ bb1 ~",
  I: "c2 ~ g1 ~ e1 ~ c1 ~", J: "b1@3 c2@3 db2@3 d2@3 eb2@2 e2@2", K: "f2 ~ f2 ~ c2 ~ c2 ~", L: "f2 ~ a1 ~ c2 ~ d2 c2",
  M: "f2 ~ c2 ~ c2 ~ d2 c2", N: "f1 a1 b1 c2", O: "f2 ~ a1@2 c2@2 d2 c2", P: "f2 ~ c2 ~ d2 c2 a1 g1",
  Q: "f1 ~ a1 ~ c2 ~ d2 c2", R: "f1@7 ~", S: "f1@5 g1 a1 f1", T: "bb1@9 ~ bb1@2 a1@2 ab1@2", U: "g1@8 c2 ~@7",
  V: "~@4 bb1 ~ f1 ~", W: "bb1 ~ f1 bb1 eb2 ~ bb1 ~", X: "eb2 ~ bb1 ~ ab1 ~ eb1 ~", Y: "ab1 ~ bb1 ~ c2 ~ g1 ~",
  Z: "e1@2 ~@2 c1@2 ~@2 b1@3 c2@3 db2@2", AA: "~ d2@3 eb2@2 e2@2 f2@2 ~@2 f2@2 ~@2", AB: "c2 ~ c2 ~ f2 ~ a1 ~",
  AC: "c2 ~ d2 c2 f2 ~ c2 ~", AD: "c2 ~ d2 c2 f1@2 a1@2", AE: "b1@2 c2@2 f2 ~ f2 ~", AF: "c2 ~ c2 ~ f2 ~ a1@2",
  AG: "c2@2 d2 c2 f2 ~ c2 ~", AH: "d2 c2 a1 g1 f1 ~ a1 ~", AI: "[c2 ~ d2 c2 f1@7 ~ f1@5 g1 a1 f1 bb1@4]/3",
  AJ: "~ bb1 a1 ab1 g1 ~@3", AK: "c2 ~@3 f2 ~ f2 ~", AL: "c2 ~@7", AM: "~@9 f1@3 ~@4",
})).s("gm_synth_bass_1").gain(0.57)

// chords · piano · "A.PIANO 3"
const piano = note(`<
  ~@35 A B C@2 D E F G H I J K L M N O P Q R O P Q R ~@5 S T U V W X Y Z AA AB AC AD AE X Y Z AF@4 AG@5
>`.pickRestart({
  A: "[f3,f4]@2 [c4,a4,c5,f5] ~ [a4,f5] ~ [c4,f4,a4,c5] ~ [g4,c5,e5] ~ [g3,c4,g4,c5,e5] ~ [g4,bb4,d5] ~ [g3,c4,g4,a4,c5] ~, c4 ~@3 f3@2 ~@2 c3@2 ~@2 c3@2 ~@2", // F Dm F C Gm Am7
  B: "~ c5 [c4,f4,a4,f5] ~ [a4,f5] ~ [c4,f4,a4,c5,f5] ~ c3@2 [g3,c4,g4,c5] ~ [g4,d5] ~ [g3,c4,g4,c5] ~, f3@2 ~@2 f3@2 ~@2 g4 ~@3 c3@2 ~@2", // F Dm F C5 G5 C5
  C: "[f5 e5 [c4,f4,f5] ~ d5 [c4,f4,c5] d5 ~ c5 [g3,c4,a4] c5 ~ c3@2 g3 ~ [f3,f4]@2 c4 ~ [a3,a4,c5,a5]@4 [bb3,bb4,d5,bb5]@3 c5 [c3,g3,c4]@2 c5 ~, f3@2 ~@2 f3@2 ~@2 c3@2 ~@2 a4 ~ g4@2 ~@12 d5 ~@3, ~@15 c4@2 ~@15]/2", // F5 Am7 F Am Bb C5
  D: "~ c5 [a4,f5] ~ [f3,f4]@2 [c4,c5] ~ [g4,c5,e5] ~ [g3,g4,c5,e5] [g4,bb4,d5,e5] ~ [g4,bb4,d5] [g3,a4,c5] ~, ~ [f3,c4,f4]@3 [a4,f5] ~@3 [c3,c4]@2 ~ c3@2 ~ c4@2", // Dm F C Em7b5 Gm Am7 F5 Dm …
  E: "~ [c4,f4,a4,c5,f5] ~@2 [a4,f5] ~ [c4,f4,a4,c5] ~ [g4,c5,e5] ~ [g3,c4,g4,c5,e5] ~ [g4,bb4,d5] ~ [g3,c4,g4,a4,c5] ~, f3@3 ~ f3@2 ~@2 c3@2 ~@2 c3@2 ~@2", // F Dm F C Gm Am7
  F: "~ c5 [c4,f4,a4,f5] ~ [a4,f5] ~ [c4,f4,c5] ~ [g4,d5] ~ [g3,c4,g4,c5] ~ c3@2 [g3,c4,g4] f4, f3@3 ~ f3@2 ~@2 c3@2 ~@2 a4 ~@3", // F Dm F5 G5 C5
  G: "~@2 [c4,f4,a4,c5,f5] ~ [c4,f4] [a4,c5,f5] [c4,f4] ~ f3@2 [c4,f4,a4,c5,f5] ~@2 [c4,f4,a4,c5,f5]@2 ~, f3@7 ~@5 f3@4", // F F5 F F5 F
  H: "[f2,eb5] d5 eb5 ~ [f2,c5] b4 c5 ~ [f2,a4] ab4 a4 ~ [f2,c3,eb3,f4] ~@3, [c3,eb3]@2 ~@2 [c3,eb3]@3 ~ [c3,eb3]@2 ~@6", // F7 F5 F F7 Cm
  I: "[f2,c3,eb3,eb5] d5 eb5 ~ c5 b4 c5 ~ a4 ab4 a4 ~ [c3,eb3,f4] ~@3, ~@2 [f2,c3,eb3] ~ [f2,c3,eb3] ~ f2 ~", // F7
  J: "d5 db5 d5 ~ bb4 a4 bb4 ~ f4 e4 f4 ~ [bb2,f3,d4] ~@3, [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~@3", // Bb Bb5
  K: "d5 db5 d5 ~ b4 g4 b4 ~ [c3,g3,c5] ~@4 [c3,c5] [e3,e5] [g3,g5], [g2,d3,f3] ~ [g2,d3,f3] ~@5", // C5 C E G G7
  L: "[ab3,ab5]!3 [g3,g5]!2 [db4,db6]!4 [c4,c6]!4 [g3,g5]!2 [ab3,ab5]", // Ab G Db C G Ab
  M: "[f3,f5] ~ [c4,c6] [db4,db6] [c4,c6] [bb3,bb5] [g3,g5] [ab3,ab5] [f3,f5] ~@3 [c3,c5] ~@3", // F C Db C Bb G Ab F …
  N: "[f3,f5] ~@3 [c3,c5] ~@3 [f3,f5] ~@7", O: "~@4 [f5,f6] ~ [ab5,ab6] ~",
  P: "[db6,db7] ~ [c6,c7] ~ [f5,f6] ~ [ab5,ab6] ~", Q: "[c6,c7] ~ [ab5,ab6] ~ [db6,db7] ~ [c6,c7] ~",
  R: "[g5,g6] ~ [ab5,ab6] ~ [f5,f6] ~@3", // G Ab F
  S: "~@8 [f3,f4]@2 [c4,a4,c5,f5] ~ [a4,f5] ~ [c4,f4,a4,c5] ~, ~@8 c4 ~@3 f3@2 ~@2", // F Dm F
  T: "[g4,c5,e5] ~ [g3,c4,g4,c5,e5] ~ [g4,bb4,d5] ~ [g3,c4,g4,a4,c5] ~@2 c5 [c4,f4,a4,f5] ~ [a4,f5] ~ [c4,f4,a4,c5,f5] ~, c3 ~ c3 ~ f3 ~ f3 ~", // C Gm Am7 F Dm F
  U: "c3@2 [g3,c4,g4,c5] ~ [g4,d5] ~ [g3,c4,g4,c5] ~ f5 e5 [c4,f4,f5] ~ d5 [c4,f4,c5] d5 ~, g4 ~@3 c3@2 ~@2 f3@2 ~@2 f3@2 ~@2", // C5 G5 C5 F5
  V: "c5 [g3,c4,a4] c5 ~ c3@2 g3 ~ [f3,f4]@2 c4 ~ [a3,a4,c5,a5]@4, c3@2 ~@2 a4 ~ g4@2 ~@8, ~@7 c4@2 ~@7", // Am7 F Am
  W: "[bb3,bb4,d5,bb5]@3 c5 [c3,g3,c4]@2 c5 ~@2 c5 [a4,f5] ~ [f3,f4]@2 [c4,c5] ~, ~@4 d5 ~@4 [f3,c4,f4]@3 [a4,f5] ~@3", // Bb C5 Dm F C F5 Dm
  X: "[g4,c5,e5] ~ [g3,g4,c5,e5] [g4,bb4,d5,e5] ~ [g4,bb4,d5] [g3,a4,c5] ~@2 [c4,f4,a4,c5,f5] ~@2 [a4,f5] ~ [c4,f4,a4,c5] ~, [c3,c4]@2 ~ c3@2 ~ c4@2 f3@3 ~ f3@2 ~@2", // C Em7b5 Gm Am7 F Dm F C
  Y: "[g4,c5,e5] ~ [g3,c4,g4,c5,e5] ~ [g4,bb4,d5] ~ [g3,c4,g4,a4,c5] ~@2 c5 [c4,f4,a4,f5] ~ [a4,f5] ~ [c4,f4,c5] ~, c3@2 ~@2 c3@2 ~@2 f3@3 ~ f3@2 ~@2", // C Gm Am7 F Dm F5
  Z: "[g4,d5] ~ [g3,c4,g4,c5] ~ c3@2 [g3,c4,g4] f4 ~@2 [c4,f4,a4,c5,f5] ~ [c4,f4] [a4,c5,f5] [c4,f4] ~, c3@2 ~@2 a4 ~@3 f3@7 ~", // G5 C5 F F5 F F5
  AA: "f3@2 [c4,f4,a4,c5,f5] ~@2 [c4,f4,a4,c5,f5]@2 ~ [f2,eb5] d5 eb5 ~ [f2,c5] b4 c5 ~, ~@4 f3@4 [c3,eb3]@2 ~@2 [c3,eb3]@3 ~", // F F7 F5 Cm
  AB: "[f2,a4] ab4 a4 ~ [f2,c3,eb3,f4] ~@3 [f2,c3,eb3,eb5] d5 eb5 ~ c5 b4 c5 ~, [c3,eb3] ~@5 [f2,c3,eb3] ~", // F F7 Cm F7
  AC: "a4 ab4 a4 ~ [c3,eb3,f4] ~@3 d5 db5 d5 ~ bb4 a4 bb4 ~, [f2,c3,eb3] ~ f2 ~ [bb2,f3] ~ [bb2,f3] ~", // F7 Bb5
  AD: "f4 e4 f4 ~ [bb2,f3,d4] ~@3 [g2,f3]@2 ~@6, [bb2,f3]@2 ~@6 d5 ~@7", // Bb G7 Bb5
  AE: "[c3,g3,c5] ~@8 c5 [a4,f5] ~ [f3,f4]@2 [c4,c5] ~, ~@9 [f3,c4,f4]@3 [a4,f5] ~@3", // C5 Dm F C F5 Dm
  AF: "[f3@2 [c4,f4,a4,c5,f5] ~@2 [c4,f4,a4,c5,f5]@2 ~@3 [a4,c5,eb5,g5] ~ [a4,c5,eb5,g5] ~ [a4,c5,eb5,g5] ~ [a4,c5,eb5,g5] ~ [a4,c5,eb5,g5] ~ [a4,c5,f5] ~ [a4,c5,eb5] ~ [a4,c5,eb5,g5]@3 ~ [eb5,g5]@5 ~ [eb5,g5] ~ f5 ~ eb5 ~ [d5,f5]@2 ~ [d5,f5]@6 ~ d5 ~ c5 ~ bb4 ~ [g3,d4,f4,a4]@7 ~, ~@4 f3@4 [f3,c4,eb4]@29 ~@3 [bb3,d4,f4]@10 ~@14, ~@27 [a4,c5]@5 ~ a4@2 ~@29, ~@17 c5 ~@14]/4", // F Am7b5 F Adim Am7b5 Eb Dm F7 …
  AG: "[[c3,c4,c5]@2 ~@6 [ab5,ab6]@3 ~ [g5,g6]@3 gb6 [f5,f6]@7 ~ [ab5,ab6]@3 ~@2 g6@3 [f5,f6]@7 ~@2 c5@3 ~@2 bb4@3 ~ ab4@3 ~@2 g4@4 ~@2 f4@4 ~@2 c5@3 ~@3 [f3,c4,f4,ab4,c5,f5]@3 ~@4, [e4,g4] ~@7 [f3,ab3,c4,f4]@13 ~@3 [f3,ab3,c4,f4]@16 ~ [f3,ab3,c4]@26 ~@13, ~@28 g5@3 ~@10 f4@10 ~@29]/5", // C Ab G F Ab F Fm Em …
})).s("gm_piano").gain(0.4).pan(0.3)

// chords · banjo
const banjo = note(`<
  A B A B C@4 D@2 E F D@2 E D G H I J D@4 E F D@2 E D G H I K L M N O P Q R S T U V W X Y Z AA D@2 AB AC AD D AB AC AE
  AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AO AP AQ AR AS AT AW AX D AY@3
>`.pickRestart({
  A: "[f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~", // Fm
  B: "[f3,b3,f4,ab4,b4] ~ [f3,b3,f4,ab4,b4] ~ [f3,b3,f4,ab4,b4] ~ [f3,b3,f4,ab4,b4] ~ [c3,bb3,e4,g4,bb4] ~ [c3,bb3,e4,g4,bb4] ~ [c3,bb3,e4,g4,bb4] ~ [c3,bb3,e4,g4,bb4] ~", // Fdim C7
  C: "[f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5] ~ [f3,c4,f4,ab4,c5]!6", // Fm
  D: "[f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~", // Fm
  E: "[f3,g3,bb3,db4,f4] ~ [f3,g3,bb3,db4,f4]!3 ~ [f3,g3,bb3,db4,f4] ~ [f3,g3,bb3,c4,f4] ~ [f3,g3,bb3,c4,f4]!2 [e3,g3,bb3,c4,e4] ~ [e3,g3,bb3,c4,e4] ~", // Gm7b5 Fsus4 C7
  F: "[f3,ab3,c4,f4] ~ [f3,ab3,c4,f4]!3 ~ [f3,ab3,c4,f4] ~ [db3,f3,b3,db4,f4]!4 [c3,e3,bb3,c4,e4] ~ [c3,e3,bb3,c4,e4] ~", // Fm Db7 C7
  G: "[f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~", // Bbm
  H: "[eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~", // Eb
  I: "[eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~", // Ab
  J: "[c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~@7", // C7
  K: "[c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~", // C7
  L: "[b2,eb3,g3,a3,b3,eb4,gb4]!3 [c3,e3,g3,bb3,c4,e4,g4]@2 [c3,e3,g3,bb3,c4,e4,g4] [db3,f3,a3,b3,db4,f4,ab4]!3 [d3,gb3,a3,c4,d4,gb4,a4]@2 ~ [eb3,g3,bb3,db4,eb4,g4,bb4] ~ [g3,bb3,c4,e4,g4,bb4,c5] ~", // B7 C7 Db7 D7 Eb7 C7
  M: "~@2 [f2,c3,f3,a3,c4,f4] [f2,c3,f3,a3,c4,f4]@2 ~ [f2,c3,f3,a3,c4,f4] ~ [g2,c3,e3,g3,bb3,c4,e4] ~ [g2,c3,e3,g3,bb3,c4,e4]!2 ~ [g2,c3,g3,bb3,c4,e4] [g2,c3,e3,g3,bb3,c4,e4] ~", // F C7
  N: "[f2,c3,a3] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,a3,c4,f4] c4 ~ [f2,c3,f3,a3,c4,f4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,d4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,d4,e4] ~, ~@3 [c3,f3]@2 ~@11", // F F7 F C F5
  O: "[f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,c4,eb4,f4] [f2,c3,f3,c4,f4] ~@2 [f2,c3,f3,a3,c4,f4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~, ~ a3 ~@6", // F F7 F5 F C
  P: "[f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,bb3,e4] ~ [g2,c3,e3,g3,bb3,c4,e4] ~", // F F7 F C C7
  Q: "[f2,c3,f3,a3,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,bb3,e4] ~ [g2,c3,e3,g3,bb3,c4,e4] ~", // F F7 F C C7
  R: "[f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~ [f2,g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,bb3,e4] ~ [g2,c3,e3,g3,c4,e4] ~", // F F7 F C C7 C
  S: "[f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~ [f2,c3,f3,a3,c4,f4]!2 ~ [g2,c3,e3,g3,c4,d4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,bb3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~", // F C C7 C
  T: "[f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4] ~", // F F7 F
  U: "[f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4]!2 ~ [f2,c3,f3,a3,c4,eb4]!2 ~", // F7
  V: "[f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4]!2 ~ [f2,c3,f3,a3,eb4] [f2,c3,f3,a3,c4,eb4] ~", // F7
  W: "[bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4]!2 ~ [bb2,f3,bb3,d4]!2 ~", // Bb
  X: "[g2,g3,b3,d4] ~ [g2,g3,b3,d4] ~ [g2,g3,b3,d4] ~ [g2,g3,b3,d4] ~ [c3,g3,c4,e4] ~@7", // G C
  Y: "[f3,ab3,c4,f4] ~@7 [bb2,bb4]@2 ~@6, ab4@2 ~@6 [bb3,db4] ~@7", Z: "[f3,ab3,c4,f4,ab4] ~@15, f2 ~@7",
  AA: "~@8 [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~", // Fm
  AB: "[f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,g3,bb3,db4,f4] ~ [f3,g3,bb3,db4,f4]!3 ~ [f3,g3,bb3,db4,f4] ~", // Fm Gm7b5
  AC: "[f3,g3,bb3,c4,f4] ~ [f3,g3,bb3,c4,f4]!2 [e3,g3,bb3,c4,e4] ~ [e3,g3,bb3,c4,e4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4]!3 ~ [f3,ab3,c4,f4] ~", // Fsus4 C7 Fm
  AD: "[db3,f3,b3,db4,f4]!4 [c3,e3,bb3,c4,e4] ~ [c3,e3,bb3,c4,e4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~", // Db7 C7 Fm
  AE: "[f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~", // Fm Bbm
  AF: "[f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~", // Bbm Eb
  AG: "[eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,bb3,eb4,g4,bb4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~", // Eb Ab
  AH: "[eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4,ab4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~", // Ab C7
  AI: "[c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [c3,e3,g3,bb3,c4,e4,g4] ~ [b2,eb3,g3,a3,b3,eb4,gb4]!3 [c3,e3,g3,bb3,c4,e4,g4]@2 [c3,e3,g3,bb3,c4,e4,g4] [db3,f3,a3,b3,db4,f4,ab4]!2", // C7 B7 C7 Db7
  AJ: "[db3,f3,a3,b3,db4,f4,ab4] [d3,gb3,a3,c4,d4,gb4,a4]@2 ~ [eb3,g3,bb3,db4,eb4,g4,bb4] ~ [g3,bb3,c4,e4,g4,bb4,c5] ~@3 [f2,c3,f3,a3,c4,f4] [f2,c3,f3,a3,c4,f4]@2 ~ [f2,c3,f3,a3,c4,f4] ~", // Db7 D7 Eb7 C7 F
  AK: "[g2,c3,e3,g3,bb3,c4,e4] ~ [g2,c3,e3,g3,bb3,c4,e4]!2 ~ [g2,c3,g3,bb3,c4,e4] [g2,c3,e3,g3,bb3,c4,e4] ~ [f2,c3,a3] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,a3,c4,f4] c4 ~ [f2,c3,f3,a3,c4,f4] ~, ~@11 [c3,f3]@2 ~@3", // C7 F F7 F F5
  AL: "[g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,d4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,d4,e4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,c4,eb4,f4] [f2,c3,f3,c4,f4] ~@2 [f2,c3,f3,a3,c4,f4] ~, ~@5 a3 ~@2", // C F F7 F5 F
  AM: "[g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~", // C F F7 F
  AN: "[g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,bb3,e4] ~ [g2,c3,e3,g3,bb3,c4,e4] ~ [f2,c3,f3,a3,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~", // C C7 F F7 F
  AO: "[g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,bb3,e4] ~ [g2,c3,e3,g3,bb3,c4,e4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~", // C C7 F F7 F
  AP: "[f2,g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,bb3,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~ [f2,c3,f3,a3,c4,f4]!2 ~", // C C7 C F
  AQ: "[g2,c3,e3,g3,c4,d4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [g2,c3,e3,g3,bb3,c4,e4] ~ [g2,c3,e3,g3,c4,e4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~", // C C7 C F F7 F
  AR: "[f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~", // F F7
  AS: "[f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4]!2 ~ [f2,c3,f3,a3,c4,eb4]!2 ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4] ~", // F7
  AT: "[f2,c3,f3,a3,c4,eb4] ~ [f2,c3,f3,a3,c4,eb4]!2 ~ [f2,c3,f3,a3,eb4] [f2,c3,f3,a3,c4,eb4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4] ~", // F7 Bb
  AU: "[bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4]!2 ~ [bb2,f3,bb3,d4]!2 ~ [g2,d4,g4,d5] ~@7", // Bb G5
  AV: "[c3,c4,g4,c5] ~@7 [f2,c3,f3,a3,f4] ~ [f2,c3,f3,a3,c4,eb4,f4] [f2,c3,f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4]!2 ~", // C5 F F7 F
  AW: "[bb2,f3,bb3,d4] ~ [bb2,f3,bb3,d4]!2 ~ [bb2,f3,bb3,d4]!2 ~ [b3,d4,f4,a4] ~ [b3,d4,f4,a4]!2 ~ [b3,d4,f4,a4]!2 ~", // Bb Bm7b5
  AX: "[c3,c4,g4,c5] ~@7 [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~", // C5 Fm
  AY: "[[f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~ [f3,ab3,c4,f4] ~@2 [f3,ab3,c4,f4] ~ [ab3,c4,f4,ab4]@5 [bb3,db4,f4,g4]@4 [f3,ab3,c4,f4,ab4]@5 ~ g4@5 [f3,ab3,c4,f4,ab4]@6 ~@6 [f3,ab3,c4,f4,ab4]@3 ~@4, ~@23 [g3,bb3,c4,e4]@6 ~@19]/3", // Fm Gm7b5 Fm C7
})).s("gm_banjo").gain(0.26).pan(0.6)

// other · marimba · C Db C Bb G Ab F C …
const marimba = note(`<
  ~@48
  [~@2 [c5,c7] [db5,db7] [c5,c7] [bb4,bb6] [g4,g6] [ab4,ab6] [f4,f6] ~@3 [c4,c6] ~@3]
  [[f4,f6] ~@3 [c4,c6] ~@3 [f4,f6] ~@7]
  ~@38
>`).s("gm_marimba").gain(0.44).pan(0.3)

// chords · whistle · Gb Ebm
const whistle = note("<~@12 [~@10 [gb6,bb6] ~ [eb6,gb6]@4] ~@75>").s("gm_whistle").gain(0.36)

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

// drums · snare
const snare = s("sd").struct("<~@35 A@3 B A@3 C ~@20 D A@3 E A@3 F ~@3 G A@3 F ~@8>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~@2 x", C: "~@4 x ~@7 x ~ x!2", D: "~@3 x", E: "~@4 x ~@2 x ~@4 x ~@3",
  F: "~@4 x ~ x!2 ~@8", G: "~@3 x!2 ~@7 x ~@3",
})).gain(0.45)

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

// drums · low tom
const low_tom = s("lt").struct("<~@47 [~ x ~ x] ~@27 [~@3 x ~@4] ~@12>").gain(0.45)

// drums · open hat
const open_hat = s("oh").struct("<~@16 A@3 B ~@2 C@21 ~@15 D C@12 E ~@3 F C@3 E ~@8>".pickRestart({
  A: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~", B: "~@2 x!2 ~@2 x ~@9", C: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2",
  D: "~@10 x!2 ~@2 x!2", E: "~@2 x!2 ~@2 x!2 ~@8", F: "~@8 x ~ x!2 ~@2 x!2",
})).gain(0.26)

// drums · tambourine
const tambourine = s("tb").struct("<~@20 A@2 ~@13 B@8 ~@5 A C ~@13 D B@7 E ~@2 A D B@3 E ~@8>".pickRestart({
  A: "~@3 x", B: "~ x ~ x ~ x ~ x", C: "~ x ~@2", D: "~@5 x ~ x", E: "~ x ~ x ~@4",
})).gain(0.52)

stack(bass, piano, banjo, marimba, whistle, kick, snare, hihat, low_tom, open_hat, tambourine)

More by Sailor