Strudelify

Ich brauch dich jeden Tag

Borg Andy

KeyD majorTempo65 bpm
0:00/0:00
// Ich brauch dich jeden Tag — Borg Andy
// 65 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 57 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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 · fretless bass · "FRETLESS"
const bass = note(`<
  ~@2 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX AY AZ BA BB ~
>`.pickRestart({
  A: "d2@4 ~ a1 d2@4 ~ e2", B: "a1@8 ~@2 g2@2 a1@5 ~ a1@2 b1@2 c#2@2", C: "d2@7 ~@3 a1@2 d2@7 ~@3 a1@2",
  D: "d2@7 ~@3 a2@2 d2@7 ~@3 d2@2", E: "c2@7 ~@3 c2@2 d2@8 ~@2 d2 ~", F: "d2@4 ~ a2 f2@4 ~ f2",
  G: "c2@9 ~ c2@2 f1@9 ~ f1@2", H: "g1@8 ~@2 g1@2 d2@7 ~ d2@2 d#2@2", I: "e2@7 ~@3 e2@2 a1@8 ~@2 a1@2",
  J: "a1@8 ~@4 d1@7 ~@3 a1@2", K: "d2@5 ~ a1@6 d1@7 ~@3 a1@2", L: "d2@3 d1 e1 f#1 g1@4 ~ d1",
  M: "g1@9 ~ g1@2 d2@8 ~@2 a1@2", N: "d2@5 ~ d2@2 c#2@2 b1@2 a1@6 ~@2 e2@2 a2@2",
  O: "a1@5 ~ a1 ~ a1@2 a#1@2 b1@7 ~ b1@2 a1@2", P: "g1@6 ~@2 g1@2 b1@2 a1@9 ~ a1 ~", Q: "a1@5 ~ a1@5 ~ d1@7 ~@3 a1@2",
  R: "d1@2 ~ a1 b1 c#2 d2@3 ~@2 a2", S: "d2@8 ~@2 d2@2 c2@9 ~ c2@2", T: "d2@7 ~ a1@2 c2@2 d2@9 ~ a2@2",
  U: "f2@4 ~ f2 c2@4 ~ c2", V: "f1@4 ~ f1 g1@4 ~ g1", W: "d2@7 ~ d2@2 d#2@2 e2@8 ~@2 e2@2", X: "a1@7 ~@3 a1@2 a1@8 ~@4",
  Y: "d1@6 ~@4 a1@2 d2@4 ~@2 a1@3 ~@3", Z: "d1@7 ~@3 a1@2 d2@6 d1@2 e1@2 f#1@2", AA: "g1@7 ~@3 d1@2 g1@8 ~@2 g1@2",
  AB: "d2@7 ~@3 a1@2 d1@6 d2@2 c#2@2 b1@2", AC: "a1@8 e2@2 a2@2 a1@5 ~ a1 ~ a1@2 a#1@2",
  AD: "b1@7 ~ b1@2 a1@2 g1@7 ~ g1@2 b1@2", AE: "a1@8 ~@2 a1 ~ a1@5 ~ a1@6", AF: "d2@7 ~@3 a2@2 d2@5 ~ d2@4 f#2@2",
  AG: "b1@7 ~@3 f#1@2 b1@6 ~@2 b1@2 d2@2", AH: "f#1@7 ~@3 c#2@2 f#1@9 ~@3", AI: "g1@4 ~ g1 g1@6",
  AJ: "a1@4 ~ a1 a#1@5 ~", AK: "d#2@3 a#1", AL: "d#1@11 ~", AM: "g#1", AN: "d#1@17 ~@7",
  AO: "a#1@7 ~@3 f1@2 a#1@5 ~ a#1 ~ a#1@2 b1@2", AP: "c2@8 ~@2 a#1@2 g#1@9 ~ g#1@2",
  AQ: "d#1@8 ~@2 a#1 ~ a#1@5 ~ a#1@6", AR: "d#1@8 ~@2 d#1@2 b1@9 ~ b1@2", AS: "e1@7 ~@3 e1@2 e1@6 b1@6",
  AT: "e1@7 ~@3 g#1@2 b1@6 g#1@4 e1@2", AU: "a1@7 ~@3 a1 ~ a1@8 ~@2 a1@2", AV: "e1@7 ~@3 b1@2 e2@6 e1@5 ~",
  AW: "b1@8 ~@2 b1 ~ b1@5 ~ b1 ~ b1@2 c2@2", AX: "c#2@8 ~@2 c#2@2 a1@9 ~ a1@2", AY: "b1@7 ~@3 b1 ~ b1@5 ~ b1@6",
  AZ: "e1@8 ~@2 g#1@2 a1@9 ~ a1@2", BA: "b1@8 ~@2 b1 ~ b1@12", BB: "e1@7 ~",
})).s("gm_fretless_bass").gain(0.51)

