Strudelify
High Hopes cover art

The Division Bell

High Hopes

Pink Floyd

KeyC minorTempo77 bpm
0:00/0:00
// High Hopes — Pink Floyd
// 77 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 9/8 at bar 24, 4/4 at bar 25, 7/8 at bar 28, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 148 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(77/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.

// other · tubular bells · "MIDI"
const tubular_bells = note("<A B C D E F G H ~@140>".pickRestart({
  A: "~@2 [d4,d5] ~ [e4,e5] ~ [d4,d5] [c4,c5] ~ [bb3,bb4] ~@2 [g3,g4] ~ [a3,a4] ~@2 [g3,g4] [f3,f4] ~ [f3,f4] ~@2 [d4,d5] ~ [e4,e5] ~@2 [c4,d4,c5,d5] ~@2 [bb3,bb4]", // D E D C Bb G A G …
  B: "~@2 [g3,g4] ~ [a3,a4] ~ [f3,f4] ~@4 [d4,d5] ~ [e4,e5] ~ [d4,d5] [c4,c5] ~@2 [bb3,bb4] ~@2 [g3,g4] ~ [a3,a4] ~ [g3,g4] [f3,f4] ~@2 [f3,f4] ~", // G A F D E D C Bb …
  C: "~ [d4,d5] ~ [e4,e5] ~ [d4,d5] [c4,c5] ~@2 [bb3,bb4] ~@2 [g3,g4] ~ [a3,a4] ~@2 [g3,g4] [f3,f4] ~ [f3,f4] ~@3 [d4,d5] ~ [e4,e5] ~@2 [c4,d4,c5,d5] ~@2", // D E D C Bb G A G …
  D: "[bb3,bb4] ~@2 [g3,g4] ~ [a3,a4] ~ [f3,f4] ~@5 [d4,d5] ~ [e4,e5] ~ [d4,d5] [c4,c5] ~@2 [bb3,bb4] ~@2 [g3,g4] ~ [a3,a4] ~@2 [g3,g4] [f3,f4] ~", // Bb G A F D E D C …
  E: "[f3,f4] ~@3 [d4,d5] ~ [e4,e5] ~@2 [c4,d4,c5,d5] ~@2 [bb3,bb4] ~@2 [g3,g4] ~ [a3,a4] ~ [f3,f4] ~@6 [d4,d5] [e4,e5] ~@2 [d4,d5] [c4,c5]", // F D E Csus2 Bb G A F …
  F: "~@2 [bb3,bb4] ~@2 [g3,g4] ~ [a3,a4] ~ [f3,f4] ~@5 [d4,d5] [e4,e5] ~@2 [d4,d5] [c4,c5] ~ [bb3,bb4] ~@3 [g3,g4] ~ [a3,a4] ~ [f3,f4] ~", // Bb G A F D E D C …
  G: "~@3 [d4,d5] ~ [e4,e5] ~@2 [d4,d5] [c4,c5] ~ [bb3,bb4] ~@3 [g3,g4] ~ [a3,a4] ~ [f3,f4] ~@5 [d4,d5] ~ [e4,e5] ~@2 [d4,d5] [c4,c5]", // D E D C Bb G A F …
  H: "~ [bb3,bb4] ~@3 [g3,g4] ~ [a3,a4] ~ [f3,f4] ~@22", // Bb G A F
})).s("gm_tubular_bells").gain(0.1).pan(0.8)

// other · harmonica · "MIDI"
const harmonica = note("<~@55 A B C B A B C B A B C B A B C B ~@77>".pickRestart({
  A: "g3", B: "a3", C: "b3",
})).s("gm_harmonica").gain(0.64)

// other · timpani · "MIDI"
const timpani = note("<~@54 A B ~@2 A B ~@2 A B ~@2 A C ~@80>".pickRestart({
  A: "~@18 d2!14", B: "d2 ~@31", C: "d2@3 ~@5",
})).s("gm_timpani").gain(0.29)

// other · timpani · "MIDI" · soft notes
const timpani_soft = note("<~@54 A ~@3 A ~@3 A ~@3 A ~@81>".pickRestart({
  A: "~@16 d2!2 ~@14",
})).s("gm_timpani").gain(0.16)

