Strudelify

Vega's Theme

Yoko Shimomura

KeyE majorTempo150 bpm
0:00/0:00
// Vega's Theme — Yoko Shimomura
// 150 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 1 "Horn in F" named as a brass, played on brass section (its electric bass pick patch is not one); ch 2 "B♭ Trumpet" named as a brass, played on trumpet (its slap bass 1 patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5839081; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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 · brass section · "Horn in F"
const brass_section = note(`<
  ~@21 A B C@2 D E F G H I J K L M N O P Q R S T U V W V X Y@2 Z@2 AA@2 AB@2 AC@2 AD AE AF@2 AG@2 AH AI AJ AK L M N O AH
  AI AJ AL T U V W V X Y@2 Z@2 AA@2 AB@2 AC@2 AD AE AF@2 AG@2 AH AI AJ AK L M N O AH AI AJ AL T U AM
>`.pickRestart({
  A: "d2@2 ~@2 d2 ~@2 d2@4 d2 d2@2 d2@2", B: "b1@2 ~@2 b1 ~@2 b1@4 b1 b1@2 b1@2",
  C: "c#2@2 ~@2 c#2@2 ~ c#2!3 c#2@2 c#2@2 c#2@2", D: "d2@2 ~@2 d2@2 d2@3 d2 d2@2 d2@2 d2@2",
  E: "e2@2 ~@2 e2@2 e2@3 e2 e2@2 e2@2 e2@2", F: "f#2@2 ~@2 f#2@2 ~ f#2@2 f#2 f#2@2 f#2@2 ~@2",
  G: "f#1@2 ~@2 f#1@2 ~ f#1@2 f#2 f#1@2 f#1@2 f#1@2",
  H: "f#1@2 f#2@2 f#1@2 f#2 f#1@2 f#1 g#3 a3 b3 a3 g#3 f#3, ~@2 a3@3 f#2 f#1 f#2",
  I: "f1@2 ~ c#3 f1@2 f2 f1@2 [f1,g#3] a3 b3 c#4 b3 a3 g#3, g#3 ~ f2@2 c#3@5 ~ f2@2 f1@2 f2@2", // Fm
  J: "e1@2 ~ c#3 e1@2 e2 e1@2 e1 e2@2 e1@2 b3 c#4, a3 ~ e2@2 c#4@10 e2@2",
  K: "d#1@2 d#2@2 d#1@2 d#2 d#1@2 d#1 d#2@2 d#1@2 d#1 d#2, b3", L: "b1@2 b2@2 b1@2 b2 b1@2 b1 b2@2 b1@2 b2@2",
  M: "c#2@2 c#3@2 c#2@2 c#3 c#2@2 c#2 c#3@2 c#2@2 c#3 c#2", N: "c2@2 c3@2 c2@2 c3 c2@2 c2 c3@2 c2@2 c3@2",
  O: "c#2@2 c#3@2 c#2@2 c#3 c#2@3 c#2!2 c#3@2 c#2@2",
  P: "f#1@2 f#2@2 f#1@2 f#2 f#1@2 f#1 g#4 a4 b4 a4 g#4 f#4, ~@2 [c#4,f#4]@3 f#2 f#1 f#2", // F#5
  Q: "[c#4,f4] ~@2 c#4 f1@2 f2 f1@2 [f1,g#4] a4 b4 c#5 b4 a4 g#4, f1@2 f2@2 c#4@5 ~ f2@2 f1@2 f2@2", // C# Fm
  R: "[c#4,e4] ~@2 c#4 e1@2 e2 e1@2 e1 e2@2 e1@2 b4 c#5, e1 e2 [e4,a4]@5 e2", // C#m A5
  S: "d1@2 d2@2 d1@2 d2 d1@2 d1 d2@2 d1@2 d1 d2, [d4,f#4]", // D
  T: "[g#3,c#4]@2 [f3,g#3]!2 [g#3,c#4]@8 c#3 g#2 c#2 g#1, c#2@3 [g#3,c#4]", // C#5 Fm C#5
  U: "[c#4,f4]@2 [g#3,c#4]!2 [c#4,f4]@8 f#1 c#3@3, c#1@3 [c#4,f4]", V: "f#1@2 ~@2 f#1@2 ~ f#1!3 f#1@2 f#1@2 f#1@2",
  W: "f#1@2 ~@2 f#1 ~@2 f#1@4 f#1 f#1@2 f#1@2", X: "f#1@2 ~@2 f#1 ~@2 f#1@4 f#1 f#3 g#3 a3 b3, ~@6 f#1!2",
  Y: "[f#1@2 ~@2 f#1@2 ~ f#1!3 f#1@2 f#1@2 f#1@2 f#1@2 ~@2 g#4@3 ~ f#4@2 ~ f#1 f#1@2 f#1@2, c#4@8 a4@12 f#1 ~@2 f#1@3 e4@2 d4@4]/2",
  Z: "[c#4 b3 c#4 d4 f#1@2 ~ f#1!3 f#1@2 f#1@2 f#1@2 f#1@2 ~@2 g#3@2 ~@2 b3@3 f#1 ~@2 f#1@2, f#1@2 ~@2 c#4@16 f#1 ~ a3@2 ~@3 c#4@2 d4@3, ~@23 f#1@4 ~ f#1@2 ~@2]/2",
  AA: "[f#1@2 ~@2 f#1@2 ~ f#1!3 f#1@2 f#1@2 f#1@2 f#1@2 ~@2 b4@2 ~@2 b4@3 f#1 ~@2 f#1@2, c#4@8 c#5@12 f#1 ~ c#5@2 ~@3 a4@2 g#4@3, ~@23 f#1@4 ~ f#1@2 ~@2]/2",
  AB: "[f#1@2 ~@2 f#1@2 ~ f#1!3 f#1@2 f#1@2 f#1@2 f#1@2 ~@2 b3@2 ~@2 d4@3 f#1 ~@2 f#1@2, c#4@20 f#1 ~ c#4@2 ~@3 e4@2 f4@3, ~@23 f#1@4 ~ f#1@2 ~@2]/2",
  AC: "[d2@2 ~@2 d2 ~@6 d2 d2@2 d2@2 b1@2 ~@2 b1 a4@2 ~ b4@3 b1 ~@2 b1@2, f#4@7 d2@4 ~@12 b1@4 ~ b1@2 ~@2, ~@8 a4@11 g#4@3 ~@5 a4@2 g#4@3]/2",
  AD: "c#4 d4 c#4 c4 c#2@2 ~ c#2!3 c#2@2 c#2@2 c#2@2, c#2 ~ c#4@6",
  AE: "c#2@2 ~@2 c#2@2 ~ c#2!3 ~@4 c#2@2, c#5@5 c#2!2 ~, ~@11 c#4@2 f4@3",
  AF: "[f#4 g#4 f#4 f4 d2@2 d2@3 d2 d2@2 d2@2 d2@2 e2@2 ~@4 e2@2 ~ e2 ~@4 e2@2, d2@2 ~@2 f#4@15 g#4@2 a4@3 a#4@3 b4@2 c5@3, ~@10 e2 ~@2 e2!2 ~]/2",
  AG: "[c#5 d5 c#5 c5 f#2@2 ~ f#2@2 f#2 f#2@2 f#2@2 ~@2 f#1@2 ~@2 f#1@2 ~ f#1@2 f#2 f#1@2 f#1@2 f#1@2, f#2 ~ c#5@12 ~@2]/2",
  AH: "f#1@2 f#2@2 f#1@2 f#2 f#1@2 f#1 f#2@2 f#1@2 f#2@2", AI: "f1@2 f2@2 f1@2 f2 f1@2 f1 f2@2 f1@2 f2@2",
  AJ: "e1@2 e2@2 e1@2 e2 e1@2 e1 e2@2 e1@2 e2@2", AK: "d#1@2 d#2@2 d#1@2 d#2 d#1@2 d#1 d#2@2 d#1@2 d#1 d#2",
  AL: "d1@2 d2@2 d1@2 d2 d1@2 d1 d2@2 d1@2 d1 d2", AM: "f#2 ~@3",
})).s("gm_brass_section").gain(0.4)

