Strudelify

Slumbering Weald

Junichi Masuda

KeyA majorTempo114 bpm
0:00/0:00
// Slumbering Weald — Junichi Masuda
// 114 bpm, 3/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/4 at bar 1, 4/4 at bar 37, 3/4 at bar 64, 4/4 at bar 108, ...) are rendered on a constant 3/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 2 "Electric Piano" named as a piano, played on epiano1 (its string ensemble 1 patch is not one); ch 1 "Electric Piano" named as a piano, played on epiano1 (its slap bass 2 patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5879599; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 142 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/3)

// 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 · epiano1 · "Electric Piano"
const epiano1 = note(`<
  A@2 B@8 C@8 D@7 E@8 ~@3 F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG@8 AH@7 AI@8 AJ AK AL@8 AM@7 ~@4
  AN AO AP AQ AR AS W X AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM@4 BN@4
>`.pickRestart({
  A: "[~@29 a4@3, ~@11 g#4@16 g#4@5, ~@13 a4@16 ~@3, ~ e5]/2",
  B: "[~@16 e5@5 ~@59 c#5@5 ~@16 a4@2 ~ a4@3 ~@18 a4@3, e5@16 ~@5 e5@2 e5@6 a4@3 g#4@3 a4@8 g#4@16 g#4@16 g#4@16 g#4@8 f#4@8 ~@2 a4@16 ~@3, ~@11 g#4@16 c#5@32 ~@5 d5@22 d5@13 a4 g#4@3 g#4@4 g#4@16 g#4@5, ~@13 a4@11 d5@27 a4@10 a4@5 ~ a4@10 a4@11 a4@5 a4@3 e4@11 ~@21, ~@22 f#5@23 a4@3 e5@32 ~@5 c#5@2 c#5@20 ~@5 e5@16]/8",
  C: "[~@16 e5@5 ~@11 g#4@3 ~@2 a4@2 ~@41 c#5@5 ~@16 a4@2 ~ a4@3 ~@18 a4@3, e5@16 ~@5 e5@2 e5@6 a4@5 ~ f#4@32 a4@10 a4@11 a4@5 a4@3 e4@11 ~@21, ~@11 g#4@16 c#5@24 a4@10 a4@3 d5@22 d5@13 a4 g#4@3 g#4@4 g#4@16 g#4@5, ~@13 a4@11 d5@21 a4@3 e5@32 ~@5 c#5@2 c#5@20 ~@5 e5@16, ~@22 f#5@13 a4 g#4@3 g#4 a4@3 g#4@16 g#4@16 g#4@16 g#4@8 f#4@8 ~@2 a4@16 ~@3]/8",
  D: "[~@5 c#5@2 ~@4 g#4 ~ a4@2 ~@17 g#4@3 ~@2 a4@2 ~@30 c#5@2 ~@4 g#4 ~ a4@2 ~@20 a4@8 ~@2 a4@3, e5@11 a4 g#4 f#4@11 d5@21 a4@3 e5@27 a4 g#4 f#4@3 c#5 g#4@6 c#5 a4@3 g#4@2 a4@3 e4@11 ~@5, ~@3 a4@6 b4@6 g#4@8 e5@4 c#5@24 a4@10 a4@3 d5@4 b4@3 d5@12 f#4@24 g#4@5, ~@4 b4@4 c#5@8 a4@3 c#5@2 e5 f#5@13 a4 g#4@3 g#4 a4@3 g#4@16 g#4@13 c#5@7 g#4 a4@5 c#5 d5@20 ~@6, ~@7 d5@9 e5 b4@12 a4@5 ~ f#4@32 a4@6 b4@32 ~@7]/7",
  E: "[~@32 e5@5 ~@14 a4@2 ~@14 a4@2 ~@27 c#5@5 ~@14 a4@3 ~@10, e5@16 e5@16 ~@5 e5@2 e5@22 a4@3 e5@5 ~@11 d5@22 d5@15 ~@11, ~@11 g#4@16 g#4@10 ~ f#5@32 ~@34 a4@5 a4@3 e4@5 ~@11, ~@13 a4@16 a4@14 c#5@2 a4@3 g#4@11 g#4@16 g#4@16 g#4@16 g#4@11 ~@10, ~@40 d5@32 ~@5 a4@5 ~ a4@10 a4@8 c#5@2 c#5@14 ~@11]/8",
  F: "~@13 a4@3", G: "~@3 c4@2 f4@3 a4@3 ~@2 [c4,c5]@3", H: "[f4,f5]@3 [a4,a5]@3 ~@2 [c4,c5]@3 [f4,f5]@2 [a4,a5]@3",
  I: "~@8 g#4@3 ~@2 b3@3", J: "e4@3 g#4@3 ~@2 [b3,b4]@3 [e4,e5]@2 [g#4,g#5]@3",
  K: "~@3 [b3,b4]@2 [e4,e5]@3 [g#4,g#5]@3 ~@5", L: "~@3 g4@3 ~@2 c#4@3 e4@2 g4@3",
  M: "~@3 [c#4,c#5]@2 [e4,e5]@3 [g4,g5]@3 ~@2 [c#4,c#5]@3", N: "[e4,e5]@3 [g4,g5]@3 ~@7 f#4@3",
  O: "a#3@3 c#4@2 e4@3 f#4@3 [a#3,a#4]@2 [c#4,c#5]@3", // A# C#
  P: "[e4,e5]@3 [f#4,f#5]@2 [a#3,a#4]@3 [c#4,c#5]@3 [e4,e5]@2 [f#4,f#5]@3", Q: "~@8 a4@3 ~@2 d#4@3",
  R: "f#4@3 a4@3 ~@2 [d#4,d#5]@3 [f#4,f#5]@2 [a4,a5]@3", S: "~@3 [d#4,d#5]@2 [f#4,f#5]@3 [a4,a5]@3 ~@5",
  T: "~@3 g#4@3 ~@2 d#4@3 f#4@2 g#4@3", U: "~@3 [d#4,d#5]@2 [f#4,f#5]@3 [g#4,g#5]@3 ~@2 [d#4,d#5]@3",
  V: "[f#4,f#5]@3 [g#4,g#5]@3 ~@7 g4@3", W: "~@3 c#4@2 e4@3 g4@3 ~@2 [c#4,c#5]@3",
  X: "[e4,e5]@3 [g4,g5]@3 ~@2 [c#4,c#5]@3 [e4,e5]@2 [g4,g5]@3", Y: "~@8 f#4@3 ~@2 b3@3",
  Z: "c#4@3 f#4@3 ~@2 [b3,b4]@3 [c#4,c#5]@2 [f#4,f#5]@3", AA: "~@3 [b3,b4]@2 [c#4,c#5]@3 [f#4,f#5]@3 ~@5",
  AB: "~@3 f4@3 ~@2 a3@3 c4@2 f4@3", AC: "~@3 [a3,a4]@2 [c4,c5]@3 [f4,f5]@3 ~@2 [a3,a4]@3",
  AD: "[c4,c5]@3 [f4,f5]@3 ~@7 e4@3", AE: "~@3 g#3@2 b3@3 e4@3 ~@2 [g#3,g#4]@3",
  AF: "[b3,b4]@3 [e4,e5]@3 ~@2 [g#3,g#4]@3 [b3,b4]@2 [e4,e5]@3", // B E G# B E
  AG: "[~@45 f#5@3 ~@13 e4@8 ~@56 e4@3, ~@5 c#4@22 [b4,e5]@13 e4@10 e5@20 ~@5 d5@16 d5@16 d5@7 e5@6 b4@3 f#4@5, ~@8 e4@13 b3@22 e5@5 [a#4,e5] f#5@2 d5@19 ~@2 b4@16 b4@16 b4@5 b4@6 d5@13, ~@11 c#5@32 [g4,b4]@27 ~@42 e5 f#5@15, ~@11 e5@13 e4@13 c#4@16 c#5@3 a#4@3 f#4@10 f#4@16 f#4@16 f#4@16 c#5@11]/8", // E5 A#dim G
  AH: "[~@43 e5@5 ~@59 c#5@5, ~@5 g#4@16 g#4@16 g#4@16 c#5@32 ~@6 d5@21, ~@8 a4@16 a4@16 a4@11 d5@26 a4@11 a4@5 a4@11 a4@8, ~@11 e5@16 e5@16 ~@5 e5@2 e5@6 a4@3 g#4@2 a4@8 g#4@16 g#4@16 g#4@11, ~@49 f#5@23 a4@3 e5@32 ~@5]/7",
  AI: "[~@13 a4@2 ~@4 a4@2 ~@38 e5@5 ~@13 a4@2 ~@44 c#5@5, c#5@2 c#5@20 ~@5 e5@16 e5@16 ~@5 e5@2 e5@6 a4@3 g#4@2 f#4@30 d5@21, ~ d5@14 g#4 a4 g#4@4 g#4@16 g#4@16 g#4@16 c#5@24 a4@11 a4@5 a4@11 a4@8, ~@3 a4@5 a4@3 e4@11 ~@43 f#5@14 g#4 a4 g#4@2 a4@2 g#4@16 g#4@16 g#4@11, ~@5 g#4@8 f#4@8 ~@3 a4@16 a4@16 a4@11 d5@21 a4@3 e5@32 ~@5]/8",
  AJ: "~@13 [f#4,a4]@2 g#4, c#5 c#5@7, ~ d5@15, ~@3 a4@5 a4@3 e4@5, ~@5 g#4@9 ~@2", // F#m
  AK: "~@3 a4@2 ~@6 e5@5, a4@3 ~@5 a4@8, ~ g#4@4 g#4@11",
  AL: "[~@21 [g#4,a4]@2 ~@22 a4@2 ~@38 [g#4,a4]@2 ~@2 g#4@2 ~@18 a4@8 ~@6 e5@5, ~@5 g#4@14 c#5@8 a4@2 c#5@3 e5 f#5@14 g#4 a4 g#4@2 a4@2 g#4@8 a4@11 a4@3 d5@4 b4 c#5 d5@12 f#4@24 g#4@11, ~@8 a4@5 a4@7 b4@4 a4 g#4@9 e5@3 c#5@32 g#4@14 c#5@4 g#4 f#4@3 c#5 g#4@6 c#5 a4@2 g#4@3 a4@3 e4@11 ~@10, ~@11 e5@12 g#4 f#4@11 d5@21 a4@3 e5@29 a4@3 a4@5 c#5 d5@20 ~@11, ~@15 b4 c#5 d5@10 e5 b4@12 a4@3 g#4@2 f#4@32 a4@7 b4@32 ~@4 a4@8]/8", // Amaj7
  AM: "[~@27 e5@5 ~@13 a4@3 ~@13 a4@3 ~@27 c#5@5 ~@13 a4@3, ~@5 g#4@16 g#4@11 ~ f#5@32 ~@34 a4@5 a4@3 e4@5, ~@8 a4@16 a4@13 c#5@3 a4@3 g#4@10 g#4@16 g#4@16 g#4@16 g#4@11, ~@11 e5@16 ~@5 e5@2 e5@22 a4@3 e5@5 ~@11 d5@22 d5@15, ~@35 d5@32 ~@5 a4@5 a4@11 a4@8 c#5@2 c#5@14]/7",
  AN: "~@8 a4@3 ~@2 c4@3", AO: "f4@3 a4@3 ~@2 [c4,c5]@3 [f4,f5]@2 [a4,a5]@3",
  AP: "~@3 [c4,c5]@2 [f4,f5]@3 [a4,a5]@3 ~@5", AQ: "~@3 g#4@3 ~@2 b3@3 e4@2 g#4@3",
  AR: "~@3 [b3,b4]@2 [e4,e5]@3 [g#4,g#5]@3 ~@2 [b3,b4]@3", AS: "[e4,e5]@3 [g#4,g#5]@3 ~@7 g4@3",
  AT: "~@8 f#4@3 a#3@2 c#4@3", AU: "e4@3 f#4@2 [a#3,a#4]@3 [c#4,c#5]@3 [e4,e5]@2 [f#4,f#5]@3",
  AV: "[a#3,a#4]@3 [c#4,c#5]@2 [e4,e5]@3 [f#4,f#5]@3 ~@5", AW: "~@3 a4@3 ~@2 d#4@3 f#4@2 a4@3",
  AX: "~@3 [d#4,d#5]@2 [f#4,f#5]@3 [a4,a5]@3 ~@2 [d#4,d#5]@3", AY: "[f#4,f#5]@3 [a4,a5]@3 ~@7 g#4@3",
  AZ: "~@3 d#4@2 f#4@3 g#4@3 ~@2 [d#4,d#5]@3", BA: "[f#4,f#5]@3 [g#4,g#5]@3 ~@2 [d#4,d#5]@3 [f#4,f#5]@2 [g#4,g#5]@3",
  BB: "~@8 g4@3 ~@2 c#4@3", BC: "e4@3 g4@3 ~@2 [c#4,c#5]@3 [e4,e5]@2 [g4,g5]@3",
  BD: "~@3 [c#4,c#5]@2 [e4,e5]@3 [g4,g5]@3 ~@5", BE: "~@3 f#4@3 ~@2 b3@3 c#4@2 f#4@3",
  BF: "~@3 [b3,b4]@2 [c#4,c#5]@3 [f#4,f#5]@3 ~@2 [b3,b4]@3", BG: "[c#4,c#5]@3 [f#4,f#5]@3 ~@7 f4@3",
  BH: "~@3 a3@2 c4@3 f4@3 ~@2 [a3,a4]@3", BI: "[c4,c5]@3 [f4,f5]@3 ~@2 [a3,a4]@3 [c4,c5]@2 [f4,f5]@3",
  BJ: "~@8 e4@3 ~@2 g#3@3", BK: "b3@3 e4@3 ~@2 [g#3,g#4]@3 [b3,b4]@2 [e4,e5]@3",
  BL: "~@3 [g#3,g#4]@2 [b3,b4]@3 [e4,e5]@3 ~@5", // G# B E
  BM: "[~@40 f#5@3 e5 ~@12 e4@8, c#4@21 [b4,e5]@14 e4@10 d5@3 c#5@3 a#4@2 f#4@11, ~@3 e4@13 b3@21 e5@5 ~ a#4 [e5,f#5]@20, ~@5 c#5@32 [g4,b4]@27, ~@5 e5@14 e4@13 c#4@32]/4", // E5 Esus2 G
  BN: "[~@43 e5 ~@12 e4@3 ~@5, f#4@16 f#4@16 f#4@19 b4@8 ~@5, ~@3 b4@16 b4@16 b4@5 b4@8 c#5@11 ~@5, ~@5 d5@16 d5@16 d5@7 [e5,f#5]@15 ~@5, ~@45 d5@8 f#4@5 ~@6]/4", // Esus2
})).s("gm_epiano1").gain(0.3)

