Strudelify

Arrivederci Claire

Borg Andy

KeyE♭ majorTempo110 bpm
0:00/0:00
// Arrivederci Claire — Borg Andy
// 110 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 90 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D E F G D E B C D E F G D H I J K L M N O P Q C D E F G D E R C D E F G D S T J K U F V W P Q C D X F G D E R C
  D E F G D S Y J K Z AA N O AB Q C D E F G D E B C D E F G D S AC
>`.pickRestart({
  A: "~@2 eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ eb2 ~ eb2 ~ eb3 ~ eb2@2 ~@2, ~@2 g1 ~@21", B: "eb2 ~ eb2@2 ~@2 eb2@2 ~@16",
  C: "~@2 bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~",
  D: "bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~",
  E: "bb2 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ eb2 ~ eb2 ~ eb3 ~ eb2@2 ~@2",
  F: "eb2 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ eb2 ~ eb2 ~ eb3 ~ eb2@2 ~@2",
  G: "eb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~",
  H: "bb2 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ eb2 ~ ab1 ~ ab2 ~ ab1@2 ~@2",
  I: "ab1 ~ g1@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ eb2 ~ eb2 ~ eb3 ~ eb2 ~ eb2 ~",
  J: "eb3 ~ ab1@2 ~@2 ab1 ~ ab1@2 ~@2 ab1 ~ ab1 ~ ab1 ~ ab2 ~ ab1@2 ~@2",
  K: "ab1 ~ ab1@2 ~@2 ab1 ~ ab1@2 ~@2 ab1 ~ ab1 ~ ab1 ~ ab2 ~ ab1@2 ~@2",
  L: "ab1 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 db2 ~ db2 ~ db2 ~ db3 ~ db2@2 ~@2",
  M: "db2 ~ [c2,eb2] ~@3 c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2 ~ c3 ~ c2 ~ c2 ~", // Cm
  N: "c3 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~ f2 ~ f2 ~ f3 ~ f2@2 ~@2",
  O: "f2 ~ f2 ~ f2 ~ f3 ~ f2 ~ f2 ~ f3 ~ f2 ~ f2 ~ f3 ~ f2 ~ f2 ~",
  P: "f3 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~", Q: "bb2 ~ bb1@2 ~@2 bb1@3 ~@15",
  R: "eb2 ~ eb2@2 ~@2 eb2@3 ~@15", S: "bb2 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ ab1 ~ ab1 ~ ab2 ~ ab1@2 ~@2",
  T: "ab1 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb3 ~ eb2 ~ eb2 ~ eb3 ~ eb2 ~ eb2 ~",
  U: "ab1 ~ g1@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ eb2 ~ eb2 ~ eb3 ~ eb2@2 ~@2",
  V: "eb2 ~ bb1@2 ~@2 bb1 ~ bb1@2 ~@2 bb1 ~ bb1 ~ bb1 ~ bb2 ~ bb1@2 ~@2",
  W: "bb1 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~ f2 ~ f2 ~ f3 ~ f2 ~ f2 ~",
  X: "bb2 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ eb2 ~ eb2 ~ eb3 ~ eb2@2 ~@2, ~@2 bb1 ~@21",
  Y: "ab1 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 eb2 ~ eb2 ~ eb2 ~ eb3 ~ eb2 ~ eb2 ~",
  Z: "eb2 ~ eb2@2 ~@2 eb2 ~ eb2@2 ~@2 db2 ~ db2 ~ db2 ~ db3 ~ db2@2 ~@2",
  AA: "e2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2 ~ c3 ~ c2 ~ c2 ~",
  AB: "f3 ~ f2@2 ~@2 bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~ bb2 ~ bb1 ~ bb1 ~", AC: "ab1 ~@23",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · synth strings 1 · "SYN STRING"
const synth_strings_1 = note(`<
  ~@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E F G@3 H I J K@2 L@8 A@2 M@2 C N O P@5 Q R C S T@4 U C V@2 W@4 C X Y@2 Z@2 AA@4 AB AC
  AD@2 AE@3 AF@2 AG AH@6 ~@2
