Strudelify

Judika - Cinta Karena Cinta - No Vokal

susanto500001

KeyG majorTempo67 bpm
0:00/0:00
// Judika - Cinta Karena Cinta - No Vokal — susanto500001
// 67 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5845919; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 62 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(67/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 · piano
const bass = note(`<
  ~ A B C D E ~@7 F G F H I@2 J@2 K L M H K N O H P F H F H I@2 J@2 K L O H K N O Q R S T K L O H K N U H K V B C B
>`.pickRestart({
  A: "e1@15 ~", B: "d2@15 ~", C: "c2@15 ~", D: "d2@11 ~@5", E: "g1 ~@15", F: "g1 f#1", G: "e1!2, f#1 ~@7", H: "e1!2",
  I: "c2!2", J: "d2!2", K: "g1 d2", L: "e1 b1", M: "c2 d2, b1 ~@7", N: "a1 e1", O: "c2 d2", P: "c2@6 d2@9 ~",
  Q: "g1@8 e1 ~ e1@6", R: "d2@7 a1 d2 ~ d2@4 a1 d2", S: "a1@7 e2 a2@6 e2 a1", T: "g1@3 g1 d2@4", U: "c2 d2, e1 ~@7",
  V: "e1@10 ~ d2 e2@4",
})).s("gm_piano").gain(0.35)

