Strudelify

Einmal und immer wieder

Borg Andy

KeyA majorTempo121 bpm
0:00/0:00
// Einmal und immer wieder — Borg Andy
// 121 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 122 bars on a 16-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): MUTED GTR.
setcpm(121/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@2 B C D@2 E F G H I J G I J@2 K H I J L M N O P Q P@3 R S T U V P W X Y Z AA AB AC T P AD G H I J G I J@2 K H I J
  L M N O P Q P@3 R S T U V P W X Y Z AA AE AF@2 X AG AH AI S AJ P Q P@3 R S T U V P W X Y AK AA AL P Q P@3 R S T U V P
  W X Y AK AA AL AM
>`.pickRestart({
  A: "a1@5 ~ a1 ~ a1@6 ~@2", B: "a1@5 ~ a1 ~ a1@7 ~", C: "f#1@5 ~ f#1 ~ f#1@6 ~@2", D: "e1@5 ~ e1 ~ e1@7 ~",
  E: "a1@4 f#1@2 e1@2 a1@3 ~ f#1@2 e1@2", F: "a1@3 ~ f#1@2 e1@2 a1@4 e1@2 f#1 ~",
  G: "e1@2 e2@2 e1 ~ e2@2 e1 ~ e2@2 e1@2 e2@2", H: "e1 e2 e1 e2 e1 e2 b1 c#2", I: "d1 d2 d1 d2 d1 d2 c#2 b1",
  J: "a1 ~ a1@2 e1@2 f#1@2 a1 ~ a1@2 f#1@2 a1@2", K: "e1@2 e2@2 e1 ~ e2@2 e1 ~ e2@2 b1@2 c#2@2",
  L: "b1 ~ b1@2 f#1@2 g#1@2 b1 ~ b1@2 f#1@2 g#1@2", M: "b1 ~ b1@2 f#1@2 g#1@2 b1 ~ b1@2 d2@2 d#2@2",
  N: "e2 e3 e2 e3 e2 e3 b1 e2", O: "e1 ~", P: "a1 ~ a1@2 e1@2 f#1@2 a1 ~ a1@2 e1@2 f#1@2",
  Q: "a1 ~ a1@2 e1@2 f#1@2 a1 ~ a1@2 e1@2 f#1 ~", R: "f#1 ~ f#2@2 c#2@2 e2@2 f#2 ~ f#2@2 c#2@2 e2@2",
  S: "e2 ~ e2@2 b1@2 d2@2 e2 ~ e2 ~ b1@2 d2@2", T: "e2 ~ e2@2 b1@2 d2@2 e2 ~ e2@2 b1@2 d2@2",
  U: "b1 ~ b1@2 f#1@2 a1@2 b1 ~ b1@2 f#1@2 a1@2", V: "d2 ~ d2@2 a1@2 b1@2 d2 ~ d2@2 a1@2 b1 ~",
  W: "f#2 ~ f#2@2 c#2@2 e2@2 f#2 ~ f#2@2 c#2@2 e2@2", X: "d2 ~ d2@2 a1@2 b1@2 d2 ~ d2@2 a1@2 b1@2",
  Y: "e2 ~ e2@2 b1@2 d2@2 e2 ~ e2@2 c#2@2 b1@2", Z: "e2@15 ~", AA: "a1 ~ a1@2 f#1@2 e1@2 a1 ~ a1@2 f#1@2 e1@2",
  AB: "f#2 ~ f#2@2 c#2@2 e2@2 f#2 ~ d2@2 b1@2 d2 ~", AC: "e2 ~ e2@2 b1@2 d2@2 e2 ~ e2@2 d2@2 b1@2",
  AD: "a1 ~ a1@2 e1@2 f#1@2 a1 ~ a1@2 d2@2 a1@2", AE: "a1 ~ a1@2 f#1@2 e1@2 a1 ~ a2@2 g#1@2 g#2@2",
  AF: "f#2 ~ f#2@2 c#2@2 e2@2 f#2 ~ f#2@2 c#2@2 e2 ~", AG: "d2 ~ d2@2 a1@2 b1@2 d2 ~ d2@2 a1@2 c#2@2",
  AH: "b1 ~ b1@2 f#1@2 a1@2 b1 ~ b1@2 a1@2 b1@2", AI: "d2 ~ d2@2 a1@2 b1@2 d2 ~ d2 ~ a1@2 b1@2",
  AJ: "e2 ~ e2@2 b1@2 e2@2 d2 ~ a1@2 e2@2 b1@2", AK: "e2 ~ e2@2 b1@2 d2@2 e2 ~ e2@2 c#2@2 ~@2",
  AL: "d2 ~ d2@2 a1@2 b1@2 e2 ~ e2@2 b1@2 d2 ~", AM: "a1@3 ~",
})).s("gm_electric_bass_finger").gain(0.22)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A@2 B@2 C@2 D@2 E@2 F G H I J K E@2 F G L M N O P Q R S P T U V W X P Y Z AA AB P AC U AA P AD E@2 F G H I J K E@2 F
  G L M N O P Q R S P T U V W X P Y AE AA AB P AF AG AH AI AJ W AK U AL P Q R S P T U V W X P Y AE AA@2 P AM P Q R S P T
  U V W X P Y AE AA@2 P AM AN
>`.pickRestart({
  A: "[~@15 c#4, a2@7 c#4@3 a3@3 c#4 a3@2, ~ e3@7 a2@8, ~@2 a3@3 c#4 a3@3 e3@7, ~@3 c#4 e4@7 c#4 e4@4]/2",
  B: "[~@2 a3 ~@12 c#4, a2@7 c#4 f#2@8, ~ e3@8 f#3@7, ~@3 c#4@2 c#4 a3@4 a3@3 c#4 a3@2, ~@4 e4@6 ~ c#4 f#4@4]/2",
  C: "[~@15 b3, e2@7 b3@3 g#3@3 b3 g#3@2, ~ e3@7 e2@8, ~@2 g#3@3 b3 g#3@3 e3@7, ~@3 b3 e4@7 b3 e4@4]/2",
  D: "[a3@4 a3@4 d4@2 [a3,c#4]@4 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~, [a2,e3]@5 ~@3, ~@2 d4 ~@13, ~@4 c#4 ~@27]/2", // A A5
  E: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 ~@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 ~@2 [g#3,b3,e4] ~", // E
  F: "[a3,d4,f#4]@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~", // D
  G: "[a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~@3 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4]@2", // A
  H: "[g#3,b3,e4]!2 ~ [g#3,b3,e4]!3 ~ [b3,e4]", // E E5
  I: "[a3,d4,f#4]@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~@3 [a3,d4] ~", // D D5
  J: "[a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~@3 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4] ~ [a3,d4,f#4,a4]@4", // A D
  K: "[a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~@3 [a3,c#4,e4] ~", // A
  L: "[b3,d#4,f#4]!2 ~ [b3,d#4,f#4]!3 ~ [d#4,f#4]", // B D#m
  M: "[b3,d#4,f#4]@2 [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~@3 [b3,d#4] ~", // B
  N: "[b3,e4,g#4]@2 [b3,e4,g#4]@2 ~@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4] ~@3 [b3,e4] ~", O: "[b3,e4,g#4] ~",
  P: "[a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2", // A
  Q: "[a3,c#4]@2 [a3,c#4,e4]@2 c#4 ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2", // A D
  R: "a3@2 [a3,c#4,e4]@2 [a3,c#4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2, [d4,f#4] ~@3", // A D
  S: "[a3,c#4]@2 [a3,c#4,e4]@2 c#4 ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2", // A
  T: "[a3,c#4,f#4]@2 [a3,c#4,f#4]@2 c#4 ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4] ~ [a3,c#4,f#4]@2", // F#m
  U: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3] ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2", // E G#m E
  V: "[g#3,b3]@2 [g#3,b3,e4]@2 b3 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2", // G#m E
  W: "[b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4] ~ [b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4]@2 [b3,d4,f#4] ~ [b3,d4,f#4]@2", // Bm
  X: "[a3,d4]@2 [a3,d4,f#4]@2 d4 ~ [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2", // D5 D
  Y: "[a3,c#4]@2 [a3,c#4,f#4]@2 c#4 ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4] ~ [a3,c#4,f#4]@2", // A F#m
  Z: "[a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4] ~ [a3,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4] ~ [a3,c#4,f#4]@2, ~@3 d4@3 ~@2", // D D5 D F#m
  AA: "[g#3,b3,e4]@2 [g#3,b3,e4]@2 b3 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2", // E
  AB: "[g#3,b3,e4] ~", // E
  AC: "[a3,c#4]@2 [a3,c#4,f#4]@2 c#4 ~ [a3,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2, ~@6 c#4@7 ~@3", // A F#m D
  AD: "[a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4] ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,d4,f#4]@4", // A D
  AE: "[a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4] ~ a3@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2, ~@3 [d4,f#4]@3 ~@2", // D D5 A D
  AF: "[a3,c#4]@2 [a3,c#4,e4]@2 c#4 ~ [a3,e4]@2 [a3,d4,e4]@2 [a3,d4,e4]@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2, ~@6 c#4@7 ~@3", // A A5 Asus4 E
  AG: "[a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4] ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4] ~ [a3,c#4,f#4]@2", // F#m A F#m
  AH: "[a3,c#4]@2 [a3,c#4,f#4]@2 c#4 ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2", // A F#m D
  AI: "[a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4] ~ [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2", // D D5 D
  AJ: "[a3,d4]@2 [a3,d4,f#4]@2 d4 ~ [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,c#4,f#4] ~ [a3,c#4,f#4]@2", // D5 D F#m
  AK: "[a3,d4,f#4]@2 [a3,d4,f#4]@2 d4 ~ [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2", // D
  AL: "[g#3,b3]@2 [g#3,b3,e4]@2 b3 ~ g#3@2 [g#3,d4,f#4]@2 [g#3,d4,f#4]@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2, ~@3 [b3,e4]@3 ~@2", // G#m E G#m7b5 E E5
  AM: "[a3,d4]@2 [a3,d4,f#4]@2 d4 ~ [a3,d4,f#4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2", // D5 D E
  AN: "[a3,c#4,e4]@3 ~", // A
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.6)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  A B@3 C D@2 E@2 F@2 G H I G H J F@2 G H K L M@2 N@3 O P@2 Q@2 R@2 S@2 T U@2 V W X@4 F@2 G H I G H J F@2 G H K L M@2
  N@3 O P@2 Q@2 R@2 S@2 T U@2 Y@2 Z@2 AA@2 AB AC AD@2 N@3 O P@2 Q@2 R@2 S@2 T U@2 AE AF N@3 O P@2 Q@2 R@2 S@2 T U@2 AE
  AF AG
>`.pickRestart({
  A: "~@2 [a3,c#4] [b3,d4]", B: "[[c#4,e4]@9 c#4@5 [d4,f#4]@3 [c#4,e4]@7, a3]/3", C: "[f#3,c#4] a3",
  D: "[b3@3 c#4, [e3,g#3]]/2", E: "[a2,e3,c#4,e4]/2", F: "e4/2", G: "d4", H: "c#4", I: "e4@15 ~", J: "a3",
  K: "f#4@15 ~", L: "d#4", M: "[e4@11 ~ a4@2 b4@2]/2", N: "[c#5@9 a4@5 [f#4,d5]@3 [e4,c#5]@7, e4@7 ~@5]/3",
  O: "[e4,a4] [d4,b4] [e4,c#5] [a4,e5]", P: "[a4@8 ~ a4@5 c#5@2, c#5@9 ~@7, ~ f#4]/2",
  Q: "[[g#4,b4]@6 [g#4,b4] [e4,c#5]]/2", R: "[d5@8 e5@2 d5@5 b4, f#4]/2", S: "[c#5@5 b4@2 ~ f#4@8, e4 ~, ~@7 a4@9]/2",
  T: "f#5 e5, a4", U: "[d5@2 b4@2 ~ e5!2 [e4,d5], g#4@7 ~]/2", V: "[e4,c#5]@3 [d4,b4]", W: "c#4 d4, a4",
  X: "[g#4@6 b4@2 a4@7 [f#4,a4], e4@15 ~]/4", Y: "[[e4,c#5]@6 a4 g#4, ~@3 e4]/2", Z: "[f#4,c#5]/2",
  AA: "[d5@7 c#5, f#4]/2", AB: "[d4,b4]", AC: "[d4,a4]", AD: "[[g#4,b4]@6 [f#4,a4] [e4,b4]]/2", AE: "[e4,c#5]",
  AF: "[d4,a4] [e4,b4]", AG: "[e4,a4]@3 ~",
})).s("gm_string_ensemble_2").gain(0.18)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@4 A B@2 ~@2 C@2 D E C D E@2 C@2 D E F G H I E J K E@2 L C@2 M N O P Q R S E T R@2 E U C@2 D E C D E@2 C@2 D E F G H
  I E J K E@2 L C@2 M N O P Q R S E V W@2 D X M N C Y E J K E@2 L C@2 M N O P Q R@2 E Z E J K E@2 L C@2 M N O P Q R@2 E
  Z AA
>`.pickRestart({
  A: "f#2", B: "e2/2", C: "e3 [e4,g#4] b3 [e4,g#4] e3 [e4,g#4] b3 [e4,g#4]",
  D: "d3 [d4,f#4] a3 [d4,f#4] d3 [d4,f#4] ~ f#4, ~@3 a3, ~@14 d4 ~", // D
  E: "a2 [c#4,e4] a3 [c#4,e4] a2 [c#4,e4] a3 [c#4,e4]", F: "b2 [d#4,f#4] b3 [d#4,f#4] b2 [d#4,f#4] b3 [d#4,f#4]",
  G: "b2 [d#4,f#4] b3 [d#4,f#4] b2 [d#4,f#4] ~ f#4, ~@3 b3, ~@14 d#4 ~", // D#m
  H: "e3 [g#3,e4] b3 [g#3,e4] e3 [g#3,e4] b3 [g#3,e4]", I: "[e2,g#3,b3,e4] ~",
  J: "a2 [c#4,e4] a3 [c#4,e4] a2 [c#4,e4] a3 [d4,f#4]", // C#m D
  K: "a2 [c#4,e4] a3 [c#4,e4] a2 [c#4,e4] ~ e4, ~@3 a3, ~@14 c#4 ~", // C#m
  L: "f#2 [c#4,a4] f#3 [c#4,a4] f#2 [c#4,a4] ~ a4, ~@3 f#3, ~@14 c#4 ~", // F#m
  M: "b2 [d4,f#4] b3 [d4,f#4] b2 [d4,f#4] b3 [d4,f#4]", N: "d3 [d4,f#4] a3 [d4,f#4] d3 [d4,f#4] a3 [d4,f#4]",
  O: "a2 [c#4,e4] a3 [c#4,e4] a2 [c#4,e4] ~ e4, ~@3 g#3, ~@14 c#4 ~", // C#m
  P: "f#2 [c#4,e4] f#3 [c#4,e4] f#2 [c#4,e4] f#3 [c#4,e4]", Q: "d3 [d4,f#4] a3 [d4,f#4] d3 [c#4,f#4] a3 [c#4,f#4]",
  R: "e3 [e4,g#4] b3 [e4,g#4] e3 [e4,g#4] ~ g#4, ~@3 b3, ~@14 e4 ~", S: "[e3,e4]@3 ~, g#4 ~@7",
  T: "f#3 [c#4,f#4] a3 [c#4,f#4] f#3 [d4,f#4] d3 [d4,f#4]", // F#5 D
  U: "a2@2 [c#4,e4]@2 a3@2 [c#4,e4]@2 a2@2 [c#4,e4]@2 [d3,d4,f#4]@3 ~", // C#m D
  V: "a2 [c#4,e4] a3 [c#4,e4] [a3,c#4,e4]@2 [g#3,b3,e4]@2", W: "f#3 [f#4,a4] c#4 [f#4,a4] f#3 [f#4,a4] c#4 [f#4,a4]",
  X: "d3 [d4,f#4] a3 [d4,f#4] d3 [d4,f#4] ~ e4, ~@3 a3, ~@14 c#4 ~", // D
  Y: "e3 [e4,g#4] b3 [e4,g#4] d3 [f#4,a4] e3 [e4,g#4]", Z: "d3 [d4,f#4] a3 [d4,f#4] e3 [e4,g#4] b3 [e4,g#4]",
  AA: "[a2,a3,c#4,e4]@11 ~@5", // A
})).s("gm_piano").gain(0.26).pan(0.4)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@7 A B C@2 D B C D E F C@2 D B G H I ~@2 J ~@14 K ~@3 L C@2 D B C D E F C@2 D B G H I ~@2 J ~@14 M ~@9 J ~@14 K ~ J
  ~@14 K ~
>`.pickRestart({
  A: "~@5 a3!4 ~ e3 ~@5", B: "~ a3 ~ a3!2 ~@11", C: "~ e3 ~ e3!2 ~@11", D: "~ d3 ~ d3!2 ~@11",
  E: "~ a3 ~ a3!2 ~@9 [e3,a3] ~", F: "~ a3 ~@2 a3 ~@11", G: "~ b3 ~ b3!2 ~@9 b3 ~", H: "~@14 f#3 ~",
  I: "~ b3 ~ b3!2 ~@11", J: "e3 ~@13 e3 ~", K: "f#3 ~@15", L: "~ a3 ~ a3 ~@7 a3 ~@2 a3 ~", M: "e3 ~@9 f3 ~@5",
})).s("gm_electric_guitar_muted").gain(0.18).pan(0.4)

// chords · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@26 A ~ A ~@5 B ~ C ~@4 C ~ D ~@19 A ~ A ~@5 B ~ C ~@4 E ~@9 A ~ A ~@5 B ~ C ~@4 C ~ A ~ A ~@5 B ~ C ~@4 C ~
>`.pickRestart({
  A: "~@4 [e3,a3] ~@11", B: "~@4 a3 ~@11", C: "~@4 f#3 ~@11", D: "~@4 e3 ~@11", E: "~@4 [e3,a3] ~@3 f3 ~@7",
})).s("gm_electric_guitar_muted").gain(0.11).pan(0.4)

