Strudelify

Festzeltstimmung

Oberkrainer

KeyE♭ majorTempo125 bpm
0:00/0:00
// Festzeltstimmung — Oberkrainer
// 125 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 79 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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 · tuba
const bass = note(`<
  ~ A B C D E F C D E G H I J K L I M N L I O K L I M P C D E F C D E Q@2 R S T U V W T X R Y T Z AA W T AB AC H I O K L
  I M AD C D E F C D AE AF@2 R Y T Z AG W T AH AI
>`.pickRestart({
  A: "~@12 eb2@3 ~@3 f2 ~@2 g2 ~@2", B: "ab2 ~@5 eb2@3 ~@3 ab2@2 ~@4 eb2 ~@5", C: "ab2 ~@5 eb2 ~@5 ab2 ~@5 c3 ~@5",
  D: "eb3 ~@5 db3@2 ~@4 bb2 ~@5 eb2 ~@5", E: "bb2 ~@5 eb2 ~@5 bb2 ~@2 eb2!2 ~ f2 ~@2 g2 ~@2",
  F: "ab2 ~@2 g2 ~@2 f2 ~@2 eb2 ~@2 ab2 ~@5 eb2 ~@5", G: "ab2 ~@5 bb2@3 ~@3 eb2 ~@5 bb2 ~@5",
  H: "eb2 ~@5 bb2 ~@5 eb2 ~@3 g2 ~ bb2@2 ~@2 g2 ~", I: "f2 ~@5 bb2 ~@5 f2 ~@5 bb2 ~@5",
  J: "f2 ~@5 bb2 ~@5 f2 ~@3 bb2 ~ c3 ~@2 d3 ~@2", K: "eb3 ~@2 d3 ~@2 c3 ~@2 bb2 ~@2 eb3 ~@5 bb2 ~@3 g2 ~",
  L: "eb2 ~@5 bb2 ~@5 eb2 ~@3 g2 ~ bb2 ~@3 g2 ~", M: "f2 ~@5 bb2 ~@5 bb2 ~@4 ab2 g2 ~@2 f2 ~@2",
  N: "eb2 ~@5 bb2@4 ~@2 eb2 ~@5 bb2 ~@5", O: "f2 ~@5 bb2 ~@5 f2 ~@3 bb2 ~ c3 ~@3 d3 ~",
  P: "eb2@5 ~ f2 ~@2 g2 ~@2 ab2@2 ~@4 eb2 ~@5", Q: "[ab2 ~@11 ab2@18 ~@6 ab2@4 a2 bb2 ~@3 c3 ~@2]/2",
  R: "db3 ~@5 ab2@5 ~ db3 ~@5 ab2 ~@2 f2 ~@2", S: "db2 ~@5 ab2 ~@5 db2 ~@2 f2 ~@2 ab2@2 ~ f2 ~@2",
  T: "eb2 ~@5 ab2 ~@5 eb2 ~@5 ab2 ~@5", U: "eb2 ~@5 ab2 ~@5 eb2@2 ~@2 ab2 ~ bb2 ~@2 c3 ~@2",
  V: "db3 ~@2 c3@2 ~ bb2 ~@2 ab2 ~@2 db3 ~@5 ab2 ~@2 f2 ~@2", W: "db2 ~@5 ab2 ~@5 db2 ~@2 f2 ~@2 ab2 ~@2 f2 ~@2",
  X: "eb2 ~@5 ab2 ~@5 eb2 ~@2 ab2 ~@2 bb2 ~@2 c3 ~@2", Y: "db2 ~@5 ab2 ~@5 db2@2 ~ f2 ~@2 ab2@2 ~ f2 ~@2",
  Z: "eb2 ~@5 ab2 ~@5 eb2 ~@4 ab2 bb2 ~@2 c3 ~@2", AA: "db3 ~@2 c3 ~@2 bb2 ~@2 ab2 ~@2 db3 ~@5 ab2 ~@4 f2",
  AB: "eb2 ~@5 ab2 ~@5 eb2 ~@3 ab2 ~ bb2 ~@2 c3 ~@2", AC: "db3 ~@5 bb2@5 ~ eb2 ~@5 bb2 ~@5",
  AD: "eb2 ~@5 bb2@4 ~@2 ab2@2 ~@4 eb2 ~@5", AE: "bb2 ~@5 eb2 ~@5 bb2 ~@2 eb2 ~ eb2 f2 ~@2 g2 ~@2",
  AF: "[ab2 ~@2 eb2 ~@2 ab2 ~@5 ab2@18 ~@6 ab2@4 a2 bb2 ~@3 c3 ~@2]/2",
  AG: "db3 ~@2 c3 ~@2 bb2 ~@2 ab2 ~@2 db3 ~@5 ab2 ~@3 f2 ~", AH: "eb2 ~@5 ab2 ~@5 ab2 ~@4 ab2 bb2 ~@2 c3 ~@2",
  AI: "db3 ~@2 ab2 ~@2 db3 ~@17",
})).s("gm_tuba").gain(0.64)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H I J K L M N O P Q R K L M N O P Q S C T E F G H I U@2 V W X Y W@2 X Y Z W X Y AA W X AB AC K L M N O
  P Q AD C D E F G AE I AF@2 V W X Y W@2 X AG AH
