Strudelify

Aquarius

Fifth Dimension

KeyC minorTempo183 bpm
0:00/0:00
// Aquarius — Fifth Dimension
// 183 bpm, 4/4, key C 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 106 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(183/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 nylon
const acoustic_guitar_nylon = note(`<
  ~@12 A B C D E F G H I J K L M N O ~ P Q@4 R S@4 T@2 U@2 V W X Y Z AA AB AC AD AE@2 AF AG AH AI AJ AK AL AM@2 AN AO AP
  AQ A B C D E F G H I J K L M N O ~ P Q@4 AR S@4 T@2 U@2 S@4 T@2 U@2 AS ~
>`.pickRestart({
  A: "[c3,g3,d4,g4]@6 [c3,d4,g4]@2 [c3,d4,g4]@3 ~@5, bb3@5 ~@3, ~@3 g3@2 ~@3", // Csus2
  B: "f4@6 f4@2 [f3,c4,f4]@3 ~@5, [c3,a3]@11 ~@5, [f3,c4] ~", // F5 F F5
  C: "[g3,bb3,d4,g4]@6 [bb3,d4,g4]@2 [c3,bb3,d4,g4]@3 ~@5, c3 ~, ~@6 g3@5 ~@5", // Gm
  D: "[bb3,g4]@6 [bb3,g4]@2 [c3,bb3,d4,g4]@3 ~@5, [c3,d4] ~", // Eb Gm Csus2
  E: "[c3,bb3,d4,g4]@6 [d4,g4]@2 [g3,d4,g4]@3 ~@5, ~@6 [c3,bb3]@5 ~@5", // Gm G5 C7
  F: "[f3,a3,c4,f4]@6 [f3,c4,f4]@2 [f3,c4,f4]@3 ~@5, ~@6 a3@5 ~@5", // F F5
  G: "[g3,d4,g4]@6 [g3,d4,g4]@2 [c3,g3,bb3,d4,g4]@3 ~@5, [c3,bb3] ~", // G5 Gm C7
  H: "[bb3,d4,g4]@6 [d4,g4]@2 [c3,g3,d4,g4]@3 ~@5, [c3,g3] ~, ~@6 bb3@5 ~@5", // Gm G5 Csus2 C5
  I: "[bb3,g4]@6 [bb3,g4]@2 [c3,g3,bb3,d4,g4]@3 ~@5, [c3,d4] ~", // Eb Gm Csus2
  J: "[a3,f4]@6 [a3,f4]@2 [f3,a3,c4]@5 ~@3, [f3,c4]@8 [c3,f4]@3 ~@5", // Dm F F5
  K: "[g3,bb3,d4,g4]@6 [bb3,d4,g4]@2 [bb3,d4,g4]@3 ~@5, c3@11 ~@5, ~@3 g3@3 ~@2", // Gm
  L: "[g3,bb3,d4,g4]@6 [d4,g4]@2 [c3,d4,g4]@3 ~@5, c3 ~, ~@6 [g3,bb3]@5 ~@5", // Gm G5 Csus2 Gm
  M: "[eb3,bb3,eb4,g4]@6 [eb3,bb3,g4]@2 [eb3,bb3,g4]@3 ~@5, ~@6 eb4@5 ~@5", // Eb
  N: "[f3,f4,a4]@6 a4@2 a4@3 ~@5, c4@11 ~@5, ~@6 [f3,f4]@5 ~@5", O: "[f3,bb3,d4,f4,bb4] ~@3",
  P: "[eb3,eb4,ab4]@6 eb4@2 ~@2 [c4,ab4]@3 ~@3, [ab2,ab3]@3 ~, c4@5 ~@3, ~@6 [eb3,ab4]@5 ~@5, ~@4 eb4@3 ~", // Ab5 Fm Ab Ab5
  Q: "[[ab2,eb3,ab3,eb4,ab4]@6 [ab2,eb4,ab4]@2 [ab2,eb4,ab4]@2 [eb4,ab4]@2 ~@2 [ab3,eb4]@2 [eb4,ab4]@6 [eb3,c4,eb4,ab4]@2 [eb3,c4,eb4,ab4]@2 [eb3,eb4,ab4] ~@3 ab4@2 ab4@6 [eb4,ab4]@2 [eb3,eb4,ab4]@2 [eb4,ab4]@2 ~@2 g4@2 [g3,c4,eb4,g4]@6 [g3,eb4,g4]@2 [g3,eb4,g4]@2 [eb4,g4]@2 ~@2 [c4,eb4,g4]@2, c4@11 ~@3 [eb3,c4]@8 ab3@5 ~@3 eb3@10 ~@6 c3@7 ~ [c3,c4]@5 ~@5, ~@6 [eb3,ab3]@5 ~@3 ab2@13 ~@3 [c4,eb4]@8 c4@5 ~@21]/4", // Ab5 Ab Ab5 Cm Eb Cm C Ab5 …
  R: "[c4,eb4,g4]@6 [eb4,g4]@2 g4@2 [c4,g4]@2 ~@2 f4 ~, c3@3 ~, ~@3 c4@2 ~@3, ~@8 eb4@5 ~@3", // Cm Eb C5
  S: "[[c3,c4,f4]@6 [c3,c4,f4]@2 [f2,c3,a3,c4,f4]@2 [a3,f4]@2 ~@2 [a3,f4]@2 [a3,c4,f4]@6 [a3,f4]@4 [a3,f4]@2 ~@2 [c3,a3]@2 [c3,a3,f4]@6 [c3,a3,f4]@4 [a3,f4]@3 ~ [c4,f4]@2 f4@4 f4@2 ~@4 [a3,f4]@2 ~@2 [c3,g3]@2, f3@11 ~@3 f3@8 [f3,c4]@6 ~@2 f3@13 ~@3 f3@10 ~@8, a3@8 ~@6 c3 ~ [f2,c3]@11 ~@5 [f2,c4]@12 ~@2 a3@2 c4@6 [a3,c4,f4]@4 ~@6, ~@46 c3 ~ f2@11 ~@5, ~@12 c3@2 [c3,f3] ~]/4", // F5 F Dm F Dm F Dm F5 …
  T: "[[eb4,g4]@5 ~ [eb4,g4]@2 [g3,g4]@2 [g3,c4,g4]@2 ~@2 [g3,c4,eb4,g4]@2 [c4,g4]@4 g4@2 c4@2 c3@2 [c3,c4,eb4,g4] ~@3 [eb4,g4]@2, c4@10 ~@6 g3@11 ~@5, [c3,g3]@4 [c3,eb4]@2 ~ c3@5 ~@4, ~@16 eb4@6 [eb4,g4]@4 ~@4 c4 ~]/2", // Eb G C5 Cm C5 Cm Eb C5 …
  U: "[g4@2 g4@4 [eb4,g4]@2 [g3,eb4,g4]@2 [eb4,g4] ~@3 [c4,eb4,g4]@2 g4@2 g4@4 eb4@2 eb4@2 [c4,g4]@2 [c3,c4,g4]@2 ~@2, c4@11 ~@3 g3@15 ~@3, [c3,eb4]@6 c3@5 ~@3 c3@13 ~@5, ~@8 [c4,eb4]@3 [c4,g4]@2 eb4@2 ~]/2", // Eb Cm Eb Cm C5 Cm C5
  V: "[f4,bb4]@3 [f4,bb4] [f4,bb4]@3 bb3, [bb3,d4]@13 ~@3, [bb2,f3]@2 [bb2,f3] ~", // Bb5 Bb Bb5
  W: "eb4@2 eb4@2 g4@2 [eb4,g4]@2 [bb3,eb4,g4]@5 ~@3, bb3 ~, eb3@3 eb3@3 ~@2, g4 ~@3", // Eb
  X: "[f3,bb3,f4,bb4]@6 [f4,bb4]@2 [f4,bb4]@5 ~@3, bb2@3 ~, d4@2 ~ [f3,bb3,d4]@3 ~@2", // Bb5 Bb
  Y: "[eb4,g4]@6 eb4@2 [eb3,eb4]@5 ~@3, bb3@13 ~@3, eb3 ~, ~@3 g4@4 ~", // Eb
  Z: "[bb2,f3,f4,bb4]@6 [bb2,d4,bb4]@2 [bb2,d4]@4 ~@2 [eb3,bb3,eb4] ~, d4@4 ~@2 f4@7 ~@3, ~@6 f3@5 ~@5, ~@4 bb4@3 ~", // Bb5 Bb Eb5
  AA: "[eb3,g4]@6 [eb3,g4]@2 [eb3,g4]@5 ~ [c3,eb4,g4]@2, bb3@3 ~, eb4@2 ~ eb4@3 ~@2", // Eb Cm
  AB: "[c3,g3,c4,eb4,g4]@4 [c3,c4,eb4,g4]@2 ~@2 [d3,f3,bb3,d4,g4]@5 ~@3", // Cm Gm7
  AC: "[g3,bb3,g4]@6 [bb3,eb4,g4]@4 [eb3,bb3,eb4,g4]@3 ~@3, eb3@5 ~@3, eb4@2 ~ g3@3 ~@2", // Gm Eb
  AD: "[eb3,g3,bb3,eb4,g4]@2 [eb4,g4] ~ [d3,g3,b3,d4,g4]@2 ~ g4", // Eb G
  AE: "[[c4,eb4]@6 [eb4,g4]@4 [eb4,g4]@2 ~@2 [c4,eb4,g4]@2 [g3,c4,eb4,g4]@5 ~@3 [c3,f3,ab3,c4,f4]@4 [c4,f4]@3 ~, [c3,g3]@12 ~@2 c3@7 ~@11, g4@2 ~ c4@3 ~@10]/2", // Cm Eb Cm Fm F5 C5
  AF: "[bb3,d4,g4]@3 [d4,g4]@2 [d3,g3,d4,g4] [d4,g4] ~, [d3,g3]@5 ~@3, ~@6 bb3@7 ~@3", // Gm G5
  AG: "[f3,ab3,c4,f4]@4 ~@2 c3@2 [f2,c3]@4 [ab3,c4,f4] ~ c3 ~, ~@6 [f3,ab3,c4,f4]@7 ~@3", // Fm F5 Fm
  AH: "[f2,c3,f3,ab3,c4,f4]@4 [c4,f4] ~ [f3,c4]@2 c4@4 ~@4, ~@6 [f2,c3,ab3,f4]@7 ~@3", // Fm F5 Fm
  AI: "[f2,f3,ab3,c4,f4]@4 f4 ~ [ab3,c4]@2 [f2,ab3,c4]@4 ~@4, ~@3 [c3,f3,f4]@3 ~@2", // Fm Ab Fm F5
  AJ: "[f2,c3,f3,ab3,f4]@4 ~@2 f4@2 f4@3 ~@5, ~@3 [c3,f3,ab3,c4]@3 ~@2", // Fm
  AK: "[c3,g3,bb3,d4,g4]@2 ~ [c3,bb3,g4] [c3,bb3,g4]@2 ~@2, ~@3 [g3,d4]@3 ~@2", // Gm C7 G5
  AL: "[g3,bb3,d4,g4]@4 ~@2 d4@2 d4@4 g4 ~@3, ~@3 [g3,bb3,g4]@3 ~@2", // Gm
  AM: "[[c3,g3,bb3,d4,g4]@4 ~@2 g4@2 g4@4 ~@4 [bb3,d4,g4]@4 g4 ~ g4@2 g4@4 ~@4, ~@3 [c3,g3,bb3,d4]@3 ~ [c3,g3]@3 ~ [c3,g3,bb3,d4]@3 ~@2]/2", // Gm C5 Gm
  AN: "[g3,bb3,d4,g4]@4 g4 ~ [bb3,d4,g4]@2 [d4,g4]@6 ~@2, ~@6 c3 ~ bb3@4 ~@4, ~@4 c3 ~@3", // Gm G5
  AO: "[g3,bb3,d4,g4]@5 ~ [g3,bb3,g4]@2 [g3,bb3]@4 ~@4, ~@3 d4@4 ~, ~@3 c3@3 ~@2, ~@4 g4@3 ~", // Gm
  AP: "[c3,g3,bb3,d4,g4]@2 ~ [bb3,d4,g4] [d4,g4]@3 ~, ~@2 [g3,bb3] ~", // Gm G5 Gm
  AQ: "[c3,g3,bb3,d4,g4]@4 g4 ~ [bb3,d4,g4]@2 [c3,g3,bb3]@4 ~@4, ~@4 [d4,g4]@3 ~", // Gm C7 G5
  AR: "[c4,eb4,g4]@3 [eb4,g4] g4 [c4,g4] ~@2, c3@3 ~, ~@3 c4@2 ~@3, ~@8 eb4@5 ~@3", AS: "[c3,g3,c4,eb4]",
})).s("gm_acoustic_guitar_nylon").gain(0.24).pan(0.4)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@15 A B C ~@2 B D ~@7 E F@2 G@2 H I J ~ K L@2 ~ M ~ M ~ N O ~ P ~ Q R ~ S T@3 U@2 V W X@2 Y Z ~@3 A B C ~@2 B D ~@7 E
  F@2 AA@2 H I J ~ K L@2 ~ H I J ~ K L@2 ~@3
