Strudelify

Rote Rosen rote Lippen roter Wein

Rene Carol

KeyG majorTempo113 bpm
0:00/0:00
// Rote Rosen rote Lippen roter Wein — Rene Carol
// 113 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(113/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.

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<A B C D E F G H I ~@84>".pickRestart({
  A: "~@6 d4 ~ [g4,b4] ~@5 d4 ~", B: "[g4,b4] ~@5 d4 ~ [g4,b4] ~@7", C: "~@8 [c5,e5] ~ [f#5,a5] ~ [c5,e5]@3 ~",
  D: "~@8 [c5,e5] ~ [f#5,a5] ~ [c5,e5]@2 ~@2", E: "~@8 [b4,d5] ~ [d5,g5] ~ [b4,d5] ~ [d5,g5] ~", F: "[b4,d5] ~@3",
  G: "~@8 [c5,e5] ~ [f#5,a5] ~ [c5,e5] ~@3", H: "~@8 [c5,e5] ~ [f#5,a5] ~ [c5,e5] ~ [c5,f#5] ~", I: "[b4,g5] ~@15",
})).s("gm_acoustic_guitar_steel").gain(0.64).pan(0.1)

// bass · fretless bass
const bass = note("<A@2 B C D E B C F G@8 ~@16 H I J K F L M K N O P K F Q R S ~@44>".pickRestart({
  A: "[d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~", // D
  B: "[d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3]@2 [a1,a2]@2", // D A
  C: "[d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2]@2 [e1,e2]@2 [f#1,f#2]@2", // D E F#
  D: "[g1,g2] ~ [g1,g2] ~ [g1,g2] ~ [g1,g2] ~ [g1,g2] ~ [g1,g2] ~ [g1,g2] ~ [d2,d3]@2", // G D
  E: "[g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [f#2,f#3] ~ [e2,e3]@2", // G F# E
  F: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@5 ~@3", G: "[g1,g2]/8",
  H: "~@6 [g1,g2] ~ [g1,g2] ~ [g1,g2]@2 [a1,a2]@2 [b1,b2]@2", I: "[c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@4 ~@2 [g1,g2]@2",
  J: "[c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@5 ~ [c2,c3]@2", K: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@4 ~@2 [d1,d2]@2",
  L: "[d2,d3]@4 ~@2 [d2,d3] ~ [d2,d3]@5 ~ [a1,a2]@2", M: "[d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@6 ~@2",
  N: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@4 [a1,a2]@2 [b1,b2]@2", O: "[c2,c3]@5 ~ [c2,c3] ~ [c2,c3]@5 ~ [g1,g2]@2",
  P: "[c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@6 ~@2", Q: "[d2,d3]@4 ~@2 [d2,d3] ~ [d2,d3]@6 [a1,a2]@2",
  R: "[d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@4 ~@4", S: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@6 [d2,d3]@2",
})).s("gm_fretless_bass").gain(0.72)

