Strudelify

It's Alright

East 17

KeyF minorTempo129 bpm
0:00/0:00
// It's Alright — East 17
// 129 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 150 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(129/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 · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~@36 A B A B A B A B C D E F C D E F C D E G C D E G H I J K H L J M N O N P N O N Q C D E F C D E F C D E G C D E G H
  I J K H L J M N O N P N O N Q N O N P N O N R C D E G C D E G A B A B A B A B N O N P N O N Q ~@10
>`.pickRestart({
  A: "f2", B: "c2!2 ~@6", C: "f1@3 ~ f1@2 ~ f1@2 ~ f1@3 ~ f1@2", D: "eb1@3 ~ eb1@2 ~ eb1@2 ~ eb1@3 ~ eb1@2",
  E: "db1@3 ~ db1@2 ~ db1@2 ~ db1@3 ~ db1@2", F: "c1@3 ~ c1@2 ~ f1@2 ~ f1@3 ~ eb1@2",
  G: "eb1@3 ~ eb1@2 ~ eb1@2 ~ f1@2 f1@2 eb1@2", H: "f1@2 ~ f1@2 ~ f1@2 ab1@2 ~ ab1@2 ~ ab1@2",
  I: "g1@2 ~ g1@2 ~ g1@2 eb1@2 ~ eb1@2 ~ eb1@2", J: "db1@2 ~ db1@2 ~ db1@2 f1@2 ~ f1@2 ~ f1@2",
  K: "c1@2 ~ c1@2 ~ eb1 ~ f1 ~ f1 ~ eb1 ~ c1 ~", L: "g1@2 ~ g1@2 ~ g1@2 eb1 ~ eb1 ~ f1@2 eb1 ~",
  M: "c1 ~ c1 ~ eb1 ~ f1 ~ ab1 ~ ab1 ~ f1 ~ eb1 ~", N: "f1@3 ~ f1@2 eb1@2 f1@3 ~ f1@2 eb1 ~",
  O: "c1@3 ~ c1@2 ~ c1!2 ~ c1@2 eb1@2 c1@2", P: "c1@3 ~ c1@2 ~ c1 eb1 ~ eb1@2 eb1@2 c1@2", Q: "c1@3 ~@13",
  R: "c1!2 eb1 f1 ab1 g1 f1 eb1",
})).s("gm_synth_bass_2").gain(0.57)

// bass · cello
const bass_2 = note("<~@3 A B C D E@3 F G@2 H F G@2 H I J K H F L@2 ~ K H F H K H F H M@2 ~@111 N@2 ~>".pickRestart({
  A: "c3 f3", B: "f3", C: "eb3", D: "db3", E: "[c3 f2@2 ~ eb2@2, ~@3 f2@2 ~]/3", F: "db2", G: "[c2 f2@3]/2", H: "eb2",
  I: "ab2@3 bb2", J: "c3", K: "f2", L: "[eb2 f2@3]/2", M: "f2/2", N: "[c3 f2@3]/2",
})).s("gm_cello").gain(0.22).pan(0.4)

// other · lead 8 bass lead · "BASS&LEAD"
const lead_8_bass_lead = note(`<
  ~@8 A B C D E F G H I J@3 K@3 L@2 ~ M N M O P@3 O ~@2 Q R S R Q T S U V W X Y V W Z AA AB AC@2 AD@2 AE AF AG@2 AH AI
  AJ AK@3 AJ Q R S R Q T S U V W X Y V W Z AA AB AC@2 AD@2 AE AF AG@2 AH AI AJ AK@3 AJ Q R S R Q T S U ~@8 AB AC@2 AD@2
  AE AF AL@2 R S R Q T S U Q R S R Q T S U ~@7 AM@2 ~
