Strudelify

No Sugar Tonight

Guess Who

KeyF♯ majorTempo96 bpm
0:00/0:00
// No Sugar Tonight — Guess Who
// 96 bpm, 4/4, key F# 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 (6/8 at bar 1, 4/4 at bar 7, 6/4 at bar 28, 4/4 at bar 30) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 57 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): CLEAN GTR.
setcpm(96/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 · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B@4 C@2 D E@5 F@2 G@4 H I J K L M N O@4 P Q R S T U@3 V W X Y Z AA AB AC AD@2 AE AF AG AH AI AJ AK AL@2
>`.pickRestart({
  A: "~@3 g#4@3 b4@2 ~ [f#3,a#4]@7, e3@7 ~@9, ~ b3@3 ~@4, ~@3 e4@5 ~@8", // F#
  B: "[~@5 d#4@2 ~ f#4@2 ~ f4@7 ~@5 [e4,g#4]@3 b4@2 ~ [f#4,a#4]@8 ~@4 d#4@2 ~ f#4@2 ~ [c#3,f4]@7 ~@2 g#4 a#4@2 f#4 [c#4,f#4]@2 [c#4,a#4] ~, ~@2 b2@7 ~ c#3@7 ~@3 e3@8 ~@10 b2@6 ~@15 a#4@3 f#4@2, ~@5 b3@5 ~@46 [c#4,f#4]@4 ~@4]/4", // E F# C# F#5 F# F#5
  C: "[~ g#4 [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 ~ g#4 [b3,g#4] ~ f#4 a#4 ~@2 [c#4,f#4,a#4]@2 f#4 [f#4,g#4] [b3,f#4,g#4]@2 [f#4,g#4]@2 [f#4,g#4]!2 [f#4,a#4]@2 ~ [f#4,a#4] [f#4,a#4]@2 [c#4,f#4,a#4]@2, ~@3 f#4 f#3@6 f#3@5 ~, ~@4 f#4 ~@11, ~@9 [c#4,a#4]@2 ~@9 b3@4 c#4@3 ~@5]/2", // G#m7 E F# F#sus2 G#m7 F#sus2 F#
  D: "~ [f#4,g#4] [f#4,g#4]@2 [b3,f#4,g#4]@2 ~ g#4 [b3,g#4] [c#4,a#4] [f#4,a#4]!2 [f#4,a#4]@2 [c#4,f#4,a#4]@2, ~@2 f#3@2 f#3@3 ~, ~@3 [b3,f#4] f#4 ~@3", // F#sus2 G#m7 E F# B5
  E: "[~ f#4 [b3,f#4]@2 [b3,f#4,g#4]@2 [f#4,g#4]!2 [b3,g#4] [c#4,a#4] f#4 [f#4,a#4] [f#4,a#4]@2 [c#4,f#4,a#4]@3 [f#4,g#4] [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 [f#4,g#4]!2 [b3,f#4,g#4] a#4 [f#4,a#4]!2 [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 ~ [f#4,g#4] [b3,f#4,g#4]@2 [f#4,g#4]@2 [f#4,g#4]!2 [b3,f#4,g#4] a#4 ~ [f#4,a#4] [c#4,f#4]@2 [c#4,f#4,a#4]@2 ~ [f#4,g#4] [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 ~ g#4 [b3,g#4] ~@2 a#4 [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 f#4 [f#4,g#4] [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 ~ g#4 [b3,g#4] ~ [f#4,a#4]!2 [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2, ~ g#4@3 ~@4 f#3@6 f#3@32 f#3@6 f#3@4 f#3@6 f#3@6 ~@5 c#4@3 ~@4, ~@4 f#4 ~@13 b3@2 ~@7 [f#4,g#4] f#4 a#4 ~@5 g#4 f#4 ~@3]/5", // B5 G#m7 F#sus2 E F# F#sus2 G#m7 F#sus2 …
  F: "[~ g#4 [b3,f#4,g#4]@2 g#4@2 g#4!2 [c#4,f#4]@3 [f#4,a#4] [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 ~ [f#4,g#4] [f#4,g#4]@2 [b3,f#4,g#4]@2 [f#4,g#4]@2 [c#4,f#4,a#4]@3 [f#4,a#4] [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2, [f#4,g#4] ~ f#3@5 f#3@3 ~@6, ~@2 [b3,f#4]@2 a#4 ~@11]/2", // G#m7 F#5 F# F#sus2 G#m7 F#sus2 F# F#sus2 …
  G: "[[f#4,g#4]!2 [b3,f#4,g#4]@2 [b3,f#4,g#4]@3 g#4 [c#4,f#4,a#4]@3 [f#4,a#4] [c#4,f#4,a#4]@2 [c#4,a#4] ~ [b3,f#4,g#4] [f#4,g#4] [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 ~ g#4 [b3,g#4] ~@2 a#4 [c#4,f#4,a#4]@2 [c#4,f#4]@2 g#4 [f#4,g#4] [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 [f#3,c#4,f#4,a#4]@15 ~ [c#3,f#3,f#4]@2 [c#3,f#3,c#4,f#4]@2 ~@4, ~@14 f#3@4 ~@4 [b3,f#4,g#4]@2 ~ c#4@3 ~@2 f#3@6 f#3@4 ~@24, ~@14 f#4@2 ~@8 f#4@2 [f#4,a#4]@2 ~@2 a#4 ~@33]/4", // F#sus2 G#m7 F# G#m7 F#sus2 G#m7 E F# …
  H: "[g#3,b3,e4,g#4] [g#3,b3,e4] ~@2 [d#3,f#3,b3,d#4,b4]!2 ~@2, e3 ~@3", // E B
  I: "[f#3,c#4,f#4,a#4] [f#3,c#4,f#4] ~@2 [f#3,c#4,f#4,a#4]!2 ~@2, c#3 ~@3", // F# F#5 F#
  J: "[e3,g#3,b3,e4,g#4]!2 ~@2 [f#3,b3,d#4,b4]!2 ~@2, ~@2 d#3 ~", // E B
  K: "[c#3,f#3,c#4,f#4,a#4] [c#3,f#3,c#4,f#4] ~@2 [c#3,f#3,c#4,f#4,a#4]!2 ~@2", // F# F#5 F#
  L: "[e3,g#3,b3,e4]!2 ~@2 [d#3,f#3,b3] [d#3,f#3,b3,d#4] ~@2, g#2 ~@3", // E B
  M: "[f#3,c#4,f#4] [c#3,f#3,c#4,f#4,a#4] ~@2 [c#3,f#3,c#4,f#4,a#4] [f#3,c#4,f#4,a#4] ~@2", // F#5 F#
  N: "[e3,g#3,b3,e4,g#4]!2 ~@2 [d#3,f#3,b3,d#4,b4]!2 ~@2", // E B
  O: "[[f#3,c#4,f#4,a#4]@16 g#4 a#4@2 a#4 [c#4,a#4]@2 [c#4,f#4,a#4] f#4 ~ [b3,f#4,g#4] [f#3,b3,f#4,g#4]@2 [f#4,g#4]@2 [f#4,g#4] [b3,f#4,g#4] [b3,g#4] [c#4,a#4]@2 [f#4,a#4] [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 g#4 [f#4,g#4]@2 [f#4,g#4] [b3,f#4,g#4]@2 [f#4,g#4] [b3,f#4,g#4] [c#4,f#4,a#4]@2 [f#4,a#4]!2 [f#4,a#4]@2 [c#4,f#4,a#4]@2 [f#4,a#4] [b3,f#4,g#4] [b3,f#4,g#4]@2 [f#4,g#4]@2 [f#4,g#4]!2, c#3@19 ~@13, ~@8 [f#3,c#4,f#4]@2 f#3@3 ~ [f#3,b3]@2 f#3@3 f#3@8 f#3@5, ~@32 f#4@3 ~@16 c#4@3 ~@6 b3@4]/4", // F# G#m7 F#sus2 G#m7 E F# F#sus2 G#m7 …
  P: "[b3,g#4] ~ [f#4,a#4] [c#4,f#4] [c#4,f#4]@2 [c#4,f#4,a#4]@2 f#4 g#4 g#4@2 [f#3,b3,f#4,g#4]@3 [f#4,g#4], f#3@3 f#3@3 ~@2, f#4@2 ~ a#4@3 ~@10, ~ [c#4,a#4]@2 ~@6 [b3,f#4]@3 ~@4", // E F# F#5 F# G#m7 F#sus2 F# B5
  Q: "[b3,g#4] [c#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 ~ [b3,f#4,g#4] [f#3,b3,f#4,g#4]@2 [b3,f#4,g#4]@2 [b3,f#4,g#4]!2, [f#3,f#4]@2 f#3@3 ~ f#3@2", // E F# G#m7 F#
  R: "b3 [c#4,a#4]@2 [f#4,a#4] [f#3,c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 [f#4,g#4] [b3,f#4,g#4] [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 [b3,f#4,g#4]!2, [f#3,f#4]@2 ~ f#3@3 f#3@2", // F# F#sus2 G#m7 F#
  S: "[b3,g#4] a#4@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 f#4 [b3,f#4,g#4] [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 [f#4,g#4]!2, f#3@5 f#3@3, f#4@3 ~@13", // E F# G#m7 F#sus2
  T: "[b3,g#4] a#4!2 f#4 [c#4,f#4]@2 [c#4,f#4,a#4]@2 f#4 [b3,f#4,g#4] [b3,f#4,g#4]@2 [f#4,g#4]@2 [f#4,g#4]!2, f#3@3 f#3@3 [f#3,b3]@2, f#4@3 a#4@3 ~@10, ~ c#4@3 ~@12", // E F#5 F# G#m7 F#sus2 B5
  U: "[[b3,g#4] c#4@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@2 g#4 [b3,f#4,g#4] [b3,f#4,g#4]@2 [b3,f#4,g#4]@2 [f#4,g#4] [b3,f#4,g#4] [b3,f#4,g#4] ~ [f#4,a#4]!2 [c#4,f#4,a#4]@2 [f#3,f#4]@3 [b3,f#4,g#4] [f#3,b3,f#4,g#4]@2 [f#4,g#4]@2 ~ g#4 [b3,g#4] c#4@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [c#4,f#4,a#4]@3 [f#4,g#4] [f#4,g#4]@2 [b3,f#4,g#4]@2 [b3,f#4,g#4]@2, f#3@3 f#3@8 ~@3 f#3@5 f#3@3 f#3@2, f#4@3 ~@19 [c#4,a#4]@2 ~@4 b3@4 ~@9 b3@3 ~@4, ~@30 [f#4,g#4]@2 f#4@3 ~@13]/3", // E F# G#m7 F#sus2 G#m7 F# G#m7 F#sus2 …
  V: "[f#3,c#4,f#4,a#4]@7 ~", W: "[f#3,f#4,a#4] [f#3,c#4,f#4,a#4] ~@2 [g#3,b3,e4,g#4] [e3,g#3,b3,e4,g#4] ~@2",
  X: "[f#3,b3,d#4,b4]!2 ~@2 [c#3,f#3,c#4,f#4,a#4] [c#3,f#3,c#4,f#4] ~@2, [b2,d#3] ~@3", // B F# F#5 B
  Y: "[f#3,c#4,f#4,a#4]!2 ~@2 [e3,g#3,b3,g#4] [e3,g#3,b3,e4,g#4] ~@2", // F# E
  Z: "[f#3,b3,d#4] [f#3,b3,d#4,b4] ~@2 [f#3,c#4,f#4,a#4]!2 ~@2, d#3 ~ c#3 ~, b4 ~@15", // B F#
  AA: "[f#3,c#4,f#4,a#4]!2 ~@2 [e3,g#3,b3,e4] [e3,g#3,b3,e4,g#4] ~@2, c#3 ~@3", // F# E
  AB: "[d#3,f#3,b3,d#4,b4]!2 ~@2 [f#3,c#4,f#4,a#4] [c#3,f#3,c#4,f#4,a#4] ~@2", // B F#
  AC: "[f#3,c#4,f#4,a#4]!2 ~@2 [e3,g#3,b3,e4,g#4]!2 ~@2, c#3 ~@3", // F# E
  AD: "[[d#3,f#3,b3,d#4,b4] [b2,d#3,f#3,b3,d#4,b4] ~@2 [f#3,c#4,f#4,a#4]@8 [f#3,c#4,f#4,a#4]!2 ~@2]/2", // B F#
  AE: "[e3,g#3,b3,e4] [e3,g#3,b3,e4,g#4] ~@2 [f#3,b3,d#4,b4]!2 ~@2, ~@2 d#3 ~", // E B
  AF: "[f#3,c#4,f#4,a#4] [c#3,f#3,c#4,f#4,a#4] ~@2 [f#3,c#4,f#4,a#4]!2 ~@2, ~@2 c#3 ~", // F#
  AG: "[e3,g#3,b3,e4,g#4]!2 ~@2 [b2,d#3,f#3,b3,d#4,b4]!2 ~@2", // E B
  AH: "[f#3,c#4,f#4,a#4] [f#3,c#4,f#4] ~@2 [f#3,c#4,f#4,a#4]!2 ~@2, ~@2 c#3 ~", // F# F#5 F#
  AI: "[e3,g#3,b3,e4,g#4] [e3,g#3,b3,e4] ~@2 [d#3,f#3,b3,d#4,b4]!2 ~@2", // E B
  AJ: "[f#3,c#4,f#4,a#4]!2 ~@2 [f#3,c#4,f#4,a#4] [c#3,f#3,c#4,f#4,a#4] ~@2", // F#
  AK: "[g#3,b3,e4,g#4] [e3,g#3,b3,e4,g#4] ~@2 [d#3,b3,d#4] [d#3,f#3,b3] ~@2, ~@2 b2 ~, ~@8 f#3 ~@7", // E G#m B
  AL: "[[c#3,f#3,c#4,f#4,a#4]@3 ~]/2", // F#
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.7)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B@5 C@3 D E F G@2 H@2 I J K ~ L M N O P ~@2 Q ~@4 R S ~ T U V ~ W X Y ~ Z AA ~@3 AB ~@2 AC AD AE AF ~@2
>`.pickRestart({
  A: "~@9 [c#4,f#4]@7", // F#5
  B: "[~@4 f#3@5 ~@2 [g#3,c#4]@7 ~@4 b3@6 ~ [f#3,c#4]@8 ~@4 b3@5 ~ [g#3,c#4]@7 ~@10 g#4 f#4 ~@4 [b3,g#4]@2 ~@2 a#4 f#4 [f#4,a#4]@2 ~@2, ~@20 f#3@3 ~@8 f#3@5 ~@4]/5", // C#5 F#5 C#5 E F#
  C: "[[b3,g#4] ~@9 [f#4,a#4] ~ c#4@2 ~@2 f#4 ~ b3@2 ~@2 g#4@2 ~@4 c#4@2 ~@2 g#4 b3 ~@4 b3 ~@3 [c#4,a#4] ~ c#4@2 ~@2, ~@7 f#3@3 ~@5 f#3@5 ~@4]/3", // E F#
  D: "~@6 b3 ~@3 c#4 ~@5", E: "f#4 ~@9 [f#4,a#4] ~ a#4@2 ~@2", F: "f#4 ~@5 b3@2 ~@2 f#4@2 ~@4, ~@9 [c#4,a#4]@2 ~@5",
  G: "[[b3,g#4] ~@5 f#4@2 ~ a#4 ~@6 b3@2 ~@8 a#4 ~@5, ~ f#3 f#3@3 ~@3]/2", // E
  H: "[[f#4,g#4] b3@3 ~@2 b3@2 ~@8 b3!2 ~@2 f#3@8 f#3@2 ~@2, ~ f#3 f#3@3 ~@3]/2", // F#sus2
  I: "~ b3 f#3@2 f#3@4 ~ a#4 ~@6, ~@4 f#3@3 ~", J: "~ b3 ~@14", K: "~@4 [c#4,a#4] a#4 ~@2", L: "~ a#4 ~@3 c#3 ~@2",
  M: "~@2 b2 ~", N: "~ a#4 ~@6", O: "g#4 ~@3 b4@2 ~@2, ~@4 d#4 ~@3", P: "c#3 ~@7", Q: "~@4 f#4@2 ~ g#4 [f#4,g#4] ~@7",
  R: "g#4 ~ a#4 c#4 ~@4 b3 ~@7", S: "~ c#4@2 ~@13", T: "~@2 a#4 ~@13, ~ a#4@2 ~@13", U: "~ c#4 ~ c#4 ~@12",
  V: "~ a#4@2 ~@13", W: "~@4 e3 ~@3", X: "~@5 a#4 ~@2", Y: "c#3@2 ~@2 e4 ~@3", Z: "~@4 g#4 ~@3", AA: "~ b2 ~@6",
  AB: "g#4 ~@7", AC: "~ [c#3,a#4] ~@6", AD: "~ g#4 ~@6", AE: "c#3 ~@3", AF: "~@5 d#4 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.7)

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~@2 A@5 B C D B@7 E@2 F G H G I G H J K L M L@8 J N O P Q N Q P R@2 F G H G I G S T@2
>`.pickRestart({
  A: "[~@4 e2@9 f#2@9 b2@9 c#3@8 ~ f#2@25 ~ b1 ~ c#2 e2@3 f#2@7 f#2]/5", B: "e2@4 b1@4 f#2@6 ~ f#2",
  C: "e2@4 b1@4 f#2@7 f#2", D: "e2@3 ~ b1@4 f#2@6 ~ f#2",
  E: "[e2@4 b1@4 f#3@3 e3@3 c#3@4 b2@2 a2@2 b2@2 f#2@2 f#2@2 ~@4]/2", F: "e2!2 ~@2 b1!2 ~@2", G: "f#2!2 ~@2 f#2!2 ~@2",
  H: "e2 ~ e2@2 ~@4 b1 ~ b1@2 ~@4", I: "e2@2 e2@2 ~@4 b1 ~ b1@2 ~@4", J: "f#3@3 e3@3 c#3@4 b2@2 a2@2 b2@2",
  K: "f#2@7 f#2 e2@4 b1@4", L: "f#2@6 ~ f#2 e2@4 b1@4", M: "f#2@7 f#2 e2@3 ~ b1@4", N: "f#2!2 ~@2 e2!2 ~@2",
  O: "b1!2 ~@2 f#2!2 ~@2", P: "f#2@2 f#2@2 ~@4 e2 ~ e2@2 ~@4", Q: "b1 ~ b1@2 ~@4 f#2@2 f#2@2 ~@4",
  R: "[b1 ~ b1@2 ~@4 f#3@3 e3@3 c#3@4 b2@2 a2@2 b2@2 f#2@2 f#2@2 ~@4]/2", S: "e2 ~ e2@2 ~@4 b1@2 b1@2 ~@4",
  T: "[f#1@3 ~]/2",
})).s("gm_synth_bass_2").gain(0.44)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@2 A B ~@13 C D ~@7 E ~@11 F G ~@6 H@2 ~@9>".pickRestart({
  A: "~@4 f#4 g#4 e4 ~", B: "c#4@3 a#4@3 ~@6 d#5@2 b4@2, ~@11 c#5@2 ~@3", C: "~@11 e3@3 c#3@2",
  D: "~@2 b2@2 a2@2 b2 ~@9", E: "~@3 e3@3 c#3@4 b2@2 a2@2 b2@2", F: "~@3 e3@3 c#3@3 ~ b2@2 a2@2 b2 ~", G: "c#3 ~@7",
  H: "[~@11 e3@3 c#3@4 b2@2 a2@2 b2@2 ~@8]/2",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.2)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note("<~@18 A@8 B ~@12 C D E F G H G I@8 J K@2>".pickRestart({
  A: "[~@10 [c#4,f#4,a#4]@2 [c#4,f#4,a#4]!3 [e4,g#4,b4]@3 ~@8 [d#4,f#4,b4]@2 [d#4,f#4,b4]!3 [c#4,f#4,a#4]@2 ~@9 [c#4,f#4,a#4]@2 [c#4,f#4,a#4]!3 [e4,g#4,b4]@2 ~@9 [d#4,f#4,b4]@2 [d#4,f#4,b4]!3 [c#4,f#4,a#4]@3 ~@8 [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [e4,g#4,b4]@3 ~@8 d#4 c#4 [d#4,f#4,b4] [d#4,f#4,b4]@2 [c#4,f#4,a#4]@3 ~@8 [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [e4,g#4,b4]@3 ~@8 d#4 c#4 [d#4,f#4,b4] [d#4,f#4,b4]@3, ~@45 [f#4,b4] ~@15 [f#4,b4] ~@2]/8", // F# E B F# E B F# E …
  B: "[c#4,f#4,a#4]@15 ~", C: "~@2 [c#4,f#4,a#4]@2 [c#4,f#4,a#4]!3 [e4,g#4,b4]@3 ~@6",
  D: "~@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]!3 [c#4,f#4,a#4]@2 ~@7", // B F#
  E: "~@2 [c#4,f#4,a#4]@2 [c#4,f#4,a#4]!3 [e4,g#4,b4]@2 ~@7", // F# E
  F: "~@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]!3 [c#4,f#4,a#4]@3 ~@6", // B F#
  G: "~@2 [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [e4,g#4,b4]@3 ~@6", // F# E
  H: "~@2 d#4 c#4 [d#4,f#4,b4] [d#4,f#4,b4]@2 [c#4,f#4,a#4]@3 ~@6, ~ [f#4,b4] ~@6", // B F# B5
  I: "[~@2 [d#4,f#4,b4]@2 [d#4,f#4,b4] [d#4,f#4,b4]@3 [c#4,f#4,a#4]@15 ~@3 [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [e4,g#4,b4]@3 ~@8 [d#4,f#4,b4]@2 [d#4,f#4,b4] [d#4,f#4,b4]@2 [c#4,f#4,a#4]@3 ~@8 [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [e4,g#4,b4]@3 ~@8 [d#4,f#4,b4]@2 [d#4,f#4,b4] [d#4,f#4,b4]@2 [c#4,f#4,a#4]@3 ~@8 [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [e4,g#4,b4]@3 ~@8 [d#4,f#4,b4]@2 [d#4,f#4,b4] [d#4,f#4,b4]@2 [c#4,f#4,a#4]@3 ~@8 [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [e4,g#4,b4]]/8", // B F# E B F# E B F# …
  J: "~@10 d#4 c#4 [d#4,f#4,b4] [d#4,f#4,b4]@3, ~@5 [f#4,b4] ~@2", K: "[[c#4,f#4,a#4]@3 ~]/2",
})).s("gm_epiano1").gain(0.32)

// chords · epiano1 · "E.PIANO 1" · soft notes
const epiano1_soft = note(`<
  ~@10 A B A C D E F G@2 H I J K L M L ~@4 N O@4 P@3 Q R S T U V W V ~@2 L X L M L M L ~@2
>`.pickRestart({
  A: "~@4 f#4@2 f#4 d#4@2 c#4@3 ~@4", B: "~@4 a#3 b3@2 b3@4 ~@5", C: "~@3 f#3 a#3 b3@2 b3@5 ~@4",
  D: "~@2 f#4!2 c#4!2 ~@2", E: "~@2 a#3 b3 b3@2 ~@2", F: "~@4 f#4 f#4@2 d#4@2 d#4@4 ~@3",
  G: "[~@3 a#3 c#4 c#4@3 f#4@12 ~@12]/2", H: "~@2 e4 c#4 e4@2 f#4@2 ~@8", I: "~ g#4 a#4@2 f#4@3 ~@9",
  J: "~ c#4 e4@4 f#4@2 ~@8", K: "~@2 f#4@2 f#4@3 ~@9", L: "~@2 e4 d#4 e4 f#4@3 ~@8", M: "~@2 a#4@2 f#4@3 ~@9",
  N: "~@6 f#4!2",
  O: "[d#4@2 c#4@2 ~@8 a#3 b3@2 c#4@4 ~@9 f#4 f#4@2 d#4@2 c#4@3 ~@7 f#3 a#3 b3@2 b3@5 ~@8 f#4@2 f#4@2]/4",
  P: "[c#4@2 c#4@2 ~@8 a#3 b3@2 b3@4 ~@9 f#4 f#4@2 d#4@2 d#4@3 ~@8 c#4 c#4@3]/3", Q: "f#4@7 ~",
  R: "~@10 e4 c#4 e4@2 f#4@2", S: "~@9 g#4 a#4@2 f#4@3 ~", T: "~@9 c#4 e4@4 f#4@2", U: "~@5 f#4!2 ~",
  V: "~@10 e4 d#4 e4 f#4@3", W: "~@5 a#4 f#4@2", X: "~ a#4 f#4@2 ~@4",
})).s("gm_epiano1").gain(0.08)

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

// drums · snare
const snare = s("sd").struct("<~@7 A B C@4 D E C D F G H@7 I C@3 J C@3 K L C M I H@7 N G H@7 ~@2>".pickRestart({
  A: "~@13 x!3", B: "x!3 ~@9 x ~@3", C: "~ x ~ x", D: "~@4 x ~@7 x ~@2 x", E: "~ x ~ x!2 ~@7 x ~@2 x", F: "~ x!2 ~",
  G: "~@2 x!2", H: "x!4", I: "x", J: "~@4 x ~@3 x!4 ~@4", K: "~@4 x ~@2 x ~ x ~ x!2 ~@3", L: "~@4 x ~@2 x ~@4 x ~@3",
  M: "~@4 x ~@2 x ~@7 x", N: "x!3 ~",
})).gain(0.49)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@7 A ~@6 B C ~ D ~@16 E ~ F ~@20>".pickRestart({
  A: "~@9 x!4 ~@3", B: "~ x ~@6", C: "~@15 x", D: "~@6 x!2 ~@8", E: "~@5 x ~@2", F: "~@7 x ~@8",
})).gain(0.27)

// drums · low tom
const low_tom = s("lt").struct("<~@8 [~@6 x!2 ~@8] ~@48>").gain(0.44)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@10 A ~@2 B ~ C ~@11 C ~@3 D ~ C ~@2 B ~@20>".pickRestart({
  A: "~ x ~@3 x ~@2", B: "~@3 x ~@4", C: "~@7 x", D: "~ x ~@6",
})).gain(0.22)

// drums · mid tom
const mid_tom = s("mt").struct("<~@8 A ~@5 B ~@15 C ~@3 D ~@22>".pickRestart({
  A: "~@3 x!3 ~@10", B: "~@5 x!3 ~@8", C: "~@12 x!4", D: "~@13 x!3",
})).gain(0.49)

// drums · open hat
const open_hat = s("oh").struct("<~@13 A ~@3 B ~@12 C ~@3 D ~@2 E ~@19>".pickRestart({
  A: "~@7 x", B: "~ x ~@2", C: "~@5 x ~@2", D: "~@3 x ~@4", E: "~@3 x",
})).gain(0.33)

// drums · crash
const crash = s("cr").struct("<~@8 A ~@5 A ~@2 A B C@3 D C@3 E@2 ~@7 E ~@2 E C@4 F C@2 G B C@3 D C@3 E ~>".pickRestart({
  A: "~ x", B: "~@3 x", C: "~ x ~ x", D: "~ x!3", E: "x", F: "x!2 ~ x", G: "~ x!2 ~",
})).gain(0.38)

// drums · shaker
const shaker = s("sh").struct("<~@6 A B@3 C D@6 E F D@7 G D@11 G D@7 E F D@7 G ~>".pickRestart({
  A: "~@2 x!2", B: "x!4", C: "x ~ x ~ x!4", D: "x!8", E: "x!5 ~@3", F: "~@4 x!4", G: "x",
})).gain(0.44)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, bass, electric_guitar_clean, epiano1, epiano1_soft, kick, snare,
  snare_soft, low_tom, hihat, hihat_soft, mid_tom, open_hat, crash, shaker
)

More by Guess Who