// chords · epiano1 · "Electric Piano" · soft notes
const epiano1_soft = note(`<
  ~@24 A@2 B@7 ~@3 C ~@2 D ~ E F ~ G ~@2 H ~ I J ~ K ~@2 L ~ M N ~ O ~@34 P@2 Q@6 ~@4 R ~ S F ~ K ~@2 T ~ I J ~ U ~@2 V
  ~ S W ~ X ~@2 Y ~@10
>`.pickRestart({
  A: "[~@5 g#4@6 ~@10 e4@11, ~@5 c#5@27, ~@21 a4@8 ~@3]/2",
  B: "[~@21 g#4@11 ~@5 a4@8 ~@8 e4@16 ~@16 e5@16 ~@11, ~@5 [e4,b4]@32 ~@16 a4@8 ~@8 [b4,g#5]@32 ~@11, ~@21 g#5@32 e5@32 a4@3 ~@24, ~@21 c#5@6 ~@10 [c#5,a5]@32 e4@27 ~@16]/7", // E5 E F#m
  C: "~@8 c4@3 f4@3 ~@2", D: "~@3 b3@2 e4@3 ~@8", E: "~@13 c#4@3", F: "e4@3 ~@13", G: "~@5 a#3@3 c#4@3 e4@3 ~@2",
  H: "~@3 d#4@2 f#4@3 ~@8", I: "~@13 d#4@3", J: "f#4@3 ~@13", K: "~@8 c#4@3 e4@3 ~@2", L: "~@3 b3@2 c#4@3 ~@8",
  M: "~@13 a3@3", N: "c4@3 ~@13", O: "~@8 g#3@3 b3@3 ~@2", P: "[g#4@5 ~@11 e4@16, c#5, ~@2 a4 ~]/2",
  Q: "[~@16 g#4@11 ~@5 a4@8 ~@8 e4@16 ~@16 e5@16, [e4,b4]@4 ~@2 a4 ~ [b4,g#5]@4, ~@16 g#5@32 e5@32 a4@3 ~@13, ~@16 c#5@5 ~@11 [c#5,a5]@32 e4@27 ~@5]/6", // E5 E F#m
  R: "~@3 c4@2 f4@3 ~@8", S: "~@13 b3@3", T: "a#3@3 c#4@2 e4@3 ~@8", U: "~@8 d#4@3 f#4@3 ~@2", V: "~@3 c#4@2 e4@3 ~@8",
  W: "c#4@3 ~@13", X: "~@8 a3@3 c4@3 ~@2", Y: "~@3 g#3@2 b3@3 ~@8",
})).s("gm_epiano1").gain(0.2)