>`.pickRestart({
  A: "[~ [ab4,bb4,d5]@23]/2", B: "[~@2 [g4,bb4,eb5]@45 ~]/2", C: "~ [ab4,bb4,d5]@11",
  D: "[~ [g4,bb4,eb5]@17 ~ eb5@5, ~@37 [g4,bb4]@10 ~]/2", E: "~ [g4,bb4,eb5]@6 [ab4,c5,eb5]@5",
  F: "~@2 [g4,bb4]@8 ~@3 [g4,bb4,db5,eb5]@11, ~ eb5@11 ~@12, ~@2 a4 ~@21", // Gm Eb7
  G: "[~@2 c5@46 ~@2 g4@10 [db4,e4,g4]@11 ~, ~ eb5@55 ~@16, ~ ab4@46 ~@2 bb4@10 ~@13]/3", // Dbdim
  H: "~@2 g4@11 ~ [e4,g4,bb4]@10, ~ c4@11, ~@2 eb4@9 ~@3 b4@2 ~@8", I: "~ [f4,a4,c5]@11",
  J: "~ eb5@10 ~, ~ [f4,a4,c5]@21 ~@2", K: "[~@2 [ab4,bb4,d5]@35 ~@11, ~ f4@35 ~@12]/2",
  L: "[~@2 d5@47 ~ [g4,eb5]@46 ~ [ab4,d5]@47 ~@2 [g4,eb5]@45 ~, ~ ab4@47 ~@144, ~@2 bb4@95 bb4@94 ~]/8", // Cm Abdim Cm
  M: "[~ [g4,bb4,eb5]@23]/2", N: "~ [ab4,d5]@11, ~ bb4@23", O: "~@2 [g4,bb4]@10 ~ c5@11, ~ eb5@11, ~@13 ab4@9 ~@2",
  P: "[~ [g4,bb4,eb5]@9 ~ [g4,bb4,db5]@14 ~ [ab4,c5]@47 ~ bb4@45 ~, ~@11 eb5@108 ~, ~@73 g4@45 ~@2, ~@37 a4 ~@22]/5", // Eb Gdim Ab
  Q: "~ [bb4,d5]@11, ~ f4@23", R: "~@7 eb5@4 ~, ~ [f4,a4]@23, ~ c5@11", S: "~ [f4,ab4,bb4,d5]@6 ~@5",
  T: "[~ [ab4,bb4,d5]@36 ~ [f4,ab4,bb4,d5]@12 [g4,bb4,eb5]@45 ~]/4", U: "~ [ab4,bb4,d5]@23",
  V: "[~ [g4,bb4,eb5]@33 ~@6 [g4,bb4,eb5]@8]/2", W: "[~ [bb4,d5]@24 [g4,bb4,eb5]@23, ~ ab4@23 ~@24]/4",
  X: "~ d5@11, ~ [ab4,bb4]@23", // Absus2
  Y: "[~@2 [g4,bb4]@10 ~@2 [ab4,c5]@10 ~ bb4@7 ~@2 bb4@2 ~ [g4,bb4,db5,eb5]@11, ~ eb5@17 ~@6, ~@25 g4@4 ~@19]/2", // Gm Ab Eb7
  Z: "[~ c5@22 ~, ~ eb5@47, ~ ab4@44 ~@3]/2",
  AA: "[~ [bb4,eb5]@10 db4@10 ~@17 bb4@10 ~@2 c5@23 ~ [f4,c5,eb5]@22, ~ g4@24 ~ [c4,g4]@23 ~ a4@45 ~, ~@11 e4@38 f4@24 ~@23]/4", // Eb5 F7 C5
  AB: "~ [f4,ab4,bb4,d5]@11, ~@2 b4 ~@21", AC: "~ [ab4,bb4,d5]@11 ~@12",
  AD: "[~ [ab4,bb4,d5]@35 ~ [f4,ab4,bb4,d5]@11]/2", AE: "[~@2 [g4,bb4,eb5]@47 ~ d5@22, ~@49 [ab4,bb4]@23]/3",
  AF: "[~@13 f4@11 ~ [g4,eb5]@23, ~ bb4@23, ~@2 [ab4,d5]@23 ~@23]/2", AG: "~ [g4,bb4,eb5]@6 ~@2 [g4,bb4,eb5]@3",
  AH: "[~@2 [ab4,d5]@47 ~ [g4,eb5]@46 ~ [ab4,bb4,d5]@25 ~@22, ~@2 bb4@95 ~@47]/6", // Abdim Cm Bb7
})).s("gm_synth_strings_1").gain(0.2).pan(0.7)

// chords · pizzicato strings · "PIZZICATO"
const pizzicato_strings = note(`<
  A B C D E B F D E G H D E B F D I J K L M N O P Q R S D T B C D E G S D E B U D V W X L Y B Z AA AB AC S D AD B AE D E
  G AF D E B F D AG AH AI AJ AK AL AM AN AO AP S D E B F D E AQ S D E B AR D AS AT
