Strudelify
Beth cover art

1997 · Destroyer

Beth

Kiss

KeyC majorTempo54 bpm
0:00/0:00
// Beth — Kiss
// 54 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 "guitar" overdriven guitar (copy of ch 3 "solo" lead 1 square)
// note: Full arrangement: all 42 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(54/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 · piano
const piano = note(`<
  A B C D E F G H I J K L M N@2 O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL@2 ~@2
>`.pickRestart({
  A: "~@14 e5 f5",
  B: "[c4,d4,e4,g4,g5]@8 ~ c4@9 ~@3 c5@2 ~@4 e5@5 ~ c4@5 ~ c4@2 ~@4 c3@3, c3@8 ~ c3@13 ~@2, ~@9 [e4,g4,g5]@12 c4@11 ~@10 c4@5 ~, ~@24 [d4,c5]@8 ~ [e4,g4]@11 ~@4, ~@24 f5 g4@7 [c5,d5]@6 ~ c5@7 ~@2", // C Em D7 Em Csus2
  C: "g4@3 c5@3 a4@3 d4@6 ~@3 d4@4 ~@2 [g4,b4]@3 ~@3 c5@3 c4@3 d5@3 [c4,g4]@3 g4@3 [f3,g4]@3, f3@35 ~ f3@7 ~@5, [c4,d4,f4,a4]@8 ~ [f4,a4,c5]@14 ~ [c4,d4,f4]@8 ~ [d4,f4,g4]@8 ~ [c4,d4,f4,f5]@5 ~, ~@9 c4@5 ~ c4@8 ~ f2@22 ~@2, ~@27 g4@5 ~@16", // G C5 Fsus2 Dm7 F Dm7 G7 Dm7
  D: "[c4,d4,e4,g4,c5,g5]@9 d4@8 ~@4 [c3,c5]@2 ~ f5@3 e5@5 ~ d4@5 ~@4 g4@2 c3@3 ~, c3@20 ~@4 c3@18 c4@5 ~, e5 ~@8 [c4,e4,g4,g5]@14 ~ [c4,d4,e4,g4,c5]@8 ~ [c4,e4,g4,d5]@10 ~@5, ~@9 c5 ~@8 d4@5 ~@16 [d4,c5]@7 ~@2", // C D7
  E: "~@3 c5@2 a4@3 ~@10 c5@3 [c4,a4]@2 ~ g2@11 ~ g2@12, [g3,c4,d4,f4]@8 [c4,a4]@10 f2@5 ~@25, [g4,a4,b4]@5 ~@3 f4@14 ~@2 c5@2 ~@22, ~@8 [d4,c5]@6 ~ [d4,a4]@8 ~@25, ~@9 f3@14 ~ [g3,c4,f4,a4,d5]@23 ~", // F Gsus4 F G D7 D5 Dm7
  F: "[c4,d4,e4,g4]@11 ~ c4@5 ~@4 c3@2 ~ [c4,d4,f4]@11 ~ c4@5 ~@4 c3@2 ~, c3@18 c4@5 ~ c3@18 c4@5 ~, ~@12 [d4,e4,g4]@11 ~ e4 ~@11 [d4,f4]@11 ~", // C Dm7 Em7 Dm
  G: "g4@6 c4@3 g4@2 ~ [b3,g4]@6 ~@3 g4@2 ~ e4@8 ~@13 g4@2 ~, [c3,e4]@12 b2@12 [a2,c4]@12 a2@11 ~, c4@5 ~@7 d4@5 ~ d4@6 g4@18 e4@5 ~, ~@33 e4@6 c4@7 ~@2", // Em C Am
  H: "c4@7 ~@11 f4@2 ~ f3@2 ~ g3@9 ~@6 b3@2 ~ [b3,d4,g4]@2 ~ g3@3, f2@23 ~ g2@22 ~@2, [a3,f4]@15 a3@7 ~@2 d4@7 ~@2 d4@8 ~@7, ~@9 c4@8 ~@7 [b3,g4]@16 ~@8, ~@12 f3@8 ~@16 g3@7 ~@5", // G Dm Em
  I: "a4@8 ~@7 e4@2 ~ a4@2 ~ a3@2 ~ e4@5 ~@4 e3@2 ~ e4@5 ~@4 e3@3, a2@23 ~@25, [e4,c5]@17 ~ [e4,c5]@5 ~@7 e4@5 ~@7 e4@5 ~, ~@9 a4@8 ~@31, ~@12 a3@7 ~@5 [e3,a4,b4]@11 ~ [e3,g#4,b4]@10 ~@2", // C Esus4 E
  J: "a4@8 ~@10 a4@3 c5@2 ~ [g3,g4]@9 ~@9 g4@3 b4@2 ~, [a3,c5]@11 ~ d4@6 g3@5 ~, e4@12 a2@11 ~ g2@23 ~, ~@9 a4@6 e4@7 ~@2 b4@19 ~@5, ~@33 g4@6 d4@7 ~@2", // G Am
  K: "f4@8 ~@7 c4@2 ~ f4@3 f3 ~@2 e4@8 ~@7 b3@2 ~ g4@2 ~ e2@2 ~, f2@23 ~ [e2,g4]@20 ~@4, a4@17 ~@19 e3@10 ~@2, [f3,c4]@12 f3@7 ~@5 [e3,b3]@13 ~@5 b3 ~@5, ~@9 f4@8 ~ [c4,a4]@5 ~@10 e4@10 ~@5", // Em F5 E5 F
  L: "[d3,f#4,a4,c5]@9 ~@6 f#4@3 ~@2 d3@4 a4@8 ~@10 c5@3 f3@3, d2@11 ~ f2@12, ~@9 [a4,c5]@8 ~ c5@4 ~@11 a4@6 f4@6 ~@3, ~@9 f#4@5 ~@10 [f4,c5]@17 ~ a4 ~@5, ~@12 d3@7 ~@17 f3@7 ~@5", // D7 Am F5
  M: "a4@11 ~@19 c5@3 a3@2 ~ [a4,c5,e5] ~@5 [g3,g4,b4]@2 ~@4, c5@27 e4@5 ~@16, a2@21 a4@10 ~@11 d5 ~@5, e4@15 a3@16 ~@5 a3@2 ~@10, ~@6 a4@3 e4@3 a2@5 ~@7", // Am G
  N: "[[f3,f4,a4,c5]@9 [g3,f4,g4,a4,c5]@9 g4@11 ~@13 a4@3 c5 ~@2 [c4,d4,e4,g4]@11 ~ [c4,e4]@6 ~@3 c3@2 ~ [c4,d4,f4]@11 ~ c4@5 ~@4 c3@2 ~, g4@2 ~@16 c3@49 ~@5 c3@19 ~@5, ~@18 c5@21 g4@6 ~@21 c4@5 ~@19 c4@5 ~, ~@18 e4@15 c2@14 ~ b2 ~@47, ~@30 g4@6 e4@10 ~@14 [d4,g4]@11 ~@13 [d4,f4]@11 ~]/2", // F C Dm7 G5 Dm
  O: "[c3,c4]@6 c4@3 c3@3 d4@5 ~@3 b2@3 ~ e4@8 ~@7 c4@2 ~ [c4,e4,g4]@3 a2@2 ~, [e4,g4]@11 ~ [b2,b3,g4]@11 ~ g4@17 ~@7, ~@9 d4@3 [a2,c4]@6 a2@4 ~@2, ~@33 e4@8 ~@7", // C Em Am
  P: "c4@8 ~@7 a3@2 ~ [c4,f4]@3 f3@2 ~ d4@8 ~@7 b3@2 ~ [b3,d4,g4]@2 ~ d3@3, f2@22 ~@2 g2@21 ~@3, f4@17 ~@7 g4@17 ~@7, a3@12 f3@7 ~@5 [g3,b3]@12 g3@12, ~@9 c4@8 ~ a3@5 ~@10 d4@8 ~@7", // F5 G
  Q: "a4@8 ~@13 a3@3 [e3,a4]@6 ~@3 e3@3 [d3,e4]@6 e4@3 d3@2 ~, a2@23 ~@25, [e4,c5]@15 e4@8 ~ e4@4 ~@2 e4@6 ~@12, ~@9 a4@8 ~ [a4,c5]@5 ~ b4@12 [g#4,b4]@11 ~, ~@3 a3@2 ~@7", // A5 Dsus2 C Am G#m
  R: "g2 ~@2 f4 ~@2 e4@6 ~@3 e4@2 ~ [e4,a4,c5]@5 ~ g4@8 ~@7 d4@2 ~ g4@2 ~ g2@2 ~, f2@11 ~ a2@11 ~ [g2,b4]@20 ~@4, ~@6 [a4,c5]@11 ~@7 [g3,d4]@12 g3@10 ~@2, ~@33 g4@8 ~ [d4,b4]@5 ~", // Am G Am G5 G
  S: "[f3,e4,a4,c5]@9 ~@6 e4@2 ~@4 f3@2 ~ g4@7 ~@8 d4@2 ~ [d4,g4,b4]@3 e3 ~@2, f2@23 ~ e2@23 ~, ~@9 [a4,c5]@9 ~@6 b4@17 ~@7, ~@9 e4@5 ~@4 [e4,a4,c5]@5 ~@10 g4@8 ~@7, ~@12 f3@7 ~@5 [e3,d4]@12 e3@7 ~@5", // Fmaj7 G Am E7
  T: "[d3,f#4,a4,c5]@9 f#4@3 ~@3 f#4@2 ~ f#4@3 d3@3 a4@8 ~@7 f4@2 ~ c5@3 f3@2 ~, d2@23 ~ f2@24, ~@9 [a4,c5]@8 ~ [a4,c5]@5 ~ [f4,c5]@16 ~@2 f4@2 ~@4, ~@12 d3@7 ~@14 a4@8 ~ a4 ~@5, ~@36 f3@7 ~@5", // D7 Am F5
  U: "[a4,c5,e5]@12 [a4,c5,e5]@11 ~ [a4,c5,e5]@11 ~ [a3,a4,c5,e5]@2 ~@4 [g3,g4,b4,d5]@2 ~@4, a2@35 ~@13", // Am G
  V: "[f3,f4,a4,c5]@9 [g3,f4,g4,a4,c5]@9 g4@8 ~@13 a4@3 [e4,e5]@3 [g3,f5]@3, ~@6 c3@9 ~, ~@18 c5@18 g4@7 ~@5, ~@3 e4@2 c4@2 ~, ~@27 g4@6 e4@9 c5@2 ~@4", // F E G7
  W: "[c4,d4,e4,g4,g5]@8 ~ d4@8 ~@4 [c3,c5]@3 f5@3 e5@5 ~ [c4,d5]@5 ~ c4@3 ~@3 [c4,g4]@2 ~, c3@18 d4@5 ~ [c4,d4,e4,g4]@8 ~ [d4,e4,g4]@11 ~@4, ~@9 [c4,e4,g4,g5]@14 ~ c3@16 ~@2 c3@6, ~@24 c5 ~@13 c5@8 ~@2", // C Csus2 C5 C Em7 C
  X: "g4@3 c5@3 a4@3 [a4,c5]@6 [c4,a4]@3 ~@3 c4@2 ~ [g4,b4]@3 ~@3 c5@3 c4@3 d5@3 g4@3 f4@2 ~ g4@2 ~, f3@17 ~ [f3,a4,c5]@6 [g3,c4,d4,f4]@11 ~ g3@12, [c4,d4,f4,a4]@8 ~ [d4,f4]@15 ~@3 g4@5 ~ [f4,g4]@6 c4@8 ~, ~@9 c4@4 ~@20 d4@13 ~@2, ~@42 f5@5 ~", // Am F G F Gsus4 Dm7 Dm Fsus2
  Y: "[c4,d4,e4,g4,c5,g5]@9 ~@5 g3@2 ~@5 [c3,d5]@2 ~ [c5,g5]@2 ~ [c5,f5]@6 ~@3 d5@3 ~@3 d5@3 c4@2 ~, c3@10 ~@2 c3@8 ~ c3@3, ~@9 [d4,e4,g4,g5]@14 ~@10 [d4,e4,g4]@13 ~@2, ~@9 [c4,c5]@8 ~ [c4,c5]@5 ~ [c4,d4,e4,g4]@8 ~ [c4,e5]@5 ~ [c4,c5]@6 e5 ~@2", // C Csus2 C5 F5 Em7 C
  Z: "~@3 g4 ~@11 [c4,a4]@3 [a4,c5]@3 [f3,a4]@3 [b2,f4,d5]@12 a4@6 b4@6, [f3,c4]@12 f3@8 ~@16 [g#2,f4,g#4,c5]@11 ~, [f4,a4]@8 [a4,c5]@7 ~@9 b4@7 ~@17, ~@9 f4@9 [c4,f4] ~@5 c5@2 ~@22", // F Am F Bdim F5 Fm F Am …
  AA: "a4@8 ~@10 a4@3 c5@2 ~ g4@8 ~@10 g4@3 b4@2 ~, a2@23 ~ g2@23 ~, c5@15 e4@8 ~ d4@12 g3@10 ~@2, e4@12 a3@10 ~@11 g4@6 d4@7 ~@2, ~@9 a4@8 ~@7 b4@18 ~@6",
  AB: "f4@8 ~@7 c4@2 ~ [c4,f4,a4]@2 ~ f3@3 [b2,f4]@6 ~@3 b2@3 [g#2,g#4,b4,d5]@6 ~@3 g#2@3, f2 ~, a4@17 ~@7 [b4,d5]@11 ~@13, [f3,c4]@12 f3@7 ~@29, ~@9 f4@8 ~@13 f4@5 ~ f4@5 ~ f4@5 ~", // F Bdim G#dim Bm F5
  AC: "[a4,c5]@8 ~@7 f4@2 ~ [f4,a4]@3 d3@2 ~ [f2,f#4,a4,c5]@12 [f2,f4,a4,c5]@12, d2@11 ~@13, f4@12 d3@7 ~@29, ~@9 [a4,c5]@8 ~ c5@5 ~@13 g4 ~@11", // Am F Am
  AD: "[a4,c5,e5]@12 [a4,c5,e5]@11 ~ [a4,c5,e5]@11 ~ [a2,a4,e5]@2 ~@4 [g2,g4,d5]@2 ~@4, a2@35 ~ [a3,c5] ~@5 [g3,b4] ~@5", // Am A5 G5 Am G
  AE: "[f2,f3,f4,a4,c5]@9 [g2,f4,a4,c5]@9 g4@8 ~@13 a4@3 c5@2 ~ g3@3, ~@9 c3@14 ~, ~@18 c5@18 g4@7 ~@5, ~@18 e4@12 c4@13 ~@5, ~@27 g4@6 e4@13 ~@2", // F
  AF: "[c4,d4,e4,g4]@11 ~ [c4,e4]@6 ~@3 c3@2 ~ [c4,d4,f4]@11 ~ c4@5 ~@4 c3@2 ~, c3@18 c4@5 ~ c3@18 c4@5 ~, ~@12 [d4,g4]@11 ~@13 [d4,f4]@11 ~", // C Dm7 G5 Dm
  AG: "c4@5 ~ c4@3 c3@3 g4@6 ~@3 g4@2 ~ e4@8 ~@10 [e4,g4]@3 a2@2 ~, [c3,e4,g4]@11 ~ [b2,b3]@12 c4@12 a3@9 ~@3, ~@12 d4@5 ~ d4@6 [a2,g4]@20 ~@4, ~@33 e4@6 c4@8 ~", // Em C B A7
  AH: "f4@8 ~@7 c4@2 ~@4 f3@2 ~ g3@12 b3@6 g3@6, f2@23 ~ g2@24, a4@17 ~@31, c4@12 f3@7 ~@5 b3@11 ~@13, ~@9 f4@8 ~ [c4,f4,a4]@6 [d4,g4]@20 ~@4", // F G5
  AI: "[c5,e5,g5]@9 ~@3 c4@2 ~@7 [c4,e4,g4]@2 ~ f5@3 e5@5 ~ [c4,d4,d5]@6 ~@3 d4@2 ~ c3@3, c3@23 ~ c3@18 c4@5 ~, ~@9 e5@9 d4@5 ~@10 [e4,g4]@12 ~@3, ~@15 c4@5 ~@4 [c4,d4,e4,g4]@9 ~@6 c5@9", // C Csus2 Em C
  AJ: "~@3 c5@3 a4@2 ~ [c4,d4,a4,c5]@6 ~@3 [c4,c5]@3 f3@2 ~ b4@3 g4@3 c5@3 ~@12 [c4,a4]@2 ~, f3@19 ~@2 a4 ~@2 a4@18 [d4,f5]@5 ~, [c4,d4,f4,a4]@8 ~ f4@13 ~ f4@16 [c4,g4]@5 ~@4, ~@15 [d4,a4]@7 ~ g3@24 ~, ~@24 [c4,d4]@9 [d4,g4]@2 d5 g2@12", // D7 C F Dm Dm7 C5 D5 Csus2 …
  AK: "[c3,c4,d4,e4,g4]@9 c4@3 ~@9 [c3,e4,g5]@3 f5@2 ~ [c5,e5]@5 ~ [d4,e4,d5]@6 c4@2 ~ [e4,g4]@3 c3@2 ~, [c5,g5]@7 ~@2 [e4,g4,g5]@14 ~@25, ~@9 [d4,c5]@6 c4@8 ~ [c3,g4]@20 ~@4, ~@12 c3@6 c5@8 ~@13 c5@8 ~, ~@18 d4@5 ~ [c4,d4,e4]@9 c4@5 ~@4 [c4,d4]@5 ~", // C Dsus2 Em C5 Em D7 C5 C …
  AL: "[~@3 c5@3 a4@2 ~ c4@3 ~@3 [c4,a4]@2 ~ [c4,d4,f4,a4,c5]@2 ~ [f3,a4]@3 [g3,c4,d4,f4,a4]@12 [g3,c4,f4,a4]@12 ~@48, d3@12 f3@7 ~@5 c5 ~@71, [c4,d4,f4,a4]@8 ~ [d4,f4,a4,c5]@8 ~@7 d5@44 ~@28]/2", // F Dm7 F Dm7 F Dm7
})).s("gm_piano").gain(0.36)