// chords · accordion
const accordion = note("<~ A B C D@2 B E F@8 ~@17 G@8 H@8 ~@44>".pickRestart({
  A: "~@8 d5@2 [c5,e5] ~ [d5,f#5] ~ [e5,g5] ~, ~@8 b4 ~@7", B: "[d5,f#5] ~ [d5,f#5]@3 ~ [f#5,a5] ~ [c5,e5]@8",
  C: "[d5,f#5] ~ [d5,f#5]@3 ~ [f#5,a5] ~ [c5,e5]@7 ~", // D F#m C
  D: "[[c5,e5] ~ [c5,e5]@3 ~ [e5,g5]@2 [b4,d5]@13 ~@3 d5@2 [c5,e5] ~ d5@2 e5@2, ~@24 b4 ~@3 f#5 ~ g5 ~]/2", // C Em Bm C
  E: "[d5,f#5] ~ [d5,f#5]@3 ~ [f#5,a5] ~ e5@4 f#5@3 ~, ~@8 c5@7 ~", F: "[b4,g5]/8",
  G: "[~@4 [b4,d5]@4 ~@4 f#5@2 ~@2 [c5,f#5]@5 ~ [c5,e5] ~ [c5,e5]@10 ~@2 [c5,e5]@2 [d5,f#5]@2 e5@4 ~@2 [c5,e5] ~ [c5,e5]@4 ~@2 b4@2 b4@12 g4 ~ [a4,c5] ~ d5@3 ~ [c5,e5]@3 ~ d5@4 ~@2 a#4@2 [a4,c5]@11 ~ [a4,c5]@3 ~ [a4,c5]@2 d5@3 ~ [c5,e5] ~ [c5,e5]@2 [b4,d5]@14, ~@8 b4@46 d5 ~ d5@9 ~@3 b4@4 b4@8 b4@26 b4@8 ~@14, ~ g5@4 g5@11, ~@86 c#5 ~@41]/8", // Bm Cdim C D C Am C Am …
  H: "[~@4 [b4,d5]@4 ~@4 f#5@2 ~@2 [c5,f#5]@5 ~ [c5,e5] ~ [c5,e5]@10 ~@2 [c5,e5]@2 [d5,f#5]@2 e5@4 ~@2 [c5,e5] ~ [c5,e5]@5 ~ b4@2 b4@12 g4 ~ [a4,c5] ~ d5@3 ~ [c5,e5]@3 ~ d5@5 ~ [a4,c5] ~ [c5,a5]@11 ~ [c5,a5]@3 ~ [c5,a5]@2 ~@4 [a4,f#5] ~@17, ~@8 b4@46 d5 ~ d5@9 ~@3 b4@4 b4@8 b4@26 [b4,g5]@21 ~, ~@4 g5@16 g5@33 ~@11]/8", // Bm Cdim C D C Am C Am …
})).s("gm_accordion").gain(0.51).pan(0.7)