>`.pickRestart({
  A: "ab4 ~ ab4@3 ~ g4@4 f4@3 ~ f4 ~", B: "bb4@3 ~ ab4 ~ ab4@5 ~@5", C: "bb4 ~ bb4@3 ~ ab4@4 g4@3 ~ g4@2",
  D: "~@2 ab4 ~ ab4@2 f4 ~ f4@5 ~@3", E: "ab4 ~ ab4 ~ ab4 ~ ab4@3 ~ f4@3 ~ f4@2",
  F: "bb4 ~ bb4 ~ bb4 ~ bb4@3 ~ g4@3 ~ g4@2", G: "ab4 ~ ab4 ~ ab4 ~ ab4@3 ~ f4@3 ~ g4@2",
  H: "~@2 ab4 ~ ab4@2 f4 ~ f4@5 ~ f4@2", I: "~@2 f4@3 ~ f4@3 ~ ab4@3 ~ g4@2",
  J: "[~@2 g4@3 ~ g4@3 ~ g4@3 ~ ab4@4 ~@4 ab4@3 ~ ab4@3 ~ bb4@4 ab4@3 ~ g4@2 g4@2 f4@6]/3",
  K: "[~@2 f4@3 ~ f4@3 ~ f4@3 ~ g4@4 ~@4 g4 ~ g4 ~ g4@3 ~ ab4@5 ~ ab4 ~ ab4@2 bb4@2 ab4@4 b4@2]/3",
  L: "[bb4 ab4@2 f5@13]/2", M: "~@4 ab4@2 g4@4 f4@5 ~", N: "~@2 bb4 ab4@2 g4@2 ~", O: "~@2 eb4 ~ eb4@2 f4@2 ab4@4 f4@4",
  P: "[~@4 ab4@2 g4@4 f4@4 bb4@4 ab4@4 g4@4 ab4@4 f4@11 ~@7]/3", Q: "~@2 eb4 ~ eb4@2 f4 ~@3 eb4 ~ eb4@2 f4 ~",
  R: "eb4 ~ eb4!2 ~ eb4!2 ~ eb4 ~ eb4 ~ eb4@2 f4 ~", S: "~@2 eb4 ~ eb4@2 f4 ~@3 eb4 ~ eb4 ~ f4 ~",
  T: "eb4 ~ eb4!2 ~ eb4!2 ~ eb4 ~ eb4 ~ eb4 ~ f4 ~", U: "~@2 c4@2 eb4@2 f4@2 ab4@4 f4@3 ~",
  V: "~@2 f4@2 ab4 ~ ab4 ~ ab4 ~ ab4@3 ~ g4@2", W: "~@2 g4@2 bb4 ~ bb4 ~ bb4 ~ bb4@3 ~ ab4@2",
  X: "~@2 ab4@2 b4 ~ b4 ~ b4 ~ bb4@3 ~ bb4@2", Y: "~@2 eb4 ~ eb4@2 f4@2 ab4 ~ f4@2 eb4@2 f4@2",
  Z: "~@2 ab4 ~ b4@2 ab4@2 bb4@2 ab4@2 ~@4", AA: "~@2 eb4 ~ eb4@2 f4@2 ab4@2 f4 ~ eb4@2 f4 ~",
  AB: "~@2 f4@2 ~@2 f4@3 ~ f4@3 ~ g4@2", AC: "[~@2 g4@3 ~ g4@3 ~ ab4@3 ~ ab4@4 ~@6 ab4 ~ ab4@3 ~ bb4@2]/2",
  AD: "[~@2 ab4@3 ~ g4@3 ~ ab4@3 ~ f4@4 f4@3 ~ f4@3 ~ f4@3 ~ g4@2]/2", AE: "~@2 g4@3 ~ g4@3 ~ g4@3 ~ ab4@2",
  AF: "~@4 ab4 ~ ab4 ~ bb4@2 ab4@4 b4 ~", AG: "[bb4 ab4@2 ~@7 ab4 g4@2 f4@2 ~, ~@3 f5@8 ~@5]/2",
  AH: "~@4 bb4@2 ab4@3 ~ g4@4 ~@2", AI: "~@2 ab4 g4@2 f4@2 ~", AJ: "~@2 eb4 ~ eb4@2 f4 ~ ab4@4 f4@3 ~",
  AK: "[~@2 ab4 g4@2 f4@2 bb4@2 ab4@2 g4@2 ab4@2 f4@3 ~@6]/3",
  AL: "[bb4@2 ab4@4 ~@12 eb4 ~ eb4@2 f4 ~@3 eb4 ~ eb4@2 f4 ~, ~@3 f5@8 ~@5]/2", AM: "[e4@3 e4@3 ab4@3 ~ f4@19 ~@3]/2",
})).s("gm_lead_8_bass_lead").gain(0.36)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@35 A B C B D B C B E ~@16 F ~@3 F ~@3 B G B G B G B H ~@16 F ~@3 F ~@3 B G B G B G B H ~@16 B C B D B C B I B G B G
  B G B J ~@10
>`.pickRestart({
  A: "~@14 [c3,f3]!2", B: "[c3,f3]@15 ~", C: "[g2,c3] ~ [g2,c3] ~@11 [c3,f3]!2", D: "[g2,c3] ~ [g2,c3] ~@9 [bb2,eb3]@4",
  E: "[g2,c3] ~ [g2,c3] ~@13", F: "[f2,c3]@3 ~ [f2,c3]@3 ~@9", G: "[g2,c3]@9 ~ [g2,c3]@2 [bb2,eb3]@2 [g2,c3]@2",
  H: "[g2,c3]@2 ~@6 [bb2,eb3]!2 [bb2,eb3]@2 [bb2,eb3]!2 [bb2,eb3]@2", // C5 Eb5
  I: "[g2,c3] ~ [g2,c3] ~@5 [bb2,eb3]!2 [bb2,eb3]@2 [bb2,eb3]!2 [bb2,eb3]@2", J: "[g2,c3] ~@7",
})).s("gm_distortion_guitar").gain(0.21).pan(0.3)

