Strudelify

Nothing Gonna Stop Us Now

Starship

KeyF♯ majorTempo96 bpm
0:00/0:00
// Nothing Gonna Stop Us Now — Starship
// 96 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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 · "A.PIANO 2"
const piano = note(`<
  ~ A@2 B@2 A@2 C@2 D@2 E@2 F@2 G@2 D@2 E@2 F@2 H I J K@2 L@2 M@2 N@2 O@2 D@2 E@2 F@2 G@2 D@2 E@2 F@2 H I J K@2 L@2 M@2
  N@2 P Q R S T U R V W X Y@2 Z@2 AA@2 AB@2 AC@2 Z@2 AA@2 AB@2 AC@2 Z@2 AA@2 AB@2 AC@2 Z@2 AA@2 AB@2 AC@2 Z@2 ~
>`.pickRestart({
  A: "[[f#2,c#3,f#3,a#3]@7 [d#2,f3,f#3,c#4]@9]/2", // F# D#m7
  B: "[[b2,f#3,b3,c#4,d#4]@7 [c#3,g#3,c#4,f#4]@5 [c#2,f3,g#3,c#4]@4, ~@14 a#3 ~@17]/2", // B C#sus4 C#
  C: "[[b2,f#3,b3,c#4,d#4]@14 [g#3,c#4,f#4]@7 ~@3 [c#2,f3,g#3,c#4]@8, ~@7 c#3@9, ~@14 a#3 ~@17]/2", // B C#sus4 C#
  D: "[[f#2,c#3,f#3,a#3,c#4]@7 f4@7 f#4@2, ~@7 [d#2,f#3,a#3,c#4]@9]/2", // F# D#m7
  E: "[[b2,f#3,b3,c#4,d#4]@7 [c#2,g#3,c#4,f#4]@5 [c#2,g#3,c#4,f4]@4]/2", // B C#sus4 C#
  F: "[[f#2,c#3,f#3,a#3,c#4]@14 f4@13 ~ f#4@4, ~@14 [d#2,f#3,a#3,c#4]@17 ~]/2", // F# D#m7
  G: "[[b2,f#3,b3,c#4,d#4]@14 c#2@2 ~@2 c#2 ~ c#2@2 c#1@2 c#2@2 c#1@2 ~@2 c#1@2, ~@7 [g#3,c#4,f#4]@5 [g#3,c#4,f4]@4, ~@16 c#1@5 ~@7 c#2@4]/2", // B C#sus4 C#
  H: "[b2,f#3,b3,d#4,g#5]@7 ~", I: "~@3 [b3,b4], [e1,e2,b2,e3,g#3], ~ [b3,b4]@2 ~, ~ [e4,e5]",
  J: "g#3 ~@2 [g#4,g#5], [c#2,f3], c#4 [c#4,c#5], ~ g#3@3, ~ g#4@2 ~", // G# C#
  K: "[[f#2,f#3,a#3,c#4,f#4]@7 [d#2,d#3,a#3,c#4,d#4,f#4]@9]/2", // F# D#m7
  L: "[[b1,b2,b3,c#4,f#4]@7 [g#3,c#4,f#4]@5 [g#3,c#4,f4]@4, ~@7 [c#2,c#3]@9]/2", // Bsus2 C#sus4 C#
  M: "[[f#2,f#3,a#3,c#4,f#4]@7 [d#2,d#3,a#3,c#4,f#4]@9]/2", // F# D#m7
  N: "[[b1,b2,b3,c#4,f#4]@7 [g#3,c#4,f#4]@5 [g#3,c#4,f4]@4, ~@14 [c#2,c#3]@17 ~]/2", O: "[e1,e2,g#3,b3,e4]/2",
  P: "[f#2,f#3,a#3,c#4]", Q: "[f3,g#3,c#4]@11 ~ [f#3,c#4]@4, a#2", R: "[b2,f#3,b3,c#4,d#4]",
  S: "g#2@3 c#3, [b3,d#4,f#4]@15 ~", T: "a#3@5 ~@2 f#4, [f#2,f#3], c#4@3 c#4, ~@5 a#3@3",
  U: "[g#3,c#4,f4] [g#3,c#4,f#4] [g#3,c#4,f4]@2, a#2", V: "b3@9 ~ b3@2 [b3,d#4,f#4]@2 g#2@2, [g#2,d#4,f#4]@13 ~@3",
  W: "[c#3,d#4,f#4]@7 b3, b3@13 ~@3", // D#m7
  X: "[c#1,c#2,c#3,b3,d#4,f#4] ~ [c#1,c#2,c#3,b3,d#4,f#4] ~ [c#1,c#2,c#3,b3,d#4,f#4]@2 ~@2 [d1,d2,d3,c4,e4,g4]@2 ~ [d1,d2,d3,c4,e4,g4]@2 ~ [d1,d2,d3,c4,e4,g4] ~", // B C
  Y: "[~@2 [b3,d4,g4]@5 [e2,e3,e4]@9, ~@2 [g2,g3]@7 ~@7, ~@7 [b3,d4,g4]@5 ~@4]/2", // G E G
  Z: "[[c2,c3,c4,d4,g4]@7 [a3,d4,g4]@5 [a3,d4,f#4]@4, ~@7 [d2,d3]@9]/2", // Csus2 Dsus4 D
  AA: "[[g2,g3,b3,d4,g4]@7 [e2,e3,b3,d4,g4]@9]/2", // G Em7
  AB: "[[c2,c3,c4,d4,g4]@7 [a3,d4,g4]@5 [a3,d4,f#4]@4, ~@14 [d2,d3]@17 ~]/2", // Csus2 Dsus4 D
  AC: "[[g2,g3,b3,d4,g4]@7 [e2,e3,b3,d4,e4,g4]@9]/2", // G Em7
})).s("gm_piano").gain(0.5).pan(0.6)

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~ A B C D A B C D A B C D A B C D A B C D A B E F G H I J D K I J D F L A B C D A B C D A B C D A B E F G H I J D K I
  J D M N O P M N Q R G S T U V W X U V W Y U V W X U V W Y U V W X U V W Y U V W X U V W Y U V W ~
