Strudelify

Wie der Wind wehst du mir ins Gesicht

Brunner & Brunner

KeyC majorTempo130 bpm
0:00/0:00
// Wie der Wind wehst du mir ins Gesicht — Brunner & Brunner
// 130 bpm, 4/4, key C 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 110 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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.

// other · piano
const piano = note("<~@24 A@7 B@7 C@2 ~@24 A@7 B@7 C@2 ~@8 A@7 B@7 C@2 D@4 ~@2>".pickRestart({
  A: "[~@4 f3 e3@2 g2@5 f3@2 e3 g2@5 f3@2 e3 a2@13 f3 e3@2 a2@5 f3@2 e3 d3@5 c3@2 d3 e3]/7",
  B: "[~@2 d3 c3@20 ~ f3@2 e3@4 g2@10 f3@2 e3@4 g2@10 e3@2 g3@4 f3@3 d3 ~ c3@21 a2@4 f3@2 e3@4 c3@5 ~ g2@4 e3@2 d3@2]/7",
  C: "[~ b2@2 d3@2 c3 b2 c3@9]/2", D: "[~@8 a2@4 f3@2 e3@4 c3@5 ~ g2@4 e3@2 d3@4 b2@4 d3@4 c3@2 b2@2 c3@18]/4",
})).s("gm_piano").gain(0.03)

// chords · piano
const piano_2 = note(`<
  ~@2 A@4 B ~ C ~@6 D E F ~@2 G@2 ~ H I ~@6 J@2 ~@6 J@2 ~@2 K@3 ~ L@2 ~ M ~@4 N O ~@2 P Q@2 ~@2 R ~@6 J@2 ~@6 J@2 ~ S
  ~@4 T U ~@6 V@2 ~@3 W X ~@6 Y@2
>`.pickRestart({
  A: "[~@22 d6@13 ~@7 [a4,c5,a5]@4 ~@14 a5@4, ~@14 [d4,d5]@21 ~@11 [g4,a#4,g5]@18, ~@18 a#4@17 ~@5 [a#4,d5,a#5]@7 ~@17, ~@20 f5@15 ~@29]/4", // Am D Gm A#
  B: "[c5,e5,g5]", C: "g4 a4 f4 c4@4 ~", D: "~@3 c4 f4 g4 ~ c5, ~@3 e4", E: "e5@2 ~ g5@2 c5@2 ~, ~ f5 ~@2",
  F: "[a4,c5,a5]@7 ~@9", G: "[~@6 c5@2 a4@2 ~@2 g4@2 a4 ~ [f4,g4,a4]@9 ~@7, ~@10 f5@15 ~@7]/2", H: "~@7 g3",
  I: "b3@2 d4@2 g4@11 ~", J: "[~@6 g4@2 c5@2 d5 ~ e5 ~ c6@8 ~@10]/2",
  K: "[~@12 a5@2 c6@7 ~@5 [e5,g5,e6]@3 ~ [d5,f5,a5]@7 ~@11, ~@24 [f5,a5,f6]@5 ~@19]/3", // Em Dm F
  L: "[~@2 [f4,d5] [e4,c5]@2 ~@3, ~@3 [g4,e5]@3 ~@10]/2", M: "~@3 c4 g4 c5@3", N: "~@2 c4 e4 g4 c5@2 f4, ~@2 g3@5 ~@9",
  O: "e4 g4@5 ~@2", P: "~@3 [a#4,d5,a#5]", Q: "[a4,c5,a5]/2", R: "~@3 d5, g3@4 a4 b4@3, ~ b3@7, ~ d4@3, ~@3 g4@5",
  S: "~@3 b4 g#4@4", T: "~@7 g4", U: "f5@2 e5@2 c5@2 g4@9 ~", V: "[~@8 c6@2 g6@4 c6@9 ~@9]/2", W: "~ e5 d5 c5",
  X: "g4@3 ~@5", Y: "[[c1,c2]@31 ~]/2",
})).s("gm_piano").gain(0.24).pan(0.7)

// other · timpani
const timpani = note("<[~@10 f3!6] ~@109>").s("gm_timpani").gain(0.14)

// other · timpani · soft notes
const timpani_soft = note("<[~@8 f3!2 ~@6] ~@109>").s("gm_timpani").gain(0.07)