// chords · piano · "A.PIANO"
const piano = note(`<
  A ~ B C D E F@2 G H I@4 J@7 E K L M N O P Q R S T O R U V W X Y Z AA Z AB AC AD AE AF AG AH AG AI AJ AK AL AM AN@2
>`.pickRestart({
  A: "c#-1", B: "[a4,d5,f5]@6 [g4,c5,e5]@6 [a4,d5,f5]@11 ~", C: "[g4,a4,c#5,e5]@23 ~", D: "[f4,a4,d5]@11 ~",
  E: "[a4,d5,f5]@23 ~", F: "[[c5,e5,g5]@12 [a4,d5,f5]@23 ~ [a4,c5,f5]@11 ~, ~@12 g4 ~@35]/2",
  G: "[g4,c5,e5]@12 [a4,c5,f5]@11 ~", H: "[g4,a#4,d5]@11 ~ [a4,d5,f5]@10 ~@2",
  I: "[[g#4,b4,d5,e5]@11 ~ [g4,a4,c#5,e5]@17 ~@7 [a4,d5,f#5]@16 ~@2 [a4,c#5,e5,g5]@5 ~ [a4,d5,f#5]@23 ~ [b4,d5,g5]@12]/4", // E7 A7 D A7 D G
  J: "[~@12 [d5,f#5]@23 ~ [c#5,e5,g5]@23 ~ f#5@12 g5@12 [a4,d5,f#5]@17 ~ [a4,c#5,e5,g5]@5 ~ [a4,d5,f#5]@22 ~@2 [a4,d5,f5]@24 [g4,c5,e5]@12, ~@12 a4@47 ~ [b4,d5]@23 ~@85]/7", // D C#dim D A7 D Dm C Bm
  K: "[a4,c5,f5]@11 ~ [g4,c5,e5]@11 ~", L: "[a4,c5,f5]@11 ~ [g4,a#4,d5]@11 ~",
  M: "[a4,d5,f5]@9 ~@3 [g#4,b4,d5,e5]@11 ~", N: "[g4,a4,c#5,e5]@2 ~", O: "[a4,d5,f#5]@17 ~ [a4,c#5,e5,g5]@5 ~",
  P: "[d5,f#5], a4@11 ~", Q: "[b4,g5]@23 ~, d5@7 ~", R: "[a4,d5,f#5]@23 ~", S: "[a4,c#5,e5,g5]@23 ~",
  T: "f#5@12 g5@11 ~, [b4,d5]@23 ~", U: "[b4,d5,f#5]@23 ~", V: "[a4,c#5,f#5]@23 ~", W: "[b4,d5,g5]",
  X: "[a4,c#5,e5]@11 ~ [a#4,d5,f5]@11 ~", Y: "[a#4,d#5,g5]@17 ~ [a#4,d5,f5]@6", Z: "[a#4,d#5,g5]@11 ~",
  AA: "[c5,d#5,g#5]@23 ~", AB: "[a#4,d5,g#5]@23 ~", AC: "g5@12 g#5@11 ~, [c5,d#5]@23 ~",
  AD: "[a#4,d#5,g5]@16 ~@2 [a#4,d5,f5,g#5]@5 ~", AE: "[a#4,d#5,g5]@11 ~ [b4,d#5,f#5]@11 ~",
  AF: "[b4,e5,g#5]@16 ~@2 [b4,d#5,a5]@5 ~", AG: "[b4,e5,g#5]@23 ~", AH: "[c#5,e5,a5]@23 ~", AI: "[b4,d#5,a5]@23 ~",
  AJ: "~ g#5@11 a5@11 ~, ~ [c#5,e5]@22 ~", AK: "[b4,e5,g#5]@17 ~ [b4,d#5,a5]@5 ~",
  AL: "[b4,g#5]@13 [c#5,a5]@10 ~, e5@23 ~", AM: "[b4,e5,g#5]@17 ~ [b4,d#5,f#5,a5]@5 ~",
  AN: "[~@2 g#4@11 ~@11, [b4,e5,g#5]@13 ~@11]/2", // E
})).s("gm_piano").gain(0.26)

