Strudelify

A Glass of Champagne

Sailor

KeyG majorTempo139 bpm
0:00/0:00
// A Glass of Champagne — Sailor
// 139 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(139/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 · synth brass 1
const synth_brass_1 = note(`<
  ~@19 A B@8 C@2 ~@6 D@8 E F ~@6 G@7 H I J K L ~@10 M@2 ~ N@2 ~@2 M@2 ~ N@2 ~@2
>`.pickRestart({
  A: "~@3 d4@4 c4", B: "[~@2 a3@5 g4@4 c5@4 g4@4 c5@4 g4@4 c5@4 g4@4 c5@4 g4@4 ~@4 g4@4 ~@4 d4@4 ~@5]/8",
  C: "[d4 ~ b3 ~ c4 ~ a3 ~ b3 ~ g3 ~ a3 ~ g3@7 ~@11]/2",
  D: "[~@7 g4@4 c5@4 g4@4 c5@4 g4@4 c5@4 g4@4 c5@4 g4@4 ~@4 g4@4 ~@4 d4@4 ~@5]/8", E: "d5 b4 c5 a4 b4 g4 a4 f#4",
  F: "g4 e4 f#4 d4 e4 c4 d4 b3", G: "[~@7 d4@4 c4@3 a3@5 g4@4 c5@4 g4@4 c5@4 g4@4 c5@4 g4@4 c5@4 g4@4 ~]/7",
  H: "~@3 g4@4 ~", I: "~@3 d4@4 ~", J: "~@4 d5 b4 c5 a4", K: "b4 g4 a4 f#4 g4 e4 f#4 d4", L: "e4 c4 d4 b3 ~@4",
  M: "[~@3 d4@4 c4@3 ~@6]/2", N: "[~@7 d4@4 c4@3 ~@2]/2",
})).s("gm_synth_brass_1").gain(0.36).pan(0.6)

// other · pad poly
const pad_poly = note(`<
  ~@12 A B C B D E F G@2 H@4 I@2 J K L M B M N O B M H@4 I@2 J P Q B M B R S T U V W X@3 Y@3 Z AA AB B C B AC N F B AD E
  F AE@2 T U AF E F AE@2 T U AF E F
>`.pickRestart({
  A: "~@6 g2@2 g1@5 ~@3", B: "g1@5 ~@3 g1@5 ~@3", C: "g1@6 ~@2 g1@5 ~@3", D: "d2@6 ~@2 d2@5 ~@3",
  E: "d2@5 ~@3 g1@5 ~@3", F: "c2@6 ~@2 g1@5 ~@3", G: "[d2@5 ~@3 d2@5 ~ c2@4 d2@2 d2@4 a1@2 d2@2 d2@4]/2",
  H: "c2@3 ~ f1@3 ~", I: "g1@5 ~ g2@6 ~@4", J: "d2@3 ~ d2@3 ~", K: "d2 b1 c2 a1 b1 g1 a1 g1", L: "g1@4 ~@4 g1@5 ~@3",
  M: "g1@5 ~@3 g1@6 ~@2", N: "c2@5 ~@3 c2@5 ~@3", O: "c2@5 ~@3 c2@6 ~@2", P: "d3 b2 c3 a2 b2 g2 a2 f#2",
  Q: "g2 e2 f#2 d2 e2 c2 d2 b1", R: "g1@5 ~@3 d2@6 ~@2", S: "d2@5 ~@3 d2@5 ~@3", T: "g1@5 ~@3 c2@6 ~@2",
  U: "g1@5 ~@3 d2@5 ~@3", V: "d2@5 ~ c2@4 d2@2 d2@4", W: "a1 d2 d2@2 c2@3 ~", X: "f1@3 ~ c2@3 ~",
  Y: "[f1@6 ~@2 g1@5 ~ g2@6 ~@4 g1@5 ~ g2@6 ~@4 d2@6 ~@2]/3", Z: "d2@3 ~ d3 b2 c3 a2", AA: "b2 g2 a2 f#2 g2 e2 f#2 d2",
  AB: "e2 c2 d2 b1 g1@2 ~@2", AC: "g1@6 ~@2 c2@5 ~@3", AD: "g1@6 ~@2 d2@5 ~@3",
  AE: "[d2@5 ~@3 d2@5 ~@3 d2@5 ~@3 d2@5 ~@3, ~@7 c2@2 ~@7]/2", AF: "d2@5 ~@3 d2@5 ~@3, ~@3 c2@2 ~@3",
})).s("gm_pad_poly").gain(0.69)

