Strudelify

Almost Like Love

Yes

KeyD♭ majorTempo143 bpm
0:00/0:00
// Almost Like Love — Yes
// 143 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 "PRG.CHANGE" percussive organ (copy of ch 7 "PRG.CHANGE" percussive organ, 0.208 beats late)
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(143/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 pick · "PRG.CHANGE"
const bass = note("<~@4 [~@5 ab2!3] ~@139>").s("gm_electric_bass_pick").gain(0.48)

// bass · electric bass finger · "PRG.CHANGE"
const bass_2 = note(`<
  ~@5 A@4 B@4 C@2 D@2 C@2 E@2 F@7 G F@2 G H I@2 J K F@2 L M N O P@2 N O Q@2 R S T@2 N O U@2 F@6 V W I@2 J K F G L M N O
  P@2 N O Q@2 R S T@2 N O U@2 X@2 Y@2 X@2 S Z@2 C@2 D@2 C@2 AA@2 AB AC AB AD C@2 D@2 C@2 AE@6 ~@2 AF@8 AG@8 AH@4
>`.pickRestart({
  A: "[ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 ab1 ~ ab1 ~ ab1 ~]/4",
  B: "[ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 ab1 ~ ab1@2 ~@2]/4",
  C: "[ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@2]/2",
  D: "[ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 ab1 ~ ab1 ~ ab1 ~]/2",
  E: "[ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 ab1@2 ab1@4]/2", F: "eb1@2 ~@4 eb1@2 ~@6 bb0 c1",
  G: "eb1@2 ~@4 eb1@2 ~@4 eb1@2 bb0 c1", H: "eb1@2 ~ eb1@5", I: "db1@2 ~@4 db1@2 ~@6 ab0 bb0",
  J: "db1@3 ~@3 db1@2 ~@6 ab0 bb0", K: "db1", L: "eb1!8", M: "db1!2 eb1!2 gb1 ab1!2 gb1", N: "ab1@7 ab1", O: "bb1",
  P: "gb1/2", Q: "[bb1@3 db2@3 gb1@10]/2", R: "ab1@6 ab1 ~", S: "f1", T: "[gb1@3 db2]/2", U: "[b1@9 gb1 gb1@6]/2",
  V: "eb1 ~@2 eb1 ~@4", W: "eb1@3 eb1 ~@3 eb1", X: "[ab1@7 gb1@9]/2", Y: "[f1@7 gb1@9]/2", Z: "[gb2@7 db2]/2",
  AA: "[ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 ab1@2 ab1@2 ~@2]/2", AB: "ab1 f1 gb1 g1 ab1 c2 db2 d2",
  AC: "eb2 f1 gb1 g1 ab1 f1 gb1 g1", AD: "eb2 f2 gb2 g2 ab2 f1 gb1 g1",
  AE: "[ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@66 ~@8]/6",
  AF: "[a0@24 b1@32 ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@2 ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 gb1@4 g1 ~ ab1@2 gb1@2 ab1 ~ ab1@2]/8",
  AG: "[~@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@2 ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 ab1@6 ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 ab1 ~ ab1 ~ ab1 ~ ab1@2 gb1@2 ab1 ~ ab1@2]/8",
  AH: "[~@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1@4 gb1@2 ab1 ~ ab1 ~ ab1@2 gb1@2 ab1 ~ ab1@4 gb1@2 ab1@2 db1@4 eb1@4 gb1@4 ab1 ~ ab1@4 ~@8]/4",
})).s("gm_electric_bass_finger").gain(0.4)

// other · distortion guitar · "PRG.CHANGE"
const distortion_guitar = note(`<
  ~@4 A B@4 C@4 B@4 D@4 ~@77 E@2 F@2 E@2 G@2 H I J K L@4 M@8 ~ N O P@2 Q@8 R@4 S@4 T
>`.pickRestart({
  A: "~@5 ab3!3",
  B: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@2 ab3@2 ab3@2]/4", // Ab5
  C: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@2 ab3@4]/4", // Ab5
  D: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@6]/4", // Ab5
  E: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@2]/2", // Ab5
  F: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@2 ab3@4]/2", // Ab5
  G: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@2 ab3@2 ~@2]/2", // Ab5
  H: "ab2 f2 gb2 g2 ab2 c3 db3 d3", I: "eb3 f3 gb3 g3 ab3 f3 gb3 g3", J: "ab3 f2 gb2 g2 ab2 c3 db3 d3",
  K: "eb3 f3 gb3 g3 ab3 f2 gb2 g2",
  L: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@2 ab3@2 gb2@2]/4", // Ab5
  M: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [db3,ab3]@4 [eb3,bb3]@4 [gb2,db3]@66 ~@8]/8", // Ab5 Db5 Eb5 Gb5
  N: "~@8 g4!8", O: "g4!16", P: "[g4!8 db3@16 g4!8, ~@8 g4 ~@23]/2",
  Q: "[g4!8 [ab2,g4]@2 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2@2 db3@4 eb3@4 gb3@4 ab3@2 ab3@4 ab2@2 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2@2 db3@4 eb3@4 gb3@2]/8", // Abmaj7
  R: "[~@2 ab3@2 ab3@4 ab2@2 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2@2 db3@2 ~@2 eb3@2 ~@2 gb3@2]/4",
  S: "[~@2 ab3@2 ab3@2 ~@2 ab2@2 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2@2 db3@2 ~@2 eb3@2 ~@2 gb3@2]/4",
  T: "~ ab3 ab3@2 ~@4",
})).s("gm_distortion_guitar").gain(0.36).pan(0.1)

