Strudelify

Red Roses for My Lady

Engelbert Humperdinck

KeyB♭ majorTempo126 bpm
0:00/0:00
// Red Roses for My Lady — Humperdinck Engelbert
// 126 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · slap bass 1 · "SLAPBASS 1"
const bass = note(`<
  ~ A B C D@2 E F G C H I J C E K C L M N C H O P Q R S A B T U V W X Y W B T U@2 Z W AA AB W AC AD U AE W AF AG C D AH
  J AI AE T AJ AK AL AM AN AE AO AP AQ@2 AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH ~ BI BJ BK BL BM BN BO BP BQ
>`.pickRestart({
  A: "ab1!2 ~@2 ab1@3 ab1 ~ ab1 ~ ab1 f1@2 ab1@2", B: "bb1 ~ bb1 ~ bb1@3 bb1 ~ bb1 ~ bb1 g1@2 bb1@2",
  C: "bb1 ~ bb1 ~ bb1@3 bb1 ~ bb1 ~ bb1 c2@2 bb1@2", D: "c2 ~ c2 ~ c2@3 c2 ~ c2 ~ c2 bb1@2 c2 ~",
  E: "c2 ~ c2 ~ c2@3 c2 ~ c2 ~ c2 bb1@2 c2@2", F: "bb1 ~ bb1@2 ab1@2 f1 bb1 ~ bb1 ~ bb1 ab1@2 f1@2",
  G: "bb1 ~ bb1@2 ab1@2 f1 bb1 ~ bb1 ~ bb1 ab1@2 f1 ~", H: "c2 ~ c2 ~ c2@3 c2 ~ c2 ~ c2 bb1 ~ c2@2",
  I: "d2 ~ d2 ~ d2@3 d2 ~ d2 ~ d2 f2@2 bb1@2", J: "ab1 ~ ab1 ~ ab1@3 ab1 ~ ab1 ~ ab1 eb2@2 ab1@2",
  K: "bb1 ~ bb1 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1 g1@2 f1 ~", L: "c2 ~ c2 ~ c2@3 c2 ~ c2 ~ c2 c2@2 bb1@2",
  M: "d2 ~ d2 ~ d2@3 d2 ~ d2 ~ d2 d2@2 f2@2", N: "ab1@2 ab1 ~ ab1@3 ab1 ~ ab1 ~ ab1@3 d2 ~",
  O: "bb1!2 ~ g1@2 ~ f1 bb1 ~ bb1 ~ bb1 g1@2 f1 c2", P: "~@2 c2 ~ c2@2 ~ c2 ~ c2 ~ c2 bb1 ~ c2@2",
  Q: "bb1 ~ bb1@2 ab1 f1 ~ bb1 ~ bb1!2 ~ ab1@2 f1@2", R: "bb1 ~ bb1 ~ ab1 f1 ~ bb1 ~ bb1 ~ bb1 ab1@2 f1@2",
  S: "bb1 ~@7", T: "bb1 ~ bb1 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1 ab1@2 bb1@2", U: "c2 ~ c2 ~ c2@2 ~ c2 ~ c2 ~ c2 bb1@2 c2 ~",
  V: "c2 ~ c2 ~ c2@2 ~ c2 ~ c2 ~ c2 bb1 ~ c2@2", W: "ab1 ~ ab1 ~ ab1@3 ab1 ~ ab1 ~ ab1 f1@2 ab1@2",
  X: "bb1 ~ bb1 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1 ab1 ~ f1@2", Y: "bb1 ~ bb1 ~ bb1@3 bb1 ~ bb1 ~ bb1 ab1@2 f1@2",
  Z: "c2 ~ c2 ~ c2@3 c2 ~ c2!2 ~ bb1@2 c2@2", AA: "bb1 ~ bb1 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1 ab1 ~ f1 ~",
  AB: "bb1 ~ bb1 ~ bb1@3 bb1 ~ bb1 ~ bb1 ab1@2 f1 ~", AC: "bb1 ~ bb1 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1 ab1@2 bb1 ~",
  AD: "bb1 ~ bb1 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1 bb1@2 ab1@2", AE: "c2 ~ c2 ~ c2@2 ~ c2 ~ c2 ~ c2 bb1@2 c2@2",
  AF: "bb1 ~ bb1@2 ab1 f1 ~ bb1!2 ~@2 bb1 ab1@2 f1 ~", AG: "bb1 bb1@2 ~ ab1 f1 ~ bb1 ~ bb1 ~ bb1 ab1@2 f1 ~",
  AH: "d2 ~ d2 ~ d2@3 d2 ~ d2 ~ d2 f2@2 a1@2", AI: "bb1 ~ bb1 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1 c2@2 bb1@2",
  AJ: "bb1 ~ bb1 ~ bb1@3 bb1 ~ bb1 ~ bb1 ab1@2 bb1@2", AK: "c2 ~ c2 ~ c2 ~@2 c2!2 ~ c2 ~ c2@2 bb1@2",
  AL: "d2 ~ d2 ~ d2@3 d2 ~ d2 ~ d2 eb2@2 a1@2", AM: "ab1 ~ ab1 ~ ab1@2 ~ ab1 ~ ab1 ~ ab1 d2@2 ab1@2",
  AN: "bb1 ~ bb1 ~ bb1@3 bb1 ~ bb1 ~ bb1 c2@2 bb1 ~", AO: "bb1 ~ bb1 ~ bb1@3 bb1 ~ bb1 ~ bb1 f1@2 bb1@2",
  AP: "bb1 ~ c2 ~ c2@2 ~ c2 ~ c2 ~ c2 bb1@2 c2@2", AQ: "bb1 ~ bb1 ~ ab1@2 f1 bb1 ~ bb1 ~ bb1 ab1@2 f1@2",
  AR: "bb1 ~@15", AS: "~@8 ab1 ~ ab1 ~ ab1@2 ~ ab1", AT: "~ ab1 ab1@2 ~ ab1@2 ~ bb1 ~ bb1 ~ bb1@3 bb1, ~@2 f1 ~@5",
  AU: "~ bb1 ~ bb1 ~ bb1@2 ~ bb1 ~ bb1 ~ bb1@2 ~ bb1, ~@2 ab1 ~@5", AV: "~ bb1@3 c2@2 bb1@2 c2 ~ c2 ~ c2@2 ~ c2",
  AW: "~ c2 c2@2 bb1@2 c2 ~ c2 ~ c2 ~ c2@3 c2", AX: "~ c2 ~@2 bb1@2 c2@2 c2 ~ c2 ~ c2@2 ~ c2, ~@3 c2@2 ~@11",
  AY: "~ c2!2 bb1@2 c2@2 bb1@2 ~ bb1@2 bb1@2 ~ bb1", AZ: "~ bb1 ~ g1@3 bb1@2 bb1 ~ bb1 ~ bb1@3 bb1, ~ bb1 ~@6",
  BA: "~ bb1 ~@2 g1@2 bb1@2 ab1 ~ ab1 ~ ab1@3 ab1, ~@3 bb1@2 ~@11", BB: "~ ab1 ~ ab1 f1@2 ab1@2 bb1 ~ bb1 ~ bb1@3 bb1",
  BC: "~ bb1 ~@2 g1@2 bb1 ~ bb1 ~ bb1 ~ bb1@2 ~ bb1, ~@3 bb1@2 ~@11", BD: "~ bb1 ~ bb1 c2@2 bb1@2 c2@2 c2 ~ c2@2 ~ c2",
  BE: "~ c2 ~ c2 bb1@2 c2 ~ c2 ~ c2 ~ c2@2 ~ c2", BF: "~ c2 ~@2 bb1@2 c2@2 c2 ~ c2 ~ c2@3 c2, ~@3 c2@2 ~@11",
  BG: "~ c2 ~ c2 ~ ab1@2 ~ bb1 ~ bb1 ~ bb1@2 ~ bb1, ~@2 bb1 ~@5", BH: "~ bb1 bb1@2 g1@2 f1@2 bb1 ~ bb1 ~ bb1@2 ~ bb1",
  BI: "~@8 ab1 ~ ab1 ~ ab1@3 ab1", BJ: "~ ab1 ~ ab1 f1@2 ab1@2 bb1 ~ bb1 ~ bb1@2 ~ bb1",
  BK: "~ bb1 ~ bb1 g1@2 f1@2 bb1 ~ bb1 ~ bb1@2 ~ bb1", BL: "~ bb1 ~ bb1 c2@2 bb1@2 c2 ~ c2 ~ c2@2 ~ c2",
  BM: "~ c2 ~@2 bb1@2 c2 ~ c2 ~ c2 ~ c2@3 c2, ~@3 c2@2 ~@11", BN: "~ c2!2 ~ bb1@2 c2@2 ab1 ~ ab1 ~ ab1@3 ab1",
  BO: "~ ab1 ~ bb1@2 ~ bb1@2 eb2 ~ eb2 ~ g2@2 bb2 eb2, ~@3 ab1 ~@12",
  BP: "~ eb2 ~ eb2 g2@2 bb2@2 eb2 ~ eb2 ~ g2@2 bb2 eb2", BQ: "~ eb2 ~ eb2 g2@2 bb2@2 eb2@2 ~@6",
})).s("gm_slap_bass_1").gain(0.43)