// other · pad choir
const pad_choir = note(`<
  A@4 B@5 ~@4 C D E F G H@2 I ~ J I K@4 L@8 M@2 N O@2 ~@12 C D P ~ Q H@2 I ~ J I R@4 S@8 T@2 N O@2 U@2 V@4 W@5 S@8 T@2 N
  X@3 N Y@2 ~
>`.pickRestart({
  A: "[~@4 a#5 a5@2 c5@5 a#5 a5@2 c5@5 a#5 a5@2 d5@9]/4", B: "[~@4 a#5 a5@2 g5@5 a#5 a5@2 g5@5 f5 e5@2 f5@13 ~@4]/5",
  C: "a#4", D: "d5", E: "g5@3 f5@3 e5@2", F: "c5", G: "a5@6 e5@9 ~", H: "[f5@7 c5]/2", I: "f5@7 ~", J: "g5@15 ~",
  K: "[~@4 f5 e5@2 g4@5 f5@2 ~ g4@5 f5@2 e5 a4@9, ~@7 e5 ~@8]/4",
  L: "[~@4 f5 e5@2 d5@5 f5 e5@2 d5@5 c5 b4@2 c5@13 f5 e5@2 g4@5 f5 e5@2 g4@5 e5 g5@2 f5@9]/8",
  M: "[~@8 a4@3 ~ f5 ~ e5@4 c5@2 ~@4 g4@2 ~@2 e5 ~ d5@2]/2", N: "~@2 b4@2 ~@2 d5@3 ~ c5 ~ b4@2 ~@2", O: "[c5@9 ~@7]/2",
  P: "g5", Q: "~@6 e5@9 ~", R: "[~@4 f5 e5@2 g4@5 f5 e5@2 g4@5 f5 e5@2 a4@9]/4",
  S: "[~@8 f5@2 e5@4 d5@10 f5@2 e5@4 d5@10 c5@2 b4@4 c5@26 f5@2 e5@4 g4@10 f5@2 e5@4 g4@10 e5@2 g5@4 f5@6 f5@2 ~@2 e5@2 ~@2 d5 ~@3]/8",
  T: "[g4@7 ~ a4@3 ~ f5 ~ e5@4 c5@2 ~@4 g4@2 ~@2 e5 ~ d5@2]/2", U: "[g5@2 f5@2 e5 f5@2 d5@9]/2",
  V: "[f5@2 e5@2 d5 e5@2 c5@8 e5@2 c5@6 d5@2 b4@2 d5@2 c5 b4@2]/4",
  W: "[c5@10 ~@2 f5 e5@2 g4@5 f5 e5@2 g4@5 f5 e5@2 a4@9]/5",
  X: "[c5@18 ~@6 g4@3 ~ f5 ~ e5@4 c5@2 ~@4 g4@2 ~@2 e5 ~ d5@2]/3", Y: "[c5@13 ~@3]/2",
})).s("gm_pad_choir").gain(0.2).pan(0.6)

// other · orchestra hit
const orchestra_hit = note(`<
  ~ A ~@5 A ~@17 B ~@5 B ~ B ~@7 B ~@5 C D ~@16 B ~@7 B ~@5 E ~@8 F ~@8 B ~@5 E ~@4 G ~
>`.pickRestart({
  A: "~@2 [f4,f5] ~@5", B: "~@2 [c5,c6] ~@5", C: "~@4 [c5,c6]@2 ~@8 g3 ~", D: "c4@3 ~@13", E: "~@6 [c4,c5] ~",
  F: "~@4 [c4,c5]@3 ~@9", G: "[c4,c5]@3 ~",
})).s("gm_orchestra_hit").gain(0.31)

// other · koto
const koto = note("<~@13 A B C D ~@23 E@4 F@5 ~@4 A B G ~@54>".pickRestart({
  A: "a#4", B: "d5", C: "g5@3 f5@3 e5@2", D: "c5", E: "[~@4 f5 e5@2 g4@5 f5 e5@2 g4@5 f5 e5@2 a4@9]/4",
  F: "[~@4 f5 e5@2 d5@5 f5 e5@2 d5@5 c5 b4@2 c5@13 ~@4]/5", G: "g5@3 ~@5",
})).s("gm_koto").gain(0.16).pan(0.7)