// chords · epiano2
const epiano2 = note(`<
  A@3 B C D A E F G H@2 I J K L H M H N O P Q L H G H@2 R S L@2 H T@8 U@8 V@3 W X@8 Y@4 Z@8 AA@8 AB@8 AC@4
>`.pickRestart({
  A: "[d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~", // D
  B: "[d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ d3@2, ~@14 d4 ~", // D
  C: "g4 ~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~", // G
  D: "[g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [f#3,f#4] ~ [e3,e4] ~", // G F# E
  E: "[d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [e3,e4] ~ [f#3,f#4] ~", // D E F#
  F: "g3@4 [b3,d4,g4] ~@7 [b3,g4]@2 ~@2, ~@12 d4 ~@3", G: "~@4 [b3,d4,g4] ~@7 [a3,c4,d4]@2 ~@2",
  H: "~@4 [b3,d4,g4] ~@7 [b3,d4,g4] ~@3", I: "~@4 [c4,e4] ~@7 [c4,e4,g4]@2 ~@2, ~@2 g4 ~@5",
  J: "~@4 [e4,g4] ~@11, ~@2 c4 ~@5", K: "~@4 [a3,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@3",
  L: "~@4 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@3", M: "[b3,d4,g4] ~@3 [b3,g4]@2 ~@10, ~@4 d4 ~@11",
  N: "~@4 [b3,d4,g4] ~@7 [b3,d4] ~@3, ~@6 g4 ~", O: "~@4 [c4,e4,g4] ~@7 [c4,e4,g4] ~@3",
  P: "[c4,e4,g4] ~@3 [c4,e4,g4]@4 ~@8", Q: "~@4 [c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@3, ~@2 a3 ~@5",
  R: "~@4 [c4,e4,g4]@2 ~@6 [c4,e4,g4] ~@3", S: "~@4 [c4,e4,g4] ~@3 [c4,e4,g4]@6 ~@2",
  T: "[~@4 g4@8 g4@8 [c4,e4] ~@7 [c4,e4] ~@7 [c4,e4] ~@7 g4@8 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,f#4]@2 ~@6 g4@8 [b3,d4] ~@3, ~ f4@31, ~@4 b3@2 ~@6 b3@2 ~@30 c4@2 ~@62 [c4,d4] ~@7 b3@2 ~@10, ~@4 d4 ~@7 d4 ~@7 g4@8 g4@8 g4@8 e4 ~@7 g4@8 g4@8 g4@8 g4@40 d4 ~@7 g4@4]/8", // C Bm D7 D Bm Csus2
  U: "[~@4 [b3,d4] ~@7 [b3,d4] ~@7 [c4,e4] ~@7 [c4,e4] ~@7 [c4,e4]@2 ~@6 [c4,e4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@3 [a3,c4,d4,f#4]@7 ~@5 g4@8 [b3,d4] ~@3, ~@2 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@20 b3 ~@5, ~@116 d4 ~@7 g4@4]/8", // Bm C Bm D7 Bm
  V: "[~@4 [b3,d4]@5 ~@9 [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ d3@2, ~ g4@11, ~@46 d4 ~]/3", // Bm D
  W: "g4!8, ~@2 g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~",
  X: "[g4@2 g4@2 g4@2 g4@2 g4@2 g3 ~ [f#3,f#4] ~ [e3,e4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [d3,d4] ~ [e3,e4] ~ [f#3,f#4] ~ g3@4 [b3,d4] ~@7 g4@8 [b3,d4] ~@7 [a3,c4,d4]@2 ~@6 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [c4,e4] ~@7 [c4,e4]@2 ~@2, g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g4@42 g4@8 b3@2 ~@66, ~@60 d4 ~@7 g4@16 g4@8 g4@8 g4@8 g4@8 g4@8 g4@4]/8", // F# E D E F# Bm D7 Bm …
  Y: "[~@4 c4@2 ~@14 [a3,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [b3,d4] ~@7 [b3,d4] ~@3, ~ g4@12 g4@2 g4, ~@4 e4 ~@59]/4", // D D7 Bm
  Z: "[[b3,d4] ~@3 g4@16 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [c4,e4]@2 ~@6 [c4,e4] ~@7 [c4,e4] ~@3 [c4,e4]@6 ~@6 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [b3,d4] ~@7 [b3,d4] ~@3, g4@2 b3 ~@61, ~@4 d4 ~@15 g4@8 g4@8 g4@8 g4@8 g4@8 g4@8 g4@4 g4@44 g4@8 g4@4]/8", // Bm C D7 Bm
  AA: "[~@4 g4@8 g4@8 [c4,e4] ~@7 [c4,e4] ~@7 [c4,e4] ~@7 g4@8 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,f#4]@2 ~@6 g4@8 [b3,d4] ~@3, ~@4 f4@5 ~@11 g4@8 g4@8 g4@8 ~@8 g4@8 g4@8 g4@8 g4@40 ~@8 g4@4, ~@4 b3@2 ~@6 b3@2 ~@30 c4@2 ~@62 [c4,d4] ~@7 b3@2 ~@10, ~@4 d4 ~@7 d4 ~@31 e4 ~@71 d4 ~@11]/8", // C Bm D7 D Bm Csus2
  AB: "[~@4 [b3,d4] ~@7 [b3,d4] ~@7 [c4,e4] ~@7 [c4,e4] ~@7 [c4,e4]@2 ~@6 [c4,e4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [b3,d4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4] ~@7 [a3,c4,d4,f#4]@3 ~ [a3,c4,d4,f#4]@6 ~@6 g4@8 g4@4, ~@2 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@4 g4@20 b3 ~@3 b3 ~, ~@116 d4 ~@7 d4 ~@3]/8", // Bm C Bm D7
  AC: "[~@4 [c4,e4]@8 ~@8 [b3,d4]@2 ~@6 [b3,d4] ~@11 [b3,d4,g4]@11 ~@13, ~ g4@4 g4@2 g4@3 ~@6]/4", // C Bm G
})).s("gm_epiano2").gain(0.47).pan(0.7)