// chords · electric guitar clean · "PRG.CHANGE"
const electric_guitar_clean = note(`<
  ~@21 A B C D C B C E C B C F G H G I C B J@2 K L M N O P M Q K R M N S R T U ~@3 V C B C W G H G X C B Y Z K R M N O P
  M Q AA L M N AB L T U ~@55
>`.pickRestart({
  A: "[bb3,eb4,g4,c5]@2 ~@2 [eb4,g4,bb4]@2 [ab3,db4] ~@7 g3@2", // Cm7 Eb Db5
  B: "[bb3,eb4,g4]@2 ~@2 [eb4,g4,bb4]@2 [bb3,db4] ~@7 g3@2", C: "[bb3,eb4,g4]@2 ~@2 [eb4,g4,bb4]@2 [ab3,db4] ~@7 g3@2",
  D: "[bb3,eb4,g4]@2 ~@2 [eb4,g4,bb4]@2 [bb3,db4] ~@3 g3@2 [ab3,db4]@2 g3@2", // Eb Bbm Db5
  E: "[bb3,eb4,g4]@2 ~@2 [eb4,g4,bb4]@2 [bb3,db4] ~@2 g3@3 [ab3,db4]@2 g3@2", // Eb Bbm Db5
  F: "[bb3,eb4,g4]@2 ~@2 [eb4,g4,bb4]@2 [bb3,db4] ~@2 f3@3 [eb4,g4]@2 [g3,bb3]@2", // Eb Bbm Eb Gm
  G: "[ab3,db4,f4]@2 ~@2 [db4,f4,ab4]@2 [gb3,b3] ~@7 f3@2", H: "[ab3,db4,f4]@2 ~@2 [db4,f4,ab4]@2 [ab3,b3] ~@7 f3@2",
  I: "[ab3,db4,f4]@2 ~@2 [db4,f4,ab4]@2 [ab3,b3] ~@2 f3 ~@2 [ab3,b3,eb4]@2 g3@2", // Db Abm
  J: "[[bb3,eb4,g4]@2 ~@2 [eb4,g4,bb4]@2 [ab3,db4,f4]@4 bb3!3 ~ [ab3,db4,f4]@4 [ab3,db4,f4]@2 [bb3,eb4,g4]@3 bb3 [db4,gb4]@2 [eb4,ab4]@2 [eb4,ab4]@2 [db4,gb4]@2]/2", // Eb Db Eb Gb5 Ab5 Gb5
  K: "[ab4,c5] ~ [ab4,c5] ~ [ab4,db5] ~ [gb4,bb4] [gb4,c5]", L: "~ [gb4,db5] ~ [gb4,c5] [gb4,bb4] ~ [gb4,bb4] ~",
  M: "[c5,eb5] ~ [ab4,c5] ~ [ab4,db5] ~ [gb4,bb4] [gb4,c5]", N: "~@2 [gb4,db5]@2 ~ [gb4,c5]@2 ~ [gb4,bb4]@8",
  O: "[ab4,c5] ~ [ab4,c5] ~ [ab4,db5] ~ [gb4,bb4]!2", P: "~ [gb4,c5] ~ [gb4,db5] [gb4,c5] ~ [gb4,bb4] ~",
  Q: "~@2 [gb4,db5]@2 ~ [gb4,c5]@2 ~ [gb4,bb4]@2 ~ [gb4,c5]@5", R: "~ [gb4,db5] ~ [gb4,c5]!2 ~ [gb4,bb4] ~",
  S: "[ab4,c5] ~ [ab4,eb5] ~ [ab4,c5] ~ [gb4,bb4] [gb4,c5]", T: "[b3,eb4] ~ [db4,f4] ~ [db4,gb4] ~ [db4,f4] [b3,eb4]",
  U: "~ [db4,f4] ~ [b3,gb4] ~ [db4,f4] [b3,eb4]@2", V: "~@7 g3",
  W: "[bb3,eb4,g4]@2 ~@2 [eb4,g4,bb4]@2 [bb3,db4] ~@3 f3@2 [eb4,g4]@2 [g3,bb3]@2", // Eb Bbm Eb Gm
  X: "[ab3,db4,f4]@2 ~@2 [db4,f4,ab4]@2 [ab3,b3] ~@3 f3@2 [ab3,b3,eb4]@2 g3@2", // Db Abm
  Y: "[bb3,eb4,g4]@2 ~@2 [eb4,g4,bb4]@2 [ab3,db4,f4]@2 ~@2 [ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~", // Eb Db
  Z: "[bb3,eb4,g4]@3 [bb3,eb4,g4]!2 ~ [bb3,eb4,g4] ~ [db4,gb4]@2 [eb4,ab4]@2 [eb4,ab4]@2 [db4,gb4]@2", // Eb Gb5 Ab5 Gb5
  AA: "[ab4,eb5] ~ [ab4,c5] ~ [ab4,db5] ~ [gb4,bb4] [gb4,c5]", // Ab5 Ab Db5 Gb Gbdim
  AB: "[db5,f5] ~ [c5,eb5] ~ [ab4,c5] ~ [gb4,bb4] [gb4,c5]", // Db Cm Ab Gb Gbdim
})).s("gm_electric_guitar_clean").gain(0.21).pan(0.1)

