Strudelify

Giorno's Theme Song

Jayboned

KeyA majorTempo135 bpm
0:00/0:00
// Giorno's Theme Song — Jayboned
// 135 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 1 "Piano" named as a piano, played on piano (its choir aahs patch is not one); ch 16 "Alto Saxophone" named as a reed, played on alto sax (its tremolo strings patch is not one); ch 15 "Tenor Saxophone" named as a reed, played on tenor sax (its choir aahs patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/6355221; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 164 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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(`<
  ~@23 A B C D A B E D F G H I J G H K L M ~ N ~ M ~ N ~@41 O P Q R S T U V W@2 X Y Z B C D A B AA AB A B C D A B E D F
  G H I J G H K L ~@2 AC AD AE AF AC AD AG AH AI AJ AK AJ AI AJ AK AJ ~@16 AL@5
>`.pickRestart({
  A: "~@12 b3 d4 e4 f4", B: "f#4@4 ~ b3 d4 a4", C: "g#4@8 ~@2 f#4@3 e4@3", D: "f#4", E: "a4 b4@5 a4@6 f#4 g#4@3",
  F: "~@12 d5 c#5 b4@2", G: "a4@3 b4 ~@2 b4 ~@3 f#4@2 a4@2 b4@2", H: "b4 c#5@2 a4 ~@2 b4 ~@5 d5 c#5 b4@2",
  I: "a4@3 b4 ~@2 b4 ~@3 f#4@2 c#5@2 d5@2", J: "b4 c#5@2 a4 ~@2 e4 ~@5 d5 c#5 b4@2",
  K: "a4@2 d5 f#5 e5 d#5 ~ b4 a5 g#5 ~ f#5 d5 c#5 ~ b4", L: "a4 b4@2 a4 b4@2 a4 b4@2 a4 b4@2 a4 b4 d5@2",
  M: "[f#4,a4,b4,d5]@2 ~ [f4,g#4,b4]@3 ~@2", N: "[f#4,b4]@3 ~ [f#4,b4]@2 [f4,g#4,b4]@6 ~@4",
  O: "[g#4,b4,c#5]@3 [f#4,b4]@5", P: "[f#4,a4,b4]@3 [e4,g4,a4]@5", Q: "[f#4,a4,b4]@3 [f4,a#4]@5", R: "[g4,a#4,c#5]",
  S: "[b4,d5,e5]", T: "[g4,b4] [g4,b4,c#5]", U: "[b4,e5,f#5]",
  V: "c#4 [d#4,f#4] g#4 [a4,b4] c#5 [d5,e5] f#5 [a5,b5] f#6@6 ~@2, a#4, [e5,f#5]@3 ~@5, c#5 ~@3", // D#m Asus2 Dsus2 Asus2 Esus2
  W: "d4@2 ~ d4@2 ~ f4@2 ~ g#4@2 ~ g4 ~ f#4 ~", X: "d4@2 ~ d4@2 ~ f4@2 ~ g#4@2 ~ g4@2 ~@2", Y: "b3",
  Z: "a#3@12 b3 d4 e4 f4", AA: "g#4@3 a4@3 b4@2", AB: "f#4 g#4@2 f#4@13",
  AC: "[b2,f#4,b4,f#5]@4 ~@2 [g#2,f4,g#4,d5]@6 ~@2 d5 e5", // B5 Ddim
  AD: "f5@3 e5@3 d5@2 c#5@3 d5@3 e5@2, [c#3,e4,g4,b4] [f#2,e4,g4,a#4]", // C#m7b5 Edim
  AE: "[b2,f#4,b4,f#5]@2 ~ [g#2,f4,g#4,b5]@3 b4 c#5", // B5 Fdim
  AF: "d5@3 e5@3 d5@2 c#5@3 a5@3 g5@2, [c#3,e4,g4,b4] [f#2,e4,g4,a#4]", // C#m7b5 Edim
  AG: "[b2,f#4,b4,f#5]@2 ~ [g#2,f4,g#4,b5]@3 b5 c#6", // B5 Fdim
  AH: "d6@3 g5@3 f#5@2 f5@3 d6@3 a#5@2, [c#3,e4,g4,b4] [f#2,e4,g4,a#4]", // C#m7b5 Edim
  AI: "[b2,f#4,a4,b4,d5,f#5]@2 ~ [g#2,f4,g#4,b4,d5]@3 ~@2", AJ: "[c#3,e4,g4,b4,d5] [f#2,e4,g4,a#4,c#5]",
  AK: "[b2,f#4,b4,f#5]@2 [f#4,b4] [g#2,f4,g#4,b4,d5]@3 ~@2", AL: "[~ a4@9]/5",
})).s("gm_piano").gain(0.45)

// other · tremolo strings · "Violin"
const tremolo_strings = note(`<
  A ~@39 B C D E B C F G H ~@3 I J K L ~@40 M@2 N ~@9 O P Q R O P S R ~@14 T U C F V W X Y Z W X AA AB A ~@11 AC AD AC
  AE AF@5