// bass · electric bass finger · "bass"
const bass = note("<~@12 A B C D E F G H I J B K L K M N O P Q R K S T U V@2 W X@2 Y>".pickRestart({
  A: "~@18 a1 ~@2 g1 ~@2", B: "f1@9 g1@9 c2@21 c3 ~@5 g2@3", C: "c2@8 ~ c2 ~@2 c2@8 ~ c2 ~@2",
  D: "c2@11 ~ b1@11 ~ a1@17 ~ a1@3 ~@3, d2 ~@23", E: "f1@18 f2@2 ~ f1@3 g1@17 ~ g1@2 ~@4",
  F: "a1@17 ~ a1@6 e2@12 d2@12", G: "f2@12 a1@6 a1@5 ~ g1@15 g2 ~@2 d2 ~@2 g1@2 ~",
  H: "f1@16 ~@2 f1@4 ~@2 e2@17 ~ e2@2 ~@4", I: "d2@17 ~ d2@5 ~ f2@9 c2@3 f1@12", J: "a1@35 ~ a1@2 ~@4 g1@2 ~@4",
  K: "c2@17 ~ c2@2 ~@4 c2@17 ~ c2@2 ~@4", L: "c2@17 ~ c2@2 ~@4 c2@12 g2@12, ~@36 f2 ~@11",
  M: "c2@17 ~ c2@2 ~@4 b1@12 g#1@12", N: "a1@17 ~ a1@5 ~ g1@17 ~ g1@5 ~, ~@12 a1 ~@11",
  O: "f1@17 ~ f1@5 ~ b1@12 g#1@12", P: "d2@17 ~ d2@5 ~ f2@24", Q: "a2@15 e2@3 a1@16 ~@2 a1@2 ~@4 g1@2 ~@4",
  R: "f1@8 ~ g1@9 c2@21 g2@9", S: "c2@11 ~ b1@12 a1@23 ~", T: "f1@3 ~ g1@4", U: "c2@17 ~ c2@2 ~@4 c2@23 ~",
  V: "[c2@17 ~ c2@3 ~@3 c2@12 g2@11 c2@17 ~@2 c2@2 ~@4 c2@23 ~, ~@18 f2 ~@29]/2",
  W: "c2@8 ~ c2 ~@2 c2@6 g2@6, ~@36 f2 ~@11", X: "[~@85 g2@11, ~@6 c2@41 ~]/2", Y: "c2@5 ~@3",
})).s("gm_electric_bass_finger").gain(0.41)