// chords · pad halo · "HALO PAD"
const pad_halo = note(`<
  ~@9 A@2 B C D B E@2 A@2 B C F G H@2 I@2 J@2 K L M N O@2 P@2 Q R@2 K S T@2 U V A@2 B C D B E@2 A@2 B C F G H@2 I@2 J@2
  K L M N O@2 P@2 Q R@2 W@2 X@2 Y@2 Z AA M AB I@2 J@2 K L M N O@2 P@2 Q R@2 K AC I@2 J@2 K L M N O@2 P@2 Q R@2 K AC AD
>`.pickRestart({
  A: "[[g#3,e4]@31 ~]/2", B: "[a3,f#4]@15 ~", C: "[a3,e4]@15 ~", D: "[g#3,e4]", E: "[a3,e4]/2", F: "[b3,d#4]",
  G: "[b3,f#4]@15 ~", H: "[[g#3,e4]@3 ~]/2", I: "[e4 c#4, a3]/2", J: "[d4 ~@9 b3@2 a3@2 c#4@2, a3 e4, ~ c#4@9 ~@6]/2",
  K: "[a3,e4]", L: "c#4@2 ~ f#4, a4@3 ~, ~ f#3", M: "[e3,g#4]", N: "[b3,e4]", O: "[b3 a3, d4]/2", P: "[e4 f#4, a3]/2",
  Q: "d4 e4, a3", R: "[b3 e3, e4]/2", S: "[a3,f#4]", T: "[b3,e4]/2", U: "[a3,c#4]", V: "[c#4,e4]@3 [d4,f#4]",
  W: "[a3@7 b3, e4]/2", X: "[f#3,a4]/2", Y: "[d4@7 c#4, a4]/2", Z: "[b3,f#4]", AA: "[d4,f#4]",
  AB: "[b3,e4]@2 [d4,f#4] [e4,g#4]", AC: "[a3,d4] [g#3,e4]", AD: "[a3,c#4]@3 ~",
})).s("gm_pad_halo").gain(0.13)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@27 A B ~@2 C D ~@5 E F ~@9 G ~@2 H ~@11 I J ~@2 K L ~@3 M ~@7 N O ~@2 P Q ~@2 R ~@3 S T ~@5 E F ~@4 R ~@3 S T ~@5 E
  F ~@3
