Strudelify

'n Dag uit duizend dromen

Frans Bauer

KeyA majorTempo106 bpm
0:00/0:00
// 'n Dag uit duizend dromen — Frans Bauer
// 106 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 100 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(106/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 · marimba
const marimba = note(`<
  ~ A@2 B@2 C@2 ~@18 A@2 B@2 C@2 B D A@2 B@2 C@2 B@2 C@2 ~@18 A@2 B@2 C@2 B D A@2 B@2 C@2 B E F@2 G@2 H@2 G E F@2 G@2
  H@2 G@2 H@2 G I J K ~
>`.pickRestart({
  A: "~@2 [d5,a5] ~ [a4,f#5] ~ [d5,a5] ~@3 [f#5,d6] ~@3 [d5,a5] ~ [a4,f#5] ~ [f#4,d5] ~@5", // D5 D D5 D D5 D
  B: "~@2 [c#5,a5] ~ [a4,e5] ~ [c#5,a5] ~@3 [e5,c#6] ~@3 [c#5,a5] ~ [a4,e5] ~ [e4,c#5] ~@5", // F#m A5 F#m C#m F#m A5 C#m
  C: "~@2 [b4,g#5] ~ [g#4,e5] ~ [b4,g#5] ~@3 [e5,b5] ~@3 [b4,g#5] ~ [g#4,e5] ~ [e4,b4] ~@5", // E C#m E E5 E C#m E5
  D: "~@2 [e5,c#6] ~ [c#5,a5] ~ [e5,c#6] ~@3 [a5,e6] ~@3 [e5,c#6] ~ [c#5,a5] ~ [a4,e5] ~@5", // C#m F#m C#m A5 C#m F#m A5
  E: "~@2 [f5,d6] ~ [d5,a#5] ~ [f5,d6] ~@3 [a#5,f6] ~@3 [f5,d6] ~ [d5,a#5] ~ [a#4,f5] ~@5", // Dm Gm Dm A#5 Dm Gm A#5
  F: "~@2 [d#5,a#5] ~ [a#4,g5] ~ [d#5,a#5] ~@3 [g5,d#6] ~@3 [d#5,a#5] ~ [a#4,g5] ~ [g4,d#5] ~@5", // D#5 D# D#5 Cm D#5 D# Cm
  G: "~@2 [d5,a#5] ~ [a#4,f5] ~ [d5,a#5] ~@3 [f5,d6] ~@3 [d5,a#5] ~ [a#4,f5] ~ [f4,d5] ~@5", // Gm A#5 Gm Dm Gm A#5 Dm
  H: "~@2 [c5,a5] ~ [a4,f5] ~ [c5,a5] ~@3 [f5,c6] ~@3 [c5,a5] ~ [a4,f5] ~ [f4,c5] ~@5", // F Dm F F5 F Dm F5
  I: "~@2 [d#5,a#5] ~ [a#4,g5] ~ [d#5,a#5] ~@3 [g5,d#6] ~@3 [f5,c6] ~ [c5,a5] ~ [f5,c6] ~@3 [a5,f6] ~", // D#5 D# D#5 Cm F5 F F5 Dm
  J: "~@16 f5 ~ g5 ~ f5 ~ d5 ~", K: "a#4 ~@23",
})).s("gm_marimba").gain(0.12).pan(0.4)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A B C@2 D@2 E@5 F@4 E@4 F G E F H A B C@2 D@2 I J A B C@2 D@2 K L D@2 E@5 F@4 E@4 F G E F H A B C@2 D@2 I J A B C@2
  D@2 K M N O P@2 Q@2 R M N O P@2 Q@2 S@2 Q@2 T U V W ~