// other · brass section · "BRASS 1"
const brass_section = note(`<
  ~@27 A@2 B@2 ~@2 C@2 A@2 B@2 ~@2 D@3 E@2 F@2 G H@3 ~@19 I ~ J ~@3 K@2 L ~ J ~@3 M ~@2 N ~ O P ~@3 Q
>`.pickRestart({
  A: "[~@10 [f4,f5] ~ [f4,f5]@2 [eb4,eb5] [f4,f5]@3 [g4,g5]@2 ~@12]/2", // F Eb F G
  B: "[~@10 [f4,f5] ~ [f4,f5]@2 [eb4,eb5] [f4,f5]@3 [eb4,eb5] ~@13]/2", C: "[bb4,bb5]/2", D: "[[bb4,bb5]@47 ~]/3",
  E: "[[f4,f5]@2 ~@2 [g4,g5]@2 [f4,f5] ~@3 [g4,g5]@2 ~@2 [f4,f5]@7 ~ f5@2 [bb4,bb5]@3 [g4,g5]@3 [f4,f5]@2, ~@22 f4 ~@9]/2", // F G F G F Bb G F
  F: "[[eb4,eb5]@2 ~@2 [f4,f5]@2 [eb4,eb5]@2 ~@2 [d4,d5] ~@3 [c4,c5]@7 [c4,c5] ~@2 [c4,c5]@2 [d4,d5]@3 [eb4,eb5]@2 ~]/2", // Eb F Eb D C D Eb
  G: "[g4,g5]@3 f5 f4 ~ [f4,f5]@6 [bb4,bb5]@4", // G F Bb
  H: "[[g4,g5]@4 [f4,f5] ~ [f4,f5]@6 eb4@2 [f4,f5]@19 ~@15, ~@12 eb5 ~@35]/3", // G F
  I: "~@2 [f4,f5] ~ [f4,f5]@2 [eb4,eb5] [f4,f5]@2 ~ g5@2 ~@4, ~@10 g4 ~@5", // F Eb F
  J: "~@2 [f4,f5] ~ [f4,f5]@2 [eb4,eb5] [f4,f5]@3 [eb4,eb5] ~@5", K: "[~ [bb3,bb4]@2 ~]/2",
  L: "~@2 [f4,f5] ~ [f4,f5]@2 [eb4,eb5] [f4,f5]@3 [g4,g5] ~@5", // F Eb F G
  M: "~@10 [g3,g4] ~@2 [bb3,bb4] ~ [eb4,eb5], ~@6 [g3,g4] ~", // G Bb Eb G
  N: "~@2 [f4,f5] ~ [f4,f5]@2 [eb4,eb5] [f4,f5]@2 g4 g5 ~@5", O: "~@10 [bb3,bb4] ~@3 [bb3,bb4] ~",
  P: "~@2 [bb3,bb4] ~@3 [bb3,bb4] ~@9", Q: "~@4 [f4,bb4,d5]@2 ~@2 [g4,bb4] ~@7, ~@4 eb5 ~@3",
})).s("gm_brass_section").gain(0.31)

