Strudelify

I'm Running

Yes

KeyD minorTempo178 bpm
0:00/0:00
// I'm Running — Yes
// 178 bpm, 4/4, key D minor. 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: duplicate parts dropped: ch 6 "PRG.CHANGE" electric guitar muted (copy of ch 9 "PRG.CHANGE" steel drums)
// note: Full arrangement: all 172 bars on a 24-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): PRG.CHANGE.
setcpm(178/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 · electric bass finger · "PRG.CHANGE"
const bass = note(`<
  A@2 B@3 C D@2 E F@3 G@2 H@2 I@4 J K@2 L@2 M@2 N O@4 P@4 ~@26 Q@5 R S@2 T@2 U V W X Y X Z AA@3 W X ~@3 AB AC@3 R AD@2
  AE R AD@2 AE R AF@2 AG R AF@2 AH@2 U V W AI Y X Z AJ@3 W X AK AL@3 ~ AM AN@5 AO@3 AP AQ@3 B@3 AR D@2 E AS@5 AT@2 AU
  AV@2 AW AX@3 AY AZ BA BB@7 BC@3
>`.pickRestart({
  A: "[~@2 a2@6 e3@2 ~ d2 ~ b2@3 d3@6 a2@6 db3@6 g2@3 b2@5 g2@6]/2",
  B: "[d2@6 a2@6 db2@3 a2@3 ~@3 b1@5 a2@6 f2@9 c3@3 f2@3 g2@3 bb2@5 f2@6 a2@6 f2@3 g2@2]/3",
  C: "~ g2@3 eb2@6 a2@5 e3@2 ~ d2 ~@2 b2@3", D: "[d3@6 a2@6 db3@5 g2@3 b2@6 g2@6 d2@6 a2@6 db2@2 a2@2]/2",
  E: "~@2 b1@3 a2@3 f2@4",
  F: "[~ c3@3 f2@2 g2@3 bb2@6 f2@6 a2@6 f2@3 g2@3 g2@2 eb2@6 a2@6 e3@2 ~ d2 ~@2 b2@3 d3@6 a2@5 db3@5]/3",
  G: "[~ g2@3 b2@6 g2@6 d2@5 a2@6 db2@3 a2@3 ~@3 b1@6 a2@6]/2",
  H: "[f2@8 c3@3 f2@3 g2@3 bb2@6 f2@6 a2@5 f2@3 g2@3 g2@3 eb2@5]/2",
  I: "[~ a2@6 e3@2 ~ d2 ~@2 b2@2 d3@6 a2@6 db3@6 g2@3 b2@6 g2@5 d2@6 a2@6 db2@3 a2@3 ~@3 b1@5 a2@6 f2@9 c3@3 f2@3 g2@2]/4",
  J: "~ bb2@6 f2@5 a2@6 f2@3 g2@3", K: "[g2@3 eb2@6 a1@5 a1@6 a1@3 a1@3 a1@3 a1@5 ~ a1@3 a1@5 a1@3 a1@2]/2",
  L: "[~ a1@3 a1@3 a1@3 d2@9 db2@8 b1@6 b1@3 b1@3 b1@3 c2@4 ~@2]/2",
  M: "[c2@3 c2@2 c2@3 ~@3 c2@3 c2@3 ~@3 c2@3 c2@3 ~@3 c2@3 c2@3 c2@2 c2@3 a1@4 ~@2 a1@2]/2",
  N: "~ a1@3 a1@3 ~@3 a1@3 a1@3 ~@2 a1@3 a1@3",
  O: "[~@3 a1@3 a1@3 a1@3 a1@3 a1@3 d2@8 db2@9 b1@6 b1@3 a1@3 b1@3 c2@46]/4", P: "d1/4", Q: "[~ d1@19]/5", R: "a0 c1",
  S: "[d1@7 c1]/2", T: "d1/2", U: "a3", V: "b3", W: "c4", X: "e3", Y: "d3", Z: "f3",
  AA: "[~@7 a3@9 b3@8, b3 ~@2, ~@5 a1@19]/3", AB: "~@3 a0", AC: "d1/3", AD: "[d1@7 a0]/2", AE: "d1",
  AF: "[d1@3 d1@2 d1 d1@3 d1@2 d1 d1@2 c1@2]/2", AG: "d1@3 d1@5", AH: "[d1@3 d1@2 d1@2 d1@4 d1@2 d1@3]/2",
  AI: "e3@5 d3@3", AJ: "[~@5 a1@2 a3@9 b3@8, b3 ~@2, ~@7 a1@17]/3", AK: "~@6 f3@7 ~@2 a2@9",
  AL: "[c3@8 ~ f2@9 e2@9 d2@9 c2@24 ~@12]/3", AM: "~@10 a2@6 e3@2 ~ d2 ~@2 b2@2",
  AN: "[~ d3@6 a2@6 db3@5 g2@3 b2@6 g2@6 d2@6 a2@5 db2@3 a2@3 ~@3 b1@6 a2@6 f2@8 c3@3 f2@3 g2@3 bb2@6 f2@6 a2@6 f2@2 g2@3 g2@3 eb2@6 a2@6]/5",
  AO: "[e3@2 ~ d2 ~@2 b2@3 d3@5 a2@6 db3@6 g2@3 b2@6 g2@6 d2@5 a2@6 db2@3 a2@3 ~@3 b1@6 a2@5]/3",
  AP: "f2@3 c3 f2 g2 bb2@2",
  AQ: "[f2@5 a2@6 f2@3 g2@3 g2@3 eb2@6 a2@6 e3@2 d2 ~@2 b2@3 d3@6 a2@6 db3@6 g2@3 b2@5 g2@6]/3",
  AR: "~ g2@3 eb2@5 a2@6 e3@2 ~ d2 ~@2 b2@3",
  AS: "[~ c3@2 f2@3 g2@3 bb2@6 f2@6 a2@6 f2@3 g2@2 g2@3 eb2@6 a1@6 a1@6 a1@3 a1@3 a1@2 a1@5 ~ a1@3 a1@6 a1@3 a1@3 a1@3 a1@3 a1@3 d2@8 db2@9 b1@6 b1@3 a1@3]/5",
  AT: "[b1@2 db1@4 ~@2 db1@3 db1@3 db1@3 ~@3 db1@3 db1@3 ~@3 db1@2 db1@3 ~@3 db1@3 db1@3 db1@3 db1@2]/2",
  AU: "~ e1@4 ~@2 e1@3 e1@2 e1@3 ~@3 e1@3 e1@3", AV: "[~@3 e1@3 e1@3 ~@3 e1@3 e1@2 e1@3 e1@3 e1@3 d1@9 db1@9 b0@3 ~]/2",
  AW: "~@4 c1@3 f1@9 e1@8", AX: "[~ d1@3 ~@5 eb1@3 ab1@9 g1@9 f1@6 ~@2 f2@9 e2@9 d2@8 c2@8]/3",
  AY: "~ b1@9 bb1@11 a1@3", AZ: "db2 e2 eb2 g2 bb2 a2 db3 e3", BA: "eb3@3 eb3@2 eb3@3 a3@3 a3@3 a3@3 ~@7",
  BB: "[~@22 g1@17 ~ d1@42 c1@6 d1@72 a0@8]/7", BC: "[~ c1@3 d1@12 ~@2]/3",
})).s("gm_electric_bass_finger").gain(0.39)

// chords · acoustic guitar steel · "PRG.CHANGE"
const acoustic_guitar_steel = note(`<
  ~@13 A ~ B ~@3 C D ~ E ~ F ~ G H I@2 ~@94 J@2 ~@2 K ~ L ~@2 M ~ N ~@3 O P ~@3 Q ~ R ~@3 S@2 ~@20
>`.pickRestart({
  A: "~@6 e3 ~", B: "~@10 [a2,c3,f3]@3 ~@11", C: "~ e3@3 ~@20", D: "~@6 [a2,c3,f3] ~", E: "~@17 [a2,e3,a3]@3 ~@4",
  F: "~@6 a3 ~@5", G: "~@11 [e3,a3]", H: "~ [e3,a3]@3 [e3,a3]@3 ~@3 [e3,a3]@3 [e3,a3]@3 ~@2 [e3,a3]@3 [e3,a3]@3",
  I: "[~@3 [e3,a3]@3 e3@3 [e3,a3]@3 [e3,a3]@3 ~@8 d4@3 ~@6 db4@3 ~@13]/2", // A5
  J: "[~@14 a2 ~ a2 b2@2 ~ db3@2 ~ d3@2 ~ e3@3 gb3@2 g3@3 ~@14]/2", K: "~@11 e3@3 ~@10", L: "~@4 [a2,c3,f3]@3 ~@17",
  M: "~@19 e3@3 ~@2", N: "~@11 [a2,c3,f3]@3 ~@10", O: "~@2 e3@3 ~@19", P: "~@19 [a2,c3,f3]@3 ~@2", Q: "~@10 e3@3 ~@11",
  R: "~ [a2,c3,f3] ~@6", S: "[~@2 d4@11 ~ c4@9 bb3@14 gb4@11]/2",
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.1)

// other · marimba · "PRG.CHANGE"
const marimba = note("<~@62 A B A B A B A B ~@102>".pickRestart({
  A: "d3@8 ~ d3@8 ~ d3@6", B: "~@3 d3@6 d3@3 d3@11 ~",
})).s("gm_marimba").gain(0.27).pan(0.9)

// chords · synth strings 1 · "PRG.CHANGE"
const synth_strings_1 = note(`<
  ~@72 A B C B A B C B A B C B ~@24 A B C B A B C B A B C B D E@4 ~@37 F@8 ~@2
>`.pickRestart({
  A: "[d3,a3,f4]", B: "[e3,b3,g4]", C: "[f3,c4,a4]", D: "~@2 [d3,a3,f4]@3 [c3,g3,e4]@3",
  E: "[[a2,f3,d4]@9 [f3,d4,a4]@9 [e3,c4,g4]@9 [c3,a3,f4]@9 [e3,g3,c4,a4]@47 ~@13]/4", F: "[~@11 [d4,f4,a4]@85]/8",
})).s("gm_synth_strings_1").gain(0.22)

// chords · music box · "PRG.CHANGE" · D5
const music_box = note(`<
  ~@84
  [~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~ [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~]
  [~ [a5,d6] ~@2 [a5,d6] ~ [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2]
  [[a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2 [a5,d6] ~@2]!2
  ~@84
>`).s("gm_music_box").gain(0.14).pan(0.6)

// chords · string ensemble 1 · "PRG.CHANGE"
const string_ensemble_1 = note("<~@92 A@8 ~@4 B@4 ~@64>".pickRestart({
  A: "[~@7 d5, [c4,f4,a4]]/8", // F
  B: "[~@6 d5 ~@2 d5 ~@5 d5 ~@2 d5 ~@2 d5 ~@38 a5 ~@2 a5 ~@2 a5 ~@2 a5 ~@2 a5 ~@2 a5 ~@2 a5 ~@2 a5 ~@14, a4@95 ~]/4",
})).s("gm_string_ensemble_1").gain(0.19).pan(0.9)

// other · lead 8 bass lead · "PRG.CHANGE"
const lead_8_bass_lead = note(`<
  ~@48 A ~ B@2 A C D E A F B@2 G H I J K@2 L@2 M@2 N O P@3 ~ Q@3 R S@3 ~@9 T@2 U V W X@2 ~ Y@2 U V Z@2 I O P@3 AA AB@3
  AC@2 AD AE AF ~@16 AG@2 AH@3 AI AJ@6 AK AL@3 AM ~@19
>`.pickRestart({
  A: "a4@4 ~@2 d4@3 d4@8 ~ g4@6", B: "[a4@4 ~@2 d4@3 d4@6 g4@5 ~ g4@14 ~ f4@6 ~@6]/2", C: "~@3 f4!2 e4 d4 c4",
  D: "d4@3 ~", E: "~@18 a4@5 ~", F: "~@7 d4", G: "a4@4 ~@2 d4@3 d4@9 ~@6", H: "~@3 a3 f4 e4 d4 c4", I: "d4",
  J: "~@6 a4!2", K: "[a4@4 ~@2 g4@3 g4@5 ~ g4@5 ~ g4@6 a4@8 ~@10 a4@3]/2",
  L: "[a4@4 ~@2 a4@3 a4@6 c5@6 b4@14 ~@10 a4@3]/2", M: "[c5@3 c5@6 c5@4 ~@2 c5@4 ~@2 c5@6 b4@6 a4@6 a4@4 ~@2 g4@3]/2",
  N: "b4@2 g4 a4@5", O: "~@12 c5@3 d5@8 ~", P: "[g5@45 f5@7 ~@20]/3", Q: "[g5@51 f5@8 ~@13]/3", R: "~@4 c5 d5@3",
  S: "[g5@57 f5@8 ~@7]/3", T: "[~@3 a3 d4 e4@2 f4@2 ~@3 a4@4]/2", U: "g4@2 e4 c4@3 ~@2", V: "~@4 f4 e4 d4 c4",
  W: "d4@2 ~@3 d4@2 e4", X: "[f4@2 g4 e4@3 c4 a3@5 ~@4]/2", Y: "[~@3 a3 d4 e4@2 f4@5 a4@4]/2",
  Z: "[d4@2 ~@3 d4 e4 f4@3 g4@2 e4@2 f4@2]/2", AA: "~@4 a5 a5@3", AB: "[a5@17 f5@2 ~@5]/3",
  AC: "[~@5 a5@2 a5@7 c6@2]/2", AD: "b5@3 c6", AE: "a5", AF: "~@2 c6 a5 c6@2 c6@2",
  AG: "[~@2 a4@11 ~@3 b4@3 db5@3 d5@6 db5@6 b4@6 a4@6 ~@2]/2",
  AH: "[a4@3 b4@3 db5@3 d5@6 db5@6 b4@5 a4@6 ~@3 a4@11 ~ f4@3 f4@5 f4@4 ~@2 eb4@9 ~@2]/3", AI: "~@9 a4@11 ~@4",
  AJ: "[b4@3 db5@3 d5@6 db5@5 b4@6 a4@6 ~@3 a4@3 b4@3 db5@3 d5@5 db5@6 b4@6 a4@6 ~@3 a4@11 f4@3 f4@6 f4@4 ~@2 eb4@9 ~@11 a4@6 a4@3 a4@3 bb4@6 bb4@2 b4@3 ~@3 b4@4 ~]/6",
  AK: "~ b4@3 c5@6 c5@6 ~@3 b4@5", AL: "[b4@3 db5@6 db5@3 d5@32 c5@6 bb4@11 ~@6 ab4@5]/3", AM: "~ a4@23",
})).s("gm_lead_8_bass_lead").gain(0.19)

// other · acoustic guitar steel · "PRG.CHANGE"
const acoustic_guitar_steel_2 = note("<~@16 A B C@5 D E@2 F G H@2 I@2 ~@120 J ~ K L M N ~@14>".pickRestart({
  A: "~@10 e4@3 a4@3 [a4,db5]@4 [b4,d5]@4", B: "[db5,e5]@4 [db5,e5]@4 [b4,d5]@4 [a4,db5]@9 ~@3",
  C: "[~@2 d3@3 e3@3 gb3@3 g3@3 a3@3 b3@3 db4@3 d4@2 e4@3 gb4@3 g4@3 [f4,a4]@11 ~ [eb4,g4]@9 [f4,a4]@3 ~@2 [f4,a4]@3 ~@3 [f4,a4]@3 [eb4,g4]@11 ~@9 e5 ~ d5 db5@3 d5@3 e5@3 a4@9 ~@10]/5", // F Eb F Eb
  D: "~@10 a4 g4 ~ gb4@3 g4@3 a4@3 gb4@2",
  E: "[d4@3 g4@6 g4@3 e4@3 g4@3 [f4,a4]@11 [eb4,g4]@9 [f4,a4]@3 ~@3 [f4,a4]@3 ~]/2", F: "~@2 [f4,a4]@3 [eb4,g4]@11 ~@8",
  G: "~ [b3,b4]@6 [a3,a4]@6 [g3,g4]@5 [gb3,gb4]@6", // B A G Gb
  H: "[c4@3 db4@3 a3@5 ~@10 d4@2 e4@3 gb4@3 g4@3 a4@3 b4@3 db5@3 d5@3 e5@4]/2", I: "[~ f5@23]/2",
  J: "~@10 e5 d5 db5@3 d5@3 e5@3 a4@3", K: "~@2 a4 ~ g4 gb4@3 g4@3 a4@3 gb4@3 d4@3 b3@3 ~",
  L: "~@7 c5 ~ bb4 a4@3 bb4@3 c5@3 a4@3 f4@2", M: "~ d4@3 ~@8 eb5 ~ db5 c5@3 db5@3 eb5@3", N: "c5 ab4 f4 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.62).pan(0.6)

// chords · pad halo · "PRG.CHANGE"
const pad_halo = note("<~@32 A@8 B C D@3 C D@3 C D@3 C E@2 B C D@3 C D@3 C D@3 C E@2 ~@100>".pickRestart({
  A: "[a3,d4]/8", B: "[a3,d4]", C: "[c4,f4] [g3,c4]", D: "[a3,d4]/3", E: "[a3,d4]/2",
})).s("gm_pad_halo").gain(0.03).pan(0.6)

// chords · electric guitar clean · "PRG.CHANGE"
const electric_guitar_clean = note(`<
  ~@5 A B@2 C D E F G H I@2 J K@2 L M@3 N@2 O P Q R@4 ~@8 S@32 ~@12 S@22 T@2 ~@17 U V@3 W X Y Z AA AB AC AD AE AF AG@3
  AH@2 AI AJ AK@2 AL@2 AM@2 AN AO AP AQ AR@2 ~ AS AT AU ~@10
>`.pickRestart({
  A: "~@10 e3@5 a3@2 ~@4 d3@3", B: "[g3@2 ~@4 e3@3 ~@3 a3@3 ~@2 d3@3 g3@6 d3@6 gb3@6 d4@2 ~@4 e3@2 a3@2]/2",
  C: "~@4 d3@3 ~@3 e3@2 ~@4 d3@3 c3@5", D: "~ f3@3 ~@2 bb2@3 eb3@2 ~@4 c3@3 ~@3 f3@3",
  E: "~@3 bb2@3 eb3@5 bb2@6 [e3,a3,db4]@6 [e3,a3,db4]", // A
  F: "~@5 [d3,g3,b3]@3 [d3,g3,b3]@3 ~@3 [e3,a3,db4]@3 ~@2 [a3,db4,e4]@3 ~@2", // G A
  G: "~ [e3,a3,b3]@3 [g3,b3,d4]@6 [d3,g3,b3]@3 ~@3 [a3,d4,gb4]@5 [d4,gb4,a4]@3", // Esus4 G D
  H: "~ [a3,db4,e4] [db4,e4,a4] ~ [g3,b3,d4] ~ [a3,db4,g4] ~", // A G A7
  I: "[[g3,b3,d4]@3 [c4,f4,a4]@3 ~@2 [c4,f4,a4]@2 ~@4 [bb3,eb4,g4]@3 [bb3,eb4,g4]@3 ~@3 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@3 ~@2 [g3,bb3,eb4]@3 [bb3,eb4,g4]@6 [g3,bb3,eb4]@3 ~@2]/2", // G F Eb F Eb
  J: "~ [e3,a3,db4]@6 [e3,a3,db4] ~@5 [d3,g3,b3]@2 [d3,g3,b3]@3 ~@3 [e3,a3,db4]@3", // A G A
  K: "[~@3 [a3,db4,e4]@3 ~@3 [e3,a3,b3]@3 [g3,b3,d4]@6 [d3,g3,b3]@3 ~@2 [a3,d4,gb4]@6 [d4,gb4,a4]@3 ~@3 [a3,db4,e4]@3 [db4,e4,a4]@3 ~@3 [g3,b3,d4]@3 ~]/2", // A Esus4 G D A G
  L: "~ [a3,db4,g4]@3 ~@3 [g3,b3,d4]@3 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@2 ~@4 [bb3,eb4,g4]@2", // A7 G F Eb
  M: "[~ [bb3,eb4,g4]@3 ~@3 [c4,f4,a4]@3 ~@2 [c4,f4,a4]@3 ~@3 [g3,bb3,eb4]@3 [bb3,eb4,g4]@6 [g3,bb3,eb4]@3 ~@3 [db4,e4,a4]@5 [db4,e4,a4] ~@5 [b3,d4,g4]@3 [b3,d4,g4]@3 ~@3 [db4,e4,a4]@3 ~@3 [db4,e4,a4]@3 ~@3 [b3,d4,g4]@2 [b3,d4,g4]@5]/3", // Eb F Eb A G A G
  N: "[~ [b3,d4,g4]@3 ~@6 [a3,d4,gb4]@9 [a3,db4,e4]@8 [g3,b3,d4]@3 ~@3 [g3,b3,d4]@2 ~ [g3,b3,d4]@2 ~ [g3,b3,d4]@2 ~ [a3,c4,f4]@3 ~@3]/2", // G D A G F
  O: "[a3,c4,f4]@3 ~@2 [g3,bb3,eb4]@3 [g3,bb3,eb4]@3 ~@3 [a3,c4,f4]@3 ~@3 [a3,c4,f4]@3 ~", // F Eb F
  P: "~@2 [a3,c4,f4]@3 [g3,bb3,eb4]@3 [g3,bb3,eb4]@3 [g3,bb3,eb4]@3 ~@2 [a2,e3,a3]@3 ~@5", Q: "~ b3@6 a3@6 g3@5 gb3@6",
  R: "[c3@3 db3@3 a2@9 ~@3 [a3,d4,gb4]@8 [a3,db4,e4]@9 [g3,b3,d4]@3 ~@3 b3@3 a3@3 b3@3 [c3,f3,a3,c4]@46]/4", // D A G F
  S: "[~@18 c4 ~@2 d4@3, d3 ~, ~@6 d4@9 a3@9 ~@3 a3@6 a3@5 ~@10, ~@9 c4@9 ~@3 g3@8 ~ c4@5 ~@13]/2",
  T: "[~@12 c4 [a3,d4]@3, d3 ~, ~@6 d4@9 a3@9 ~@3 a3@6 a3@5 ~@10, ~@9 c4@9 ~@3 g3@8 ~ c4@5 ~@13]/2", // D5
  U: "~@10 [e3,a3,db4]@6 [e3,a3,db4] ~@5 [d3,g3,b3]@2", // A G
  V: "[~ [d3,g3,b3]@3 ~@3 [e3,a3,db4]@3 ~@3 [a3,db4,e4]@3 ~@2 [e3,a3,b3]@3 [g3,b3,d4]@6 [d3,g3,b3]@3 ~@3 [a3,d4,gb4]@6 [d4,gb4,a4]@3 ~@2 [a3,db4,e4]@3 [db4,e4,a4]@3 ~@3 [g3,b3,d4]@3 ~@3 [a3,db4,g4]@3 ~@3 [g3,b3,d4]@3 [c4,f4,a4]@3 ~]/3", // G A Esus4 G D A G A7 …
  W: "~ [c4,f4,a4]@2 ~@4 [bb3,eb4,g4]@3 [bb3,eb4,g4]@3 ~@3 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@2", // F Eb F
  X: "~@4 [g3,bb3,eb4]@2 [bb3,eb4,g4]@6 [g3,bb3,eb4]@3 ~@3 [e3,a3,db4]@6", // Eb A
  Y: "[e3,a3,db4] ~@5 [d3,g3,b3]@3 [d3,g3,b3]@3 ~@2 [e3,a3,db4]@3 ~@3 [a3,db4,e4]@3 ~", // A G A
  Z: "~@2 [e3,a3,b3]@3 [g3,b3,d4]@6 [d3,g3,b3]@3 ~@3 [a3,d4,gb4]@5 [d4,gb4,a4]@2", // Esus4 G D
  AA: "~@4 [a3,db4,e4]@3 [db4,e4,a4]@3 ~@3 [g3,b3,d4]@3 ~@3 [a3,db4,g4]@3 ~@2", // A G A7
  AB: "[g3,b3,d4]@3 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@2 ~@4 [bb3,eb4,g4]@3 [bb3,eb4,g4]@3 ~@3", // G F Eb
  AC: "[c4,f4,a4]@3 ~@2 [c4,f4,a4]@3 ~@3 [g3,bb3,eb4]@3 [bb3,eb4,g4]@6 [g3,bb3,eb4]@3 ~", // F Eb
  AD: "~@2 [e3,a3,db4]@6 [e3,a3,db4] ~@4 [d3,g3,b3]@3 [d3,g3,b3]@3 ~@3 [e3,a3,db4]@2", // A G A
  AE: "~@4 [a3,db4,e4]@3 ~@3 [e3,a3,b3]@3 [g3,b3,d4]@5 [d3,g3,b3]@3 ~@3", // A Esus4 G
  AF: "[a3,d4,gb4]@2 [d4,gb4,a4] ~ [a3,db4,e4] [db4,e4,a4] ~ [g3,b3,d4]", // D A G
  AG: "[~@2 [a3,db4,g4]@3 ~@3 [g3,b3,d4]@3 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@2 ~@4 [bb3,eb4,g4]@3 [bb3,eb4,g4]@3 ~@2 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@3 ~@3 [g3,bb3,eb4]@3 [bb3,eb4,g4]@6 [g3,bb3,eb4]@3 ~@2 [e3,a3,db4]@6 [e3,a3,db4] ~@5 [d3,g3,b3]@3]/3", // A7 G F Eb F Eb A G
  AH: "[[d3,g3,b3]@3 ~@3 [e3,a3,db4]@3 ~@3 [a3,db4,e4]@3 ~@2 [e3,a3,b3]@3 [g3,b3,d4]@6 [d3,g3,b3]@3 ~@3 [a3,d4,gb4]@6 [d4,gb4,a4]@3 ~@3 [a3,db4,e4]@2 [db4,e4,a4]@2]/2", // G A Esus4 G D A
  AI: "~@4 [g3,b3,d4]@3 ~@3 [a3,db4,g4]@3 ~@3 [g3,b3,d4]@3 [c4,f4,a4]@3 ~@2", // G A7 G F
  AJ: "~ [c4,f4,a4]@2 ~@3 [bb3,eb4,g4]@3 [bb3,eb4,g4]@3 ~@3 [c4,f4,a4]@3 ~@3 [c4,f4,a4]@3", // F Eb F
  AK: "[~@3 [g3,bb3,eb4]@3 [bb3,eb4,g4]@5 [g3,bb3,eb4]@3 ~@3 [a3,db4,e4]@11 ~ [bb3,d4,f4]@8 [b3,eb4,gb4]@3 ~@3 [b3,eb4,gb4]@3 ~@2]/2", // Eb A Bb B
  AL: "[~ [b3,eb4,gb4]@3 [c4,e4,g4]@8 ~@7 [b3,e4,ab4]@8 [db4,e4,a4]@9 [a3,d4,gb4]@3 ~@3 [a3,d4,gb4]@2 ~ [a3,d4,gb4]@2 ~]/2", // B C E A D
  AM: "[[a3,d4,gb4]@2 [f4,bb4]@11 ~ [eb4,ab4]@9 [db4,gb4]@14 [b3,e4]@11]/2", // D Bb5 Ab5 Gb5 E5
  AN: "~ [e3,a3,db4]@6 [e3,a3,db4] ~@4 [d3,g3,b3]@3 [d3,g3,b3]@3 ~@3 [e3,a3,db4]@3", // A G A
  AO: "~@3 [a3,db4,e4]@3 ~@3 [e3,a3,b3]@3 [g3,b3,d4]@5 [d3,g3,b3]@3 ~@4", // A Esus4 G
  AP: "~@2 [d3,a3,d4,gb4]@9 [e3,a3,db4,e4]@9 [d3,g3,b3,d4]@3 ~", // D A G
  AQ: "~@7 [f3,c4,f4,a4]@6 [f3,c4,f4,a4]@3 [g3,c4,e4,g4]@8", // F C
  AR: "[~ [f3,bb3,d4,f4]@3 ~@8 [ab3,eb4,ab4,c5]@6 [ab3,eb4,ab4,c5]@3 [bb3,eb4,g4,bb4]@9 [ab3,db4,f4,ab4]@3 ~@15]/2", // Bb Ab Eb Db
  AS: "~@19 a3@2 e3@3", AT: "db3 a2 bb2 eb3 g3 a2 db3 e3", AU: "eb3@3 g3@2 bb3@3 a3@3 db4@3 e4@3 ~@7",
})).s("gm_electric_guitar_clean").gain(0.17).pan(0.9)

// chords · overdriven guitar · "PRG.CHANGE"
const overdriven_guitar = note("<~@38 A@2 ~@32 B@8 C@4 ~@24 B@8 C@4 D E@4 ~@47>".pickRestart({
  A: "a4/2",
  B: "[~@7 d4@2 ~@6 d4@2 ~@6 d4@2 ~@6 d4@2 ~@6 d4@2 ~@6 d4@2 ~@6 d4@2 ~@6 d4, ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2, ~@2 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~]/8",
  C: "[~@7 d4@2 ~@6 d4@2 ~@6 d4@2 ~@6 d4, ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2, ~@2 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~@3 d4@2 e4@2 a3@2 ~ a3@2 a3@2 d4@2 ~]/4",
  D: "~@2 [d3,a3,d4]@3 [d3,a3,d4]@3", E: "[[d3,a3,d4]@9 [d3,a3,d4]@9 [d3,a3,d4]@9 [d3,a3,d4]@9 [c3,g3,c4]@47 ~@13]/4",
})).s("gm_overdriven_guitar").gain(0.15)

// other · overdriven guitar · "PRG.CHANGE"
const overdriven_guitar_2 = note("<~@114 A B ~@4 C D@4 ~@47>".pickRestart({
  A: "~@3 d3!2 ~ g3@3 a3@3 d4@3 g3@3 c4@3 a3@3", B: "d4@3 b3@19 ~@2", C: "~@2 f5@3 e5@3",
  D: "[d5@9 f5@9 e5@9 d5@9 e5@41 ~@19]/4",
})).s("gm_overdriven_guitar").gain(0.19).pan(0.1)

// other · steel drums · "PRG.CHANGE"
const steel_drums = note("<~@141 A B@3 C D ~@25>".pickRestart({
  A: "~@9 db4!12 ~@3", B: "[d4@3 e4@3 gb4@6 e4@5 d4@6 db4@6 ~@3 db4@3 d4@3 e4@3 gb4@5 e4@6 d4@6 db4@6 db4@3 c4!5]/3",
  C: "c4!5 ~ a3@3 a3@6 a3@6 a3@3", D: "g3@11 ~@13",
})).s("gm_steel_drums").gain(0.19).pan(0.7)

// other · pan flute · "PRG.CHANGE"
const pan_flute = note(`<
  ~@10 A@2 B C D@2 E F@2 G@4 H@4 I J@2 K@2 ~@98 L M N O P Q R S T U@3 V@2 W X Y ~@25
>`.pickRestart({
// … 245 more lines

More by Yes