>`.pickRestart({
  A: "~@6 [bb2,eb3,g3,db4,g4]@2 ~ [bb2,eb3,g3,db4,g4]@2 ~", // Eb7
  B: "[c3,eb3,ab3,c4,ab4]@3 ~@3 [bb2,eb3,g3,eb4,g4]@6 [eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4]@3 [eb3,ab3,c4,ab4]@2 ~", // Ab Eb Ab
  C: "[eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~", // Ab Ab5 Ab
  D: "[eb3,g3,eb4,g4]@5 ~ [eb3,g3,db4,g4]@5 ~ [eb3,g3,db4,g4]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4]@3 [eb3,g3,db4,g4]@2 ~", // Eb Eb7
  E: "[eb3,g3,db4,g4]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4,g4]@3 [eb3,g3,db4,g4]@2 ~", // Eb7 Eb Eb7
  F: "[eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~", // Ab
  G: "[eb3,ab3]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~", // Ab5 Ab Ab5 Ab
  H: "[eb3,g3,eb4,g4]@3 ~@3 [eb3,g3,db4,g4]@5 ~ [eb3,g3,db4,g4]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4]@3 [eb3,g3,db4,g4]@2 ~", // Eb Eb7
  I: "[g3,db4]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4,g4]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4,g4]@3 [eb3,g3,db4,g4]@2 ~", // Gdim Eb7
  J: "[eb3,ab3,c4,ab4]@3 ~@3 [ab3,bb3,d4,f4]@6 [eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2 [eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2", // Ab Bb7 Eb
  K: "[eb3,g3,eb4,g4]@3 ~ [eb3,g3,eb4]@2 [eb3,g3,eb4,g4]@3 ~@3 [g3,eb4,g4]@4 ~@2 [g3,eb4,g4]@4 [eb3,g3,eb4,g4] ~, ~@3 g4@2 ~@4 g4@2 eb3@4 ~ [eb3,g3,eb4,g4]@2 ~@6, ~@10 [eb3,g3,eb4]@2 ~@5 eb3@4 ~@3", // Eb Cm Eb
  L: "[f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@3 ~ d4@2 [d4,f4]@4 [f3,bb3,d4,f4]@2, ~@15 f4@2 ~@7, ~@8 [f3,bb3]@3 ~", // Bb Dm Bb Bb5
  M: "[f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4] ~", // Bb
  N: "[eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2 [eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2 [eb3,g3,eb4,g4]@3 ~ [g3,eb4]@2 [g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2, ~@15 g4@2 ~@7, ~@8 eb3@3 ~", // Eb Cm Eb
  O: "[eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2 [eb3,g3,eb4,g4]@3 ~ [eb3,g3]@2 [eb3,g3,eb4,g4]@3 ~ [eb3,g3,eb4]@2 [eb3,g3,eb4,g4]@3 ~ [eb3,g3,eb4] ~, ~@9 [eb4,g4]@2 ~@4 g4@2 ~@4 g4@2 ~", // Eb
  P: "[f3,bb3,d4,f4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@3 ~ [f3,bb3]@2 [f3,bb3,d4,f4]@3 ~ [f3,bb3,d4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2, ~@4 f4@5 [d4,f4]@3 ~@3 f4@2 ~@7", // Bb Bb5 Bb Dm
  Q: "[f3,bb3,d4,f4]@4 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4]@3 ~ f3@2 [f3,bb3,d4,f4]@5 ~@2 [d4,f4]@2 [f3,bb3,d4,f4]@2 ~, ~@9 [bb3,d4,f4]@3 ~@5 [f3,bb3,d4,f4]@2 ~@5, ~@6 [f3,bb3] ~", // Bb Dm Bb Bb5
  R: "[eb3,g3,eb4,g4]@7 ~@5 [eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2 [eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2", // Eb
  S: "[eb3,g3,eb4,g4]@5 ~ [eb3,g3,db4,eb4]@5 ~ [c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4]@3 [eb3,ab3,c4,ab4]@2 ~", // Eb Eb7 Fm Ab
  T: "[eb3,g3,eb4,g4]@4 ~@2 [eb3,g3,db4,g4]@5 ~ [eb3,g3,db4,g4]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4]@3 [eb3,g3,db4,g4]@2 ~", // Eb Eb7
  U: "[[eb3,ab3,c4,ab4]@9 ~@3 [eb3,ab3,c4,gb4,c5]@24 [eb3,ab3,c4,gb4,c5]@4 ~ [eb3,ab3,c4] [ab3,c4,gb4,c5]@3 [ab3,c4,gb4,c5]@2 ~, ~@20 [gb4,c5] eb3@3]/2", // Ab Ab7 Ab Ab7 Gbdim
  V: "[db3,f3,ab3,db4,f4]@3 ~@3 [eb3,ab3,c4,gb4,c5]@5 ~ f3@2 ~ [f3,ab3,db4]@3 ~@3 [f3,ab3,db4]@2 ~", // Db Ab7 Db
  W: "~@3 [f3,ab3,db4]@2 ~@4 [f3,ab3,db4] ~@5 [f3,ab3,db4]@2 ~@4 [f3,ab3,db4]@2 ~", // Db
  X: "~@3 [eb3,ab3,c4,gb4]@2 ~@4 [eb3,ab3,c4,gb4] ~@5 [eb3,ab3,c4,gb4]@2 ~@4 [eb3,ab3,c4,gb4]@2 ~", // Ab7
  Y: "~@3 [eb3,ab3,c4,gb4] ~@5 [eb3,ab3,c4,gb4]@2 ~@4 [eb3,ab3,c4,gb4] ~@5 [eb3,ab3,c4,gb4]@2 ~", // Ab7
  Z: "~@3 [f3,ab3,db4]@2 ~@4 [eb3,ab3,c4,gb4]@2 ~@4 [f3,ab3,db4]@2 ~@4 [f3,ab3,db4]@2 ~", // Db Ab7 Db
  AA: "~@3 [f3,ab3,db4]@2 ~@4 [f3,ab3,db4] ~@5 [f3,ab3,db4] ~@5 [f3,ab3,db4]@2 ~", // Db
  AB: "~@3 [eb3,ab3,c4,gb4] ~@5 [eb3,ab3,c4,gb4]@2 ~ [eb3,ab3,c4,gb4]@5 [eb3,ab3,c4,gb4,c5] ~ [c4,gb4,c5]@2 ~ [eb3,ab3,c4]@2, ~@18 [eb3,ab3]@3 [gb4,c5]@2 ~", // Ab7 Cdim Ab Ab5 Gbdim
  AC: "~ [db4,f4,db5]@5 [f3,bb3,d4,f4]@5 ~ [eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2 [eb3,g3,eb4,g4]@4 [eb3,g3,eb4,g4]@2, ab3@5 ~@19", // Db Bb Eb
  AD: "[eb3,g3,eb4,g4]@7 ~@5 [c4,ab4]@3 [eb3,ab3,c4,ab4]@2 ~ [eb3,ab3,c4]@3 [eb3,ab3,c4,ab4]@2 ~", // Eb Fm Ab
  AE: "[eb3,g3,eb4,g4]@3 ~@3 [eb3,g3,db4,f4]@5 ~ [eb3,g3,db4,g4]@3 [eb3,g3,db4,g4]@2 ~ [eb3,g3,db4]@3 [eb3,g3,db4,g4]@2 ~", // Eb Eb7
  AF: "[[eb3,ab3,c4,ab4]@3 ~@3 [eb3,ab3,c4,ab4]@3 ~@3 [eb3,ab3,c4,gb4,c5]@24 [eb3,ab3,c4,gb4,c5]@4 ~ [eb3,ab3,c4] [ab3,c4,gb4,c5]@3 [ab3,c4,gb4,c5]@2 ~, ~@20 [gb4,c5] eb3@3]/2", // Ab Ab7 Ab Ab7 Gbdim
  AG: "~@3 [eb3,ab3,c4,gb4] ~@5 [eb3,ab3,c4,gb4]@2 ~ [eb3,ab3,c4,gb4]@5 [ab3,c4,gb4,c5] ~ c5@2 [ab3,c4,gb4,c5]@2 ~, ~@6 c5@2 ~ eb3@3, ~@6 [ab3,c4,gb4] ~", // Ab7
  AH: "[db3,f3,ab3,db4,f4,db5]@3 [db3,f3,ab3,db4,f4,db5]@3 [db3,f3,ab3,db4,f4,db5]@2 ~@16", // Db
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.4)

// other · clarinet
const clarinet = note(`<
  ~@2 A B C D E B C F G H I J K L M N O ~@4 L M P Q B C D E B C F R ~ S T@2 U V W X Y Z AA AB AC AD AA AB AE AF H I J K
  L M N O ~@3 A B C F G ~@2 AA AB AC AD AA AB AE AG
