Strudelify

No Matter What

Boyzone

KeyA majorTempo93 bpm
0:00/0:00
// No Matter What — Boyzone
// 93 bpm, 2/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 8 "tk8" acoustic guitar nylon (copy of ch 9 "tk9" acoustic guitar nylon, 0.25 beats late)
// note: Full arrangement: all 211 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(93/2)

// 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 · epiano1 · "tk1"
const epiano1 = note(`<
  ~@49 A@8 B C@2 D@5 E@3 ~@2 F@2 G@4 H@4 I@3 ~@3 F@2 G@4 H@4 I@3 J@6 B C@2 K@6 ~@4 L@2 M@4 N@4 O@3 ~@3 L@2 M@4 N@4 O@3
  P@6 Q R@2 S@6 ~ P@6 T U@7 V@2 W@4 X Y@3 Z@7 AA@5 AB@4 AC@6 ~@2
>`.pickRestart({
  A: "[~@4 [e4,c#5]@4 [d4,b4]@4 [c#4,a4]@32 ~@4 g4@28 c#4@3 ~ [d4,f#4]@44 ~@4, ~@44 c#4@31 ~@53, ~@48 a3@77 ~@3]/8", // C#m G F#m D
  B: "[a3,d4,f#4]@6 ~@2 [a3,c#4,e4]@7 ~", C: "[[b3,d4,f#4]@29 ~@3]/2",
  D: "[a3@12 g#3@20 a3@12 [g#3,b3]@19 ~ [a3,c#4]@11 ~@5, e4@15 ~, b3@33 ~@47]/5", // G#m A
  E: "[~ [e4,c#5] [d4,b4] [c#4,a4]@9]/3", F: "[c#4,a4]/2", G: "[~ f#4, [d4,b4]]/4", H: "[a4@12 g#4@19 ~, e4@15 ~]/2",
  I: "[[c#4,e4,a4]@19 ~ [e4,c#5]@4 [d4,b4]@4 [c#4,a4]@13 ~@7]/3", // A C#m G F#m
  J: "[~@16 g4@28 c#4@3 ~ [d4,f#4]@44 ~@4, ~@12 c#4@31 ~@53, ~@16 a3@77 ~@3]/6", // D
  K: "[a3@12 g#3@20 a3@12 [g#3,b3]@19 ~ [a3,c#4]@32, e4, b3@11 ~@21]/6", L: "[e4,c5]/2", M: "[~ a4, [f4,d5]]/4",
  N: "[c5@12 b4@19 ~, g4@15 ~]/2", O: "[[e4,g4,c5]@19 ~ [g4,e5]@4 [f4,d5]@4 [e4,c5]@13 ~@7]/3",
  P: "[~@16 a#4@28 e4@3 ~ [f4,a4]@44 ~@4, ~@12 e4@31 ~@53, ~@16 c4@77 ~@3]/6", Q: "[c4,f4,a4]@6 ~@2 [c4,e4,g4]@7 ~",
  R: "[[d4,f4,a4]@29 ~@3]/2", S: "[c4@12 b3@20 c4@12 [b3,d4]@19 ~ [c4,e4]@32, g4, d4@11 ~@21]/6",
  T: "[c4,f4,a4]@7 ~@2 [c4,e4,g4]@7", U: "[~@2 [d4,f4,a4]@32 ~@3 [b3,d4,g4]@35 [g3,c4,f4,a4]@34 ~@4 g3@2]/7",
  V: "[~@5 e4@2 ~@4 g3@2 [a2,a3,c4]@3, ~@2 c4@11 ~ d4@12 ~@6, ~@3 g3@8 ~@5, ~@9 c4@4 ~@3]/2", // Am
  W: "[~@2 a3@4 ~@16 g3@4 ~@28 g4@3 ~ [a3,g4,c5,e5]@6, ~@6 [g2,d4]@19 ~ c3@31 ~@7, ~@6 b3@12 b3@7 ~@5 g4@8 g4@12 c5@8 ~@6, ~@7 g3@4 ~@6 c5@4 [c4,e5]@8 ~@3, ~@23 d5@6 ~@3]/4", // Am7 G5 C
  X: "~ g4@2 [g3,b4,d5]@4 g4, ~@6 g4@7 ~@3", // G
  Y: "[~@6 g3@4 ~@28 c4@3 ~ [a3,e4,a4,c5]@6, ~@2 b4@8 [c3,e4]@31 ~@7, ~@7 c4@8 c4@4 ~@5, ~@11 g4@10 ~@3, ~@17 c5@4 ~@3]/3", // Am C
  Z: "[~@6 d4@8 ~@8 g3@4 ~@28 c4@4 [a3,c5,e5]@12 ~@8 g4@4 b4@4 g3@4 ~@4 g4@7 ~@5 e5@4 d5@2, ~@3 [g4,b4]@10 g4@4 g4@17 ~@17 g4@5, ~@6 g3@16 ~@4 [c3,e5]@31 ~@13 [g3,b4]@13 ~@7 c4@22, ~@14 d4@12 ~@4 c4@16 c4@4 d5@7 ~@13 d5@19 ~ c5@18 ~@4, ~@18 d5@8 ~@12 g5@53 ~@21]/7", // Am G C G
  AA: "[~@5 [a3,c5,e5]@6 ~@6 g4@4 ~@14 c4@2 [a3,a4,e5]@3, ~@2 c5@7 ~@13 [b4,d5]@32 ~@4 e5@8 g4@8 ~@6, ~@3 g4@14 ~@6 f4@14 ~@3, ~@22 g3@18 ~@2 c3@33 ~@5, ~@15 d4@5 ~@7 c4@4 c5@6 ~@3]/5", // Am A5 Bm
  AB: "[~@6 g3@15 ~ g3@4 ~@28 c4@4 [a3,e5,c6]@6, ~@3 g4@16 ~@2 g5@8 ~@3, ~@3 [b4,d5]@10 [c3,c5]@16 ~@3, ~@15 c4@4 c4@4 c4@2 c6@4 ~@3, ~@17 e5@12 ~@3]/4", // Am Bm C
  AC: "[~@2 a3@4 ~@16 d4@4 ~@28 c4@3 ~ [a3,g4,c5,e5]@12 ~@12 [d4,g4]@4 g3@3 ~@7, ~@3 [g3,d5,b5]@10 c3@16 ~@6 [g3,b4,d5]@9 ~@4, ~@14 g4@12 g4@12 g4@19 ~@13 g4@12 ~@14, ~@18 [b4,g5]@8 e5@16 c5@15 ~@21 g2@10 ~@8, ~@30 c4@16 d5@4 e5@7 ~@39]/6", // Am7 G5 G Em
})).s("gm_epiano1").gain(0.29)