>`.pickRestart({
  A: "g3@11 ~@5", B: "g3 ~", C: "c3@6 c3@5 ~@5", D: "c3 ~", E: "~@7 ab4", F: "[ab3@6 ~@8 [ab2,ab3]@13 ~@3 [g3,c4] ~]/2",
  G: "[~@14 g3@13 ~@5, ~@7 c3 ~@8]/2", H: "f2@4 ~@3 c4, ~@14 f2 ~", I: "~@7 [c4,f4], ~@14 f2 ~", J: "~@14 f2 ~",
  K: "~@2 g4 ~@5", L: "[~@8 c4@2 ~@4 g3@9 ~@9]/2", M: "~@7 eb3", N: "bb3@3 ~", O: "~@7 g3", P: "~@14 [eb3,g3,eb4] ~",
  Q: "~@4 g4@2 ~@8 g3 ~", R: "~@6 c3 ~@9", S: "c3@4 ~@2 f2@2 ~@6 [f3,f4] ~",
  T: "[~@8 f3@4 ~@2 c3@6 ~@10 c4@5 ~@3 f2@6 ~@2 g3 ~, ~@14 f3 ~@15 f3@2 ~@16, ~@30 c3 ~@17]/3",
  U: "[~@14 c3@6 ~@2 c3@6 ~@2 c3 ~, ~@14 g3 ~@17]/2", V: "~@14 [bb3,d4] ~, ~@7 g4", W: "~@7 [g3,bb3]",
  X: "[c3@4 ~@2 g3@5 ~@3 c3@5 ~@13, ~@14 g3 ~@17]/2", Y: "~@6 c3@6 ~@2 g3 ~, ~@3 g3 ~@4", Z: "~@3 [c3,g3] ~@4",
  AA: "[~@14 g3@13 ~@3 f4 ~, ~@7 c3 ~@8]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.12).pan(0.4)

// bass · acoustic bass
const bass = note(`<
  ~@2 A@5 B C@2 B D E@7 F E@3 G H I J ~ K L M N E O P Q R S T U V W X Y Z AA X AB AC AD AE T AF AG AH Q@2 AH AI AJ AK@4
  AJ@2 E@7 F E@3 G H I J ~ K L M N E O P Q R S T U V W P Q R S T U AL@2 AM ~
