Strudelify

Sisters Are Doing It for Themselves

Eurythmics

KeyF minorTempo135 bpm
0:00/0:00
// Sisters Are Doing It for Themselves — Eurythmics
// 135 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 13 "MUTED GTR" electric guitar muted (copy of ch 14 "MUTED GTR" electric guitar muted, 0.115 beats late)
// note: Full arrangement: all 166 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): GTHARMONIC.
setcpm(135/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.

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@25 A B C@2 A B D@2 A B E F ~@32 A B C@2 A B D@2 A B E G H@2 I@2 H@2 J K ~@8 L@2 M@2 N@2 O P Q R S T ~@16 U V W X U Y
  Z AA U AB AC@2 U AB AC@2 U AB AC@2 U AB AC@2 U AB AC@2 U AB AC@2 U AB AC@2 U AB AC@2 AD
>`.pickRestart({
  A: "[c5,eb5,f5,ab5]", B: "[d5,f5,ab5,bb5] [e5,g5,bb5,c6]", C: "[[ab5,c6,eb6,f6]@3 [bb5,d6,f6,g6]]/2",
  D: "[ab5,c6,eb6,f6]/2", E: "[ab5,c6,eb6,f6]@15 [c6,d6,e6]", F: "[g5,a5,b5] f5 ~@2 [d6,f6,g6,bb6]@12",
  G: "[g5,a5,b5] f5 ~@2 [f5,g5,bb5,d6]@12", H: "[[f5,ab5,db6]@31 ~]/2", I: "[d5,f5,ab5,bb5]/2", J: "[d5,f5,ab5,bb5]",
  K: "[e5,g5,bb5,c6]", L: "[[c6,eb6,f6]@23 ~ [c6,eb6]@4 [bb5,d6]@4, ~@3 ab5]/2",
  M: "[~@2 [c5,eb5] ~@5 [c5,eb5,f5] ~@5 [c5,eb5,f5]@9 ~ [c5,eb5]@4 [bb4,d5]@4, ~ f5 ~@14]/2", // Cm F7 Cm Bb
  N: "[[c5,f5] ~@3 [c6,eb6,f6]@19 ~ [ab5,c6,eb6,f6]@4 [bb5,d6,f6]@4]/2", // F5 F7 Fm7 Bb
  O: "[ab5,c6,f6]@2 ab6!2, [ab4,c5,eb5], ~ [c6,eb6,f6]", // Fm Ab F7
  P: "d6@2 ~@2 d6@4 bb5@2 ab5 ~@3 ab5 ~, [bb4,d5,f5,ab5,f6] [f5,f6,ab6], db6 ~@3 db6 ~@3 db6@4 [bb5,c6]@4", // Bb7 Fm Bbsus2
  Q: "[f5,ab5,c6,eb6,ab6]", R: "[f5,ab5,d6,f6,ab6,bb6]@3 [g5,c6,e6,g6,bb6,c7]", S: "[ab5,c6,eb6,f6]@15 [c6,e6]",
  T: "[g5,a5,b5] f5 ~@2 [f5,g5,bb5,d6,f6,g6]@12", U: "[c5,eb5,ab5]@15 ~", V: "[d5,f5,bb5] [e5,g5,c6]",
  W: "[c6,eb6,f6]@15 ~", X: "[c6,eb6,f6]@4 [c6,eb6,f6]@4 [c6,eb6,f6]@4 [c6,eb6,f6]@2 [b5,d6,e6] [f5,g5,a5]",
  Y: "[d5,f5,bb5]@8 [e5,g5,c6]@7 ~", Z: "[c4,d4,e4,f4] [g4,a4,b4] [c5,d5,e5] [f5,g5,a5] [c6,eb6,f6]@12",
  AA: "[c6,eb6,f6]@4 [c6,eb6,f6]@3 ~ [c6,eb6,f6]@3 ~ [bb5,d6,f6]@4", AB: "[d5,f5,bb5] [e5,c6], ~@4 g5@3 ~",
  AC: "[[c6,eb6]@7 [bb5,d6], [ab5,f6]]/2", AD: "[c5,f5,ab5,c6]@3 ~@13",
})).s("gm_rock_organ").gain(0.22)

// bass · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  ~ A B C B D E F G A B C B D E F G A B C B D E H I J K L M N O P G Q R S T A B C B D E F G A B C B D E F G A B C B D E
  F G A B C B D E H I J K L M N O P G Q R S T U V W X Y@2 Z AA A B C B D E F G A B C B D E AB AC J AD S T A B C B D E F
  G A B C B D E H I J K L M N O P G AE K L M AF AG AH AI AJ AK AL AM AN AO P AM AP AQ AL AM AR AQ P AM AF AS P AM AF AS
  P AM AT
>`.pickRestart({
  A: "f1@2 ~@2 f1@2 eb1 ~ f1 ~ f1@3 ~@3", B: "~@6 f1@2 c1@3 ~ eb1@3 ~", C: "f1@3 ~ f1 ~ eb1 ~ f1 ~ f1@3 ~@3",
  D: "f1@3 ~ f1@2 eb1 ~ f1 ~ f1@2 ~@4", E: "~@6 f1 ~ c1@3 ~ eb1@3 ~", F: "f1@2 ~@2 f1 ~ eb1 ~ f1 ~ f1@3 ~@3",
  G: "~@6 f1@2 c1@3 ~ eb1@2 ~@2", H: "c1@3 ~ c1@4 c1@3 ~ c1@3 ~", I: "eb1@3 ~ eb1@3 ~ eb1@3 ~ eb1@3 ~",
  J: "ab1@3 ~ ab1@3 ~ ab1@3 ~ ab1@3 ~", K: "bb1@3 ~ bb1@3 ~ c2@3 ~ c2@4", L: "f1@2 ~@2 f1@2 eb1 ~ f1@2 f1@3 ~@3",
  M: "~@6 f1@2 c1@4 eb1@3 ~", N: "ab1@3 ~ ab1@3 ~ ab1@3 ~ ab1 ~ ab1@2", O: "bb1@4 bb1@3 ~ c2@3 ~ c2@3 ~",
  P: "f1@3 ~ f1@2 eb1 ~ f1 ~ f1@3 ~@3", Q: "ab1@3 ~ ab1@3 ~ ab1@3 ~ eb1@2 ab1@2", R: "bb1@3 ~ bb1@3 ~ c2@3 ~ c2@3 ~",
  S: "f1@3 ~ f1@3 ~ f1@3 ~ f1@3 ~", T: "f1 ~@3 c2@11 ~", U: "db2@3 ~ db2@4 db2 ~@3 db1@4, ~@5 db2@3",
  V: "db2@3 ~@7 db2@2 db2@4, ~@4 db2@5 ~@7, ~@3 ab2@5", W: "bb1@3 ~ bb1@3 ~ bb1@2 bb1 ~ bb1@2 ~@2",
  X: "bb1 f2 ab2 eb3 d3 bb2 f2 bb1",
  Y: "[db2@3 ~ db2@2 ~@2 db2@6 ~@2 db3@6 db3@2 db3@2 ~@2 db3@4, ~@6 ab2@6 ~@2 ab2@5 ~@7 ab2@5 ~]/2",
  Z: "bb1@3 ~ bb1@3 ~ bb1@2 f1@2 bb1@2 b1@2", AA: "c2@2 c2@2 c2@2 c2 ~ c2@2 c2 ~ c3 bb2 ab2 ~",
  AB: "f1@3 ~ f1@4 eb1@3 ~ eb1@3 ~", AC: "d1@3 ~ d1@3 ~ db1@3 ~ c1@3 ~", AD: "bb1@3 ~ bb1@3 ~ bb1@3 ~ c2@3 ~",
  AE: "ab1@3 ~ ab1@3 ~ ab1@2 eb1@2 ab1@3 ~", AF: "ab1@3 ~ ab1@3 ~ ab1@2 eb1@2 ab1@2 a1@2",
  AG: "bb1@2 bb1@2 bb1@3 ~ c2@2 c2@2 c2@3 ~", AH: "f1@3 ~ f1@2 eb1 ~ f1 ~ f1@2 f1@2 f1@2",
  AI: "eb1@2 eb1@2 d1@2 db1@2 c1@3 ~ eb1@2 ~@2", AJ: "ab1@3 ~ ab1@3 ~ ab1@3 ~ ab1@2 a1@2",
  AK: "bb1@2 bb1@2 bb1@3 ~ c2@3 ~ c2 bb1 ab1@2", AL: "f1@3 ~ f1@2 eb1@2 f1 ~ f1@3 ~@3", AM: "~@6 f1 ~ c1@4 eb1@3 ~",
  AN: "ab1@3 ~ ab2@2 g2@2 f2@2 eb2@2 c2@2 eb2@2", AO: "bb1@2 ~ bb1 bb1@2 b1@2 c2@3 ~ c2@2 ab1@2",
  AP: "ab1@4 ab2@3 ab1 c2@2 f2@2 eb2@2 ab1@2", AQ: "bb1@2 bb1@2 bb1@2 b1@2 c2@3 ~ c2 bb1 ab1@2",
  AR: "ab1@3 ~ ab1@3 eb1 ab1@2 ~ eb1 ab1@2 a1@2", AS: "bb1@3 ~ bb1@3 ~ c2@3 ~ c2 bb1 ab1@2", AT: "f1 ~@7",
})).s("gm_synth_bass_1").gain(0.32)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@25 A B C ~ A B D ~ A B C E ~@32 A B C ~ A B D ~ A B C E F@2 G@2 H@2 I J ~@16 A K C E ~@14 L M N B O@2 P B Q@2 N B
  O@2 P B Q@2 N B O@2 P B Q@2 N B O@2 P B Q@2 N B O@2 P B Q@2 R