// chords · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@37 A B C D E@2 F G H I F G H I F G H I F G J@2 K L M N O P Q R@2 S@2 P O P Q R E@2 F G H I F G H I F G H I F G J@2 K
  L M N O P Q R@2 S@2 P O P Q R E@2 T
>`.pickRestart({
  A: "~@4 a4@6 g#4 a4 b4 a4 g#4 f#4", B: "g#4 ~@2 c#4 c#4@5 g#4 a4 b4 c#5 b4 a4 g#4", C: "a4 ~@2 c#4 c#5@10 b4 c#5",
  D: "b4", E: "[~ b4 c#5 d5 e5 d5 c#5 b4 c#5@3 c#4 c#5@12 ~@8]/2",
  F: "[f#4,c#5] ~ [f#4,c#5]!3 ~ [f#4,c#5] ~ [f#4,c#5]!3 ~ [f#4,c#5] ~ [f#4,d5] ~", // F#5 D
  G: "[f#4,d5] ~ [f#4,d5]!3 ~ [f#4,d5] ~ [f#4,d5]!3 ~ [f#4,e5] ~ [f#4,d5] ~", // D F#7 D
  H: "[f#4,c#5] ~ [f#4,c#5]!3 ~ [f#4,c#5] ~ [f#4,c#5]!3 ~ [f#4,c#5] ~ [f#4,b4] ~", // F#5 B5
  I: "[f#4,b4] ~ [f#4,b4]!3 ~ [f#4,b4] ~ [f#4,b4]!3 ~ [f#4,b4] ~ [f#4,c#5] ~", // B5 F#5
  J: "[c#4,g#4] ~ [c#4,g#4]!3 ~ [c#4,g#4] ~ [c#4,g#4]!3 ~ [c#4,g#4] ~ [c#4,g#4] ~", // C#5
  K: "[f#4,d5] ~ [f#4,d5]!3 ~ [f#4,d5] ~ [f#4,d5]!3 ~ [f#4,d5] ~ [g#4,e5] ~", // D C#m
  L: "[g#4,e5] ~ [g#4,e5]!3 ~ [g#4,e5] ~ [g#4,e5]!3 ~ [g#4,e5] ~ [g#4,b4] ~", // C#m G#m
  M: "[a#4,c#5] ~ [a#4,c#5]!3 ~ [a#4,c#5] ~ [a#4,c#5]!3 ~ [a#4,c#5] ~ [a#4,c#5] ~", // A#m
  N: "[a#4,f#5] ~ [a#4,f#5]!3 ~ [a#4,f#5] ~ [a#4,f#5]!3 ~ [a#4,f#5] ~ [a#4,f#5] ~", // D#m
  O: "[a4,c#5] ~ [a4,c#5]!3 ~ [a4,c#5] ~ [a4,c#5]!3 ~ [a4,c#5] ~ [a4,c#5] ~", // A
  P: "[g#4,c#5] ~ [g#4,c#5]!3 ~ [g#4,c#5] ~ [g#4,c#5]!3 ~ [g#4,c#5] ~ [g#4,c#5] ~", // C#5
  Q: "[g#4,b4] ~ [g#4,b4]!3 ~ [g#4,b4] ~ [g#4,b4]!3 ~ [g#4,b4] ~ [g#4,b4] ~", // G#m
  R: "[f#4,b4] ~ [f#4,b4]!3 ~ [f#4,b4] ~ [f#4,b4]!3 ~ [f#4,b4] ~ [f#4,b4] ~", // B5
  S: "[f#4,a4] ~ [f#4,a4]!3 ~ [f#4,a4] ~ [f#4,a4]!3 ~ [f#4,a4] ~ [f#4,a4] ~", T: "[c#5,f#5] ~@3",
})).s("gm_trumpet").gain(0.3)

// other · trombone
const trombone = note("<~@33 A B C D E F G H ~ I ~@33 I ~@33 I ~>".pickRestart({
  A: "~@4 d3@4 b3@6 a3 g#3", B: "a3 ~@2 c#3 c#3@12", C: "~@4 d#3@4 b3@3 a3@2 b3@3", D: "g#3 a3 g#3 f#3 g#3@12",
  E: "~@4 a3@6 g#3 a3 b3 a3 g#3 f#3", F: "g#3 ~@2 c#3 c#3@5 g#3 a3 b3 c#4 b3 a3 g#3", G: "a3 ~@2 c#3 c#4@10 b3 c#4",
  H: "b3", I: "~ b2 c#3 d3 e3 d3 c#3 b2 c#3@8",
})).s("gm_trombone").gain(0.4)

// chords · piano
const piano = note(`<
  A@3 B@6 C D E F C D E F C D E G ~@42 H I J K L M N O H P J Q ~@22 H I J K L M N O H P J Q ~@3