>`.pickRestart({
  A: "d2@9 ~ f#2@2 a2@5 ~ f#2@4 a2@2", B: "d2@9 ~ f#2@2 a2@5 ~ d2@2 c#2@2 b1@2", C: "a1@9 ~ c#2@2 e2@5 ~ c#2@4 e2@2",
  D: "e1@9 ~ g#1@2 b1@5 ~ g#1@4 b1@2", E: "a1@9 ~ a1@2 a1@11 ~", F: "e2@9 ~ e2@2 e2@11 ~", G: "d2@9 ~ d2@2 d2@11 ~",
  H: "a1@4 ~@2 a1@2 ~@2 a1@2 b1@2 ~@2 b1@2 c#2@3 ~ c#2@2", I: "a1@9 ~ c#2@2 e2@6 c#2@4 e2@2",
  J: "a1@5 ~ a1@2 ~@2 a1@2 b1@3 ~ b1@2 c#2@2 ~@2 c#2@2", K: "a1@8 ~@2 c#2@2 e2@5 ~ c#2@4 e2@2",
  L: "a1@5 ~ a1@2 ~@2 a1@2 g#1@3 ~ g#1@2 f#1@3 ~ f#1@2", M: "a#1@5 ~ a#1@2 ~@2 a#1@2 c2@3 ~ c2@2 d2@2 ~@2 d2@2",
  N: "d#2@9 ~ g2@2 a#2@5 ~ g2@4 a#2@2", O: "d#2@9 ~ g2@2 a#2@5 ~ d#2@2 d2@2 c2@2", P: "a#1@9 ~ d2@2 f2@5 ~ d2@4 f2@2",
  Q: "f1@9 ~ a1@2 c2@5 ~ a1@4 c2@2", R: "a#1@9 ~ d2@2 f2@6 d2@4 f2@2", S: "a#1@8 ~@2 d2@2 f2@5 ~ d2@4 f2@2",
  T: "a#1@9 ~ d2 ~ f2@6 a#1@2 c2 ~ d2@2", U: "d#2@9 ~ d#2 ~ f2@5 ~ f1@5 ~", V: "a#1@9 ~ g2@2 f2@5 ~ d2@6", W: "a#1",
})).s("gm_electric_bass_finger").gain(0.5).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G@5 H@4 G@4 H I G H J K B C D E F C L K B C D E F C D E F G@5 H@4 G@4 H I G H J K B C D E F C L K B C D
  E F C M N O P Q R S P T N O P Q R S P Q R S P U P V ~
>`.pickRestart({
  A: "[a3,d4,f#4]@2 [a3,d4,f#4] [d3,f#3,a3,d4,f#4]@3 [d3,f#3,a3]@2 [d3,f#3,a3] [a3,d4,f#4]@2 [a3,d4,f#4], [d3,f#3] ~ [d4,f#4] [d3,f#3]", // D
  B: "[a3,d4,f#4]@2 [a3,d4,f#4] [d3,f#3,a3,f#4]@3 [d3,f#3,a3]@2 [d3,f#3,a3] [a3,d4,f#4]@2 [a3,d4,f#4], [d3,f#3]@3 d4 ~@2 [d4,f#4]@3 [d3,f#3]@3", // D
  C: "[a3,c#4,e4]@2 [a3,c#4,e4] [a2,e3,a3,c#4,e4]@3 [a2,e3,a3]@2 [a2,e3,a3] [a3,c#4,e4]@2 [a3,c#4,e4], [a2,e3] ~ [c#4,e4] [a2,e3]", // A A5 A A5 C#m A5
  D: "[a3,c#4,e4]@2 [a3,c#4,e4] [a2,e3,a3,e4]@3 [a2,e3,a3]@2 [a2,e3,a3] [a3,c#4,e4]@2 [a3,c#4,e4], [a2,e3]@3 c#4 ~@2 [c#4,e4]@3 [a2,e3]@3", // A A5 A A5 C#m A5
  E: "[b3,g#4]@2 [b3,e4,g#4] [e3,g#3,b3,e4,g#4]@3 [e3,g#3,b3]@2 [e3,g#3,b3] [b3,e4,g#4]@2 [b3,e4,g#4], [e3,g#3] ~@2 [e3,g#3], e4 ~@5 [e4,g#4]@3 ~@3", // E
  F: "[b3,e4,g#4]@2 [b3,e4,g#4] [e3,g#3,b3,g#4]@3 [e3,g#3,b3]@2 [e3,g#3,b3] [b3,e4,g#4]@2 [b3,e4,g#4], [e3,g#3]@3 e4 ~@2 [e4,g#4]@3 [e3,g#3]@3", // E
  G: "[a3,c#4,e4]@5 [a3,c#4,e4] [a2,e3,a3,c#4,e4]@6, [a2,e3] ~", // A A5
  H: "[e4,g#4,b4]@5 [e4,g#4,b4] [e3,b3,e4,g#4,b4]@6, [e3,b3] ~", // E E5
  I: "[d4,f#4,a4]@5 [d4,f#4,a4] [d3,a3,d4,f#4,a4]@6, [d3,a3] ~", // D D5
  J: "[a3,c#4,e4]@5 [a3,c#4,e4] [b2,f#3,a3,d4,f#4]@3 [c#3,e3,a3,c#4,e4]@3, [a2,e3] ~", // A Bm7 A A5
  K: "f#4@2 [a3,d4,f#4] [d3,f#3,a3,d4,f#4]@3 [d3,f#3,a3]@2 [d3,f#3,a3] [a3,d4,f#4]@2 [a3,d4,f#4], ~@2 [d4,f#4] [d3,f#3]", // D
  L: "[g3,c#4,e4]@2 [g3,c#4,e4] [a2,e3,g3,e4]@3 [a2,e3,g3]@2 [a2,e3,g3] [g3,c#4,e4]@2 [g3,c#4,e4], [a2,e3]@3 c#4 ~@2 [c#4,e4]@3 [a2,e3]@3", // C#dim A7 C#dim A5 C#m A5
  M: "[a3,c#4,f4]@2 [g#3,d4,f4] [a#2,f3,g#3,f4]@3 [a#2,f3,g#3]@2 [a#2,f3,g#3] [g#3,d4,f4]@2 [g#3,d4,f4], [a2,e3]@3 d4 ~@2 [d4,f4]@3 [a#2,f3]@3", // Aaug Ddim A#7 Ddim A5 Dm A#5
  N: "g4@2 [a#3,d#4,g4] [d#3,g3,a#3,d#4,g4]@3 [d#3,g3,a#3]@2 [d#3,g3,a#3] [a#3,d#4,g4]@2 [a#3,d#4,g4], ~@2 [d#4,g4] [d#3,g3]", // D#
  O: "[a#3,d#4,g4]@2 [a#3,d#4,g4] [d#3,g3,a#3,g4]@3 [d#3,g3,a#3]@2 [d#3,g3,a#3] [a#3,d#4,g4]@2 [a#3,d#4,g4], [d#3,g3]@3 d#4 ~@2 [d#4,g4]@3 [d#3,g3]@3", // D#
  P: "[a#3,d4,f4]@2 [a#3,d4,f4] [a#2,f3,a#3,d4,f4]@3 [a#2,f3,a#3]@2 [a#2,f3,a#3] [a#3,d4,f4]@2 [a#3,d4,f4], [a#2,f3] ~ [d4,f4] [a#2,f3]", // A# A#5 A# A#5 Dm A#5
  Q: "[a#3,d4,f4]@2 [a#3,d4,f4] [a#2,f3,a#3,f4]@3 [a#2,f3,a#3]@2 [a#2,f3,a#3] [a#3,d4,f4]@2 [a#3,d4,f4], [a#2,f3]@3 d4 ~@2 [d4,f4]@3 [a#2,f3]@3", // A# A#5 A# A#5 Dm A#5
  R: "[c4,a4]@2 [c4,f4,a4] [f3,a3,c4,f4,a4]@3 [f3,a3,c4]@2 [f3,a3,c4] [c4,f4,a4]@2 [c4,f4,a4], [f3,a3] ~@2 [f3,a3], f4 ~@5 [f4,a4]@3 ~@3", // F
  S: "[c4,f4,a4]@2 [c4,f4,a4] [f3,a3,c4,a4]@3 [f3,a3,c4]@2 [f3,a3,c4] [c4,f4,a4]@2 [c4,f4,a4], [f3,a3]@3 f4 ~@2 [f4,a4]@3 [f3,a3]@3", // F
  T: "[g#3,d4,f4]@2 [g#3,d4,f4] [a#2,f3,g#3,f4]@3 [a#2,f3,g#3]@2 [a#2,f3,g#3] [g#3,d4,f4]@2 [g#3,d4,f4], [a#2,f3]@3 d4 ~@2 [d4,f4]@3 [a#2,f3]@3", // Ddim A#7 Ddim A#5 Dm A#5
  U: "[a#3,d#4,g4]@2 [a#3,d#4,g4] [d#3,g3,a#3,g4]@3 [f3,a3,c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4], [d#3,g3]@3 d#4 ~@5 [f3,a3]@3", // D# F D# F
  V: "[a#2,f3,a#3,d4,f4]", // A#
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.6)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  A B C D E F G H@2 ~ I@2 J K@3 L M@3 N O P Q R B C D E F S@3 B C D E F G T@2 F G H@2 ~ I@2 J K@3 L M@3 N O P Q R B C D
  E F S@3 B C D E F G U@2 V W X Y Z AA@3 V W X Y Z AB AC@2 Z AB AD AE AF AG ~
>`.pickRestart({
  A: "~@3 [e5,c#6]", B: "[f#5,d6]@3 [d5,a5]@2 [a4,f#5]@6 [f#5,d6]",
  C: "[f#5,d6]@2 [g#5,e6] [g#5,e6]@2 [g#5,e6] [g#5,e6]@3 [f#5,d6]@3", D: "[e5,c#6]@3 [c#5,a5]@2 [a4,e5]@6 [e5,c#6]",
  E: "[e5,c#6]@2 [f#5,d6] [f#5,d6]@2 [f#5,d6] [f#5,d6]@3 [e5,c#6]@3", F: "[d5,b5]@3 [b4,g#5]@2 [g#4,e5]@6 [d5,b5]",
  G: "[d5,b5] [e5,c#6] [f#5,d6] [d5,g#5]", // G C#m D Ddim
  H: "[~ c#7, a5@5 e5@2 b5 c#6 e6 a6 b6@3 ~@10, c#5 b4 a5@6, ~ a4@11, ~ c#5@5]/2",
  I: "[~@6 a4@2 ~@2 [b4,d5] ~ [c#5,e5] ~@3 [c#5,a5] ~ [d5,b5] ~@3 [e5,c#6]@26, ~@6 c#5 ~@41]/2", // Bm C#m F#m G C#m
  J: "~@3 [g#5,e6]@2 ~ [f#5,d6]@2 ~ [e5,c#6]@2 ~", // C#m D C#m
  K: "[[d5,b5]@30 [g#4,b4] ~@3 [a4,c#5] ~ [b4,d5] ~@3 [b4,g#5] ~ [c#5,a5] ~@3 [d5,b5]@26]/3", // G G#m A Bm E F#m G
  L: "~@6 [f#5,d6]@4 ~@2 [e5,c#6]@5 ~ [d5,b5]@4 ~@2", // D C#m G
  M: "[[c#5,a5]@28 ~@2 a4@2 ~@2 [b4,d5] ~ [c#5,e5] ~@3 [c#5,a5] ~ [d5,b5] ~@3 [e5,c#6]@26, ~@30 c#5 ~@41]/3", // F#m Bm C#m F#m G C#m
  N: "~@6 [g#5,e6]@2 ~@2 [a5,f#6] ~ [g#5,e6]@2 ~@2 [f#5,d6] ~ [e5,c#6]@5 ~", O: "[f#5,d6]@11 ~",
  P: "~@6 [c#5,a5]@2 ~@2 [d5,b5] ~ [e5,c#6]@2 ~@2 [d5,b5] ~ [c#5,a5]@3 ~@3", Q: "[d5,b5]@23 ~",
  R: "[c#5,a5]@4 ~@2 [c#5,a5]@4 ~@2 [d5,b5]@4 ~@2 [e5,c#6]@3 ~@3", // F#m G C#m
  S: "[[d5,b5]@4 [d5,b5]@2 [d5,b5]@2 ~@2 [d5,b5] ~ [e5,c#6]@3 ~@3 [f#5,d6]@2 ~@2 [e5,c#6]@42 ~@2 [e5,c#6]@5 ~]/3", // G C#m D C#m
  T: "[~@3 e5@2 ~, c#5@17 ~@7, a5@20 c#6@9 ~@19, ~@12 f#6@10 a5@9 ~@17, ~@16 e6@11 ~@21]/2",
  U: "[c#5@34 ~@8 [f5,d6]@5 ~, a5@7 ~@9]/2", V: "[g5,d#6]@3 [d#5,a#5]@2 [a#4,g5]@6 [g5,d#6]",
  W: "[g5,d#6]@2 [a5,f6] [a5,f6]@2 [a5,f6] [a5,f6]@3 [g5,d#6]@3", X: "[f5,d6]@3 [d5,a#5]@2 [a#4,f5]@6 [f5,d6]",
  Y: "[f5,d6]@2 [g5,d#6] [g5,d#6]@2 [g5,d#6] [g5,d#6]@3 [f5,d6]@3", Z: "[d#5,c6]@3 [c5,a5]@2 [a4,f5]@6 [d#5,c6]",
  AA: "[[d#5,c6]@4 [d#5,c6]@2 [d#5,c6]@2 ~@2 [d#5,c6] ~ [f5,d6]@3 ~@3 [g5,d#6]@2 ~@2 [f5,d6]@42 ~@2 [f5,d6]@5 ~]/3", // Cm Dm Cm Dm
  AB: "[d#5,c6] [f5,d6] [g5,d#6] [d#5,a5]", // Cm Dm Cm D#dim
  AC: "[~@24 f5@16 ~@2 [f5,d6]@5 ~, d5@17 ~@7, a#5@20 d6@9 ~@19, ~@12 g6@10 a#5@9 ~@17, ~@16 f6@11 ~@21]/2", // Dm
  AD: "d5@3 [a#4,d5]@3 [c5,d#5]@2 ~ [d5,f5]@2 ~, a#5@11 ~@13", AE: "[d#5,g5]@6 [f5,a5]@5 ~",
  AF: "[f5,a#5,f6,a#6]@15 ~ f6 ~ g6 ~ f6 ~ d6 ~", AG: "a#5 ~@11",
})).s("gm_epiano2").gain(0.12).pan(0.2)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A B C D E F G H@2 I@3 J@4 K I@3 J L I J M B C D E F N@2 O B C D E F G P@2 F G H@2 I@3 J@4 K Q@3 R@2 S@2 T B C D E F
  N@2 O B C D E F G U V W X Y Z AA AB@2 AC W X Y Z AA AD AE@2 AA AD AF@2 AG@2 ~
>`.pickRestart({
  A: "~@3 [e5,c#6]", B: "[f#5,d6]@3 [d5,a5]@2 [a4,f#5]@6 [f#5,d6]",
  C: "[f#5,d6]@2 [g#5,e6] [g#5,e6]@2 [g#5,e6] [g#5,e6]@3 [f#5,d6]@3", D: "[e5,c#6]@3 [c#5,a5]@2 [a4,e5]@6 [e5,c#6]",
  E: "[e5,c#6]@2 [f#5,d6] [f#5,d6]@2 [f#5,d6] [f#5,d6]@3 [e5,c#6]@3", F: "[d5,b5]@3 [b4,g#5]@2 [g#4,e5]@6 [d5,b5]",
  G: "[d5,b5] [e5,c#6] [f#5,d6] [d5,g#5]", H: "[c#5,a5]/2",
  I: "[a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~", // A
  J: "[g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~", // G#m
  K: "[e4,a4] ~@3 c#4 ~ [e4,a4] ~@3 c#4 ~ [e4,a4] ~@3 c#4 ~ [e4,a4] ~@3 c#4 ~", // A5
  L: "[a4,d5] ~@3 f#4 ~ [a4,d5] ~@3 f#4 ~ [a4,d5] ~@3 f#4 ~ [a4,d5] ~@3 f#4 ~", // D5
  M: "[e4,a4] ~@3 c#4 ~ [e4,a4] ~@3 c#4 ~ [d4,b4]@6 [e4,c#5,e5,c#6]@6", // A5 G C#m
  N: "[[d5,b5]@3 ~ [d5,b5] ~ [d5,b5]@4 [d5,b5] ~ [e5,c#6]@6 [f#5,d6]@4 [e5,c#6]@13 ~ [f#5,a5]@6 [f5,g#5]@6]/2", // G C#m D C#m F#m Fm
  O: "[e5,g5] [a4,c#5] [b4,d5] [c#5,e5,c#6]", P: "[[c#5,a5]@19 ~@2 [e5,c#6]@3]/2",
  Q: "[[a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~, [e3,a3,c#4]@71 ~]/3", // A
  R: "[[g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~ [a4,d5] ~@3 f#4 ~ [a4,d5] ~@3 f#4 ~ [a4,d5] ~@3 f#4 ~ [a4,d5] ~@3 f#4 ~, [e3,g#3,b3]@23 [f#3,a3,d4]@23 ~@2]/2", // G#m D5 E D
  S: "[[a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [a4,c#5] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~ [g#4,b4] ~@3 e4 ~, [e3,a3,c#4]@23 [e3,g#3]@24 ~, ~@24 b3@23 ~]/2", // A G#m A E
  T: "[e3,a3,c#4]@4 c#4 ~ [a3,e4,a4] ~@11 [e4,c#5,e5,c#6]@6, [e4,a4] ~@4 [e3,c#4]@5 c#4@4 ~@10, ~@11 f#3@5 ~ g#3@5 ~@2, ~@12 [d4,b4]@7 ~@5", // A A5 C#m A5 C#m G
  U: "[c#5,a5]@11 ~", V: "[a#4,d5]@2 ~ [a#4,d5]@3 [c5,d#5]@3 [d5,f5,d6]@3",
  W: "[g5,d#6]@3 [d#5,a#5]@2 [a#4,g5]@6 [g5,d#6]", X: "[g5,d#6]@2 [a5,f6] [a5,f6]@2 [a5,f6] [a5,f6]@3 [g5,d#6]@3",
  Y: "[f5,d6]@3 [d5,a#5]@2 [a#4,f5]@6 [f5,d6]", Z: "[f5,d6]@2 [g5,d#6] [g5,d#6]@2 [g5,d#6] [g5,d#6]@3 [f5,d6]@3",
  AA: "[d#5,c6]@3 [c5,a5]@2 [a4,f5]@6 [d#5,c6]", // Cm F Dm Cm
  AB: "[[d#5,c6]@3 ~ [d#5,c6] ~ [d#5,c6]@4 [d#5,c6] ~ [f5,d6]@6 [g5,d#6]@4 [f5,d6]@13 ~ [g5,a#5]@6 [f#5,a5]@6]/2", // Cm Dm Cm Dm Gm F#m
  AC: "[f5,g#5] [a#4,d5] [c5,d#5] [d5,f5,d6]", AD: "[d#5,c6] [f5,d6] [g5,d#6] [d#5,a5]",
  AE: "[[d5,a#5]@19 ~@2 [f5,d6]@3]/2", // Gm Dm
  AF: "[a#5@6 [d4,a#4,a#5,d6]@5 ~ [c6,d#6]@5 ~ [d6,f6]@5 ~ [d#5,d#6,g6]@11 ~ [a4,f5,f6,a6]@11 ~, d5 ~@2, ~@11 [d#4,c5]@5 ~ [f4,d5]@5 ~ g4@11 ~@14]/2", // Gm Cm Dm D# Dm Cm Dm
  AG: "[[a#4,d5,f5]@47 ~, a#5@7 ~@9, f6@19 ~@29, a#6@5 ~@11]/2", // A#
})).s("gm_string_ensemble_1").gain(0.27).pan(0.8)

