Strudelify

Auf der Autobahn

Oberkrainer

KeyG majorTempo126 bpm
0:00/0:00
// Auf der Autobahn — Oberkrainer
// 126 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · trombone
const trombone = note("<A B ~@48 C D ~@7 E ~@15 E ~@8 A B ~@16>".pickRestart({
  A: "d3!4 e3!4 g3 ~ g3 ~ e3 ~@3", B: "d3@2 ~ c3 b2 ~ a2 ~ g2 ~@3 d3@3 ~", C: "g3!4 f3!4 e3 ~ e3 ~ d3 ~@3",
  D: "g3@2 ~ f3 e3 ~ d3 ~ c3 ~@3 g2@4", E: "~@6 g3 a3 g3 ~ f3 ~ e3 ~ d3 ~",
})).s("gm_trombone").gain(0.8).pan(0.2)

// bass · acoustic bass
const bass = note(`<
  ~ A B C D E B C D F B C D E B C D G H I J K H I J L H I J K H I J M B C D E B C D F B C D E B C D G ~ N O P Q R S T U
  V O P W R X Y Z AA O P Q R S T U V O P W R X Y Z AB ~ A B C D E B C D F B C D E B C D AC
>`.pickRestart({
  A: "d2@2 ~ c2 b1 ~ a1 ~ g1 ~@3 d2@3 ~", B: "g2 ~@3 d2@2 ~@2 g2 ~@3 d2@2 ~@2",
  C: "g2 ~@2 g2 f#2@2 e2@2 d2 ~@3 a1@2 ~@2", D: "d2 ~@3 a1@2 ~@2 d2 ~@3 a1@2 ~@2",
  E: "d2@2 ~ d2 e2@2 f#2@2 g2 ~ f#2@2 e2 ~ d2@2", F: "d2@2 ~ c2 b1 ~ a1 ~ g1 ~@3 d2@4", G: "d2@2 ~ c2 b1 ~ a1 ~ g1 ~@7",
  H: "d2 ~@3 a1@3 ~ d2 ~@2 d2 f#2@2 f2@2", I: "e2 ~@3 a1@3 ~ e2 ~@3 a1@3 ~", J: "e2 ~@3 a1@3 ~ e2@2 ~ a1 b1@2 c#2@2",
  K: "d2 ~@3 f#2@3 a2 b2 ~ a2@2 f#2@2 e2@2", L: "d2 ~@3 a1@4 d2 ~@7", M: "d2 ~@3 a1@4 d2 ~@3 d2@4",
  N: "g2@2 ~ f2 e2 ~ d2 ~ c2 ~@3 g1@4", O: "c2 ~ g1 ~ c2 ~ g1 c2", P: "d2 ~ g1 ~ d2 ~ g1 ~",
  Q: "d2@2 ~@2 g1@2 ~@2 d2 ~ g1@2 a1@2 b1@2", R: "c2 ~ g1 ~ c2 ~ g1 ~", S: "c2@2 ~@2 g1@2 ~@2 c2 ~ c2@2 b1@2 a1@2",
  T: "g1 ~ d2 ~ g1 ~ d2 ~", U: "g1@4 ~@2 g1 ~ f1@4 ~@2 f1 ~", V: "g1 ~@4 g1 a1 b1", W: "d2 ~ g1 ~ d2 g1 a1 b1",
  X: "c2@2 ~@2 g1@2 ~@2 c2 ~ c2@2 d2@2 e2@2", Y: "f2 ~ c2 ~ f1 ~ c2 ~", Z: "g1@2 ~@2 d2@2 ~@2 g1@2 ~ g1 a1@2 b1@2",
  AA: "c2@2 ~@2 g1@4 c2 ~ g1@2 a1@2 b1@2", AB: "c2 ~ g1@2 c2 ~@3", AC: "d2@2 ~ c2 b1 ~ a1 ~ g1 ~@3 g1 ~@3",
})).s("gm_acoustic_bass").gain(0.44)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D E F C D G B C D E F C D H I J@2 K I J L M I J@2 K I J L N B C D E F C D G B C D E F C D H ~ O P Q R P@2 Q S
  T P Q R P@2 U V W P Q R P@2 Q S T P Q R P@2 U V W ~ A B C D E F C D G B C D E F C D X