>`.pickRestart({
  A: "[~@25 [c#5,f#5,c#6] ~ [c#5,f#5,c#6]@11 ~ [b4,b5]@6 [c#5,c#6]@3, ~@5 [c#1,c#2]@11]/3", // F#5 B C#
  B: "[~@3 [e5,e6]@4 [d5,d6]@4 [c#5,c#6]@4 ~@15 c#2 ~@2 a#2 ~@2 [f#3,a#3] ~@2 c#4 ~@13 c#5 ~@6 a#5@2 ~@10 f#6@24, ~@15 [c#5,f#5,a#5,c#6]@15 f#2 c#2@6 f#3@13 a#4 c#5 f#5@2 a#4@12 c#6@30, ~@27 c#1@5 f#2@6 a#3 f#4 c#4 a#3@13 c#5 f#5 a#5 f#5 c#5@32 ~@6, ~@28 f#1@5 c#3 a#2@8 [c#4,f#4] a#4 f#4 c#4@14 f#5@3 c#6 a#5 f#5@32, ~@29 a#1@6 c#3@11 [f#4,a#4] c#5 a#4 f#4@16 a#5@31]/6", // E D C# F# F#5 F#
  C: "[f#2,f#3,f#4,c#5] ~ [f#4,c#5]!3 ~ [f#2,f#3,f#4,c#5] ~ [f#4,c#5]!3 ~ [f#2,f#3,f#4,c#5] ~ [f#4,d5] ~", // F#5 D
  D: "[f#2,f#3,f#4,d5] ~ [f#4,d5]!3 ~ [f#2,f#3,f#4,d5] ~ [f#4,d5]!3 ~ [f#2,f#3,f#4,e5] ~ [f#4,d5] ~", // D F#7 D
  E: "[f#2,f#3,f#4,c#5] ~ [f#4,c#5]!3 ~ [f#2,f#3,f#4,c#5] ~ [f#4,c#5]!3 ~ [f#2,f#3,f#4,c#5] ~ [f#4,b4] ~", // F#5 B5
  F: "[f#2,f#3,f#4,b4] ~ [f#4,b4]!3 ~ [f#2,f#3,f#4,b4] ~ [f#4,b4]!3 ~ [f#2,f#3,f#4,b4] ~ [f#4,c#5] ~", // B5 F#5
  G: "[f#2,f#3,f#4,b4] ~ [f#4,b4]!3 ~ [f#2,b2,f#3] d3 [d3,f#3] [f#3,b3] [b3,d4] [d4,f#4] [f#2,f#3,f#4,b4] [b4,d5] [d5,f#5] [f#5,a5]", // B5 D B5 Bm D B5 Bm D …
  H: "~@4 [a4,c#5,f#5,a5]@6 [g#4,g#5] [a4,a5] [b4,b5] [a4,a5] [g#4,g#5] [f#4,f#5]", // F#m G# A B A G# F#
  I: "[g#4,c#5,f5,g#5] ~@2 [c#4,f4,g#4,c#5] [c#4,f4,g#4,c#5]@5 [g#4,g#5] [a4,a5] [b4,b5] [c#5,c#6] [b4,b5] [a4,a5] [g#4,g#5]", // C# G# A B C# B A G#
  J: "[a4,c#5,e5,a5] ~@2 [c#4,e4,a4,c#5] [c#5,e5,a5,c#6]@9 ~ [b4,b5] [c#5,c#6]", // A B C#
  K: "b5@4 ~ d#6 ~ f#6 b6 f#6 ~ d#6 b5@3 ~, [b4,d#5,f#5]@15 ~, ~ b5@2 ~", // B
  L: "~@4 [d4,f#4,b4,d5]@4 [b4,d5,f#5,b5]@6 [a4,a5] [g#4,g#5]", // Bm A G#
  M: "[a4,c#5,e5,a5] ~@2 [c#4,e4,a4,c#5] [c#4,e4,a4,c#5]@11 ~", // A
  N: "~@4 [d#4,g#4,b4,d#5]@4 [b4,d#5,f#5,b5]@3 [a4,d#5,f#5,a5]@2 [b4,d#5,f#5,b5]@3", // G#m B D#dim B
  O: "[g#4,g#5] [a4,a5] [g#4,g#5] [f#4,f#5] [g#4,c#5,f5,g#5]@11 ~", // G# A G# F# C#
  P: "[g#4,c#5,f5,g#5] ~@2 [c#4,f4,a4,c#5] [c#4,f4,a4,c#5]@5 [g#4,g#5] [a4,a5] [b4,b5] [c#5,c#6] [b4,b5] [a4,a5] [g#4,g#5]", // C# C#aug G# A B C# B A …
  Q: "[b4,d5,f#5,b5]@15 ~", // Bm
})).s("gm_piano").gain(0.4)

// other · violin
const violin = note(`<
  ~@20 A B@2 C D E@2 F@2 ~@17 G H@2 I@2 J@2 K@2 B@2 C D E@2 F@2 ~@17 G H@2 I@2 J@2 K@2 B@2 C D E@2 F@2 ~@15