// bass · acoustic bass
const bass_2 = note(`<
  ~@9 A B C D E F G H I B J D K L G M B N C D O L P Q R@8 ~@8 S T U V@4 W@2 X@6 Y Z AA@6 AB AC@3 AD AE@3 AD AF@3 AD AG@3
  AH@2 AI AJ@2
>`.pickRestart({
  A: "~@6 [g1,g2] ~ [g1,g2]@5 ~@3", B: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@4 ~@4",
  C: "[b1,b2]@5 ~ [b1,b2] ~ [b1,b2]@6 ~@2", D: "[c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@4 ~@2 [g1,g2]@2",
  E: "[c2,c3]@2 ~@2 [c2,c3]@3 ~@3 [a0,a1]@2 [b0,b1] ~ [c1,c2] ~", F: "[d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@4 ~@4",
  G: "[d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@5 ~@3", H: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@4 ~@2 [d1,d2] ~",
  I: "[g1,g2]@2 ~@2 [g1,g2]@2 ~@4 [d1,d2]@2 [e1,e2]@2 [f#1,f#2] ~", J: "[b1,b2]@4 ~@2 [b1,b2] ~ [b1,b2]@4 ~@4",
  K: "[c2,c3]@2 ~@2 [c2,c3]@4 ~@4 [c2,c3]@3 ~", L: "[d2,d3]@4 ~@2 [d2,d3] ~ [d2,d3]@5 ~ [a1,a2]@2",
  M: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@4 ~@2 [d1,d2]@2", N: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@7 ~",
  O: "[c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@4 ~@4", P: "[d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@7 ~",
  Q: "[g1,g2]@4 ~@2 [g1,g2] ~ [g1,g2]@6 [d1,d2]@2", R: "[g1,g2]/8", S: "~@6 [g2,g3] ~ [g2,g3]@4 [f#2,f#3]@2 [e2,e3] ~",
  T: "[d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3]@2 [a1,a2]@2", // D A
  U: "[d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2]@2 [e1,e2]@2 [f#1,f#2]@2", // D E F#
  V: "[g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g2 ~ [d2,d3]@2 [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [g2,g3] ~ [f#2,f#3] ~ [e2,e3]@2 [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3] ~ [d2,d3]@2 [a1,a2]@2 [d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2] ~ [d1,d2]@2 [e1,e2]@2 [f#1,f#2]@2, g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@52]/4", // D G F# E D A D E …
  W: "g1@3 g1 g1@4, g2@4 ~@2 g2 ~ g2@5 ~@3",
  X: "[g1@6 g1@2 g2@4 ~@4 [b1,b2]@5 ~ [b1,b2] ~ [b1,b2]@6 ~@2 [c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@4 ~@2 g2@2 [c2,c3]@2 ~@2 [c2,c3]@3 ~@3 [a0,a1]@2 [b0,b1] ~ [c1,c2] ~ [d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@4 ~@4 [d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@5 ~@3, g2@4 ~@2 g2 ~ g1@38 g1@50]/6", // B C A B C D
  Y: "g1@6 g1@2 g2@4 ~@2 [d1,d2] ~, g2@4 ~@2 g2 ~ g1@8", Z: "g1@4 g2@2 ~@4 [d1,d2]@2 [e1,e2]@2 [f#1,f#2] ~, g2 ~ g1@6",
  AA: "[g1@6 g1@2 g2@7 ~ [b1,b2]@5 ~ [b1,b2] ~ [b1,b2]@6 ~@2 [c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@4 ~@2 g2@2 [c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@4 ~@4 [d2,d3]@4 ~@2 [d2,d3] ~ [d2,d3]@5 ~ [a1,a2]@2 [d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@7 ~, g2@4 ~@2 g2 ~ g1@38 g1@50]/6", // B C D A D
  AB: "g1@3 g1 g2@3 [d1,d2], g2@4 ~@2 g2 ~ g1@8", // D
  AC: "[g1@6 g1@2 g1@2 g2@2 [a1,a2]@2 [b1,b2]@2 [c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@4 ~@2 g2@2 [c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@5 ~ [c2,c3]@2, g2@4 ~@2 g2 ~ g2 ~ g1@20 g1@18]/3", // A B C
  AD: "g1@3 g1 g2@2 ~ [d1,d2], g2@4 ~@2 g2 ~ g1@8", // D
  AE: "[g1@6 g1@2 g2@5 ~@3 [d2,d3]@4 ~@2 [d2,d3] ~ [d2,d3]@5 ~ [a1,a2]@2 [d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@6 ~@2, g2@4 ~@2 g2 ~ g1@40]/3", // D A D
  AF: "[g1@6 g1@2 g2@4 [a1,a2]@2 [b1,b2]@2 [c2,c3]@5 ~ [c2,c3] ~ [c2,c3]@5 ~ g2@2 [c2,c3]@4 ~@2 [c2,c3] ~ [c2,c3]@6 ~@2, g2@4 ~@2 g2 ~ g1@22 g1@18]/3", // A B C
  AG: "[g1@6 g1@2 g2@5 ~@3 [d2,d3]@4 ~@2 [d2,d3] ~ [d2,d3]@6 [a1,a2]@2 [d1,d2]@4 ~@2 [d1,d2] ~ [d1,d2]@4 ~@4, g2@4 ~@2 g2 ~ g1@40]/3", // D A D
  AH: "[g1@3 g1 g2@2 [a1,a2] [b1,b2] [c2,c3]@3 g2 [c1,c2]@2 ~@2, g2@4 ~@2 g2 ~ g1@14 g1@10]/2", // A B C
  AI: "g1@6 g1@2 g2@3 ~ [d2,d3]@2 [d1,d2] ~, g2@4 ~@2 g2 ~ g1@8", AJ: "[g2@3 ~@5 g2@18 ~@6, g1@13 ~@3]/2",
})).s("gm_acoustic_bass").gain(0.61)