// chords · flute
const flute = note("<~ A B C D ~ E ~ F ~ G H ~@9 I ~ J ~ K ~@7 L ~@19 M N O ~>".pickRestart({
  A: "~@22 a4 ~",
  B: "[a4,f5]@2 ~ [a4,f5]!2 ~ [g4,e5] ~ [g4,e5] ~ [g4,e5] ~ [f4,d5]@2 ~ [f4,d5]!2 ~ [f4,d5]@2 e4@2 a#4@2, ~@20 c5 ~ d4 ~", // Dm C Dm
  C: "[c#4,a4]@11 ~@3 [g4,e5]@2 [a4,f5]@2 [a#4,g5]@2 [a4,f5]@2 [g4,e5]@2", D: "[f4,d5]@13 ~@11",
  E: "~@16 [d6,e6] [f6,g6] a6@4 ~@2", F: "~@16 f5 [g5,a5] c6@4 ~@2, ~@18 a#5 ~@5", G: "~@8 [c#5,a5] [b4,g5]@2 [a4,f#5]",
  H: "e5 ~@5", I: "~@4 [d6,e6] f6 a6@4 ~@14, ~@6 g6 ~@17", J: "~@4 [f5,g5] a5 c6@4 ~@14, ~@6 a#5 ~@17",
  K: "~@2 [c#5,a5] [b4,g5]@2 [a4,f#5] ~@6", L: "d5@13 ~ d5 e5 f#5 a5 d6@4 f#5@2",
  M: "~@16 [c#6,e6]@2 [a5,c#6]@3 ~ [e5,a5] ~", N: "[e5,g#5]@3 ~ [g#5,b5] ~@11 g#5@2 a5@3 ~ [d#5,f#5] ~, ~@16 b5 ~@7",
  O: "e5@17 ~@7",
})).s("gm_flute").gain(0.26)

// chords · flute · soft notes · C G#m
const flute_soft = note("<~@11 [g4 ~@5] ~@13 [~@2 [g4,e5] ~] ~@28 [~@2 [g#5,b5]@3 ~ f#5 ~] [g#4@2 ~] ~>")
  .s("gm_flute").gain(0.15)