// other · string ensemble 2 · "strings"
const string_ensemble_2 = note("<A B C@5 D E F G H@5 I@2 J K@2 L@3 M@3 N@2 O@3 P@2 G Q@2 R S@3 ~>".pickRestart({
  A: "~@3 e4", B: "g5", C: "[f5@24 ~@11 d5@12 ~ e5@47 ~ d5@23 e5@24 ~ c5@60 b4@12 a4@24, ~@24 g5@121 ~@95]/5", D: "d5",
  E: "e5", F: "a4@2 c5 d5", G: "c5 b4", H: "[c5@34 b4@2 a4@3 g4, ~@117 f4 ~@2]/5", I: "[a4@24 b4@23 c5@37 d5@12]/2",
  J: "e5 d5", K: "[c5@24 b4@23 c5@25 b4@12 c5@12]/2", L: "[e5 g5]/3",
  M: "[f5@23 ~@19 d5@6 e5@47 ~ d5@24 e5@12 b4@12, ~@23 g5@72 f5@24 ~@25]/3", N: "[c5@24 b4@23 a4@25 g4@12 b4@12]/2",
  O: "[c5@24 a4@72 e5@9 d5@8 g5@31, ~@113 a5 ~@30]/3", P: "[c5@5 b4 a4@2]/2", Q: "[g5@47 f5@24 g5@24 ~]/2",
  R: "[e5,g5]", S: "[[d5,f5]@6 ~@3 f4@4 e4@11 ~@12, ~@24 e5@73 ~@47]/3",
})).s("gm_string_ensemble_2").gain(0.36)

