Strudelify

Goodbye

Alexia

KeyD majorTempo134 bpm
0:00/0:00
// Goodbye — Alexia
// 134 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(134/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 · lead 1 square
const lead_1_square = note(`<
  ~@9
  [e2@2 ~ e2 ~@2 e2 ~@7 e3 ~]
  [e2@2 ~ e2 ~@2 e2 ~@9]
  [e2@2 ~ e2 ~@2 e2 ~@7 e3 ~]
  [e2@2 ~ e2 ~@2 e2 ~@9]
  [e2 ~@2 e2 ~@2 e2 ~@3 e2 ~ g2 ~ e3 ~]
  [e2 ~@2 e2 ~@2 e2 ~@9]
  ~@86
>`).s("gm_lead_1_square").gain(0.42)

// other · lead 1 square · soft notes
const lead_1_square_soft = note("<~@13 [~ e2!2 ~ e2!2 ~ e2!2 ~@2 e2!2 g2 ~ e3] [e3 e2!2 ~ e2!2 ~ e2!2 ~@7] ~@86>")
  .s("gm_lead_1_square").gain(0.21)

// chords · piano
const piano = note("<~@36 A@3 ~@4 B C D ~ B C E F E F ~@15 A@3 ~@4 B C D ~ B C G H ~@10 B C D ~ B C I ~>".pickRestart({
  A: "[~@3 g4@2 f#4@4 e4@8 ~@7]/3", B: "~@7 [g3,b4]", C: "[f#3,a4]@2 [g3,b4] [a3,c5]@2 [g3,b4] [f#3,a4]@2",
  D: "[g3,b4]", E: "[e3,g3,b3,e4,b4]", F: "[d3,f#3,a3,d4,a4]", G: "[e4,g4,b4]", H: "[d4,f#4,a4]", I: "[g4,b4]@15 ~",
})).s("gm_piano").gain(0.05)

// other · synth drum
const synth_drum = note("<~@35 [~@6 e6!2 e6@2 ~@6] ~@31 [~@6 e6!2 e6@2 ~@6] ~@22 [~@6 e6!2 e6@2 ~@6] ~@10>")
  .s("gm_synth_drum").gain(0.39).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@12 A@2 ~@27 B C D E B C D E ~@3 A@2 ~@2 F@2 ~@15 B C D E B C D E G H ~@8 B C D E B C D I@2 ~
>`.pickRestart({
  A: "[~@5 f#2@2 e2@9]/2",
  B: "[g4,a4,d5] ~ [g4,a4,d5] ~ [g4,a4,d5] ~ [g4,a4,d5]!2 ~ [g4,a4,d5]!2 ~ [g4,a4,d5] ~ [g4,a4,d5]@2", // Gsus2
  C: "[g4,a4,d5] ~ [g4,a4,d5] ~ [g4,a4,d5] ~ [g4,a4,d5]!2 ~ [g4,a4,d5]@2 ~ [g4,a4,d5] ~ [g4,a4,d5,f#5] [g4,a4,d5]", // Gsus2 D Gsus2
  D: "[g4,b4,e5] [b4,e5] b4 ~ [g4,b4,e5] ~ [g4,b4,e5]!2 ~ [g4,b4,e5]!2 ~ [g4,b4,e5] ~ [g4,b4,e5] ~", // Em E5 Em
  E: "[g4,a4,d5] [a4,d5] a4 ~ [g4,a4,d5] ~ [g4,a4,d5]!2 ~ [g4,a4,d5]!2 ~ [g4,a4,d5] ~ [g4,a4,d5,f#5] ~", // Gsus2 D5 Gsus2 D
  F: "[~@8 d3@2 d3@2 b3@19 ~]/2",
  G: "[g4,c5,d5] ~ [g4,c5,d5] ~ [g4,c5,d5] ~ [g4,c5,d5]!2 ~ [g4,c5,d5]!2 ~ [g4,c5,d5] ~ [g4,c5,d5]@2", // Gsus4
  H: "[g4,a4,d5] ~ [g4,a4,d5] ~ [g4,a4,d5] ~ [g4,a4,d5]!2 ~ [g4,a4,d5]@2 ~ [g4,a4,d5] ~ [g4,a4,d5] [d4,g4,b4]", // Gsus2 G
  I: "[[g4,a4,d5] [a4,d5] a4 ~ [g4,a4,d5] ~ [g4,a4,d5]!2 ~ [g4,a4,d5]!2 ~ [g4,a4,d5] ~ [g4,a4,d5,f#5] ~ [a4,d5]@16, ~@15 g4@16 ~]/2", // Gsus2 D5 Gsus2 D D5
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.6)

// bass · electric bass finger
const bass = note(`<
  ~@13 A B A C D E F G H I J G D E F G H I J G K L G M N O P@2 Q R S T U V W X Y Z AA C Y Z AA C D E F G H I J G K AB G
  AC N O P@2 Q R S T U V W X AD X ~@8 Q R S T U V W X AE ~