// chords · harpsichord · "HARPSICHRD"
const harpsichord = note(`<
  ~@4
  [~ ab3 ~ ab3 ~ ab3 ~ ab3, f3 c4 f3 c4]
  [~ g3 ~ g3 ~ g3 ~ g3, eb3 bb3 eb3 bb3]
  [~ ab3 ~ ab3 ~ ab3 ~ ab3, f3 db4 f3 db4]
  [~ g3 ~ g3 ~ ab3 ~ ab3, e3 c4 f3 c4]
  f4
  ~@141
>`).s("gm_harpsichord").gain(0.12).pan(0.6)

// chords · orchestral harp · "HARP"
const orchestral_harp = note(`<
  ~@44 A B C D A B C D E ~@15 F G F G F G F ~ A B C D A B C D E ~@15 F G F G F G F ~ H@8 E ~@15 F G F G F G F ~@11
>`.pickRestart({
  A: "f4 ~@3 ab4 ~ c5 ~@3 c5 ~@3 c5 ~", B: "eb5 ~@3 eb5 ~ bb4 ~@3 bb4 ~@3 bb4 ~",
  C: "c5 ~@3 c5 ~ ab4 ~@3 ab4 ~@3 ab4 ~", D: "g4 ~@3 g4 ~ f4 ~@3 f4 ~@3 eb4 ~", E: "f4 ~@15",
  F: "[ab4,c5] ~@3 [ab4,c5] ~@5 [ab4,c5] ~@3 [ab4,c5] ~", G: "~@7 [g4,bb4]!2 ~ [g4,bb4] ~@3 [g4,bb4] ~",
  H: "~@2 [eb5,ab5] ~@3 [eb5,ab5] ~@3 [eb5,ab5] ~@3 [eb5,ab5] ~", // Ab5
})).s("gm_orchestral_harp").gain(0.3).pan(0.7)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@5 A B C@2 A B C@2 A B D E F@4 G H I@2 ~ J K H K J K H K L@2 ~@24 M N O P M N O P Q R Q R Q R Q S ~@16 M N O P M N O
  P Q R Q R Q R Q S ~@24 Q R Q R Q R Q S ~@7 T@3