// chords · epiano1 · "Electric Piano"
const epiano1_2 = note(`<
  A@8 B@24 ~@31 C D C ~ E@3 ~ F G H G F G H G I G H F I G H F I G H F I G H F I G H F I G H F ~@30 J@4 K@4 ~
>`.pickRestart({
  A: "[~@11 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@5, ~@5 c#3@16 d3@16 e3@16 d3@16 c#3@16 d3@16 e3@16 d3@11, ~@8 a3@13 ~@3 a3@13 ~@3 a3@13 ~@3 a3@13 ~@3 a3@13 ~@3 a3@13 ~@3 a3@13 ~@3 a3@8]/8",
  B: "[~@11 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@10 ~@6 e4@5, ~@5 f#3@16 d3@16 e3@16 c#3@16 ~@3 a3@13 ~@3 a3@13 ~@3 a3@13 ~@3 a3@8, ~@8 a3@13 ~@3 a3@13 ~@3 a3@13 ~@3 a3@13 f#3@16 d3@16 e3@16 c#3@11]/8",
  C: "~@3 e3@13", D: "~@3 g#3@13", E: "~@3 f#3@13", F: "~@5 e4@11, c#3, ~@3 a3@13", G: "~@5 e4@11, d3, ~@3 a3@13",
  H: "~@5 e4@11, e3, ~@3 a3@13", I: "~@5 e4@11, f#3, ~@3 a3@13", J: "[~@13 e3@13 ~@3 g#3@13 ~@3 e3@13 ~@6]/4",
  K: "[~@13 f#3@13 ~@3 f#3@13 ~@3 f#3@13 ~@6]/4",
})).s("gm_epiano1").gain(0.3)