// other · french horn
const french_horn = note(`<
  ~@27 A@2 B@2 C@2 ~@2 D E ~@2 F@2 ~@4 B@2 G H ~@7 I J ~@9 A@2 B@2 K@2 ~@2 D E ~@2 L M N@2 O@2 ~@2 P Q ~@2 A@2 B@2 K@2
  ~@2 D E ~@2 L M ~@2 L R ~
>`.pickRestart({
  A: "[~@4 f4 e4@2 c4@5 ~@4]/2", B: "[d4@29 ~@3]/2", C: "[c4@9 ~@7]/2", D: "f4@2 e4 d4", E: "c4@7 ~",
  F: "[~@8 f4@3 e4@3 c4@14 ~@4]/2", G: "~@2 f4 e4, c4", H: "c4 ~@7", I: "~@2 a4 a#4", J: "c5",
  K: "[~@8 d4@2 c4@4 g3@15 ~@3, [c4,e4]@5 ~@11]/2", L: "~@2 c4 e4", M: "g3@15 ~", N: "[d4@3 b3]/2", O: "c4/2",
  P: "~@3 c4 f4@2 e4@2", Q: "c4", R: "c4 ~@3",
})).s("gm_french_horn").gain(0.29)

// bass · synth bass 2
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q R G S A T G U V T W X Y Z AA AB V T W X V AC AA AB V T W X Y Z AA AB I J K L M N O
  P Q R G S A T G U V T W X Y Z AA AB V T W X V AC AA AB AD AE AF AG V AH AA AB V T W X Y Z AA AB V T W X V AC AA AB V
  AC AA AI ~
>`.pickRestart({
  A: "f1 ~ [f1,f2] f2 f1 ~ [f1,f2] ~ f1 ~ [f1,f2] ~ f1 ~ [f1,f2] ~", // F
  B: "f1 ~ [f1,f2] f2 f1 ~ [f1,f2] f2 f1 ~ [f1,f2] ~ f1 ~ [f1,f2] ~", // F
  C: "a#1 ~ [a#1,a#2] a#2 a#1 ~ [a#1,a#2] ~ a#1 ~ [a#1,a#2] ~ a#1 ~ [a#1,a#2] a#1", // A#
  D: "a#1!2 [a#1,a#2] a#2 a#1 ~ [a#1,a#2] a#2 a#1 ~ [a#1,a#2] ~ a#1 ~ a#1@2, ~@14 a#2 ~", // A#
  E: "g1 ~ [g1,g2] g2 g1 ~ [g1,g2] ~ g1 ~ [g1,g2] ~ g1 ~ [g1,g2] ~", // G
  F: "c2 ~ [c2,c3] c3 c2 ~ [c2,c3] c3 c2 ~ [c2,c3] ~ c2 ~ [c2,c3] ~", // C
  G: "f1 ~ [f1,f2] f2 f1 ~ [f1,f2] ~ f1 ~ [f1,f2] ~ f1 ~ [f1,f2] f1", // F
  H: "f1!2 [f1,f2] f2 f1 ~ [f1,f2] f2 f1 ~ [f1,f2] ~ f1 ~ [f1,f2] ~", // F
  I: "f1 ~ [f1,f3] f3 f1 ~ [f1,f3] ~ f1 ~ [f1,f3] ~ f1 ~ [f1,f3] ~", // F
  J: "e1 ~ [e1,e3] e3 e1 ~ [e1,e3] e3 e1 ~ [e1,e3] ~ e1 ~ [e1,e3] ~", // E
  K: "d1 ~ [d1,d3] d3 d1 ~ [d1,d3] ~ d1 ~ [d1,d3] ~ d1 ~ [d1,d3] d1", // D
  L: "d1!2 [d1,d3] d3 d1 ~ [d1,d3] d3 d1 ~ [d1,d3] ~ d1 ~ d1@2, ~@14 d3 ~", // D
  M: "a#1 ~ [a#1,a#2] a#2 a#1 ~ [a#1,a#2] ~ a#1 ~ [a#1,a#2] ~ a#1 ~ [a#1,a#2] ~", // A#
  N: "g1 ~ [g1,g2] g2 g1 ~ [g1,g2] g2 g1 ~ [g1,g2] ~ g1 ~ [g1,g2] ~", // G
  O: "c2 ~ [c2,c3] c3 c2 ~ [c2,c3] ~ c2 ~ [c2,c3] ~ c2 ~ [c2,c3] c2", // C
  P: "c2!2 [c2,c3] c3 c2 ~ [c2,c3] c3 c2 ~ [c2,c3] ~ c2 ~ [c2,c3] ~", // C
  Q: "a1 ~ [a1,a2] a2 a1 ~ [a1,a2] ~ a1 ~ [a1,a2] ~ a1 ~ [a1,a2] ~", // A
  R: "a#1 ~ [a#1,a#2] a#2 a#1 ~ [a#1,a#2] a#2 a#1 ~ [a#1,a#2] ~ a#1 ~ [a#1,a#2] ~", // A#
  S: "f1!2 [f1,f2] f2 f1 ~ [f1,f2] f2 f1 ~ [f1,f2] ~ f1 ~ f1@2, ~@14 f2 ~", T: "c2 ~ c2!3 ~ c2!3 ~ c2 ~ c2 ~ c2 ~",
  U: "g1!2 [g1,g2] g2 g1 ~ [g1,g2] g2 g1 ~ [g1,g2] ~ g1 ~ [g1,g2] ~", V: "c2 ~ c2!3 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  W: "f2 ~ f2!3 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2!2", X: "f2!5 ~ f2!3 ~ f2 ~ f2 ~ f2 ~",
  Y: "d2 ~ d2!3 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", Z: "g2 ~ g2!3 ~ g2!3 ~ g2 ~ g2 ~ g2 ~",
  AA: "c2 ~ c2!3 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2!2", AB: "c2!5 ~ c2!3 ~ c2 ~ c2 ~ c2 ~",
  AC: "g1 ~ g1!3 ~ g1!3 ~ g1 ~ g1 ~ g1 ~", AD: "g1 ~ g1!3 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1!2",
  AE: "g1!5 ~ g1!2 e1 ~ e1 ~ e1 ~ e1 ~", AF: "a1 ~ a1!3 ~ a1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  AG: "f1 ~ f1!3 ~ f1!3 ~ f1 ~ g1 ~ e2@2, ~@14 f1 ~",
  AH: "g2 ~ [g1,g2] g1 g2 ~ [g1,g2] g1 g2 ~ [g1,g2] ~ g2 ~ a2@2, ~@14 g1 ~", AI: "c2@13 ~@3",
})).s("gm_synth_bass_2").gain(0.57)

// chords · pad warm
const pad_warm = note(`<
  ~ A@2 B@2 C D E@2 A F G@2 H I J@2 K L@4 M N O P@2 Q@2 R S T@2 P@2 Q@2 D U V@2 P@2 Q@2 R S T@2 A F G@2 H I J@2 K L@4 M
  N O P@2 Q@2 R S T@2 P@2 Q@2 D U V@2 W@2 X Y Z@2 AA@3 P Q@2 R S T@2 P@2 Q@2 D U V@2 D U AB@2 ~