// chords · electric guitar jazz · "PRG.CHANGE"
const electric_guitar_jazz = note("<~@57 A@2 ~@30 B@2 C@2 D@3 A@2 ~@46>".pickRestart({
  A: "[db4,bb4]/2", B: "[~@9 c5@6 ~, eb4 eb4, ~@3 c5@15 ~@14]/2", C: "[[c4,ab4]@5 db4@2 [db4,bb4]@9]/2",
  D: "[~@9 c5@6 ~ ab4@6 db4@2, eb4@8 eb4@7 c4@7 ~@2, ~ c5@5 ~@10]/3",
})).s("gm_electric_guitar_jazz").gain(0.14).pan(0.1)

// other · overdriven guitar · "PRG.CHANGE"
const overdriven_guitar = note("<~@5 A@4 B@4 ~@7 C ~@88 D@2 E F G H I J K L@8 M N O P Q R S T U@2 ~@8>".pickRestart({
  A: "[eb3@2 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ db3@4 eb3@4 gb3@4 ab3@2 ab3@2 ab3@2]/4",
  B: "[eb3@2 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ eb3@4 db3@2 eb3 ~ db4@4 db4@4 gb4@4 ab4@6]/4",
  C: "~@3 [db4,gb4]@5", D: "[~@4 db6@2 db6@2 db6@2 db6@2 db6@2 db6@6 b5@4 ab5 eb5 ab5@4 ab5 gb5]/2",
  E: "eb5 d5 eb5 d5 db5 b4 ab4 db5 b4@2 gb4 ab4 b4 db5 [d5,eb5] f5", // Ebmaj7
  F: "gb5 [f5,gb5] f5 eb5 db5 [eb5,f5] d5 db5 b4 db5 d5 [eb5,f5] gb5 ab5 [bb5,b5]@2", // Gbmaj7 Ebsus2 Bmaj7
  G: "eb5 [f5,gb5] ab5 bb5 [eb5,b5] f5 [gb5,ab5] bb5 b5 [eb5,f5] gb5 ab5 [bb5,b5] eb5 [f5,gb5] ab5", // Gbmaj7 Abm Gbsus2 Ebsus2 Bmaj7 Gbmaj7
  H: "bb5 b5 [eb5,f5] gb5 ab5 bb5 [eb5,b5] f5 gb5 ab5 [bb5,b5] b5 bb5 b5 [ab5,bb5] gb5", // Ebsus2 Abm Bmaj7 Absus2
  I: "ab5 [gb5,ab5] gb5 [eb5,f5] b4 eb4 a4 eb4 ab4 eb4 g4 eb4 gb4 eb4 f4 eb4", // Gbsus2 Ebsus2
  J: "e4 db4 eb4 c4 d4 b3 db4 bb3 c4 a3 ab3 [d3,gb3] gb3 [c3,eb3] d3 [bb2,db3]", // D Cm Bbm
  K: "ab2 [gb2,g2] [eb3,bb3]@2 ~@2 db3@10", L: "[~@4 db7@10 db4@40 [f2,db3,db4] ~ db4@16 b4@32 eb4@16 g4!8]/8",
  M: "g4!16", N: "g4!8 b3@2 b3@4 ab3@2", O: "~@4 b3 b3@2 ab3", P: "~@6 eb4@2 [eb4,gb4]@2 eb4@2 eb4@2 [eb4,gb4]!2",
  Q: "eb4@2 eb4@2 [eb4,gb4]!2 eb4@2 eb4@2 [eb4,gb4]@2 eb4@2 f4@2", // Ebm
  R: "[f4,ab4]@2 [f4,ab4]@2 [f4,ab4]!2 eb4@2 gb4@2 eb4@2 [eb4,gb4,c5]!4", // Fm Cdim
  S: "[eb4,gb4,c5]@2 eb4@2 [eb4,gb4,c5]!4 [eb4,gb4,c5]@2 eb4@2 [eb4,gb4,c5]!4", // Cdim
  T: "[eb4,gb4,c5]@2 [eb4,gb4]@2 [eb4,gb4,c5]!8 [eb4,gb4,c5]@2 [eb4,gb4]@2", // Cdim Ebm Cdim Ebm
  U: "[[eb4,gb4,c5]!8 ~@2 b3@4 b3@4 ab3@4 ~@10]/2", // Cdim
})).s("gm_overdriven_guitar").gain(0.39)