>`.pickRestart({
  A: "[a3,d4,f#4] ~@2 [a3,d4,f#4]!2 ~ [a3,d4,f#4] ~ [b3,d4,g4] ~@3 [a3,d4,f#4]@4", // D G D
  B: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // G
  C: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~", // G D
  D: "[a3,d4,f#4]@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~", // D
  E: "~@2 [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4]!2", // D G
  F: "[b3,d4,g4]@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [b3,d4,g4] ~", // G
  G: "[a3,d4,f#4]@2 ~ [a3,d4,f#4]!2 ~ [a3,d4,f#4] ~ [b3,d4,g4] ~@3 [a3,d4,f#4]@4", // D G D
  H: "[a3,d4,f#4]@2 ~ [a3,d4,f#4]!2 ~ [a3,d4,f#4] ~ [b3,d4,g4] ~@7", // D G
  I: "[a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2 [a3,d4,f#4] ~", // D
  J: "[a3,c#4,g4]@2 [a3,c#4,g4] ~ [a3,c#4,g4]@2 [a3,c#4,g4] ~ [a3,c#4,g4]@2 [a3,c#4,g4] ~ [a3,c#4,g4]@2 [a3,c#4,g4] ~", // A7
  K: "[a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2 [a3,d4,f#4]!6", // D
  L: "[a3,c#4,g4]@2 [a3,c#4,g4] ~ [a3,c#4,g4]@2 [a3,c#4,g4] ~ [a3,c#4,g4]@3 [a3,c#4,g4] [a3,c#4,g4]@2 [a3,c#4,g4]@2", // A7
  M: "[a3,d4,f#4] ~@3 [a3,c#4,g4]@4 [a3,d4,f#4]@2 ~@6", // D A7 D
  N: "[a3,d4,f#4] ~@3 [a3,c#4,g4]@4 [a3,d4,f#4]@2 ~@2 [a3,c4,d4,f#4]@4", // D A7 D D7
  O: "[g3,b3,f4]@2 ~ [g3,b3,f4]!2 ~ [g3,b3,f4] ~ [g3,c4,e4] ~@3 [g3,b3,f4]@4", // G7 C G7
  P: "~@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C
  Q: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G
  R: "~@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~@3 [g3,b3,f4] ~@3 [g3,b3,f4] ~", // G G7
  S: "[g3,b3,d4]@2 ~ [g3,b3,d4] [f3,a3,c4]@2 ~ [f3,a3,c4]", T: "[g3,b3,d4] ~@15",
  U: "~@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~", // F
  V: "~@2 [g3,b3,f4] ~@3 [g3,b3,f4] ~ [g3,b3,f4]@2 ~ [g3,b3,f4] [g3,b3,f4]@2 [g3,b3,f4]@2", // G7
  W: "[g3,c4,e4] ~ [g3,b3,f4]@2 [g3,c4,e4] ~@3", // C G7 C
  X: "[a3,d4,f#4]@2 ~ [a3,d4,f#4]!2 ~ [a3,d4,f#4] ~ [b3,d4,g4] ~ [b3,d4,g4]!3 ~@3", // D G
})).s("gm_acoustic_guitar_steel").gain(0.56).pan(0.1)

// chords · accordion
const accordion = note(`<
  ~@2 A B C D A B C E A B C D A B C E ~@8 F G@2 F@2 G H I A B C D A B C E A B C D A B C E ~ J K L@2 K M L N O K L@2 K@2
  P Q R K L@2 K M L N O K L@2 K@2 P Q S ~@2 A B C D A B C E A B C D A B C T