// chords · piano · "MIDI"
const piano = note(`<
  ~@7 A B A B A B A B C D C E C D C E F G H I C D C E C D C E J@2 K L J@2 K M C D C E C D C E F G F N ~@16 O@2 A B C D C
  E C D C E J@2 K L J@2 K L J@2 K L J@2 K L J@2 K L J@2 P L J@2 Q L J@2 Q L R@2 Q L R@2 Q L R@2 Q L R@2 Q L J@2 Q L J@2
  Q L J@2 Q L ~@5
>`.pickRestart({
  A: "[c6,g6]@4 ~@4 [c6,g6]@6 ~@2 [eb6,bb6]@5 ~@3 [eb6,bb6]@4 ~@4", B: "[ab5,eb6]@5 ~@3 [ab5,eb6]@17 ~@7",
  C: "[c4,g4]@7 ~@5 c2@4 [eb4,bb4]@7 ~ [eb4,bb4]@4 c2@4, c3@13 ~@3 c3@13 ~@3, ~@8 [c4,g4]@7 ~@17", // C5 Eb5 C5
  D: "[ab3,eb4]@7 ~@5 c3@16 c3@4, c3@3 ~@5, ~@2 [ab3,eb4]@5 ~", // Ab5
  E: "[ab3,eb4]@7 ~@5 c3@16 ~@4, c3@3 ~@5, ~@2 [ab3,eb4]@5 ~", F: "[g3,eb4]@7 ~ [ab3,eb4]@8 [f3,d4]@7 ~ [f3,d4]@8",
  G: "[g3,c4]@7 ~ [d3,c4]@8 [d3,b3]@8 [g3,b3,g4]@8", H: "[g3,eb4]@7 ~ [ab3,eb4]@8 [f3,d4]@6 ~@2 [f3,d4]@8",
  I: "[g3,c4]@2 [d3,c4]@2 [f3,b3]@3 ~", // C5 D7 Fdim
  J: "[~ g3 c4 ~@3 g3 ~@2 eb3 ab3 ~@2 f3 bb3!2, c3@16 g2@16 ab2@15 ~ bb2@16, ~@8 [g3,eb4]@12 d3@12 ~@8 [eb3,c4]@11 ~@5 [f3,d4]@8, ~@3 c4@2 ~ [bb3,d4]@3 ~@7, ~@28 g3@8 ~@8 ab3@7 ~@13]/2", // Cm Dm Bb
  K: "~ g3 c4!2 ~ f3 g3!2, c3@15 ~ eb3@16, ~ [g3,eb4] ~ [bb3,eb4]", // Cm Eb5
  L: "~@2 [f3,g3] f3 ~ eb3 ab3!2, f2@15 ~ ab2@16, ~ c3@3 ~@2 [eb3,c4]@2, ~ [ab3,c4] ~@2", // Fsus2 Cm Ab
  M: "~@2 [f3,g3] f3 ~ d3 [d3,g3,bb3] ~, f2@15 ~ g2@12 ~@4, ~ c3@3 ~@4, ~ [ab3,c4] ~@2", // Fsus2 Gm Ab
  N: "[g3,c4]@4 [d3,c4]@4 [f3,b3]@7 ~", // C5 D7 Fdim
  O: "[[c6,g6]@4 ~@4 [c6,g6]@6 ~@2 [eb6,bb6]@5 ~@3 [eb6,bb6]@4 ~@4 [ab5,eb6]@5 ~@3 [ab5,eb6]@17 ~@7, g3@59 ~@5]/2", // C5 Eb5 Ab5
  P: "~@4 g3@3 ~ c4@4 c4@4 f3 ~@3 f3@4 g3@4 g3@4, c3@15 ~ eb3@16, ~@8 [g3,eb4]@7 ~@9 [bb3,eb4]@8", // Cm Eb5
  Q: "~@4 g3@4 c4@4 c4@4 f3 ~@3 f3@4 g3@4 g3@4, c3@15 ~ eb3@16, ~ [g3,eb4] ~ [bb3,eb4]", // Cm Eb5
  R: "[~ g3 [c4,eb4,g4,g5] ~@3 [g3,f4,f5] ~@2 eb3 ab3 ~@2 f3 [bb3,eb4] [bb3,d4], c3@16 g2@12 g3@8 ~@4 [eb3,c4]@11 ~@5 f3@8, ~@8 g3@12 d3@12 ab2@15 ~ bb2@16, ~@3 [eb4,eb5]@3 ~ [c4,c5]@3 ~@6, ~@12 c4@8 ~@4 [bb3,d4]@12 ~@8 ab3@7 ~@13]/2", // Cm G7 Eb5 Bb Cm Eb C Bb
})).s("gm_piano").gain(0.45)

