Strudelify

In Dreams

Rene Froger

KeyB♭ majorTempo116 bpm
0:00/0:00
// In Dreams — Rene Froger
// 116 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 75 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(116/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 · piano · "A.PIANO 1"
const piano = note(`<
  ~@10 A B C D E@2 F G H B C D E@2 F I A B J E K E F L A B M N A O P Q R A S B A@2 T F U V@2 C D W X F Y A Z AA AB A K
  AC AD A B M AE D AB F AF
>`.pickRestart({
  A: "~@4 f2 f3 ~ f3, bb2@3 f4@2 ~@3, ~@3 f3@10 ~@5 [f2,bb3,d4]@5 ~, ~@4 bb3@11 ~@9, ~@5 d4@10 ~@9", // Bb
  B: "~@4 f2 f3 ~ f3, bb2@3 f4@2 ~@3, ~@3 f3@9 ~@6 [f2,bb3,d4]@5 ~, ~@4 bb3@11 ~@9, ~@5 d4@9 ~@10", // Bb
  C: "~@4 g2 g3 ~ g3, c3@3 g4@2 ~@3, ~@3 g3@9 ~@6 [g2,c4,eb4]@5 ~, ~@4 c4@11 ~@9, ~@5 eb4@9 ~@10", // Cm
  D: "~@4 g2 g3 ~ g3, c3@3 g4@2 ~@3, ~@3 g3@10 ~@5 [g2,c4,eb4]@5 ~, ~@4 c4@11 ~@9, ~@5 eb4@10 ~@9", // Cm
  E: "~@4 c3 f3 ~ f3, f2@3 f4@2 ~@3, ~@3 f3@10 ~@5 [c3,a3,c4]@5 ~, ~@4 a3@11 ~@9, ~@5 c4@10 ~@9", // F
  F: "~@4 f2 f3 ~ f3, bb2@3 f4@2 ~@3, ~@3 f3@10 ~@5 [f2,bb3,d4]@6, ~@4 bb3@11 ~@9, ~@5 d4@10 ~@9", // Bb
  G: "~@12 [f2,d4]@3 f4@3 bb4@2 ~ c5@2 c5, bb2@3 f4@2 ~@3, ~@3 f3@9 ~@6 f2@5 ~, ~@4 bb3@11 ~@9, ~@5 d4@6 ~@13", // Dm
  H: "~@4 f2 f3 ~ f3, bb2@3 f4@2 ~@3, [d5,f5]@5 d4@10 ~@9, ~@3 f3@10 ~@5 [f2,bb3,d4]@5 ~, ~@4 bb3@11 ~@9", // Dm Bb
  I: "~@12 f2@3 f3@3 ~@3 f3@2 ~, bb2@3 f4@2 ~@3, ~@3 f3@9 ~@6 [f2,bb3,d4]@5 ~, ~@4 bb3@11 ~@9, ~@5 d4@9 ~@10", // Bb
  J: "~@4 c3 f3 ~ f3, f2@3 f4@2 ~@3, ~@3 f3@9 ~@6 [c3,a3,c4]@5 ~, ~@4 a3@11 ~@9, ~@5 c4@9 ~@10", // F
  K: "~@4 bb2 g3 ~ g3, eb3@3 g4@2 ~@3, ~@3 g3@10 ~@5 [bb2,bb3,eb4]@5 ~, ~@4 bb3@11 ~@9, ~@5 eb4@10 ~@9", // Eb5
  L: "~@12 d3@3 f3@3 ~@3 f3@2 ~, bb2@3 f4@2 ~@3, ~@3 f3@9 ~@6 [f2,bb3,d4]@5 ~, ~@4 bb3@11 ~@9, ~@5 d4@9 ~@10", // Bb
  M: "~@4 g2 g3 ~ g3, c3@3 g4@2 ~@3, ~@3 g3@9 ~@6 [g2,c4,e4]@5 ~, ~@4 c4@11 ~@9, ~@5 e4@9 ~@10", // C
  N: "~@4 g2 g3 ~ g3, c3@3 g4@2 ~@3, ~@3 g3@10 ~@5 [g2,c4,e4]@5 ~, ~@4 c4@11 ~@9, ~@5 e4@10 ~@9", // C
  O: "~@5 c4 ~ c4, c3@3 c5@2 ~@3, ~@3 c4@10 ~@11, ~@4 eb4@11 ~@9, ~@5 g4@7 [c3,a4]@5 ~ [c3,f4,a4]@5 ~", // F
  P: "~@3 d5 ~ c4 ~ c4, bb2@9 ~@3 [c3,g4]@5 ~ [c3,eb4,g4]@6, ~ d4@3 ~@4, ~@4 f4@7 ~@13, ~@5 bb4@10 ~@9", // C5 Cm
  Q: "~@12 c3@3 f3@3 ~@3 f3@2 ~, f2@3 f4@2 ~@3, ~@3 f3@9 ~@6 [c3,a3,c4]@5 ~, ~@4 a3@11 ~@9, ~@5 c4@9 ~@10", // F
  R: "~@12 d3@3 f3@3 ~@3 f3@2 ~, f2@3 f4@2 ~@3, ~@3 f3@9 ~@6 [c3,a3,c4]@5 ~, ~@4 a3@11 ~@9, ~@5 c4@9 ~@10", // F
  S: "~@4 bb2 gb3 ~ gb3, eb3@3 gb4@2 ~@3, ~@3 gb3@9 ~@6 [bb2,bb3,eb4]@5 ~, ~@4 bb3@11 ~@9, ~@5 eb4@9 ~@10", // Eb5
  T: "~@4 bb2 gb3 ~ gb3, eb3@3 gb4@2 ~@3, ~@3 gb3@10 ~@5 [bb2,bb3,eb4]@5 ~, ~@4 bb3@11 ~@9, ~@5 eb4@10 ~@9", // Eb5
  U: "~@12 f2@3 bb4@3 d4@2 ~ f4@2 ~, bb2@3 d4@2 ~@3, ~@3 f3@9 d5@2 ~@10, ~@4 bb3@11 ~@3 f2@5 ~, ~@5 f4@9 ~@10",
  V: "~@6 [bb2,f3,bb3,d4] ~@2 [bb2,f3,bb3,d4] ~@2 [bb2,f3,bb3,d4] ~@11", // Bb
  W: "~@6 [f2,f3,a3,eb4] ~@2 [f2,f3,a3,eb4] ~@2 [f2,f3,a3,eb4] ~@11", // F7
  X: "~@6 [f2,f3,a3,eb4] ~@2 [f2,f3,a3,eb4] ~@2 [f2,f3,eb4] ~@11, ~@6 a3 ~@5", // F7
  Y: "~@12 f2@3 d4@3 bb4@2 ~ g4@2 ~, bb2@3 d5@2 ~@3, ~@3 d4@9 ~@6 f2@5 ~, ~@4 f4@11 ~@9, ~@5 bb4@9 ~@10",
  Z: "~@4 bb2 g3 ~ g3, eb3@3 g4@2 ~@3, ~@3 g3@9 ~@6 [bb2,bb3,eb4]@5 ~, ~@4 bb3@11 ~@9, ~@5 eb4@9 ~@10", // Eb5
  AA: "~@4 c3 a3 ~ a3, c3@3 a4@2 ~@3, ~@3 a3@9 ~@6 [c3,c4,f4]@5 ~, ~@4 c4@11 ~@9, ~@5 f4@9 ~@10", // F5
  AB: "~@4 c3 a3 ~ a3, f2@3 a4@2 ~@3, ~@3 a3@10 ~@5 [c3,c4,f4]@5 ~, ~@4 c4@11 ~@9, ~@5 f4@10 ~@9", // F5
  AC: "~@4 c3 c4 ~ c4, f2@3 c4@2 ~@3, ~@3 c3@8 ~@7 [c3,a3]@6, ~@4 f3@11 ~@9, ~@5 a3@10 ~@9", // F
  AD: "~@12 c3@3 f3@3 ~@3 f3@2 ~, f2@3 c4@2 ~@3, ~@3 c3@8 ~@7 [c3,c4,f4]@5 ~, ~@4 f3@9 ~@11, ~@5 a3@9 ~@10", // F5
  AE: "~@4 g2 g3 ~ g3, c3@3 c5@2 ~@3, ~@3 c4@10 ~@5 [g2,c4,e4]@5 ~, ~@4 e4@11 ~@9, ~@5 g4@10 ~@9", // C
  AF: "~@6 [bb2,f3,bb3,d4] ~@2 [bb2,f3,bb3,d4] ~@2 [bb2,f3,d4] ~@11, ~@6 bb3 ~@5", // Bb
})).s("gm_piano").gain(0.3)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@10 A@2 B@2 C@2 A@4 B@2 C@2 A@4 C D E D A F A@2 B@2 A G H C I A J A@3 J A@2 K@2 B@2 L@2 A@3 J C@2 A J C@2 A@2 B@3 D A
  K