>`.pickRestart({
  A: "b6@2 a#6@2 ~ a6@2 g#6@2 g6@2 f#6@2 ~ f6@2", B: "f#5@4 ~@2 d5@6 ~@2 d5 e5", C: "f5@3 e5@3 d5@2 c#5@3 d5@3 e5@2",
  D: "f#5@2 ~ b5@3 b4 c#5", E: "d5@3 e5@3 d5@2 c#5@3 a5@3 g5@2", F: "f#5@2 ~ b5@3 b5 c#6",
  G: "d6@3 g5@3 f#5@2 f5@3 d6@3 a#5@2", H: "b5 ~@7", I: "~@2 c#5 d5 d#5 d5 c#5 b4 a#4 a4 g#4 g4 f#4 f4 d#4 d4",
  J: "b4 c5 c#5 d5 d#5 d5 c#5 b4 a#4 ~@2 c#5 d5 d#5 e5 d#5",
  K: "d#5 e5 f5 f#5 g5 f#5 f5 d#5 d5 d#5 e5 f5 f#5 g5 g#5 g5", L: "g#5 a5 b5 c6 c#6 d6 e6 f6 f#6 ~@7",
  M: "f#4@2 ~ f#4@2 ~ a4@2 ~ c5@2 ~ b4 ~ a#4 ~", N: "f#4@2 ~ f#4@2 ~ a4@2 ~ c5@2 ~ b4@2 ~@2", O: "~@12 b4 d5 e5 f5",
  P: "f#5@4 ~ b4 d5 a5", Q: "g#5@8 ~@2 f#5@3 e5@3", R: "f#5", S: "a5 b5@5 a5@6 f#5 g#5@3",
  T: "~@12 [d#4,f#4] [g#4,a4,a#4] [b4,c5,c#5] [d5,d#5,e5]", U: "f#5@4 ~@2 d5@6 ~@2 d5 e5, f5 ~@15",
  V: "d6@3 g5@3 f#5@2 f5@3 d6@3 e6@2", W: "f#6@4 ~@2 d6@6 ~@2 d6 e6", X: "f6@3 e6@3 d6@2 c#6@3 d6@3 e6@2",
  Y: "f#6@2 ~ b6@3 b5 c#6", Z: "d6@3 e6@3 d6@2 c#6@3 a6@3 g6@2", AA: "f#6@2 ~ b6@3 b6 c#7",
  AB: "d7@3 g6@3 f#6@2 f6@3 d7@3 a#6@2",
  AC: "[b3,b4,b5] ~ [b3,b4,b5] ~ [b3,b4,b5] [a3,a4,a5] ~ [b3,b4,b5] ~ [d4,d5,d6] ~ [b3,b4,b5] ~ [f#3,f#4,f#5] [a3,a4,a5]@2", // B A B D B F# A
  AD: "[b3,b4,b5] ~ [b3,b4,b5] ~ [b3,b4,b5] [a3,a4,a5] ~ [b3,b4,b5] ~ [f4,f5,f6] ~ [e4,e5,e6] ~ [d4,d5,d6] [a3,a4,a5]@2", // B A B F E D A
  AE: "[b3,b4,b5] ~ [b3,b4,b5] ~ [b3,b4,b5] [a3,a4,a5] [b3,b4,b5] [d4,d5,d6] ~ [f4,f5,f6] ~ [e4,e5,e6] ~ [d4,d5,d6] [a3,a4,a5]@2", // B A B D F E D A
  AF: "[~@8 b4 c#5@71]/5",
})).s("gm_tremolo_strings").gain(0.4)

// other · tremolo strings · "Violin" · soft notes
const tremolo_strings_soft = note("<~ A B C D ~@47 E F ~@90 A B C G ~@16>".pickRestart({
  A: "e6@2 d#6@2 ~ d6@2 c#6@2 c6@2 b5@2 ~ a#5@2", B: "a5@2 g#5@2 ~ g5@2 f#5@2 f5@2 e5@2 ~ d#5@2",
  C: "d5@2 c#5@2 ~ c5@2 b4@2 a#4@2 a4@2 ~ g#4@2", D: "g4", E: "b4 c5 ~@14", F: "~@9 b4 c5 ~@5", G: "g4 ~@7",
})).s("gm_tremolo_strings").gain(0.15)

// other · string ensemble 1 · "Viola"
const string_ensemble_1 = note(`<
  ~@40 A B A B A B A B ~@4 C D E F ~@40 G H I ~@9 J K L M J K N O ~@15 P B P B Q R S T Q R U V W ~@15 X@5
