Strudelify

Lemon Tree

Fool's Garden

KeyC minorTempo143 bpm
0:00/0:00
// Lemon Tree — Fool's Garden
// 143 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 113 bars on a 24-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): +CHORUS GT.
setcpm(143/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 2"
const piano = note(`<
  ~@32 A B C D E F A G A H I D J K L M ~@36 A B N O E F A G A H P O J Q R S T B U V W X Y Z W AA AB@2 ~
>`.pickRestart({
  A: "~@6 [c4,eb4,ab4] ~@11 [c4,eb4,ab4] ~@3 ab2@2, ab2@2 ~ eb2@2 ~", // Ab
  B: "~@6 [bb3,eb4,g4] ~@3 eb2@2 ~@6 [bb3,eb4,g4]@2 ~@4, eb2@4 ~@2 bb2@5 ~", // Eb
  C: "~@6 [c4,f4,ab4] ~@11 [c4,f4,ab4] ~@3 f2@2, f2@2 ~ c2@2 ~", // Fm
  D: "~@6 [c4,eb4,g4] ~@3 c2@2 g2@5 ~ [c4,eb4,g4]@2 ~@4, c2@8 ~@10 c2@5 ~", // Cm
  E: "~@6 [db4,f4,ab4] ~@11 [db4,f4,ab4] ~@3 db2@2, db2@2 ~ ab2@2 ~", // Db
  F: "~@6 [db4,eb4,g4] ~@11 [db4,eb4,g4]@2 ~@4, eb2@4 ~@2 bb2@5 ~", // Eb7
  G: "[eb2,eb3]@2 ~@2 eb2 ~ [bb3,eb4,g4] ~@5 [c2,c3]@3 ~@3 [bb1,bb2,bb3,eb4,g4]@3 ~@3, ~@2 [db2,db3] ~@5", // Eb C Eb Db
  H: "~@6 [bb3,eb4,g4] ~@3 eb2@2 bb2@5 ~ [bb3,eb4,g4]@2 ~@4, eb2@8 ~@10 eb2@5 ~", // Eb
  I: "~@6 [c4,f4,ab4] ~@3 f2@2 ~@6 [c4,f4,ab4] ~@5, f2@2 ~ c2@2 ~", // Fm
  J: "~@6 [db4,f4,ab4] ~@3 db2@2 ab2@5 ~ [db4,f4,ab4] ~@5, db2@8 ~@10 db2@5 ~", // Db
  K: "~@6 [bb3,d4,ab4] ~@3 d2@2 ~@6 [bb3,d4,ab4]@2 ~@4, d2@4 ~@2 bb2@5 ~", // Bb7
  L: "~@6 [c4,eb4,ab4] ~@3 eb2@2 ~@6 [c4,eb4,ab4] ~@3 bb1@2, eb2@2 ~ bb1@2 ~", // Ab
  M: "eb2@2 ~@4 [db4,eb4,g4] ~@5 [db4,eb4,ab4]@2 ~@4 [db4,eb4,bb4]@2 ~@4", // Eb7 Dbsus2 Eb7
  N: "~@6 [c4,f4,ab4] ~@5 c2@5 ~ [c4,f4,ab4] ~@5, f2@8 ~@10 ab2@5 ~", // Fm
  O: "~@6 [c4,eb4,g4] ~@3 g2@2 eb2@5 ~ [c4,eb4,g4]@2 ~@4, g2@8 ~@10 c2@5 ~", // Cm
  P: "~@6 [c4,f4,ab4] ~@3 f2@2 c2@5 ~ [c4,f4,ab4] ~@5, f2@8 ~@10 ab2@5 ~", // Fm
  Q: "~@6 [bb3,d4,ab4] ~@3 d2@2 ~@6 [bb3,d4,ab4]@2 ~@4, d2@4 ~@2 ab2@5 ~", // Bb7
  R: "~@6 [c4,eb4,ab4] ~@3 eb2@2 ~@6 [c4,eb4,ab4] ~@3 bb1@2, eb2@2 ~ bb2@2 ~", // Ab
  S: "eb2@5 ~ [db4,eb4,g4] ~@5 [db4,eb4,ab4]@2 ~@4 [db4,eb4,bb4]@2 ~@4, ~@6 f2@5 ~ g2@5 ~ bb2@5 ~", // Eb7 Dbsus2 Eb7
  T: "~@6 [c4,eb4,ab4] ~@11 [c4,eb4,ab4] ~@3 f2@2, ab2@2 ~ eb2@2 ~", // Ab
  U: "~@6 [c4,f4,ab4] ~@11 [c4,f4,ab4] ~@3 ab2@2, f2@2 ~ ab2@2 ~", // Fm
  V: "~@6 [c4,eb4,g4] ~@11 [c4,eb4,g4]@2 ~@4, g2@5 ~ eb2@5 ~", // Cm
  W: "~@6 [db4,f4,ab4] ~@5 ab2@5 ~ [db4,f4,ab4] ~@5, db2@8 ~@10 db2@5 ~", // Db
  X: "~@6 [bb3,eb4,g4] ~@11 [bb3,eb4,g4]@2 ~@4, eb2@4 ~@2 bb2@5 ~", // Eb
  Y: "~@6 [db4,f4,ab4] ~@5 ab2@5 ~ [db4,f4,ab4] ~@5, db2@8 ~@10 ab2@5 ~", Z: "[bb3,eb4,g4] ~@7, eb2@7 ~@17",
  AA: "[bb3,eb4,g4] ~@7, eb2@11 ~", AB: "[ab2,c4,eb4,ab4]/2",
})).s("gm_piano").gain(0.35)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@32 A B C D E F A G A H I D J K L M ~@36 A B N O E F A G A H P O J Q R S T B U V W F X Y W Z AA@2 ~
>`.pickRestart({
  A: "ab2@4 ~@2 eb2@4 ~ ab2", B: "eb2@4 ~ eb2 bb2@5 ~", C: "f2@4 ~@2 c2@4 ~ f2", D: "c2@8 ~@2 c2@2 g2@5 ~ c2@5 ~",
  E: "db2@4 ~@2 ab2@4 ~ db2", F: "eb2@4 ~@2 bb2@5 ~", G: "eb2@2 ~@2 eb2 ~ db2@3 ~@3 c2@3 ~@3 bb1@3 ~@3",
  H: "eb2@8 ~@2 eb2@2 bb2@5 ~ eb2@5 ~", I: "f2@4 ~ f2 c2@4 ~@2", J: "db2@8 ~@2 db2@2 ab2@5 ~ db2@5 ~",
  K: "d2@4 ~ d2 bb2@5 ~", L: "eb2@4 ~ eb2 bb1@4 ~ bb1", M: "eb2 ~@11", N: "f2@8 ~@4 c2@5 ~ ab2@5 ~",
  O: "g2@8 ~@2 g2@2 eb2@5 ~ c2@5 ~", P: "f2@8 ~@2 f2@2 c2@5 ~ ab2@5 ~", Q: "d2@4 ~ d2 ab2@5 ~",
  R: "eb2@4 ~ eb2 bb2@4 ~ bb1", S: "eb2@5 ~ f2@5 ~ g2@5 ~ bb2@5 ~", T: "ab2@4 ~@2 eb2@4 ~ f2",
  U: "f2@4 ~@2 ab2@4 ~ ab2", V: "g2@5 ~ eb2@5 ~", W: "db2@8 ~@4 ab2@5 ~ db2@5 ~", X: "db2@8 ~@4 ab2@5 ~ ab2@5 ~",
  Y: "eb2@7 ~@17", Z: "eb2@11 ~ bb2@11 ~", AA: "ab2/2",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@47 A@8 ~@12 B@7 C D@8 ~@22 E ~@3 F@4>".pickRestart({
  A: "[~@23 [ab4,f5]@24 ~@11 c6@13 [f5,ab5]@24 ~@11 c6@13 ~@23 [c5,eb5,g5]@25 ~@12 c6@13, ~@23 c5@48 c5@48 [db5,f5,ab5]@25 ~@23 [c5,f5,ab5]@25, ~@47 [eb5,g5]@25 ~@23 [eb5,g5]@25 ~@72]/8", // Db Fm Cm Db Fm Eb
  B: "[~@23 [c3,g3,e4]@6 ~ c5@2 ~@4 c6@5 [g4,bb4,g5,bb5]@2 ~@4 [c3,g3,e4]@6 ~ c5@2 ~@4 c6@5 [g4,bb4,g5,bb5]@2 ~@4 [f3,c4,ab4]@6 ~ c5@2 ~@4 bb5@5 [f4,ab4,f5,c6]@2 ~@4 [f3,c4,ab4]@6 ~ c5@2 ~@4 bb5@5 [f4,ab4,f5,c6]@2 ~@4 [eb3,bb3,g4]@6 ~ bb4@2 ~@4 c6@5 [g4,bb4,g5,bb5]@2 ~@4 [eb3,bb3,g4]@6 ~ bb4@2 ~@4 c6@5 [g4,bb4,g5,bb5]@2 ~@4 [ab3,eb4,ab4], ~@29 [g4,e5,g5,c6]@2 ~@4 [ab4,c5,e5,ab5]@7 ~@11 [g4,e5,g5,c6]@2 ~@4 [ab4,c5,e5,ab5]@7 ~@11 [ab4,f5,ab5,c6]@2 ~@4 [g4,bb4,c5,g5]@7 ~@11 [ab4,f5,ab5,c6]@2 ~@4 [g4,bb4,c5,g5]@7 ~@11 [g4,eb5,g5,bb5]@2 ~@4 [ab4,eb5,ab5]@8 ~@10 [g4,eb5,g5,bb5]@2 ~@4 [ab4,c5,eb5,ab5]@7 ~@6, ~@131 c5@6 ~@31]/7", // C Gm C Gm Fm Eb Gm Eb …
  C: "~@6 c5@5 [g4,eb5,g5]@6 c5@4 ~ [c5,e5,g5]@2, ~@5 [ab4,ab5]@7 ~@5 [f4,f5]@7", // Cm C Ab F
  D: "[~@23 [f4,ab4,f5]@24 ~@11 c6@13 ~@35 c6@13 ~@24 c4@23 ~@13 c6@13, ~@23 c5@48 c5@48 ~@23 [c5,eb5,g5]@25 ~ g5@24, ~@47 [g4,eb5,g5]@24 [f4,f5,ab5]@26 ~@22 [db4,db5,f5,ab5]@25 ~@23 [c4,c5,f5,ab5]@25, ~@95 [eb4,eb5,g5]@25 ~@72]/8", // Fm Cm Fm Db Fm Eb
  E: "~@4 [bb3,eb4]@19 ~", F: "[~@23 [ab2,eb3,ab3]@52 ~@21]/4",
})).s("gm_string_ensemble_2").gain(0.39)

// chords · pizzicato strings · "PIZZICATO"
const pizzicato_strings = note(`<
  A B A C D B E F A B A B A B A B D B E F A B A B A B A B D B E F ~@16 A B A C D B E F A B A B A B A B D B E F G@2 H@2
  I@2 J K A B A C D B E F ~@29
>`.pickRestart({
  A: "[f3,f4] ~@5 [c4,f4,ab4,c5,f5,ab5] ~@5 [f3,f4] ~@5 [c4,f4,ab4,c5,f5,ab5] ~@5", // F Fm F Fm
  B: "[c3,c4] ~@5 [c4,eb4,g4,c5,eb5,g5] ~@5 [c3,c4] ~@5 [c4,eb4,g4,c5,eb5,g5] ~@5", // C Cm C Cm
  C: "[c3,c4] ~@5 [c4,eb4,g4,c5,eb5,g5] ~@5 [c3,c4] ~@5 [b2,b3,c4,eb4,g4,c5,eb5,g5] ~@5", // C Cm C Cm
  D: "[bb2,bb3] ~@5 [bb3,db4,ab4,bb4,db5,ab5] ~@5 [bb2,bb3] ~@5 [bb3,db4,ab4,bb4,db5,ab5] ~@5", // Bb Bbm7 Bb Bbm7
  E: "[f3,f4] ~@5 [c4,f4,ab4,c5,f5,ab5] ~@5 [c3,c4] ~@5 [c4,eb4,g4,c5,eb5,g5] ~@5", F: "[f3,c4,f4,ab4,c5,f5,ab5] ~@23",
  G: "[c3,c4] ~@5 [g4,g5] ~@5 [e4,e5] ~@5 [c4,c5] ~@5", H: "[f3,f4] ~@5 [ab4,ab5] ~@5 [f4,f5] ~@5 [c4,c5] ~@5",
  I: "[eb3,eb4] ~@5 [g4,g5] ~@5 [eb4,eb5] ~@5 [bb3,bb4] ~@5", // Eb G Eb Bb
  J: "[ab3,ab4] ~@5 [c4,ab4,c5,ab5] ~@5 [eb4,bb4,eb5,bb5] ~@5 [c4,ab4,c5,ab5] ~@5", // Ab Fm Eb5 Fm
  K: "[c3,c4] ~@5 [e4,c5,e5,c6] ~@5 [e4,c5,e5,c6] ~@11", // C
})).s("gm_pizzicato_strings").gain(0.39)

// bass · tuba
const bass_2 = note(`<
  ~@8 A B A B A B A C D E F G A B A B A B A C D E F G ~@16 A B A H D E F G A B A B A B A C D E F I J K L M N O P Q A B A
  H D E F G ~@29
>`.pickRestart({
  A: "f2@2 ~@10 c2@7 ~@2 f2@2 ~", B: "c2@2 ~@10 c2@7 ~@2 eb2@2 ~", C: "c2@2 ~@10 c2@7 ~@2 b1@2 ~",
  D: "bb1@2 ~@10 f2@7 ~@2 eb2@2 ~", E: "c2@2 ~@10 g2@7 ~@2 eb2@2 ~", F: "f2 ~@5 c2 ~@2 eb2 ~@2", G: "f2 ~@11",
  H: "c2@2 ~@10 c2@5 ~ b1@5 ~", I: "f2 g2 bb1 c2 db2 c2 bb1 b1", J: "c2@2 ~@7 c2@3 g1@2 ~@7 bb1@3",
  K: "c2@2 ~@7 c2@3 g2@5 ~ e2@5 ~", L: "f2@2 ~@7 f2@3 c2@2 ~@7 eb2@3", M: "f2@2 ~@7 f2@3 ab2@5 ~ f2@5 ~",
  N: "eb2@2 ~@7 eb2@3 bb1@2 ~@7 bb1@3", O: "eb2@2 ~@7 eb2@3 g2@5 ~ eb2@5 ~", P: "ab2@2 ~@7 ab2@3 bb2@2 ~@4 ab2@2 ~@4",
  Q: "g2 ~@5 c2 ~@5",
})).s("gm_tuba").gain(0.56)

// other · oboe
const oboe = note("<~@20 A B A C D E@3 F@2 G@2 ~@24 A B A C D E@3 F@2 G@2 H@2 I@2 J K L M ~@37>".pickRestart({
  A: "f5", B: "eb5", C: "g5", D: "ab5@7 bb5", E: "[g5@12 eb5@11 f5@24 eb5@12 c5@12 ~]/3", F: "[db5@23 c5@13 eb5@12]/2",
  G: "[f5@13 ~@11]/2", H: "~@6 g5@2 ~@4 ab5@7 ~@5", I: "~@6 ab5@2 ~@4 g5@7 ~@5", J: "~@6 g5 ~@5 eb5@6 ~@6",
  K: "~@6 g5 ~@5 eb5@7 ~@5", L: "~ ab5 g5 f5", M: "e5 db5 c5@2",
})).s("gm_oboe").gain(0.3).pan(0.3)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@32 A B C D E F A G A B C D E H I J ~@35 K A B C D E F A G A B C D E H I J A B C D E L E M E N O@2 ~
>`.pickRestart({
  A: "[c3,ab3,c4,eb4,ab4,c5]@5 ~ [c3,ab3,c4,eb4,ab4,c5]@3 ~ [c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [ab3,c4,eb4,ab4,c5]@2 [ab3,c4,eb4,ab4,c5]@3 ~ [ab3,c4,eb4,ab4,c5]@2, ~@5 c3@4 c3@3, ~@5 [ab3,c5]@3 ~@4", // Ab
  B: "[bb2,eb3,bb3,eb4,g4,bb4]@5 ~ [bb2,eb3,bb3,eb4,g4,bb4]@3 ~ [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@3 ~ [eb3,bb3,eb4,g4,bb4]@2, ~@5 bb2@4 bb2@3, ~@5 [eb3,bb4]@3 ~@4", // Eb Eb5
  C: "[c3,f3,c4,f4,ab4,c5]@5 ~ [c3,f3,c4,f4,ab4,c5]@3 ~ [c4,f4,ab4]@2 [c4,f4,ab4]@4 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@3 ~ [f3,c4,f4,ab4,c5]@2, ~@5 c3@4 c3@3, ~@5 [f3,c5]@3 ~@4", // Fm F5
  D: "[c3,g3,c4,eb4,g4,c5]@5 ~ [c3,g3,c4,eb4,g4,c5]@3 ~ [c4,eb4,g4]@2 [c4,eb4,g4]@4 [g3,c4,eb4,g4,c5]@2 [g3,c4,eb4,g4,c5]@3 ~ [g3,c4,eb4,g4,c5]@2, ~@5 c3@4 c3@3, ~@5 [g3,c5]@3 ~@4", // Cm C5
  E: "[f3,db4,f4,ab4,c5]@5 ~ [f3,db4,f4,ab4,c5]@3 ~ [db4,f4,ab4]@2 [db4,f4,ab4]@4 [f3,db4,f4,ab4,c5]@2 [f3,db4,f4,ab4,c5]@3 ~ [f3,db4,f4,ab4,c5]@2, ~@5 [f3,c5]@3 ~@4", // Dbmaj7 Db Dbmaj7 F5
  F: "[bb2,eb3,bb3,eb4,ab4,bb4]@5 ~ [bb2,eb3,bb3,eb4,ab4,bb4]@3 ~ [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [eb3,bb3,eb4,g4,c5]@2 [eb3,bb3,eb4,g4,c5]@3 ~ [eb3,bb3,eb4,g4,c5]@2, ~@5 bb2@4 bb2@3, ~@5 [eb3,c5]@3 ~@4", // Ebsus4 Eb Cm7 Cm
  G: "[bb2,eb3,bb3,eb4,g4,c5]@5 ~ [bb2,eb3,bb3,eb4,g4,c5]@3 ~ [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [eb3,bb3,eb4,g4,c5]@2 [eb3,bb3,eb4,g4,c5]@3 ~ [eb3,bb3,eb4,g4,c5]@2, ~@5 bb2@4 bb2@3, ~@5 [eb3,c5]@3 ~@4", // Cm7 Eb Cm7 Cm
  H: "[bb2,f3,ab3,d4,f4,bb4]@5 ~ [bb2,f3,ab3,d4,f4,bb4]@3 ~ [ab3,d4,f4]@2 [ab3,d4,f4]@4 [f3,ab3,d4,f4,bb4]@2 [f3,ab3,d4,f4,bb4]@3 ~ [f3,ab3,d4,f4,bb4]@2, ~@5 bb2@4 bb2@3, ~@5 [f3,bb4]@3 ~@4", // Bb7 Ddim Bb7 Bb5
  I: "[bb2,eb3,bb3,eb4,ab4,c5]@5 ~ [bb2,eb3,bb3,eb4,ab4,c5]@3 ~ [bb3,eb4,ab4]@2 [bb3,eb4,ab4]@4 [eb3,bb3,eb4,ab4,c5]@2 [eb3,bb3,eb4,ab4,c5]@3 ~ [eb3,bb3,eb4,ab4,c5]@2, ~@5 bb2@4 bb2@3, ~@5 [eb3,c5]@3 ~@4", // Ab Ebsus4 Ab Cm
  J: "[bb2,eb3,bb3,eb4,g4,bb4]@5 ~ [bb2,eb3,bb3,db4,g4,bb4]@3 ~ [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,db4,f4,bb4]@4 [eb3,bb3,db4,f4,bb4]@2 [bb2,eb3,bb3,eb4,g4,bb4]@6, ~@5 bb2@4 ~@3", // Eb Eb7 Eb Bbm Eb
  K: "~@6 [c3,f3,c4]@3 ~ [c3,f3,c4]@2 [c3,f3,c4,f4]@4 [c3,f3,c4,f4]@2 [c3,f3,c4,f4,g4]@3 ~ [c3,f3,c4,f4,g4]@2, ~ [f2,f4,g4] [f2,g4] f2", // F5 Csus4 Fsus2
  L: "[bb2,eb3,bb3,eb4,ab4,bb4]@5 ~ [bb2,eb3,bb3,eb4,g4,bb4]@3 ~ [bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]@3 ~ [eb3,bb3,eb4,g4,bb4]@2, ~@5 bb2@4 bb2@3, ~@5 [eb3,bb4]@3 ~@4", // Ebsus4 Eb Eb5
  M: "[eb3,bb3,eb4,ab4]@7 ~@15 [eb3,bb3,eb4,g4,c5]@2, [bb2,bb4]@5 ~@19", N: "[eb3,bb3,eb4,ab4,bb4]@11 ~, bb2",
  O: "[[ab2,eb3,ab3,c4,eb4,ab4]@47 ~]/2", // Ab
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.8)

// other · lead 1 square · "SQUAREWAVE"
const lead_1_square = note("<~@32 A B C D E F@3 A G H D I J K@2 ~@36 A B L D E F@3 A G H D I J K@2 ~@13>".pickRestart({
  A: "ab5", B: "g5@11 eb5@13", C: "f5@11 ab5", D: "g5 eb5", E: "f5", F: "[eb5@11 db5@12 c5@36 ~ eb5@12]/3", G: "g5 bb5",
  H: "ab5@2 g5 f5@8 ab5", I: "f5 ab5", J: "bb5 c6",
  K: "[bb5@9 ab5@2 ~ g5@3 f5@2 eb5@3 db5@3 c5@3 bb4@3 a4@3 bb4@3 ab4@6 bb4@6 ~]/2", L: "f5@3 ab5",
})).s("gm_lead_1_square").gain(0.3).pan(0.4)

// chords · electric guitar clean · "+CHORUS GT"
const electric_guitar_clean = note("<~@37 A ~@9 B ~@41 A ~@9 B C ~ D ~ E ~ E F E G@3 ~>".pickRestart({
  A: "~@3 db4 ~@5 [db4,ab4] ~@2", B: "~@6 ab4 ~@2 db4 ~@2", C: "~@22 f3 ~", D: "~@22 bb3 ~", E: "~@2 eb3 ~@5",
  F: "db4 ~@7", G: "[g3@23 eb3@44 ~@5, db4 ~@23]/3",
})).s("gm_electric_guitar_clean").gain(0.42).pan(0.7)

// other · timpani
const timpani = note("<~@54 [~@18 eb2@5 ~] [f2@3 ~] ~@19 [c3@3 ~] ~@37>").s("gm_timpani").gain(0.56)

// chords · pad sweep · "SWEEP PAD"
const pad_sweep = note("<~@19 A@3 B@6 C@4 ~@23 D@3 E@6 F@4 ~@45>".pickRestart({
  A: "[~@24 [c5,f5]@23 ~ eb5@23 ab4, ~@23 ab4@24 [g4,c5]@24 ~]/3", // F5 C5
  B: "[[c5,f5]@23 ~ eb5@23 ~ [f5,c6]@23 ~@12 f6@12 ~ [f5,c6]@23 ~ eb5@23 ab4, ~@23 [g4,bb4]@24 [c5,ab5]@24 [bb4,g5,bb5]@24 [ab4,c5]@25 ~@24, ~@72 eb5@24 ~@23 [g4,bb4,bb5]@25]/6", // F5 Gm Fm Eb Ab Gm
  C: "[[db5,f5]@23 [g4,c5,eb5]@24 [f4,c5,f5]@26 ~@23, bb4 ~]/4", // Db Cm F5
  D: "[~@24 [f4,c5,f5]@23 ~ eb5@23 ab5, ~@23 ab4@24 [g4,c5,g5]@24 ~]/3", // F5 C5
  E: "[[ab4,c5,f5]@23 ~ eb5@23 ~ f5@23 ~@12 bb5@12 ~ f5@23 ~@11 g5@13 ab4, ~@23 [bb4,g5,c6]@24 [c5,ab5]@24 [c5,g5]@24 [ab4,c5]@25 eb5@24, ~@4 c6@3 ~ c6@3 ~, ~@72 eb5@24 ~@23 [g4,bb4]@25]/6", // Fm C7 Fm C5 Ab Gm
  F: "[[db5,f5]@23 ~@12 g5@12 [f4,c5,f5]@26 ~@23, bb4 ~, ~@23 [g4,c5,eb5]@24 ~@49]/4", // Db F5 Cm
})).s("gm_pad_sweep").gain(0.32)

// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note("<~@84 A B C D E F A F A G H D I J K L M B N O P F P Q P R S@2 ~>".pickRestart({
  A: "ab2@6 eb2@5 ab2", B: "eb2@5 eb2 bb2@6", C: "f2@2 c2 ab2", D: "g2@5 g2 eb2@3 c2@3", E: "db2@6 ab2@5 db2",
  F: "eb2 bb2", G: "eb2@5 eb2 bb2@3 eb2@3", H: "f2@5 f2 c2@3 ab2@3", I: "db2@5 db2 ab2@3 db2@3", J: "d2@5 d2 ab2@6",
  K: "eb2@5 eb2 bb2@5 bb1", L: "eb2 f2 g2 bb2", M: "ab2@6 eb2@5 f2", N: "f2@6 ab2@5 ab2", O: "g2 eb2",
  P: "db2@2 ab2 db2", Q: "eb2 ~@3", R: "eb2", S: "ab1/2",
})).s("gm_synth_brass_1").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@32 A B A@12 B C A B A B A B D E A@7 B A@3 E A B A@4 F E A B A B A B A E A B A@12 B C A B A@5 E A E ~@3
>`.pickRestart({
  A: "x!2", B: "x ~@5 x ~@4 x", C: "x ~@2 x!2 ~", D: "x ~ x!2", E: "x", F: "x ~@4 x!2 ~@5",
})).gain(0.48)

// drums · clap
const clap = s("cp").struct("<~@32 A@15 ~ A@7 B A@11 ~ A@7 ~ A@7 B A@15 C A@7 B A B ~@3>".pickRestart({
  A: "~ x ~ x", B: "x", C: "~ x ~@2",
})).gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@39 A ~@7 B ~@23 A ~@19 A ~@7 C ~@13>".pickRestart({
  A: "~@8 x ~@2 x", B: "~@3 x", C: "~@9 x!3",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~@48 A B@6 ~ A B@10 C D E@5 ~ C B@6 F ~@30>".pickRestart({
  A: "~ x!3", B: "x!4", C: "x", D: "~ x", E: "x!2", F: "x!2 ~@2",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@68 A@6 B ~@7 C ~@16 D ~@5 A ~@7>".pickRestart({
  A: "~ x ~ x", B: "x!4", C: "~@2 x!2", D: "~ x ~@2",
})).gain(0.56)

// drums · crash
const crash = s("cr").struct(`<
  ~@7 A ~@24 B ~@6 C ~@7 B@2 ~@6 B@2 ~@11 B ~@14 B@2 ~@6 C ~@7 D B ~@3 B@3 ~ B ~@4
>`.pickRestart({
  A: "~ x", B: "x", C: "~@3 x", D: "x!2",
})).gain(0.48)

// drums · ride
const ride = s("rd").struct("<~@32 A B@6 C B@7 ~@37 A B@6 C B@7 ~ A B@3 A D A E A E ~@3>".pickRestart({
  A: "~ x!3", B: "x!4", C: "x!3 ~", D: "~ x", E: "x",
})).gain(0.56)

// drums · tambourine
const tambourine = s("tb").struct("<~@83 A@2 B A B A B A B A B A B A B A B A B A B A B A C A D@2 E ~>".pickRestart({
  A: "x ~ x!2 ~@2 x ~ x!2 ~ x", B: "x ~ x!2 ~ x!2 ~ x!2 ~ x", C: "x", D: "x!24", E: "x!7 ~@17",
})).gain(0.16)

// … 11 more lines

More by Fool's Garden