Strudelify

Can You Feel The Force?

Real Thing

KeyE♭ minorTempo124 bpm
0:00/0:00
// Can You Feel The Force? — Real Thing
// 124 bpm, 4/4, key D# 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 137 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@3 A@2 B C@2 D@2 E@2 F@2 E@2 G@2 C@2 H@2 C@2 H@2 C@2 H@2 C@2 I@2 J@2 K L@2 M@2 N O P Q R S T U V W X Y Z AA AB AC AD
  AE AF Q Z AG AH AI Z AJ AH AK AL K J@2 AM AN@2 AO AP@2 AQ@2 AR@2 AS@2 AT@2 AU@2 AV@2 AW@2 AX@2 AY@2 J@2 K L@2 M@2 Z AK
  AH AK V AZ T BA V AZ T BA Z AK AH AK V AZ T BA V AZ T BA Z AK AH BA ~@5
>`.pickRestart({
  A: "[eb2@2 ~ eb2 ~@2 db2@14 ~@4 [eb3,eb4] [db3,db4] [bb2,bb3] [ab2,ab3] [gb2,gb3] [f2,f3] [eb2,eb3] [db2,db3]]/2", // Eb Db Bb Ab Gb F Eb Db
  B: "~@3 [db2,db3] [eb2,eb3] ~@3 eb2@5 ~ db3 ~", // Db Eb
  C: "[eb3@6 ~@2 bb2@2 ~ bb2 db3 ~ ab2@6 ~@2 db3 ~ eb2@2 ~ eb2 gb2 ~ ab2 ~]/2",
  D: "[bb2@2 ~ db3@2 ~ eb3 ~ bb2@2 ~ bb2 db3 ~ ab2@6 ~@2 db3 ~ eb2@2 eb1@2 ~@2 eb2 ~, ~@26 eb2 ~@5]/2",
  E: "[db3@2 ~ eb3 ~@2 eb3 ~ bb2@2 ~ bb2 db3 ~ ab2@7 ~ db3 ~ eb2@2 ~ eb2 gb2 ~ ab2 ~]/2",
  F: "[bb2 ~ bb2 ~ db3 ~ eb3 ~ bb2@2 ~ bb2 db3 ~ ab2@6 ~@4 eb2@2 eb1@2 ~@2 eb2 ~, ~@26 eb2 ~@5]/2",
  G: "[bb2 ~ bb2 ~ db3 ~ eb3 ~ bb2@2 ~ bb2 db3 ~ ab2@6 ~@4 eb2@5 ~ db3 ~]/2",
  H: "[bb2@2 ~ db3@2 ~ eb3 ~ bb2@2 ~ bb2 db3 ~ ab2@6 ~@2 db3 ~ eb2@5 ~ db3 ~]/2",
  I: "[bb2@2 ~ db3@2 ~ eb3 ~ bb2@2 ~ bb2 db3 ~ ab2@6 ~@2 db3 ~ b1@7 ~]/2",
  J: "[db2@7 ~ gb1@2 ~ gb1@2 ~ b1@8 ~@2 db2@7 ~]/2", K: "gb1@2 ~ gb1@2 ~ b1@8 ~@2",
  L: "[db2@7 ~ gb1@2 ~ gb1@2 ~ b1@9 ~ db2@7 ~]/2", M: "[a1@2 ~ ab1@2 ~@2 a2@17 ~@6 db2 eb2]/2",
  N: "eb2@5 ~ [eb2,db3] ~@2 eb2 ~@2 eb2 ~@3, ~@4 eb3@3 ~", O: "bb2@2 eb3 bb2 db3 eb3 ~@2 eb3 ~@5 db3 ~, ~@3 ab2@3 ~@2",
  P: "eb2@2 ab2 eb2 gb2 ab2!2 ~ bb2@2 ~ db3@2 ~ eb3 ~",
  Q: "bb2@2 ~ bb2 db3 ~@5 eb2 ~ eb2 ab2 [bb2,db3] ~, ~@3 ab2@3 ~@2", // Bbm
  R: "eb2@2 eb1@2 ~@2 eb2 ~ db3@2 eb2 eb3 ~ eb2 eb3 ~, ~@2 eb2 ~@13",
  S: "bb2@2 ~ bb2 db3 ~@5 eb2 ~@2 eb2 [db3,eb3] ~, ~@6 ab2@7 ~@3", T: "eb2@2 ~ eb2 gb2 ~ ab2 ~ bb2 ~ bb2 ~ db3 ~ eb3 ~",
  U: "bb2@2 ab2 bb2 db3 ab2 ab2@6 ~@2 [db3,eb3] ~", V: "eb2@2 eb1@2 ~@2 eb2 ~ db3@2 ~ eb3 ~@2 eb3 ~, ~@2 eb2 ~@13",
  W: "bb2@2 ~ bb2 db3 ~ ab2@4 ab2@2 ab2 bb2 db3 ~", X: "eb2@2 ~ eb2 gb2 ~ ab2 ~ bb2 ~ [eb2,bb2] ~ db3 eb2 eb3 ~",
  Y: "bb2@2 ~ bb2 db3 ~@5 eb1 ~@2 eb1 ~@2, ~@3 ab2@3 ~@2", Z: "eb2@5 ~ db3 ~ eb3@6 ~@2",
  AA: "bb2@2 ~ bb2 db3 ~@5 eb3 ~@2 ab2 [bb2,db3] ~, ~@3 ab2@3 ~@2", // Bbm
  AB: "eb2@2 ~ eb2 gb2 ~ ab2 ~ bb2@2 eb3 db3@2 eb3!2 ~", AC: "bb2@2 ~ bb2 db3 ~@5 eb2 ~ eb2 eb3 db3 ~, ~@3 ab2@3 ~@2",
  AD: "eb2@5 ~ db3 ~ eb3@6 eb3 ~", AE: "~ eb3 ~ bb2 [db3,eb3] ~@5 eb3 ~@2 eb3 db3 ~, bb2 ~@2 ab2@3 ~@2",
  AF: "eb2@2 ~ eb2 gb2 ~ ab2 ~ bb2@2 ab2 db3@2 ab2 eb3 ~",
  AG: "bb2@2 ~ bb2 db3 ~@5 eb3 ~ eb3 ab2 [bb2,db3] db3, ~@3 ab2@3 ~@2", // Bbm
  AH: "eb2@2 ~ eb2 gb2 ~ ab2 ~ bb2@2 ~ db3@2 ~ eb3 ~", AI: "bb2@2 eb3 bb2 db3 eb3 ab2@6 ~@2 [eb2,db3] ~",
  AJ: "bb2@2 db3 bb2 db3!2 ~@2 db3 ~ ab2@2 bb2 ~ db3 ~, ~@3 ab2@2 ~@3", AK: "bb2@2 ~ bb2 db3 ~ ab2@6 ~@2 db3 ~",
  AL: "b1@7 ~ db2@7 ~", AM: "gb1@2 ~ gb1@2 ~ b1@9 ~", AN: "[db2@7 ~ a1@2 ~ ab1@2 ~@2 a2@17]/2",
  AO: "~@6 db2 eb2 eb2@5 ~ [eb2,db3] ~", // Eb7
  AP: "[~ eb2 ~@2 eb2 ~@3 bb2@2 eb3 bb2 db3 eb3 ~@2 eb3 ~@5 db3 ~ eb2@2 ab2 eb2 gb2 ab2!2 ~, eb3@3 ~@4 ab2@3 ~@6]/2",
  AQ: "[bb2@2 ~ db3@2 ~ eb3 ~ bb2@2 ~ bb2 db3 ~@5 eb2 ~ eb2 ab2 [bb2,db3] ~ eb2@2 eb1@2 ~@2 eb2 ~, ~@14 ab2@6 ~@6 eb2 ~@5]/2", // Bbm
  AR: "[db3@2 eb2 eb3 ~ eb2 eb3 ~ bb2@2 ~ bb2 db3 ~@5 eb2 ~@2 eb2 [db3,eb3] ~ eb2@2 ~ eb2 gb2 ~ ab2 ~, ~@14 ab2@7 ~@11]/2", // Dbsus2
  AS: "[bb2 ~ bb2 ~ db3 ~ eb3 ~ bb2@2 ab2 bb2 db3 ab2 ab2@6 ~@2 [db3,eb3] ~ eb2@2 eb1@2 ~@2 eb2 ~, ~@26 eb2 ~@5]/2", // Dbsus2
  AT: "[db3@2 ~ eb3 ~@2 eb3 ~ bb2@2 ~ bb2 db3 ~ ab2@4 ab2@2 ab2 bb2 db3 ~ eb2@2 ~ eb2 gb2 ~ ab2 ~]/2",
  AU: "[bb2 ~ [eb2,bb2] ~ db3 eb2 eb3 ~ bb2@2 ~ bb2 db3 ~@5 eb1 ~@2 eb1 ~@2 eb2@5 ~ db3 ~, ~@7 ab2@3 ~@6]/2", // Eb5
  AV: "[eb3@6 ~@2 bb2@2 ~ bb2 db3 ~@5 eb3 ~@2 ab2 [bb2,db3] ~ eb2@2 ~ eb2 gb2 ~ ab2 ~, ~@7 ab2@3 ~@6]/2", // Bbm
  AW: "[bb2@2 eb3 db3@2 eb3!2 ~ bb2@2 ~ bb2 db3 ~@5 eb2 ~ eb2 eb3 db3 ~ eb2@5 ~ db3 ~, ~@7 ab2@3 ~@6]/2",
  AX: "[eb3@6 eb3 ~@2 eb3 ~ bb2 [db3,eb3] ~@5 eb3 ~@2 eb3 db3 ~ eb2@2 ~ eb2 gb2 ~ ab2 ~, ~@4 bb2 ~@2 ab2@3 ~@6]/2", // Dbsus2
  AY: "[bb2@2 ab2 db3@2 ab2 eb3 ~ bb2@2 ~ bb2 db3 ~@5 eb2 ~ eb2 ab2 [bb2,db3] ~ b1@7 ~, ~@7 ab2@3 ~@6]/2", // Bbm
  AZ: "bb2@2 ~ bb2 db3 ~ ab2@7 ~ db3 ~", BA: "bb2@2 ~ bb2 db3 ~ ab2@6 ~@4",
})).s("gm_acoustic_bass").gain(0.57)

// other · trumpet
const trumpet = note(`<
  A@3 B@2 C D E F G ~@2 H I ~@2 J K ~@3 L@2 M N O ~@3 P@2 M Q R@3 S T@2 U@2 V W X Y Z ~@2 AA AB ~@2 AC ~@3 AD@2 ~ AE AF
  ~@3 AG@2 ~ AH AI@2 AJ AK@2 AL AM@2 AN D E F G ~@2 H AO ~@11 AP AQ@2 S T@2 U@2 V W X Y Z ~@2 AA AB ~@2 AC V W X Y Z ~@2
  AA AB ~@2 AC V W X AR ~@5