// bass · electric bass finger · "tk2"
const bass = note(`<
  ~@2 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L@2 M@2 N@2 O@2 P ~ Q@2 R@4 S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 AA AB AC@2
  AD@2 AE@2 AF@2 Q@2 R@4 S@2 T@2 U@2 V@2 W@2 Q@2 R@2 Q@2 S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 AA AB AC@2 AD@2 AE@2 AG@2 AH@2
  AI@2 AJ@2 AK AL AM@2 AN@2 AO@2 AP@2 AQ 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
  BR BS BT BU BV BG BH BI BJ BK BL BM BW BX@7 BY@2 BZ CA@3 CB@2 CC@4 CD@2 CE@2 BY@2 BZ CA@3 CB@2 CC@4 CD@2 CF@4
>`.pickRestart({
  A: "[a1@9 ~@3 a1@14 ~@2 e1@2 ~@2]/2", B: "[a1@9 ~@3 a1@14 ~@6]/2", C: "[d2@9 ~@3 d2@14 ~@2 a1 ~@3]/2",
  D: "[d1@9 ~@3 d1@16 ~@4]/2", E: "[d2@10 ~@2 d2@15 ~ a1 ~@3]/2", F: "[d1@9 ~@3 d1@14 ~@2 f#1@4]/2",
  G: "[b1@10 ~@2 b1@15 ~ f#1@3 ~]/2", H: "[a1@9 ~@3 a1@16 e1@4]/2", I: "[a1@8 ~@4 a1@13 ~@7]/2",
  J: "[a1@4 ~@2 a1@7 ~ e1 ~]/2", K: "[a1@8 ~@4 a1@17 ~@3]/2", L: "[a1@9 ~@3 a1@18 ~@2]/2", M: "[b1@8 ~@4 b1@17 ~@3]/2",
  N: "[e1@8 ~@4 e1@15 ~ b1@3 ~]/2", O: "[e1@4 ~@2 e1@7 ~ e1@2]/2", P: "a1@2 ~ a1", Q: "[a1@8 ~@4 a1@13 ~@3 e1 ~@3]/2",
  R: "[a1@9 ~@3 a1@13 ~@3 e1 ~@3]/2", S: "[a1@8 ~@4 a1@13 ~@3 a1 ~@3]/2", T: "[b1@8 ~@4 b1@13 ~@3 b1 ~@3]/2",
  U: "[e1@9 ~@3 e1@14 ~@2 b1 ~@3]/2", V: "[e1@9 ~@3 e1@13 ~@3 e1@2 ~@2]/2", W: "[a1@9 ~@3 a1@14 ~@2 e1@3 ~]/2",
  X: "[a1@9 ~@3 a1@12 g2@3 ~ g2@4]/2", Y: "[a1@9 ~@3 a1@12 b1@3 ~ c#2@4]/2", Z: "[d2@8 ~@4 d2@13 ~ a1@2 b1@4]/2",
  AA: "d2@11 ~ d1@3 ~", AB: "d2@8 c#2@7 ~", AC: "[b1@4 ~@2 b1@5 ~ b1@4]/2",
  AD: "[e1@9 ~@3 e1@8 f#2@2 g#2@2 f#2@4 e2@4]/2", AE: "[e1@9 ~@3 e1@8 e2@2 f#2@2 e2 ~ b1 ~ e1@3 ~]/2",
  AF: "[a1@8 ~@4 a1@10 ~@2 a1@3 ~ e1@3 ~]/2", AG: "[a1@2 ~ a1@2 e1 a1 b1]/2",
  AH: "[c2@8 ~@4 c2@8 g2@4 c3@2 g2 ~ g1@4]/2", AI: "[c2@4 ~@2 c2@4 d2 e2 d2@2 g1@2]/2",
  AJ: "[c2@4 ~@2 c2@6 g2@2 c3 g2]/2", AK: "d2@2 ~ d2", AL: "a1@4 c2@4 d2@4 a1@3 ~", AM: "[d2@2 ~ d2@2 d1 a1 d2]/2",
  AN: "[g1@9 ~@3 g1@8 b2@4 a2@4 g2@4]/2", AO: "[g1@9 ~@3 g1@15 ~ g1@4]/2", AP: "[c2@9 ~@3 c2@8 g1@4 a1@4 g1@3 ~]/2",
  AQ: "c2@9 ~@3 c2@2 ~@2", AR: "c2@8 g1@7 ~", AS: "c2@6 c2 ~@5 c2 ~@3", AT: "c2 e1 f1 g1", AU: "c2@5 ~ c2 ~@5 c2@4",
  AV: "c3@4 e1@4 g1@3 ~ c2@4", AW: "d2@5 ~ d2 ~@5 d2@3 ~", AX: "d2 a1 c2 a1", AY: "d2@9 ~@3 d2 ~@3",
  AZ: "d2@7 ~ a2@4 f2@4", BA: "g2@5 ~ g2 ~@5 g2@4", BB: "g1@3 ~ g1@7 ~ g1@4", BC: "g1@4 ~@2 g1@2 ~@4 g1 ~@3",
  BD: "g1@4 g2@4 g1@4 b1@3 ~", BE: "c2@4 ~@2 c2 ~@5 g1@4", BF: "c2@4 d2@4 e2@4 g1@3 ~", BG: "c1@5 ~ c1 ~@5 c1@4",
  BH: "c2 c1 g1 c2", BI: "e1@4 ~@2 e1 ~@5 e1 ~@3", BJ: "e1@2 g1 c2", BK: "f1@4 ~@2 f1 ~@5 f1 ~@3",
  BL: "f1@6 ~@2 f1@3 ~ c1@4", BM: "f1@4 ~@2 f1@3 ~@3 c2@4", BN: "f2@8 e2@7 ~", BO: "d2@6 d1@2 ~@4 d1 ~@3",
  BP: "d1@7 ~ d2@4 a1@4", BQ: "g1@4 ~@2 g1 ~@5 g1@4", BR: "g2@7 ~ g2@4 g1@2 g2@2", BS: "g1@9 ~@3 g1 ~@3",
  BT: "g1@3 ~ d2@2 g2@2 g1@4 b1@3 ~", BU: "c2@9 ~@3 c2 ~@3", BV: "c2 d2 e2 g2", BW: "f2@8 ~ e2@7",
  BX: "[~@2 d2@35 g1@35 g1@34 c1@6]/7", BY: "[~ c2@2 c1@3 ~ c1@2 c2@2 g1@2 a1@3]/2", BZ: "~@2 a1@4 g1@7 ~ g1@2",
  CA: "[~@2 a1@4 g1@4 c1@9 ~@3 c1@7 ~ c1@4 e1@3 ~ g1@4 a1@6]/3", CB: "[~ a1@2 g1@3 ~ g1@3 ~ g1@2 c1@3]/2",
  CC: "[~@2 c1 ~@3 c1@6 ~@2 c1@4 e1@4 g1@4 a1@12 g1@6 ~@2 g1@4 a1@4 g1@4 c1@6]/4",
  CD: "[~@2 g1@3 ~ c2@7 ~ g1@4 e1@4 g1@4 a1@6]/2", CE: "[~@2 a1@4 g1@6 ~@2 g1@4 a1@4 g1@3 ~ c1@6]/2",
  CF: "[~@2 a1@4 g1@6 ~@2 g1@4 a1@4 g1@3 ~ c1@32 ~@6]/4",
})).s("gm_electric_bass_finger").gain(0.31)