// other · vibraphone
const vibraphone = note("<~ A B C D@3 E F ~@35 G@2 H@2 I J@3 ~@44>".pickRestart({
  A: "~@4 eb6@11 ~", B: "d6", C: "eb6 d6", D: "[c6 f5@5]/3", E: "bb5@7 ~@3 bb3@2 c4@2 eb4!2", F: "f4@11 ~@5",
  G: "[[f4,f5]@3 ~ [g4,g5]@2 ~ [f4,f5]@2 ~ [g4,g5]@3 ~ [f4,f5]@7 ~ [f4,f5] ~ [bb4,bb5]@2 ~ [g4,g5]@2 ~ [f4,f5] ~]/2", // F G F G F Bb G F
  H: "[[eb4,eb5]@3 ~ [f4,f5]@2 [eb4,eb5]@3 ~ [d4,d5]@3 ~ [c4,c5]@7 ~ [c4,c5] ~ [c4,c5]@3 [d4,d5]@2 ~ [eb4,eb5]@2]/2", // Eb F Eb D C D Eb
  I: "[g4,g5]@3 ~ [f4,f5] ~ [f4,f5]@6 ~ [bb4,bb5]@3", // G F Bb
  J: "[[g4,g5]@4 [f4,f5] ~ [f4,f5]@6 [eb4,eb5] ~ [f4,f5]@21 ~@13]/3", // G F Eb F
})).s("gm_vibraphone").gain(0.18)