// other · string ensemble 1 · "Violas"
const string_ensemble_1 = note(`<
  ~@8 A ~@3 A ~@3 A ~ B C A ~ B D ~@54 E F ~@2 E F ~@2 E F G H E F G I ~@48
>`.pickRestart({
  A: "~@3 f#3 g#3 a3 ~ g#3 a3 ~@7", B: "~@3 a3 b3 c#4 ~ d4 c#4 b3 ~ a3 g#3 f#3 ~ g#3", C: "a3 b3 ~ c#4 ~@12",
  D: "a3 g#3 ~ f#3 ~@12", E: "~@13 f#3 ~ g#3", F: "a3 g#3 ~ a3 ~@12", G: "~@13 a3 ~ b3",
  H: "c#4 d4 ~ c#4 b3 a3 ~ g#3 f#3 g#3 ~ a3 b3 c#4 ~@2", I: "c#4 d4 ~ c#4 b3 a3 ~ g#3 f#3 g#3 ~ a3 g#3 f#3 ~@2",
})).s("gm_string_ensemble_1").gain(0.45)

// other · string ensemble 1 · "Violas" · soft notes
const string_ensemble_1_soft = note("<~@24 A@7 B@2 ~@62 C D E C@2 F G H ~@39>".pickRestart({
  A: "[~@5 [c#4,e4]@16 [a3,c#4]@16 [b3,e4]@16 [c#4,e4]@16 [c#4,e4]@16 [a3,e4]@16 [b3,g#4]@11]/7", // C#m A E5 C#m A5 E
  B: "[~@5 [a3,e4,a4]@16 ~@11]/2", C: "[c#4,e4]", D: "[a3,c#4]", E: "[b3,e4]", F: "[a3,e4]", G: "[b3,g#4]",
  H: "[a3,e4,a4]", // A5
})).s("gm_string_ensemble_1").gain(0.2)