>`.pickRestart({
  A: "[a3,c4,f4]", B: "[f3,a#3,d4]/2", C: "[a#3,d4,g4]", D: "[c4,e4,g4]", E: "[a3,c4,f4]/2", F: "[g3,e4], c4 ~@15",
  G: "[~ f4, [f3,a3,d4]@31 ~]/2", H: "[f3,a#3,d4]", I: "[d3,g3,a#3]", J: "[[c4,e4], g3 ~@31]/2", K: "[a3,c4,e4]",
  L: "[[a#3,d4,f4]@11 [a3,c4,f4]@21]/4", M: "[e3,g3,c4]", N: "[a3,f4], c4 ~@15", O: "[g3,b3,d4]", P: "[e4,g4,c5]",
  Q: "[c4,f4,a4]/2", R: "[f4,a4,d5]", S: "[g4,b4,d5]", T: "[e4,g4,c5]/2", U: "[b3,d4,g4]", V: "[c4,e4,g4]/2",
  W: "[[b3,d4,g4]@3 [g#3,b3,e4]]/2", X: "[a3,c4,e4] [g3,b3,d4]", Y: "[f3,a3,c4]",
  Z: "[[c4,e4] [b3,d4], g3, ~@16 e4 ~@15]/2", AA: "[[e3,c4]@2 [e4,g4,c5], g3 ~@47]/3", AB: "[[c4,e4,g4]@29 ~@3]/2",
})).s("gm_pad_warm").gain(0.16)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~ A B C D E F G H ~@16 I J K L M N O P I J K L Q R O P I J K L M N O P ~@13 S T U I J K L M N O P I J K L Q R O P ~@8
  V J K L M N O P I J K L Q R O P Q R O ~@2
>`.pickRestart({
  A: "[c3,f3] ~ c3 ~ [c3,f3] ~ [c3,f3] ~@3 [c3,f3] ~ [c3,f3] ~ c3 ~", // F5
  B: "[c3,f3] ~@3 [c3,f3] ~ [c3,f3] ~@3 [c3,f3] ~ [c3,f3] ~@3", // F5
  C: "[f3,a#3] ~ [f3,a#3] ~ [f3,a#3] ~ [f3,a#3]@2 ~@2 [f3,a#3] ~ [f3,a#3]@2 ~@2", // A#5
  D: "[f3,a#3] ~@3 [f3,a#3] ~ [f3,a#3]@2 ~@2 [f3,a#3] ~ [f3,a#3]@2 ~@2", // A#5
  E: "[d3,g3] ~ g3 ~ [d3,g3] ~ [d3,g3] ~ g3 ~ [d3,g3] ~ [d3,g3]@3 ~", // G5
  F: "[g3,c4] ~ g3 ~ [g3,c4] ~ [g3,c4] ~ [g3,c4] ~ [g3,c4] ~ [g3,c4]@2 ~@2", // C5
  G: "[c3,f3] ~ f3 ~ [c3,f3] ~ [c3,f3] ~@3 [c3,f3] ~ [c3,f3] ~ f3 ~", // F5
  H: "[c3,f3] ~ f3 ~ [c3,f3] ~ [c3,f3]@2 ~ f3 [c3,f3] ~ [c3,f3] ~@3", // F5
  I: "[g3,c4] ~ g3 ~ [g3,c4] ~ [g3,c4]@2 ~@2 [g3,c4] ~ [g3,c4] ~ g3 ~", // C5
  J: "[g3,c4] ~@3 [g3,c4] ~ [g3,c4] ~@3 [g3,c4] ~ [g3,c4] ~@3", // C5
  K: "[c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4]@2 ~@2 [c4,f4] ~ [c4,f4]@2 ~@2", // F5
  L: "[c4,f4] ~@3 [c4,f4] ~ [c4,f4]@2 ~@2 [c4,f4] ~ [c4,f4]@2 ~@2", // F5
  M: "[a3,d4] ~ d4 ~ [a3,d4] ~ [a3,d4] ~ d4 ~ [a3,d4] ~ [a3,d4]@3 ~", // D5
  N: "[d4,g4] ~ d4 ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]@2 ~@2", // G5
  O: "[g3,c4] ~ c4 ~ [g3,c4] ~ [g3,c4] ~@3 [g3,c4] ~ [g3,c4] ~ c4 ~", // C5
  P: "[g3,c4] ~ c4 ~ [g3,c4] ~ [g3,c4]@2 ~ c4 [g3,c4] ~ [g3,c4] ~@3", // C5
  Q: "[g3,c4] ~ c4 ~ [g3,c4] ~ [g3,c4] ~ c4 ~ [g3,c4] ~ [g3,c4]@3 ~", // C5
  R: "[d3,g3] ~ d3 ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3]@2 ~@2", S: "~@2 c3 ~ c3 ~@3 c3 ~@3 c3 ~@3",
  T: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2@2 c3@2 f2@2", U: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  V: "[g3,c4] ~ g3 ~ [g3,c4] ~ [g3,c4] ~@3 [g3,c4] ~ [g3,c4] ~ g3 ~", // C5
})).s("gm_distortion_guitar").gain(0.17)