>`.pickRestart({
  A: "[f#4,b4,f#5]@2 ~ [f4,g#4,d5]@3 ~@2", B: "[g4,b4,d5] [g4,a#4,c#5]",
  C: "[b3,b4] [c4,c5] [c#4,c#5] [d4,d5] [d#4,d#5] [d4,d5] [c#4,c#5] [b3,b4] [a#3,a#4] [a3,a4] [g#3,g#4] [g3,g4] [f#3,f#4] [f3,f4] [d#3,d#4] [d3,d4]", // B C C# D D# D C# B …
  D: "[b3,b4] [c4,c5] [c#4,c#5] [d4,d5] [d#4,d#5] [d4,d5] [c#4,c#5] [b3,b4] [a#3,a#4] [b3,b4] [c4,c5] [c#4,c#5] [d4,d5] [d#4,d#5] [e4,e5] [d#4,d#5]", // B C C# D D# D C# B …
  E: "[d#4,d#5] [e4,e5] [f4,f5] [f#4,f#5] [g4,g5] [f#4,f#5] [f4,f5] [d#4,d#5] [d4,d5] [d#4,d#5] [e4,e5] [f4,f5] [f#4,f#5] [g4,g5] [g#4,g#5] [g4,g5]", // D# E F F# G F# F D# …
  F: "[g#4,g#5] [a4,a5] [b4,b5] [c5,c6] [c#5,c#6] [d5,d6] [e5,e6] [f5,f6] [f#5,f#6] ~@7", // G# A B C C# D E F …
  G: "f#3@2 ~ f#3@2 ~ a3@2 ~ c4@2 ~ b3 ~ a#3 ~",
  H: "[f#3,f#4]@2 ~ [f#3,f#4]@2 ~ [a3,a4]@2 ~ [c4,c5]@2 ~ [b3,b4] ~ [a#3,a#4] ~", // F# A C B A#
  I: "[f#3,f#4]@2 ~ [f#3,f#4]@2 ~ [a3,a4]@2 ~ [c4,c5]@2 ~ [b3,b4]@2 ~@2", J: "~@12 [b3,b4] [d4,d5] [e4,e5] [f4,f5]",
  K: "[f#4,f#5]@4 ~ [b3,b4] [d4,d5] [a4,a5]", L: "[g#4,g#5]@8 ~@2 [f#4,f#5]@3 [e4,e5]@3", M: "[f#4,f#5]",
  N: "[a4,f#5] [b4,e5,g#5]@5 [a4,f#5,a5]@6 [f#4,f#5] [g#4,e5,g#5]@3", O: "[f#4,d5,f#5]",
  P: "[f#4,b4,d5,f#5]@2 ~ [f4,g#4,d5]@3 ~@2", Q: "[f#4,b4,f#5]@4 ~@2 [f4,g#4,d5]@6 ~@2 d5 e5",
  R: "f5@3 e5@3 d5@2 c#5@3 d5@3 e5@2, [g4,b4] [g4,a#4]", S: "[f#4,b4,f#5]@2 ~ [f4,g#4,b5]@3 b4 c#5",
  T: "d5@3 e5@3 d5@2 c#5@3 a5@3 g5@2, [g4,b4] [g4,a#4]", U: "[f#4,b4,f#5]@2 ~ [f4,g#4,b5]@3 b5 c#6",
  V: "d6@3 g5@3 f#5@2 f5@3 d6@3 a#5@2, [g4,b4] [g4,a#4]", W: "b5 ~@7", X: "[~ [c#4,e4,a4]@9]/5",
})).s("gm_string_ensemble_1").gain(0.4)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@15 A B C D A B E F A B C D A B G D H I J K L I J M N O ~ P ~ O ~ P ~@41 Q R S T U V U W X@2 Y Z AA B C D A B E F A B
  C D A B G D H I J K L I J M N ~@10 O ~ P ~ O ~ P ~@17 AB@5
>`.pickRestart({
  A: "~@12 b2 d3 e3 f3", B: "f#3@4 ~ b2 d3 a3", C: "g#3@8 ~@2 f#3@3 e3@3", D: "f#3", E: "g#3@3 a3@3 b3@2",
  F: "f#3 g#3@2 f#3@13", G: "a3 b3@5 a3@6 f#3 g#3@3", H: "~@12 d4 c#4 b3@2", I: "a3@3 b3 ~@2 b3 ~@3 f#3@2 a3@2 b3@2",
  J: "b3 c#4@2 a3 ~@2 b3 ~@5 d4 c#4 b3@2", K: "a3@3 b3 ~@2 b3 ~@3 f#3@2 c#4@2 d4@2",
  L: "b3 c#4@2 a3 ~@2 e3 ~@5 d4 c#4 b3@2", M: "a3@2 d4 f#4 e4 d#4 ~ b3 a4 g#4 ~ f#4 d4 c#4 ~ b3",
  N: "a3 b3@2 a3 b3@2 a3 b3@2 a3 b3@2 a3 b3 d4@2", O: "f#5@2 ~ d5@3 ~@2", P: "d5@3 ~ d5@2 d5@6 ~@4", Q: "f#5@3 e5@5",
  R: "e5@3 d5@5", S: "e5@3 d#5@5", T: "d#5", U: "b5", V: "e5 f#5", W: "a#5",
  X: "f#4@2 ~ f#4@2 ~ a4@2 ~ c5@2 ~ b4 ~ a#4 ~", Y: "f#4@2 ~ f#4@2 ~ a4@2 ~ c5@2 ~ b4@2 ~@2", Z: "[f#4,b4]",
  AA: "[f#4,a#4]@12 b2 d3 e3 f3", AB: "[~ a3@9]/5",
})).s("gm_tenor_sax").gain(0.45)