// other · string ensemble 1 · "Violoncellos"
const string_ensemble_1_2 = note(`<
  ~@8 A ~@3 A ~@3 A ~ B C A ~ B D E F G H E F G H ~@46 I J ~@2 I J ~@2 I J K L I J K M ~ N O P Q N O P Q ~@39
>`.pickRestart({
  A: "~@3 f#3 g#3 a3 ~ g#3 a3 ~@7", B: "~@3 a3 b3 c#4 ~ d4 c#4 b3 ~ a3 g#3 f#3 ~ g#3", C: "a3 b3 ~ c#4 ~@12",
  D: "a3 g#3 ~ f#3 ~@12", E: "~@5 f#3@3 ~@8", F: "~@5 d3@3 ~@8", G: "~@5 e3@3 ~@8", H: "~@5 c#3@3 ~@8",
  I: "~@13 f#3 ~ g#3", J: "a3 g#3 ~ a3 ~@12", K: "~@13 a3 ~ b3", L: "c#4 d4 ~ c#4 b3 a3 ~ g#3 f#3 g#3 ~ a3 b3 c#4 ~@2",
  M: "c#4 d4 ~ c#4 b3 a3 ~ g#3 f#3 g#3 ~ a3 g#3 f#3 ~@2", N: "f#3@3 ~@13", O: "d3@3 ~@13", P: "e3@3 ~@13",
  Q: "c#3@3 ~@13",
})).s("gm_string_ensemble_1").gain(0.45)