// chords · piano
const piano = note(`<
  ~ A B C D E F G H@2 I J K L M N O P Q R S T U V W X Y Z AA AB L W AC W AD AE R S T AF Z W T Y Z AG AH AI AJ AK AF Z W
  T Y AL W AM AN AO AP AQ
>`.pickRestart({
  A: "[e4,g4,b4] ~ [e4,g4,b4] b3 [e4,g4,b4] b3 [e4,g4,b4]@2", // Em
  B: "a4 a3 [d4,f#4] a3 ~ a3 [d4,f#4]@2, d3@15 ~, d4@2 a4@2 [d4,f#4,a4]@2 a4 ~", // D
  C: "[e4,g4,c5] g3 ~ g3 [e4,g4,c5] g3 [e4,g4,c5] g3, c3@15 ~, ~ [e4,g4,c5] ~@2", // C
  D: "[d4,f#4,a4]@2 [d4,f#4,a4] a3 [d3,d4,f#4,a4]@4, d3 ~", // D
  E: "[g4,b4,d5]@4 [g4,b4,d5]@2 d4 ~ [f#4,a4,c5]@2 ~@2 [f#4,a4,c5]@2 ~@2, g3 f#3", // G F#dim
  F: "~ b3 [e4,b4]@2 b4@2 [e4,g4,b4] b3, g4@11 ~@5, e3!2, [e4,b4] ~@3", // E5 Em E5
  G: "[g4,b4,d5]@4 ~@2 d4@2 ~@2 c4@2 ~@2 c4 ~, g3 f#3, ~ [g4,b4,d5] [a4,c5] [f#4,a4,c5]", // G Am F#dim
  H: "[[e4,g4,b4] ~ g4 f#4 ~@2 b3 ~@2 g3 ~ g3 [c4,e4,g4]@2 ~ g3, e3@8 [e3,g4,b4]@8 c3@15 ~, ~ b3@2 ~@5 [c4,g4]@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2, ~@2 [e4,b4]@2 e4@3 e4@3 ~@6]/2", // Em C Em C5 C E5
  I: "~ g3 ~ g3 ~ g3 [c4,d#4,g4] g3, c3@15 ~, [c4,d#4,g4]!3 ~", // Cm
  J: "[d4,f#4,a4]@2 ~ a3 [d4,f#4,a4]@2 a4 g4, d3@15 ~, ~ [d4,f#4,a4] ~ [d4,f#4]", // D
  K: "~ a3 ~@2 d5@4, d3@15 ~, [d4,f#4]@4 d4@11 ~, ~@5 f#4@9 ~@2, ~@6 a4@9 ~", // D
  L: "[a#4,b4,d5]@2 d4@2 ~@3 g4 [c4,f#4,a4,c5] ~ c4@2 ~@2 c4@2, g3 f#3, g4@3 d4 ~@2 [f#4,a4,c5]@2, ~ [b4,d5] ~@2", // A# F#dim Bm
  M: "[f#3,e4,g4,b4] b3 ~ b3 ~ b3 ~ b3, e3@15 ~, [b3,f#4,a4,c5] ~@3 e4@7 ~@5, ~ [g4,b4]!3", // Em F#dim G
  N: "d4!2 ~ d4 [c4,f#4,a4,c5] ~@2 c4, g3 f#3, [g4,b4,d5]@4 [g4,b4,d5]@4 [a2,e3] ~ c4@2 [a4,c5]@4, ~@11 f#4@4 ~", // F#dim G A5 Am
  O: "[b3,e4,g4] ~@2 b3 e4 b3 [e4,g4,b4] b3, b4 [e4,g4,b4] [g4,b4] ~, ~@2 e3@13 ~", // Em G
  P: "[d#4,e4,g4] g3 ~@3 g3 ~ g3, c3@15 ~, c4@3 g3 [e4,g4]@2 ~@2, g3 ~@3 [e4,g4]@3 c4@3 ~@2 [c4,e4,g4]@4", // D# Em C
  Q: "[g3,g4] g3 ~ g3 ~ g3 ~ g3, c3@15 ~, [c4,d#4]@4 c4@7 ~@5, ~ [d#4,g4]!3", // G Cm D#
  R: "[a3,f4,f#4,a4] a3 ~@3 a3 ~ a3, d3@15 ~, d4@3 a3 [f#4,a4]@2 ~@2, ~@4 [f#4,a4]@3 d4@3 ~@2 [d4,f#4,a4]@4", // D F#m D
  S: "[f4,f#4,a4] a3 ~@3 a3 ~ a3, d3@15 ~, d4@3 a3 [f#4,a4]@2 ~@2, ~@4 [f#4,a4]@3 d4@3 ~@2 [d4,f#4,a4]@4", // F F#m D
  T: "[a#4,b4,d5]@2 d4@2 ~@3 g4 [a3,d4,f#4,a4] ~ a3@2 ~@2 a3@2, g3 d3, g4@3 d4 ~@2 [d4,f#4,a4]@2, d4 ~@3 [b4,d5]@4 ~@8", // A# D Bm
  U: "[b3,e4,g4,b4] b3 [e4,g4,b4] b3 [f#3,b3,d4,f#4] f#3 ~ f#3, e3@7 ~ b2@8, ~@8 [d3,a3] ~@3 [d4,f#4]@4", // Em Bm D5 D
  V: "[b3,c#4,d4,d#4,f#4] ~ g3@2 ~@3 c4 [a3,d4,f#4,a4] ~ a3@2 ~@2 a3@2, c3 d3, c4@3 g3 ~@4, [b2,e4,g4] ~ [e4,g4]@2 ~@2 [d4,f#4,a4]@2", // B D Em D
  W: "[b3,b4] ~ b3@2 ~@2 b3@2 ~@2 b3@2 ~@2 b3@2, e3@15 ~, [e4,g4]@4 e4@7 ~@5, ~ [g4,b4]!3", // B Em G
  X: "[a#4,b4,d5]@2 d4@2 ~@3 g4 [a3,d4,f#4,a4] ~ a3@2 ~@2 a3@2, [g3,g4]@3 d4 d3@4, d4 ~@3 [b4,d5]@4 ~@4 [d4,f#4,a4]@4", // A# D G Bm D
  Y: "[e3,a3,c4,e4] e3 ~ e3 [b3,e4,g4,b4] b3 ~ b3, a2@2 ~ [g4,b4], ~ [a3,c4,e4] e3@2", // Am Em G Am
  Z: "[g3,d#4,e4,g4]@2 g3@2 ~@3 c4 [a3,d4,f#4,a4] ~ a3@2 ~@2 a3@2, c3 d3, c4@3 g3 ~@4, ~ [e4,g4] ~ [d4,f#4,a4]", // C D Em D
  AA: "[b3,b4] b3 ~ b3 ~ b3 ~ b3, e3@15 ~, [e4,g4]@4 e4@7 ~@5, ~ [g4,b4]!3", // B Em G
  AB: "[g3,c4,e4,g4] ~@4 g3 [d3,d4,f#4,a4]@9 ~, c3 ~, ~ g3 e4 ~@5, ~@3 c4@2 ~ a3 ~@9", // C D
  AC: "[d4,a#4,b4,d5]@2 d4@2 ~@3 g4 [c4,f#4,a4,c5] ~ c4@2 ~@2 c4@2, g3 f#3, g4@3 d4 ~@2 [f#4,a4,c5]@2, ~ [b4,d5] ~@2", // G F#dim Bm
  AD: "[g3,d#4,e4,g4] g3 ~@3 g3 ~ g3, c3@15 ~, c4@3 g3 [e4,g4]@2 ~@2, ~@4 [e4,g4]@3 c4@3 ~@2 [c4,e4,g4]@4", // C Em C
  AE: "g4 g3 ~ g3 ~ g3 ~ g3, c3@15 ~, [c4,d#4]@4 c4@7 ~@5, ~ [d#4,g4]!3", // Cm D#
  AF: "[b3,e4,g4,b4] b3 ~ b3 [f#3,b3,d4,f#4] f#3 ~ f#3, e3 b2, ~ [e4,g4,b4] ~ [d4,f#4]", // Em Bm Em D
  AG: "d4 ~ g3@2 [b3,e4,g4]@2 g3@2 [b3,e4,g4]@2 ~@2 b4@2 b3@2, e3@15 ~, [e4,g4,b4] b4!2 [e4,g4], ~@5 g3@3", // Em
  AH: "~@2 a3@2 ~@2 a3@2 ~@2 a3@2 [d4,f#4,a4]@2 a3 ~, d3@15 ~, [d4,f#4,a4]!3 ~", // D
  AI: "[a4,e5] ~ [a4,c#5,e5] e4 [a4,c#5] e4 [a4,c#5] e4, a3@15 ~, c#5 ~ e5!2, ~ e4@2 ~@5", // A5 A
  AJ: "~ d4 ~ d4 [d4,a4,d5,f#5]@4, g3 ~, [g4,b4,d5]!2 ~@2", // D G
  AK: "[a#4,b4,d5]@2 d4@2 ~@3 g4 [a3,d4,f#4,a4] ~ a3@2 ~@2 a3@2, g3 d3, g4@3 d4 ~@2 [d4,f#4,a4]@2, ~ [b4,d5] ~@2", // A# D Bm
  AL: "[e3,e4,g4]@2 g3@2 ~@3 c4 [a3,d4,f#4,a4] ~ a3@2 ~@2 a3@2, c3 d3, c4@3 g3 ~@4, [d#4,f#4,b4] ~@3 [e4,g4]@4 ~@4 [d4,f#4,a4]@4", // Em D B Em D
  AM: "d4 ~ g3@2 ~@2 g3@2 [d3,d4,f#4,a4]@8, c3 ~, [c4,e4,g4]!2 ~@2", // D C
  AN: "~@5 b3 ~ b3, e3@15 ~, g4@3 g4@3 ~@2, [e4,b4] e4@2 [e4,g4,b4], ~ b3@3 b4@2 ~@2", // E5 Em
  AO: "~@7 f#4, d3@15 ~, [f#4,a4]@3 f#4@3 ~@2, ~ d4@2 d4, ~ a4", // F#m
  AP: "~@6 g4 ~ g4@2 ~@2 g4@2 e4@2, c3@15 ~, e4@5 g3@3, ~ g3@3 c4@4",
  AQ: "~ d5, d3@6 a4@9 ~, ~@2 a3@13 ~, ~@4 d4@11 ~, ~@5 f#4@10 ~",
})).s("gm_piano").gain(0.25)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A B ~ C D E F G H ~ I@2 J K ~@2 L M N@3 O N K N K N K ~ J K J K L M N@3 O N K N K N ~@4 N O N K N K N K ~@2 P Q ~
>`.pickRestart({
  A: "~@2 b3@3 ~@9 b3@2, e3@15 ~", B: "f#4@4 ~@10 a3 ~", C: "~ a3 ~@6", D: "~@2 d4@2 ~@6 c4@2 ~@2 c4 ~",
  E: "~@3 b3 ~ b3 ~@2, ~@2 e4 ~", F: "~ d4 ~@6", G: "~@3 b3 ~@4", H: "~@5 g3 ~@2",
  I: "[~@2 a3@2 ~@6 a3@5 a4@5 ~@3 a3@7 ~@2]/2", J: "~@11 f#4 ~@4", K: "~@11 e4@5", L: "~@11 c4 ~@4", M: "~@11 c4@5",
  N: "~@11 d4 ~@4", O: "~@11 b3@5", P: "~@2 a3@11 ~@3", Q: "~ c4 ~@2",
})).s("gm_piano").gain(0.15)

// chords · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H I J B K L M N O P Q R S T U V W T X Y W Z AA AB AC AD AE Q AF S AG AH AI W AJ AK AL AM AN AO AP AQ
  AH AI W AG AR AS W AT AU AV AW AX
>`.pickRestart({
  A: "[e4,g4,b4] b3 ~ b3 [e4,g4,b4] b3 b4 b3, e3, ~ [e4,g4,b4] ~ [e4,g4]", B: "~ a3 ~ a3 ~ a3 ~ a3, d3, [d4,f#4,a4]!4",
  C: "[e4,g4,c5] g3 ~ g3 ~ g3 c5 g3, c3, ~ [e4,g4,c5]!2 [e4,g4]", // C Em
  D: "[d4,f#4,a4] a3 ~@2 [d4,f#4,a4]@4, d3, ~ [d4,f#4,a4] ~@2, ~@6 a3@9 ~", // D
  E: "[g3,g4,b4,d5] ~ d4@2 ~@2 d4@2 ~@2 c4@2 ~@2 c4@2, ~ [g4,b4,d5] f#3@2, ~@2 [f#4,a4,c5]!2", // G F#dim
  F: "~ b3 [e4,g4,b4] ~@2 b3 [e4,g4,b4] b3, e3, [e4,g4,b4]@2 ~ b3 [g4,b4]@2 ~@2, ~@7 e4@5 ~@4", // Em G
  G: "[a4,c5] d4 ~ d4 ~ c4 ~ c4, g3 f#3, [g4,b4,d5]!2 [f#4,a4,c5]!2", // Am G F#dim
  H: "a4 b3 ~ b3 ~ b3 [g4,b4] b3, e3, [e4,g4,b4]!3 e4", I: "~ g3 ~ g3 ~ g3 ~ g3, c3, [c4,e4,g4]!4",
  J: "~ g3 ~ g3 ~ g3 ~ g3, c3, [c4,d#4,g4]!4", // Cm
  K: "~ a3 ~@2 [f#4,a4]@4, d3, [d4,f#4,a4]@4 [d4,f#4,a4]@3 d4@8 ~, ~@6 a3@9 ~", // F#m D
  L: "~ d4 ~ d4 [c4,f#4,a4,c5] c4 [f#4,a4,c5] c4, g3 f#3, [g4,b4,d5]!2 ~@2", // F#dim G
  M: "[f#3,b3,f#4,a4,c5] ~ b3@2 [e4,g4,b4]@2 b3@2 [e4,g4,b4]@2 b3@2 ~@2 b3@2, e3@15 ~, [e4,g4,b4] ~@5 [e4,g4,b4]@2", // F#dim Em
  N: "[d4,g4,b4,d5] d4 [g4,b4,d5] d4 [f#4,a4,c5] c4 ~ c4, g3@4 f#3@3 ~, ~@8 [a2,e3,c4] ~@3 [f#4,a4,c5]@4", // G F#dim Am F#dim
  O: "[b3,e4,g4,b4] b3 [e4,g4,b4] b3 [e4,g4,b4] b3 [e4,g4,b4] b3, e3", // Em
  P: "~ g3 ~ g3 [c4,e4,g4] g3 [c4,e4,g4] g3, c3, [c4,e4,g4]!2 ~@2", // C
  Q: "[c4,d#4,g4] g3 [c4,d#4,g4] g3 [c4,d#4,g4] g3 ~ g3, c3, ~@3 [c4,d#4,g4]", // Cm
  R: "a3 ~ a3@2 ~@2 a3@2 [d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2, d3, [d4,f#4,a4]!2 ~@2", // D
  S: "~ a3 ~ a3 [d4,f#4,a4] a3 [d4,f#4,a4] a3, d3@15 ~, [d4,f#4,a4]!2 ~@2", // D
  T: "d4 ~ d4@2 [g4,b4,d5]@2 d4@2 [d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2, g3@8 d3@7 ~, [g4,b4,d5]@4 ~@4 a3 ~@7", // G D G
  U: "[e4,g4,b4] b3 [e4,g4,b4] b3 [f#3,b3,d4,f#4] f#3 ~ f#3, e3 b2, b3 ~@7 [d3,a3] ~@3 [b3,d4,f#4]@4", // Em Bm D5 Bm
  V: "[b2,b3,d4,f#4] ~ g3@2 ~@2 g3@2 [a3,d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2, c3 d3, [c4,e4,g4] ~ [c4,e4,g4]@2 ~@4", // Bm D C
  W: "[b3,e4,g4,b4] b3 [e4,g4,b4] b3 [e4,g4,b4] b3 ~ b3, e3, ~@3 [e4,g4,b4]", // Em
  X: "[e3,a3,c4,e4] e3 [a3,c4,e4] e3 [b3,e4,g4,b4] b3 ~ b3, a2@8 e3@7 ~, ~@3 [e4,g4,b4]", // Am Em
  Y: "g3 ~ g3@2 ~@2 g3@2 [a3,d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2, c3@8 d3@7 ~, [c4,e4,g4]!2 ~@2", // D C
  Z: "g3 ~@3 c4@2 [d3,d4,f#4,a4]@10, [c3,c4,e4,g4] ~@3, ~@2 g3@4 a3 ~@9", // D C
  AA: "~ d4 [g4,b4,d5] d4 [f#4,a4,c5] c4 [f#4,a4,c5] c4, g3@8 f#3@7 ~, [g4,b4,d5]@4 ~@4 c4 ~@7", // G F#dim G
  AB: "[b3,e4,g4,b4] b3 [e4,g4,b4] b3 [e4,g4,b4] b3 ~ b3, e3@15 ~, ~@3 [e4,g4,b4]", // Em
  AC: "d4 ~ d4@2 ~@2 d4@2 [c4,f#4,a4,c5] ~ c4@2 [f#4,a4,c5]@2 c4@2, g3 f#3, [g4,b4,d5]!2 ~@2", // F#dim G
  AD: "[b3,e4,g4,b4] ~ b3@2 [e4,g4,b4]@2 b3@2 [e4,g4,b4]@2 b3@2 ~@2 b3@2, e3, ~@3 [e4,g4,b4]", // Em
  AE: "g3 ~ g3@2 ~@2 g3@2 [c4,e4,g4]@2 g3@2 [c4,e4,g4]@2 g3@2, c3, [c4,e4,g4]!2 ~@2", // C
  AF: "a3!2 ~ a3 [d4,f#4,a4] a3 [d4,f#4,a4] a3, d3, [d4,f#4,a4]!2 ~@2", // D
  AG: "d4 ~ d4@2 ~@2 d4@2 [a3,d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2, g3 d3, [g4,b4,d5]!2 ~@2", // D G
  AH: "[b3,e4,g4,b4] b3 [e4,g4,b4] b3 [b3,d4,f#4] f#3 ~ f#3, e3@8 b2@7 ~, ~@8 f#3 ~@3 [b3,d4,f#4]@4", // Em Bm
  AI: "g3 ~ g3@2 ~@2 g3@2 [a3,d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2, c3 d3, [c4,e4,g4]!2 ~@2", // D C
  AJ: "d4!2 ~ d4 [a3,d4,f#4,a4] a3 [d4,f#4,a4] a3, g3@8 d3@7 ~, [g4,b4,d5]!2 ~@2", // D G
  AK: "[a3,c4,e4] e3 [a3,c4,e4] e3 [b3,e4,g4,b4] b3 ~ b3, a2@2 ~ [e4,g4,b4], e3 ~@7 e3@7 ~", // Am Em
  AL: "g3 ~ g3@2 [c4,e4,g4]@2 g3@2 [d4,f#4,a4]@2 a3@2 [d4,f#4,a4]@2 a3@2, c3@8 d3@7 ~, [c4,e4,g4]@4 ~@4 a3 ~@7", // C D C
  AM: "[e4,g4,b4] g3 ~ g3 b3 g3 a4 g3, e3@15 ~, [d4,a4] ~@3 [b3,e4,g4,b4]@4 [e4,g4,b4]@4 [b3,e4,g4,b4]@4", // Em D5 Em
  AN: "~@2 a3@2 [d4,f#4,a4]@2 ~@4 a3@2 [d4,f#4,a4]@2 a3 ~, d3@7 d4@4 ~@5, [d4,f#4,a4]@2 ~ a3 d3@4, ~@2 [f#4,a4] ~", // D F#m
  AO: "[a4,c#5] c#4 ~ c#4 ~ c#4 [e4,c#5] c#4, a3, e4 [e4,a4,c#5]!2 a4", // A C#m A
  AP: "~ b3 [b4,d5] b3 [d3,f#4,a4]@4, g3 ~, [g4,b4,d5] [d4,g4] ~@2", // Bm D G G5
  AQ: "~ d4 ~ d4 [a3,d4,f#4,a4] a3 [d4,f#4,a4] a3, g3 d3, [g4,b4,d5]!2 ~@2", // D G
  AR: "[e3,a3,c4,e4] e3 [a3,c4,e4] e3 [e4,g4,b4] b3 ~ b3, a2@8 e3@7 ~, ~@8 b3 ~@3 [e4,g4,b4]@4", // Am Em
  AS: "[c4,e4,g4] g3 ~ g3 [a3,d4,f#4,a4] a3 [d4,f#4,a4] a3, c3 d3, [e3,b4] ~@3 [c4,e4,g4]@4 ~@8", // C D E5 C
  AT: "d4 ~@3 c5@2 c4@2 [d3,d4,f#4,a4]@8, [c4,e4,g4,c5] [e4,g4] ~@2, ~ g3@3 ~@4", // D C Em
  AU: "~ b3 ~ b3 ~ b3 ~ b3, e3, [e4,g4,b4]!4", AV: "~@2 a3@2 ~@3 d4 ~@2 a3@2 ~@2 a3@2, d3, [d4,f#4,a4]!4, ~@3 a3 ~@4",
  AW: "~ g3 ~ g3 ~ g3 ~ g3, c3@7 ~, [c4,e4,g4]!4", AX: "~ a4, d3, [d4,f#4,a4] d4@3, ~ a3@6 ~, ~@3 f#4@4 ~",
})).s("gm_acoustic_guitar_steel").gain(0.3)