// other · distortion guitar · "Electric Guitar"
const distortion_guitar = note(`<
  A B A C D E D F G H G I G H G J K L M N K O P Q K L M N K R M S T U T V T U T W X Y X Y X Y X Y G H G I G H G Z AA AB
  AA AC AA AB AA S AA AB AA AC AA AB AA S AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB@2
  BC BD@2 K L M N K O P Q K L M N K R M S T U T V T U T W ~@10 X Y X Y X Y X Y G H G I G H G Z G H G I G H G I BE@5
>`.pickRestart({
  A: "[b1,b2] ~ [b1,b2] ~ [b1,b2] [a1,a2] ~ [b1,b2] ~ [d2,d3] ~ [b1,b2] ~ [f#1,f#2] [a1,a2]@2", // B A B D B F# A
  B: "[b1,b2] ~ [b1,b2] ~ [b1,b2] [a1,a2] ~ [b1,b2] ~ [f2,f3] ~ [e2,e3] ~ [d2,d3] [a1,a2]@2", // B A B F E D A
  C: "[b1,b2] ~ [b1,b2] ~ [b1,b2] [a1,a2] [b1,b2] [d2,d3] ~ [f2,f3] ~ [e2,e3] ~ [d2,d3] [a1,a2]@2", // B A B D F E D A
  D: "[b1,b2,b3] ~ [b1,b2,b3] ~ [b1,b2,b3] [a1,a2,a3] ~ [b1,b2,b3] ~ [d2,d3,d4] ~ [b1,b2,b3] ~ [f#1,f#2,f#3] [a1,a2,a3]@2", // B A B D B F# A
  E: "[b1,b2,b3] ~ [b1,b2,b3] ~ [b1,b2,b3] [a1,a2,a3] ~ [b1,b2,b3] ~ [f2,f3,f4] ~ [e2,e3,e4] ~ [d2,d3,d4] [a1,a2,a3]@2", // B A B F E D A
  F: "[b1,b2,b3] ~ [b1,b2,b3] ~ [b1,b2,b3] [a1,a2,a3] ~ [b1,b2,b3] ~@8", // B A B
  G: "[b2,b3,b4] ~ [b2,b3,b4] ~ [b2,b3,b4] [a2,a3,a4] ~ [b2,b3,b4] ~ [d3,d4,d5] ~ [b2,b3,b4] ~ [f#2,f#3,f#4] [a2,a3,a4]@2", // B A B D B F# A
  H: "[b2,b3,b4] ~ [b2,b3,b4] ~ [b2,b3,b4] [a2,a3,a4] ~ [b2,b3,b4] ~ [f3,f4,f5] ~ [e3,e4,e5] ~ [d3,d4,d5] [a2,a3,a4]@2", // B A B F E D A
  I: "[b2,b3,b4] ~ [b2,b3,b4] ~ [b2,b3,b4] [a2,a3,a4] [b2,b3,b4] [d3,d4,d5] ~ [f3,f4,f5] ~ [e3,e4,e5] ~ [d3,d4,d5] [a2,a3,a4]@2", // B A B D F E D A
  J: "[b2,b3,b4] ~ [b2,b3,b4] ~ [b2,b3,b4] [a2,a3,a4] ~ [b2,b3,b4] ~@4 b3 d4 e4 f4", // B A B
  K: "[b1,b2]@2 [d2,d3]@2 [e2,e3] [f2,f3]@2 [f#2,f#3]@2 ~@2 [f#2,f#3] [a2,a3,d4]@2 [a#2,a#3,a4]@2, f#4@8 ~ [a2,a3]@2 ~@5, ~@5 b3 ~@2", // B D E F F# D5 A#maj7 A
  L: "[b2,b3]@2 [a#2,a#3]@2 [a2,a3] [f#2,f#3]@2 [e2,e3]@2 ~ f#4@2 ~@2 [a#1,a#2]@2, g#4@8 ~ [g#1,g#2]@3 [a1,a2]@2 ~@2, ~@13 e4@3", // B A# A F# E A# G# A
  M: "[b1,b2]@2 [d2,d3]@2 [e2,e3] [f2,f3]@2 [f#2,f#3]@2 [a2,a3]@2 [f#2,f#3] [a2,a3]@2 [a#2,a#3]@2, f#4", // B D E F F# A F# A …
  N: "[b2,b3]@2 [g#1,g#2]@2 [a1,a2]@2 [a#1,a#2] [b1,b2] ~ [g#1,g#2]@3 ~ d4 ~ f4, ~@6 [a1,a2,b3] [a#1,a#2,e4]", // B G# A A# B G# Asus2 A#dim
  O: "[b2,b3]@2 [a#2,a#3]@2 [a2,a3] ~@2 [e2,e3]@2 [g#1,g#2]@3 [a1,a2]@2 [a#1,a#2]@2, g#4@5 [f#2,f#3]@2 ~@9, ~@3 a4@3 b4@2", // B A# A E G# A A# F#
  P: "~@4 [e2,e3] [f2,f3]@2 [f#2,f#3]@2 [a2,a3]@2 [f#2,f#3] [a2,a3]@2 [a#2,a#3]@2, [b1,b2,f#4] [d2,d3] ~@6, ~ g#4@2 f#4@13", // E F F# A F# A A# B5 …
  Q: "[b2,b3]@4 [g#1,g#2]@2 [g#1,g#2]@2 [a1,a2]@2 [a1,a2]@2 ~ d4 ~ f4, ~@6 [a#1,a#2,b3] [a#1,a#2,e4]", // B G# A Bmaj7 A#dim
  R: "~@2 [a#2,a#3]@2 [a2,a3] ~@2 [e2,e3]@2 [g#1,g#2]@3 ~@2 [a#1,a#2]@2, [b2,b3,a4]@2 ~@3 [f#2,f#3]@2 ~@5 [a1,a2,f#4]@2 ~@2, ~ b4@5 a4@6 ~ g#4@3", // A# A E G# A# B7 F# D
  S: "[b2,b3]@2 [g#1,g#2]!2 [a1,a2]!2 [a#1,a#2]!2", // B G# A A#
  T: "[b1,b2]@2 ~ [a1,a2] d3 [e2,e3] [b1,b2]!2 ~ [g#1,g#2] [g#1,g#2]@2 [a1,a2]@2 [a#1,a#2]@2", // B A E B G# A A#
  U: "[b1,b2]@3 [a1,a2]@3 [b1,b2]@2 ~ [g#1,g#2]@3 [a1,a2]@2 [a#1,a#2]@2", // B A B G# A A#
  V: "[b1,b2]@2 ~ [a1,a2]@2 ~ [b1,b2]@2 ~ [g#1,g#2]@3 a2 [b1,b2]@3", // B A B G# B
  W: "[a1,a2] [b1,b2]@2 [a1,a2] [b1,b2]@2 [a1,a2] [b1,b2]@2 [a1,a2] [b1,b2]@2 [a1,a2] [b1,b2] [d2,d3]@2", // A B A B A B A B …
  X: "b1 b2@2 g#1@2 g#2 g#1 g#2", Y: "c#2!2 e2 f2 f#1 f#2 g1 a1",
  Z: "[b2,b3,b4] ~ [b2,b3,b4] ~ [b2,b3,b4] [a2,a3,a4] ~ [b2,b3,b4] ~@8", // B A B
  AA: "[b1,b2]@2 [d2,d3]@2 [e2,e3] [f2,f3]@2 [f#2,f#3]@2 [a2,a3]@2 [f#2,f#3] [a2,a3]@2 [a#2,a#3]@2", // B D E F F# A F# A …
  AB: "[b2,b3]@2 [a#2,a#3]@2 [a2,a3] [f#2,f#3]@2 [e2,e3]@2 [g#1,g#2]@3 [a1,a2]@2 [a#1,a#2]@2", // B A# A F# E G# A A#
  AC: "[b2,b3]@2 [g#1,g#2]@2 [a1,a2]@2 [a#1,a#2] [b1,b2] ~ [g#1,g#2]@3 [a1,a2]@2 [a#1,a#2]@2", // B G# A A# B G# A A#
  AD: "~@2 [d2,d3]@2 [e2,e3] ~ c#5 ~@2 [a2,a3]@2 [f#2,f#3] [a2,a3]@2 ~ d5, [b1,b2,d5]@2 ~@3 [f2,f3]@2 [f#2,f#3,d5]@2 ~@5 [a#2,a#3,c#5]@2, ~ e5@5 ~@2 e5@6 ~@2", // D E A F# A Bm F D …
  AE: "~ e5 [a#2,a#3,d5]@2 [a2,a3,c#5] [f#2,f#3,d5]@2 [e2,e3]@2 [g#1,g#2]@3 [a1,a2]@2 ~ d5, [b2,b3,d5]@2 ~@5 c#5@7 [a#1,a#2,c#5]@2", // A# A D E G# A Bm A#m
  AF: "[b1,b2,c#5]@2 [d2,d3,b4]@2 [e2,e3,a4] ~@2 [f#2,f#3]@2 [a2,a3]@2 [f#2,f#3] [a2,a3,a4]@2 ~ e4, ~@5 [f2,f3]@2 ~@7 [a#2,a#3,f#4]@2, ~@3 b4@3 ~@2", // Bsus2 G A5 F# A F# A F …
  AG: "[b2,b3]@2 [g#1,g#2]@2 ~ d4 [a#1,a#2] [b1,b2] ~ [g#1,g#2]@3 [a1,a2]@2 [a#1,a#2]@2, d4@4 [a1,a2,c#4]@2 ~ c#4@9", // B G# A# B G# A A# A
  AH: "[b1,b2,b3]@2 [d2,d3,d4]@2 [e2,e3,e4] ~@4 [a2,a3]@2 [f#2,f#3] ~ b3 ~ e4, ~@5 [f2,f3]@2 [f#2,f#3]@2 ~@3 [a2,a3,d4]@2 [a#2,a#3,d4]@2, ~@3 f#4 e4@2 ~@2", // B D E A F# F F# D5 …
  AI: "[b2,b3,f#4]@2 ~@2 [a2,a3] ~ b4 ~@3 d5 ~ [a1,a2]@2 [a#1,a#2]@2, ~@2 [a#2,a#3,a4]@2 ~ [f#2,f#3,d5]@2 [e2,e3,d5]@2 [g#1,g#2]@3 ~@4, ~@3 b4@2 ~@3 b4@2 ~ b4@5", // B5 A A# A#maj7 D E7 G#
  AJ: "~ d5 ~ b4 [e2,e3,e5] ~ a4 ~ b4 [a2,a3,g#4]@2 [f#2,f#3,c#4] ~ c#4 ~ g#4, [b1,b2,f#5]@2 [d2,d3,c#5]@2 ~ [f2,f3,c#5]@2 [f#2,f#3,b4]@2 ~@3 [a2,a3,b3]@2 [a#2,a#3,b3]@2", // E Amaj7 F#5 B5 Dmaj7 C# B5 Asus2 …
  AK: "b4 g#4@2 b4 ~ b4 ~ a5 ~ e5 [a1,a2,f#5]@2 [a#1,a#2,a5]@2 ~ d6, [b2,b3]@2 [g#1,g#2,e5] [g#1,g#2,b5] [a1,a2,g#5] ~@2 [a#1,a#2,b5]", // D A#maj7 B C#m G#m Amaj7 Bmaj7
  AL: "~@2 [d2,d3]@2 [e2,e3] [f2,f3]@2 [f#2,f#3]@2 ~@2 [f#2,f#3] ~ d6 [a#2,a#3,b5]@2, [b1,b2,c6]@2 ~@7 [a2,a3]@2 ~ [a2,a3,c#6]@2 ~@2, ~ d6@9 b5@2 ~@4", // D E F F# Bmaj7 Cmaj7 A
  AM: "[b2,b3]@2 ~@2 [a2,a3] ~@3 d6 [g#1,g#2,b5]@3 [a1,a2]@2 ~ d6, ~@2 [a#2,a#3,c#6]@2 ~ [f#2,f#3]@2 [e2,e3]@2 ~@5 [a#1,a#2,c#6]@2, ~@3 d6@3 d6@2 ~@8", // B A G#m A A#m F# E A#m
  AN: "[b1,b2,d6]@2 ~ d6 [e2,e3,d6] ~ b5 ~ c#6 ~ a5 [f#2,f#3,b5] ~ a5 ~ a5, ~@2 [d2,d3,c#6]@2 ~ [f2,f3,c#6]@2 [f#2,f#3,c#6]@2 [a2,a3,b5]@2 ~ [a2,a3,b5]@2 [a#2,a#3,g#5]@2", // Bm E7 B5 Dmaj7 C# F#5 Asus2 A#7
  AO: "~ g#5 ~ g#5 ~ f#5 [a#1,a#2,e5] [b1,b2,e5,f#5] d5 [d5,e5] d5 [c#5,d5] ~ [b4,c#5] [a#1,a#2]@2, [b2,b3,g#5]@2 [g#1,g#2,f#5]@2 [a1,a2,f#5]@2 ~@3 [g#1,g#2]@3 [a1,a2,c#5]@2 ~@2", // A#dim Bsus4 Dsus2 Dmaj7 Bsus2 A# E G#7 …
  AP: "[b1,b2]@2 [d2,d3]@2 [e2,e3] ~ a4 ~ e4 ~ e4 [f#2,f#3,d4] ~ f#4 [a#2,a#3,d4]@2, b4@5 [f2,f3]@2 [f#2,f#3,f#4]@2 [a2,a3,b4]@2 ~ [a2,a3,e4]@2 ~@2", // B D E D A# F F# Asus2 …
  AQ: "[b2,b3,e4]@2 ~ f#4 [a2,a3] ~ f#4 ~@2 [g#1,g#2]@3 [a1,a2]@2 [a#1,a#2]@2, ~@2 [a#2,a#3,f4]@2 ~ [f#2,f#3,f#4]@2 [e2,e3]@2 ~@7, ~ f#4", // E5 A G# A A# A#5 F# E
  AR: "[b1,b2]@2 [d2,d3]@2 [e2,e3] [f2,f3]@2 [f#2,f#3]@2 [a2,a3]@2 [f#2,f#3] [a2,a3]@2 [a#2,a#3]@2, ~ c4@2 ~", // B D E F F# A F# A …
  AS: "[b2,b3]@2 [g#1,g#2]!2 [a1,a2]!2 [a#1,a#2]!2, g#6@7 ~", AT: "[g#1,g#2]!3 [f#1,f#2]!5",
  AU: "[f#1,f#2]!3 [e1,e2]!5", // F# E
  AV: "[c#2,c#3]@2 [c#2,c#3]@2 [c#2,c#3] [a1,a2] [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2 [b1,b2]@2", // C# A B
  AW: "[a#1,a#2]@2 [a#1,a#2]@2 [c#2,c#3] [f2,f3] [g#2,g#3]@2 [a#2,a#3]@2 [g#2,g#3]@2 [f2,f3]@2 [c#2,c#3]@2", // A# C# F G# A# G# F C#
  AX: "[g1,g2]!8", AY: "g2!8", AZ: "[f#1,f#2]!8", BA: "f#2!8", BB: "b2@2 ~ a#2@2 ~ a2@2 ~ g#2@2 ~ g2 ~ f#2 ~",
  BC: "b2@2 ~ a#2@2 ~ a2@2 ~ g#2@2 ~ g2@2 ~@2", BD: "[f#2@28 b3 d4 e4 f4]/2", BE: "[~ b1@9]/5",
})).s("gm_distortion_guitar").gain(0.45)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B@3 C D@7 E D@7 E D@7 E D@6 F G D@15 E D@15 E D@15 E D@8 H@2 I ~@2 D@15 ~ D@6 F G J K L ~@5 D M D@8 ~@3 A D@3 M
  D@8 N ~@4