// chords · distortion guitar · soft notes
const distortion_guitar_soft = note(`<
  ~ A B C ~ D E F G ~@16 H I J ~ K L M N H I J ~ O P M N H I J ~ K L M N ~@13 Q ~@2 H I J ~ K L M N H I J ~ O P M N ~@8
  H I J ~ K L M N H I J ~ O P M N O P M ~@2
>`.pickRestart({
  A: "~@2 f3 ~@6 [c3,f3] ~@4 f3 ~", B: "~@2 c3 ~@5 [c3,f3] ~@5 [c3,f3] ~", C: "~@15 [f3,a#3]", D: "~@2 d3 ~@5 d3 ~@7",
  E: "~@2 c4 ~@13", F: "~@2 c3 ~@6 f3 ~@4 c3 ~", G: "~@2 c3 ~@6 c3 ~@6", H: "~@2 c4 ~@6 [g3,c4] ~@4 c4 ~",
  I: "~@2 g3 ~@5 [g3,c4] ~@5 [g3,c4] ~", J: "~@15 [c4,f4]", K: "~@2 a3 ~@5 a3 ~@7", L: "~@2 g4 ~@13",
  M: "~@2 g3 ~@6 c4 ~@4 g3 ~", N: "~@2 g3 ~@6 g3 ~@6", O: "~@2 g3 ~@5 g3 ~@7", P: "~@2 g3 ~@13",
  Q: "c3 ~@5 c3 ~@3 c3 ~@3 c3@2",
})).s("gm_distortion_guitar").gain(0.1)