// chords · synth strings 1 · "strings"
const synth_strings_1 = note(`<
  ~ A B C D E@2 F G H I J K L M N@2 O P@3 Q R S@2 T U V W X Y Z@3 AA AB AC AD AE@4
>`.pickRestart({
  A: "g4@23 ~", B: "[f4,a4]@24 g4@23 ~", C: "~@36 [c4,e4,g4]@11 ~", D: "[c4,f4,a4]@23 ~ [c4,g4]@23 ~",
  E: "[c4@5 b3 a3 g3]/2", F: "f3@23 ~ g3@23 ~", G: "c4@23 b3@13 d4@12", H: "c4@24 b3@9 c4@2 ~ d4@6 c4@2 b3@4",
  I: "a3@24 g3@11 c4@10 d4@3", J: "c4@23 ~ b3@11 a3@12 ~", K: "e4", L: "d4@9 c4@8 ~ c3@17 ~ c3@12, ~@18 d3 ~@29",
  M: "g3@3 a3", N: "[g3@6 d4@2 c4@12 b3@2 a3 g3 a3@8]/2", O: "e4!2 c4 b3",
  P: "[c4@29 ~ b3@2 c4@3 ~ d4@6 c4@2 b3@3 a3@24 ~ g3@5 a3@3 b3@3 d4@6 ~ c4@2 b3@3 c4@46 ~@3]/3",
  Q: "~@12 a3@12 g3@11 ~ a3@5 ~ g3@5 ~, e4@35 ~@13", R: "f3@3 g3@3 c3@10, ~@18 b2 ~@29",
  S: "[g3@12 c4@24 d4@6 c4@5 ~ [c4,a4]@23 ~ [c4,g4]@23 ~, ~@47 f4@23 ~@26]/2", T: "[e4,g4]@47 ~",
  U: "a4@24 g4@11 ~ b3@12, f4@35 ~@13", V: "c4@11 ~ d4@6 c4@3 b3@2 ~ a3@11 ~ [a3,c4] ~@5 c4@2 d4@2 ~@2, ~@36 b3@5 ~@7",
  W: "c4@11 ~@4 c4@3 d4@3 c4@3 b3@11 ~ a3@11 ~, ~@15 d4 ~@32",
  X: "~@3 b3@3 c4@2 ~ d4@3 c4@6 b3@2 ~ g3@2 ~ a3@15 g3@3 a3@2 ~ b3@2 ~",
  Y: "d4@11 ~ e4@19 ~@5 [e4,a4]@2 ~@4 [b3,d4,g4]@2 ~@4, ~@12 d4@2 ~@22 c4 ~@11", // A5 G
  Z: "[c4@9 c4@7 ~@20 g3@12 c3@24 g3@35 ~ e4@6 d4@3 c4@3 d4@24, [a3,f4]@9 c4@19 ~@44]/3", AA: "c4@7 g3 a3@8",
  AB: "[c4,e4]@3 d4, g4@15 ~", AC: "[c4,f4,a4]@23 ~ c4@23 ~, ~@23 [f4,g4]@23 ~@2",
  AD: "[c4,e4]@36 d4@6 c4@5 ~, g4@43 ~@5", // C
  AE: "[[f4,a4]@23 ~ [g4,a4]@30 ~@65 g2@13 f2@12 g2@24 ~@24, c4@169 ~@23, ~@58 e4@111 ~@23, ~@59 g4@109 ~@24, ~@96 [c2,c3]@73 ~@23]/4", // F Gsus2 C
})).s("gm_synth_strings_1").gain(0.41)