>`.pickRestart({
  A: "e1@2 ~@2 e1@2 ~@2 e1 ~ e1@2 g1@4", B: "e1@2 ~@2 e1@2 ~@2 e1 ~@7", C: "e1@2 ~@2 e1@2 ~ e1 d1@2 e1@2 g1@2 a1@2",
  D: "g1 ~@2 g1 ~@2 g1 ~@3 g1 ~@3 g1 ~", E: "f#1 ~@2 f#1 ~@2 f#1 ~@3 f#1 ~@3 f#1 ~",
  F: "e1 ~@2 e1 ~@2 e1 ~@3 e1 ~@3 e1 ~", G: "d1 ~@2 d1 ~@2 d1 ~@3 d1 ~@3 d1 ~", H: "c1 ~@2 c1 ~@2 c1 ~@3 c1 ~@3 c1 ~",
  I: "b0 ~@2 b0 ~@2 b0 ~@3 b0 ~@3 b0 ~", J: "a0 ~@2 a0 ~@2 a0 ~@3 a0 ~@3 a0 ~", K: "e1 ~@2 e1 ~@2 e1 ~@3 e1@2 ~@2 e1 ~",
  L: "d#1 ~@2 d#1 ~@3 d#1 ~@2 d#1@2 ~@2 d#1 ~", M: "c#1 ~@2 c#1 ~@3 c#1 ~@2 c#1 ~@3 c#1 ~",
  N: "c1@2 ~ c1 ~@2 c1 ~@3 c1@2 ~@2 c1 ~", O: "b0@2 ~ b0 ~@2 b0@2 ~@2 b0@2 ~@2 b0 ~", P: "[d1@29 ~@3]/2",
  Q: "g1@2 ~@2 g1@2 ~ g1 ~@2 g1@2 ~ g1 ~@2", R: "b0@3 ~ b0@2 ~ b0 ~@2 b0@2 ~ b0@2 ~",
  S: "e1@2 ~@2 e1@2 ~ e1 ~@2 e1@2 ~ e1@2 ~", T: "d1@2 ~@2 d1@2 ~ d1 ~@2 d1@2 ~ d1@2 ~",
  U: "g1@3 ~ g1@2 ~ g1 ~@2 g1@2 ~ g1@2 ~", V: "b0@2 ~@2 b0@2 ~ b0 ~@2 b0@2 ~ b0@2 ~",
  W: "c1@3 ~ c1@2 ~ c1 ~@2 c1@2 ~ c1 ~@2", X: "d1@2 ~@2 d1@2 ~ d1 ~@2 d1@2 ~ d1 ~@2",
  Y: "e1@2 ~@2 e1@2 ~ e1 d1!2 e1@2 g1@2 e1 ~", Z: "e1@2 ~@2 e1@2 ~ e1 d1!2 e1@2 g1@2 e1@2",
  AA: "e1@2 ~@2 e1@2 ~@2 d1!2 e1@2 g1@2 e1 ~", AB: "d#1 ~@2 d#1 ~@2 d#1 ~@3 d#1@2 ~@2 d#1 ~",
  AC: "c#1 ~@2 c#1 ~@2 c#1 ~@3 c#1 ~@3 c#1 ~", AD: "c1@2 ~@2 c1@2 ~ c1 ~@2 c1 ~@2 c1 ~@2", AE: "g1",
})).s("gm_electric_bass_finger").gain(0.72)

// bass · electric bass finger · soft notes
const bass_soft = note("<~@13 A@3 ~@24 B ~@10 A ~@3 A ~@16 B ~@10 C D E F G H E I ~@10>".pickRestart({
  A: "~@7 e1 ~@8", B: "~@14 d1 ~", C: "g1@5 ~@3 g1@4 ~@4", D: "f#1@5 ~@3 f#1@4 ~@4", E: "e1 ~ e1 ~",
  F: "d1@4 ~@4 d1@3 ~@5", G: "g1 ~ g1 ~", H: "f#1 ~ f#1 ~", I: "d1 ~ d1 ~",
})).s("gm_electric_bass_finger").gain(0.32)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@11 A@2 ~@2 A@2 ~@24 B@7 C@2 ~@4 D@3 ~@16 B@7 E@5 ~@6 B@7 F@2 ~>".pickRestart({
  A: "[~ f#4@2 c#5@13]/2",
  B: "[g4@2 ~@10 g4@2 ~@4 d5@4 ~@2 d5@2 ~@2 g4@2 d5@2 g4@2 ~@10 g4@2 a4@2 ~@2 d5@4 g4@2 ~@2 f#5@2 f#4@2 d5@2 g4@2 ~@4 d5@2 ~@4 g4@2 ~@8 g4@2 a4@2 g4@2 g4 ~ a4@2 g4@2 ~@10 g4@2 a4@2, ~@2 a4@10 ~@2 a4@12 a4@6 d5@4 g4@5 ~@7 g4@6 ~@14 g4@5 ~@7 g4@5 ~@15 g4@6 ~@6, ~@4 g4@5 ~@7 g4@4 ~@2 g4@6 ~@6 a4@10 ~@12 a4@8 ~@2 a4@10 ~@2 a4@8 ~@12 a4@10 ~@4, ~@3 d5@5 ~@5 f#5@14 ~@2 g5@7 ~@9 f#5@11, ~@38 d5@12 ~@10 f#5@4 d5 ~@17 d5@6 ~@2 [d5,g5]@4 d5@6 ~@2 d5@10]/7", // G5
  C: "[~@2 a4@4 g4@2 ~@2 [g4,d5,g5]@2 [f#4,d5]@2 f#5@17 ~, g4@5 ~@3 a4@4 ~@2 a4@4 ~@14, ~@2 d5@8 ~@4 d5@7 ~@11, ~@7 g4 ~@8]/2", // G5 D
  D: "[~@11 d5@10 ~@3, ~@5 f#4@3 ~ f#4@12 ~@3, ~@6 g4@3 ~ g4@11 ~@3, ~@14 d5@7 ~@27]/3",
  E: "[~@2 a4@4 g4@2 ~@2 [g4,d5,g5]@2 [f#4,d5]@2 g4@2 g4@2 ~@10 f#4@2 ~@4 d5@4 ~@2 d5@2 ~@2 g4@2 d5@7 ~@27, g4@5 ~@3 a4@4 ~@2 d5@6 g4@5 ~@7 f#4@4 ~@2 f#4@9 ~@33, ~@2 d5@8 ~@4 f#5@17 ~@11 f#5@28 ~@10, ~@7 a4@2 a4@5 ~ a4@6 a4@3 ~@16, ~@22 d5@9 ~@49]/5", // G5 D
  F: "[~ a4@2 g4 ~ [g4,d5,g5] [f#4,d5] [g4,a4] g4@7 ~, g4@5 ~@3 a4@4 ~@2 d5@7 ~@11, ~@2 d5@8 ~@4 f#5@17 ~, ~@4 g5@3 ~, ~@8 a4 ~@7]/2", // G5 D Gsus2
})).s("gm_electric_guitar_jazz").gain(0.24).pan(0.4)

// chords · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~@9 A B A B C B ~@2 D E F G H I J K D E F G H I J K ~@16 L M N O L M N O D E F G H I J K ~@36
>`.pickRestart({
  A: "e2@2 ~ e2 ~@2 e2 ~@7 e3 ~", B: "e2 ~@2 e2 ~@2 e2 ~@9", C: "e2 ~@2 e2 ~@2 e2 ~@3 e2 ~ g2 ~ e3 ~",
  D: "[g2,g3,b3,g4] ~@2 [g2,g3,b3,g4] ~@2 [g2,g3,d4,b4] ~@3 [g2,g3,b3,g4] ~@3 [g2,g3,b3,g4] ~", // G
  E: "[f#2,f#3,a3,f#4] ~@2 [f#2,f#3,a3,f#4] ~@2 [f#2,f#3,d4,a4] ~@3 [f#2,f#3,a3,f#4] ~@3 [f#2,f#3,a3,f#4] ~", // F#m D F#m
  F: "[e2,b3,g4] ~@2 [e2,b3,g4] ~@2 [e2,d4,g4,b4] ~@3 [e2,b3,g4] ~@3 [e2,b3,g4] ~", // Em Em7 Em
  G: "[d2,b3,g4] ~@2 [d2,b3,g4] ~@2 [d2,d4,g4,b4] ~@3 [d2,b3,g4] ~@3 [d2,b3,g4] ~", // G
  H: "[c2,c4,e4,g4] ~@2 [c2,c4,e4,g4] ~@2 [c2,c4,e4,c5] ~@3 [c2,c4,e4,g4] ~@3 [c2,c4,e4,g4] ~", // C
  I: "[b1,b3,g4] ~@2 [b1,b3,g4] ~@2 [b1,b3,g4,b4] ~@3 [b1,b3,g4] ~@3 [b1,b3,g4] ~", // Em
  J: "[a1,c4,e4,g4] ~@2 [a1,c4,e4,g4] ~@2 [a1,c4,e4,c5] ~@3 [a1,c4,e4] ~@3 [a1,c4,e4,g4] ~, ~@5 g4 ~@2", // Am7 Am Am7
  K: "[d2,d4,f#4,a4] ~@2 [d2,d4,f#4,a4] ~@2 [d2,d4,f#4] ~@3 [d2,d4,f#4,a4] ~@3 [d2,d4,f#4,a4] ~, ~@3 d5 ~@4", // D
  L: "[b4,e5]!2 ~ [b4,e5]!2 e5 [b4,e5]!10", M: "[b4,d5]!2 b4 [b4,d5]!3 d5 [b4,d5] d5 [b4,d5] d5 [b4,d5] d5 [b4,d5]!3",
  N: "[b4,e5]!2 ~ [b4,e5]!3 ~ [b4,e5]!3 ~ [b4,e5] ~ [b4,e5]!3", O: "[b4,d5]!2 b4 [b4,d5]!9 d5 [b4,d5]!3",
})).s("gm_lead_8_bass_lead").gain(0.14)