>`.pickRestart({
  A: "~@11 e5@2 f5@3", B: "[f#5@8 a5@11 g#5@2 a5@3 b5@3 a5@2 g#5@3]/2", C: "c#5 d5 c#5 c5 c#5@12",
  D: "c#6@11 c#5@2 f5@3", E: "[f#5 g#5 f#5 f5 f#5@15 g#5@2 a5@3 a#5@3 b5@2 c6@3]/2", F: "[c#6 d6 c#6 c6 c#6@24 ~@4]/2",
  G: "~@12 f#4 g#4 a4 b4", H: "[c#5@4 a5@6 g#5@2 f#5 e5 d5@2]/2",
  I: "[c#5 b4 c#5 d5 c#5@16 g#4@2 a4@2 b4@3 c#5@2 d5@3]/2", J: "[c#5@8 c#6@12 b5@2 c#6@2 b5@3 a5@2 g#5@3]/2",
  K: "[c#5@20 b4@2 c#5@2 d5@3 e5@2 f5@3]/2",
})).s("gm_violin").gain(0.5)

// other · violin · soft notes
const violin_soft = note("<~@12 A B@2 C@2 D@2 E@2 ~@91>".pickRestart({
  A: "~@12 f#4 g#4 a4 b4", B: "[c#5@4 a5@6 g#5@2 f#5 e5 d5@2]/2",
  C: "[c#5 b4 c#5 d5 c#5@16 g#4@2 a4@2 b4@3 c#5@2 d5@3]/2", D: "[c#5@8 c#6@12 b5@2 c#6@2 b5@3 a5@2 g#5@3]/2",
  E: "[c#5@20 b4@2 c#5@2 d5@3 ~@5]/2",
})).s("gm_violin").gain(0.3)

// chords · acoustic guitar steel · "Classical Guitar"
const acoustic_guitar_steel = note(`<
  ~@16 A B C D E B C F@2 G H I J K L M N O P Q L K L M O ~@2 B C D E B C D E B C D E B C F@2 G H I J K L M N O P Q L K L
  M O ~@2 B C D E B C D E B C D E B C F@2 G H I J K L M N O P Q L K L M O ~@3