// other · string ensemble 1 · "Contrabasses"
const string_ensemble_1_3 = note(`<
  ~@8 A B C D A B C D A B C D A B C D A B C D A B C D ~@47 E F G H E F G H E F G H E F G H E F G H E F G H ~@39
>`.pickRestart({
  A: "~@5 f#2@3 ~@8", B: "~@5 d2@3 ~@8", C: "~@5 e2@3 ~@8", D: "~@5 c#2@3 ~@8", E: "f#2@3 ~@13", F: "d2@3 ~@13",
  G: "e2@3 ~@13", H: "c#2@3 ~@13",
})).s("gm_string_ensemble_1").gain(0.45)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  ~@32 A@5 B C D E F@2 G H I@2 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R S T U V W X Y ~@32 Z AA AB@2 AC AD AE@2 AF@2 AG AH AI@2
  AJ@2 AK AL AM@2 AN@4 AO@2 AP@2 AQ@2 AR AS@3 AT@5
>`.pickRestart({
  A: "[~@5 f#1@16 d1@16 e1@32 f2@8 f2 ~@2]/5", B: "~@8 c2 ~@2 f2 ~ f2 ~@2", C: "~@3 f2 ~@9 c2 ~@2", D: "e2@8 e2 ~@7",
  E: "~@3 b1 ~ e2@3 ~@3 e2@3 ~@2", F: "[e2@11 c#2@8 g2 ~ e2 ~@2 g2@8]/2", G: "e2 ~@2 e2 ~@7 c#2 ~ c#2 ~@2",
  H: "~@5 f#2@8 c#2 ~@2", I: "[e2 ~@2 f#2@5 c#2 ~@2 f#2 ~ e2@5 ~ c#2 ~ e2 ~@2 f#2@5 c#2 ~@2]/2",
  J: "[d#2@8 d#2 ~@2 f#2 ~ a2@5 ~ d#2 ~ a2 ~@2 a2 ~@7]/2", K: "[d#2 ~@2 d#2 ~@7 g#1@8 g#2 ~ f#2 ~@2 g#2@5 d#2 ~@2]/2",
  L: "[c3 ~@2 g#2@5 d#2 ~@2 f#2 ~ g#2@5 ~ d#2@2 c#2@8 e2 ~@2]/2", M: "[g2 ~@2 a#2@8 g2 ~ g2@5 ~ e2@8 c#2@5]/2",
  N: "[f#1@8 f#2 ~@2 e2 ~ f#2@5 ~ c#2 ~ f#2 ~@2 e2@5 c#2 ~@2]/2",
  O: "[e2 ~@2 f#2@5 c#2@3 f2@8 c2 ~ f2 ~@2 f2@5 c2 ~@2]/2", P: "[g2 ~@2 f2@5 c2 ~@2 f2 ~ f2@5 ~ c2@2 e2@8 b1 ~@2]/2",
  Q: "[d2 ~@2 e2@5 b1 ~@2 e2 ~ e2@5 ~ b1 ~ d2 ~@2 e2@5 b1@3]/2", R: "a1@5 a2@11", S: "e1", T: "c#1",
  U: "f#2@5 e2@5 ~ c#2@5", V: "b1", W: "a#1", X: "a1", Y: "g#1", Z: "f#1", AA: "d1", AB: "e1/2", AC: "f2@8 f2 ~@7",
  AD: "~@3 c2 ~ f2 ~@2 f2 ~@4 f2 ~@2", AE: "[~@8 c2 ~@2 e2@8 e2 ~@9 b1 ~@2]/2",
  AF: "[e2@3 ~@2 e2@3 ~@3 e2@10 c#2@8 g2 ~@2]/2", AG: "e2 ~@2 g2@8 e2 ~ e2 ~@2", AH: "~@5 c#2 ~@2 c#2 ~@7",
  AI: "[f#2@8 c#2 ~@2 e2 ~ f#2@5 ~ c#2 ~ f#2 ~@2 e2@5 c#2 ~@2]/2",
  AJ: "[e2 ~@2 f#2@5 c#2 ~@2 d#2@8 d#2 ~ f#2 ~@2 a2@5 d#2 ~@2]/2", AK: "a2 ~@2 a2 ~@7 d#2 ~ d#2 ~@2",
  AL: "~@5 g#1@8 g#2 ~@2", AM: "[f#2 ~@2 g#2@5 d#2 ~@2 c3 ~ g#2@5 ~ d#2 ~ f#2 ~@2 g#2@5 d#2@3]/2",
  AN: "[c#2@8 e2 ~@2 g2 ~ a#2@8 g2 ~@2 g2@5 e2@8 c#2@5 ~ f#1@8 f#2 ~ e2 ~@2 f#2@5 c#2 ~@2]/4",
  AO: "[f#2 ~@2 e2@5 c#2 ~@2 e2 ~ f#2@5 ~ c#2@2 f2@8 c2 ~@2]/2",
  AP: "[f2 ~@2 f2@5 c2 ~@2 g2 ~ f2@5 ~ c2 ~ f2 ~@2 f2@5 c2@3]/2",
  AQ: "[e2@8 b1 ~@2 d2 ~ e2@5 ~ b1 ~ e2 ~@2 e2@5 b1 ~@2]/2", AR: "d2 ~@2 e2@5 b1@3 a1@5",
  AS: "[a2@11 e1@16 c#1@16 f#2@5]/3", AT: "[e2@5 c#2@5 ~ b1@16 a#1@16 a1@16 g#1@16 ~@5]/5",
})).s("gm_electric_bass_finger").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@36 A B C D E F C G H B A D I F C J H B C D K L M G H B A ~@3 N O ~@39 D I F C P H B C D K L C G H F Q D I F C R H S
  C D K D ~@3 T ~@4
>`.pickRestart({
  A: "~@5 x ~@7 x ~@2", B: "~@8 x ~@2 x ~ x ~@2", C: "~@3 x ~@9 x ~@2", D: "x!2", E: "~@3 x ~ x ~@5 x ~@4",
  F: "~@8 x ~@2 x ~@4", G: "x ~@2 x ~@4 x ~@7", H: "~@3 x ~ x ~@7 x ~@2", I: "~@3 x ~ x ~@2 x ~@4 x ~@2",
  J: "x ~@4 x ~@7 x ~@2", K: "~@3 x ~ x ~@2 x ~@7", L: "x ~@7 x ~@2 x ~@4", M: "~@3 x ~@4 x ~@4 x ~@2",
  N: "~@5 x ~@5 x ~@4", O: "x", P: "x ~@4 x ~@10", Q: "x ~@7 x ~@4 x ~@2", R: "x ~@2 x ~@7 x ~@4",
  S: "~@3 x ~@4 x ~@2 x ~ x ~@2", T: "x ~@4 x ~@5 x ~@4",
})).gain(0.19)