>`.pickRestart({
  A: "~@2 [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~", // Eb
  B: "[eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~", // Eb
  C: "[eb4,g4,bb4] ~ [bb3,b3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Eb Bb
  D: "[bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Bb
  E: "[bb3,d4,f4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~", // Bb Eb
  F: "[eb4,g4,bb4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Eb Bb
  G: "[eb4,g4,bb4] ~ [eb4,g4,bb4] ~@21", // Eb
  H: "~@3 [d4,f4] [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Dm Bb
  I: "[bb3,d4,f4] ~ [eb4,g4,a4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~", // Bb Eb Ab
  J: "[c4,eb4,ab4] ~ [eb4,g4,ab4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~", // Ab Eb Eb7
  K: "[db4,eb4,g4] ~ [bb3,c4,db4,eb4,e4,ab4] ~ [ab3,c4,eb4,ab4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Eb7 Bbm7b5 Ab
  L: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Ab
  M: "[ab3,c4,eb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [db4,e4,g4] ~ [db4,e4,g4] ~ [db4,e4,g4] ~ [db4,e4,g4] ~ [db4,e4,g4] ~", // Ab Eb Dbdim
  N: "[c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // C
  O: "[c4,e4,g4] ~ [f4,a4,c5]!2 ~@2 [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // C F
  P: "[f4,a4,c5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~", // F F7 F F7 F F7
  Q: "[f4,a4,c5,eb5] ~ [bb3,d4,e4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // F7 Bb
  R: "[bb3,d4,f4] ~ [bb3,d4,e4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~@11", // Bb
  S: "~@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Bb
  T: "[d4,f4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~", // Dm Eb
  U: "[eb4,g4,bb4] ~ [bb3,db4,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Eb Bb
  V: "[bb3,d4,f4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~", // Bb Eb Ab
  W: "[c4,eb4,ab4] ~ [eb4,f4,g4,a4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~", // Ab Eb Eb7
  X: "[db4,eb4,bb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Eb7 Ab
  Y: "[ab3,c4,eb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~", // Ab Eb
  Z: "[eb4,g4,bb4] ~ [f4,bb4,db5] ~ [f4,a4,bb4] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] d5 [f4,bb4] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~", // Eb Bbm Bbmaj7 Bb Bb5 Bb
  AA: "[f4,bb4,d5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // Bb F
  AB: "[f4,a4,c5] ~ [f4,bb4,d5] ~ [f4,a4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5]!2", // F Bb Bbmaj7 Bb
  AC: "~@2 [bb3,b3,d4,f4] ~ [b3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~@9", // Bb Bdim Bb
  AD: "[bb3,d4,f4] ~ [eb4,g4,a4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,ab4,bb4] ~ [eb4,g4,bb4] ~", // Bb Eb
  AE: "[eb4,f4,g4,bb4] ~ [bb3,d4,eb4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Eb Bb
  AF: "~@2 [bb3,db4,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Bb
  AG: "[d4,f4] ~ [eb4,g4,a4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~", // Dm Eb Ab
  AH: "[c4,eb4,ab4] ~ [eb4,f4,g4,ab4,a4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~ [db4,eb4,g4,bb4] ~", // Ab Eb Eb7
  AI: "[db4,eb4,g4,bb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Eb7 Ab
  AJ: "[ab3,c4,d4,eb4] ~ [ab3,c4,d4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,d4,eb4] [ab3,c4,eb4] ~ eb4 [ab3,c4] ~ [ab3,c4,d4,eb4] ~ [ab3,c4,eb4] ~", // Ab
  AK: "[c4,eb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,ab4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [db4,e4,g4] ~ [db4,e4,g4] ~ [db4,e4,g4] ~ [db4,e4,g4] ~ [db4,e4,g4] ~", // Cm Eb Dbdim
  AL: "[db4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // Dbdim C
  AM: "[c4,e4,g4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,g4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~", // C F
  AN: "[c4,f4,a4] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~ [f4,a4,c5,eb5] ~", // F F7 F F7
  AO: "[f4,a4,c5,eb5] ~ [db4,e4,f4,a4,bb4] ~ [f4,g4,a4] ~ a4 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // F7 A F Bb
  AP: "[bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~@9", // Bb
  AQ: "[eb4,g4,bb4] ~ [eb4,g4,a4,bb4] ~@19 f4 ~", // Eb
  AR: "[eb4,f4,g4,bb4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~", // Eb Bb
  AS: "[bb3,d4,f4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] ~ [eb4,g4,bb4] g4 [eb4,bb4] ~ [c4,eb4,ab4]!2 ~@2 [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~", // Bb Eb Eb5 Ab
  AT: "[c4,eb4,ab4] ~ [eb4,g4,bb4]@9 ~@13, ~@2 [ab4,a4] ~@21", // Ab Eb Amaj7
})).s("gm_pizzicato_strings").gain(0.15).pan(0.2)

// drums · kick
const kick = s("bd").struct("<A B C@7 B C@15 B C@7 B C@15 B C@7 B C@15 B C@7 B C@7 D>".pickRestart({
  A: "~ x ~@4 x!2 ~@4", B: "x!4 ~@2 x ~@2 x ~@2", C: "x!2 ~@4 x!2 ~@4", D: "x!5 ~@7",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct(`<
  A B C A@6 B C A@14 B C A@6 B C A@14 B C A@6 B C A@14 B C A@6 B C A@4 D E F