>`.pickRestart({
  A: "[ab2,eb3]@7 ~", B: "[bb2,f3]@7 ~ [c3,g3]@6 ~@2", C: "[f2,c3]@13 ~@3", D: "[f2,c3]", E: "~ [c3,g3]@3",
  F: "[[db3,ab3,db4]@29 ~@3]/2", G: "[[bb2,f3,ab3]@7 ~]/2", H: "[[db3,ab3,db4]@7 ~]/2", I: "[bb2,f3,ab3]@7 ~",
  J: "[c3,g3,c4]", K: "[bb2,f3]@8 [bb2,f3]@3 ~ [c3,g3]@2 ~@2", L: "[c3,g3]@7 ~", M: "[eb3,bb3]@7 ~",
  N: "[ab2,eb3]@15 ~", O: "[[f2,c3]@31 ~]/2", P: "ab2@15 ~, eb3@13 ~@3", Q: "[[f2,c3]@29 ~@3]/2", R: "[f2,c3]@3 ~@13",
})).s("gm_overdriven_guitar").gain(0.36)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  ~@13 A@2 B@2 ~@3 C D@2 E@2 F G@2 H I J K ~ F L M N ~@3 O@4 ~@5 P@2 Q ~@17 F G@2 R S T K ~ F U@2 V ~@8 W ~ W ~ W ~ W ~
  W ~ W ~ W ~ W ~ F X M ~ Y@4 Z@2 AA@2 ~@8 F G@2 AB AC AD K ~ F G@2 ~ F U@2 ~ F AE@2 AF F G@2 ~ F G@2 ~ F G@2 ~ F G@2 ~
  F G@2 ~@2
>`.pickRestart({
  A: "[~@4 [ab3,c4,f4,ab4]@4 [c4,f4,ab4]@6 [f4,ab4]@7 ~@11, ~@8 ab3@13 ~@11, ~@7 eb4 ~@8]/2", // Fm
  B: "[~@2 [d4,f4,ab4,c5]@2 [d4,f4,ab4,bb4] ~@2 c5@5 ~@4, ~@5 [c4,f4,ab4]@7 ~@4]/2", C: "~@6 eb4 f4",
  D: "[f4 f4@2 f4@2 eb4 f4 ab4@2 f4@4 eb4 f4@2]/2", E: "[g4 f4 g4 f4 g4@2 f4 g4@2 g4@2 g4@2 bb4 c5@2]/2",
  F: "[eb4,ab4,c5,eb5] [eb4,ab4,c5,eb5]@2 [c4,f4,ab4,c5]", // Ab Fm
  G: "[[bb3,eb4,g4,bb4] [c4,f4,ab4,c5] [c4,f4,ab4,c5]@2 [eb4,ab4,c5,eb5] [c4,f4,ab4,c5]@2 [c4,f4,ab4,c5]@7 ~@2]/2", // Eb Fm Ab Fm
  H: "~@4 [eb3,eb4] [f3,f4]!3", I: "[eb4,ab4]@2 [eb4,ab4,c5,eb5]@2 [d4,g4,bb4,d5] [c4,f4,ab4,c5]@3",
  J: "~@3 [c3,c4] [eb3,eb4] [f3,f4] [f3,f4]@2", K: "[eb4,ab4,c5,eb5] [c4,f4,ab4,c5]@2 [c4,f4,ab4,c5]@5",
  L: "[bb3,eb4,g4,bb4] [c4,f4,ab4,c5] [f4,ab4,c5] ~ [eb4,ab4,c5,eb5] [f4,ab4,c5]@2 [eb4,ab4,c5,eb5], ~@2 c4@2 ~ c4 ~@2", // Eb Fm Ab Fm Ab
  M: "[c4,f4,ab4,c5]@3 ~", N: "~ [e4,ab4,bb4,c5] ~@2",
  O: "[~@6 [f4,ab4] [ab4,c5]@2 [f4,ab4]@2 [ab4,c5]@2 [f4,ab4]@2 [ab4,c5]@2 [f4,ab4]@4 [ab4,c5]!2 [ab4,c5]@2 [f4,ab4]@2 [f4,ab4]@2 [ab4,c5]@3]/4", // Fm Ab Fm Ab Fm Ab Fm Ab …
  P: "[~@2 [c5,eb5] [bb4,d5]@2 [ab4,c5]@2 [c5,eb5]@2 [ab4,c5]@5 [f4,ab4,c5]@2]/2", // Cm Bb Ab Cm Ab Fm
  Q: "[ab4,c5,eb5] [g4,bb4,d5]!2 [f4,ab4,c5] [g4,bb4,d5] [f4,ab4,c5]@3", R: "~@4 eb4 f4!3",
  S: "[eb4,ab4,c5,eb5]@2 [eb4,ab4,c5,eb5]@2 [d4,g4,bb4,d5] [c4,f4,ab4,c5]@3", T: "~@3 c4 eb4 f4 f4@2",
  U: "[[bb3,eb4,g4,bb4] [c4,f4,ab4,c5] [c4,f4,ab4,c5]@2 [eb4,ab4,c5,eb5] [c4,f4,ab4,c5]@2 [c4,f4,ab4,c5]@9]/2", // Eb Fm Ab Fm
  V: "~ [g4,bb4,e5,ab5]@3", W: "[c4,eb4,f4,ab4] ~@7",
  X: "[bb3,eb4,g4,bb4] [c4,f4,ab4,c5] [c4,f4,ab4,c5]@2 [eb4,ab4,c5,eb5] [c4,f4,ab4,c5]@2 [eb4,ab4,c5,eb5]", // Eb Fm Ab Fm Ab
  Y: "[~@2 c4!2 eb4@2 f4 f4@3 ~@6]/2", Z: "[~@2 [ab3,c4,f4,ab4]@2 [ab3,c4,f4,ab4]@3 [c4,f4,ab4,c5]@3 ~@6]/2",
  AA: "[~@2 [ab4,c5,eb5]@2 [f4,ab4,d5] [f4,ab4,c5]@4 ~@7]/2", AB: "~@4 [c4,eb4,ab4,c5] [d4,f4,bb4,d5]!2 [c4,f4,ab4,c5]",
  AC: "[f4,ab4,c5]@2 [f4,ab4,c5,eb5]@2 [eb4,g4,bb4,d5] [c4,f4,ab4,c5]@3", // Fm Fm7 Ebmaj7 Fm
  AD: "~@3 [ab3,c4,ab4,c5] [c4,eb4,ab4,c5] [c4,f4,ab4,c5] [c4,f4,ab4,c5]@2", // Ab Fm
  AE: "[ab3,ab4] [f3,f4] [f3,f4]@2 [ab3,ab4] [f3,f4] [f3,f4]@2", // Ab F Ab F
  AF: "[ab3,ab4] [f3,f4] [f3,f4]@2 [ab3,ab4]!2 [f3,f4]@2", // Ab F Ab F
})).s("gm_epiano1").gain(0.2).pan(0.4)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@27 A B ~@3 C@2 ~@3 D E F G ~@3 H ~@3 I J K L M N O P Q@2 R S T U V W X Y Z AA AB ~@2 AC AD ~@2 AE AF ~@4 AG@2 AH@2
  AI@2 AJ AK ~ AL AM AN AO AP AQ@2 AR AS AT@2 AU AV AW AX ~@22 AY AZ ~@2 BA BB@2 ~ BC BD BE ~ BF BG ~@2 BH BI ~@2 BJ
  BK@2 BL BM BN BO BP BQ BR BS@2 BT BU BV BW BX BY ~