>`.pickRestart({
  A: "bb1@6 ~@3 bb1@3 f2@4 ~@2 f2@4 ~@2", B: "c2@6 ~@3 c2@3 g2@4 ~@2 g2@4 ~@2", C: "f2@6 ~@3 f2@3 c2@4 ~@2 c2@4 ~@2",
  D: "f2@6 ~@3 f2@3 c2@4 ~@2 f2@4 ~@2", E: "eb2@6 ~@3 eb2@3 bb1@4 ~@2 eb2@4 ~@2",
  F: "bb1@6 ~@3 bb1@3 d2@4 ~@2 f2@4 ~@2", G: "c2@6 ~@3 c2@3 f1@4 ~@2 f2@4 ~@2", H: "bb1@2 ~ bb1 c2@2 ~ c2",
  I: "f2 ~@2 f2 ~@2 eb2@4 ~@2 d2 ~@2 d2 ~@2 c2@4 ~@2", J: "eb2@6 ~@3 eb2@3 bb2@4 ~@2 bb2@4 ~@2",
  K: "~@6 bb1 ~@2 bb1 ~@2 bb1@2 ~@10", L: "~@6 f1 ~@2 f1 ~@2 f1@2 ~@10",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@18 A B C D E F G H I J K@4 L M@2 N@8 ~@2 O@2 ~@2 P@2 Q@2 R S T@2 U@3 V W X@2 Y W Z@2 AA AB AC@4 AD
>`.pickRestart({
  A: "~@8 f4@3 g4@9 ~ a4@3", B: "g4 f4", C: "~@2 g4@2 a4@3 bb4", D: "c5", E: "~@3 c5 d5 eb5", F: "f5",
  G: "~@5 [d5,f5]@4 [eb5,g5]@3 [f5,a5]@6 [g5,bb5]@6", H: "[d5,f5]",
  I: "~@3 [bb4,d5,f5]!3 ~@2 [bb4,d5,f5] ~@2 [bb4,d5,f5] ~@12", // Bb
  J: "~@3 [bb4,d5,g5]!3 ~@2 [bb4,d5,g5] ~@2 [bb4,d5,g5] ~@12", // Gm
  K: "[~@3 [c5,eb5,f5]!3 ~@2 [c5,eb5,f5] ~@2 [c5,eb5,g5] ~@3 [c5,eb5,g5]!3 ~@2 [c5,eb5,g5] ~@3 [f5,a5]@6 [g5,bb5]@2 ~ f5@3 [eb5,g5]@3 a5 ~ eb5 [c5,f5]@3 [f4,bb4,d5]@2 ~@24 [f4,a4]@14 ~@11, ~@23 c5@18 a4@4 ~@2 [g4,bb4]@25 ~@24, ~@32 a5@3 ~@5 f5@2 ~@6 eb5@37 ~@11, ~@41 g5@2 ~@53]/4", // F7 Cm F Gm Eb F5 Bb F …
  L: "~@8 f4@3 g4@12 ~", M: "[a4@11 [d4,bb4]@3 ~ [eb4,c5]@3 [f4,d5]@2 ~ [a4,eb5]@2 [bb4,d5,f5]@25]/2",
  N: "[~@23 [bb3,c4,e4]@48 [bb3,d4,f4]@24 ~@12 [a3,f4]@12 ~ f4@11 [g3,c4,eb4]@12 ~ f4@48, ~@95 [g3,eb4]@12 ~@12 [bb3,d4]@12 ~@12 [a3,eb4]@49, ~@4 c4 ~@3]/8", // C7 Bb Dm Cm Bb Adim
  O: "[~@8 [f4,bb4]@3 ~ eb5@3 [bb4,d5] ~@5 [f4,bb4]@2 ~ eb5@3 [bb4,d5] ~@5 [f4,bb4]@3 [bb3,f4]@12, ~@11 b4@3 ~@9 b4@4 ~@21]/2", // Bb5 Bb Bb5 Bb Bb5
  P: "[~@9 f4@3 eb5@9 d5@2 d5@24 ~]/2", Q: "~@5 [bb4,d5,f5] ~@2 bb4 [d5,f5] ~ bb4 [d5,f5] ~@11", R: "~@3 eb4 d4@3 c4",
  S: "g3", T: "~@5 [a4,eb5,f5] ~@2 a4 [eb5,f5] ~ a4 [eb5,f5] ~@11",
  U: "[~@8 bb5@3 ~ a5@5 bb5@6 f5@6 ~ eb5@2 ~ f5@2 ~ d5@3 [eb5,c6]@3 [f5,d6]@3 [g5,eb6]@2 [bb4,d5,f5]@25, ~@29 g5@2 ~ a5@3 bb5@3 ~@34]/3", // Cm Dm Cm Bb
  V: "~@11 [bb4,f5]@3 ~ [g4,eb5] ~@8", W: "~@6 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@5 [a4,eb5,f5] ~@5",
  X: "[~@6 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@5 [a4,eb5,f5] ~@5 f5@24, ~@23 [bb4,d5]@25]/2", // F7 Bb
  Y: "~@11 [g4,bb4,f5]@12 ~", // Gm7
  Z: "[~@6 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@2 [a4,eb5,f5] ~@5 [a4,eb5,f5] ~@5 f5@24, ~@23 [d5,bb5]@25]/2", // F7 Gm
  AA: "[d5,f5,a5]", AB: "~@6 [bb4,bb5]@3 [a4,a5] ~@2 a4@2 g5 g4 ~@2 g5@3 [c4,c5] ~@2, ~@11 a5@3 ~@3 g4@3 ~@4",
  AC: "[~@3 [bb4,bb5] ~@2 [bb4,bb5]@3 [a4,a5] ~@2 a4@2 g5 g4 ~@2 g5@3 [c4,c5] ~@2 g4@23 [c4,a4]@24 ~ f4@11 d5@3 ~ d5@3 bb5@3 bb5@3, ~@11 a5@3 ~@3 g4@3 ~@3 eb4@48 [bb4,d5]@12 [bb4,f5]@6 ~ [d5,f5]@5 ~, ~@23 bb3@25 ~@48]/4", // Bb A C F Bb Bb5 Dm
  AD: "~@5 [f5,bb5,d6] ~@2 f5 [bb5,d6] ~ f5 [bb5,d6] ~@11", // Bb
})).s("gm_string_ensemble_1").gain(0.35).pan(0.7)