>`.pickRestart({
  A: "[eb3,gb4,a4,db5,f5]@2 ~ [eb3,gb4,a4,db5,f5] ~@12", // Ebm7b5
  B: "[[eb3,gb4,a4,db5,f5]@2 ~ [eb3,gb4,a4,db5,f5] ~@2 [gb3,eb5,gb5]@18 ~@8, ~@3 [e4,ab4,b4]@8 ~@5]/2", // Ebm7b5 Ebm E
  C: "~@3 [db5,db6] [eb5,eb6] ~@11", D: "[ab4,bb4,db5,f5]@7 ~@9",
  E: "~@4 [ab4,ab5] [bb4,bb5] [ab4,ab5] [gb4,gb5] [ab4,ab5] [gb4,gb5] [eb4,eb5] ~@5", // Ab Bb Ab Gb Ab Gb Eb
  F: "[bb4,db5,eb5,f5,ab5]@7 ~ [bb4,bb5] [db5,db6] ~@2 [ab4,ab5] [bb4,bb5] ~@2", // Bbm7 Bb Db Ab Bb
  G: "[gb4,gb5] [ab4,ab5] ~@2 [db4,db5] [eb4,eb5] ~@2 [db5,f5,ab5,bb5]@6 ~@2", // Gb Ab Db Eb Bbm7
  H: "~@8 [eb5,eb6] [d5,d6] [eb5,eb6] [db5,db6] ~@4", I: "[ab4,ab5] ~ [ab4,ab5] [gb4,gb5] ~@4 [db5,f5,ab5,bb5,db6]@7 ~",
  J: "~@8 [eb5,eb6] [d5,d6] [eb5,eb6] [db5,db6] ~ [gb4,gb5] ~ [db5,db6]", K: "~ [db5,db6] [bb4,bb5]@6 ~@8",
  L: "[~@2 [db5,db6] ~ [eb5,eb6] ~ [gb5,gb6] [eb5,eb6]@13 ~@12]/2", M: "~@7 [bb4,bb5]",
  N: "[db5,db6,eb6] ~@5 [ab4,ab5]@2 [gb4,gb5] ~@5 [eb4,eb5]@2", O: "[db4,db5] ~@3 [db5,db6] [eb5,eb6] ~@10",
  P: "[~@2 [db4,db5] ~ [eb4,eb5] ~ [gb4,gb5] [eb4,eb5]@12 ~@13]/2", // Db Eb Gb Eb
  Q: "[db5,db6] ~@5 [ab4,ab5]@2 [gb4,gb5] ~@3 [eb4,eb5] [d4,d5] [eb4,eb5] [db4,db5]", // Db Ab Gb Eb D Eb Db
  R: "[~@4 [ab3,ab4] [g3,g4] [ab3,ab4] gb4 gb4@14 ~@2 ab4@6 [gb4,bb4]@8 ~@10, ~@7 gb3@15 ~@2 b4@4 ~@20]/3", // Ab G Ab Gb
  S: "[eb4,b4]@4 ~@2 [eb4,bb4]@9 ~, gb4@3 ~@5", // Abm Eb5
  T: "[[db4,ab4]@6 ~@2 [eb4,ab4,b4]@4 ~@2 [eb4,gb4,bb4]@9 ~ [db4,ab4]@7 ~, ~@4 gb4@3 ~@9]/2", // Db5 Abm Ebm Db5
  U: "[[db4,e4,gb4,a4]@3 [b3,eb4,gb4,ab4]@2 ~@2 [ab3,b3,eb4,gb4]@17 [gb4,ab4,b4,eb5]@2 ~ [gb4,ab4,b4,eb5] ~@4]/2", // Gbm7 Abm7
  V: "~@8 [ab4,bb4,db5,f5]@7 ~", W: "~@12 [ab4,ab5] [bb4,bb5] [ab4,ab5] [gb4,gb5]",
  X: "[ab4,ab5] [gb4,gb5] [eb4,eb5] ~@5 [bb4,db5,eb5,f5,ab5]@7 ~", // Ab Gb Eb Bbm7
  Y: "[bb4,bb5] [db5,db6] ~@2 [ab4,ab5] [bb4,bb5] ~@2 [gb4,gb5] [ab4,ab5] ~@2 [db4,db5] [eb4,eb5] ~@2", // Bb Db Ab Bb Gb Ab Db Eb
  Z: "[db5,f5,ab5,bb5]@3 ~@5", AA: "[eb5,eb6] [d5,d6] [eb5,eb6] [db5,db6] ~@4 [ab4,ab5] ~ [ab4,ab5] [gb4,gb5] ~@4",
  AB: "[db5,f5,ab5,bb5,db6]@7 ~@9", // Bbm7
  AC: "[eb5,eb6] [d5,d6] [eb5,eb6] [db5,db6] ~ [gb4,gb5] ~ [db5,db6] ~ [db5,db6] [bb4,bb5]@6", // Eb D Eb Db Gb Db Bb
  AD: "[~@10 [db5,db6] ~ [eb5,eb6] ~ [gb5,gb6] [eb5,eb6]@13 ~@4]/2", // Db Eb Gb Eb
  AE: "~@6 [bb4,bb5]@2 [db5,db6,eb6] ~@5 [ab4,ab5]@2", // Bb Dbsus2 Ab
  AF: "[gb4,gb5] ~@5 [eb4,eb5]@2 [db4,db5] ~@3 [db5,db6] [eb5,eb6] ~@2", // Gb Eb Db Eb
  AG: "[~@10 [db4,db5] ~ [eb4,eb5] ~ [gb4,gb5] [eb4,eb5]@12 ~@5]/2", AH: "~@6 [bb4,bb5]@2 [db5,db6] ~@5 [ab4,ab5]@2",
  AI: "[[gb4,gb5] ~@3 [eb4,eb5] [d4,d5] [eb4,eb5] [db4,db5] ~@4 [ab3,ab4] [g3,g4] [ab3,ab4] gb4 gb4@14 ~@2, ~@15 gb3@15 ~@2]/2", // Gb Eb D Eb Db Ab G Ab
  AJ: "ab4@3 [gb4,bb4]@4 ~, b4 ~@3", AK: "[~@8 [eb4,b4]@4 ~@2 [eb4,bb4]@9 ~ [db4,ab4]@6 ~@2, ~@4 gb4@3 ~@9]/2",
  AL: "[eb4,ab4,b4]@4 ~@2 [eb4,gb4,bb4]@9 ~, gb4@3 ~@5", // Abm Ebm
  AM: "[[db4,ab4]@7 ~ [db4,e4,gb4,a4]@3 [b3,eb4,gb4,ab4]@2 ~@2 [ab3,b3,eb4,gb4]@17]/2", // Db5 Gbm7 Abm7
  AN: "[gb4,ab4,b4,eb5]@2 ~ [gb4,ab4,b4,eb5] ~@12", AO: "[ab4,ab5] ~ [ab4,ab5] [gb4,gb5] ~@12", AP: "~@8 gb4@7 ~",
  AQ: "[~@4 ab4@3 [gb4,bb4]@4 ~@5, ~@2 b4 ~@5]/2", // Gb
  AR: "[bb4,bb5] [db5,db6] ~@2 [ab4,ab5] [bb4,bb5] ~@2 [gb4,gb5] [ab4,ab5] ~@6", // Bb Db Ab Bb Gb Ab
})).s("gm_trumpet").gain(0.64)

// other · trumpet · soft notes
const trumpet_soft = note(`<
  ~@13 A ~@19 B C@2 D E F ~@9 G ~@19 H I J K@2 ~ L ~@9 A ~@11 M C@2 D E F ~@9 G ~@11 G ~@13