// chords · synth strings 1 · "strings" · soft notes
const synth_strings_1_soft = note("<~ A B C D ~@16 E ~ F G H I ~@2 J ~ K ~@10>".pickRestart({
  A: "~ [c4,e4]@46 ~", B: "c4@47 ~", C: "~ e4@35 ~@12, [c4,g4]@3 ~", D: "~@8 f4@7 ~", E: "~@42 a3 ~@5",
  F: "~@12 g4@31 ~@5, ~@12 e4@23 ~@13", G: "~@12 f4@11 ~", H: "c4@23 ~", I: "c4@35 ~@13", J: "~@12 d4 ~@35",
  K: "~@18 c#4 ~@29",
})).s("gm_synth_strings_1").gain(0.26)

// other · synth strings 1 · "strings"
const synth_strings_1_2 = note("<~@27 A B C@2 D ~@10>".pickRestart({
  A: "~@3 e6 ~@2 d6@2 ~ e6@2 ~ c6@2 e6@3 ~ b5@2 e6@3 ~ g5@2 ~ d6@2 ~ c6@2 ~ d6@2 ~ b5@2 ~ d6@2 ~ a5@2 ~ d6@3",
  B: "f5@2 c6@2 ~@2 b5@2 c6@3 ~ a5@2 c6@3 ~ g5@2 c6@3 ~ e5@2 ~ b5@2 ~ a5@2 ~ b5@2 ~ g#5@2 b5@2 ~@2 a5@2 ~ b5@2 ~",
  C: "[a5@2 ~ b5@2 ~ a5@2 ~ g5@2 ~ f5@2 ~ g5@2 a5@2 ~ b5@2 ~ d6@5 ~@2 c6@5 ~ b5@6 a5@4 c6 ~ d6@9 ~ d6 c6@20 ~@5 e6@2 ~@4 d6@2 ~@4, ~@23 a5 ~@24, ~@47 [b5,c6]@2 ~@8 e6@2 ~@37]/2", // Cmaj7
  D: "c6@8 ~ g5@8 ~ c5@30",
})).s("gm_synth_strings_1").gain(0.41)