// chords · string ensemble 1 · "Violas"
const string_ensemble_1 = note(`<
  ~ A B C D E F E G H I J@2 K L M L N@2 O P Q R S L Q T U L V W L K L N@2 P@2 Q X U L Q Y U Z AA AB AC Q X U L Q Y AD L
  AE AF AG AH AI
>`.pickRestart({
  A: "e4@2 g4 b4, e3", B: "[d3,a4]", C: "~ g4 a4 e5, c3", D: "d3@3 ~, d5 ~", E: "[g3,g4] [f#3,f#4]", F: "[e3,e4]",
  G: "g4 e4, e3", H: "[c4,c5]", I: "d#4 [c4,c5], d#5@3 ~", J: "[a4@4 f#4 g4 a4@2, d3]/2", K: "[g4,b4,d5] [f#4,a4,c5]",
  L: "[e4,g4,b4]", M: "[g4,b4,d5] [f#4,a4,c5], ~@8 [a3,c#4,e4] ~@7", N: "[e4 d#4, [c4,g4]]/2", O: "[d4,a4] ~@15, f#4",
  P: "[d4,f#4,a4]", Q: "[g4,b4,d5] [d4,f#4,a4]", R: "[e4,g4,b4] [b3,d4,f#4], ~@8 a4 ~@7",
  S: "[c4,e4,g4] [d4,f#4,a4], [b3,f#4] ~@15", T: "[a3,c4,e4] [e4,g4,b4], c#4 ~@15", U: "[c4,e4,g4] [d4,f#4,a4]",
  V: "[g4,c5,e5]@2 ~ [d4,f#4,a4,d5]@5, [c4,e4]@3 ~@5", W: "[g4,b4,d5] [f#4,a4,c5], g5 ~@15",
  X: "[e4,g4,b4] [b3,d4,f#4]", Y: "[a3,c4,e4] [e4,g4,b4]", Z: "[g4,b4,d5] ~@3 g4@2 b4@2, e3, e4 ~",
  AA: "f#4@4 a4@2 f#4 a4, d3", AB: "c#5@4 e5@2 c#5 a4, a3", AC: "[g3,b4] [d3,a4]",
  AD: "[c4,e4,g4] [d4,f#4,a4], b4 ~@15", AE: "[g4,b4,d5] ~@7 [d4,d5]@8, [c4,c5] ~", AF: "[e3,g4]",
  AG: "f#4@2 a4 f#4, d3", AH: "[c3,e4]", AI: "d3@3 ~, f#4 ~",
})).s("gm_string_ensemble_1").gain(0.1)