// chords · piano · "A.PIANO"
const piano_2 = note(`<
  A ~ B C D E F G H I J K@3 L M@2 N@3 O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR@2 AS
  AT AU AV AW ~
>`.pickRestart({
  A: "c#-1@23 ~", B: "~@2 d4 f4 d4 a3 ~@5 a3, d3@8 ~@6 d3@7 ~@3, ~ a3@3 ~@4 a3@2 d4@2, ~@3 f4",
  C: "~@5 c#4 ~@5 c#4, ~@2 c#3@6 e4@5 ~ a3@6 ~@4, ~@4 a3@5 ~@3 c#3@10 ~@2, ~@6 g4@7 ~@3 c#4@4 e4@4, ~@3 a4",
  D: "~@3 [a4,d5], ~ d3@4 ~ d3@5 ~, ~@2 a3@3 d4@2 a3@4 ~, ~@3 a4@4 ~@5, ~@4 f4@3 ~ f4@4", // D5
  E: "~@4 f4 d4 ~@4 f4 d4, d3@3 ~ d3@3 ~, ~@2 a3@7 ~@5 a3@7 ~@3, ~ d4 ~@2 d4 ~, ~ a4 ~ a4",
  F: "~@5 c4 ~@5 d4, c3@9 ~@3 d3@8 ~@4, ~ g3@4 ~@2 a3@3 ~@2, ~ c4 e4 ~ d4 f4, ~@3 g4@2 ~@4 a4@3",
  G: "~@4 f4 d4@2 ~@3 a4 f4, ~@2 d3@8 ~@4 f3@7 ~@3, ~@4 a3@7 ~@5 c4@6 ~@2, ~@3 a4@4 ~@2 c5@3",
  H: "~@5 e4 ~@4 a4 f4, e3@8 ~@6 f3@7 ~@3, ~ c4@2 c5@3 ~@3 c5@3, ~ e4 g4 ~ c4 ~",
  I: "~@3 a#4 ~ a#3 ~@4 f4 d4, ~ g3@4 ~@2 d3@4 ~, ~@4 a#3@4 g4@4 ~@4 a3@7 ~, ~@3 a4",
  J: "~@8 e4@2 d4 ~ [c#4,a4] ~@3 [c#5,a5]@2 [b4,g5]@3 ~ [a4,f#5] ~, ~ g#3@3 ~@8, ~ b3 ~@4, ~ g#4 ~@2", // F#m Em D
  K: "[[g4,e5]@7 ~@21 d4 ~@5 c#4@2 ~@4 d4@2 ~@4 a3@4 ~@8 a3@2 ~@4 d4@2 ~@4 b3@2, ~@12 d3@8 f#4@7 ~@3 g4@6 ~@6 f#4@9 ~@3 f#4@5 ~@7 g4@6, ~@14 a3@7 ~@3 d3@6 ~@6 d3@8 ~@28, ~@16 d4@5 ~ d4@4 a3@5 ~@7 a3@4 ~@8 f#3@6 ~@4 g3@8 ~@4, ~@18 a4@10 ~@4 e4@4 ~@8 d4@7 ~ a3@4 d4@4 ~@2 b3@6 d4@4]/3", // C
  L: "g3@2 ~@3 b3 ~@3 a4 f#4 d4, ~@6 g4@7 ~ a3@10, ~@8 d4@4 f#3@7 ~@5, ~@16 d4@5 ~@3",
  M: "[~@4 d4@2 ~@2 d4@2 a3 ~@23 c#4@2 ~@10 d4@2, f#3@3 f#4@2 ~@3 a3@2 g4@3 ~ c#4@2 e4@2 ~@2 d4@2 f#4@2, ~@2 a3@6 ~@6 e3@7 ~ e4@4 a3@7 ~@5 b3@8 ~@2, ~@9 a4@4 ~@2 a4@3 ~@3 b4@3, ~@6 e3@2 ~ f#3@2 ~]/2",
  N: "[~@4 d4@2 ~@4 b3@2 ~@8 f#4@2 d4@4 f#3@4 [g4,a4]@2 e4@2 c#4@2 ~@4 d4@2 ~@4 a3@2 ~@2 f#3@2 a3 ~ [a3,a4]@2 [b3,b4]@2 c#5@2 d5 ~ f4@2 ~@6 a3@2, g3@3 b4@2 ~@2 b3@2 a4@4 ~@8 f#4@4 ~@8 f4@3, ~@2 b3@5 ~ g4@4 f#3@7 ~@11 a3@6 f#3@8 ~@4 d3@4 ~@12 d3@6 ~@2, ~@16 d4@5 ~@17 a3@6 d4@6 ~@8 c#4 ~@9 d4@4]/3", // Gsus2 A B
  O: "~@8 d4@2 a3 ~@11 c4@2, ~@2 d3@7 ~@5 c3@8 ~@2, ~@2 a3@2 ~@4 g3@3 ~, ~@3 f4@2 ~@4 g4@3, ~@5 e4",
  P: "~@5 a3 ~@2 d4 ~ d4 a3, ~ d3@4 ~ d3@5 ~, ~@2 a3@2 d4@2 ~ a3@3 ~@2, ~@6 f4@6 ~@6 f4@5 ~",
  Q: "~@4 f4 c4 ~@2 c4 ~@2 c4, f3@6 a4@6 ~@6 g4@5 ~, ~ a3@4 ~ e3@5 ~, ~@4 c4@4 ~@6 g3@5 ~ e4@4",
  R: "~@4 f4 c4 ~@2 d4 ~@2 a#3, f3@9 ~@3 g3@7 ~@5, ~@2 a3@7 ~@5 a#3@7 ~@3, ~ c4 ~@3 d4, ~ a4 ~ g4",
  S: "~@8 f4@2 d4 ~@5 e4@2 ~@2 e4@2 b3 ~, d3@6 a4@5 ~@7 g#4@5 ~, ~@2 a3@5 ~@5 g#3@8 ~@4, ~@2 d4@2 ~@3 b3@3 ~@2",
  T: "[c#4,a4]@4 [c#5,a5]@2 [b4,g5]@3 ~ f#5@2 [g4,e5]@6 ~@6, ~@10 a4 ~@13", // F#m Em C
  U: "~@6 a3 ~ a3 ~@2 c#4, ~@2 f#3@7 ~ d4@4 f#3@4 ~@6, ~@4 a3@4 f#4@7 ~@3 g4@6, ~@3 a4@4 ~@3 e4@2",
  V: "~@5 a3 ~@3 f#4 a4 f#4, ~@2 f#3@6 ~@4 f#3@7 ~@5, ~@4 a3@4 d4@5 ~ a3@6 ~@4, ~@3 f#4@3 ~@2 d4@2 ~@2",
  W: "~@8 g4@2 d4@2 g3@2 b3@2 d4 ~@3 g3@2 b3@2, g3@6 b4@5 ~@13, ~@2 b3@5 ~@17, ~ d4 ~@4",
  X: "~@3 d4 f#4 d4 ~@4 f#4 d4, f#4@4 a3@5 ~@5 a3@4 a4@5 ~, ~@2 f#3@6 ~@4 f#3@7 ~@5, ~@4 d4 ~",
  Y: "~ f#3 ~@3 c#4 ~@3 e4 a4 c#5, ~@2 a3@3 ~ e3@5 ~, ~@6 a4@6 ~@4 c#4@5 ~@3, ~@8 e4@5 ~ a3@8 ~@2",
  Z: "~@4 f#4 d4 ~@4 g4 d4, ~ b3@4 ~ g3@4 ~@2, ~@2 d4@2 ~@3 b3@4 ~, ~@3 b4@3 ~@2 d4@2 ~@2, ~@18 b4@5 ~",
  AA: "~@4 f#4 d4 ~ d4 f#4 ~@2 c#4, ~@2 f#3@7 ~@11 e4@4, ~@4 a3@5 ~@3 a3@4 ~@2 a3@4 ~@2, ~@6 a4@7 ~@5 g4@6",
  AB: "~@2 d4 f#4 d4 ~@4 d5@2 ~, f#3@8 ~@2 f#3@11 ~@3, ~@2 a3@6 ~@4 a3@9 ~@3, ~@14 f#4@9 ~, ~@8 a4@3 ~",
  AC: "~@5 d4 ~@4 d5 b4, f#3@3 ~ f#3@3 ~, ~@2 b3@8 ~@4 b3@7 ~@3, ~ d4 f#4 ~ f#4@2, ~ b4 ~ f#5",
  AD: "~@11 c#5, f#3@4 a4@3 a3@3 a4@2, ~@2 a3@7 ~@3 f#3@9 ~@3, ~@4 c#4@6 f#4@6 c#4@5 ~@3, ~@3 c#5@5 ~ f#4@3",
  AE: "~@2 d4 ~@8 d4, g3@4 ~ d4@5 g4@2, ~ b3@3 g4@2 g3@5 ~, ~@6 b4@7 ~ b3@4 b4@6, ~@2 d5",
  AF: "~@4 c#5 e5 ~@2 f4 ~ d5 f5, a3@2 ~ a#3@2 ~, ~@2 c#4@7 ~@5 d4@6 ~@4, ~ e4 ~@4, ~@3 a4@3 ~@3 a#4@2 ~",
  AG: "~@4 a#3@2 d#5@2 a#4@2 g4@2 ~@2 g4@2 a#4 ~@5 d4@2, d#3 ~@2 a#4, ~@2 g3@4 d#4@4 ~@2 d#4@7 ~ g#4@4",
  AH: "~@2 g4 ~@2 d#4 ~@4 g4 a#4, a#3@6 a#4@6 ~@2 g3@7 ~@3, ~@2 d#4@6 g4@4 d#3@9 ~@3, ~@8 a#3@3 ~, ~@3 d#4",
  AI: "~@4 c5 ~@4 g#4 c5 g#4, g#3@10 ~@2 g#3@9 ~@3, ~ c4@4 ~@2 c4@3 ~@2, ~@4 d#4@6 g#4@5 ~ d#4@4 ~@4, ~@3 d#5@5 ~@4",
  AJ: "~@3 d#5 ~@5 d#4 ~ g3, a#3@7 ~@5 d#4@4 a#3@4 ~@4, ~ d#4@3 ~ g4@2 ~@3 g4@2, ~@4 g4@4 a#4@5 ~ a#4@10",
  AK: "~@9 f4 g#4 d4, g#3@6 a#4@10 d4@5 ~@3, ~@2 a#3@5 ~@3 f4@4 a#3@4 ~@6, ~@4 d4@4 g#4@9 ~@7, ~@2 g#3 ~",
  AL: "~@6 d#5@2 ~@2 g4 ~@11 d#4@2, c4@5 ~@2 g#3@4 ~, ~ d#4@3 ~@4 d#4@2 g#4@2, ~@2 g4@2 c5@2 ~@3 c5@3",
  AM: "~@4 g4 d#4 ~ g3 a#3 ~ f4 d4, ~@2 g3@7 ~@15, ~ a#3@2 ~@3, ~@6 a#4@5 ~@7 g#4@6",
  AN: "~@8 g4@2 ~@6 d#4@2 f#4@2 b4 ~ d#5@2, d#3 ~@2, ~ g3@3 ~@2 f#3@5 ~, ~@4 a#3@5 ~ a#4@4 ~@10, ~@6 d#4@7 ~ b3@8 ~@2",
  AO: "~@4 b4 ~@3 e4 ~@2 f#4, g#3@3 ~ g#3@2 ~@2, ~@2 b3@7 ~@5 b3@5 ~@5, ~@2 e4@3 g#4@2 ~@3 b4@2, ~@3 e5@4 ~@2 d#5@3",
  AP: "~@3 g#4 ~@5 b4 g#4 e4, g#3@2 b4@2 e4 ~, ~ b3@4 ~ g#3@5 ~, ~@2 e4@3 e5@2 b3@4 ~",
  AQ: "~@5 e4 ~@2 e4@2 a4 e4, a3@4 ~@2 a3@5 ~, ~ c#4@2 c#5@3 ~@6, ~ e4 a4 ~@3",
  AR: "[~@10 g#4 b4@2 ~@7 b4 d#5 b4 f#4, g#3@8 ~@4 e3@9 ~@5 f#3@16 ~@6, ~@2 b3@8 e4@5 ~ b3@6 ~@6 b3@14 ~@6, ~@4 e4@4 g#4@6 g#3@7 ~@13 d#4@8 ~@6, ~@6 b4@9 ~@3 e4@5 ~@7 f#4@7 ~ f#4@6 ~@4]/2",
  AS: "~@3 e5 ~ g#4 ~@3 e5 c#5 a4, ~@2 g#3@8 ~@2 a3@9 ~@3, ~@4 c#4@8 ~@2 c#4@7 ~@3, ~@8 c#5@5 ~@3 e4@4 ~@4",
  AT: "~@8 e4 ~@2 f#4, g#3@8 b4@6 b3@5 ~@5, ~@2 b3@8 ~@2 g#3@7 ~@5, ~@4 e4@6 e5@5 ~@3 d#5@6, ~@6 g#4@9 ~@5 b4@4",
  AU: "~@10 e5@3 ~@5 e5@2 c#5@2 a4@2, g#3@8 b4@5 ~@11, ~ b3@4 ~@2 a3@4 ~, ~@4 e4@7 ~@5 c#4@6 ~@2, ~@6 g#4@7 ~@5 e4@4 ~@2",
  AV: "~@5 e5 ~@2 e4 ~ b4 a4, g#3@8 b4@4 ~@6 d#5@5 ~, ~@2 b3@8 ~@2 g#3@7 ~@5, ~@4 e4@8 ~@2 b3@5 ~@5, ~@3 g#4@4 ~@5",
  AW: "~@7 g#4@6 ~@11, g#4@5 e4@9 ~@10, ~@2 b3@11 ~@11",
})).s("gm_piano").gain(0.41)

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

// drums · rim
const rim = s("rim").struct("<~@5 A B A@4 ~@8 C A@5 D ~@31>".pickRestart({
  A: "~ x ~ x", B: "~@3 x ~@5 x ~ x", C: "~@3 x", D: "~ x ~@2",
})).gain(0.51)

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

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

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

stack(bass, piano, flute, flute_soft, piano_2, kick, rim, snare, hihat, crash)

More by Borg Andy