// chords · acoustic guitar steel · "+12STR GTR"
const acoustic_guitar_steel = note(`<
  A@7 B@3 C D E@2 F G C D C D E@2 F G C D C D G@2 H G C D C D I@2 C J K G@2 C L C D C L C D M@2 E@2 N@2 C D C O G@2 C O
  G@2 C D I@2 P Q C R
>`.pickRestart({
  A: "[~@24 [f4,bb4]@19 ~@5 [d4,g4]@19 ~@5 [eb4,g4]@19 ~@5 [c4,f4]@18 a3 ~@5 [f4,bb4]@19 ~@5 [d4,g4]@19 ~@4 bb3, ~@21 [bb2,f3]@23 ~ g2@22 ~@2 bb2@21 ~@3 f2@22 ~@26 g2@22 ~@5, ~@22 bb3@22 ~@2 [d3,g3]@22 ~@2 eb3@22 ~@2 [c3,f3]@22 ~ bb2@23 ~@25 bb2@3, ~@23 d4@19 ~@5 bb3@19 ~@4 g3@20 ~@28 [f3,bb3]@23 ~ [d3,g3]@22 ~@2 [eb3,g3]@2, ~@71 bb3@19 ~@5 a3@19 ~@5 d4@19 ~@5 bb3@19 ~@6]/7", // Bb5 G5 Eb F5 Bb5 G5 Bb5 G5 …
  B: "[[eb4,g4]@9 ~@3 [c4,f4]@9 ~@3 [f4,bb4]@47 ~, ~@9 f2@12 ~ bb3@44 ~@6, ~@10 [c3,f3]@11 bb2@44 ~@7, ~@11 a3@10 ~ f3@47 ~@3, ~@23 d4@44 ~@5]/3", // Eb F5 Bb5 F5
  C: "[f3,bb3,d4]@3 [f3,bb3,d4] [bb3,d4] [bb3,d4,f4] [bb2,f3,bb3,d4,f4,bb4]@3 [bb2,f3,bb3]@3 bb3@3 [bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4,bb4]@3, [bb2,f4,bb4]@6 ~@3 [d4,f4,bb4]@6 bb4@5 ~@4, ~@12 [bb2,f3]@6 [bb2,f3]@5 ~", // Bb Bb5 Bb Bb5 Bb Bb5
  D: "[f3,bb3,d4]@3 [f3,bb3,d4] [bb3,d4] [bb3,d4,f4] [bb2,f3,bb3,d4,f4,bb4]@3 [bb2,f3,bb3]@3 bb3@3 [bb3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4,bb4]@3, [bb2,f4,bb4]@6 ~@3 [d4,f4,bb4]@6 bb4@5 ~@4, ~@2 [bb2,f3]!2", // Bb Bb5 Bb Bb5 Bb Bb5
  E: "[c3,g3,c4]@3 [c3,g3,c4] [g3,c4] [g3,c4,eb4] [c3,g3,c4,eb4,g4]@3 [c3,g3]@3 g3@3 [g3,c4,eb4]@3 [g3,c4,eb4]@3 [g3,c4,eb4,g4]@3, [eb4,g4]@6 ~@3 [c4,eb4,g4]@6 g4@5 ~@4, ~@12 c3@6 c3@5 ~", // C5 Cm C5 Cm Eb Cm
  F: "[c3,f3,c4]@3 [c3,f3,c4] [f3,c4] [f3,c4,f4] [c3,f3,c4,f4,a4]@3 [c3,f3]@3 f3@3 [f3,c4,f4]@3 [f3,c4,f4]@3 [f3,c4,f4,a4]@3, [f4,a4]@6 ~@3 [c4,f4,a4]@6 a4@5 ~@4, ~@12 c3@6 c3@5 ~", // F5 F F5 F
  G: "[c3,f3,c4]@3 [c3,f3,c4] [f3,c4] [f3,c4,eb4] [c3,f3,c4,eb4,a4]@3 [c3,f3]@3 f3@3 [f3,c4,eb4]@3 [f3,c4,eb4]@3 [f3,c4,eb4,a4]@3, [eb4,a4]@6 ~@3 [c4,eb4,a4]@6 a4@5 ~@4, ~@12 c3@6 c3@5 ~", // F5 F7 F5 F7 Ebdim Adim
  H: "[eb3,bb3,eb4]@3 [eb3,bb3,eb4] [bb3,eb4] [bb3,eb4,g4] [eb3,bb3,eb4,g4,bb4]@3 [eb3,bb3]@3 bb3@3 [bb3,eb4,g4]@3 [bb3,eb4,g4]@3 [bb3,eb4,g4,bb4]@3, [g4,bb4]@6 ~@3 [eb4,g4,bb4]@6 bb4@5 ~@4, ~@12 eb3@6 eb3@5 ~", // Eb5 Eb Eb5 Eb Gm Eb
  I: "[c3,g3,bb3]@3 [c3,g3,bb3] [g3,bb3] [g3,bb3,e4] [c3,g3,bb3,e4,g4]@3 [c3,g3]@3 g3@3 [g3,bb3,e4]@3 [g3,bb3,e4]@3 [g3,bb3,e4,g4]@3, [e4,g4]@6 ~@3 [bb3,e4,g4]@6 g4@5 ~@4, ~@12 c3@6 c3@5 ~", // C7 Gm Edim C7 C5 Edim Em Edim
  J: "[c3,g3,c4]@3 [c3,g3,c4] [g3,c4] [g3,c4,eb4] [c3,g3,c4,eb4,g4]@3 [c3,g3,g4]@3 f3@3 [f3,c4,eb4]@3 [f3,c4,eb4]@3 [f3,c4,eb4,a4]@3, [eb4,g4]@6 ~@3 [c4,eb4]@6 a4@5 ~@4, ~@12 c3@6 c3@5 ~", // C5 Cm C5 F7 Eb Cm
  K: "[f3,bb3,d4]@3 [f3,bb3,d4] [bb3,d4] [bb3,d4,f4] [bb2,f3,bb3,d4,f4,bb4]@3 [bb2,f3,bb3,d4,f4,bb4]@3 [g3,c4,eb4]@3 [g3,c4,eb4]@3 [g3,c4,eb4]@3 [g3,c4,eb4,g4]@3, [bb2,f4,bb4]@6 ~@6 c3@6 c3@5 ~, ~@15 g4@5 ~@4", // Bb Cm Bb5
  L: "[bb2,eb3,bb3]@3 [bb2,eb3,bb3] [eb3,bb3] [eb3,bb3,c4] [bb2,eb3,bb3,c4,gb4]@3 [bb2,eb3]@3 eb3@3 [eb3,bb3,c4]@3 [eb3,bb3,c4]@3 [eb3,bb3,c4,gb4]@3, [c4,gb4]@6 ~@3 [bb3,c4,gb4]@6 gb4@5 ~@4, ~@12 bb2@6 bb2@5 ~", // Eb5 Cm7 Cm7b5 Eb5 Cm7 Cm7b5 Cdim Cm7b5
  M: "~@6 [bb2,f3,bb3,d4,f4,bb4]@2 ~ [bb2,f3,bb3,d4,f4,bb4]@2 ~ [bb2,f3,bb3,d4,f4,bb4]@3 ~@9", // Bb
  N: "~@6 [c3,f3,c4,eb4,a4]@2 ~ [c3,f3,c4,eb4,a4]@2 ~ [c3,f3,c4,eb4,a4]@3 ~@9", // F7
  O: "[bb2,eb3,bb3]@3 [bb2,eb3,bb3] [eb3,bb3] [eb3,bb3,eb4] [bb2,eb3,bb3,eb4,g4]@3 [bb2,eb3]@3 eb3@3 [eb3,bb3,eb4]@3 [eb3,bb3,eb4]@3 [eb3,bb3,eb4,g4]@3, [eb4,g4]@6 ~@3 [bb3,eb4,g4]@6 g4@5 ~@4, ~@12 bb2@6 bb2@5 ~", // Eb5 Eb Eb5 Eb
  P: "[g3,bb3]@3 [g3,bb3]!2 [g3,bb3,eb4] [c3,g3,bb3,eb4,g4]@3 [c3,g3]@3 g3@3 [g3,bb3,eb4]@3 [g3,bb3,eb4]@3 [g3,bb3,eb4,g4]@3, [c3,eb4,g4]@6 ~@3 [bb3,eb4,g4]@6 g4@5 ~@4, ~@12 c3@6 c3@5 ~", // Gm Eb Cm7 C5 Eb Cm Eb
  Q: "[c3,f3,c4]@3 [c3,f3,c4] [f3,c4] [f3,c4,eb4] [c3,f3,c4,eb4,a4]@3 [c3,f3,a4]@3 f3@3 [f3,c4,eb4]@3 [f3,c4,eb4]@3 [f3,c4,eb4,a4]@3, [eb4,a4]@6 ~@3 [c4,eb4]@6 a4@5 ~@4, ~@12 c3@6 c3@5 ~", // F5 F7 F F7 Ebdim Cm
  R: "~@2 [bb2,f3,bb3,d4,f4,bb4]!3 ~@3", // Bb
})).s("gm_acoustic_guitar_steel").gain(0.14)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@8 A B C@41 ~@2 C@2 ~@2 C@17 ~>".pickRestart({
  A: "~ x!3", B: "x!4", C: "~ x ~ x",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@18 A ~@7 A ~@7 A ~@8 A ~@9 A ~@3 A ~ A ~@3 A ~@3 A ~@3 A ~@3>".pickRestart({
  A: "x",
})).gain(0.48)

stack(piano, bass, string_ensemble_1, acoustic_guitar_steel, pedal_hat, crash)

More by Rene Froger