>`.pickRestart({
  A: "~@14 x!2", B: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2", C: "x!2 ~@2 x!2 ~@4 x!3 ~ x ~", D: "~ x ~ x", E: "~ x ~@2",
  F: "x ~ x ~ x ~ x ~ x!8", G: "x!13 ~@3", H: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", I: "~@2 x ~@3 x ~ x!8", J: "x!12 ~@4",
  K: "x!10 ~ x!5", L: "x", M: "~@4 x ~@5 x!3 ~ x!2", N: "~ x",
})).gain(0.52)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@4 [~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2]!3 [~@2 x!2 ~@2 x!2 ~@8] ~@156>").gain(0.29)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@6 A ~ A@30 ~@2 A@56 B@2 ~@3 A@15 ~ A@6 ~@10 C@2 A@8 ~@4 A@3 C A@8 ~@5
>`.pickRestart({
  A: "x ~@2 x ~@2 x!2 ~@8", B: "x ~@2 x ~@2 x ~@2 x ~@6", C: "x ~@2 x ~@12",
})).gain(0.29)

// drums · high tom
const high_tom = s("ht").struct("<~@130 [x!16]!4 [x!8 ~@8] ~@15 [x!8 ~@8] ~@8 [~ x] ~@4>").gain(0.46)

// drums · crash
const crash = s("cr").struct("<x ~@142 x ~@15 [~ x] ~@4>").gain(0.58)

stack(
// … 3 more lines

More by Jayboned