>`.pickRestart({
  A: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ d#1 ~", B: "d#1 ~ d#1 ~ d#1 ~ d#1 ~ d#1 ~ d#1 ~ d#1 ~ d#1 ~",
  C: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ d#2 ~", D: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ f1 ~ f1 ~",
  E: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ e1 ~", F: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~",
  G: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~", H: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ c#1 ~ c#1 ~ d#1 ~",
  I: "d#1 ~ d#1 ~ d#1 ~ d#1 ~ d#1 ~ d#1 ~ a#1 ~ a#1 ~", J: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ c#2 ~ d#2 ~ c#2 ~",
  K: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ c#1 ~ d1 ~ d#1 ~", L: "e1 ~@15",
  M: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 g#1", N: "a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ b1 ~",
  O: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ a#1 ~", P: "g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ c#2 ~ c#2 ~",
  Q: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 a#1", R: "g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~",
  S: "[c#1,c#2] ~ [c#1,c#2] ~ [c#1,c#2] ~@3 [d1,d2] ~@2 [d1,d2] ~@2 [d1,d2] ~", T: "~@4 g1 ~ g1 ~ g1 ~ d1 ~ d1 ~ e1 ~",
  U: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ b1 ~ b1 ~", V: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ d2 ~ e2 ~ d2 ~",
  W: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ f#1 ~ f#1 ~", X: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ d1 ~ d#1 ~ e1 ~",
  Y: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ d1 ~ d1 ~ e1 ~",
})).s("gm_synth_bass_2").gain(0.4)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~ A@2 B@2 A@2 B@2 C@2 D@2 E@2 F@2 A@2 B@2 A@2 G H I J@4 K@8 D@2 E@2 F@2 A@2 B@2 A@2 G H I J@4 L@4 M N@4 O@3 P Q R@4
  S@4 T@4 U@4 T@4 U@4 T@4 U@4 T@4 ~
>`.pickRestart({
  A: "[[f#3,a#3,c#4]@7 [f3,f#3,c#4]@9]/2", B: "[[f#3,b3,c#4,d#4]@7 [f#3,g#3,c#4]@5 [f3,g#3,c#4]@4]/2",
  C: "[[f#2,c#3,f#3,a#3,c#4]@7 f4@7 f#4@2, ~@7 [d#2,f#3,a#3,c#4]@9]/2", // F# D#m7
  D: "[[b2,f#3,b3,c#4,d#4]@7 [c#2,g#3,c#4,f#4]@5 [c#2,g#3,c#4,f4]@4]/2", // B C#sus4 C#
  E: "[[f#2,c#3,a#3]@14 f4@13 ~ f#4@4, ~@14 [d#2,f#3,a#3,c#4]@17 ~]/2", // F# D#m7
  F: "[[b2,f#3,c#4,d#4]@14 c#2@2 ~@2 c#2 ~ c#2 ~ c#1@2 c#2 ~ c#1@2 c#2 ~ c#1@2, ~@7 [g#3,c#4,f#4]@5 [g#3,c#4,f4]@4, ~@16 c#1@5 ~@11]/2", // B C#sus4 C#
  G: "[f#3,b3,c#4,d#4]", H: "[e3,g#3,b3]", I: "c#4 ~@2 c#6, [f3,g#3], ~ c#4@3, ~ c#5",
  J: "[c#4@14 ~@10 [g#4,g#5]@4 a#4@3 ~ [b3,c#4,b4,d#6]@14 ~@10 [f4,f5]@8, f#4@7 ~, [a#3,f#5,a#5]@16 ~@7 [g#3,c#4,g#5]@9, c#5@4 ~@3 [d#4,d#5]@9 f#5@12 ~@4]/4", // G# B F D#m C#5 D#
  K: "[c#5@14 ~@10 [g#4,g#5]@4 a#4@3 ~ [b3,b4]@14 ~@2 [f4,f5] ~ [f4,f5] ~ [f4,f5] ~ [f4,f5] ~ f#5 ~ [g#4,g#5]@3 ~@3 [e1,e2,e3,f#3,g#3,b3,e4]@32 [f#2,c#3,f#3,a#3,c#4]@14 f4@14 f#4@4, f#4@23 g#5@5 [f4,f5]@4 ~@32, [a#3,f#5,a#5]@4 f#5@3 f#4@7 ~@2, ~@14 [d#4,d#5]@18 c#4@31 ~@65, ~@46 g#3@17 ~@47 [d#2,f#3,a#3,c#4]@18]/8", // G# B F G# E F# F D#m …
  L: "[c#5@14 ~@10 [g#4,g#5]@4 a#4@3 ~ [b3,b4]@14 ~@2 [f4,f5] ~ [f4,f5] ~ [f4,f5] ~ [f4,f5] ~ f#5 ~ [g#4,g#5]@3 ~@3, f#4@46 g#5@11 ~@7, [a#3,f#5,a#5]@4 f#5@3 [f4,f#4,f5], ~@14 [d#4,d#5]@18 c#4@31 ~, ~@46 g#3@17 ~]/4", // G# B F G# D#m F#maj7 D#
  M: "[f#2,a#3,c#4,f#4]", // F#
  N: "[~@8 [f4,f5]@3 ~@3 f#5@2 c#4@8 b3@8 ~@12 c#3@3 ~ [f#2,a#3,c#4,f#4,a#5]@16, a#2@4 [b2,f#3,d#4]@4 g#2@3 ~@5, f#4@14 f#4@18 ~@15 a#4@16 ~, [g#3,c#4]@11 [c#4,c#5]@3 ~@2 [d#5,d#6]@24 [c#5,c#6]@8 ~@16, ~@3 f#3 ~@4 [b3,d#4,f#4]@4 ~@4]/4", // F F# B C#5 C# D# C# B
  O: "[[f5,f6]@8 ~@4 f#3@3 ~ c#4@8 b3@8 [g#2,b3,d#4,f#4]@16, [a#2,c#4,f#4] [b2,f#3,d#4] ~, g#3 ~@3, ~ f#6@5, ~@8 f#5@8 f#7@31 ~]/3", // F G#m7 F# B
  P: "[c#3,b3,d#4,f#4,g#6,g#7]@15 ~", // G#m7
  Q: "[c#2,c#3,b3,d#4,f#4,g#4,c#5,g#5,c#6] ~ [c#2,c#3,b3,d#4,f#4] ~ [c#2,c#3,b3,d#4,f#4] ~@3 [d2,d3,c4,e4,g4,a4,d5,a5,d6]@3 [d2,d3,c4,e4,g4,a4,d5,a5,d6]@3 [d2,d3,c4,e4,g4,a5] ~, ~ [g#4,c#5,g#5,c#6]!2 ~@4 [a4,d5,d6]", // G#m7 B Am7 C#5 D5
  R: "[~@4 [d4,d5]@10 ~@10 [a4,a5]@4 b4@3 ~ [c4,d4,c5,e6]@14 ~@10 [f#4,f#5]@8, ~ g4@13 ~@2, ~@2 [b3,g5,b5]@14 ~@7 [a3,d4,a5]@9, ~@7 [e4,e5]@9 g5@12 ~@4]/4", // D A C F# Em D5 E
  S: "[d5@14 ~@10 [a4,a5]@4 b4@3 ~ [c4,c5]@14 ~@2 [f#4,f#5] ~ [f#4,f#5] ~ [f#4,f#5] ~ [f#4,f#5] ~ g5 ~ [a4,a5]@3 ~@3, g4@46 a5@11 ~@7, [b3,g5,b5]@4 g5@3 [f#4,g4,f#5], ~@14 [e4,e5]@18 d4@31 ~, ~@46 a3@17 ~]/4", // A C F# A Em Gmaj7 E
  T: "[[d4,d5]@14 ~@10 [a4,a5]@4 b4@3 ~ [c4,d4,c5,e6]@14 ~@10 [f#4,f#5]@8, g4@7 ~, [b3,g5,b5]@16 ~@7 [a3,d4,a5]@9, ~@7 [e4,e5]@9 g5@12 ~@4]/4", // D A C F# Em D5 E
  U: "[d5@14 ~@10 [a4,a5]@4 b4@3 ~ [c4,c5]@14 a5@10 [f#4,f#5]@8, g4@7 ~, [b3,g5,b5]@4 g5@3 ~, ~@14 [e4,e5]@18 d4@31 ~, ~@46 a3@17 ~]/4", // A C F# Em E
})).s("gm_string_ensemble_1").gain(0.13)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@13 A@2 B@2 ~@23 A@2 B@2 ~@64>".pickRestart({
  A: "[[f#3,c#4,f#4,a#4,c#5]@7 [f#4,f5]@7 f#5@2, ~@14 [d#3,a#4,c#5]@17 ~]/2", // F# F#maj7 D#7
  B: "[[b3,f#4,b4,c#5,d#5]@14 c#3@2 c#2@2 c#3 ~ c#3@2 c#2 ~ c#3@2 c#2 ~@3 c#2@2, ~@7 [g#4,c#5,f#5]@5 [g#4,c#5,f5]@4, ~@7 c#3]/2", // B C#sus4 C#
})).s("gm_string_ensemble_1").gain(0.06)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note("<~@16 A ~ B ~ A ~ B ~@20 A ~ B ~ A ~ B ~@58>".pickRestart({
  A: "~@12 [c#5,g#5]@2 [c#5,f#5,a#5] ~, ~@12 f5 ~@3", B: "~@12 [c#5,f#5,a#5] ~ [d#5,f#5,b5] ~",
})).s("gm_synth_brass_1").gain(0.14).pan(0.6)