// other · pad new age · "FANTASIA"
const pad_new_age = note("<A B C D E F G H ~@16 I@3 ~@16 J K@2 L@2 M N@3 ~@15 I@3 ~@26>".pickRestart({
  A: "~@2 [g4,g5] ~ [g4,g5] [bb4,bb5] ~@2 [eb5,eb6]@4 [d5,d6]@4", B: "[f5,f6] [c5,c6]",
  C: "~@4 [d5,d6]@2 [eb5,eb6]@2 [d5,d6]@5 [c5,c6]@2 ~", D: "[bb4,bb5]@15 ~",
  E: "~@2 [eb4,eb5] ~ [eb4,eb5]@2 [g4,g5] ~ [c5,c6]@6 [bb4,bb5] ~", F: "[bb4,bb5]@4 [f4,f5]@3 ~",
  G: "[c5,c6] ~ [c5,c6]@2 ~@2 [c5,c6] ~ [c5,c6]@2 ~ [d5,d6]@2 ~ [eb5,eb6]@2", H: "[d4,d6]",
  I: "[~@17 bb5@18 ~@13, ~@7 bb4@10 ~@7, ~@15 d5@19 ~@14, ~@16 f5@19 ~@13]/3",
  J: "~@2 [g4,g5] ~ g4@2 [bb4,bb5]@2 [eb5,eb6]@4 [d5,d6]@3 ~, ~@4 g5 ~@11", // G Bb Eb D
  K: "[[f4,f5]@2 ~@2 [g4,g5]@2 f4@2 ~@2 [g4,g5]@2 ~@2 [f4,f5]@6 ~ f4 f5 ~ [bb4,bb5]@2 ~ [g4,g5]@2 ~ [f4,f5] ~, ~@6 f5 ~@25]/2", // F G F Bb G F
  L: "[[eb4,eb5]@2 ~@2 f5@2 [eb4,eb5] ~@3 [d4,d5]@2 ~@2 [c4,c5]@7 ~ [c4,c5] ~ [c4,c5]@3 [d4,d5]@2 ~ [eb4,eb5]@2, ~@4 f4 ~@27]/2", // Eb D C D Eb
  M: "[g4,g5]@3 ~ [f4,f5] ~ [f4,f5]@5 ~ [bb4,bb5]@4", // G F Bb
  N: "[[g4,g5]@3 ~ [f4,f5] ~ [f4,f5]@6 [eb4,eb5] ~ [f4,f5]@22 ~@12]/3", // G F Eb F
})).s("gm_pad_new_age").gain(0.24)