// other · oboe
const oboe = note(`<
  A B C D E F G H ~@16 A B C D E F I@3 B C D E F G H A F G H ~@16 A B C D E F I@3 B C D E F G H ~ J K L M N O@3 J K L M
  N P Q R N P Q ~@4
>`.pickRestart({
  A: "~@3 e4", B: "f#4@3 d4@2 a3@6 f#4", C: "f#4@2 g#4 g#4@2 g#4 g#4@3 f#4@3", D: "e4@3 c#4@2 a3@6 e4",
  E: "e4@2 f#4 f#4@2 f#4 f#4@3 e4@3", F: "d4@3 b3@2 g#3@6 d4", G: "d4 e4 f#4 d4", H: "c#4",
  I: "[d4@4 d4 ~ d4@2 ~@2 d4 ~ e4@5 ~ f#4@4 e4@27 ~@23]/3", J: "g4@3 d#4@2 a#3@6 g4", K: "g4@2 a4 a4@2 a4 a4@3 g4@3",
  L: "f4@3 d4@2 a#3@6 f4", M: "f4@2 g4 g4@2 g4 g4@3 f4@3", N: "d#4@3 c4@2 a3@6 d#4",
  O: "[d#4@4 d#4 ~ d#4@2 ~@2 d#4 ~ f4@5 ~ g4@4 f4@27 ~@23]/3", P: "d#4 f4 g4 d#4", Q: "d4", R: "~@3 f4",
})).s("gm_oboe").gain(0.21).pan(0.2)