>`.pickRestart({
  A: "~@12 eb5@4 ~ f5 eb5@3 f5@3", B: "c5 ~@2 c5!2 ~ c5@6 eb4@2 ~ eb4@3 f5@2 ~ f5@2 ~",
  C: "eb5 ~@2 eb5 ~@2 db5@4 ~@2 eb4@6 bb4@3 eb5@3", D: "g5 ~@2 eb5 ~@2 db5@4 ~@2 eb5@2 g5@4 db5@3 f5@3",
  E: "eb5 ~@2 eb5 ~@2 c5@4 ~@2 eb5@4 ~ f5 eb5@3 f5@3", F: "g5 ~@2 eb5 ~@2 db5@4 ~@2 g5@5 f5 eb5 ~@2 db5 ~@2",
  G: "c5@5 ~@19", H: "~@5 eb5@3 g5@3 ~ bb5@9 g5@3", I: "ab5 ~@5 d5@4 ~@14", J: "~@2 d5 f5 bb5@2 bb4 ab5",
  K: "g5 ~@5 eb5@4 ~@14", L: "~@2 eb5 g5 bb5@2 bb4 g5", M: "ab5 ~@5 f5@4 ~@14",
  N: "~@6 d5@2 ~ f5 ~@2 bb5@5 ab5 g5 ~@2 f5 ~@2", O: "eb5 ~@3", P: "~@6 d5@3 f5@3 bb5@5 ab5 g5 ~@2 f5 ~@2",
  Q: "eb5@6 ~@6 eb5@4 ~ f5 eb5@3 f5@3", R: "c5@7 ~@17", S: "~@12 db5!2 ~ db5!2 ~ db5@6",
  T: "[~@3 f5 ~@2 ab5@4 db5 f5@5 ~ db5@3 ~ bb5@2 ab5@6 gb5@5 ~@2 c5!2 ~ c5!2 ~ db5@3 c5 ~@2, ~@8 ab4 ~@15]/2",
  U: "c5@3 eb5@3 ab5@5 ~ gb5@4 ~ ab4 c5@2 ~ bb5@2 ~", V: "ab5@4 ~@2 f5@4 ~@2 db5!2 ~ db5!2 ~ db5@6, ~@5 ab5@2 ~@17",
  W: "~@3 f5 ~@2 ab5@4 db5 ~ f5@4 ab4@2 db5@3 bb5@3", X: "ab5@6 gb5@5 ~ c5!2 ~ c5!2 ~ db5@3 c5 ~@2",
  Y: "c5@3 eb5@3 ab5@5 ~ ab5@5 gb5 f5 ~@2 eb5 ~@2", Z: "db5 ~@3", AA: "~@11 db5 f5@4 ~ ab4 db5@2 ~ bb5@2 ~",
  AB: "ab5 ~@2 ab4 ~ ab5 gb5@4 ~@14", AC: "~@12 gb5@4 ab4 ~ c5 ~@2 bb5 ~@2", AD: "ab5 ~@2 ab4 ~ ab5 f5@4 ~@14",
  AE: "~@12 ab5@4 gb5 f5 ~@3 eb5 ~@2", AF: "db5@5 ~@19", AG: "db5 ~@2 db5!2 ~ db5 ~@17",
})).s("gm_clarinet").gain(0.4).pan(0.9)

// chords · accordion
const accordion = note(`<
  A B C ~@15 D E F G H ~@11 I J K ~@7 L M N@2 O M N@2 ~@8 P Q R S T ~@3 I U V M N@2 O M N@2 ~