// other · pad bowed · "BOWEDGLASS"
const pad_bowed = note("<~@24 A B ~@9 C D ~@14 A B ~@55>".pickRestart({
  A: "[g#5,g#6] [f#5,f#6] [e5,e6] [f#5,f#6] [g#5,g#6] [f#5,f#6] [e5,e6] [f#5,f#6] [g#5,g#6] [f#5,f#6] [e5,e6] [f#5,f#6] [g#5,g#6] [f#5,f#6] [e5,e6] [f#5,f#6]", // G# F# E F# G# F# E F# …
  B: "[g#5,g#6] [f#5,f#6] [f5,f6] [f#5,f#6] [g#5,g#6] [f#5,f#6] [f5,f6] [f#5,f#6] [g#5,g#6] [f#5,f#6] [f5,f6] [f#5,f#6] [g#5,g#6] [f#5,f#6] [f5,f6] [g#5,g#6]", // G# F# F F# G# F# F F# …
  C: "[f#2,b2] [e3,f#3] [b3,e4] [f#4,b4] [e5,f#5] [b5,e6] [f#6,b6] [e7,f#7] [f#7,b7] [b6,e7] [e6,f#6] [f#5,b5] [b4,e5] [e4,f#4] [f#3,b3] [b2,e3]", // B5 Esus2 E5 B5 Esus2 E5 B5 Esus2 …
  D: "e2 ~@15",
})).s("gm_pad_bowed").gain(0.19)