// chords · electric guitar muted · "+FUNK GTR"
const electric_guitar_muted = note(`<
  ~ A@3 B A C A D E F E@3 G H E@6 I J K L ~ A M A@3 N A O A P A@3 B A Q R A B S T U A Q@2 V E@5 G E@6 W E@2 X ~ Y Z AA
  AB A AC AD E AE C A C A@3 AF ~ AG A AB AH@2 AI AJ AK AL
>`.pickRestart({
  A: "~@2 [c4,eb4] ~@3 [c4,eb4] ~@3 [c4,eb4] ~@3 [c4,eb4] ~", // Cm
  B: "~@2 [c4,eb4] ~@3 [c4,eb4] ~ [c4,f4]@2 [c4,eb4] ~ [c4,f4] ~ [c4,eb4] ~", // Cm F5 Cm F5 Cm
  C: "~@2 [c4,eb4] ~@3 [c4,eb4] ~ [c4,f4]@2 eb4 ~ [c4,f4]@2 [c4,eb4] ~", D: "~@2 [c4,eb4] ~@3 [c4,eb4] ~ [c4,f4]@6 ~@2",
  E: "~@2 [g3,bb3] ~@3 [g3,bb3] ~@3 [g3,bb3] ~@3 [g3,bb3] ~", F: "~@2 [g3,bb3] ~@3 bb3 g3 ~@2 [g3,bb3] ~@3 [g3,bb3] ~",
  G: "~@2 [g3,bb3] ~@3 [g3,bb3] ~@3 [g3,bb3] ~@3 [g3,bb3]@2", H: "~@2 bb3!2 eb3 ~ bb3 ~@2 bb3 ~ bb3 eb3 ~ bb3 ~",
  I: "~@2 [g3,c4] ~ [g3,bb3] ~ [g3,c4] ~@3 [g3,bb3] ~@3 [g3,bb3] ~", // C5 Gm C5 Gm
  J: "~@2 [g3,bb3] ~@3 [g3,bb3] ~@3 [g3,c4] ~ [g3,bb3] ~ [g3,c4]@2", // Gm C5 Gm C5
  K: "~@2 [g3,bb3] ~@4 [g3,bb3] ~@2 bb3 g3 ~@2 [g3,bb3] ~", L: "~@2 [g3,bb3] ~@3 [g3,bb3] ~@9",
  M: "[c4,f4]@2 [c4,eb4] ~ [c4,f4]@2 [c4,eb4] ~@3 [c4,eb4] ~@3 [c4,eb4] ~", // F5 Cm F5 Cm
  N: "~@2 [c4,eb4] ~@3 [c4,eb4] ~@3 [c4,eb4] ~@2 f4 eb4 ~, ~@13 c4@3", // Cm
  O: "~@2 [c4,eb4] ~@3 [c4,eb4] ~ [c4,f4]@2 [c4,eb4] ~ [c4,f4]@2 ~@2", // Cm F5 Cm F5
  P: "~@2 [c4,eb4] ~@3 [c4,eb4] ~ [c4,f4]@2 [c4,eb4] ~ [c4,f4]@2 eb4 ~", // Cm F5 Cm F5
  Q: "~@2 [c4,f4] ~@3 [c4,f4] ~@3 [c4,f4] ~@3 [c4,f4] ~", // F5
  R: "~@2 [c4,f4] ~@3 [c4,f4] ~ [c4,gb4] ~@2 [c4,f4] gb4 c4 [c4,f4] ~", // F5 Cdim F5
  S: "[eb4,gb4]@3 ~ [c4,f4]@2 ~@2 [c4,eb4] ~ [bb3,c4] ~@5, c4 ~@15", // Ebm F5 Cm Bbsus2
  T: "[g3,bb3] ~ [g3,c4] ~@3 [g3,c4] ~@3 [g3,c4] ~@3 [g3,c4] ~", U: "~@2 [g3,c4] ~@3 [g3,c4] ~@3 [g3,c4] ~@3 [g3,c4] ~",
  V: "~@14 [g3,bb3] ~", W: "~@2 [g3,bb3] ~@3 [g3,bb3] ~@3 [g3,c4] ~ [g3,bb3] ~ [g3,c4] ~",
  X: "~@2 bb3 g3 ~@2 [g3,bb3] ~@3 [g3,bb3] ~@3 [g3,bb3] ~", Y: "~@12 [c4,d4,eb4] ~@3",
  Z: "[c4,f4]@2 eb4 ~@3 c4@2 [eb4,gb4]@2 ~@2 f4 ~@3, ~@6 eb4 ~@3 c4@4 ~@2", // F5 Ebm
  AA: "[c4,eb4]@2 c4 ~ [c4,eb4] ~ c4 ~@3 [c4,eb4] ~@3 [c4,eb4] ~", // Cm
  AB: "[c4,f4]@2 eb4 ~ [c4,f4]@2 [c4,eb4] ~@3 [c4,eb4] ~@3 [c4,eb4] ~", // F5 Cm
  AC: "~@2 [c4,eb4] ~@3 [c4,eb4] ~ [c4,eb4,gb4]@2 ~@2 [c4,f4]@2 ~@2", AD: "eb4@2 c4 ~ bb3 ~@5 [g3,bb3] ~@3 [g3,bb3] ~",
  AE: "[g3,c4] ~ bb3 ~ c4@2 bb3 ~@3 [c4,eb4] ~@3 [c4,eb4] ~, ~@2 g3@5 ~@9", AF: "~@2 [c4,eb4] ~@3 [c4,eb4] ~@9",
  AG: "~@14 [c4,eb4] ~", // Cm
  AH: "[~@2 [c4,eb4] ~@3 [c4,eb4] ~@3 [c4,eb4] ~@3 eb4 ~ f4@2 eb4 ~ [c4,f4]@2 eb4 ~ [c4,gb4]@2 ~@2 [c4,f4]@3 ~, ~@7 c4@3 ~@6]/2", // Cm F5 Cdim F5
  AI: "eb4@2 c4@2 bb3 ~@3 [g3,bb3]@2 [g3,c4] ~ bb3 g3 [g3,c4]@2", // Gm C5
  AJ: "~@2 [g3,bb3] ~ [g3,c4]@2 ~@2 [g3,c4] ~@3 [g3,c4] ~@3", // Gm C5
  AK: "[g3,bb3] ~ [g3,c4] ~ [g3,bb3] ~ [g3,c4] ~ [g3,bb3] ~@3 [g3,bb3] ~@3", // Gm C5 Gm C5 Gm
  AL: "[g3,bb3] ~@3 [g3,bb3] ~@3 [bb3,eb4] ~@7", // Gm Eb5
})).s("gm_electric_guitar_muted").gain(0.21).pan(0.4)