// other · synth brass 1
const synth_brass_1 = note(`<
  ~@33 A@2 B@2 A C A@4 B@2 D C A@2 ~@18 B@2 ~@2 A@3 E B@2 A C A@2 ~@10 B@2 ~@2 A@4 B@2 A C A@3 C A ~@2
>`.pickRestart({
  A: "~@2 g4 c5 e5 c5 d5 c5 ~@8", B: "~@2 a4 c5 f5 c5 d5 c5 ~@8", C: "~@2 g4 b4 d5 b4 c5 b4 ~@8",
  D: "~ a4 d5 ~ f5 d5 e5 d5 ~@8", E: "~@2 g4 c5 e5 c5 d5 c5 ~@8, b4@7 ~",
})).s("gm_synth_brass_1").gain(0.22).pan(0.7)

// other · alto sax
const alto_sax = note(`<
  ~@9 A B@2 C D E@2 F G H I J@4 K@4 L@4 M@4 N@4 ~@8 O A P@2 Q@2 R@2 F S H T U@4 K@4 L@4 M@4 N@4 ~@8 K@4 L@4 M@4 N@4 V@4
  ~@2
>`.pickRestart({
  A: "a2@5 ~ a2@6 a#2@4", B: "[c3@5 ~ a2@6 g2@2 f2@12 ~@6]/2", C: "~@2 g2 a2", D: "a#2@3 ~ a#2@2 c3@2",
  E: "[d3@6 ~@2 a#2@2 a2@4 g2@15 ~@3]/2", F: "~@2 a2 a#2", G: "c3@5 ~ c3@6 e3@4", H: "f3@4 e3@2 d3@5 ~@3 e3@2",
  I: "d3@4 c3 ~ c3@7 ~ d3@2", J: "[c3@8 f2@2 g2@3 ~ a2@7 ~@3 a2@2 a#2@4 c3@6 ~@4 a2@2 g2@4 f2@14 ~@4]/4",
  K: "[~@8 f3@2 e3@4 g2@8 ~@2 f3@4 e3@2 g2@7 ~@3 f3@3 ~ e3@2 a2@14 ~@4]/4",
  L: "[~@8 f3@2 e3@4 a2@7 ~@3 f3@4 e3@2 d3@7 ~@3 c3@4 d3@2 e3@4 d3 c3@8 ~@5]/4",
  M: "[~@8 f3@2 e3@4 g2@6 ~@4 f3@2 e3@4 g2@7 ~@3 e3@2 g3@4 f3@3 d3 ~ c3@7 ~@6]/4",
  N: "[~@8 a2@3 ~ f3@2 e3@4 c3@4 ~@2 g2@3 ~ e3@2 d3@4 b2@3 ~ d3@4 c3@2 b2 ~ c3@10 ~@8]/4", O: "~@7 f2",
  P: "[c3@6 a2@6 g2@2 f2@11 ~@7]/2", Q: "[~@7 g2@3 a2@4 a#2@9 ~@5 c3@3 ~]/2", R: "[d3@6 ~@2 a#2@2 a2@3 ~ g2@10 ~@8]/2",
  S: "c3@7 ~ c3@4 e3@4", T: "d3@4 c3 ~ c3@6 d3@4",
  U: "[c3@7 ~ f2@2 g2@3 ~ a2@8 ~@2 a2@2 a#2@3 ~ c3@7 ~@5 a2@2 g2@2 f2@6 ~@12]/4",
  V: "[~@8 g2@3 ~ f3@2 e3@4 c3@4 ~@2 g2@3 ~ e3@2 d3@4 b2@3 ~ d3@4 c3@2 b2 ~ c3@10 ~@8]/4",
})).s("gm_alto_sax").gain(0.23)

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

More by Brunner & Brunner