>`.pickRestart({
  A: "[~@3 c2@5 c2@2 ~ c2@3 g1@4 c2@5 ~ c2@2 c2@4 g1@4 c2@4 ~@2 c2 ~ c2@4 g1@4 c2@4 ~@2 c2 ~ c2@4 g1@4 c2@4 ~@2 c2 ~ c2@3 g1@3]/5",
  B: "~ c2@5 ~ c2 ~ c2@4 g1@3", C: "~ c2@4 ~@2 c2 ~ c2@4 g1@3", D: "~ c2@5 c2 ~ c2@4 g1@4",
  E: "c2@4 ~@2 c2 ~ c2@4 g1@4", F: "c2@3 ~@3 c2 ~ c2@4 g1@4", G: "c2@4 ~@2 c2 ~ c2@4 g1@3 ~",
  H: "eb2@3 ~@3 eb2 ~ eb2@4 bb1@4", I: "f2@4 ~@2 f2 ~ f2@3 ~ f2@4", J: "bb1 ~@3", K: "ab2@5 ~ ab2 ~ ab2@4 eb2@4",
  L: "ab2@6 ab2 ~ ab2@4 eb2@4", M: "ab2@4 ~@2 ab2 ~ ab2@4 eb2@4", N: "ab2@3 ab2 ab2@2 eb2@2", O: "c2@5 ~ c2 ~ c2@8",
  P: "f2@4 ~@2 f2 ~ f2@7 ~", Q: "f2@5 ~ f2 ~ f2@6 ~@2", R: "f2@6 f2@2 f2@7 ~", S: "f2@6 f2 ~ f2@8",
  T: "c2@5 ~ c2 ~ c2@7 ~", U: "c2@5 ~ c2 ~ c2@6 ~@2", V: "c2@5 ~ g2@2 c3@4 g2@4", W: "c2@3 g2 c3@2 g2@2",
  X: "bb2@2 ~ f2 bb2@2 f2@2", Y: "eb2@5 ~ f2@2 g2@3 ~ eb2@4", Z: "bb2@4 ~@2 f2@2 bb2@3 ~ f2@4",
  AA: "eb2@2 ~ f2 g2@2 eb2@2", AB: "eb2@5 ~ f2@2 g2@3 ~ eb2@2 ~@2", AC: "c2 d2", AD: "eb2@5 ~ eb2 ~ eb2@3 ~ eb2@3 ~",
  AE: "eb2 d2", AF: "c2@5 ~ c2@2 f2@8", AG: "g2@5 ~ g2 ~ g2@4 d2@4", AH: "f2@5 ~ f2 ~ f2@5 ~@3",
  AI: "c2@5 ~ c2 ~ c2@4 ~@4", AJ: "c2@4 ~@2 c2 ~ c2@4 ~@4", AK: "c2@4 ~@2 c2 ~ c2@5 ~@3",
  AL: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", AM: "c2",
})).s("gm_acoustic_bass").gain(0.38)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@12 A@4 B C@4 D E@2 ~@42 A@4 B F@4 D E@2 ~@28>".pickRestart({
  A: "[[d4,eb4,g4]@12 ~@4 f4@13 ~@3 [eb4,g4]@29 ~@3, ~@15 a3@12 ~@37, ~@16 c4@8 ~@7 d4@29 ~@4]/4", // Ebmaj7 Eb
  B: "[d4,eb4,g4]@13 ~@3", C: "[[a3,c4,f4]@12 ~@4 [eb4,g4]@28 ~@4 [eb4,g4]@13 ~@3, ~@15 d4@29 ~@3 d4@13 ~@4]/4",
  D: "[c4,f4]@3 ~, a3@3 ~@5", E: "[[d4,eb4,g4]@29 ~@3]/2",
  F: "[[a3,c4,f4]@12 ~@4 [eb4,g4]@28 ~@4 [eb4,g4]@13 ~@3, ~@15 d4@32 d4@13 ~@4]/4", // F Eb
})).s("gm_electric_guitar_jazz").gain(0.2).pan(0.7)

// chords · ocarina
const ocarina = note(`<
  ~@26 A@2 B C D E@3 F@8 G@2 H@2 ~@3 I@4 J K@4 L@3 ~@16 M N O@3 B P D E@3 Q@8 F@8 ~@2