// chords · shamisen
const shamisen = note("<~@29 A B@2 C D E F G ~@26 H I@2 J K@4 L ~@2 M N ~ O P@2 ~ M N ~ O P@2 ~>".pickRestart({
  A: "~ [d5,f6]!5 [c5,e6]!2", B: "[[b4,d6]!2 [a4,c6] [g4,b5]@6 [d5,f6]!5 [c5,e6]!2]/2",
  C: "[b4,d6]!2 [a4,c6] [g4,b5] [g4,b5]@2 [f4,a5] [e4,g5]", D: "[d4,f5]!3 [c4,e5]@5",
  E: "[d4,f5]!3 [c4,e5]@3 [b3,d5] [a3,c5]", F: "[b3,d5] [d4,g5]!2 [d4,g5]@3 [f4,a5] [e4,g5]",
  G: "[f4,a5] [g4,b5]!3 [g4,b5]@3 ~", H: "~@5 [d5,f6]!3",
  I: "[[d5,f6]!2 [c5,e6]!2 [b4,d6]!2 [a4,c6] [g4,b5]@6 [d5,f6]!3]/2", // Dm C Bm Am G Dm
  J: "[d5,f6]!2 [c5,e6]!2 [b4,d6]!2 [a4,c6] [g4,b5]", // Dm C Bm Am G
  K: "[[g4,b5]@2 [f4,a5] [e4,g5] [d4,f5]!3 [c4,e5]@5 [d4,f5]!3 [c4,e5]@3 [b3,d5] [a3,c5] [b3,d5] [d4,g5]!2 [d4,g5]@3 [f4,a5] [e4,g5] [f4,a5] [g4,b5]!3]/4", // G F Em Dm C Dm C Bm …
  L: "[g4,b5]@3 ~@5", M: "~@2 c6 ~ c6 ~ c6 ~ c6 ~ c6 ~ b5 ~ b5 ~", N: "a5 ~ a5 ~ g5 ~ f#5@5 ~ f#5 ~ g5 ~",
  O: "~@10 c6 ~ c6 ~ c6 ~", P: "[c6 ~ c6 ~ b5 ~ b5 ~ a5 ~ a5 ~ g5 ~ f#5@5 ~ f#5 ~ g5 ~@9]/2",
})).s("gm_shamisen").gain(0.34).pan(0.4)

// other · accordion
const accordion = note("<~@29 A B@2 C D E F G ~@26 H I@2 J K@4 L ~@16>".pickRestart({
  A: "~ f5!5 e5!2", B: "[d5!2 c5 b4@6 f5!5 e5!2]/2", C: "d5!2 c5 b4 b4@2 a4 g4", D: "f4!3 e4@5", E: "f4!3 e4@3 d4 c4",
  F: "d4 g4!2 g4@3 a4 g4", G: "a4 b4!3 b4@3 ~", H: "~@5 f5!3", I: "[f5!2 e5!2 d5!2 c5 b4@6 f5!3]/2",
  J: "f5!2 e5!2 d5!2 c5 b4", K: "[b4@2 a4 g4 f4!3 e4@5 f4!3 e4@3 d4 c4 d4 g4!2 g4@3 a4 g4 a4 b4!3]/4", L: "b4@3 ~@5",
})).s("gm_accordion").gain(0.22).pan(0.6)