// chords · french horn
const french_horn = note("<~@12 A B@3 C D@2 E@2 F G H@4 I J K L M N O P Q R@6>".pickRestart({
  A: "~@36 [a4,c5,e5]@2 ~@4 [g4,b4,d5] ~@5", // Am G
  B: "[[f4,a4]@9 a4@9 [e4,g4]@29 ~ a4@12 g4@48 c5@5 ~ d5@6 c5@15 e5@3 d5@3 c5@3, c5@18 ~@90 b4 ~@4 c5@2 ~@20 d5 ~@8, ~@9 g4@2 ~@36 g4@2 ~@95]/3", // F Em
  C: "d5@30 g5@11 ~ a5@5 ~, ~@30 f5 ~@11 g5@2 ~@4",
  D: "[g5@23 ~ a5@11 ~ b5@5 ~ b5 c6@26 b5@6 a5@3 g5@9 e6@6 d6 c6@2, ~@24 g5 ~@11 a5 ~@50 d6 ~@8]/2",
  E: "[d6@12 c6@9 b5@14 ~ g5@27 f5@3 e5@3 d5@2 ~ e5@6 d5@5 ~ c5@5 c5 d5@6, ~@36 f5 ~@35 d5@2 ~@22]/2",
  F: "c5@35 ~ [a4,c5,e5]@2 ~@4 [g4,b4]@2 ~@4, ~@42 d5 ~@5", G: "[f4,a4,c5]@3 [g4,c5]@3 [e4,g4,c5]@10",
  H: "[g4@83 a4 b4@6 c5@78 b4@11 g#4@12 ~, ~@90 a4 ~@101]/4", I: "a4 g4", J: "f4@24 g#4@12 a4@5 ~ b4@6, ~@41 a4@2 ~@5",
  K: "a4 f4", L: "g4@6 b4@6 c5@5 ~ [a4,c5] ~@2 [g4,b4,d5] ~@2, ~@12 a4 ~@23 e5 ~@11",
  M: "[f4,a4]@9 a4@2 ~@7 e4@29 ~, c5, ~@3 g4@13", N: "e4@25 g4@23",
  O: "a4@17 d5 e5@6 d5@11 ~ e5@3 d5@3 ~@3 d5@3, ~@36 d5 ~@5 c5@5 ~", P: "c5@18 a5@6 g5@17 ~ b5@5 ~, ~@18 g5 ~@29",
  Q: "[a5,b5] ~@35 b5@6 a5@3 g5@2 ~, c6@35 ~ a5@2 ~@10", // Asus2
  R: "[a5@15 g5@2 f5@3 e5@3 ~ f5@3 e5@2 d5@3 c5@3 ~ e5@9 d5 ~ d5@36 ~ d5@5 ~ e5@3 c5@17 ~ g4@2 ~ g4 ~@5 g4@12 f4@20 d4@6 e4@84 ~@46, g5@2 ~@33 d5@2 ~@9 c5@2 ~@42 d5 ~@20 a4@10 ~@167]/6",
})).s("gm_french_horn").gain(0.36)

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

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@26 [~@3 x] ~@3 [~@7 x] ~@11>").gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 [~@3 x] ~@11>").gain(0.41)