>`.pickRestart({
  A: "~@10 e4@2 ab4 ~ ab4@2", B: "f4 ~ eb4 ~@3 f4@7 ~@3", C: "[~@4 e5@2 ~@2 e5@13 ~@11]/2", D: "~@8 f4 ~@7",
  E: "[bb4,d5]@2 f4 ~@13", F: "~@6 f4 ~ ab4@2 f4 ~@5", G: "~@2 [bb4,d5] [ab4,c5]@2 ~@3",
  H: "[ab4,c5]!2 [ab4,c5]@2 [bb4,d5]!5 [ab4,c5]@7", // Ab Bb Ab
  I: "~@4 [b4,e5] [c5,f5] c5@2 f5 [c5,f5]@2 f5 [c5,f5]!3 ~, ~@6 f5 ~@9", J: "[c5,f5]@2 ~@4 ab4 ~@3 g4 ~ g4 ~ ab4 ~",
  K: "~@2 ab4 ~@3 ab4 ~ g4 ~ g4 ~ [bb4,d5]@2 [bb4,d5]@2", L: "~@2 ab4@4 ~@4 [g4,b4] ~@3 g4 ~, ~@2 c5 ~@13",
  M: "~@2 g4 ~@3 ab4 ~@3 ab4 ~@3 g4 ~", N: "~@6 ab4 ~ ab4 ~ ab4 ~@3 g4 ~",
  O: "~@2 ab4 ~@3 ab4 ~ [bb4,d5] ~ [bb4,d5]@2 ~@2 [ab4,c5]@2", P: "~ a4 ab4 ~ g4 ~ ab4 ~@3 ab4 ~@3 ab4 ~",
  Q: "[~@6 ab4 ~ [bb4,d5] ~ [bb4,d5]@2 ~@2 ab4@6 ~@2 g4 ~ g4 ~@5 [ab4,b4] ~, ~@7 c5 ~@8]/2", // Bb Abm
  R: "~@2 ab4 ~@3 ab4 ~ g4 ~ ab4 ~@3 ab4@2", S: "ab4 ~ g4 ~@3 ab4 ~@3 ab4 ~@3 ab4 ~",
  T: "~@2 [bb4,d5] ~@3 [bb4,d5]@2 ~@2 [bb4,d5]@2 ~@2 [ab4,c5]@2", U: "a4 [ab4,a4] ab4@2 g4 ~ g4 ~@3 ab4 ~@3 ab4 ~",
  V: "~@2 ab4 ~@3 ab4 ~ ab4 ~ ab4 ~@3 ab4 ~", W: "~@2 ab4 ~@3 ab4 ~@3 ab4 ~ d5 ~ [ab4,c5]@2",
  X: "a4 [ab4,a4] ab4@2 ab4 ~ ab4@4 ab4 ~@5", Y: "ab4 ~ ab4 ~@3 ab4 ~@7 ab4 ~",
  Z: "~@2 ab4 ~@3 ab4 ~ [bb4,d5] ~ d5 ~@3 [bb4,d5] ~", AA: "[g3,c4,e4]@13 ~@3", AB: "[bb3,eb4]@15 ~",
  AC: "~@4 ab4@2 ~@2 [bb4,d5]@2 f4 ~ [ab4,c5]@2 ~@2", AD: "[bb4,d5]@2 ~@2 [ab4,c5]@2 f4@7 ~@3",
  AE: "[g4,b4]@2 c5 ~ ab4 c5 [ab4,c5] c5 [ab4,c5] c5 [ab4,c5] c5 [ab4,c5] c5 [ab4,c5]@2, ~@3 c5@2 ~@11", // G Ab
  AF: "[g4,b4] ab4 [ab4,c5] c5 ~ c5 [ab4,c5]!6 [ab4,c5]@2 ~@2, ~@2 [ab4,c5] ~@5", AG: "[[ab3,db4]@29 ~@3]/2",
  AH: "[[ab3,d4,f4]@29 ~@3]/2", AI: "[[ab3,db4,f4]@29 ~@3]/2", AJ: "[ab3,d4,f4]@13 ~@3", AK: "[bb3,e4,g4]",
  AL: "~@4 c3@2 eb3 ~ f3@2 ab3@2 f3@2 ab3 ~", AM: "b3@13 ~@3", AN: "e4@13 ~@3", AO: "eb5@13 ~ f5!2", AP: "f5!11 e5@5",
  AQ: "[ab5 f5 ab5 f5 ab5 f5 ab5 f5 ab5 f5 ab5 f5 [f5,ab5] ~ ab5 f5@6 ~ bb4@3 ab4 f4 ~ eb4@4]/2", // Fm
  AR: "~@4 bb3@4 b3 ~ b3 ~ b3 ~ b3 ~", AS: "b3 ~ b3 ~ b3 ~ b3 ~ bb3@4 ab3 ~ bb3 ~",
  AT: "[bb3!2 ~@2 ab3 ~ bb3 ab3@5 f3 ~ f3@8 ~@10]/2", AU: "ab5@3 ~ gb5@2 ~@2", AV: "bb5@7 ~ bb5@3 ab5 bb5@2 ab5 ~",
  AW: "ab5@8 f5@2 eb5@2 c5 ~ bb4 ~", AX: "ab4 ~ a4@5 ~ bb4 ~ ab4@6", AY: "~ bb4@2 ab4 bb4 ~ ab4 ~",
  AZ: "bb4 ab4 ~ ab4@5", BA: "~@2 [d4,ab4,c5] ~@2 [ab4,c5] ~@2", BB: "[[ab4,c5]@3 ~@5 f4@2 eb4 ~ f4@2 f4@7 ~@11]/2",
  BC: "~@2 [bb4,d5]@2 ~@4 [ab4,c5]@2 gb4 ~@3 [bb4,d5] ~", BD: "~@2 [ab4,c5] ~@2 [bb4,d5] ~@2",
  BE: "[ab4,c5]@3 ~ f4@2 ~@2 f4@2 ~@6", BF: "~@4 c5!2 f4 ~, ~@2 ab4 ~", BG: "~@4 c5!2 ~@2, ~@2 ab4 ~",
  BH: "~@4 ab4@2 ~@2 [bb4,d5]@2 ab4 ~@5", BI: "~@4 [bb4,d5]@2 ab4 ~@3 f4 ~@5", BJ: "eb5@7 ~ e5 ~ f5@5 ~",
  BK: "[~@4 eb5@4 c5@2 bb4 ~ bb4@2 ab4@6 ~@12]/2", BL: "~@2 [ab4,c5] ~@5 [ab4,c5] ~@7", BM: "~@4 f4 eb4 ~@2",
  BN: "~@4 [ab4,c5]@2 ~@2 [bb4,d5]@2 ab4@5 ~, ~@10 c5 ~@5", BO: "~@10 f4 ~@5", BP: "~@6 f4 ~@5 f4 ~@3",
  BQ: "~@4 f4 ~@5 eb4 ~@5", BR: "~@2 [ab4,c5] ~ f4 ~@3", BS: "[~@6 c5 eb5@5 ~@4]/2",
  BT: "~@4 d5 ~ d5@2 c5 ~@3 bb4 ~ ab4 ~", BU: "bb4 ~@3 bb4 ~ ab4@6 ~@4", BV: "~@5 [ab4,c5] ~@2",
  BW: "[ab4,c5] ~ f4 ~ f4 ~ f4 ~", BX: "~@4 [bb4,d5] ~ ab4@2, ~@6 c5 ~", BY: "~@7 f4",
})).s("gm_overdriven_guitar").gain(0.35).pan(0.6)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
  ~@37 A ~ B C ~@8 D E ~ F G H I J K L M N@2 O P@2 Q R ~@4 S ~@59 T U ~@3 V W@2 X Y Z ~ AA AB@2 ~@3 AC ~ AD C AE AF ~ AG
  AH ~ R AI ~ AJ ~ AK ~
>`.pickRestart({
  A: "~@14 e4 ~", B: "~@8 c5@2 ~@4 f4 ~", C: "~@2 f4 ~@13", D: "~@8 g4 ~@7", E: "gb4 ~@15",
  F: "~@4 g4 ~@3 ab4 ~@3 g4 ~@3", G: "~@2 g4 ~@9 g4 ~@3", H: "~@7 d3", I: "~@3 a4 ab4 ~@7 g4 ~@3, d4 ~",
  J: "~@2 ab4 ~@11 db3@2", K: "~@10 g4 ~@5", L: "~@4 gb4 ~@11", M: "~@4 gb4@2 ~@2 g4 ~@3 g4 ~@3",
  N: "[~@15 d3@4 ~@13]/2", O: "~@4 g4 ~@5 d3 ~ f4 ~@3", P: "[~@4 ab4 ~@3 ab4 ~@5 d4@8 d4@6 ~@4]/2",
  Q: "~@10 g4 ~ g4 ~@3", R: "~@10 bb4 ~@5", S: "~ f4 ~ f4@2 ~@3", T: "g4 ~@15", U: "~@2 f4 ~@5", V: "~@2 gb4 ~@13",
  W: "[~@10 eb4@4 f4@7 ~@11]/2", X: "~@2 eb4 ~@3 f4 ~@7 eb4 ~", Y: "~@2 eb4 ~@3 f4 ~@5 f4@2 eb4 ~",
  Z: "~@2 f4 ~ f4 ~@5 f4 ~@3 f4 ~", AA: "~@6 e4 ~@9", AB: "[ab4 ~ f4 ~@3 c5 ~@5 eb4@2 f4@6 f4@2 ~@4 f4 ~@5]/2",
  AC: "~@4 f4 ~@11", AD: "~@4 f4@2 ~@8 f4 ~", AE: "f4 ~@3 f4 ~@11", AF: "f4 ~@15", AG: "f4 ~@9 eb4@2 f4@2 f4@2",
  AH: "~@5 bb4 ~@2", AI: "~@2 ab4 ~@9 f4 ~@3", AJ: "~@5 eb4 ~ f4", AK: "f4@2 eb4 ~ f4 ~ eb4 ~@3 eb4@2 f4@2 ~@2",
})).s("gm_overdriven_guitar").gain(0.15).pan(0.6)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note("<~@117 A@4 B@2 C D ~@41>".pickRestart({
  A: "[[c4,eb4,f4,ab4]@3 [d4,f4,g4,bb4]]/2", B: "[c4,eb4,f4,ab4]/2", C: "[c4,e4,g4]", D: "[eb4,g4,bb4]",
})).s("gm_synth_strings_1").gain(0.14).pan(0.4)