>`.pickRestart({
  A: "~@12 eb4 ~ eb4!2 f4@2 g4@3 bb4@3",
  B: "g5 ~@2 f5 eb5 ~ db5 ~@5 eb5 ~ [c5,eb5] eb5!2 ~ [db5,f5] ~@2 eb5 ~@2, ~@2 [eb4,g4] ~", // Cm Db Eb
  C: "[eb4,ab4,c5] ~@5 eb4@6 ~@12", D: "~@9 bb3!2 ~ bb3@6 eb4@2 g4@3 ~",
  E: "bb4@6 eb5@3 g5@3 [g5,bb5]@6 bb4@3 [eb5,g5]@2 bb4", F: "[f5,ab5] ~@5 [d5,f5]@5 ~ bb3@6 d4@3 [f4,bb4]@3",
  G: "[f4,bb4]@2 d5 f5 [d5,bb5]@3 [c5,ab5]", H: "[bb4,g5] ~@5 [g4,eb5]@5 ~@13",
  I: "~@12 ab5 ~ ab5!3 ~ [bb4,bb5] ~@2 [ab4,ab5] ~@2, ~@2 ab4 ~", // Bb Ab
  J: "c6@4 bb5 ~@7 ab4@6 [bb4,bb5] ~@2 ab5 ~ ab5, ~@12 ab5 ~@11", K: "[db5,f5] ~@5 ab4@5 ~@13",
  L: "~@6 ab4@5 ~ ab4!2 ~ ab4!2 ~ bb4 ~@4 ab5", M: "f5@3 ab5@3 [f5,db6]@5 ~@13, db5 ~@3",
  N: "[~@12 ab4!2 ~ ab4!2 bb4 ~@4 ab5 ~ gb5@3 ab5@3 [ab5,c6]@6 ~@12, ~@23 c5@7 ~@18]/2", // Ab
  O: "~@12 ab4!2 ~ ab4!2 ~ bb4 ~@4 ab5", P: "~@9 c5 [eb4,c5] c5 eb4 ~@2 [f4,db5] ~@2 [eb4,c5] ~ db5 f4 ~@2",
  Q: "[c4,ab4] ~@2 c4 [c4,ab4]!2 ~@5 eb4@2 ~@2 eb4@3 [ab4,c5]@2 ~ [ab4,c5]@2 ~", // Fm Ab
  R: "[g4,eb5] ~@2 db4 [gb4,d5] ~ [f4,db5]@4 ~@2 [g4,eb5]!2 ~ [g4,eb5] db4@2 [eb4,g4]@3 bb4@3, ~@16 eb4 ~@4 g4 ~@2", // Cm D Db Cm Eb
  S: "[eb5,g5] ~@2 [db5,f5] eb5 ~ db5@3 [ab4,db5] g4 db5 [g4,db5]@2 ~ [db5,g5] ~@2 [g4,db5] ~@2 [db5,g5] ~@2, ~@2 c5 ~@9, ~@5 bb4@3 ~@16", // Eb Db Db5 Gdim Dbdim Gdim Dbdim
  T: "[ab4,eb5] ~@5 [c5,ab5]@5 ~@13", // Ab5 Fm
  U: "[c5,c6]@4 [bb4,bb5] [ab4,ab5] gb5@4 ~@2 ab5 ~@3 ab5 ~ [bb4,bb5] ~@2 [ab4,ab5] ~ ab5, ~@2 ab4 ~", // C Bb Ab Bb Ab
  V: "[db5,f5] ~@5 ab4@5 ~ ab4!2 ~ ab4!2 ~ bb4 ~@4 ab5", // Db
})).s("gm_accordion").gain(0.64)

// chords · accordion · soft notes
const accordion_soft = note("<~ A ~@18 B ~@14 C ~@25 D ~@7 E ~@9>".pickRestart({
  A: "~@12 c5 ~@2 c5@2 ~@4 c5 ~@2", B: "~@2 f3 ~", C: "c5@3 ~ bb4 [ab4,ab5] [c5,gb5]@5 ~@3 ab5!3 ~@4 ab4 ~@2",
  D: "~@3 ab4 ~@20", E: "~@6 c5@5 ~@3 ab5!2 ~@8",
})).s("gm_accordion").gain(0.4)

// chords · bandoneon
const bandoneon = note(`<
  ~@2 A B C D E F G H I J K L M N O P Q R S@2 T N O P ~@26 U J K L M N O P A B C D E F G H V ~@10