// chords · overdriven guitar · "PRG.CHANGE"
const overdriven_guitar_2 = note(`<
  ~@4 A B@12 C@4 ~@2 D E F E F E F E F G H I J K F G L ~@17 M N@2 O P Q R S T U V W X Y Z@2 ~@28 AA@3 ~@2 AB AC AD AE
  AF@4 AG@3 AH@7 AI@2 AJ AK@8 AL@8 AM
>`.pickRestart({
  A: "~@5 ab3!3",
  B: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@2 ab3@4]/4", // Ab5
  C: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@6]/4", // Ab5
  D: "~@6 [ab3,db4] ~@3 [ab3,db4] ~@3 [g3,db4] ~", E: "~@2 [g3,db4] ~ [g3,db4] ~@3 [ab3,db4] ~@3 [ab3,db4] ~@3",
  F: "[g3,db4] ~@3 [g3,db4] ~ [ab3,db4] ~@3 [ab3,db4] ~@3 [g3,db4] ~", // Gdim Db5 Gdim
  G: "~@2 [g3,db4] ~ [g3,db4] ~@3 [ab3,db4] ~@3 [ab3,db4] ~ [ab3,db4] ~", // Gdim Db5
  H: "[f3,b3]@2 [f3,b3]!3 ~ [gb3,b3] ~@3 [gb3,b3] ~@3 [f3,b3] ~", // Fdim B5 Fdim
  I: "~@2 [f3,b3] ~ [f3,b3] ~@3 [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~@3", // Fdim B5
  J: "[f3,b3] ~@3 [f3,b3] ~ [gb3,b3] ~@3 [gb3,b3] ~@3 [f3,b3] ~", K: "~@2 [f3,b3] ~ [f3,b3] ~ gb3@4 c4 ~@3 [g3,c4]@2",
  L: "[g3,db4] ~@15", M: "[g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~",
  N: "[g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~", // Gdim Db5
  O: "[g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [ab3,db4] ~ [ab3,db4] ~@3 [ab3,db4] ~ [ab3,db4] ~", // Gdim Db5
  P: "[g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~@3", // Gdim Db5
  Q: "[g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [ab3,db4] ~@3 [ab3,db4] ~@3 [g3,db4] ~", // Gdim Db5 Gdim
  R: "~@2 [g3,db4] ~ [g3,db4] ~@3 [ab3,db4] ~ [ab3,db4] ~ [ab3,db4] ~@3", // Gdim Db5
  S: "[g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [ab3,db4] ~@3 [ab3,db4] ~ g3@2 b3@2", // Gdim Db5
  T: "~@2 [f3,b3] ~ [f3,b3] ~ [f3,b3] ~ [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~", // Fdim B5
  U: "[f3,b3] ~ [f3,b3] ~ [f3,b3] ~ [gb3,b3] ~@3 [gb3,b3] ~@3 [f3,b3] ~", // Fdim B5 Fdim
  V: "~@2 [f3,b3] ~ [f3,b3] ~@3 [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~", // Fdim B5
  W: "[f3,b3] ~ [f3,b3] ~ [f3,b3] ~ [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~ [g3,c4]@2", // Fdim B5 C5
  X: "[g3,db4] ~ [g3,db4] ~ [g3,db4] ~ [g3,db4]@2 [ab3,db4] ~ [ab3,db4] ~@3 [ab3,db4]@2", // Gdim Db5
  Y: "[g3,db4] ~ [g3,db4] ~@3 [ab3,db4] ~@3 [ab3,db4] ~@3 [ab3,db4] ~", Z: "[g3,db4]/2",
  AA: "[~@7 c5@13 ~@4, ~@5 eb4@15 ~@4]/3", AB: "ab2 f2 gb2 g2 ab2 c3 db3 d3", AC: "eb3 f3 gb3 g3 ab3 f3 gb3 g3",
  AD: "ab3 f2 gb2 g2 ab2 c3 db3 d3", AE: "eb3 f3 gb3 g3 ab3 f2 gb2 g2",
  AF: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ db3@4 eb3@4 gb3@4 ab3@2 ab3@2 gb2@2]/4", // Ab5
  AG: "[[ab2,eb3]@2 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [ab2,eb3]@4 gb2@2 [ab2,eb3] ~ [gb2,db3]@2]/3", // Ab5 Gb5
  AH: "[~@2 [ab2,eb3]@4 [gb2,db3]@66 b1@14 ~@2 [e4,f4]!8 [e4,f4]!16, ~@9 b5@2 ab4@2 ~, ~@43 e2@4 e2@5 ~@4]/7", // Ab5 Gb5 Fmaj7
  AI: "[[e4,f4]!3 f4 e6@8 ab6@12 a4!8, ~@4 f4 ~@27]/2", AJ: "a4!16",
  AK: "[a4!8 [ab2,a4]@2 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2@2 db3@4 eb3@4 gb3@4 ab3@2 ab3@4 ab2@2 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2@2 db3@4 eb3@4 gb3@2]/8", // Amaj7
  AL: "[~@2 ab3@2 ab3@4 ab2@2 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2@2 db3@2 ~@2 eb3@2 ~@2 gb3@4 ab3@2 ab3@2 ~@2 ab2@2 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2 ~ ab2@4 gb2@2 ab2@2 db3@2 ~@2 eb3@2 ~@2 gb3@2]/8",
  AM: "~ ab3 ab3@2 ~@4",
})).s("gm_overdriven_guitar").gain(0.18).pan(0.9)