// other · synth drum
const synth_drum = note("<A ~@7 B ~@16 A ~@8 C ~@8 C ~@7 C ~@15 D E ~@8 F G ~@6 H ~@10>".pickRestart({
  A: "~@2 d4!3 ~ d4 ~ b3 ~ b3 ~ a3 ~ a3 g3", B: "~@6 d4 ~ b3 ~ b3 ~ a3 ~ a3 g3", C: "~@2 d4 ~ b3 ~ b3 ~ a3 ~ a3 g3 ~@4",
  D: "~@14 d4!2", E: "d4 ~ d4 ~ b3 ~ b3 ~ a3 ~ a3 g3 ~@4", F: "~@10 d4 ~ b3 ~ b3 ~", G: "a3 ~ a3 g3 ~@12",
  H: "~@4 d4 ~ b3 ~ b3 ~ a3 ~@5",
})).s("gm_synth_drum").gain(0.57)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~ A B C D E@2 F@2 G D H I G J K G L M N G J K O P@3 N Q G L E R F@2 N S C L T O N U@2 N S G L V N U@2 W L H N G J X C
  L H N C Y K E Z@3 AA AB@8 AC@7 ~ AD@6 AE@3
>`.pickRestart({
  A: "[eb4,ab4,c5]", B: "[f4,bb4,d5]", C: "[eb4,g4,bb4]@7 ~", D: "[eb4,g4,c5]", E: "[f4,ab4,c5]@15 ~",
  F: "[[f4,bb4,d5]@31 ~]/2", G: "[eb4,g4,bb4]@15 ~", H: "[d4,g4,bb4]@15 ~", I: "[eb4,c5], ab4@7 ~",
  J: "[c4,f4,ab4]@15 ~", K: "[d4,f4,bb4]@7 ~", L: "[eb4,g4,c5]@15 ~", M: "[d4,g4,bb4]@7 ~", N: "[eb4,ab4,c5]@15 ~",
  O: "[f4,ab4,c5]@7 ~", P: "[[f4,bb4,d5]@11 ~@5]/3", Q: "[f4,bb4,d5]@7 ~", R: "[eb4,ab4,c5]@7 ~", S: "[f4,bb4,d5]@15 ~",
  T: "[f4,ab4,c5]", U: "[f4,bb4,d5]/2", V: "[f4,ab4,c5], g4 ~@15", W: "[eb4,g4,bb4]", X: "[d4,f4,bb4]@15 ~",
  Y: "[c4,f4,ab4]@7 ~", Z: "[[f4,bb4,d5]@17 ~@7]/3", AA: "~ [eb4,ab4,c5]",
  AB: "[~@8 [f4,bb4,d5]@15 ~ [eb4,g4,bb4]@15 ~ [eb4,g4,c5]@15 ~ [f4,ab4,c5]@15 ~ [eb4,ab4,c5]@15 ~ [f4,bb4,d5]@31 ~ [eb4,ab4,c5]@8]/8", // Bb Eb Cm Fm Ab Bb Ab
  AC: "[~@8 [f4,bb4,d5]@14 ~@2 [eb4,g4,bb4]@15 ~ [eb4,g4,c5]@15 ~ [f4,ab4,c5]@15 ~ [f4,ab4,c5]@15 ~ [f4,bb4,d5]@23 ~]/7", // Bb Eb Cm Fm Bb
  AD: "[~@8 [eb4,ab4,c5]@15 ~ [f4,bb4,d5]@15 ~ [eb4,g4,bb4]@14 ~@2 [eb4,g4,c5]@15 ~ [f4,ab4,c5]@15 ~ [eb4,ab4,c5]@7 ~]/6", // Ab Bb Eb Cm Fm Ab
  AE: "[[f4,bb4,d5]@7 ~ [g4,bb4,eb5]@27 ~ [f4,bb4,d5]@3 ~ [g4,bb4,eb5]@2 ~@6]/3", // Bb Eb Bb Eb
})).s("gm_synth_strings_1").gain(0.14)

// chords · pad poly · "POLYSYNTH"
const pad_poly = note(`<
  ~ A B C D E@2 B@2 F G H I F J K F G H L M J K J K@2 ~ A B N O E A P@2 A B N O E@2 A Q@2 A B N O E A Q@2 F G H R F J K
  F G H I F J K J K@2 ~ S T@8 U@7 ~ V@6 W@3