// chords · lead 8 bass lead · soft notes
const lead_8_bass_lead_soft = note(`<
  ~@17 A B C D E F G H A B C D E F G H ~@16 I J K L I J K L A B C D E F G H ~@36
>`.pickRestart({
  A: "~@2 [g2,g3,b3] ~@2 [g2,g3,b3] ~@2 [g2,g3,d4] ~@3 [g2,g3,b3] ~@3", // G G5 G
  B: "[g2,g3,b3] ~ [f#2,f#3,a3] ~@2 [f#2,f#3,a3] ~@2 [f#2,f#3,d4] ~@3 [f#2,f#3,a3] ~@3", // G F#m D F#m
  C: "~@2 [e2,b3,g4] ~@2 [e2,b3,g4] ~@2 [e2,d4,g4] ~@3 [e2,b3,g4] ~@3", // Em Em7 Em
  D: "~@2 [d2,b3,g4] ~@2 [d2,b3,g4] ~@2 [d2,d4,g4] ~@3 [d2,b3,g4] ~@3", // G G5 G
  E: "~@2 [c2,c4,e4] ~@2 [c2,c4,e4] ~@2 [c2,c4,e4] ~@3 [c2,c4,e4] ~@3", // C
  F: "~@2 [b1,b3,g4] ~@2 [b1,b3,g4] ~@2 [b1,b3,g4] ~@3 [b1,b3,g4] ~@3", // Em
  G: "~@2 [a1,c4,e4] ~@2 [a1,c4,e4] ~@2 [a1,c4,e4] ~@3 [a1,c4,e4] ~@3", // Am
  H: "~@2 [d2,d4,f#4] ~@2 [d2,d4,f#4] ~@2 [d2,d4,f#4] ~@3 [d2,d4,f#4] ~@3", I: "~@2 [b4,e5] ~@2 b4 ~@10",
  J: "~@2 d5 ~@3 b4 ~ b4 ~@3 b4 ~@3", K: "~@2 b4 ~@3 [b4,e5] ~@3 [b4,e5] ~ e5 ~@3", L: "~@2 d5 ~@9 b4 ~@3",
})).s("gm_lead_8_bass_lead").gain(0.08)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@5 A B C D E@2 ~@2 F@4 ~@32 G H G H G H G I ~@26 J K J K J K J K ~@10>".pickRestart({
  A: "[b3,d4]", B: "[a3,e4] [d4,f#4]", C: "[b3,e4]", D: "[a3,f#4]", E: "[e2,e3]/2", F: "[g3,b3,e4]/4", G: "[e4,g4]",
  H: "[d4,f#4]", I: "[f#4,a4]@15 ~", J: "[b3,g4]!2", K: "[a3,f#4]!2",
})).s("gm_string_ensemble_2").gain(0.25).pan(0.6)