// chords · electric guitar clean · "PRG.CHANGE"
const electric_guitar_clean_2 = note(`<
  ~@41 A B C D E F C G A H C D I H J K ~@16 A H C D E F C G L B C D M B J K ~@9 N@3 O ~ P N@2 ~@38
>`.pickRestart({
  A: "[ab4,c5] ~ [ab4,c5] ~ [ab4,db5] ~ [gb4,bb4] [gb4,c5]", B: "~ [gb4,db5] ~ [gb4,c5] [gb4,bb4] ~ [gb4,bb4] ~",
  C: "[c5,eb5] ~ [ab4,c5] ~ [ab4,db5] ~ [gb4,bb4] [gb4,c5]", D: "~@2 [gb4,db5]@2 ~ [gb4,c5]@2 ~ [gb4,bb4]@8",
  E: "[ab4,c5] ~ [ab4,c5] ~ [ab4,db5] ~ [gb4,bb4]!2", F: "~ [gb4,c5] ~ [gb4,db5] [gb4,c5] ~ [gb4,bb4] ~",
  G: "~@2 [gb4,db5]@2 ~ [gb4,c5]@2 ~ [gb4,bb4]@2 ~ [gb4,c5]@5", H: "~ [gb4,db5] ~ [gb4,c5]!2 ~ [gb4,bb4] ~",
  I: "[ab4,c5] ~ [ab4,eb5] ~ [ab4,c5] ~ [gb4,bb4] [gb4,c5]", J: "[b3,eb4] ~ [db4,f4] ~ [db4,gb4] ~ [db4,f4] [b3,eb4]",
  K: "~ [db4,f4] ~ [b3,gb4] ~ [db4,f4] [b3,eb4]@2", L: "[ab4,eb5] ~ [ab4,c5] ~ [ab4,db5] ~ [gb4,bb4] [gb4,c5]",
  M: "[db5,f5] ~ [c5,eb5] ~ [ab4,c5] ~ [gb4,bb4] [gb4,c5]", // Db Cm Ab Gb Gbdim
  N: "[ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4]!3 ~ [ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4]!3 ~", // Ab
  O: "[ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4]!3 ~ [ab3,ab4] ~@7", P: "~@8 [ab3,ab4] ~ [ab3,ab4] ~ [ab3,ab4]!3 ~",
})).s("gm_electric_guitar_clean").gain(0.14).pan(0.9)