>`.pickRestart({
  A: "~ [g4,g5] ~@14", B: "~@4 bb4 ~@3 [eb4,bb4]@7 ~", C: "[[db4,f4,ab4]@6 ~@2 eb4@5 ~ eb4@8 ~@2 [db4,f4,ab4]@5 ~@3]/2",
  D: "ab4@2 ~ gb4@4 ~", E: "f4@3 ~@5", F: "~@8 f4@7 ~", G: "~@9 [g4,g5] ~@6", H: "~@12 bb4 ~@3",
  I: "[eb4,bb4]@7 ~ [db4,f4,ab4]@6 ~@2", J: "eb4@5 ~ eb4@8 ~@2",
  K: "[[db4,f4,ab4]@5 ~@3 ab4@4 ~@2 gb4@8 ~@2 f4@6 ~@2]/2", L: "f4@7 ~@9", M: "~@8 [eb4,bb4]@7 ~",
})).s("gm_trumpet").gain(0.4)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A@3 B@2 C D@2 E@2 F G H@2 I@2 J@2 D@2 K@2 D@2 K@2 D@2 K@2 D@2 L@2 ~@7 M N O P Q R S N T P U V M N O P M N O P M N O P
  M N O P ~@7 W D@2 E@2 F G H@2 I@2 J@2 D@2 K@2 D@2 L@2 ~@7 M N O P Q R S N T P U V M N O P Q R S N T P U V M N O P ~@5
>`.pickRestart({
  A: "[gb4,a4,db5,f5]@2 ~ [gb4,a4,db5,f5] ~@12", // Gbm
  B: "[[gb4,a4,db5,f5]@2 ~ [gb4,a4,db5,f5] ~@2 [ab4,b4,eb5]@16 ~@2 eb4 db4 bb3 ab3 gb3 f3 eb3 db3]/2", // Gbm Abm
  C: "~@3 db3 eb3 ~@3 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4] ~ [gb4,bb4] eb4 ~", // Ebm Gb
  D: "[[eb4,gb4] ~@2 [eb4,gb4,bb4] [eb4,gb4] [eb4,gb4,bb4] [eb4,gb4] ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@9 ~@3 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4]]/2", // Ebm Ab Ebm
  E: "[[eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ gb4 [eb4,gb4,bb4] ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@10 ~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4]]/2", // Ebm Ab Ebm
  F: "[eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~@3 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4]", // Ebm
  G: "[eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4]@2 ~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4]", // Ebm
  H: "[[eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@9 ~@3 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ gb4]/2", // Ebm Ab Ebm
  I: "[[eb4,gb4,bb4] ~ gb4 [eb4,gb4,bb4] ~ [eb4,gb4]!2 ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@10 ~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ gb4]/2", // Ebm Ab Ebm
  J: "[[eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@8 ~@2 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4] ~ [gb4,bb4] eb4 ~]/2", // Ebm Ab Ebm Gb
  K: "[[eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ gb4 [eb4,gb4,bb4] ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@10 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4] ~ [gb4,bb4] eb4 ~]/2", // Ebm Ab Ebm Gb
  L: "[[eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ gb4 [eb4,gb4,bb4] ~ [eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@10 ~@8]/2", // Ebm Ab Ebm
  M: "[eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4] ~ [gb4,bb4] eb4 ~ [eb4,gb4] ~@2 [eb4,gb4,bb4] [eb4,gb4] [eb4,gb4,bb4] [eb4,gb4] ~", // Ebm Gb Ebm
  N: "[eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@9 ~", // Ab Ebm
  O: "~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ gb4 [eb4,gb4,bb4] ~", // Ebm
  P: "[eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@10", // Ab Ebm
  Q: "~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~", // Ebm
  R: "~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4]@2", // Ebm
  S: "~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~", // Ebm
  T: "~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ gb4 [eb4,gb4,bb4] ~ gb4 [eb4,gb4,bb4] ~ [eb4,gb4]!2 ~", // Ebm
  U: "~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~ gb4 [eb4,gb4,bb4] ~@2 [eb4,gb4,bb4] ~ [eb4,gb4] [eb4,gb4,bb4] ~", // Ebm
  V: "[eb4,ab4,c5] ~@2 [eb4,ab4,c5] ~@2 [eb4,gb4,bb4]@8 ~@2", // Ab Ebm
  W: "~@8 [eb4,gb4,bb4]@2 ~ [eb4,gb4,bb4] ~ [gb4,bb4] eb4 ~", // Ebm Gb
})).s("gm_electric_guitar_muted").gain(0.53)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~@5 A B@2 C@2 D@2 E@2 B@2 F@2 B@2 F@2 B@2 F@2 B@2 F@2 B@2 G@2 H@2 I J@2 K@2 L M N O P Q N R L M N O L M N O L M N O L
  M N O L M N O S I H@2 I T@2 U B@2 C@2 D@2 E@2 B@2 F@2 B@2 F@2 B@2 G@2 H@2 I J@2 K@2 L M N O P Q N R L M N O L M N O P
  Q N R L M N O L M N V ~@5