// other · tubular bells · "TUBULARBEL"
const tubular_bells = note(`<
  ~@24
  [~@4 b4 ~@3 e5 ~@3 b5 ~@3]
  [b4 ~@3 c#5 ~@3 f#5 ~@3 g#5 ~@3]
  ~@25
  [~@4 b4 ~@3 e5 ~@3 b5 ~@3]
  [b4 ~@3 c#5 ~@3 f#5 ~@3 g#5 ~@3]
  ~@55
>`).s("gm_tubular_bells").gain(0.35).pan(0.8)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@26 A@2 B@2 A@2 B@2 C@2 ~@17 A@2 B@2 A@2 B@2 ~@9 D E@2 F@4 G H I@2 J@2 I@2 J@2 I@2 J@2 I@2 J@2 I@2 J@2 I@2 J@2 I@2
  J@2 ~
>`.pickRestart({
  A: "[f#2@7 d#2@9]/2", B: "[b2@7 c#3@9]/2", C: "e2/2", D: "c#3@2 c#3@2 c#3@2 ~@2 d3@2 d3 d3@2 d3!2 ~",
  E: "[~@4 b5@6 a5@2 g5@2 d6@6 d6 ~@3 g5@6 e5 ~]/2",
  F: "[c6@2 d5 ~ b5@2 d5 ~ a5@2 d5 ~ g5@2 e5@6 d5@5 ~ b5 ~ d6@6 d6 ~@7 a6@9 ~ g6@6 e6 [d6,d#6] [c5,d5,d#5,f5,g5,a5,a#5,c6] [a#3,c4,d4,d#4,f4,g4,a4,a#4] [d#3,f3,g3,a3,b5] ~]/4", // D#maj7 Cm7 A#maj7 D#aug
  G: "e6 d6 b5 a5@2 g5 a5 e5 g5 e5 a5 e5 [g5,g7]@2 [d5,e5] [g4,a4,b4,c5]", // G Dsus2 Cmaj7
  H: "g5 [b5,c6] [c#6,d6]@2 [a6,b6]@2 c7@7 [e6,f#6,g#6,a6,b6] [a5,b5,c#6,d#6] [f#5,g#5]", I: "[g2@7 e2@9]/2",
  J: "[c3@7 d3@9]/2",
})).s("gm_distortion_guitar").gain(0.32).pan(0.4)

// other · distortion guitar · "DISTORTION"
const distortion_guitar_2 = note(`<
  ~@36 A B C D E F C G A B C D E F C H I J K L M J K L N O P Q R E S Q T U V W X Y Z AA X AB AC AA X AD Z AA X AD AC AA
  X AD Z AA X AD AC AA X AD Z AA X AD AC AA X AD Z AE