>`.pickRestart({
  A: "~@3 [b2,d3,f#3,b3,f#4,b4]", // Bm
  B: "[c#3,f#3,a3,c#4,f#4,c#5] ~ [c#3,f#3,a3,c#4,f#4,c#5]!3 ~ [c#3,f#3,a3,c#4,f#4,c#5] ~ [c#3,f#3,a3,c#4,f#4,c#5]!3 ~ [c#3,f#3,a3,c#4,f#4,c#5] ~ [d3,f#3,b3,d4,f#4,d5] ~", // F#m Bm
  C: "[d3,f#3,b3,d4,f#4,d5] ~ [d3,f#3,b3,d4,f#4,d5]!3 ~ [d3,f#3,b3,d4,f#4,d5] ~ [d3,f#3,b3,d4,f#4,d5]!3 ~ [e3,f#3,b3,e4,f#4,e5] ~ [d3,f#3,b3,d4,f#4,d5] ~", // Bm Esus2 Bm
  D: "[c#3,f#3,a3,c#4,f#4,c#5] ~ [c#3,f#3,a3,c#4,f#4,c#5]!3 ~ [c#3,f#3,a3,c#4,f#4,c#5] ~ [c#3,f#3,a3,c#4,f#4,c#5]!3 ~ [c#3,f#3,a3,c#4,f#4,c#5] ~ [b2,d3,f#3,b3,f#4,b4] ~", // F#m Bm
  E: "[b2,d3,f#3,b3,f#4,b4] ~ [b2,d3,f#3,b3,f#4,b4]!3 ~ [b2,d3,f#3,b3,f#4,b4] ~ [b2,d3,f#3,b3,f#4,b4]!3 ~ [b2,d3,f#3,b3,f#4,b4] ~ [c#3,f#3,a3,c#4,f#4,c#5] ~", // Bm F#m
  F: "[g#2,c#3,f3,g#3,c#4,g#4] ~ [g#2,c#3,f3,g#3,c#4,g#4]!3 ~ [g#2,c#3,f3,g#3,c#4,g#4] ~ [g#2,c#3,f3,g#3,c#4,g#4]!3 ~ [g#2,c#3,f3,g#3,c#4,g#4] ~ [g#2,c#3,f3,g#3,c#4,g#4] ~", // C#
  G: "[d3,f#3,a3,c#4,f#4,d5] ~ [d3,f#3,a3,c#4,f#4,d5]!3 ~ [d3,f#3,a3,c#4,f#4,d5] ~ [d3,f#3,a3,c#4,f#4,d5]!3 ~ [d3,f#3,a3,c#4,f#4,d5] ~ [e3,g#3,b3,e4,g#4,e5] ~", // Dmaj7 E
  H: "[e3,g#3,b3,e4,g#4,e5] ~ [e3,g#3,b3,e4,g#4,e5]!3 ~ [e3,g#3,b3,e4,g#4,e5] ~ [e3,g#3,b3,e4,g#4,e5]!3 ~ [e3,g#3,b3,e4,g#4,e5] ~ [f#3,g#3,b3,f#4,g#4,b4] ~", // E G#m7
  I: "[f#3,a#3,c#4,f#4,a#4,c#5] ~ [f#3,a#3,c#4,f#4,a#4,c#5]!3 ~ [f#3,a#3,c#4,f#4,a#4,c#5] ~ [f#3,a#3,c#4,f#4,a#4,c#5]!3 ~ [f#3,a#3,c#4,f#4,a#4,c#5] ~ [f#3,a#3,c#4,f#4,a#4,c#5] ~", // F#
  J: "[a#3,c#4,f#4,a#4,c#5,f#5] ~ [a#3,c#4,f#4,a#4,c#5,f#5]!3 ~ [a#3,c#4,f#4,a#4,c#5,f#5] ~ [a#3,c#4,f#4,a#4,c#5,f#5]!3 ~ [a#3,c#4,f#4,a#4,c#5,f#5] ~ [a#3,c#4,f#4,a#4,c#5,f#5] ~", // F#
  K: "[f#3,a3,c#4,f#4,a4,c#5] ~ [f#3,a3,c#4,f#4,a4,c#5]!3 ~ [f#3,a3,c#4,f#4,a4,c#5] ~ [f#3,a3,c#4,f#4,a4,c#5]!3 ~ [f#3,a3,c#4,f#4,a4,c#5] ~ [f#3,a3,c#4,f#4,a4,c#5] ~", // F#m
  L: "[f3,g#3,c#4,f4,g#4,c#5] ~ [f3,g#3,c#4,f4,g#4,c#5]!3 ~ [f3,g#3,c#4,f4,g#4,c#5] ~ [f3,g#3,c#4,f4,g#4,c#5]!3 ~ [f3,g#3,c#4,f4,g#4,c#5] ~ [f3,g#3,c#4,f4,g#4,c#5] ~", // C#
  M: "[e3,g#3,b3,e4,g#4,b4] ~ [e3,g#3,b3,e4,g#4,b4]!3 ~ [e3,g#3,b3,e4,g#4,b4] ~ [e3,g#3,b3,e4,g#4,b4]!3 ~ [e3,g#3,b3,e4,g#4,b4] ~ [e3,g#3,b3,e4,g#4,b4] ~", // E
  N: "[d#3,f#3,b3,d#4,f#4,b4] ~ [d#3,f#3,b3,d#4,f#4,b4]!3 ~ [d#3,f#3,b3,d#4,f#4,b4] ~ [d#3,f#3,b3,d#4,f#4,b4]!3 ~ [d#3,f#3,b3,d#4,f#4,b4] ~ [d#3,f#3,b3,d#4,f#4,b4] ~", // B
  O: "[d3,f#3,b3,d4,f#4,b4] ~ [d3,f#3,b3,d4,f#4,b4]!3 ~ [d3,f#3,b3,d4,f#4,b4] ~ [d3,f#3,b3,d4,f#4,b4]!3 ~ [d3,f#3,b3,d4,f#4,b4] ~ [d3,f#3,b3,d4,f#4,b4] ~", // Bm
  P: "[c#3,f#3,a3,c#4,f#4,a4] ~ [c#3,f#3,a3,c#4,f#4,a4]!3 ~ [c#3,f#3,a3,c#4,f#4,a4] ~ [c#3,f#3,a3,c#4,f#4,a4]!3 ~ [c#3,f#3,a3,c#4,f#4,a4] ~ [c#3,f#3,a3,c#4,f#4,a4] ~", // F#m
  Q: "[c3,f#3,a3,c4,f#4,a4] ~ [c3,f#3,a3,c4,f#4,a4]!3 ~ [c3,f#3,a3,c4,f#4,a4] ~ [c3,f#3,a3,c4,f#4,a4]!3 ~ [c3,f#3,a3,c4,f#4,a4] ~ [c3,f#3,a3,c4,f#4,a4] ~", // F#dim
})).s("gm_acoustic_guitar_steel").gain(0.35)

// drums · kick
const kick = s("bd").struct("<~@21 A@20 B C A@26 D A@5 B C A@26 D A@5 B C ~>".pickRestart({
  A: "x ~ x ~@3 x!2 ~ x!2 ~@3 x ~", B: "x ~@3 x ~@3 x ~ x!2 ~@4", C: "x ~@3 x ~@3 x ~ x!3 ~@3",
  D: "x ~ x ~@3 x!3 ~@2 x ~ x ~@2",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~@21 A@20 B@2 A@3 C A@7 D A@3 D A@10 E A@5 B@2 A@3 C A@7 D A@3 D A@10 E A@5 B@2 ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~@4 x ~@7 x!4", D: "~@2 x ~@3 x!2", E: "~ x ~@2",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<~@21 A@20 B C A@32 B C A@32 B C ~>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~@2 x ~@3 x ~@3 x ~ x!4",
})).gain(0.3)

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

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

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@29 A B C ~ A B C ~ A B D ~@3 E@3 F E@3 G E@3 F E@3 H E@3 ~ A B C ~ A B D ~ A B D ~@3 E@3 F E@3 G E@3 F E@3 H E@3 ~ A
  B C ~ A B D ~ A B D ~@4
>`.pickRestart({
  A: "~@3 x", B: "~@12 x ~@2 x", C: "~@2 x ~@2 x ~ x", D: "~ x ~@2", E: "~ x ~ x ~ x ~ x", F: "~ x ~ x ~ x ~@2",
  G: "~@2 x ~@3 x ~@3 x ~@4 x", H: "~ x ~ x ~@4",
})).gain(0.4)

// drums · high tom
const high_tom = s("ht").struct("<~@40 A ~ B ~@7 B ~@7 C ~@10 D ~@4 A ~ B ~@7 B ~@7 C ~@10 D ~@4 A ~ B ~>".pickRestart({
  A: "~@10 x!2 ~@4", B: "~@13 x ~@2", C: "~@8 x!2 ~@6", D: "~@8 x ~@4 x ~@2",
})).gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  ~@20 A B ~@6 B@2 ~@2 B@2 ~@2 B@3 C B D B@2 ~@2 E B ~@2 F B ~@2 F B ~@2 G B ~@2 B@2 ~@2 B@2 ~ H B@3 C B D B@2 ~@2 E B
  ~@2 F B ~@2 F B ~@2 G B ~@2 B@2 ~@2 B@2 ~ H B@3 C B D B@2
// … 23 more lines

More by Yoko Shimomura