// other · lead 1 square · "SQUAREWAVE"
const lead_1_square = note("<~@8 [c9@7 ~@5] ~@35 [c9@7 ~@5] ~@55>").s("gm_lead_1_square").gain(0.11).pan(0.3)

// chords · melodic tom · "MELO TOM 1"
const melodic_tom = note("<A ~@5 B ~@9 C ~@7 D ~@7 A ~@9 B ~@9 E ~@7 D ~@7 A ~@7 F ~@7 F ~@9 G ~@2 H ~@2>".pickRestart({
  A: "~@18 [g3,c4] ~ f3 ~ c3 ~", B: "~@18 f3@2 ~@2 [b2,f3] ~, ~@18 b2 ~@5", C: "~@18 e4 ~@3 a3 ~",
  D: "~@8 g4@2 e4@2 c4 ~@3 c4 ~ g3 ~@3 [d3,g3] ~", E: "~@8 g4@2 c4 ~ g3 ~@3 [g3,a3] ~@3 c3 ~ [e2,f2] ~, ~@8 f4 ~@15",
  F: "~@18 [g#3,c#4] ~ f#3 ~ c#3 ~", G: "~@18 f#3@2 ~@2 [c3,f#3] ~, ~@18 c3 ~@5", H: "~@18 g4 ~ c4 ~ d3 ~",
})).s("gm_melodic_tom").gain(0.31)