// chords · pad new age
const pad_new_age = note("<~@12 A B ~@2 C D ~@2 E F@8 ~@52 G@2 H@8 I@2>".pickRestart({
  A: "~@10 [e5,g5]!3 ~ [d5,f#5] ~", B: "[c5,e5] ~ [g4,c5] ~ [c5,e5]@3 ~@9", C: "~@10 [d5,f#5]!3 ~ [c5,e5] ~",
  D: "[b4,d5] ~ [g4,b4] ~ [b4,d5]@3 ~@9", E: "~@10 [e5,g5]@2 ~@2 [d5,f#5] ~, ~@3 [e5,g5]",
  F: "[c5 ~ [g4,c5] ~ e5@4 [c5,e5]@2 e5@4 ~@2 [d5,f#5]@18 ~@6 [a4,c5]@2 [a4,c5]@2 ~@2 c5@2 [b4,d5]@16 ~@64, e5@2 c5 ~@2 c5 ~ g5@57, ~@7 e5@16 e5@41]/8", // C5 C D Am Bm
  G: "[~@4 [b4,d5]@3 ~@5 f#5@2 ~@2 [c5,f#5]@5 ~ e5@2 [c5,e5]@8, ~ g5@3, ~@8 b4@6 ~@8 c5 ~@9]/2", // Bm Cdim C
  H: "[~@4 c5@2 [d5,f#5]@2 e5@6 e5@2 c5@4 ~@2 [b4,d5] ~ [b4,d5]@10 ~@2 b4@2 [a4,c5] ~ [b4,d5]@3 ~ c5@3 ~ [b4,d5]@5 ~ [a4,c5] ~ [c5,a5]@11 ~ [c5,a5]@2 ~@2 [c5,a5]@2 b4@2 ~@2 [a4,f#5]@2 b4@16 c5@4 [e5,c6]@4 c6@2 [d5,b5]@2 ~@2 [c5,a5]@2 [b4,d5,b5]@16, ~@2 e5@2 g5@33 g5@3 g5@24, ~@14 c5 ~ e5@28 e5@56 ~@4 e5@6 ~@18, ~@36 g4 ~@91]/8", // D Bm Am Bm Am F D C …
  I: "[~@4 [g4,b4,d5,g5]@9 ~@3]/2", // G
})).s("gm_pad_new_age").gain(0.45).pan(0.6)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@50 A B C D E F G ~@36>".pickRestart({
  A: "~@8 [c5,e5] ~ [f#5,a5] ~ [c5,e5]@3 ~", B: "~@8 [c5,e5] ~ [f#5,a5] ~ [c5,e5]@2 ~@2",
  C: "~@8 [b4,d5] ~ [d5,g5] ~ [b4,d5] ~ [d5,g5] ~", D: "[b4,d5] ~@3", E: "~@8 [c5,e5] ~ [f#5,a5] ~ [c5,e5] ~@3",
  F: "~@8 [c5,e5] ~ [f#5,a5] ~ [c5,e5] ~ [c5,f#5] ~", G: "[b4,g5] ~@15",
})).s("gm_electric_guitar_jazz").gain(0.64).pan(0.1)