>`.pickRestart({
  A: "[d4,g4,b4]!3 ~ [e4,g4,b4]!3 ~ [d4,g4,b4]!3 ~ [e4,g4,b4]!3 ~", // G Em G Em
  B: "[d4,g4,b4]!3 ~ [e4,g4,b4]!3 ~ [d4,f#4,a4,c5]!3 ~ [d4,f#4,a4,c5]!3 ~", // G Em D7
  C: "[d4,f#4,a4,c5]!3 ~ [d4,f#4,a4,c5]!3 ~ [d4,f#4,a4,c5]!3 ~ [d4,f#4,a4,c5]!3 ~", // D7
  D: "[d4,f#4,a4,c5]!3 ~ [d4,f#4,a4,c5]!3 ~ d4@2 f#4 ~ e4@2 d4 ~, ~ [g4,b4]", // D7 G
  E: "[d5,f#5]@2 ~ [c5,e5] [b4,d5] ~ [a4,c5] ~ [g4,b4] ~@7", // D C Bm Am G
  F: "[d4,f#4,a4]!3 ~ [d4,f#4,a4]!3 ~ [d4,f#4,a4]!3 ~ [d4,f#4,a4]!3 ~", // D
  G: "[e4,g4,a4]!3 ~ [e4,g4,a4]!3 ~ [e4,g4,a4]!3 ~ [e4,g4,a4]!3 ~", // A7
  H: "[e4,g4,a4]!3 ~ [e4,g4,a4]!3 ~ [e4,g4,a4] ~@2 [e4,g4,a4] [e4,g4,b4] ~ [e4,g4,c#5] ~", // A7 Em C#dim
  I: "[f#4,a4,d5] ~@3 [g4,a4,c#5]@4 [f#4,a4,d5] ~@3 [f#4,a4,c5,d5]@4", // D A7 D D7
  J: "[g4,b4]@2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [c4,e4] ~@7", // G F Em Dm C
  K: "[e4,g4,c5]!3 ~ [e4,g4,c5]!3 ~ [e4,g4,c5]!3 ~ [e4,g4,c5]!3 ~", // C
  L: "[d4,g4,b4]!3 ~ [d4,g4,b4]!3 ~ [d4,g4,b4]!3 ~ [d4,g4,b4]!3 ~", // G
  M: "[e4,g4,c5]!3 ~ [e4,g4,c5]!3 ~ [e4,g4,c5] [g4,c5] [e4,g4,c5] ~ [e4,g4,c5]!3 ~", // C C5 C
  N: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [c4,f4,a4]@4 ~@2 [c4,f4,a4] ~", O: "[d4,g4,b4] ~@7",
  P: "[c4,f4,a4]!3 ~ [c4,f4,a4]!3 ~ [c4,f4,a4]!3 ~ [c4,f4,a4]!3 ~", // F
  Q: "[d4,g4,b4]!3 ~ [d4,g4,b4]!3 ~ [d4,f4,g4,b4] ~@2 [d4,f4,g4,b4]!2 ~ [d4,f4,g4,b4] ~", // G G7
  R: "[e4,g4,c5] ~@3 [d4,g4,b4]@4 [e4,g4,c5] ~ g4!6", S: "[e4,g4,c5] ~@3 [d4,g4,b4]@4 [e4,g4,c5] ~@7",
  T: "[d5,f#5]@2 ~ [c5,e5] [b4,d5] ~ [a4,c5] ~ [g4,b4] ~ [d4,g4,b4]!3 ~@3", // D C Bm Am G
})).s("gm_accordion").gain(0.4).pan(0.8)

// chords · accordion
const accordion_2 = note("<~@17 A B C D E F G H I ~@76>".pickRestart({
  A: "~@12 [b4,d5]@3 [a#4,d5]", B: "[a4,d5]!2 [a4,d5]@2 [d4,f#4] ~ [f#4,a4]@2 [a4,d5] ~ [a4,d5] ~ [b4,d5]@3 [a#4,d5]",
  C: "[a4,c#5]!3 ~ [c#4,e4] ~ [e4,g4] ~ [a4,c#5]@3 ~ [b4,d5]@3 [a#4,d5]", // A C#m Em A Bm A#
  D: "[a4,c#5]!3 ~ [c#4,e4] ~ [e4,g4] ~ [a4,c#5] ~ [a4,c#5] ~ [b4,d5]@2 ~ [a#4,d5]", // A C#m Em A Bm A#
  E: "[a4,d5]!2 [a4,d5]@2 [d4,f#4] ~ [f#4,a4] ~ [a4,d5]@2 ~@2 [b4,d5]@2 ~ [a#4,d5]", // D5 D F#m D5 Bm A#
  F: "[a4,d5]!2 [a4,d5]@2 [d4,f#4] ~ [f#4,a4]@2 [a4,d5] ~ [a4,d5] ~ [b4,d5]@2 ~ [a#4,d5]", // D5 D F#m D5 Bm A#
  G: "[a4,c#5]!3 ~ [c#4,e4] ~ [e4,g4] ~ [a4,c#5]@2 ~@2 [b4,d5]@2 ~ [a#4,d5]", // A C#m Em A Bm A#
  H: "[a4,c#5] ~ [a4,c#5]@4 [b4,d5] ~ [a4,c#5]@2 ~ [g4,b4] [f#4,a4] ~ [e4,g4] ~", // A Bm A G F#m Em
  I: "[d4,f#4] ~@3 [c#4,g4]@4 [d4,f#4] ~@7", // D C#dim D
})).s("gm_accordion").gain(0.8).pan(0.8)

// other · trumpet
const trumpet = note(`<
  ~ A B C D E B C D A B C D E B C D A ~@7 F G H I J K L M N B C D E B C D A B C D E B C D A ~ O P Q R S T U V W P Q R S
  X Y Z AA AB AC AD AE T U V W AB AC AD AE X Y Z AA ~ A B C D E B C D A B C D E B C D AF