>`.pickRestart({
  A: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~@3 f#2 ~ f#2 ~", B: "d#2 ~@3 d#2 ~ d#2 ~ d#2 ~@3 d#2 ~ d#2 ~",
  C: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ d#3 ~", D: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ f2 ~ f2 ~",
  E: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~", F: "d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~@3 d#2 ~ d#2 ~",
  G: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ f2 ~ f#2 ~", H: "e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ b2 ~ b2 ~",
  I: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~@3", J: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~@5 d#2 ~",
  K: "~@2 d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~ a#2 ~ a#2 ~", L: "b2 ~@3 b2 ~ b2 ~ b2 ~ c#3 ~ d#3 ~ c#3 ~",
  M: "~@2 c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ f2 ~ f2 ~", N: "~@2 c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~",
  O: "~@4 f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~", P: "a#2 ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~ a#2 ~",
  Q: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~", R: "g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~@3 c#3 ~ c#3 ~",
  S: "a#2 ~ a#2 ~ a#2 ~@3 a#2 ~ a#2 ~ a#2 ~ a#2 ~", T: "g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~",
  U: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~", V: "c#3 ~ c#3 ~ c#3 ~@3 d3 ~@2 d3 ~@2 d3 ~",
  W: "~@4 g2 ~ g2 ~ g2 ~@5 e2 ~", X: "~@2 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ b2 ~ b2 ~",
  Y: "c3 ~ d4 ~ c3 ~ [c3,d4] ~ c3 ~ [d3,d4] ~ e3 ~ d3 ~", Z: "~@2 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ f#2 ~ f#2 ~",
  AA: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~@5 e2 ~", AB: "c3 ~@3 c3 ~ c3 e4 c3 e4 d3 e4 e3 ~ d3 ~",
  AC: "~@2 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~", AD: "c3 ~@3 c3 ~ c3 ~ c3 ~ d3 ~ e3 ~ d3 ~", AE: "g2 ~@15",
})).s("gm_distortion_guitar").gain(0.31).pan(0.9)

// other · distortion guitar · "DISTORTION" · soft notes
const distortion_guitar_soft = note(`<
  ~@36 A B ~@3 C ~@2 A B ~@3 C ~@3 A D E F G D E F H ~@2 I ~ J ~@4 K L M N O L M N K L M N O L M N K L M N O L M N K L M
  N O L M N K L M N ~