>`.pickRestart({
  A: "[~@2 [bb3,bb4]@2 [c4,bb4]@2 [bb3,bb4] [bb3,d4,bb4]@3 [f3,c4,f4]@2 [d3,bb3,d4]@2 [f3,a3,f4]@2]/2", // Bb C7 Bb F5 Gm F
  B: "[eb3,c4,eb4]@2 [eb3,c4,eb4]!2", C: "[eb3,c4,eb4]@4 [eb3,c4,eb4]@2 [eb3,c4,eb4]@7 ~@3",
  D: "[eb3,c4]@3 ~ [eb3,c4,eb4]@2 [eb3,c4,eb4]@2, eb4 ~", // Cm
  E: "[[eb3,c4,eb4]@2 [c4,eb4] ab4@5 g4@3 ~@11 [eb4,bb4]@2, ~ eb3 ~@10, ~@6 c4@31 ~@11, ~@3 eb4@8 ~@13]/3", // Cm Eb5
  F: "[[c4,f4,a4]@3 [bb3,g4,bb4] c4@26 [eb4,c5]@2 [d4,f4,bb4]@3 [c4,eb4,bb4]@3 eb4@21 ~@5, ~@4 a4@15 ~@11 c4@5 ~@3 g3@14 ~@12, ~@2 c5@7 ~@10 g4@2 ~@11]/8", // F Eb Cm Bb Cm7
  G: "[d5 eb5 d5 c5 bb4 ab4 ~ c5@2 bb4@4 ~@3]/2", H: "[c5@2 d5@2 c5@2 bb4@2 ab4@4 g4@2 ab4@4 g4@4 g4@5 ~@5]/2",
  I: "[~@4 g4@2 ~@2 g4@2 ~@2 ab4@2 g4 f4@2 eb4@11 ~@4, ~@6 f4@4 f4@5 ~@17]/4", J: "~@3 bb3",
  K: "[c4@6 [bb3,c4,eb4]@2 f4@8 ab4@16 c5@16 f5@11 ~ [c4,c5]@4, ~@2 ab3@13 ~, ~@8 c4@43 ~@13]/4", // Cm7 C
  L: "[[d4,bb4] [f4,bb4] [eb4,g4]@6]/3", M: "~@3 [g3,bb3,d4]", N: "[g3,bb3,eb4]",
  O: "[[a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] [bb3,d4,f4]@2 ~ [bb3,bb4]@2 [c4,bb4]@2 [bb3,bb4] [bb3,d4,bb4]@3 [f3,c4,f4]@2 [d3,bb3,d4]@2 [f3,a3,f4]@2]/3", // F Bb C7 Bb F5 Gm F
  P: "[eb3,c4,eb4]@2 [eb3,c4,eb4] [eb3,c4,eb4]@5", // Cm
  Q: "[[c4,f4,a4]@3 [bb3,g4,bb4] c4@26 [eb4,c5]@2 [d4,f4,bb4]@3 [c4,eb4,bb4]@3 eb4@21 ~@3 [eb4,bb4]@2, ~@4 a4@15 ~@11 c4@5 ~@3 g3@14 ~@12, ~@2 c5@7 ~@10 g4@2 ~@11]/8", // F Eb Cm Bb Cm7 Eb5
})).s("gm_ocarina").gain(0.3).pan(0.4)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A@8 B C@3 D E F@2 D E F@2 G E H@2 I J ~@15 K L M N O P@2 ~@11 Q@2 R D S@3 D E F@2 D E F@2 G E H@2 I J ~@26
>`.pickRestart({
  A: "[~@3 d6@47 c6@15 ~ b5@16 e6@15 ~ bb5@15 [g5,d6]@15, ~@3 [a5,g6]@78 ~@16 f6@16 ~@15]/8", B: "~ [ab5,eb6]@15",
  C: "[~ [g5,c6]@47]/3", D: "d6", E: "c6", F: "[d6@29 ~@3]/2", G: "d6@15 ~", H: "d6/2", I: "eb6", J: "f6",
  K: "~@6 g5 ab5", L: "bb5@13 ~ ab5@2", M: "~@2 g5@7 ~ eb5@2 f5@2 g5@2", N: "ab5@6 ~ g5",
  O: "f5@4 eb5@5 ~@3 eb5 f5 g5 ab5", P: "[bb5@6 ~ c5@2 [bb4,g5]@6 ~, ~@7 ab5 ~@8]/2", Q: "[~@2 eb4@3 c4@11]/2",
  R: "c5 ~@3 g5@4", S: "[~@32 c6@15 ~, c6 d6 ~, ~ bb5@2 g5@3]/3",
})).s("gm_string_ensemble_1").gain(0.33)