// chords · lead 1 square
const lead_1_square = note(`<
  ~@25 A B C D@2 E@2 F ~@16 G H I J@2 H K L@2 ~@2 M N ~@2 O P Q R S T E@2 F U V@2 W X Y@2 Z ~@12
>`.pickRestart({
  A: "~@8 [g4,b4]@3 ~ [a4,c5]@3 ~", B: "[b4,d5]@5 ~ [d5,b5] ~ [d5,b5]@5 ~ [c5,a5] ~",
  C: "[c5,a5]@5 ~ [b4,g5] ~ g5@4 f#5@4, ~@8 b4@7 ~", D: "[[c5,e5]@10 ~@2 [c5,e5]!2 ~ [e5,g5]]/2",
  E: "[[d5,f#5]@21 ~@3 [c5,f#5]@2 c5@2 f#5@2 [c5,a5]@2]/2", F: "[b4,g5]@15 ~",
  G: "~@8 d5@2 [c5,e5] ~ [d5,f#5] ~ [e5,g5] ~, ~@8 b4 ~@7", H: "[d5,f#5] ~ [d5,f#5]@3 ~ [f#5,a5] ~ [c5,e5]@8",
  I: "[d5,f#5] ~ [d5,f#5]@3 ~ [f#5,a5] ~ [c5,e5]@7 ~", // D F#m C
  J: "[[c5,e5] ~ [c5,e5]@3 ~ [e5,g5]@2 [b4,d5]@13 ~@3 d5@2 [c5,e5] ~ d5@2 e5@2, ~@24 b4 ~@3 f#5 ~ g5 ~]/2", // C Em Bm C
  K: "[d5,f#5] ~ [d5,f#5]@3 ~ [f#5,a5] ~ e5@4 f#5@3 ~, ~@8 c5@7 ~", L: "[[b4,g5]@21 ~@11]/2",
  M: "~@10 [e5,g5]!3 ~ [d5,f#5] ~", N: "[c5,e5] ~ [g4,c5] ~ [c5,e5]@3 ~@9",
  O: "~@10 [d5,f#5] d5!2 ~ [c5,e5] ~, ~@11 f#5@2 ~@3", P: "[b4,d5] ~ [g4,b4] ~ [b4,d5]@2 ~@2 [g4,b4]@3 ~ [a4,c5]@3 ~",
  Q: "[b4,d5]@4 ~@2 [d5,b5] ~ [d5,b5]@5 ~ [c5,a5] ~", R: "[c5,a5]@5 ~ [b4,g5] ~ [b4,g5]@5 ~@3", S: "[c5,e5]@3 ~@5",
  T: "~@4 [c5,e5]!2 ~ [e5,g5]", U: "~@4 [b4,d5]@3 ~ g5@3 ~ f#5@2 ~@2, ~@4 b4@3 ~",
  V: "[[c5,f#5]@5 ~ [c5,e5] ~ [c5,e5]@10 ~@2 [c5,e5]@2 [d5,f#5]@2 [e5,g5]@5 ~ [c5,e5] ~]/2", // Cdim C D Em C
  W: "[c5,e5]@4 ~@2 [b4,d5] ~ [b4,d5]@8", X: "~@4 b4@2 [a4,c5] ~ [b4,d5]@3 ~ [c5,e5]@3 ~, ~@4 g4 ~@11",
  Y: "[[b4,d5]@4 ~@2 a#4@2 [a4,c5]@11 ~ [a4,c5]@3 ~ [a4,c5]@2 [b4,d5]@3 ~ [c5,e5] ~, ~@6 c#5 ~@25]/2", // Bm Am Bm C
  Z: "[c5,e5] [b4,d5]@7", // C Bm
})).s("gm_lead_1_square").gain(0.48).pan(0.6)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@9 A ~@23 B ~@7 B ~@15 A ~@15 B ~@7 B ~@11>".pickRestart({
  A: "~@7 x", B: "~@14 x!2",
})).gain(0.56)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@9 A ~@23 B ~@7 B ~@15 A ~@15 B ~@7 B ~@11>".pickRestart({
  A: "~@3 x", B: "~@5 x!2 ~",
})).gain(0.56)

// drums · high tom
const high_tom = s("ht").struct("<~@9 A ~@23 B ~@7 C ~@15 A ~@15 B ~@7 C ~@11>".pickRestart({
  A: "~@5 x ~@2", B: "~@2 x!3 ~ x ~ x ~@7", C: "~ x ~ x!2 ~@3",
})).gain(0.56)

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

stack(
  acoustic_guitar_steel, bass, accordion, epiano2, bass_2, pad_new_age, electric_guitar_jazz, lead_1_square, kick,
  snare, low_tom, hihat, mid_tom, high_tom, crash
)