>`.pickRestart({
  A: "[eb4,ab4,c5]@15 ~", B: "[f4,bb4,d5]@15 ~", C: "[g4,bb4,eb5]@15 ~", D: "[g4,c5,eb5]@15 ~", E: "[f4,ab4,c5]@15 ~",
  F: "~@2 [g4,bb4,eb5]!2 ~@2 [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~", // Eb
  G: "~@2 [g4,c5,eb5]!2 ~@2 [g4,c5,eb5] ~@3 [g4,c5,eb5] ~@3 [g4,c5,eb5] ~", // Cm
  H: "~@2 [g4,bb4,d5]!2 ~@2 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~", // Gm
  I: "~@2 [ab4,c5,eb5]!2 ~@2 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~", // Ab
  J: "~@2 [f4,ab4,c5]!2 ~@2 [f4,ab4,c5] ~@3 [f4,ab4,c5] ~@3 [f4,ab4,c5] ~", // Fm
  K: "~@2 [f4,bb4,d5]!2 ~@2 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~", // Bb
  L: "~@2 [ab4,c5,eb5]!2 ~ eb5 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~", // Ab
  M: "~@2 [g4,bb4,eb5]!2 ~@2 [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~ bb4 ~ [g4,bb4,eb5] ~", N: "[eb4,g4,bb4]@15 ~",
  O: "[eb4,g4,c5]@15 ~", P: "[f4,bb4,d5]/2", Q: "[[f4,bb4,d5]@31 ~]/2",
  R: "~@2 [ab4,b4,c5,eb5] [ab4,c5,eb5] ~@2 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~@3 [ab4,c5,eb5] ~", S: "~ [eb4,ab4,c5]",
  T: "[~@8 [f4,bb4,d5]@15 ~ [eb4,g4,bb4]@15 ~ [eb4,g4,c5]@15 ~ [f4,ab4,c5]@15 ~ [eb4,ab4,c5]@15 ~ [f4,bb4,d5]@15 ~ [f4,bb4,d5]@15 ~ [eb4,ab4,c5]@8]/8", // Bb Eb Cm Fm Ab Bb Ab
  U: "[~@8 [f4,bb4,d5]@16 [eb4,g4,bb4]@15 ~ [eb4,g4,c5]@15 ~ [f4,ab4,c5]@15 ~ [f4,ab4,c5]@15 ~ [f4,bb4,d5]@22 ~@2]/7", // Bb Eb Cm Fm Bb
  V: "[~@10 [eb4,ab4,c5]@13 ~ [f4,bb4,d5]@15 ~ [eb4,g4,bb4]@15 ~ [eb4,g4,c5]@15 ~ [f4,ab4,c5]@15 ~ [eb4,ab4,c5]@7 ~]/6", // Ab Bb Eb Cm Fm Ab
  W: "[[f4,bb4,d5]@7 ~ [g4,bb4,eb5]@26 ~@2 [f4,bb4,d5]@2 ~@2 [g4,bb4,eb5] bb4 eb5 ~@5]/3", // Bb Eb Bb Eb
})).s("gm_pad_poly").gain(0.21)

// other · pad new age · "FANTASIA"
const pad_new_age_2 = note(`<
  ~@14 A B ~@5 C D E F ~@2 G H I J K L ~@2 I L I M K N@2 ~@2 G H G O K N@2 ~@6 C B ~@5 C P E F ~@3 Q R S@2 T@4 U@2 V@2
  W@2 ~@3 Q R X@2 Y@2 ~@2