// bass · electric bass finger · "MIDI"
const bass = note(`<
  ~@14 A@3 B@4 C@2 D E F G@3 B@4 C@2 H I J K H L J M@3 B@4 C@2 D E F N O@2 P@2 Q@2 R S T U V W X Y Z AA AB@2 ~ A@3 B@4
  C@2 H I J K H I J K H I J K H I J K H I J K H I J K H I J K H I J K H I J K H I J K H I J K H I J K H I J K H I J K H
  I J K ~@5
>`.pickRestart({
  A: "[~@7 c2@16 ~]/3", B: "[c2@15 c2@16 ~]/4", C: "[c2@15 ~]/2", D: "c2@3 c2 ab1@4", E: "g1@3 b1",
  F: "c2@6 c2 ~ ab1@8", G: "[g1@12 g1 ~@3 g1@12 c2@64 ~@4]/3", H: "c2@11 ~ c2 ~@3 g1@14 ~@2",
  I: "ab1@11 ~ g1@2 ~@2 bb1@15 ~", J: "c2@11 ~ d2 ~@3 eb2@14 ~@2", K: "f1@11 ~ g1@2 ~@2 ab1@15 ~",
  L: "ab1@11 ~ ab1@4 bb1@16", M: "[f1@11 ~ f1@2 ~@2 g1@12 c2@64 ~@4]/3", N: "g1@12 g1 ~@3 g1@14 ~@2",
  O: "[e1@43 ~ b1@4 e2@7 ~ e2@7 ~]/2", P: "[~@7 b1, f1]/2", Q: "e1/2", R: "f1@14 f2 c2", S: "f1@20 ~@4 b1@7 ~",
  T: "e1@11 ~ b1@4 e2@15 ~", U: "e1@11 ~ e1@2 ~@2 e1@15 ~", V: "f1@15 ~", W: "f1@12 c2@2 ~@2 d2@15 ~",
  X: "e2@11 ~ e2@2 ~@2 e2@15 ~", Y: "e2@11 ~ e2@2 ~@2 e2@16", Z: "f1@11 ~ f1@2 ~@2 f1@14 ~@2",
  AA: "f1@11 ~ f1@3 ~ g1@8 ~@4 a1@4", AB: "[c2@57 ~@7]/2",
})).s("gm_electric_bass_finger").gain(0.8)