// chords · pad sweep
const pad_sweep = note(`<
  ~@17 A@4 B C D E A@4 B C D E F@4 G@2 H@2 I@2 J K L M@3 ~@8 A@4 B C D E F@4 G@2 H@2 I@2 J K L M@3 N@2 ~@8 I@2 J K L M@3
  O@2
>`.pickRestart({
  A: "[[g3,b3] [f#3,a3] e3 d3, d4@63 ~, ~@32 b3@31 ~]/4", B: "[c3,e3,g3]", C: "[b2,e3,g3]", D: "[a2,c3,e3,a3]",
  E: "[d3,f#3,a3]", F: "[e3@16 d#3@16 d3@16 c#3@15 ~, [g3,b3]@63 ~]/4", G: "[[c3,e3] [b2,d3], g3]/2",
  H: "[[d3,f#3], a3@15 ~]/2", I: "[g3 [b2,f#4], d4@15 ~, g4@15 ~@17]/2", J: "[e3,e4,g4]", K: "[d3,d4,f#4]",
  L: "[g3,d4,g4]", M: "[[b2,d4,f#4]@15 ~ [e4,g4]@15 ~ [d4,f#4]@16, ~@15 c3@16 d3@15 ~@2]/3",
  N: "[g3 [d3,f#4], c4@15 ~, g4@15 ~@17]/2", O: "[[g3,b4]@17 ~@15, d4@15 ~, g4@15 ~@17]/2",
})).s("gm_pad_sweep").gain(0.31)