// chords · piano
const piano = note(`<
  A@7 B C D B C E A@3 C E F C@2 G@4 A@2 C H I@4 J@2 I@2 G@4 A@2 C H ~ A@3 B C D B C K L@3 M A B N ~ O I@3 P Q R I S T U
  V@2 W S V T U V@2 W S V T X
>`.pickRestart({
  A: "[g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~", // G5
  B: "[g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~", // G5 D5
  C: "[d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~", // D5
  D: "[g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,c5,g5] ~ [g4,c5,g5] ~ [g4,c5,g5] ~ [g4,c5,g5] ~", // G5 C5
  E: "[d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~", // D5 G5
  F: "[g4,c5,g5] ~ [g4,c5,g5] ~ [g4,c5,g5] ~ [g4,c5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~", // C5 G5
  G: "[e4,c5,e5] ~ [e4,c5,e5] ~ [e4,c5,e5] ~ [e4,c5,e5] ~ [f4,c5,f5] ~ [f4,c5,f5] ~ [f4,c5,f5] ~ [f4,c5,f5] ~", // C F5
  H: "[d4,a4,d5] ~@15", I: "[d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~",
  J: "[c5,f5] ~ [c5,f5] ~ [c5,f5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~", // F5 C
  K: "[d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [e4,c5,e5] ~ [e4,c5,e5] ~ [e4,c5,e5] ~ [e4,c5,e5] ~", // D5 C
  L: "[f4,c5,f5] ~ [f4,c5,f5] ~ [f4,c5,f5] ~ [f4,c5,f5] ~ [e4,c5,e5] ~ [e4,c5,e5] ~ [e4,c5,e5] ~ [e4,c5,e5] ~", // F5 C
  M: "[f4,c5,f5] ~ [f4,c5,f5] ~ [f4,c5,f5] ~ [f4,c5,f5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~", // F5 G5
  N: "[d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~@7", // D5
  O: "~@8 [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~", // G5
  P: "[d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [c5,f5] ~ [c5,f5] ~ [c5,f5] ~ [c5,e5] ~", // G5 F5 C
  Q: "[c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,f5] ~ [c5,f5] ~ [c5,f5] ~ [c5,e5] ~", // C F5 C
  R: "[c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~", // C G5
  S: "[d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~", // G5 D5
  T: "[a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~", // D5 G5
  U: "[c5,g5] ~ [c5,g5] ~ [c5,g5] ~ [c5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~", // C5 G5
  V: "[a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~ [a4,d5] ~", // D5
  W: "[d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~ [c5,g5] ~ [c5,g5] ~ [c5,g5] ~ [c5,g5] ~", // G5 C5
  X: "[c5,g5] ~ [c5,g5] ~ [c5,g5] ~ [c5,g5] ~ [d5,g5] ~ [d5,g5] ~ [d5,g5] ~@3", // C5 G5
})).s("gm_piano").gain(0.31).pan(0.8)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C@3 D E F G H F I@7 J@2 K@4 L@4 M@4 N@2 M@2 K@4 L@4 ~ O@2 D E F G H F P@8 ~ Q@8 R@4 F G H S@4 F G H T@3
>`.pickRestart({
  A: "~@7 [d3,g3]", B: "[d3,g3,b3]!2 [d3,g3,b3,g4] [d3,g3,b3]!2 [d3,g3,b3,g4]!3, ~@3 g4@2 ~@3",
  C: "[[d3,g3,b3,g4]!3 d3!2 [d3,g3] [d3,g3,b3,g4] [d3,g3,b3] [d3,g3,b3] [d3,g3,b3,g4]!2 d3!2 [d3,g3] [d3,g3,b3,g4] [d3,g3,b3] [d3,g3,b3] [d3,g3,b3,g4]!2 d3!2 [d3,g3] [d3,g3,b3,g4]!2, ~@3 [b3,g4]@3 ~ g4@2 ~@2 g3@2 ~@6 [b3,g4]@3 ~@2, ~@3 g3@2 ~@6 [b3,g4]@3 ~ g4@2 ~@2 g3@2 ~@3]/3", // G G5 G G5 G G5 G Em
  D: "[d3,g3,b3,g4]!3 d3!2 [d3,g3] [d3,g3,b3,g4]!2, ~@3 [b3,g4]@3 ~@2, ~@3 g3@2 ~@3", // G G5 G Em
  E: "[d3,g3,b3,g4]!3 d3!2 [d3,a3] [d3,a3,d4,f#4]!2, ~@3 [b3,g4]@3 ~@2, ~@3 g3@2 ~@3", // G D5 D Em
  F: "[d3,a3,d4,f#4]!3 d3!2 [d3,a3] [d3,a3,d4,f#4]!2, ~@3 [d4,f#4]@3 ~@2, ~@3 a3@2 ~@3", // D D5 D
  G: "[d3,g3,b3,g4]!3 d3!2 [d3,g3,c4] [d3,g3,c4,g4]!2, ~@3 g4@3 ~@2, ~@3 [g3,b3]@2 ~@3", // G Csus2 G
  H: "[d3,g3,b3,g4]!3 d3!2 [d3,a3,d4] [d3,a3,d4,f#4]!2, ~@3 g4@3 ~@2, ~@3 [g3,b3]@2 ~@3", // G D5 D G
  I: "[[d3,a3,d4,f#4]!2 d3!2 [d3,g3,b3] [d3,g3,b3,g4]!2 d3 d3 [d3,g3] [d3,g3,b3,g4] [d3,g3,b3]!2 [d3,g3,b3,g4]!2 d3 d3 [d3,g3] [d3,g3,b3,g4]!5 d3 d3 [d3,g3] [d3,g3,b3,g4]!5 d3 d3 [d3,a3] [d3,a3,d4,f#4]!5 d3 d3 [d3,a3] [d3,a3,d4,f#4]!2 [d3,g3,b3,g4]!3 d3 d3 [d3,g3,c4] [d3,g3,c4,g4]!2 [d3,g3,b3,g4]!4, ~@2 [a3,d4,f#4]@2 ~@3 [b3,g4]@3 ~ g4@2 ~@2 g3@2 ~@6 g3@2 ~@6 g3@2 ~@6 a3@2 ~@6 [g3,b3]@2 ~@7, ~@7 g3@2 ~@6 [b3,g4]@3 ~@5 [b3,g4]@3 ~@5 [b3,g4]@3 ~@5 [d4,f#4]@3 ~@5 g4@3 ~@6]/7", // D G G5 G G5 G G5 G …
  J: "[d3 [d3,a3,d4] [d3,a3,d4,f#4]!5 d3 d3 [d3,a3] [d3,a3,d4,f#4]!4 d3!2, ~@7 [d4,f#4]@3 ~@6, ~@7 a3@2 ~@5 [a3,d4,f#4]@2]/2", // D5 D D5 D
  K: "[[c3,g3,c4,e4]!3 c3!2 [c3,f3] [c3,f3,c4,f4] [c3,f3] [c3,g3]!2 [c3,g3,c4,e4] c3!2 [c3,f3] [c3,f3,c4,f4]!2, ~@6 c4@6 ~@2 [c4,f4]@5 ~@3 c4@6 ~@4, ~@3 [g3,e4]@2 ~@6 [g3,e4]@2 ~@3]/2", // C F5 C5 C F5 C
  L: "[[d3,g3,b3] [d3,g3,b3,g4]!2 d3!2 [d3,g3] [d3,g3,b3,g4] [d3,g3,b3] [d3,g3,b3] [d3,g3,b3,g4]!2 d3!2 [d3,g3] [d3,g3,b3,g4] [d3,g3,b3] [d3,a3,d4] [d3,a3,d4,f#4]!2 d3!2 [d3,a3] [d3,a3,d4,f#4] [d3,a3,d4] [d3,a3,d4] ~@7, ~@3 [b3,g4]@3 ~ g4@2 ~@2 g3@2 ~@6 a3@2 ~@11, ~@3 g3@2 ~@6 [b3,g4]@3 ~ g4@2 ~@2 [d4,f#4]@3 ~ f#4@2 ~@7]/4", // G G5 G G5 G D5 D D5 …
  M: "[[g3,b3] [g3,b3,g4]!2 g3@2 g3 [g3,b3,g4] [g3,b3] [g3,b3] [g3,b3,g4]!2 g3@2 g3 [g3,b3,g4]!2, ~@3 [b3,g4]@3 ~ g4@2 ~@2 [b3,g4]@3 ~@2]/2", // G Em
  N: "[[g3,c4] [g3,c4,g4]!2 g3@2 g3 [g3,c4,g4] [g3,c4] [g3,c4] [g3,c4,g4]!2 g3@2 g3 [g3,c4,g4]!2, ~@3 [c4,g4]@3 ~ g4@2 ~@2 [c4,g4]@3 ~@2]/2", // C5
  O: "[[d3,g3,b3] [d3,g3,b3,g4]!2 d3!2 [d3,g3] [d3,g3,b3,g4] [d3,g3,b3] [d3,g3,b3] [d3,g3,b3,g4]!2 d3!2 [d3,g3] [d3,g3,b3,g4]!2, ~@3 [b3,g4]@3 ~ g4@2 ~@2 g3@2 ~@3, ~@3 g3@2 ~@6 [b3,g4]@3 ~@2]/2", // G G5 G G5 G Em
  P: "[[d3,a3,d4,f#4]!2 d3!2 [c3,g3,c4,e4]!3 c3 c3 [c3,f3] [c3,f3,c4,f4] [c3,f3] [c3,g3]!2 [c3,g3,c4,e4] c3 c3 [c3,f3] [c3,f3,c4,f4]!2 [c3,g3,c4,e4]!3 c3 c3 [c3,f3] [c3,f3,c4,f4] [c3,f3] [c3,g3]!2 [c3,g3,c4,e4] c3 c3 [c3,f3] [c3,f3,c4,f4]!2 [d3,g3,b3] [d3,g3,b3,g4]!2 d3 d3 [d3,g3] [d3,g3,b3,g4] [d3,g3,b3]!2 [d3,g3,b3,g4]!2 d3 d3 [d3,g3] [d3,g3,b3,g4] [d3,g3,b3] [d3,a3,d4] [d3,a3,d4,f#4]!2 d3 d3 [d3,a3] [d3,a3,d4,f#4] [d3,a3,d4]!2 ~@3, ~@4 [a3,d4,f#4]@4 ~@6 c4@6 ~@2 [c4,f4]@5 ~@3 c4@6 ~@10 c4@6 ~@2 [c4,f4]@5 ~@3 c4@6 ~@10 [b3,g4]@6 ~@2 g4@4 ~@4 g3@4 ~@12 a3@4 ~@14, ~@7 [g3,e4]@2 ~@6 [g3,e4]@2 ~@6 [g3,e4]@2 ~@6 [g3,e4]@2 ~@6 g3@2 ~@6 [b3,g4]@3 ~ g4@2 ~@2 [d4,f#4]@3 ~ f#4@2 ~@3]/8", // D C F5 C5 C F5 C F5 …
  Q: "[~@4 [g3,b3] [g3,b3,g4]!2 g3@2 g3 [g3,b3,g4] [g3,b3]!2 [g3,b3,g4]!2 g3@2 g3 [g3,b3,g4]!2 [g3,b3] [g3,b3,g4]!2 g3@2 g3 [g3,b3,g4] [g3,b3]!2 [g3,b3,g4]!2 g3@2 g3 [g3,b3,g4]!2 [g3,c4] [g3,c4,g4]!2 g3@2 g3 [g3,c4,g4] [g3,c4]!2 [g3,c4,g4]!2 g3@2 g3 [g3,c4,g4]!2 [g3,b3] [g3,b3,g4]!2 g3@2 g3 [g3,b3,g4] [g3,b3]!2 [g3,b3,g4]!3, ~@7 [b3,g4]@3 ~ g4@2 ~@2 [b3,g4]@3 ~@5 [b3,g4]@3 ~ g4@2 ~@2 [b3,g4]@3 ~@5 [c4,g4]@3 ~ g4@2 ~@2 [c4,g4]@3 ~@5 [b3,g4]@3 ~ g4@2 ~@3]/8", // G C5 G Em C5 Em
  R: "[~ g3 [g3,b3,g4]!2 [d3,a3,d4,f#4]!3 d3 d3 [d3,a3] [d3,a3,d4,f#4]!2 [d3,g3,b3,g4]!3 d3 d3 [d3,g3,c4] [d3,g3,c4,g4]!2 [d3,g3,b3,g4]!3 d3 d3 [d3,a3,d4] [d3,a3,d4,f#4]!6, ~@7 [d4,f#4]@3 ~@5 g4@3 ~@5 g4@3 ~@6, ~@7 a3@2 ~@6 [g3,b3]@2 ~@6 [g3,b3]@2 ~@7]/4", // G D D5 D G Csus2 G D5 …
  S: "[[d3,a3,d4,f#4]!7 d3 d3 [d3,a3] [d3,a3,d4,f#4]!2 [d3,g3,b3,g4]!3 d3 d3 [d3,g3,c4] [d3,g3,c4,g4]!2 [d3,g3,b3,g4]!3 d3 d3 [d3,a3,d4] [d3,a3,d4,f#4]!6, ~@7 [d4,f#4]@3 ~@5 g4@3 ~@5 g4@3 ~@6, ~@7 a3@2 ~@6 [g3,b3]@2 ~@6 [g3,b3]@2 ~@7]/4", // D D5 D G Csus2 G D5 D …
  T: "[[d3,a3,d4,f#4]!7 d3 d3 [d3,a3] [d3,a3,d4,f#4]!2 [d3,g3,b3,g4]!3 d3 d3 [d3,g3,c4] [d3,g3,c4,g4]!2 [d3,g3,b3,g4]!3 ~, ~@7 [d4,f#4]@3 ~@5 g4@3 ~@6, ~@7 a3@2 ~@6 [g3,b3]@2 ~@7]/3", // D D5 D G Csus2 G D G
})).s("gm_acoustic_guitar_steel").gain(0.13).pan(0.2)

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

// drums · snare
const snare = s("sd").struct("<~@12 A B@15 ~ B@12 C@2 D E ~ B@13 A F G ~ A B@24>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~ x ~@2", D: "x!8", E: "x", F: "~@4 x!4", G: "x!5 ~@3",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@41 x!2 [x!2] ~@14 [~ x]!3 x ~@26>").gain(0.43)

// drums · hihat
const hihat = s("hh").struct("<~@12 A B@15 C B@12 A@2 ~@3 B@12 D@3 ~@2 A B@23 E>".pickRestart({
  A: "~@4 x!4", B: "x!8", C: "x", D: "x!4 ~@4", E: "x!7 ~",
})).gain(0.43)

// drums · mid tom
const mid_tom = s("mt").struct("<~@41 [~ x ~@6]!2 ~@15 [~@5 x ~@2]!2 ~@28>").gain(0.5)

// drums · tambourine
const tambourine = s("tb").struct("<~@29 [~ x ~ x]!8 ~@26 [~@3 x] [~ x ~ x]!7 [~ x ~@2] ~@16>").gain(0.43)

// drums · crash
const crash = s("cr").struct("<~@29 A ~@11 B@2 ~@15 C@2 ~@3 D ~@24>".pickRestart({
  A: "x", B: "~@3 x ~@4", C: "~@7 x", D: "~ x",
})).gain(0.36)

stack(
  synth_brass_1, pad_poly, shamisen, accordion, piano, acoustic_guitar_steel, kick, snare, low_tom, hihat, mid_tom,
  tambourine, crash
)

More by Sailor