// chords · string ensemble 2 · "MIDI"
const string_ensemble_2 = note(`<
  ~@20 A@3 B@2 C D@8 ~ E@4 F@4 ~ G@7 H@4 ~@2 I@4 ~ J@8 K@3 ~ L ~@3 M@5 E@8 N@8 O@8 P@8 ~@33
>`.pickRestart({
  A: "[~@15 c7@80 ~]/3", B: "[eb6@15 d6@16 c6@16 b5@16 eb6]/2", C: "~@15 d6@16 c6",
  D: "[~@15 b5@12 ~@180 c7@49, ~@31 c5@225]/8",
  E: "[~@7 c6@8 ~@8 d6@8 eb6@32 c6@16 ~@8 d6@8 [c6,eb6]@32 ~, ~@7 eb6@16 f5@40 ~@16 bb5@16 ~@33, ~@15 bb5@48 eb6@24 f5@40 ~]/4", // Cm
  F: "[~@7 c6@8 ~@8 d6@8 eb6@32 c6@16 ~@8 [f5,d6]@8 [f5,ab5,c6]@16 [g5,bb5,d6]@12 ~@5, ~@7 eb6@16 f5@40 ~@16 bb5@16 ~@33, ~@15 bb5@48 eb6@24 ~@41]/4", // Dm Fm Gm
  G: "[~@23 eb5@8 ~@80 bb5@15 ~ ab5@16 ~@32 bb5@15 ~ eb5@16 ~@17, ~@31 c5@192 ~, ~@143 c7@81]/7",
  H: "[eb6@15 d6@16 c6@16 b5@16 eb6@15 ~ d6@16 c6@16 b5@16 ~]/4",
  I: "[~@31 g6@16 ~@32 gb5@16 ~@16 b5@16 ~, ~@63 e5@63 ~@2, ~@95 g5@32 ~]/4",
  J: "[~@15 [g4,g5]@16 e5@16 gb5@16 g5@16 d6@16 ~@32 c6@16 f6@15 ~ [e5,e6]@16 [gb5,gb6]@16 [g5,g6]@16 [b5,b6]@16 [a5,a6]@22 ~@11, ~@79 b5@48 ~@129, ~@95 a5@63 ~@98]/8", // G E Gb G B A
  K: "[~@31 c4@31 ~@5 ab2@21 ~@8, ~@31 c3@5 ~@27 eb4@27 ~@6]/3", L: "~@19 [g6,d7]@8 ~@5", M: "[~@31 c7@128 ~]/5",
  N: "[~@7 c6@8 ~@8 d6@8 eb6@32 c6@16 ~@8 d6@8 ~@28 bb5@4 g5@7 ~ [eb5,c6]@8 eb5@7 ~ [d5,d6]@8 d5@8 c5@8 bb4@15 ~ c6@16 ~@8 d6@8 [c6,eb6]@32 ~, ~@7 eb6@16 f5@40 ~@16 bb5@16 [c6,eb6]@32 ~@8 eb6@16 f5@40 ~@24 f5@40 ~, ~@15 bb5@48 eb6@24 f5@40 ~@16 bb5@48 ~@16 bb5@16 ~@33, ~@159 eb6@32 eb6@24 ~@41]/8", // Cm D Cm
  O: "[~@7 c6@8 ~@8 d6@8 eb6@32 c6@16 ~@8 d6@8 ~@28 bb5@4 g5@7 ~ [eb5,c6]@8 eb5@7 ~ [d5,d6]@8 d5@8 c5@8 bb4@15 ~ c6@16 ~@8 d6@8 [c6,eb6]@32 g5, ~@7 eb6@16 f5@40 ~@16 bb5@16 [c6,eb6]@32 ~@8 eb6@16 f5@40 ~@24 f5@40 ~, ~@15 bb5@48 eb6@24 f5@40 ~@16 bb5@48 ~@16 bb5@16 ~@33, ~@159 eb6@32 eb6@24 ~@41]/8", // Cm D Cm
  P: "[~@7 [eb5,c6]@8 eb5@7 ~ [d5,d6]@8 d5@8 c5@8 bb4@15 ~ c6@16 ~@8 d6@8 [c6,eb6]@32 g5@7 ~ [eb5,c6]@8 eb5@7 ~ [d5,d6]@8 d5@8 c5@8 bb4@15 ~ c6@16 ~@8 d6@8 [c6,eb6]@32 ~, ~@7 eb6@16 f5@40 ~@24 f5@40 ~@24 f5@40 ~@24 f5@40 ~, ~@15 bb5@48 ~@16 bb5@16 ~@48 bb5@48 ~@16 bb5@16 ~@33, ~@31 eb6@32 eb6@24 ~@48 eb6@16 ~@8 eb6@32 eb6@24 ~@41]/8", // Cm D Cm D Cm
})).s("gm_string_ensemble_2").gain(0.22)

// other · melodic tom · "MIDI"
const melodic_tom = note(`<
  ~@23 A B A B ~@8 A B A B A B A B ~@8 A B A B C D C@3 D C@2 E F G E@2 F G E ~@12 A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@5
>`.pickRestart({
  A: "[f2,f3]@6 ~@6 [f2,f3] ~@3 [f2,f3] ~@15", B: "[f2,f3]@4 ~@8 [f2,f3] ~@3 [f2,f3] ~@3 [f2,f3] ~@11",
  C: "[f2,f3]@5 ~ [f2,f3] ~ [f2,f3]@5 ~ [f2,f3] ~", // F
  D: "[f2,f3]@9 ~@3 f2@2 ~@2 [f2,f3]@10 ~@2 [f2,f3]@2 ~@2, ~@12 f3 ~@19", // F
  E: "[f2,f3]@10 ~@2 [f2,f3] ~@3 [f2,f3]@13 ~@3", F: "[f2,f3]@10 ~@2 [f2,f3] ~@3 [f2,f3]@12 ~@4",
  G: "[f2,f3]@10 ~@2 f3@2 ~@2 [f2,f3]@13 ~@3, ~@12 f2 ~@19", // F
})).s("gm_melodic_tom").gain(0.5)