// chords · orchestral harp
const orchestral_harp = note("<~@32 A@2 ~@30 A@2 ~@35>".pickRestart({
  A: "[~@2 [d7,e7]!2 [a6,b6]!2 g6 [e6,g6] [d6,e6] d6 ~@5 [g3,a3]@2 ~@15, ~@9 b5@2 [d5,e5]@2 [g4,a4]@2 ~@17, ~@5 [g5,a5] b4 [d4,e4] ~@8]/2", // Dsus2 Asus2 Em Dsus2 Gsus2 Dsus2 Gsus2 Dsus2
})).s("gm_orchestral_harp").gain(0.26)

// chords · orchestral harp · soft notes
const orchestral_harp_soft = note("<~@32 [~@6 a6 ~@5 c5@2 ~@2] ~@31 [~@6 a6 ~@5 c5@2 ~@2] ~@36>")
  .s("gm_orchestral_harp").gain(0.19)

// chords · string ensemble 2
const string_ensemble_2_2 = note(`<
  ~ A B@3 A B@3 C@2 ~@2 D@4 E F G H I J K L E F G H I J K L M N O P Q R S@2 T@4 U@4 V W V X ~@4 E F G H I J K L M N O P
  Q R S@2 T@4 U@4 Y@2 Z AA AB AC Z AA AD AE T@4 U@4 AF ~
>`.pickRestart({
  A: "[g2,g3,d4,b4]", B: "[e4 ~ [e2,e3,g4]@2 [d2,d3,f#4]@2, [f#2,f#3,a4] ~@2, ~@8 d4@39 ~]/3", C: "[e2,e3]/2",
  D: "[d3,d4]/4", E: "g3", F: "f#3", G: "e3", H: "d3", I: "c3", J: "b2", K: "a2", L: "d3@15 ~", M: "~ b3 e4 g4",
  N: "f#4 g4", O: "b4 d5", P: "e5 g5", Q: "e5", R: "d5", S: "[a4@15 ~]/2", T: "[d5,d6]/4", U: "[d5@31 ~, d6 ~@63]/4",
  V: "[b4,b5]", W: "[a4,a5]", X: "[a4,a5]@15 ~", Y: "[d5,d6]/2", Z: "d4@2 b4 d4, g2", AA: "e4@8 d4@7 ~, f#2",
  AB: "e4@8 b3@4 g3@3 e4, e2, ~@8 e4@7 ~", AC: "a3 g3 [f#3,d4]@2, d2@15 ~",
  AD: "[d4,d5]@4 [c4,c5]@4 [b3,b4]@4 [g3,g4]@3 e4, e2, e4@8 e4@7 ~", // D C B G
  AE: "[a3,a4] [g3,g4] [f#3,d4]@2, d2@15 ~, ~@4 f#4@3 ~", AF: "[g3,g5]",
})).s("gm_string_ensemble_2").gain(0.39).pan(0.6)