>`.pickRestart({
  A: "~@15 [ab4,c5]!2 ~@4 [ab4,c5]!2 ~", B: "~@3 [ab4,c5]!2 ~@4 [ab4,c5]!2 ~@4 [ab4,c5]!2 ~@4 [ab4,c5] ~@2",
  C: "~@15 bb4!2 ~@4 [g4,bb4]!2 ~, ~@15 g4@2 ~@7", D: "~@3 [g4,bb4]!2 ~@4 [g4,bb4]!2 ~@4 [g4,bb4]!2 ~@4 [g4,bb4] ~@2",
  E: "~@3 [ab4,c5] ~@5 [ab4,c5] ~@5 [ab4,c5]!2 ~@4 [ab4,c5]!2 ~", // Ab
  F: "~@3 [ab4,c5]!2 ~@4 [ab4,c5]!2 ~@4 [ab4,c5] ~@5 [ab4,c5] ~@2", G: "~@15 [g4,bb4]!2 ~@4 [g4,bb4]!2 ~",
  H: "~@3 [g4,bb4]!2 ~@4 [g4,bb4] ~@5 [g4,bb4] ~@5 [g4,bb4] ~@2", I: "ab4@3 ~@9 bb4!2 ~ c5 bb4 ~ bb4@2 ~ c5 bb4 ~",
  J: "bb4!2 ~ c5 bb4 ~ bb4!2 ~ c5 bb4 ~ bb4!2 ~ c5 bb4 ~ bb4!2 ~ c5 bb4 ~",
  K: "ab4 ~ ab4 bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~",
  L: "ab4!2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ~@2",
  M: "bb4!2 ~ c5 bb4 ~ bb4!2 ~ c5 bb4 ~ bb4!2 ~ c5 bb4 ~@2 bb4 ~ c5 bb4 ~",
  N: "bb4!2 ~ c5 bb4 ~ c5 bb4 ~ c5 bb4 ~ c5 bb4 ~ c5 bb4 ~ c5 bb4 ~ c5 ~@2",
  O: "ab4!2 ~ bb4 ab4 ~ ab4@2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~",
  P: "ab4!2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~ ab4!2 ~ bb4 ab4 ~ ab4!2 ~ ab4@2 ~",
  Q: "~@15 g4@2 ~ bb4 ~@2 [g4,bb4]!2 ~, ~@15 bb4 ~@8", // Gm
  R: "~@3 [g4,bb4]!2 ~@4 [g4,bb4]!2 ~@4 [g4,bb4]!2 ~@4 [g4,bb4]!2 ~", // Gm
  S: "~@3 [f4,bb4]!2 ~@4 [f4,bb4]!2 ~@4 [f4,bb4]!2 ~@4 [f4,bb4]!2 ~", // Bb5
  T: "~@3 [g4,bb4]!2 ~@4 [g4,bb4]!2 ~ bb4!2 ~ c5 bb4 ~@2 bb4 ~ c5 bb4 ~", U: "~@12 bb4!2 ~ c5 bb4 ~ bb4@2 ~ c5 bb4 ~",
  V: "ab4 ~@7",
})).s("gm_bandoneon").gain(0.44)

// chords · accordion
const accordion_2 = note(`<
  ~@2 A@2 B@2 C@2 D@2 E@8 F@2 G@2 H@6 B@2 C@2 D@2 I ~ J K L@2 K@2 L M N K L@2 K@2 L M O@2 ~@2 P@6 B@2 C@2 D@2 Q ~ J K
  L@2 K@2 L M R