// chords · melodic tom · "MELO TOM 1" · soft notes · Cmaj7
const melodic_tom_soft = note("<~@52 [~@18 [b2,c3] ~@5] ~@44 [~@16 d5 ~@3 d4 ~@3] ~@2>").s("gm_melodic_tom").gain(0.21)

// drums · kick
const kick = s("bd").struct("<~ [x ~@4 x!2 ~@5]!97 x ~>").gain(0.72)

// drums · snare
const snare = s("sd").struct("<~ A@6 ~ B ~@16 A@15 C A@2 ~ B ~@16 A@31 C A@5 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~@3 x ~@5 x ~ x",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~ A@6 ~@18 A@18 ~@2 B C B C B C B C B C B C B C B C A@37 D ~>".pickRestart({
  A: "x!11 ~", B: "x ~ x!2 ~ x!2 ~ x!2 ~ x", C: "x ~ x!2 ~ x!2 ~ x!2 ~@2", D: "x",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~ A@6 ~@18 A@18 ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@38 ~@2>".pickRestart({
  A: "~@11 x",
})).gain(0.56)

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

// drums · tambourine
const tambourine = s("tb").struct("<~ [~@3 x]!96 ~@3>").gain(0.64)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~
  [~@14 x!3 ~@7]!6
  ~@18
  [~@14 x!3 ~@7]!18
  ~@18
  [~@14 x!3 ~@7]!32
  [~@7 x!2 ~@3]!5
  ~@2
>`).gain(2.43)

// drums · claves
const claves = s("clave:2").struct("<~ A@6 ~@10 A@6 ~@2 A@18 ~@10 A@6 ~@2 A@37 ~@2>".pickRestart({
  A: "~@3 x ~@4 x ~@3",
// … 6 more lines

More by Frans Bauer