// chords · piano
const piano_2 = note("<~@33 A B C D E F G@2 ~@24 A B C D E F G@2 ~@28>".pickRestart({
  A: "[e4,g4,b4]@2 ~ [e4,g4,b4] ~@2 [e4,g4,b4] ~@3 [e4,g4,b4] ~@2 [e4,g4,b4] ~@2", // Em
  B: "[g4,b4]@2 ~ [d#4,g4,b4] ~@2 [d#4,g4,b4]@2 ~@2 [d#4,g4,b4]@2 ~ [d#4,g4,b4] ~@2, d#4 ~@15", // G D#aug
  C: "[d4,g4,b4]@2 ~ [d4,g4,b4] ~@2 [d4,g4,b4]@2 ~@2 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@2", // G
  D: "[c#4,g4,b4]@2 ~ [c#4,g4,b4] ~@2 [c#4,g4,b4]@2 ~@2 [c#4,g4,b4] ~@2 [c#4,g4,b4] ~@2", // C#m7b5
  E: "[c4,e4,g4]@2 ~ [c4,e4,g4] ~@2 [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~ [c4,e4,g4] ~@2", // C
  F: "[b3,e4,g4]@2 ~ [b3,e4,g4] ~@2 [b3,e4,g4]@2 ~@2 [b3,e4,g4] ~@2 [b3,e4,g4] ~@2", G: "[[a3,d4,f#4]@29 ~@3]/2",
})).s("gm_piano").gain(0.16)

// other · percussive organ
const percussive_organ = note(`<
  ~@41 A B A B A B A B C D E F C D G F ~@16 A B A B A B A B A B ~@8 A B A B A B A B ~@2
>`.pickRestart({
  A: "d4!2 a4!2 g4!2 d4 [d4,a4] a4!2 [g4,a4] g4 a4!2 g4!2", B: "d4!2 a4!2 g4!2 d4 [d4,a4] a4!2 [g4,a4] g4 a4!2 b4!2",
  C: "[e5,g5,b5] ~@3 [e5,g5,b5] ~@2 [g5,b5] ~@2 [e5,g5,b5] ~@2 [e5,g5,b5] ~@2", // Em G Em
  D: "[d5,f#5,a5] ~@3 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~ f#5", // D
  E: "[g5,b5] ~@3 g5 ~@2 [g5,b5] ~@2 [e5,g5,b5] ~@2 [e5,g5,b5] ~@2, e5 ~@7", // G Em
  F: "[d5,a5]@2 ~@2 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~ f#5 [d5,f#5,a5] ~ f#5 [d5,f#5,a5] ~ [d5,f#5,a5], f#5 ~@15", // D5 D
  G: "[e5,g5]@2 ~@2 g5 ~@2 [g5,b5] ~@2 [e5,g5,b5] ~@2 [e5,g5,b5] ~@2, b5 ~@15", // Em G Em
})).s("gm_percussive_organ").gain(0.24)

// other · percussive organ · soft notes
const percussive_organ_soft = note("<~@49 A B C D A B C D ~@44>".pickRestart({
  A: "~@6 [e5,g5,b5] e5 ~ [e5,g5,b5] ~@2 [e5,g5,b5] ~@2 [g5,b5]", // Em G
  B: "~@6 f#5 ~@2 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~@2 [d5,a5]", // D D5
  C: "a5 ~@3 [e5,b5] ~ [g5,b5] e5 ~ [e5,g5,b5] ~@2 [g5,b5] ~@3", D: "~@6 f#5 ~@2 [d5,a5] ~@2 [d5,a5] ~@3",
})).s("gm_percussive_organ").gain(0.12)

// other · pizzicato strings
const pizzicato_strings = note("<~@83 A B C D A B C D ~@10>".pickRestart({
  A: "g2@2 ~@2 g2@3 ~, ~@8 g3@3 ~@5", B: "f#2@5 ~@3 f#2@5 ~@3, ~@8 f#3@3 ~@5", C: "e2@3 ~@5 e2@5 ~@3, ~@4 e3 ~@3",
  D: "d2@5 ~@3 [d2,d3]@4 ~@4", // D
})).s("gm_pizzicato_strings").gain(0.29)

// drums · kick
const kick = s("bd").struct("<~@13 A@3 B A@22 B ~ A@30 B ~ A@10 B ~@7 A@8 B ~>".pickRestart({
  A: "x!4", B: "x",
})).gain(0.8)

// … 32 more lines

More by Alexia