>`.pickRestart({
  A: "d5@2 ~ c5 b4 ~ a4 ~ g4 ~@7", B: "d4!3 ~ e4!3 ~ g4 ~ g4 ~ e4@2 ~@2", C: "d4!2 d4@2 e4!2 e4@2 f#4 ~ f#4 ~ e4@2 ~@2",
  D: "d5!2 d5@2 c5!3 ~ b4 ~ b4 ~ a4@2 ~@2", E: "d5!2 d5@2 c5!2 c5@2 b4 ~ b4 ~ g4@2 ~@2", F: "~@12 [b4,d5]@3 [a#4,d5]",
  G: "[a4,d5] ~ [a4,d5]@2 [d4,f#4]@2 [f#4,a4] ~ [a4,d5] ~ [a4,d5] ~ [b4,d5]@3 [a#4,d5]", // D5 D F#m D5 Bm A#
  H: "[a4,c#5] ~ [a4,c#5] ~ [c#4,e4]@2 [e4,g4] ~ [a4,c#5]@3 ~ [b4,d5]@3 [a#4,d5]", // A C#m Em A Bm A#
  I: "[a4,c#5] ~ [a4,c#5] ~ [c#4,e4]@2 [e4,g4] ~ [a4,c#5] ~ [a4,c#5] ~ [b4,d5]@2 ~ [a#4,d5]", // A C#m Em A Bm A#
  J: "[a4,d5] ~ [a4,d5]@2 [d4,f#4]@2 [f#4,a4] ~ [a4,d5]@2 ~@2 [b4,d5]@2 ~ [a#4,d5]", // D5 D F#m D5 Bm A#
  K: "[a4,d5] ~ [a4,d5]@2 [d4,f#4]@2 [f#4,a4] ~ [a4,d5] ~ [a4,d5] ~ [b4,d5]@2 ~ [a#4,d5]", // D5 D F#m D5 Bm A#
  L: "[a4,c#5] ~ [a4,c#5] ~ [c#4,e4]@2 [e4,g4] ~ [a4,c#5]@2 ~@2 [b4,d5]@2 ~ [a#4,d5]", // A C#m Em A Bm A#
  M: "[a4,c#5] ~ [a4,c#5]@4 [b4,d5] ~ [a4,c#5]@2 ~ [g4,b4] [f#4,a4] ~ [e4,g4] ~", // A Bm A G F#m Em
  N: "[d4,f#4] ~@3 [c#4,g4]@4 [d4,f#4] ~@7", O: "[g4,b4]@2 ~ [f4,a4] [e4,g4] ~ [d4,f4] ~ [c4,e4] ~@7",
  P: "e4@5 ~ d#4@2 e4@2 c4@2 d4@2 e4@2", Q: "f4@2 g4@11 ~@3", R: "g4@6 a4@2 b4@2 a4@2 g4@2 f4 ~", S: "f4 e4@5 ~@2",
  T: "c5 ~ c5 ~ c5 ~ c5@2 b4@2 a4 ~ b4@2 a4@2", U: "g4 f4@5 ~@2", V: "b4 g4 b4 g4 a4 f4 a4 f4", W: "g4 ~@15",
  X: "c5 ~ c5 ~ c5 ~ c5 ~ b4@2 a4@2 b4@2 a4@2", Y: "g4@2 f4@6 ~@2 a4 ~ a4 ~ a4 ~",
  Z: "g4@2 f4 ~ g4@2 f4@2 b4 ~@2 b4 a4@2 b4 ~", AA: "c5 ~@3 b4@4 c5 ~@7", AB: "g4@5 ~ f#4@2 g4@2 e4@2 f4@2 g4@2",
  AC: "a4@2 b4@11 ~@3", AD: "b4@6 c5@2 d5@2 c5@2 b4@2 a4 ~", AE: "a4 g4@5 ~@2", AF: "d5@2 ~ c5 b4 ~ a4 ~ g4 ~ g5!3 ~@3",
})).s("gm_trumpet").gain(0.8).pan(0.6)

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

// drums · clap
const clap = s("cp").struct("<~@94 [x!4]!7 [x ~@2 x!2 ~ x ~ x ~ x!3 ~@3]>").gain(0.48)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B C B C B C@2 A B C B C B C@2 D E@3 F E@2 G H E@3 F E@2 G I B C B C B C@2 J B C B C B C@2 D K A B C B C B L M N B
  C B C B C O P B C B C B L M N B C B C B C O H ~ A B C B C B C@2 A B C B C B C@2 Q
>`.pickRestart({
  A: "x ~@2 x!2 ~ x ~ x ~@3 x ~@2 x", B: "~ x ~ x ~ x ~ x", C: "~@2 x ~@3 x ~@3 x ~@3 x!2", D: "x ~@2 x!2 ~ x ~ x ~@7",
  E: "~ x ~ x", F: "~@4 x ~@5 x!3 ~ x ~", G: "~@4 x ~ x!3 ~@2 x!2 ~ x ~", H: "x!3 ~", I: "x ~@3 x ~@3 x ~@5 x!2",
  J: "x ~@2 x!2 ~ x ~ x ~@5 x!2", K: "~@15 x", L: "~@2 x ~@3 x ~@3 x ~@2 x!3", M: "x ~@6 x!2 ~@6 x", N: "x",
  O: "~@2 x ~@3 x!3 ~@2 x!2 ~ x ~", P: "x ~@3 x ~@3 x ~ x!6", Q: "x ~@2 x!2 ~ x ~ x ~ x!3 ~@3",
})).gain(0.56)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  A B ~@7 B ~@23 C ~@7 C ~@8 B@2 ~@5 D E A ~@13 D E A ~@8 A B ~@7 B ~@8
>`.pickRestart({
  A: "~@14 x!2", B: "~@7 x", C: "~@12 x!2 ~@2", D: "~@11 x!2 ~@3", E: "~@3 x ~@3 x",
})).gain(0.32)

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

// drums · open hat
const open_hat = s("oh").struct("<~@21 [~@7 x] ~@7 [~@7 x] ~@72>").gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~ A B ~@3 B ~ B A B ~@3 B ~ B C B ~@2 D B ~ E C B ~@2 D B ~ E A B ~@3 B ~ B A B ~@3 B ~ B C ~ A B ~@3 B ~ E B@2 ~@3
  B@2 E A B ~@3 B ~ E B@2 ~@3 B@2 E C ~ A B ~@3 B ~ B A B ~@3 B ~ B A
>`.pickRestart({
  A: "x!4", B: "x", C: "x!3 ~", D: "~@3 x", E: "x!2",
})).gain(0.48)

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

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@18 A@6 B C A@6 B D ~@18 E@6 F G E@6 H C E@6 F G E@6 H C ~@2 E@7 I E@7 I
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@3 x ~@2 x!2 ~ x ~", C: "x!3 ~", D: "x!4", E: "~ x ~ x ~ x ~ x", F: "x ~@2 x!2 ~@2 x",
  G: "x", H: "~@2 x ~@3 x ~ x ~@2 x!2 ~ x ~", I: "x ~@2 x!2 ~ x ~ x ~@3 x ~@3",
})).gain(0.4)

// drums · shaker
const shaker = s("sh").struct("<~@18 A B A C A B D E A B A C A B D E ~@68>".pickRestart({
  A: "~@2 x!2 ~@2 x ~@3 x ~@3 x ~", B: "~ x ~ x ~ x ~ x", C: "~@2 x ~@3 x ~@3 x ~@3 x!2",
  D: "~@2 x!2 ~@2 x ~ x ~@2 x!2 ~ x ~", E: "x!3 ~",
})).gain(0.48)

stack(
  trombone, bass, acoustic_guitar_steel, accordion, accordion_2, trumpet, kick, clap, snare, snare_soft, hihat,
  open_hat, crash, ride, tambourine, shaker
)

More by Oberkrainer