Strudelify
Adios amor cover art

Ich find Schlager toll - Das Beste

Adios amor

Borg Andy

KeyF♯ majorTempo114 bpm
0:00/0:00
// Adios amor — Borg Andy
// 114 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 97 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/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 · "FINGERDBA"
const bass = note(`<
  ~ A@2 B@4 A C D E F G H I J K J L F G F I J M N O P Q F R S M T U V W X Y Z AA AB AC AD AE AF AG S AH AI R AJ AK A AL
  B@3 AM A AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW
  BX
>`.pickRestart({
  A: "f#1@4 f#2 ~ f#2@2 f#1 ~ f#1@2 f#2 ~ f#2@2", B: "c#2@4 c#3 ~ c#3@2 c#2 ~ c#2@2 c#3 ~ c#3@2", C: "f#1 ~@7",
  D: "f#1@4 ~@2 f#1 ~ f#1@4 c#2@4", E: "f#2@2 ~ f#2 f2@2 d#2@2", F: "c#2@5 ~ c#2 ~ c#2@4 g#1@4",
  G: "c#2@4 ~@2 c#2 ~ c#2@4 c#3@4", H: "c#2@4 ~@2 c#2 ~ c#2@4 g#1@4", I: "b1@5 ~ b1@2 c#2@4 f2@4",
  J: "f#2@4 ~@2 f#2 ~ f#2@4 c#2@4", K: "f#2@5 ~ f#2@2 g#2@2 c#3@2 g#2@2 g#2@2", L: "f#1@5 ~ f#1@2 c#2@4 f#2@4",
  M: "f#1!2 g#1 a#1", N: "b1@3 b1 e2@2 e2@2", O: "b1@3 b1 b2@2 b1@2", P: "f#2@6 f#1!2 f#2@4 f#1@4",
  Q: "f#2@3 f#1 f#2@2 f2@2", R: "b1 ~ b1@2 b2 ~ b2@2 c#2 ~ c#2@2 c#3 ~ c#3@2", S: "f#2@5 ~ f#2 ~ f#2@4 c#2@4",
  T: "b1@5 ~ b2 ~ b2 ~ b2@2 f#2@2 f#2@2", U: "b1@3 b1 f#2@2 b1@2", V: "f#2@6 f#2@2 f#1 ~ f#1@2 f#2 ~ f#2@2",
  W: "f#1@5 ~ f#1@2 f#2@4 f2@4", X: "c#2@6 c#3@2 c#2 ~ c#2@2 c#3 ~ c#3@2", Y: "b1@4 b2 ~ b2@2 c#2@4 c#3 ~ c#3@2",
  Z: "f#1@2 f#1@3 ~ f#1@2 c#2@2 c#2@3 ~ f#1@2", AA: "f#1@3 f#1 a#1@2 c#2 a#1", AB: "c#2@5 ~ c#2 ~ c#2@6 c#2@2",
  AC: "b1@5 ~ b1@2 c#2@5 ~ c#2@2", AD: "f#1@5 ~ f#1 ~ f#1@4 a#1@2 c#2@2", AE: "f#1@2 f#1@2 f#1 ~ f#1@2 g#1@4 a#1@4",
  AF: "b1@5 ~ b1@2 f#2@2 b1@3 ~ b1 ~", AG: "b1@3 b1 f#2 b1 f#2 b1", AH: "f#2@6 f#2@2 c#2 ~ c#2@2 f#2@2 f#2@2",
  AI: "c#2 ~ c#2@2 c#3 ~ c#3@2 c#2 ~ c#2@2 c#3 ~ c#3@2", AJ: "f#1@5 ~ f#2@2 a#1@2 b1@2 c#2@4", AK: "f#2@3 ~@13",
  AL: "f#1@4 f#2 ~ f#2@2 f#1 ~ f#1@2 b1@2 c2@2", AM: "c#2@4 c#3 ~ c#3@2 g#1@2 a#1@2 b1@2 c#2@2",
  AN: "f#1@3 ~ c#2@2 f#1@2 c#2@2 c#2@2 a#1@2 g#1@2", AO: "f#1@3 ~ f#2@2 f#2@3 ~ f#2@3 ~ f#2@2",
  AP: "f#1@4 f#2@2 f#2@3 ~ f#2@3 ~ f#2@2", AQ: "c#2@4 c#3@2 c#3@3 ~ c#3@4 c#3@2",
  AR: "c#2@4 c#3 ~ c#3@2 ~@2 a#1@2 b1@2 c2@2", AS: "c#2@3 ~ c#3@2 c#2@4 c#3@2 c#2@2 c#3@2",
  AT: "c#2@4 c#3@2 c#2@4 c#3@2 c#2@3 ~", AU: "f#1@4 f#2@2 f#1@2 ~@2 f#1@2 f#2 ~ f#2@2",
  AV: "f#1@4 a#1 ~ a#1@2 g#1 ~ g#1@2 a#1 ~ a#1@2", AW: "b1@5 ~ b1@2 f#1 ~ f#1@2 b1@2 f#1@2",
  AX: "b1@5 ~ d#2@2 b1@4 c#2@4", AY: "f#2@5 ~ f#2 ~ f#2@2 f#1@3 ~ f#1!2", AZ: "f#2@5 ~ f#2 ~ f#2@4 f2@4",
  BA: "c#2@5 ~ g#2!2 c#2@2 c#2@4 g#2@2", BB: "b1 ~ b1@2 b2@2 b1@2 c#2 ~ c#2@2 c#3@2 c#2@2",
  BC: "f#2@5 ~ f#2 ~ f#2@2 c#2@3 ~ c#2@2", BD: "f#1@4 f#1@4 g#1@4 a#1@3 ~", BE: "b1@6 f#2@2 b1 ~ b1@4 f#2@2",
  BF: "b1@5 ~ f#2@2 b1@4 c#2@4", BG: "f#2@5 ~ f#2 ~ f#2@2 f#1@2 ~@2 f#1@2", BH: "f#2 ~ f#2@2 f#1@3 ~ f#2@4 f2@4",
  BI: "c#2@5 ~ c#3@2 c#2 ~ c#2@2 c#3@2 c#2@2", BJ: "b1 ~ b1@2 b2@4 c#2 ~ c#2@2 c#3@2 c#2@2",
  BK: "f#1@5 ~ c#2@2 c#2@2 c#2@2 ~@2 c#2@2", BL: "f#1@2 c#2@2 f#2@2 a#1 b1",
  BM: "c#2 ~ c#2@2 c#3 ~ c#3@2 c#2 ~ c#2@2 c#3@4", BN: "b1 ~ b1@2 b2 ~ b2@2 c#2 ~ c#2@2 c#3@4",
  BO: "f#1@5 ~ c#2@2 c#2@2 c#2@3 ~ c#2@2", BP: "f#1!4 g#1!2 a#1@2", BQ: "b1@6 f#2@2 b2 ~ b2@4 f#2@2",
  BR: "b1@3 f#2 b1@2 c#2@2", BS: "f#2@6 f#1!2 f#2@2 f#1@3 ~ f#1@2", BT: "f#2@5 ~ f#1@2 f#2@4 f2@4",
  BU: "c#2 ~ c#2@2 c#3@2 c#3@2 c#2 ~ c#2@2 c#3@2 c#2@2", BV: "b1 ~ b1@2 b2@2 b1@2 c#2 ~ c#2@2 c#3@2 c#3@2",
  BW: "f#1 ~ f#1@2 f#2@2 f#1@2 f#2 ~ f#2@2 f#1@2 f#2@2", BX: "f#1@7 ~@9",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~ A@2 B@4 C ~ A@2 D@2 E F A@4 D@2 E F A@2 G@2 A@2 E F A@2 G@2 A@2 E F A@2 E F A@2 G@2 A@2 E F C ~ A@2 D@4 H@4 B@4 A@2
  G@2 A@2 E F A@2 G@2 A@2 E F A@2 E F A@2 G@2 A@2 E F I@2
>`.pickRestart({
  A: "[f#3,a#3,c#4]/2", B: "[f3,g#3,c#4]/4", C: "[f#3,a#3,c#4]", D: "[f3,g#3,c#4]/2", E: "[f3,g#3,c#4]",
  F: "[d#3,f#3,b3] [f3,g#3,c#4]", G: "[d#3,f#3,b3]/2", H: "[f#3,a#3,c#4]/4", I: "[[f#3,a#3,c#4]@25 ~@7]/2",
})).s("gm_synth_strings_1").gain(0.14)

// other · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
  ~ A B C D C E A ~ F G H I J K F G F L H I J M F G N O F G P Q F G N O F G P R F G P Q F G N O S T P Q F ~ A B C D C E
  U V A B C D C E A@2 N O F G P Q F G N O F G P R F G P Q F G N O S T P Q F ~
>`.pickRestart({
  A: "c#5 ~@3 a#4 ~ a#4 ~ c#5 ~@3 a#4 ~ c#5 ~", B: "~@2 a#4 ~@3 c#5 ~@3 a#4 ~@3 c#5 ~",
  C: "f5 ~@3 c#5 ~ c#5 ~ f5 ~@3 c#5 ~ f5 ~", D: "~@2 c#5 ~@3 f5 ~@3 c#5 ~@3 c#5 ~",
  E: "~@2 c#5 ~@3 f5 ~@3 c#5 ~@3 a#4 ~", F: "c#5 ~@3 c#5 ~ a#4 ~ c#5 ~@3 a#4 ~ c#5 ~",
  G: "~@2 a#4 ~@3 c#5 ~@3 a#4 ~ c#5 ~ a#4 ~", H: "f5 ~@3 f5 ~ c#5 ~ f5 ~@3 c#5 ~ f5 ~",
  I: "~@2 c#5 ~@3 f5 ~@3 c#5 ~ f5 ~ c#5 ~", J: "f5 ~@3 f5 ~ c#5 ~ f5 ~@3 c#5 ~ d#5 ~",
  K: "~@2 b4@2 ~@2 d#5 ~@3 b4 ~ c#5 ~ b4 ~", L: "~@2 a#4 ~@3 c#5 ~@3 a#4 ~ c#5 ~ c#5 ~",
  M: "~@2 b4 ~@3 d#5 ~@3 b4 ~ c#5 ~ b4 ~", N: "d#5 ~@3 d#5 ~ b4 ~ d#5 ~@3 b4 ~ d#5 ~",
  O: "~@2 b4 ~@3 d#5 ~@3 b4 ~ d#5 ~ b4 ~", P: "c#5 ~@3 c#5 ~ g#4 ~ c#5 ~@3 g#4 ~ b4 ~",
  Q: "~@2 d#5 ~@3 c#5 ~@3 g#4 ~ c#5 ~ g#4 ~", R: "~@2 d#5 ~@3 c#5 ~@3 g#4 ~ c#5 ~ a#4 ~",
  S: "c#5 ~@3 c#5 ~ a#4 ~ c#5 ~@3 c#5 ~ c#5 ~", T: "~@2 c#5 ~@3 c#5 ~@3 a#4 ~ c#5 ~ a#4 ~",
  U: "c#5 ~@3 a#4 ~ a#4 ~ c#5 ~@3 a#4 ~ c#5@2", V: "~@4 a#4 ~ a#4 ~ c#5 ~@3 a#4 ~ c#5 ~",
})).s("gm_drawbar_organ").gain(0.24).pan(0.2)

// chords · steel drums · "STEELDRUM"
const steel_drums = note("<~@40 A@2 B C ~@40 A@2 B C ~@9>".pickRestart({
  A: "[~@6 [a#4,c#5]@2 [d#5,f#5]@4 [c#5,f5]@2 ~@2 g#5@2 [c#5,f5]@2 [a#4,c#5]@2 [g#4,b4]@7 ~ [g#4,b4] [a#4,c#5], ~@7 c#5 ~@8, ~@15 f5@2 ~@15]/2", // A#m D#m C# A#m G#m A#m
  B: "[b4,d#5]@3 [b4,d#5]@2 ~ [b4,d#5]@2 [b4,d#5]@3 [b4,d#5]@2 ~ [b4,d#5]@2", // B
  C: "[b4,d#5] [a#4,c#5] [g#4,b4] [f#4,a#4]@5", // B A#m G#m F#
})).s("gm_steel_drums").gain(0.25).pan(0.4)

// chords · pad new age · "FANTASIA"
const pad_new_age = note(`<
  ~ A@2 B@3 C@2 ~@16 D E F G H I J K D E F L@2 I J M N O J M P E F L@2 I J M ~ A@2 B@3 C@2 A@3 B@3 C@2 D E F G H I J K D
  E F L@2 I J M N O J M P E F L@2 I J Q R
>`.pickRestart({
  A: "~@2 d#6 c#6@5", B: "~@2 c#6 b5@5", C: "[~@2 c#6 b5@6 ~ d#6 c#6@5]/2", D: "~ [f#4,a#4] [g#4,b4] [a#4,c#5]",
  E: "[b4,d#5] [a#4,c#5] [g#4,b4] [b4,d#5]@5", F: "~@4 [b4,d#5]@2 [c#5,f5]@2 [d#5,f#5]@3 [c#5,f5]@3 [b4,d#5]@2",
  G: "[d#5,f#5] [a#4,c#5] [b4,d#5] [a#4,c#5]@5", H: "~@3 [a#4,c#5] [d#5,f#5]@2 [c#5,f5]@2",
  I: "[f5,g#5]@2 [c#5,f5]@2 [a#4,c#5]@2 [g#4,b4]@7 ~ [g#4,b4] [a#4,c#5]", // Fm C# A#m G#m A#m
  J: "[b4,d#5]@3 [b4,d#5]@2 ~ [b4,d#5]@2 [b4,d#5]@3 [b4,d#5]@2 ~ [b4,d#5]@2", // B
  K: "[b4,d#5] [a#4,c#5] [g#4,b4] [a#4,c#5]@5", // B A#m G#m A#m
  L: "[[d#5,f#5]@2 [a#4,c#5]@2 [b4,d#5]@2 [a#4,c#5]@15 ~ [a#4,c#5]@2 [d#5,f#5]@4 [c#5,f5]@4]/2", // D#m A#m B A#m D#m C#
  M: "[b4,d#5] [a#4,c#5] [g#4,b4] [f#4,a#4]@5", N: "~@6 [a#4,c#5]@2 [d#5,f#5]@4 [c#5,f5]@2 c#5 f5",
  O: "g#5@2 [c#5,f5]@2 [a#4,c#5]@2 [g#4,b4]@7 ~ [g#4,b4] [a#4,c#5]", P: "~@4 [f#4,a#4]@3 ~ [g#4,b4]@4 [a#4,c#5]@4",
  Q: "[b4,d#5]@2 [a#4,c#5]@2 [g#4,b4]@2 [g#4,b4] [a#4,c#5] [b4,d#5]@2 [a#4,c#5]@2 [g#4,b4]@3 ~", R: "[f#4,a#4]@11 ~@5",
})).s("gm_pad_new_age").gain(0.18).pan(0.9)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  ~ A@2 B C@2 D A ~@17 E@2 F G H I G@2 E@2 J@2 K L M J N O J@2 E P G M H L M ~ A@2 D C@2 D A@4 D C@2 D A ~ E@2 F G H I
  G@2 E@2 J@2 K L M J N O J@2 E P G M H L M Q
>`.pickRestart({
  A: "~@2 [d#4,f#4,b4] [c#4,f#4,a#4]@5", B: "~@4 [c#4,f4,a#4]@2 [b3,f4,g#4]@9 ~", C: "~@2 [c#4,f4,a#4] [b3,f4,g#4]@5",
  D: "~@4 [c#4,f4,a#4]@2 [b3,f4,g#4]@7 ~@3", E: "~@2 [f#4,b4] [d#4,f#4,b4] ~@2 [d#4,f#4,b4]@2, ~@4 d#4 ~@11",
  F: "~@2 [c#4,f#4,a#4] [c#4,f#4] ~@2 [c#4,f#4,a#4]@2", G: "~@2 [c#4,f#4,a#4]!2 ~@2 [c#4,f#4,a#4]@2",
  H: "~@4 [c#4,f4,g#4] ~ [c#4,f4,g#4]@2 ~@4 [c#4,f4,g#4]@4", // C#
  I: "~@2 [f#4,b4] [d#4,f#4,b4] ~@2 [f4,g#4] [c#4,f4,g#4], ~@4 d#4 ~@7 c#4 ~@3", // B5 B Fm C#
  J: "~@2 [f#4,a#4] [c#4,f#4,a#4] ~@2 [c#4,f#4,a#4]@2, ~@4 c#4 ~@11", // F#
  K: "~@4 [c#4,f4,g#4] ~ [c#4,f4,g#4]@2 ~@4 [c#4,f4,g#4]@3 ~", // C#
  L: "~@2 [f#4,b4] [d#4,f#4,b4] ~@2 [c#4,f4,g#4]@2, ~@4 d#4 ~@11", // B5 B C#
  M: "~@4 [c#4,f#4] ~ [c#4,f#4,a#4]@2 ~@4 [c#4,f#4,a#4]@4, ~@2 a#4 ~@5", // F#5 F#
  N: "~@4 [c#4,f4] ~ [c#4,f4,g#4]@2 ~@4 [c#4,f4,g#4]@4, ~@2 g#4 ~@5", // C#
  O: "~@4 [d#4,g#4,b4] ~ [d#4,f#4,b4]@2 ~@4 [c#4,f4,g#4]@4", // G#m B C#
  P: "~@4 [d#4,b4] ~ [d#4,f#4,b4]@2 ~@4 [d#4,f#4,b4]@4, ~@2 f#4 ~@5", Q: "[c#4,f#4,a#4]",
})).s("gm_epiano1").gain(0.34)

// chords · synth bass 1 · "SYN BASS"
const synth_bass_1 = note(`<
  ~ A B C D C@2 A E F G H I H J K L M N O@3 J K P Q@2 R@2 S T U@2 Q@2 R@2 S T U@2 S T U@2 Q@2 R@2 S T U V A B C D C@2
  A@3 B C D C@2 A@2 Q@2 R@2 S T U@2 Q@2 R@2 S T U@2 S T U@2 Q@2 R@2 S T U ~
>`.pickRestart({
  A: "[c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,b4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4]!3 ~ [c#4,f#4,a#4] ~", // F# F#sus4 F#
  B: "[c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,b4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~", // F# F#sus4 F#
  C: "[c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,a#4] ~ [c#4,f4,g#4] ~@3 [c#4,f4,g#4]!3 ~ [c#4,f4,g#4] ~", // C# A#m C#
  D: "[c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,a#4] ~ [c#4,f4,g#4] ~@3 [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~", // C# A#m C#
  E: "[c#4,f#4,a#4] ~@15", // F#
  F: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [f#3,a#3,c#4] ~ [a#3,c#4,f#4] ~@3 [a#3,c#4,f#4]!3 ~ [f#3,a#3,c#4] ~", // F#
  G: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [f#3,a#3,c#4] ~ [a#3,c#4,f#4] ~@3 [a#3,c#4,f#4]!3 ~ [a#3,c#4,f#4] ~", // F#
  H: "[c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [g#3,c#4,f4] ~ [c#4,f4,g#4] ~@3 [c#4,f4,g#4]!3 ~ [g#3,c#4,f4] ~", // C#
  I: "[c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [g#3,c#4,f4] ~ [c#4,g#4] ~@3 [c#4,f4,g#4]!3 ~ [g#3,c#4,f4] ~", // C# C#5 C#
  J: "~@2 [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~@3 [c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [c#4,f4,g#4] ~", // B C#
  K: "[f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [c#3,f#3,a#3] ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] [c#3,f#3,a#3] [f#3,a#3,c#4] ~ [c#3,f#3,a#3] ~", // F#
  L: "[f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~", // F#
  M: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [f#3,a#3,c#4] ~ [a#3,c#4,f#4] ~@3 [a#3,c#4,f#4] [c#4,f#4] [a#3,c#4,f#4] ~ [f#3,a#3,c#4] ~", // F# F#5 F#
  N: "[a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~ [f#3,a#3,c#4] ~ [a#3,c#4,f#4] ~@3 [a#3,c#4,f#4] [f#3,a#3,c#4] [a#3,c#4,f#4] ~ [f#3,a#3,c#4] ~", // F#
  O: "[c#4,f4,g#4] ~ [c#4,f4,g#4] ~ [g#3,c#4,f4] ~ [c#4,f4,g#4] ~@3 [c#4,f4,g#4] [g#3,c#4,f4] [c#4,f4,g#4] ~ [g#3,c#4,f4] ~", // C#
  P: "[f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [c#3,f#3,a#3] ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~", // F#
  Q: "[f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [g#3,b3,d#4] ~ [f#3,b3,d#4] ~@3 [f#3,b3,d#4] ~ [g#3,b3,d#4] ~ [f#3,b3,d#4] ~", // B G#m B G#m B
  R: "[f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [f#3,a#3,d#4] ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] ~ [f#3,a#3,d#4] ~ [f#3,a#3,c#4] ~", // F# D#m F# D#m F#
  S: "[f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4] ~@3 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4] ~", // C#
  T: "~@2 [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~@3 [f3,g#3,c#4] ~ [f3,g#3,c#4] ~ [f3,g#3,c#4] ~", // B C#
  U: "[f#3,a#3,c#4] ~ [f#3,a#3,c#4] ~ [f#3,b3,c#4] ~ [f#3,a#3,c#4] ~@3 [f#3,a#3,c#4] ~ [f#3,b3,c#4] ~ [f#3,a#3,c#4] ~", // F# F#sus4 F# F#sus4 F#
  V: "[f#3,a#3,c#4] ~@15", // F#
})).s("gm_synth_bass_1").gain(0.18).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!51 x [x!4]!43 x>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<~ A@7 B A@7 C A@15 C A@7 C A@10 C ~ A@23 C A@7 C A@11 D>".pickRestart({
  A: "~ x ~ x", B: "~@10 x ~ x ~ x!2", C: "~@4 x ~@7 x ~ x!2", D: "x",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B A B A B A C B A B@2 A@2 B A B A B A D A B A E F E F E F E F E F E F E F E F E F E F E F E F E F E G B A B A B A
  B A B A B A B A B A E F E F E F E F E F E F E F E F E F E F E F E F E F E H
>`.pickRestart({
  A: "x!7 ~", B: "x!8", C: "x!4", D: "x!5 ~ x ~", E: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", F: "x ~ x!3 ~ x!3 ~@3 x ~@3",
  G: "x!3 ~", H: "x",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<A@8 ~@16 B ~@7 B ~@11 B ~@6 C A@16 B ~@7 B ~@11 B ~@6 C ~>".pickRestart({
  A: "~@7 x", B: "~ x!7", C: "~@6 x!2",
})).gain(0.42)

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

// drums · mid tom
const mid_tom = s("mt").struct("<A@8 ~@16 B ~@7 B ~@11 B ~@6 C A@16 B ~@7 B ~@11 B ~@6 D ~>".pickRestart({
  A: "~@3 x", B: "~@3 x!5", C: "~@5 x!3", D: "~@10 x ~ x!3 ~",
})).gain(0.36)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@24 A ~@7 A ~@11 A ~@23 A ~@7 A ~@11 A ~@8>".pickRestart({
  A: "~ x ~@2",
})).gain(0.24)

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

// drums · high tom
const high_tom = s("ht").struct("<[~@5 x ~@2]!8 ~@43 [~@5 x ~@2]!17 ~@27 [~@6 x!3 ~ x ~@5] ~>").gain(0.36)

// drums · tambourine
const tambourine = s("tb").struct("<~ [~@3 x]!7 ~@17 [~ x ~ x]!27 ~@17 [~ x ~ x]!27 ~>").gain(0.36)

// drums · cabasa
// … 17 more lines

More by Borg Andy