// drums · open hat
const open_hat = s("oh").struct("<~@23 [~@5 x ~@10] [~@11 x ~@4]!2 ~@16>").gain(0.51)

// drums · high tom
const high_tom = s("ht").struct("<~@12 [~@6 x!2] ~@8 [~@6 x!2] ~@20>").gain(0.41)

// drums · crash
const crash = s("cr").struct("<~@13 [x ~@2 x ~@2 x ~@9] ~@8 [x ~@2 x ~@2 x ~@9] ~@8 [x ~@2 x ~@2 x ~@9] ~@10>")
  .gain(0.31)

// drums · ride
const ride = s("rd").struct("<~@27 [x!4]!3 [x ~ x ~ x ~ x!2] [x ~ x!2] [x!4]!7 ~@3>").gain(0.36)

// drums · bongos
const bongos = s("bongo:4").struct("<~@18 A@2 B C ~@2 A D ~@6 E@3 F@4 ~@3>".pickRestart({
  A: "~@13 x ~@2", B: "~@5 x ~@7 x ~@2", C: "~@6 x!2 ~@8", D: "~@5 x ~@10", E: "~ x ~@14", F: "~@9 x ~@6",
})).gain(0.67)

// drums · bongos · soft notes
const bongos_soft = s("bongo:4").struct("<~@19 [~@5 x ~@10] ~@6 [~@9 x ~@6] ~@5 [~@9 x ~@6]!2 ~@8>").gain(0.27)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@14 A B@3 C B@2 D ~ E F G H ~@4 I H@2 J K J K J ~@3>".pickRestart({
  A: "~@3 x ~@11 x ~@3 x ~@4", B: "~ x ~@3 x ~@2", C: "~@2 x ~@2 x ~@4 x ~@5", D: "~ x ~@6", E: "~@5 x ~@24 x ~@17",
  F: "~@5 x ~@2", G: "~@2 x ~@6 x ~@6", H: "~@3 x ~@3 x", I: "~@41 x ~@6", J: "~@3 x ~@4", K: "~@6 x ~@6 x ~@2",
})).gain(0.67)

// drums · bongos · soft notes
const bongos_soft_2 = s("bongo:18").struct("<~@15 [~@13 x ~@2] ~@20 [~@5 x] ~@5>").gain(0.27)

// drums · congas
const congas = s("conga:18").struct("<~@14 A@7 ~ B C D E F ~@4 G H@2 I H@4 ~@3>".pickRestart({
  A: "~@6 x!2 ~@6 x!2", B: "~@14 x!2", C: "~@6 x!2 ~@8", D: "~@2 x ~@4 x ~@6 x!2", E: "~@6 x!2 ~@6 x ~",
  F: "~@5 x ~@2 x ~@21 x ~@2 x ~@14", G: "~@10 x!2 ~@4", H: "~@2 x!2 ~@6 x!2 ~@4", I: "~@2 x!2 ~@12",
})).gain(0.98)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@27
  [~@6 x ~@8 x ~@3 x ~ x ~@2 x ~@2 x ~@5 x ~@14]
  [x ~ x ~@5 x ~@2 x!2 ~ x ~]
  [~ x ~@5 x ~@8]
  ~@12
>`).gain(0.26)

// drums · claves
// … 17 more lines

More by Kiss