// chords · rock organ · "PRG.CHANGE"
const rock_organ = note("<~@89 A B C B A B C B D ~@46>".pickRestart({
  A: "[c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5]!2 ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5]!2 ~ [c5,eb5,ab5] ~", // Ab
  B: "[bb4,db5,gb5] ~ [bb4,db5,gb5] ~ [bb4,db5,gb5]!2 ~ [bb4,db5,gb5] ~ [bb4,db5,gb5] ~ [bb4,db5,gb5]!2 ~ [bb4,db5,gb5] ~", // Gb
  C: "[ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5]!2 ~ [ab4,c5,f5] ~ [ab4,c5,f5] ~ [ab4,c5,f5]!2 ~ [ab4,c5,f5] ~", // Fm
  D: "[db5,gb5,bb5] ~ [db5,gb5,bb5]!2 ~ [db5,gb5,bb5] ~ [db5,gb5,bb5] ~ [gb5,bb5,db6] [bb5,db6,gb6] ~ [db6,gb6,bb6]@4", // Gb
})).s("gm_rock_organ").gain(0.08).pan(0.6)

// chords · percussive organ · "PRG.CHANGE"
const percussive_organ = note("<~@8 A B@3 ~@132>".pickRestart({
  A: "[a3,b3]@2 ~ [d4,e4] [f4,g4] a4 ~@2 [f5,g5,a5] [b5,c6] d6 [e6,f6] [g6,a6] [b6,c7] d7 ~, [g3,bb3] ~ g3@3 ~@11", // Asus2 Dsus2 Fsus2 F Cmaj7 Fmaj7 Gsus2 Cmaj7 …
  B: "[ab5,ab6]/3", // Ab
})).s("gm_percussive_organ").gain(0.19).pan(0.1)

// chords · percussive organ · "PRG.CHANGE" · soft notes · Dsus2
const percussive_organ_soft = note(`<
  ~@8
  [~@2 f3@2 ~ b4 c5 [d5,e5] ~@3 g2@3 ~@2, ~@2 c4 ~ e3@3 c3@2 a2@5 ~@2, ~@5 d3@3 b2@5 ~@3]
  ~@135
>`).s("gm_percussive_organ").gain(0.04).pan(0.1)

// other · overdriven guitar · "PRG.CHANGE"
const overdriven_guitar_3 = note("<~@12 A ~@28 B@14 ~@18 B@14 ~@57>".pickRestart({
  A: "~ db5@2 b4@2 ab4@3", B: "[ab3@2 eb4@2 ab4@2 ab3 eb4@2 ab4@2 ab3 f4 db4 gb4 ab4]/2",
})).s("gm_overdriven_guitar").gain(0.16)

// other · brass section · "PRG.CHANGE"
const brass_section = note("<~@13 A B C D A B C D ~@77 A B C D A B C D ~@38>".pickRestart({
  A: "[ab4,ab5]@5 gb4 ab4 [db5,db6], ~@10 gb5 ~ ab5 ~@3", B: "~@2 [c5,c6]@3 ~ f4@8 ~@2, ~@3 f5@3 ~@2",
  C: "[ab4,ab5]@5 gb4 ab4 [gb5,gb6], ~@10 gb5 ~ ab5 ~@3", // Ab Gb
  D: "~@2 [f5,f6]@3 ~ [db5,db6]@4 eb5@2 [bb4,bb5]@4, ~@10 eb6 ~@5", // F Db Bb
})).s("gm_brass_section").gain(0.59)

// other · synth brass 1 · "PRG.CHANGE"
const synth_brass_1 = note(`<
  ~@25 A@2 B@2 A@2 B@2 C@2 B@2 A@2 D@2 ~@16 A@2 B@2 A@2 B@2 C@2 B@2 A@2 D@2 ~@71
// … 143 more lines

More by Yes