// bass · synth bass 1 · "tk3"
const bass_2 = note("<~@33 [f#2 ~ e2@2 e2@4] ~@177>").s("gm_synth_bass_1").gain(0.27)

// other · string ensemble 1 · "tk5"
const string_ensemble_1 = note(`<
  ~@82 A@6 B@4 C@4 D@2 E@4 F@4 G@2 C@4 H@2 I J K@3 J D@2 L M N@2 O P Q@2 R@6 D@2 S@2 T U@3 V W X@2 Y@2 Z@3 AA AB@2 AC@4
  AD W X@2 AE@5 AF AG@3 ~@3 AH@32 AI@3
>`.pickRestart({
  A: "[e4@11 a4]/6", B: "d5/4", C: "[e4,e5]/4", D: "[a4,a5]/2", E: "[a4,a5]/4", F: "[[d4,d5]@7 [e4,e5]]/4",
  G: "[f#4,f#5]/2", H: "[a3,a4]/2", I: "~ [c4,c5] [d4,d5] [e4,e5]", J: "[d4,d5] [c4,c5]",
  K: "[[e3,e4]@2 [g3,g4]@7 [c4,c5] [d4,d5] [e4,e5]]/3", L: "~ [d5,d6] [e5,e6] [f5,f6]", M: "[e5,e6] d6, ~@2 d5 ~",
  N: "[[a4,c6]@3 [g4,b5]@5]/2", O: "~ [b4,b5] [c5,c6] [d5,d6]", P: "[g5,g6]@3 [b4,b5]", Q: "[c5,c6]/2",
  R: "[[c4,c5]@11 [c5,c6]]/6", S: "[f4,f5]/2", T: "[d5,d6]", U: "[g4,g5]/3", V: "[c5,c6]",
  W: "[c5,c6] [d5,d6] [e5,e6] [g5,g6]", X: "[c6,c7]/2", Y: "[a#5,a#6]/2", Z: "[[a5,a6]@11 [f5,f6]]/3",
  AA: "[a5,a6] [g5,g6]", AB: "[f5,f6]/2", AC: "[[g5,g6]@15 [f5,f6]]/4", AD: "[e5,e6]", AE: "[[c6,c7]@19 ~]/5",
  AF: "[a5,a6]@9 [g5,g6]@7", AG: "[~@2 [f5,f6]@35 ~@11]/3", AH: "[~@5 [c6,c7]@32 [c6,c7]@27]/8",
  AI: "[~@5 [c6,c7]@16 ~@3]/3", // C
})).s("gm_string_ensemble_1").gain(0.22)