>`.pickRestart({
  A: "[bb3,eb4,g4]", B: "[ab3,db4,f4]", C: "[[e4,g4] ~ ab3@2, c4, ~ f4@3]/2", D: "[e4,g4] f4, c4", E: "[f3,ab3,c4,f4]",
  F: "[[eb3,g4]@4 ab3@4 bb4@2 ~ e4 ~@3 ab4, eb4@2 c3 [f3,f4], ~ c4@3, ~@8 e4@3 ~@5, ~@5 g4 ~@2]/4", // Eb F
  G: "[eb4,g4] eb4, [eb3,bb3]", H: "[db3,ab3,db4,f4]", I: "[[eb3,bb3,eb4,g4] [f3,c4,f4,a4]@3]/2", J: "[f3,c4,f4,ab4]",
  K: "[eb3,bb3,eb4,g4]", L: "[f3,c4,f4,c5]/2", M: "[ab3,c4]", N: "[g3,bb3]", O: "[f3,ab3]", P: "[eb3,g3]",
  Q: "[f2,f4,ab4,c5]", R: "[c2,eb4,g4,bb4]", S: "[c2,eb4,g4,bb4] ~@7", T: "[g3 f3@5, c4]/3",
})).s("gm_string_ensemble_2").gain(0.24).pan(0.4)

// chords · piano · "A.PIANO 2"
const piano = note("<A@2 B@4 C D E F G@3 H I J K@3 L M N@2 O@3 P Q R S T U@2 V W@2 ~@104 X@2 Y@4 C Z@3>".pickRestart({
  A: "[~@12 f3@3 ~@13 f4@4, f2@4 f4@2 g4 f3@2 f4@5 ~@3 bb2@5 ab4@2 [eb3,g4]@8, ~@2 c3@13 ~ [eb2,bb4]@16, ~@3 c4@12 [bb3,eb4]@4 eb3 bb3@12, ~@3 f3 ab4@11 ~ g4@5 eb4@11]/2", // Eb Eb5
  B: "[~@12 db2@3 ~@6 g4@2 ~@5 f3@2 f4 ~@3 f3@2 f3@2 ~@22 [eb2,f4]@3 ~, db2@4 f4@2 g4@2 db3@2 f4@9 f4@4 ~ f4@6 f3 f4 [ab4,c5] f5@14 bb3@16 ~, ~@2 ab2@13 ~ [c2,c3,g3,e4]@8 [f2,c4]@10 c5@2 ab4@2 [f3,f4]@2 [f2,c4]@2 f4@5 eb2@9 [eb3,g4]@7 ~, ~@3 ab3@12 ~@9 ab3@20 [f2,g4]@4 g4@6 ab4@9 ~, ~@3 db3 [db4,ab4]@12 ~@10 c3@20 ab4@2 [eb4,bb4]@15 ~]/4", // Ebsus2 Ab C F5 F F5 Eb Fsus2 …
  C: "~@3 db3, db2@7 db3@2 f4@6 ~, ~ db3 f4 g4@5, ~@3 [ab3,db4]@13, ~ ab4@3", // Db5
  D: "~@6 e4@2 ~ [f2,ab3,c4,f4]@7, [c2,c3] ~, e4@3 ~@5, ~@3 d4@5 ~@8", // Fm C
  E: "~@8 [f4,ab4]@7 ~, f2@15 ~, [c4,f4,ab4]@7 c4@8 ~, ~@4 f3@11 ~", // Fm
  F: "~@12 eb4@3 ~, eb2@15 ~, ~@4 eb3@11 ~, ~@7 g3@8 ~, ~@8 [bb3,f4]@7 ~", // Bb5
  G: "[~@12 db2@3 ~ [c2,c3,c4,e4]@7 ~@16 ab4 ~@4 [f2,f4]@3 ~, [db4,f4]@15 ~@9 [c4,f4]@14 f4@2 ~@8, db2@12 ~@11 f2@8 ~ f2@12 ~@4, ab3@10 ab3@5 g3@8 ~ ab3@12 ab3@4 [f3,g4]@7 ~, ~@8 db3@7 ~@22 c4@3 ~@8]/3", // C F Db F5 Fsus2
  H: "~@2 bb3@4 ~@6 eb2@3 ~, eb2@10 g4@5 ~, ~@2 eb4@13 ~, ~@2 g4@6 eb3@7 ~, ~@6 [bb3,f4]@9 ~", // Bb5
  I: "[db3,db4,ab4]@8 ~@4 [db2,db4,ab4]@3 ~, f4@15 ~, db2@10 bb4@5 ~, ~@8 db3@7 ~, ~@2 [db4,ab4] ~", // Db5
  J: "~@4 e4@3 ~ [f2,ab3,c4,f4]@8, [c2,c3,c4,g4]@7 ~@9", // Fm C5
  K: "[[c4,f4,ab4]@2 [c4,f4,ab4]@4 ~@6 f2@2 ~@14 eb2@2 ~@4 eb4@6 ~@4 [ab2,c5]@3 ~, f2@3 ~ eb2 eb2@2 ~ ab2@3 ~, ~@3 [c4,f4,ab4]@2 [c4,f4,ab4]@2 [eb4,g4,bb4]@2 [eb4,g4,bb4]@2 [eb4,g4,bb4]@2 [eb4,g4,bb4]@2 [eb4,ab4,c5]@2 c5@5 ~@2, ~@8 f3@6 ~@6 eb3@4 eb3@6 ~@4 ab4@8 ab4@5 ~, ~@40 [ab3,eb4]@7 ~]/3", // Fm Ab Fm Eb Ab Ab5
  L: "~@2 c5@2 bb4@2 ~@6 c3@2 e4 ~, c3@5 e4@2 ~, [e4,bb4,db5]@5 ~ [e4,g4]@5 ~@5, ~@8 c2@7 ~", // Bbdim Em
  M: "[c4,f4] [c4,f4,ab4]@2 ~@4 [c4,f4,ab4], f2@3 f2, f3!2, ~@3 [c4,f4,ab4]@2 [c4,f4,ab4]@2 ~", // F5 Fm
  N: "[~@12 eb2@2 ~@14 db2@3 ~, eb2@3 ~ db2@3 ~, ~@2 [eb4,g4,bb4]@4 [eb4,g4,bb4]@4 [eb4,g4,bb4]@4 [f4,ab4,c5]@4 [f4,ab4,c5]@4 [f4,ab4,c5]@4 [f4,ab4,c5]@5 ~, ~@4 eb3@4 eb3@6 ~@6 db3@4 db3@7 ~]/2", // Eb Fm
  O: "[g4@4 g4@3 ~ [f2,f3,f4,g4,a4,c5]@27 ~@13, [eb2,eb3,eb4,bb4]@7 ~@41]/3", // F Eb5
  P: "~@6 [f4,c5,f5,c6,f6]@9 ~, [f1,f2]@15 ~", Q: "~@6 [f4,c5,f5,c6,f6]@9 ~, [eb1,eb2]@15 ~",
  R: "~@6 [db4,ab4,eb5,f5,ab5,db6]@9 ~, [db1,db2]@15 ~", // Db
  S: "~@13 [ab4,ab5]@2 ~, [eb1,eb2]@11 [c5,c6]@5, ~@2 db5@13 ~, ~@3 db6@13, ~@5 c5 c6@2 [bb4,bb5]@7 ~", // Ab Eb C Bb
  T: "~@12 [c5,c6]@3 ~, [f1,f2,f4,f5]@15 ~, ~@3 [ab4,ab5]@5", // C F Ab
  U: "[~@12 [eb4,eb5]@3 ~@14 ab4@2 db4, [eb1,eb2,bb4,bb5]@15 [db1,db2]@10 ab4@2 db4 g5@3 ~, ~@6 [g4,g5]@9 ~ db5@16, ~@16 db4@8 ab5@7 ~, ~@22 [f4,f5]@9 ~]/2", // Eb Eb5 Db G F
  V: "[eb1,eb2,g4,g5]@7 ~", W: "[f1,f2,f4,c5,f5]/2",
  X: "[~@12 f3@3 ~@13 f4@4, f2@4 f4@2 g4 f3@2 f4@5 ~@3 bb2@5 ab4@2 [eb3,g4]@8, ~@2 c3@13 ~ [eb2,bb4]@16, ~@3 c4@12 [bb3,eb4]@4 eb3@2 eb4@11, ~@3 f3 ab4@11 g4@5 bb3@12]/2", // Eb Eb5
  Y: "[~@12 db2@3 ~@6 g4@2 ~@5 f3@2 f4 ~@3 f3@2 f3@2 ~@22 f4@3 ~, db2@4 f4@2 g4@2 db3@2 f4@9 f4@4 ~ f4@6 f3 f4 [ab4,c5] f5@14 bb3@12 eb2@3 ~@2, ~@2 ab2@13 ~ [c2,c3,g3,e4]@8 [f2,c4]@10 c5@2 ab4@2 [f3,f4]@2 [f2,c4]@2 f4@5 eb2@9 [eb3,g4]@7 ~, ~@3 ab3@12 ~@9 ab3@20 [f2,g4]@4 g4@6 ab4@9 ~, ~@3 db3 [db4,ab4]@12 ~@10 c3@20 ab4@2 [eb4,bb4]@15 ~]/4", // Ab C F5 F F5 Eb Fsus2 Db5 …
  Z: "[~@7 c2@2 [f1,ab3,c4,f4]@32 ~@7, [c2,c3] ~@5, e4@3 e4 ~@20, ~@3 d4@5 ~@40]/3", // Fm C
})).s("gm_piano").gain(0.42)

// bass · synth bass 1 · "SYN BASS 1"
const bass_3 = note(`<
  ~@40 A B A C D E F G D E F G H I J K H I L M N O P Q N O P Q R S T U T U T V D E F G D E F G H I J K H I L M N O P Q N
  O P Q R S T U T U T V ~@8 H I J K H I L M ~@4 A B A C R S T U T U T V ~@10