// drums · rim
const rim = s("rim").struct("<~@8 [~@5 x ~@5 x ~@4] [x ~@4 x ~@5 x ~@4]!23 x ~@46 [x ~@4 x ~@5 x ~@4]!24 ~@39>")
  .gain(0.19)

// drums · snare
const snare = s("sd").struct(`<
  ~@37 A B C ~ A B C ~ A D C ~ A B C ~ A B C E ~ B C ~ A D ~@44 C ~ A B C ~ A B C E ~ B C ~ A B C ~ A B F ~ A B C E ~@9
>`.pickRestart({
  A: "x", B: "~@5 x ~@10", C: "~@11 x ~@4", D: "~@3 x!2 ~@11", E: "~@13 x ~ x", F: "~@8 x!2 ~@6",
})).gain(0.19)

// drums · hihat
const hihat = s("hh").struct("<A B@33 C ~@28 B@42 ~@28 D B@7 E>".pickRestart({
  A: "~@5 x ~@5 x ~@4", B: "x ~@4 x ~@5 x ~@4", C: "x", D: "~@11 x ~@4", E: "x ~@4 x ~@10",
})).gain(0.15)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<A B@33 C ~@28 B@42 ~@28 D B@7 E>".pickRestart({
  A: "~@8 x ~@4 x ~@2", B: "~@3 x ~@4 x ~@4 x ~@2", C: "~@3 x ~@12", D: "~@13 x ~@2", E: "~@3 x ~@4 x ~@7",
})).gain(0.07)

// drums · open hat
const open_hat = s("oh").struct("<~@31 [~@9 x ~@3 x ~@2] [~ x ~@14] ~@69 [~ x!3] ~@39>").gain(0.24)

stack(
  epiano1, epiano1_soft, epiano1_2, string_ensemble_1, string_ensemble_1_soft, string_ensemble_1_2, string_ensemble_1_3,
  bass, kick, rim, snare, hihat, hihat_soft, open_hat
)

More by Junichi Masuda