>`.pickRestart({
  A: "f5@7 ~ c6@8", B: "bb5@7 ~", C: "f5 c6", D: "bb5@3 ~", E: "c6 f6", F: "bb5@15 ~", G: "eb6@8 d6@7 ~", H: "f6@15 ~",
  I: "eb6 d6", J: "c6, d6 ~@15", K: "f6 g6", L: "f6", M: "c6", N: "[f6@9 ~@7]/2", O: "c6@15 ~", P: "bb5@11 ~@5",
  Q: "d6 c6", R: "f6 eb6", S: "[d6@8 c6@15 ~ f6@8]/2", T: "[g6@8 f6@41 ~@7 eb6@8]/4", U: "[d6 f6@2 eb6]/2",
  V: "[d6 c6@2 f6]/2", W: "[g6@8 f6@19 ~@5]/2", X: "[d6@4 c6@7 ~ f6@4]/2", Y: "[g6@8 f6@15 ~@9]/2",
})).s("gm_pad_new_age").gain(0.16).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~ A@25 ~ A@42 ~ B A@15 ~ B A@7 C>".pickRestart({
  A: "x!4", B: "~@2 x!2", C: "x!3 ~",
})).gain(0.69)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<A ~@7 B ~@16 A ~@8 B ~@8 C ~@7 B ~@16 A ~@8 D E ~@6 F ~@10>".pickRestart({
  A: "~@2 x!3 ~ x ~ x ~ x ~ x ~ x!2", B: "~@6 x ~ x ~ x ~ x ~ x!2", C: "~@6 x ~ x ~ x ~@3 x!2", D: "~@7 x",
  E: "x ~ x ~@3 x!2 ~@8", F: "~@4 x!4",
})).gain(0.14)
// … 30 more lines

More by Engelbert Humperdinck