// bass · slap bass 1 · "SLAPBASS 1"
const bass_2 = note(`<
  ~@4 A ~@2 B@2 ~@9 C ~ D ~ C ~@5 A ~@3 A ~@10 E@2 ~@7 F ~ G ~ H ~@3 I ~ C J K ~@25 A L@2 ~ A ~ M ~ N ~@3 O ~@13 P ~@49
>`.pickRestart({
  A: "~@2 f2 ~@13", B: "[~@7 ab2@5 ~@4]/2", C: "~@2 f3 ~@13", D: "~@2 ab2@5 ~@9", E: "[~@7 eb3@4 ~@5]/2",
  F: "ab3@5 ~@3", G: "~@2 f3 ~@3 f3 ~@9", H: "~@2 [f2,f3]@3 ~ [f2,f3]@7 ~@3", I: "bb3@11 ~@5", J: "~@7 c3",
  K: "ab3@9 ~@7", L: "[~@7 eb3@5 ~@4]/2", M: "~@6 c2@2 ab2 ~ c2@2 ab2@2 f2 ~", N: "~@6 bb2 ~ ab2@5 ~@3",
  O: "~@3 f2@2 ~@3", P: "~ eb3@5 ~@2",
})).s("gm_slap_bass_1").gain(0.45)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@95 [~@11 ab5 ~ ab5 ~@2] [~@11 eb4@4 ~] ~ [~@13 bb3 ~ bb3] [~@5 bb3 ~@10] ~@66>")
  .s("gm_guitar_harmonics").gain(0.27).pan(0.7)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~ A B A B A B C B A B A B A B A B A B A B A B D@2 ~@2 A B ~@2 A B ~@2 A E A B A B A B A F A B A B A B A F A B A B A B
  A F A B A B A B D@2 ~@2 A B ~@2 A B ~@2 A E ~@8 A B A B A B A F A B A B A B ~@6 A B A B A B A F A B A B A B D@2 ~@2 A
  B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~
>`.pickRestart({
  A: "~@2 ab3!7 ~ f3@2 ~@2 eb3 ~", B: "f3 ~@7", C: "~@2 ab3!7 ~ f3 ~@3 eb3 ~",
  D: "[~ e4@12 ~@3 [eb4,g4]@14 ~@2, c4@13 ~@2 [g3,bb3]@15 ~@2]/2", E: "f3@2 ~@2 [g3,bb3,c4,d4,g4]@11 ~", F: "f3 ~@15",
})).s("gm_electric_guitar_muted").gain(0.25).pan(0.4)

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

// drums · rim
const rim = s("rim").struct("<~@109 [~ x ~ x]!15 ~@42>").gain(0.49)

// drums · clap
// … 65 more lines

More by Eurythmics