// other · flute
const flute = note("<~ A@5 B@2 C D E@2 ~@94>".pickRestart({
  A: "[~@7 d5@4 g5@3 ~ c6@3 ~@20 c5@4 f5@4 bb5@4 g5@4 d6@4 c6@4 g6@16 ~@2, ~@9 a5@23 ~@8]/5",
  B: "[~@5 c6@4 bb5@4 f6@14 ~@5]/2", C: "~ eb6@4 bb5@4 gb5@4 db5@3", D: "~ e5@4 c6@7 ~ bb5@3",
  E: "[~@4 d6@3 ~ g5@23 ~, ~ c6@31]/2",
})).s("gm_flute").gain(0.27).pan(0.3)

// chords · french horn
const french_horn = note("<~@28 A@2 B@2 C@2 D@5 ~ E@2 ~@18 F@2 ~@20 A@2 B@2 C@2 D@5 ~ E@2 D@5 ~ E@2 G ~>".pickRestart({
  A: "[[c4,eb4]@5 ~@3, ab3@11 ~@5]/2", B: "[ab3@27 ~@5, eb4 ~@3, c4@3 ~@13]/2",
  C: "[[c4,eb4]@6 c4@2 eb4@17 ~@7, ~@6 eb4 ~ c4@14 ~@10]/2", // Cm
  D: "[[a3,c4]@6 [a3,c4] ~ c4@38 c4@4 c4@4 c4@2 c4@21 ~@3, ~@8 a3@14 ~@24 a3@2 ~@2 a3@2 ~@2 a3 ~ a3@7 ~@17]/5", // Am
  E: "[f4@3 eb4@8 ~@5]/2", F: "[f3@3 g3@7 ~@6]/2", G: "[c4,eb4]",
})).s("gm_french_horn").gain(0.33).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~@12 [x ~@2 x!2 ~@3]!14 ~@2 [x ~@2 x!2 ~@3]!52 ~@2 [x ~@2 x!2 ~@3]!22 x ~>").gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@26 A B C@13 D C@11 E C@4 ~@22 A B C@13 D C@6 F@2 A ~>".pickRestart({
  A: "x", B: "~@4 x!4", C: "~ x ~ x", D: "~ x ~@2", E: "~@4 x ~@6 x!2 ~@3", F: "x!8",
})).gain(0.49)