>`.pickRestart({
  A: "f3!16", B: "c3!14 f3!2", C: "c3 ~ c3 ~@13", D: "~ f3!4 ~ f3 ~@2 f3!4 ~ f3 ~",
  E: "~ eb3!4 ~ eb3 ~@2 eb3!4 ~ eb3 ~", F: "~ db3!4 ~ db3 ~@2 db3!4 ~ db3 ~", G: "~ c3!4 ~ c3 ~@2 f3!4 ~ f3 ~",
  H: "f3!2 [f5,c6] [f3,f5,c6] [f3,c6] [f5,c6] [f3,f5,c6] [f3,c6] f3!2 [f5,c6] [f3,f5,c6] [f3,c6] [f5,c6] [f3,f5,c6] [f3,c6]", // F5
  I: "eb3!2 [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] eb3!2 [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6]", // Eb5 Eb Eb5 Eb Eb5 Eb Eb5 Eb
  J: "db3!2 [db5,ab5] [db3,db5,ab5] [db3,ab5] [db5,ab5] [db3,db5,ab5] [db3,ab5] db3!2 [db5,ab5] [db3,db5,ab5] [db3,ab5] [db5,ab5] [db3,db5,ab5] [db3,ab5]", // Db5
  K: "eb3!2 [c6,f6] [eb3,c6,f6] [eb3,f6] [c6,f6] [eb3,c6,f6] [eb3,f6] eb3!2 [c6,f6] [f3,c6,f6] [f3,f6] [c6,f6] [eb3,c6,f6] [eb3,f6]", // F5 F7 Ebsus2 F5 F7 Ebsus2 F5 F …
  L: "db3!2 [ab5,db6] [db3,ab5,db6] [db3,db6] [ab5,db6] [db3,ab5,db6] [db3,db6] db3!2 [ab5,db6] [db3,ab5,db6] [db3,db6] [ab5,db6] [db3,ab5,db6] [db3,db6]", // Db5 Db Db5 Db Db5 Db Db5 Db
  M: "eb3!2 [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6] eb3!2 [bb5,eb6] [f3,bb5,eb6] [f3,eb6] [bb5,eb6] [eb3,bb5,eb6] [eb3,eb6]", // Eb5 Eb Eb5 Eb Eb5 Ebsus2 F7 Eb5 …
  N: "[f3,c4]!2 f3 c4 [f3,c4] f3 [f3,c4]!4 f3 c4 [f3,c4] f3 [f3,c4]!2", // F5
  O: "[eb3,bb3]!2 eb3 bb3 [eb3,bb3] eb3 [eb3,bb3]!4 eb3 bb3 [eb3,bb3] eb3 [eb3,bb3]!2", // Eb5
  P: "[db3,ab3]!2 db3 ab3 [db3,ab3] db3 [db3,ab3]!4 db3 ab3 [db3,ab3] db3 [db3,ab3]!2", // Db5
  Q: "[c3,g3]!2 c3 g3 [c3,g3] c3 [c3,g3]!4 c3 g3 [c3,g3] c3 [c3,g3]!2", // C5
  R: "~ [ab4,c5]!3 ~@2 [ab4,c5]!4 ~ [ab4,c5] c5 ~@2 [ab4,c5]", // Ab
  S: "bb4 [g4,bb4]!4 ~ [g4,bb4] ~@2 [g4,bb4] ~ [g4,bb4] bb4 ~@2 [g4,bb4]", // Gm
  T: "~ [ab4,c5]!3 ~@2 [ab4,c5]!2 c5 [ab4,c5] ~ [ab4,c5] c5 ~@2 [ab4,c5]", // Ab
  U: "bb4 [g4,bb4]!3 bb4 ~ [g4,bb4] ~@2 [g4,bb4] ~ [g4,bb4] bb4 ~@2 [g4,bb4]", V: "[g4,bb4] ~@15",
})).s("gm_synth_bass_1").gain(0.11).pan(0.3)

// other · orchestra hit · "ORCH.HIT"
const orchestra_hit = note("<~@60 A B A ~ A B A ~@25 A B A ~ A B A ~@51>".pickRestart({
  A: "f5 ~ f5 ~@5", B: "~@7 eb5",
})).s("gm_orchestra_hit").gain(0.24)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@60 A B C D E B C D F G H G F G H I ~@16 A B C D E B C D F G H G F G H I ~@24 F G H G F G H I ~@10
>`.pickRestart({
  A: "[f5,f6]@3 ~ [f5,f6]@3 ~@9", B: "~@14 eb5 ~", C: "f5 ~@3 f5 ~@11", D: "~@10 c6 eb6 f6 ab6 f6 eb6",
  E: "[f5,f6] ~ [f5,f6] ~@5", F: "f6", G: "bb6", H: "ab6 f6 eb6 c6 ab6 f6 eb6 c6 ab6 f6 eb6 c6 ab6 f6 eb6 c6",
  I: "bb6 ~@7",
})).s("gm_string_ensemble_1").gain(0.12).pan(0.6)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@44 A@24 ~ B ~ B ~ B ~@2 A@24 ~ B ~ B ~ B ~@3 B ~ B ~ B ~ B A@8 ~@9 B ~ B ~ B ~@12
>`.pickRestart({
  A: "~@3 x ~@12", B: "~@7 x ~@2 x ~@3 x ~",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@35 A B C B D E F G H I J I J I J I J I J I J I J I J I J I J I J I J E K E G E K E ~ I J I J I J I J I J I J I J I J
  I J I J I J I J E K E G E K E ~ E K E G E K E G I J I J I J I@2 B C B D E F G H E K E G E K E ~@11
>`.pickRestart({
  A: "~@14 x!2", B: "x", C: "x ~ x ~@11 x!2", D: "x!2 ~@3 x ~ x", E: "~ x ~ x", F: "~@4 x ~@2 x ~@2 x ~@3 x!2",
  G: "~@4 x ~@5 x ~@3 x!2", H: "x!2 ~@6", I: "~@4 x ~@7 x ~ x!2", J: "~@2 x ~@3 x!2", K: "~@2 x ~@2 x ~ x",
})).gain(0.3)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@44 [~@10 x!2 ~@4]!24 ~@8 [~@10 x!2 ~@4]!24 ~@16 [~@10 x!2 ~@4]!8 ~@26>")
  .gain(0.12)

// drums · clap
const clap = s("cp").struct("<~@52 [~@2 x ~@3 x!2]!8 ~@24 [~@2 x ~@3 x!2]!8 ~@24 [~@2 x ~@3 x!2]!8 ~@26>").gain(0.36)

// … 64 more lines

More by East 17