>`.pickRestart({
  A: "~@10 f#2 ~@5", B: "~@2 d#2 ~@7 d#2 ~@5", C: "~@10 d#2 ~@5", D: "d#2 ~@15", E: "~@2 b2 ~@13", F: "c#3 ~@15",
  G: "~@10 f#2 ~ f#2 ~@3", H: "~@2 f#2 ~@13", I: "~@10 g#2 ~@5", J: "~@6 a#2 ~@9", K: "~@10 g2 ~@5", L: "e2 ~@15",
  M: "~@2 c3 ~@13", N: "d3 ~@15", O: "~@10 g2 ~ g2 ~@3",
})).s("gm_distortion_guitar").gain(0.18).pan(0.9)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@61 A B C D A B C@2 E F ~@37>".pickRestart({
  A: "[f#3,a#3,c#4,f#4,a#4] ~ [f#3,a#3,c#4] [a#3,c#4,f#4,a#4] [f#3,a#3,c#4] ~ [f#3,a#3,c#4,f#4,a#4]@2 [f#3,a#3,c#4] [c#4,f#4] [f#3,a#3,c#4,f#4,a#4] [a#3,c#4,f#4,a#4] [f#3,a#3,c#4] [a#3,c#4,f#4,a#4] ~ [f#3,a#3,c#4,f#4,a#4]", // F# F#5 F#
  B: "[a#3,c#4,f4,g#4] ~ [a#3,c#4] [a#3,c#4,f4,g#4] [a#3,c#4] ~ [a#3,c#4,f4,g#4]@2 [a#3,c#4,f4,g#4] ~ [a#3,c#4] [a#3,c#4,f4,g#4] [a#3,c#4] ~ [f#3,b3,d#4,f#4]@2", // A#m7 A#m A#m7 A#m A#m7 A#m A#m7 A#m …
  C: "[b2,f#3,b3,d#4,f#4] ~ [b2,b3] [f#3,b3,d#4,f#4] [b2,f#3,b3] ~ [f#3,b3,d#4,f#4]@2 b3 [b3,d#4] [b2,f#3,b3,d#4,f#4] [f#3,b3,d#4,f#4] [b2,f#3,b3] [f#3,b3,d#4,f#4] ~ [b2,f#3,b3,d#4,f#4]", // B B5 B B5 B
  D: "[g#3,b3,d#4,f#4] ~ [g#3,b3] [g#3,b3,d#4,f#4] [g#3,b3] ~ [g#3,b3,d#4,f#4]@2 [g#3,b3,d#4,f#4] ~ [g#3,b3] [g#3,b3,d#4,f#4] [g#3,b3] ~ [c#3,b3,d#4,f#4]@2", // G#m7 G#m G#m7 G#m G#m7 G#m G#m7 G#m …
  E: "[c#3,f#3,b3,d#4,f#4] ~ [c#3,b3] [f#3,b3,d#4,f#4] [c#3,f#3,b3] ~ [f#3,b3,d#4,f#4]@2 b3 [b3,d#4] [c#3,f#3,b3,d#4,f#4] [f#3,b3,d#4,f#4] [c#3,f#3,b3] [f#3,b3,d#4,f#4] ~ [c#3,f#3,b3,d#4,f#4]", // B C#7 B F#sus4 B F#sus4 B
  F: "[c#3,f#3,b3,d#4,f#4]@2 [c#3,f#3,b3,d#4,f#4]@2 [c#3,f#3,b3,d#4,f#4]@2 ~@2 [d3,g3,c4,e4,g4]@3 [d3,g3,c4,e4,g4] ~@2 [d3,g3,c4,e4,g4]@2", // B C
})).s("gm_electric_guitar_clean").gain(0.12).pan(0)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note("<~@61 A B C D A B C@2 E ~@38>".pickRestart({
  A: "~ [f#3,a#3,c#4,f#4] f#4 ~@5 [f#4,a#4] ~@7", B: "~ [a#3,c#4,f4] f4 ~@6 [a#3,c#4,f4] f4 ~@5",
  C: "~ [b2,f#3,b3,d#4] [f#3,d#4] ~@3 b2@2 [b2,f#3,d#4,f#4] ~@7", D: "~ [g#3,b3,d#4] d#4 ~@6 [g#3,b3,d#4] d#4 ~@5",
  E: "~ [c#3,f#3,b3,d#4] [f#3,d#4] ~@3 c#3@2 [c#3,f#3,d#4,f#4] ~@7", // B D#m D#m7
})).s("gm_electric_guitar_clean").gain(0.07).pan(0)

// other · timpani
const timpani = note("<~@71 A ~@6 B C ~@7 D ~@7 D ~@7 D ~@4>".pickRestart({
  A: "[g1,g2] ~@3", B: "~@14 g2!2", C: "g1@3 ~, g2 ~@15", D: "g2@3 ~",
})).s("gm_timpani").gain(0.32)

// other · timpani · soft notes
const timpani_soft = note("<~@78 [~@12 g2!2 ~@2] ~@29>").s("gm_timpani").gain(0.16)

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

// drums · snare
const snare = s("sd").struct("<~ A@34 B A@16 C A@17 D A@7 E A@7 F A@7 G A@3 H A@3 G A@3 H ~>".pickRestart({
  A: "~ x ~ x", B: "x ~@8 x ~ x!2 ~@3", C: "~ x!2 ~@3 x ~", D: "x!3 ~@5", E: "~@2 x ~ x ~ x ~ x ~ x!6",
  F: "~@4 x ~@5 x!3 ~@3", G: "~@2 x ~ x ~@2 x ~ x!2 ~@5", H: "~@4 x ~@7 x ~@2 x",
})).gain(0.71)

// … 64 more lines

More by Starship