// drums · hihat
const hihat = s("hh").struct("<~@12 A@14 ~@2 B@14 C ~@15 D@8 A@14 ~@2 B@22 ~@2>".pickRestart({
  A: "~ x ~@2", B: "x!8", C: "x", D: "~@3 x",
})).gain(0.33)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@12 A@14 ~@15 B ~@24 A@14 ~@15 B ~@10>".pickRestart({
  A: "~@3 x", B: "~@6 x!2",
})).gain(0.44)

// drums · high tom
const high_tom = s("ht").struct("<~@41 [~@6 x!2] ~@53 [~@6 x!2] ~@10>").gain(0.38)

// drums · crash
const crash = s("cr").struct("<~@104 x ~>").gain(0.38)

// drums · ride
const ride = s("rd").struct("<A B C@3 D E@3 F G@2 ~@30 H@16 ~@48>".pickRestart({
  A: "~@3 x ~ x ~ x", B: "~@2 x ~@3 x ~@3 x ~@2 x ~@2", C: "~ x ~@3 x ~@3 x ~@3 x ~@2", D: "~ x ~@3 x ~@2 x ~@3 x ~@3",
  E: "x!4", F: "x ~@3 x ~@2 x ~@3 x ~@3 x", G: "~@3 x ~@3 x ~@3 x ~@3 x", H: "x!8",
})).gain(0.38)

// drums · tambourine
const tambourine = s("tb").struct("<~@6 [~@13 x ~@2]!4 [~@3 x]!2 ~@94>").gain(0.27)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@2 [~@7 x]!4 ~@100>").gain(0.16)

// drums · triangle
const triangle = s("triangles:35").struct("<A B@2 C D E F G H@2 I C ~@94>".pickRestart({
  A: "~@3 x ~ x ~ x!2 ~@2 x!2 ~@2 x", B: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x", C: "x!8",
  D: "x ~ x ~ x ~ x!2 ~@2 x!2 ~@2 x!2", E: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2", F: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~ x ~ x",
  G: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", H: "~ x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~", I: "~ x!2 ~@2 x!2 ~@2 x!2 ~ x ~ x ~",
})).gain(2.38)

stack(
  acoustic_guitar_nylon, acoustic_guitar_nylon_2, bass, electric_guitar_jazz, ocarina, string_ensemble_1, flute,
  french_horn, kick, snare, hihat, low_tom, mid_tom, high_tom, crash, ride, tambourine, tambourine_soft, triangle
)

More by Fifth Dimension