// chords · acoustic guitar steel · "MIDI"
const acoustic_guitar_steel = note(`<
  ~@23 A B C D ~@8 E F G H E F G I ~@8 A B C J K L M N O P Q R S P T U V W X Y ~@12 E F G H E F G H E F G H E F G H E F
  G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H ~@5
>`.pickRestart({
  A: "[c3,g3]@4 ~@4 ab3@4 ~@4 [ab2,f3]@4 ~@4 f3@5 ~@3, ~@4 c3@7 ~@9 ab2@12", B: "~@4 d3@3 ~ d3@6 ~@10 b2@8, g2@3 ~",
  C: "c3@10 ~@2 c3@2 bb2@2 ab2@15 ~", D: "g2@7 ~, a2 ~@31",
  E: "~@4 g3@4 eb4@4 g3@3 ~@5 d3@4 bb3@4 d3@2 ~@2, c3@15 ~ g2@15 ~",
  F: "~@4 eb3@4 c4@4 eb3@4 ~@4 f3@4 d4@4 f3@3 ~, ab2@16 bb2@15 ~",
  G: "~@4 g3@4 eb4@4 g3 ~@3 f3@4 g3@4 bb3@4 g3@2 ~@2, c3@7 ~@9",
  H: "~@2 c3@2 g3@2 g2 ~@3 eb3@2 c4@2 eb3 ~, f2@6 ~@2 ab2@7 ~", I: "~@2 c3@2 g3@2 f3 ~@3 d3@2 g3@2 ~@2, f2@3 ~ g2@3 ~",
  J: "g2@7 ~", K: "gb3@11 ~ gb3@4 gb3@10 ~@2 gb3@2 g3@2", L: "g3@9 ~@3 a3@4 b3@8 b3@7 ~",
  M: "a3@10 ~ b3 c4 a3 b3 g3, ~@10 a3@3 ~@3", N: "a3@14 ~@6 a3 b3 ~ a3 g3 a3 ~ g3 f3 g3 ~ f3",
  O: "e3@9 ~@3 gb3@4 gb3@8 ~@4 gb3@2 g3@2", P: "g3@9 ~@3 a3@4 b3@7 ~ b3@7 ~", Q: "b3@11 ~ g3@4 a3@16",
  R: "a3@3 c4@2 b3@3 d4@6 c4 b3 a3@9 ~@7", S: "e3@9 ~@3 gb3@4 gb3@10 ~@2 gb3@2 g3@2", T: "a3@6 a3 c4 b3@5 ~ g3 b3",
  U: "a3@10 ~@2 g3@2 a3 ~ a3@12 ~@4", V: "e3@8 ~@4 gb3@4 gb3@9 ~@3 gb3@2 g3 ~", W: "g3@8 ~@4 a3@4 b3@7 ~ b3@7 ~",
  X: "b3@11 ~ g3@4 a3@10 ~@6", Y: "a3@3 g3@2 f3@2 ~ e3@3 f3@2 d3@2 ~ e3@3 c3@2 a2@2 ~ g2@6 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.45).pan(0.3)

// chords · pad warm · "MIDI"
const pad_warm = note(`<
  ~@23 A@4 ~@17 B@7 C@2 D@7 E@2 F@2 G@8 ~@8 H@3 ~@3 I@2 ~@2 J@2 ~@7 K@2 ~@2 L@2 ~@2 L@2 ~@2 L@2 ~@14 M@3 ~@18
>`.pickRestart({
  A: "[g3@7 ab3@8 [f3,d4]@16 c4@15 ~@9 f3@7 ~@17 [f3,d4]@16 c4@16 [b3,f4]@12 ~@5, eb4@16 ~@15 d3@24 ~@16 ab3@12 ~@12 d3@28 ~@5, ~@47 b3@16 eb4@16 ~@49]/4", // Dm Bdim
  B: "[~@23 eb3@7 ~ c3@192 ~]/7",
  C: "[g3@7 ab3@8 [f3,d4]@16 c4@15 ~@9 f3@7 ~ eb4, eb4@16 ~@15 d3@24 ~@9, ~@47 b3@16 ~]/2", // Dm
  D: "[~@15 [f3,d4]@16 c4@16 [b3,f4]@16 e2@64 ~@16 g6@31 ~ [c6,a6]@15 ~ e2@33, ~@7 ab3@12 ~@12 d3@32 b6@16 ~@48 f2@64 ~@33, ~@127 b5@46 ~@51]/7", // Dm Bdim F
  E: "[~@31 b4@16 a4@17, ~@31 f2@33]/2", F: "[~@31 [e2,b3]@33]/2",
  G: "[~@7 gb4@7 ~ e4@16 ~@16 a3@8 ~@20 d4@4 d4@16 ~@16 gb4@16 ~@16 b4@16 c4@15 ~ b3@16 ~@16 [g2,g3]@16 c2@33, ~@31 [f2,f4]@64 [e2,b3,e4]@64 [f2,a3,a4]@48 ~@49, ~@31 c4@24 c4@24 ~@48 g4@32 f4@31 ~ [c4,g4]@32 ~@33]/8", // G F E5 F C5
  H: "[~@15 ab4@16 g4@31 ~ ab4@32 ~]/3", I: "[~@27 f6@4 d6@4 c6@4 bb5@4 g5@4 d5@10 ~@7]/2",
  J: "[~@27 f6@4 d6@4 bb5@4 g5@4 eb5@4 d5@11 ~@6]/2", K: "[~@7 g6@4 eb6@8 ~@4 f6@4 c6@11 ~@26]/2",
  L: "[~@7 g6@4 eb6@11 ~ f6@4 c6@11 ~@26]/2", M: "[~@7 g6@3 ~ eb6@11 ~ f6@4 c6@18 ~@18 g6@13 ~@20]/3",
})).s("gm_pad_warm").gain(0.54)

// other · string ensemble 1 · "MIDI"
const string_ensemble_1 = note(`<
  ~@23 A B C D ~@16 E@8 A B C D ~@14 F G ~@17 H I@2 ~@20 J@4 ~@12 K@2 L M ~@4 N@2 ~@11
>`.pickRestart({
  A: "c2 ab1, ~@16 c2 ~@15", B: "g1@3 b1", C: "c2 ab1", D: "g1@7 ~", E: "c3/8", F: "~@21 f6@3 e6@2 ~ a5@2 a5@3",
  G: "g5@3 f5@2 e5@3 d5@3 c5@2 b4@3 c5@15 ~", H: "bb5@4 ab5@4 g5@4 f5@4 eb5@4 d5@9 ~@3",
  I: "[c3@12 g3@4 f3@8 g4@16 eb4@7 ~ [ab3,c4]@16, ~@3 g3@3 ~@2]/2", // Ab
  J: "[~@8 g6@4 eb6@11 ~ f6@4 c6@11 ~@13 bb5@4 eb6@4 d6@19 ~ c6@47 ~]/4", K: "[~@2 g6 eb6@3 f6 c6@6 bb5 eb6 d6]/2",
  L: "c6@2 d6@2 eb6 bb5@3", M: "f5@8 g5@7 ~ f5@8 eb5@7 ~", N: "[~@2 g6 eb6@3 f6 c6@4 ~@5]/2",
})).s("gm_string_ensemble_1").gain(0.29)

// chords · synth strings 1 · "MIDI"
const synth_strings_1 = note(`<
  ~@34 A@5 B@4 ~@11 C@2 D@8 E@7 ~@8 F@3 G@5 H@16 I@8 J@4 K@6 L@8 M@6 N@8 ~@5
>`.pickRestart({
  A: "[~@31 g3@8 eb4@8 [bb3,eb4]@8 d4@8 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3, ~@63 bb3@32 g3@15 ~@9 g3@24 ~@17]/5", // Eb5 Bb5 Eb
  B: "[~@7 eb4@8 [bb3,eb4]@8 d4@8 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [g3,d4]@12 ~@5, ~@31 bb3@32 g3@15 ~@9 g3@24 ~@17]/4", // Eb5 Bb5 G5
  C: "[~@31 e2@32 gb6]/2",
  D: "[~@7 g6@8 b6@7 ~ b6@8 b5@38 ~@10 c6@16 e4@16 gb4@16 g4@16 b4@7 ~ b4@8 b4@12 g4@4 a4@47 ~ b3@16 e4@8 gb4@8 [e4,g4], ~@31 [f2,a6]@64 e3@64 f3@64 e2@33, ~@127 e5@12 ~@117]/8", // Em F
  E: "[~@7 b3@8 [d4,b4]@7 ~ [d4,b4]@8 [f2,a4]@64 ~@48 d5@16 [c4,c5]@16 [b3,b4]@16 c4@16 [c4,d4,g4]@16 ~, ~@95 e4@64 [f4,a4]@48 ~@17, ~@127 g4@32 ~@32 c5@32 ~]/7", // G F C B Csus2 F
  F: "[~@15 g6@12 ~@4 g6@16 f6@32 eb6@17, ~@27 c6@32 ~@37]/3",
  G: "[~@7 c7@24 g3@8 eb4@8 [bb3,eb4]@8 d4@8 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3, ~@63 bb3@32 g3@15 ~@9 g3@24 ~@17]/5", // Eb5 Bb5 Eb
  H: "[~@7 eb4@8 [bb3,eb4]@8 d4@8 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3@8 eb4@8 [bb3,eb4]@8 d4@8 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3, ~@31 bb3@32 g3@15 ~@9 g3@24 ~@48 bb3@32 g3@15 ~@9 g3@24 ~@17]/8", // Eb5 Bb5 Eb Eb5 Bb5 Eb
  I: "[~@7 eb4@8 [bb3,eb4]@8 d4@8 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3@8 g6@4 ~@4 [bb3,eb4]@8 f6@4 ~@4 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3, ~@31 bb3@32 g3@15 ~@9 g3@24 ~@24 eb4@8 ~@8 d4@8 bb3@32 g3@15 ~@9 g3@24 ~@17, ~@139 eb6@10 ~@6 c6@9 ~@92]/8", // Eb5 Bb5 Eb Eb5 Bb5 Eb
  J: "[~@7 g6@4 ~@4 [bb3,eb4]@8 f6@4 ~@4 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3, ~@7 eb4@8 ~@8 d4@8 bb3@32 g3@15 ~@9 g3@24 ~@17, ~@11 eb6@10 ~@6 c6@9 ~@92]/4", // Eb5 Bb5 Eb
  K: "[~@7 eb4@8 [bb3,eb4]@8 d4@8 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3@8 eb4@8 ~@4 g3@4 bb3@4 g3@4 [ab3,bb3,eb4]@16 eb4@8 d4@7 ~ [g3,c4], ~@31 bb3@32 g3@15 ~@9 g3@24 ~@16 c4@20 ~@4 d4@8 ~@33, ~@143 [bb3,eb4]@8 ~@24 bb3@16 ~]/6", // Eb5 Bb5 Eb Absus2 C5 Eb5
  L: "[~@15 [f3,bb3]@8 ~@24 [eb3,eb4]@16 g3@8 eb4@8 ~@4 g3@4 bb3@4 g3@4 [ab3,bb3,eb4]@16 eb4@8 d4@7 ~ c4@8 ~@8 [f3,bb3]@8 ~@24 [eb3,eb4]@16 g3@8 eb4@8 ~@4 g3@4 bb3@4 g3@4 [ab3,bb3,eb4]@16 eb4@8 d4@7 ~ [g3,c4], ~@7 c4@24 c4@30 ~@2 c4@20 ~@4 d4@8 ~@40 c4@24 c4@30 ~@2 c4@20 ~@4 d4@8 ~@33, ~@23 g3@24 ~@32 [bb3,eb4]@8 ~@24 bb3@16 g3@15 ~@9 g3@24 ~@32 [bb3,eb4]@8 ~@24 bb3@16 ~]/8", // Bb5 Eb Absus2 Bb5 Eb Absus2 C5 Eb5
  M: "[~@7 c4@8 [f3,bb3,c4]@8 c4@8 ~@8 d4@8 c4@8 c4@6 ~@2 g3@8 eb4@8 [bb3,eb4]@8 d4@8 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3, ~@23 g3@24 [eb3,eb4]@16 ~@129, ~@31 f3@31 ~@65 g3@15 ~@9 g3@24 ~@17, ~@31 c4@16 ~@48 bb3@32 ~@65]/6", // Fsus4 Eb5 Bb5 Eb
  N: "[~@7 g6@4 ~@4 [bb3,eb4]@8 f6@4 ~@4 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 g3@8 g6@4 ~@4 [bb3,eb4]@8 f6@4 ~@4 eb4@15 ~ eb4@8 d4@7 ~ c4@8 c4@8 [f3,bb3]@8 ~@8 c4@16 [eb3,eb4]@16 ~, ~@7 eb4@8 ~@8 d4@8 bb3@32 g3@15 ~@9 g3@24 ~@24 eb4@8 ~@8 d4@8 bb3@32 g3@15 ~@9 g3@24 ~@17, ~@11 eb6@10 ~@6 c6@9 ~@103 eb6@10 ~@6 c6@9 ~@92]/8", // Eb5 Bb5 Eb Eb5 Bb5 Eb
})).s("gm_synth_strings_1").gain(0.72)

// other · distortion guitar · "MIDI"
const distortion_guitar = note(`<
  ~@98 A B@2 C D E F G H I J K L M N@4 O P Q R S T@2 U V@2 W X Y@2 Z AA AB@2 AC AD AE AF@2 AG@2 AH ~@6
>`.pickRestart({
  A: "~@19 d4@5 f4@8", B: "[bb4@17 ~@3 eb5@9 ~@2 bb4@8 ~ bb4@7 ~@5 g4@4 c5@2 ~@2 bb4@2 ~@2]/2",
  C: "c5@11 ~@5 g4@10 ~@2 eb4 ~ c4 ~", D: "eb4@11 ~ f4@2 ~@2 eb4@8 c4@6 ~@2", E: "c4@14 ~@2 g4@2 ~@2 g4@7 ~ bb4@2 ~@2",
  F: "bb4@7 ~ d5@7 ~ eb5@7 ~ f5@8", G: "g5@15 ~ c6@7 ~ bb5@8", H: "c6@8 bb5@8 g5@8 ~@3 g5@4 ~",
  I: "g5@17 ~@3 g4@4 c5@2 ~@2 d5@2 ~@2", J: "eb5@7 ~ d5@7 ~ bb4@6 f4 ~@5 g4@4", K: "g4@9 ~@7 f4@4 c5 ~@3 bb4@5 ~@3",
  L: "~@4 c4@3 g4@2 ~@3 bb4@2 ~@2 bb4@5 ~@3 g4@4 bb4@2 ~@2", M: "bb4@16 ~@4 g4@4 f5@7 ~",
  N: "[g5@24 ~@2 g5@21 ~ c6@7 ~ d6@7 eb6@7 ~@2 f6@7 ~ g6@7 bb6@7 ~ c7@20 ~@13]/4", O: "~@3 f4@5 eb5@8 d5@8 bb4@6 ~@2",
  P: "g4", Q: "f4@7 ~ f4@3 ~ e4@3 ~", R: "c4@11 ~@9 g4@3 bb4@6 ~@3", S: "bb4@7 db5@8 ~ d5@6 ~@2 f5@7 ~",
  T: "[eb5@11 ~ g5@19 c6@7 ~@2 eb6@8 d6@6 ~@2 bb5@6 ~@2]/2", U: "~@8 g5@7 f5@6 ~@3 f5@8",
  V: "[d5@11 ~ d5@12 bb4@7 g4@8 ~@5 g4@3 ~ c5@7 ~ d5@8]/2", W: "eb5@8 d5@5 ~@3 c5@6 ~ bb4@8 ~", X: "bb4",
  Y: "[~@8 g5@4 f5@9 ~@3 f5@4 c5@15 ~@5 bb4@6 ~ c5@7 ~@2]/2", Z: "f4@7 ~", AA: "c6@23 ~ eb6@7 ~",
  AB: "[d6@7 ~@9 bb5@8 c6@3 ~ g5@25 ~@3 c6@4 eb6@4]/2", AC: "c6@4 bb5@2 c6 ~ eb6@4 d6@3 ~", AD: "c6@9 ~ c6@6",
  AE: "c6@15 ~ c6@15 ~", AF: "[c6@12 d6@16 eb6@7 ~ f6@8 bb6@19 ~]/2", AG: "[bb6@30 ~ bb6@16 ~ bb6@15 ~]/2",
  AH: "bb6@31 ~",
})).s("gm_distortion_guitar").gain(0.54).pan(1)

// other · harmonica · "MIDI"
const harmonica_2 = note(`<
  ~@15 A B C@2 D E@3 F@2 G@2 H@2 I@2 J@2 K L@2 M@2 N O P@2 ~ Q R S@2 T U V W X@2 Y@2 ~@20 Z AA AB@2 AC@2 AD AE@2 AF@2 AG
  AH AI AJ AK@2 AL@2 AM@2 AN@2 AO AP ~@48
>`.pickRestart({
  A: "~@4 c4@7 ~ c4 ~ c4@3 ~ c4 ~ c4@3 ~@5 c4 ~ c4 ~", B: "eb4@3 eb4 ~ eb4@3 ~@2 eb4@5 ~ f4@3 ~ f4 ~ f4@6 ~@4",
  C: "[~@4 c4@7 d4@2 ~ eb4@3 d4@4 bb3@5 bb3@13 ~@25]/2", D: "~@4 c4@7 eb4@2 ~@3 eb4@2 ~@2 eb4@2 eb4@2 ~@2 eb4@6",
  E: "[f4@2 ~@3 eb4@2 c4@6 ~@14 c4@11 ~ c4@4 eb4@7 ~@2 eb4 eb4@4 ~@2 d4@2 bb3@2 c4@6 ~@27, ~@2 f4 ~@45]/3",
  F: "[~@4 c4@7 d4@2 eb4@9 ~@7 g3@2 eb4@6 ~ f4@2 eb4@3 d4@10 ~@11]/2", G: "[~@4 c4@7 d4@2 eb4@10 d4@4 ~ bb3@10 ~@26]/2",
// … 91 more lines

More by Pink Floyd