// other · whistle · "Tin Whistle"
const whistle = note("<A B@2 C@2 ~@54 A C@2>".pickRestart({
  A: "~@11 b5 ~ f#6 ~ a5, ~@6 g6 ~", B: "[b5@26 ~ b5 ~ f#6 ~ a5, ~@14 g6 ~]/2", C: "[b5@3 ~]/2",
})).s("gm_whistle").gain(0.35)

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

// drums · rim
const rim = s("rim").struct("<~@13 [~ x ~ x]!6 ~@43>").gain(0.35)

// drums · snare
const snare = s("sd").struct("<~@19 A B A@3 C A@3 B ~ A@7 C A@3 C A@6 D A@3 C A@3 C D ~@4>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@4 x ~@4 x ~@2 x ~@3", D: "~@3 x!2 ~@11",
})).gain(0.35)

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

// drums · low tom
const low_tom = s("lt").struct("<~@20 A ~@7 A B ~@14 A ~@3 C ~@8 D ~@4>".pickRestart({
  A: "~@13 x ~@2", B: "~ x ~@2", C: "~@7 x ~@8", D: "~@3 x ~@4",
})).gain(0.35)

// drums · mid tom
const mid_tom = s("mt").struct("<~@20 A ~@3 B ~@3 A C ~@7 B ~@3 B ~@6 D ~@3 B ~@3 B E ~@4>".pickRestart({
  A: "~@3 x", B: "~@13 x!2 ~", C: "~@3 x ~@12", D: "~@5 x!2 ~@9", E: "~@5 x ~@10",
})).gain(0.35)

// drums · open hat
const open_hat = s("oh").struct("<~@12 [~@3 x] ~@16 [~@7 x] ~@18 [~@7 x] ~@13>").gain(0.35)

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

stack(
  bass, piano, piano_soft, acoustic_guitar_steel, string_ensemble_1, whistle, kick, rim, snare, hihat, low_tom, mid_tom,
  open_hat, crash
)