>`.pickRestart({
  A: "[~@4 [eb4,ab4,c5]@11 ~]/2", B: "[[bb4,eb5,g5] ~@5 [bb4,db5,f5]@6 [g4,bb4]@34 ~@2, ~ db5@3]/2",
  C: "[[eb4,ab4,c5]@23 ~]/2", D: "[[bb4,eb5,g5] ~@5 [bb4,db5,f5]@5 ~ [g4,db5]@35 ~, ~@4 bb4@11 ~]/2",
  E: "[[eb4,ab4,c5]@6 ~@6 [eb4,g4]@36 [d4,f4]@47 ~ [eb4,g4]@12 [eb4,g4]@35 ~ [d4,f4]@48, ~@6 bb3@101 ~ bb3@84]/8", // Ab Eb Dm Eb Dm
  F: "[[eb4,g4]@7 ~@5 [eb4,g4]@36]/2", G: "[d4,f4]/2",
  H: "[[eb4,g4]@12 [eb4,g4]@35 ~ [d4,f4]@48 [eb4,g4]@6 eb4 ~@5 [eb4,ab4,c5]@33 ~@3, ~@2 bb3@15 ~@7]/6", // Eb Dm Eb Ab
  I: "[eb4,ab4,c5]@3 ~@5", J: "~@12 [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~",
  K: "[ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~", // Db5
  L: "[ab4,c5] eb4 ~ [ab4,c5] eb4 ~ [ab4,c5] eb4 ~ [ab4,c5] eb4 ~ [ab4,c5] eb4 ~ [ab4,c5] eb4 ~ [ab4,c5] eb4 ~ [ab4,c5] eb4 ~", // Ab
  M: "[ab4,c5] eb4 ~ [ab4,c5] eb4 ~ [ab4,c5] eb4 ~ [ab4,c5] ~@2 [eb4,ab4,c5]@3 ~@2 [eb4,ab4,c5]!2 ~@2 [eb4,ab4,c5] ~@2", // Ab
  N: "[f4,ab4,db5]@4 ~@2 [ab3,c4]@5 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~ [ab4,db5] f4 ~", // Db Ab Db5
  O: "[[f4,ab4,db5]@2 ~ d4@3 [eb4,g4]@18]/2", // Db Eb
  P: "[[eb4,g4]@12 [eb4,g4]@35 ~ [d4,f4]@48 [eb4,g4]@7 ~@5 [eb4,ab4,c5]@33 ~@3, ~@2 bb3@15 ~@7]/6", // Eb Dm Eb Ab
  Q: "[eb4,ab4,c5] ~@3", R: "[f4,ab4,db5] ~@5",
})).s("gm_accordion").gain(0.26).pan(0.6)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A B C B@3 C B D E@6 F D E@6 F C B C B@3 C B G ~ A B@14 H D E@6 F C B C B@3 C B I ~ A B@6 H I
>`.pickRestart({
  A: "~@5 x ~ x", B: "~ x ~ x ~ x ~ x", C: "x ~ x ~@2 x ~ x", D: "x ~@2 x ~@4 x ~@2 x", E: "~@2 x ~@2 x ~@2 x ~@2 x",
  F: "~@4 x ~@5 x ~ x ~@4 x!2 ~@2 x ~@2", G: "x", H: "~ x ~ x!2 ~ x!2", I: "x!2 ~@2",
})).gain(0.36)

// drums · crash
const crash = s("cr").struct("<~@18 [~ x ~@2] ~@41 [~ x ~@2] ~@18>").gain(0.29)

// drums · ride
const ride = s("rd").struct("<~@18 A ~@7 A ~@9 A ~@14 A B ~@7 A ~@9 A ~@6 A B>".pickRestart({
  A: "~ x", B: "~ x ~@2",
})).gain(0.36)

stack(
  bass, acoustic_guitar_steel, clarinet, accordion, accordion_soft, bandoneon, accordion_2, kick, snare, crash, ride
)

More by Oberkrainer