// other · acoustic guitar nylon · "tk9"
const acoustic_guitar_nylon = note("<~@114 A B C D E F G@3 H@2 I J K L@2 ~@81>".pickRestart({
  A: "~@2 c3@2 ~ g2@2 ~ c3@2 d3@2 ~ e3@2 ~", B: "g3@2 c4@2 ~ d4@3 e4@2 ~ g4@2 c5@2 ~", C: "d5@2 e5@5 ~@4 d5@2 c5@2 ~",
  D: "b4@2 ~ d5@2 c5@2 ~ g4@8", E: "~@10 f4 ~@2 e4@2 ~", F: "d4@3 c4@8 ~ d4@2 e4 ~",
  G: "[e4@2 ~@2 e4 f4 e4 ~ d4@20 ~@4 f5@6 ~@2 [g4,e5]@5 ~@3, ~@14 a4@5 ~@5]/3", // C
  H: "[[f4,d5]@5 ~@3 c5@5 ~ b4 c5, ~@12 e4@13 ~@7]/2", I: "b4 c5 b4@13 ~", J: "~@2 c4 d4@4 ~ g4@4 b4@4",
  K: "c5@3 ~ b4 c5 b4 a4@5 g4@3 ~", L: "[g4 a4@3 d4 e4@14 ~ d4@2 e4@2 d4 e4 d4 ~ c4@3 ~]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.56)

// other · synth drum · "tk11"
const synth_drum = note(`<
  ~@65 A ~@31 B ~@31 C ~@31 D ~@17 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2 E F ~@2
>`.pickRestart({
  A: "[a2,e3] ~@3 [f2,c3] ~@7 [c2,g2] ~@3", B: "~@4 [e3,b3] ~@3 [a2,e3] ~@3 [d#2,a#2] ~@3", C: "~@8 d#4 ~@3 b3 ~ e3 ~",
  D: "~@4 c#4 ~@3 a3 ~@3 f3 ~@3", E: "~@7 g3", F: "~@3 d3 ~@4",
})).s("gm_synth_drum").gain(0.32)

// chords · acoustic guitar steel · "tk12"
const acoustic_guitar_steel = note(`<
  ~@2 A@2 B@2 C@2 D@2 C@4 E@2 A@8 F@2 G@2 H@2 I@2 A@8 F@2 G@2 H@2 I@2 A@4 B@2 C@2 J K C@2 H@2 I@2 A@8 F@2 G@2 H@2 I@2
  A@8 F@2 G@2 H@2 I@2 A@4 B@2 C@2 J K C@2 H@2 I@2 A@2 L@6 M@2 N@2 O@2 P@2 L@8 M@2 N@2 O@2 P@2 L@4 Q@2 R@2 S T R@2 O@2
  P@2 L@4 Q@2 R@2 S U V@3 ~@3 W X Y Z AA X Y Z AA X Y Z AA X Y Z AA X Y Z AA X Y Z AA X Y Z AA X Y Z AB@3
>`.pickRestart({
  A: "[[a2,e3,a3,c#4]@8 [a2,e3,a3,c#4] ~@3 [a2,e3,a3,c#4]@12 [a2,e3,a3,c#4] ~@7]/2", // A
  B: "[[a2,e3,g3,c#4]@8 [a2,e3,g3,c#4] ~@3 [a2,e3,g3,c#4]@12 [a2,e3,g3,c#4] ~@7]/2", // A7
  C: "[[d3,f#3,a3,d4]@8 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4]@12 [d3,f#3,a3,d4] ~@7]/2", // D
  D: "[[d3,f#3,a3,d4]@8 [d3,f#3,a3,d4] ~@3 [d3,f#3,a3,d4]@12 [d3,f#3,a3,d4] ~@3 a2@4]/2", // D
  E: "[[b2,f#3,b3,d4]@8 [b2,f#3,b3,d4] ~@3 [b2,f#3,b3,d4]@12 [b2,f#3,b3,d4]@8]/2", // Bm
  F: "[[a2,f#3,b3,d4]@8 [a2,f#3,b3,d4] ~@3 [a2,f#3,b3,d4]@12 [a2,f#3,b3,d4]@8]/2", // Bm7
  G: "[[b2,f#3,b3,d4]@8 [b2,f#3,b3,d4] ~@3 [b2,f#3,b3,d4]@12 [b2,f#3,b3,d4] ~@7]/2", // Bm
  H: "[[e3,a3,b3,e4]@8 [e3,a3,b3,e4] ~@3 [e3,g#3,b3,e4]@12 [e3,g#3,b3,e4] ~@7]/2", // Esus4 E
  I: "[[e3,a3,b3,e4]@8 [e3,a3,b3,e4] ~@3 [e3,g#3,b3,e4]@12 [e3,g#3,b3,e4]@4 ~@4]/2", // Esus4 E
  J: "[d3,f#3,a3,d4]@8 [d3,f#3,a3,d4] ~@3 a3 ~@3", K: "[d3,f#3,a3,d4] [c#3,e3,a3,c#4]",
  L: "[[c3,g3,c4,e4]@8 [c3,g3,c4,e4] ~@3 [c3,g3,c4,e4]@12 [c3,g3,c4,e4] ~@7]/2", // C
  M: "[[d3,a3,d4,f4]@8 [d3,a3,d4,f4] ~@3 [d3,a3,d4,f4]@12 [d3,a3,d4,f4]@8]/2", // Dm
  N: "[[d3,a3,d4,f4]@8 [d3,a3,d4,f4] ~@3 [d3,a3,d4,f4]@12 [d3,a3,d4,f4] ~@7]/2", // Dm
  O: "[[g3,c4,d4,g4]@8 [g3,c4,d4,g4] ~@3 [g3,b3,d4,g4]@12 [g3,b3,d4,g4] ~@7]/2", // Gsus4 G
  P: "[[g3,c4,d4,g4]@8 [g3,c4,d4,g4] ~@3 [g3,b3,d4,g4]@12 [g3,b3,d4,g4]@4 ~@4]/2", // Gsus4 G
  Q: "[[c3,g3,a#3,e4]@8 [c3,g3,a#3,e4] ~@3 [c3,g3,a#3,e4]@12 [c3,g3,a#3,e4] ~@7]/2", // C7
  R: "[[f3,a3,c4,f4]@8 [f3,a3,c4,f4] ~@3 [f3,a3,c4,f4]@12 [f3,a3,c4,f4] ~@7]/2", // F
  S: "[f3,a3,c4,f4]@8 [f3,a3,c4,f4] ~@3 c4 ~@3", T: "[f3,a3,c4,f4] [e3,g3,c4,e4]",
  U: "[f3,a3,c4,f4]@8 ~ [e3,g3,c4,e4]@7", V: "[~@2 [f3,a3,c4,f4]@35 ~@11]/3", W: "~@11 e4@5, ~@5 [c3,g3,c4]@3",
  X: "~@2 [c3,g3,c4,e4] ~@3 [c3,g3,c4,e4]@10", Y: "~@2 [c3,g3,c4,e4] ~@8 e4@5, ~@5 [a2,g3,c4]@3",
  Z: "~@2 [a2,g3,c4,e4] ~@3 [d3,g3,b3,d4]@10", AA: "~@2 [d3,g3,b3,d4] ~@8 e4@5, ~@5 [c3,g3,c4]@3",
  AB: "[~@2 [d3,g3,b3,d4] ~@8 e4@32 ~@5, ~@5 [c3,g3,c4]@16 ~@3]/3", // G C5
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.4)

// other · recorder · "tk13"
const recorder = note(`<
  ~@2 A@2 B@2 C@2 D@2 E@2 C@2 F@2 C@2 ~@16 C@2 G@2 H@2 D@2 I@2 J@2 K@3 ~ C@2 A@2 C@2 D@2 E@2 J@2 G@2 C@2 L@4 A@2 E@2 M@2
  N@2 O@2 P@2 C@2 G@2 H@2 D@2 I@2 J@2 K@3 ~ C@2 A@2 C@2 D@2 E@2 J@2 G@2 C@2 ~@97
>`.pickRestart({
  A: "c#6/2", B: "e6/2", C: "a5/2", D: "d5/2", E: "d6/2", F: "[b5,f#6]/2", G: "e5/2", H: "a4/2", I: "[b5@7 f#5]/2",
  J: "[a5@3 g#5@5]/2", K: "e5/3", L: "e5/4", M: "[b5@23 ~ a5@8, f#6@31 ~]/2", N: "[a5@11 ~ g#5@19 ~]/2",
  O: "[e5@31 ~]/2", P: "[c#6@31 ~]/2",
})).s("gm_recorder").gain(0.05)

// chords · synth strings 1 · "tk14"
const synth_strings_1 = note(`<
  ~@34 A@6 B@4 C@4 D@2 E@4 F@3 G H@2 I@4 D@2 A@6 B@4 C@4 D@2 A@6 B@4 C@4 D@2 E@4 F@3 G H@2 I@4 D@2 J@6 K@4 L@4 M@2 J@6
  K@4 L@4 M@2 N@4 O@3 P Q@2 R@2 S@2 M@2 N@4 O@3 P T@2 U@7 V@24 W@8
>`.pickRestart({
  A: "[e3,a3,c#4]/6", B: "[f#3,b3,d4]/4", C: "[a3@3 g#3@5 a3@3 g#3@5, [b3,e4]]/4", D: "[e3,a3,c#4]/2",
  E: "[a3 g3, [e3,c#4]]/4", F: "[f#3,a3,d4]/3", G: "[a3,d4,f#4] [a3,c#4,e4]", H: "[f#3,b3,d4]/2",
  I: "[[f#3,a3,d4] [e3,g#3,b3]@2 ~]/2", J: "[g3,c4,e4]/6", K: "[a3,d4,f4]/4", L: "[c4@3 b3@5 c4@3 b3@5, [d4,g4]]/4",
  M: "[g3,c4,e4]/2", N: "[c4 a#3, [g3,e4]]/4", O: "[a3,c4,f4]/3", P: "[c4,f4,a4] [c4,e4,g4]", Q: "[a3,d4,f4]/2",
  R: "[c4@3 b3@5, [d4,g4]]/2", S: "[c4@12 b3@19 ~, [d4,g4]]/2", T: "[~ [a3,d4,f4]@15]/2",
  U: "[~@4 [g3,d4,g4]@35 [a3,c4,f4]@34 ~ g3@32 a3@6, ~@37 [c4,e4]@19]/7", // G5 F C
  V: "[~@3 [g3,b3,d4]@10 g3@16 a3@6 [g3,b3,d4]@10 g3@16 a3@3, ~@13 [c4,e4]@22 ~@10 [c4,e4]@19]/8", // G C
  W: "[~@3 [g3,b3,d4]@10 g3@16 a3@6 [g3,b3,d4]@10 [g3,c4,e4]@16 ~@3, ~@13 [c4,e4]@22 ~@29]/8", // G C
})).s("gm_synth_strings_1").gain(0.17)

// drums · rim
const rim = s("rim").struct("<[x!2]!2 ~@64 [~ x]!64 ~@47 [~ x ~@6]!32 ~@2>").gain(0.52)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~@50 B ~ B ~ B ~
  B ~ B ~ B ~ B ~@3 B ~ B ~ B ~ B ~ B ~ B ~ B ~@4
>`.pickRestart({
  A: "~@3 x", B: "~@3 x ~@4",
})).gain(0.31)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@64 ~@33 A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ C A@23 D A@7 E A@7 ~@9 F ~ F ~ F ~ F ~ F ~ F
  ~ F ~ G ~ F ~ F ~ F ~ F ~ F ~ F ~ F ~ G ~@2
>`.pickRestart({
  A: "~ x", B: "~@4 x ~@2 x", C: "~@4 x ~ x!2", D: "x!2", E: "~ x!3", F: "~ x ~@6", G: "~ x ~ x!2 ~@3",
})).gain(0.52)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 B@33 ~ B ~ B ~ B ~
// … 107 more lines

More by Boyzone