>`.pickRestart({
  A: "~@8 [eb4,gb4,bb4,db5]@3 [eb4,gb4,bb4,db5]@3 [db4,eb4,gb4,bb4,db5] ~, ~@4 db4@3 ~", // Ebm7
  B: "[~@2 [db4,eb4,gb4,bb4] ~@3 [db4,eb4,gb4,bb4,db5] ~ [bb3,ab4,bb4,db5]@3 [bb3,f4,ab4,bb4,db5]@3 [eb4,gb4,ab4,b4]@6 ~@2 ab4@2 [db4,eb4,gb4,bb4,db5]@3 [db4,eb4,gb4,bb4,db5] ~@4, ~@8 f4 ~@5 b3@10 ~@8, ~@5 eb4 ~@2, ~@21 gb4@3 ~@8]/2", // Ebm7 Bbm7 Abm7 Ebm7
  C: "[~@2 [db4,eb4,gb4,bb4,db5] ~@2 [db4,eb4,gb4,bb4,db5]@3 [bb3,gb4,ab4,db5]@3 [bb3,f4,ab4,db5]@3 [b3,eb4,b4]@6 ~@3 ab4 ~ [db4,eb4,gb4,bb4,db5]@2 [db4,eb4,gb4,bb4,db5] ~@4, ~@7 [gb4,ab4]@4 gb4 ~@4, ~@14 bb4 ~@5 b3@3 ~@9, ~@21 eb4@2 ~@9]/2", // Ebm7 Gb Bbm7 B Ebm7 Gbsus2
  D: "[~@2 [db4,eb4,gb4,bb4,db5] ~@3 [db4,eb4,gb4,bb4,db5]@2 [bb3,gb4,ab4,db5]@3 [bb3,f4,ab4,bb4,db5]@3 [eb4,gb4,ab4,b4]@5 ~@3 [ab4,bb4]@2 [db4,eb4,gb4,bb4,db5]@3 [db4,eb4,gb4,bb4,db5] ~@4, ~@7 b3@5 ~@4, ~@5 eb4 ~@2, ~@21 gb4@3 ~@8]/2", // Ebm7 Gb Bbm7 Abm7 Absus2 Ebm7
  E: "[~@2 [db4,eb4,gb4,bb4,db5] ~@2 [db4,eb4,gb4,bb4,db5]@3 [bb3,f4,ab4,bb4,db5]@3 [bb3,f4,ab4,bb4,db5]@3 [b3,eb4,gb4,ab4,b4]@9 ~ [eb4,gb4,bb4,db5]@3 [eb4,gb4,bb4,db5]@3 [db4,eb4,gb4,bb4,db5] ~, ~@12 db4@3 ~]/2", // Ebm7 Bbm7 Abm7 Ebm7
  F: "[~@2 [db4,eb4,gb4,bb4,db5] ~@2 [db4,eb4,gb4,bb4,db5]@3 [bb3,gb4,ab4,db5]@3 [bb3,f4,ab4,db5]@3 [b3,eb4,b4]@6 ~@3 ab4 [eb4,gb4,bb4,db5]@3 [eb4,gb4,bb4,db5]@3 [db4,eb4,gb4,bb4,db5] ~, ~@7 [gb4,ab4]@4 gb4 ~@4, ~@14 bb4 ~@5 b3@3 ~ db4@6 ~@2, ~@21 eb4@2 ~@9]/2", // Ebm7 Gb Bbm7 B Ebm7 Gbsus2
  G: "[~@2 [db4,eb4,gb4,bb4,db5] ~@2 [db4,eb4,gb4,bb4,db5]@3 [bb3,gb4,ab4,db5]@3 [bb3,f4,ab4,db5]@3 [b3,eb4,b4]@6 ~@3 ab4 [eb4,gb4,bb4]@8, ~@7 [gb4,ab4]@4 gb4 ~@4, ~@14 bb4 ~@5 b3@3 ~@9, ~@21 eb4@2 ~@9]/2", // Ebm7 Gb Bbm7 B Ebm Gbsus2
  H: "[[db4,f4,ab4]@4 [eb4,ab4,b4]@3 [eb4,gb4,bb4]@5 [db4,f4,ab4]@4]/2", I: "[eb4,ab4,b4]@3 [eb4,gb4,bb4]@5",
  J: "[[db4,f4,ab4]@8 [eb4,ab4,b4]@6 [eb4,gb4,bb4]@10 [db4,f4,ab4]@7 ~]/2", // Db Abm Ebm Db
  K: "[[db4,e4,gb4,a4]@3 [b3,eb4,gb4,ab4]@2 ~@2 [ab3,b3,eb4,gb4]@17 [gb4,ab4,b4,eb5]@3 ~@5]/2", // Gbm7 Abm7
  L: "[eb4,gb4,bb4,db5]@3 [eb4,gb4,bb4,db5]@3 [db4,eb4,gb4,bb4,db5] ~@3 [db4,eb4,gb4,bb4] ~@3 [db4,eb4,gb4,bb4,db5] ~, db4@3 ~@5", // Ebm7
  M: "[bb3,ab4,bb4,db5]@3 [bb3,f4,ab4,bb4,db5]@3 [eb4,gb4,ab4,b4]@6 ~@2 ab4@2, f4 ~@5 b3@10, ~@3 eb4, ~@13 gb4@3", // Bbm7 Abm7
  N: "[db4,eb4,gb4,bb4,db5]@3 [db4,eb4,gb4,bb4,db5] ~@6 [db4,eb4,gb4,bb4,db5] ~@2 [db4,eb4,gb4,bb4,db5]@3", // Ebm7
  O: "[bb3,gb4,ab4,db5]@3 [bb3,f4,ab4,db5]@3 [b3,eb4,b4]@6 ~@3 ab4, ~@3 [gb4,ab4]@4 gb4, ~@6 bb4 ~@5 b3@3 ~, ~@13 eb4@2 ~", // Gb Bbm7 B Gbsus2
  P: "~ [db4,eb4,gb4,bb4,db5]@2 [db4,eb4,gb4,bb4,db5] ~@6 [db4,eb4,gb4,bb4,db5] ~@3 [db4,eb4,gb4,bb4,db5]@2", // Ebm7
  Q: "[bb3,gb4,ab4,db5]@3 [bb3,f4,ab4,bb4,db5]@3 [eb4,gb4,ab4,b4]@5 ~@3 [ab4,bb4]@2, ~@3 b3@5, ~@3 eb4, ~@13 gb4@3", // Gb Bbm7 Abm7 Absus2
  R: "[bb3,f4,ab4,bb4,db5]@3 [bb3,f4,ab4,bb4,db5]@3 [b3,eb4,gb4,ab4,b4]@9 ~", S: "[eb4,gb4,bb4] [db4,f4,ab4]",
  T: "[[db4,f4,ab4]@7 ~ [db4,e4,gb4,a4]@3 [b3,eb4,gb4,ab4]@2 ~@2 [ab3,b3,eb4,gb4]@17]/2", // Db Gbm7 Abm7
  U: "[gb4,ab4,b4,eb5]@3 ~@5 [eb4,gb4,bb4,db5]@3 [eb4,gb4,bb4,db5]@3 [db4,eb4,gb4,bb4,db5] ~, ~@4 db4@3 ~", // Abm7 Ebm7
  V: "[bb3,gb4,ab4,db5]@3 [bb3,f4,ab4,db5]@3 [b3,eb4,b4]@6 ~@4, ~@6 [gb4,ab4]@9 ~, ~@6 bb4 ~@9", // Gb Bbm7 B Gbsus2
})).s("gm_epiano2").gain(0.43)

// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note("<~@84 A@2 B@2 C D E@2 F G@2 H ~@41>".pickRestart({
  A: "[~@8 bb6@16 gb6 ~ g6 ~ ab6 ~ a6 ~]/2",
  B: "[bb6@2 gb6 ~ gb6@2 eb6 ~ eb6 bb5 db6 eb6@11 ~@2 gb6 ab6 ~@2 db6 eb6 ~@2]/2",
  C: "bb5 db6 ~@2 ab5 bb5@2 ~ [ab5,bb5] ~ ab5 ~ gb5 ~ ab5 ~", // Absus2
  D: "bb5@2 ab5 ~ gb5 ab5 ~@2 bb5@2 [ab5,bb5] ab5 gb5 ~ ab5 ~", // Absus2
  E: "[eb5 gb5 db5 eb5 bb4 ~ [bb4,db5] ~ db5@2 ab4 bb4 db5 gb4@2 gb4@7 eb4 gb4 ab4 bb4 gb4 ab4 bb4 ab4 bb4 db5]/2", // Bbm
  F: "bb4 db5 eb5 db5 eb5 gb5 eb5 gb5 ab5 ~ ab5@4 eb5 gb5",
  G: "[ab5 ~ ab5@5 ~ f5 db5 eb5 ~ eb5@6 gb4 ~ gb4 ab4 bb4 ~@7 eb4 gb4]/2", H: "ab4@2 ab4@2 eb4 gb4 [gb4,bb4] ~ bb4@8",
})).s("gm_synth_brass_1").gain(0.62)

// drums · kick
const kick = s("bd").struct("<~@4 A B C@32 D E F C@33 G ~ H C@24 D E F C@27 I ~@5>".pickRestart({
  A: "~@8 x!8", B: "~@3 x!2 ~@3 x ~@3 x ~@3", C: "x!4", D: "x ~@3 x ~@3 x ~@3 x ~@2 x", E: "x ~@2 x ~@3 x ~@8",
  F: "~@8 x ~@2 x ~@4", G: "x ~@3 x ~@2 x!2 ~@2 x ~@3 x", H: "x ~@2 x ~@4 x ~@3 x ~@3", I: "x!3 ~",
})).gain(0.62)

// drums · rim
const rim = s("rim").struct("<~@4 A B C@27 D ~@7 C@28 ~@7 E C@19 D ~@7 C@27 D ~@5>".pickRestart({
  A: "~@8 x!7 ~", B: "~@3 x!2 ~@7 x ~@3", C: "~ x ~ x", D: "~ x ~@2", E: "~@3 x",
})).gain(0.78)

// drums · snare
const snare = s("sd").struct("<~@4 A B C@27 D C@5 ~@2 C@27 E C@5 F ~ G C@7 H C@11 D C@5 ~@2 C@27 F ~@5>".pickRestart({
  A: "~@15 x", B: "~@3 x!2 ~@7 x ~@3", C: "~ x ~ x", D: "~@4 x!3 ~@5 x ~@3", E: "~@4 x ~@7 x!3 ~", F: "~ x ~@2",
  G: "~@3 x", H: "~@4 x ~ x!2 ~@4 x ~@3",
})).gain(0.7)

// drums · low tom
const low_tom = s("lt").struct("<~@4 [~@13 x!2 ~] ~@132>").gain(0.47)

// drums · hihat
const hihat = s("hh").struct("<A@3 B ~ C D@27 E F@5 B G D@28 F@5 H ~ I D@19 E F@5 B G D@27 J ~@5>".pickRestart({
// … 45 more lines

More by Real Thing