>`.pickRestart({
  A: "~@2 x ~@2 x", B: "~@3 x ~@7 x", C: "x ~ x ~@2 x", D: "~ x!2 ~ x!2 ~@4 x ~", E: "~ x!2 ~ x!2 ~@2 x ~ x ~",
  F: "~ x!4 ~@7",
})).gain(0.5)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~ A ~ B ~ B ~ B ~ A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ A ~ B ~ B ~ B ~ A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ A ~ B ~ B ~ B ~ A ~
  B ~ B ~ B ~ B ~ B ~ B ~ B ~ A ~ B ~ B ~ B ~ A ~ B ~ B ~@4
>`.pickRestart({
  A: "~ x ~@3 x", B: "~@2 x",
})).gain(0.2)

// drums · clap
const clap = s("cp").struct("<A ~ A@7 ~ A@15 ~ A@7 ~ A@15 ~ A@7 ~ A@15 ~ A@7 ~ A@6 ~@2>".pickRestart({
  A: "~@5 x",
})).gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~ A ~@7 A ~@15 A ~@7 A ~@15 A ~@7 A ~@15 A ~@7 A ~@7 B>".pickRestart({
  A: "~@10 x!2", B: "~ x ~",
})).gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<A B A C@6 B A C@14 B A C@6 B A C@14 B A C@6 B A C@14 B A C@6 B A C@6 D>".pickRestart({
  A: "~ x!5 ~ x!5", B: "x!5 ~@7", C: "x!6 ~ x!5", D: "x!2 ~",
})).gain(0.3)

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

// drums · open hat
const open_hat = s("oh").struct("<A ~ A@7 ~ A@15 ~ A@7 ~ A@15 ~ A@7 ~ A@15 ~ A@7 ~ A@7 B>".pickRestart({
  A: "~ x", B: "~ x ~@2",
})).gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~ A ~@7 A ~@15 A ~@7 A ~@15 A ~@7 A ~@15 A ~@7 A ~@7 B>".pickRestart({
  A: "~@4 x!2 ~@6", B: "~ x!2 ~@9",
})).gain(0.5)

// drums · crash
const crash = s("cr").struct("<~@2 A ~@7 A ~@15 A ~@7 A ~@15 A ~@7 A ~@15 A ~@7 A ~@7>".pickRestart({
  A: "x",
})).gain(0.5)

stack(
  bass, synth_strings_1, pizzicato_strings, kick, snare, snare_soft, clap, low_tom, hihat, mid_tom, open_hat, high_tom,
  crash
)

More by Borg Andy