>`.pickRestart({
  A: "~@8 [a3,e4]@3 ~ [f#4,a4]@2 [c#4,e4] ~", B: "~ [a3,e4]@3 ~@4", C: "~@8 [e4,g#4]@4 [c#4,f#4] ~ [c#4,f#4]@2",
  D: "~@2 [b3,e4]@5 ~@9", E: "~@4 [e4,a4]@2 g#4 ~ [e4,a4]@2 g#4 ~ [e4,a4]@2 g#4 ~", F: "~ [e4,g#4]@5 ~@10",
  G: "~@2 c#4@3 ~ f#3 ~ [e3,a3] ~@3 [e3,a3] ~@3", H: "~@4 [a4,c#5] ~@3 b4@2 [e4,a4]@2 ~@4", I: "~@5 [a3,e4] c#4 ~",
  J: "[a3,c#4]@2 [a3,e4] ~@3 [a3,c#4,e4] ~@3 [a3,e4] ~@5", K: "~@2 [f#4,d5] ~ [e4,b4] ~@2 [f#4,a4]",
  L: "~ [e4,g#4]@2 ~@5", M: "~@8 [f#3,c#4]@2 ~@2 [f#3,c#4]@3 ~", N: "~@5 [a3,f#4] d4 ~",
  O: "[a3,d4]@2 [a3,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,f#4]@2 ~@4", P: "~@2 [d4,b4] ~ [b3,g#4] ~@2 [d4,f#4]",
  Q: "~ [b3,e4]@2 ~@5", R: "~@4 [a4,c#5] ~@3 [a4,c#5]@2 [e4,b4]@2 ~@4", S: "~@8 g#4@4 [b3,e4] ~ [c#4,f#4] ~",
  T: "~ [b3,e4]@3 ~@4", // E5
})).s("gm_electric_guitar_clean").gain(0.19).pan(0.6)

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

// drums · snare
const snare = s("sd").struct("<~@7 A B A@15 ~ A@14 ~ A@5 B A@15 ~ A@14 ~ A C A@7 D A@34 ~>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~ x!2 ~@3 x ~", D: "~@4 x ~@7 x ~ x!2",
})).gain(0.29)

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

// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@36 A ~@42 B ~@16 B ~>".pickRestart({
  A: "~@5 x ~@2", B: "~@9 x!7",
})).gain(0.29)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@7 A B A B A B A B A B A B A B A B A ~ A B A B A B A B A B A B A B ~ A B A B A B A B A B A B A B A B A B A B A ~ A B
  A B A B A B A B A B A B ~ A B A B A B A B A B A B A B A B A B A B A B A B A@2 C A B A B A B A B A B A B A B A@2 C ~
>`.pickRestart({
  A: "x!8", B: "x!7 ~", C: "x!3 ~ x ~ x ~",
})).gain(0.29)

// … 22 more lines

More by Borg Andy