Strudelify
Shine On You Crazy Diamond, Part Two cover art

1975 · Wish You Were Here 50

Shine On You Crazy Diamond, Part Two

Pink Floyd

KeyG minorTempo138 bpm
0:00/0:00
// Shine On You Crazy Diamond, Part Two — Pink Floyd
// 138 bpm, 4/4, key G 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: Full arrangement: all 382 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.CHANG, PRG.CHANG, PRG.CHANG.
setcpm(138/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, A@4 for four bars: edit a riff to change every repeat.

// chords · string ensemble 2 · "PRG.CHANG"
const string_ensemble_2 = note("<~@51 A@5 B@6 C@8 D@6 E@2 F@8 ~@296>".pickRestart({
  A: "[~ [a2,a3,f4]@19]/5", B: "[~ [g2,c3,g3,c4,eb4]@71]/6", C: "[~ [d3,d4,g4]@15]/8", D: "[~@13 [a2,a3,f4]@131]/6",
  E: "[~@23 [g2,c3,g3,c4,eb4]@25]/2", F: "[~@13 [a2,a3,f4]@39 [g2,g3,g4]@140, ~@13 [d3,d4]@179]/8",
})).s("gm_string_ensemble_2").gain(0.21).pan(0.7)

// chords · string ensemble 2 · "PRG.CHANG" · soft notes
const string_ensemble_2_soft = note("<~@30 A@2 B@8 C@4 ~@338>".pickRestart({
  A: "[~@10 d5@19 c5@19]/2", B: "[d5@19 ~ c5@19 bb5@77 d5@76]/8", C: "[~ g5@12 ~@3]/4",
})).s("gm_string_ensemble_2").gain(0.12).pan(0.7)

// other · french horn · "PRG.CHANG"
const french_horn = note("<~@3 A@2 B@3 C@6 D@5 E@5 F@6 G@7 H I@2 J@4 ~@338>".pickRestart({
  A: "[~@11 g3@13]/2", B: "[~@3 bb3@4 ~ a3@4 ~ g3@7 d3@12 c3@38 ~ bb2]/3", C: "[~@3 f2@5 g2@106 bb3@28 ~ a3]/6",
  D: "[~@9 bb3@28 ~ a3@9 bb3@38 ~ c4@34]/5", E: "[~@4 bb3@4 ~ c4@4 ~ d4@28 ~ g3@38 d4@9 ~ d4@28 ~]/5",
  F: "[c4@28 ~ f4@4 c4@4 ~ d4@38 ~ c4@28 ~ f4@4 c4@4 ~ d4@28 ~]/6",
  G: "[bb3@4 ~ a3@4 ~ g3@77 g3@4 ~ d4@33 g3@4 ~ c4@24 d4@9 ~ bb3@2 a3@2]/7", H: "~ g3@23",
  I: "[~ c4@4 ~ f3@4 d3@19 ~ bb3@4 a3@4 ~ g3@4 ~ d3@4]/2", J: "[~ bb2@4 ~ g3@72 ~@18]/4",
})).s("gm_french_horn").gain(0.22)

// chords · acoustic guitar nylon · "PRG.CHANG"
const acoustic_guitar_nylon = note(`<
  ~@43 A@4 B C@4 D@2 E@2 F G@7 H I@8 J@8 K@3 L@8 M@7 N@3 O@3 P@2 ~ N@3 Q@6 P@2 ~ N@3 ~@210 R@8 S@8 T U V@2 W X@8 Y@8 Z@8
  AA@4
>`.pickRestart({
  A: "[~@6 g4@28 ~ f4@9 g4@38 ~ g3@4 ~ bb3@4 ~ c4@3]/4", B: "~ d4@14 ~@3 c4@6",
  C: "[~ d4@48 ~ d4@4 c4@4 ~ bb3@9 ~ c4@9 d4@14 ~ c4@3]/4", D: "[~@2 d4@28 ~ a3@2 bb3@2 a3@2 ~ g3@2 a3@8]/2",
  E: "[~@2 f3@9 f3@4 ~ d3@4 ~ f3@24 ~@3]/2", F: "~@2 a3@9 ~ bb3@9 bb3@3",
  G: "[~@2 g3@4 ~ f3@4 ~ g3@4 bb3@38 ~ bb3@19 ~@10 f3@4 ~ g3@4 ~ g3@28 d4@5 f4@5 g4@19 g4@4 ~ g4@4 ~ bb4@7]/7",
  H: "~@3 c5@4 bb4@9 ~ d4@2 c4@2 ~ bb3@2",
  I: "[~@3 d3@4 f3@9 ~ g3@19 bb3@4 ~ bb3@4 ~ bb3@9 ~ f3@4 g3@4 ~ g3@48 ~@5 c4@7 bb3@3 ~ c4@3 ~ d4@57 d4@2]/8",
  J: "[~@3 f4@14 ~ g4@4 ~ g4@4 g4@24 ~@5 g4@2 ~ f4@2 d4 c4 ~ d4@21 d4@2 ~ c4@2 bb3@2 c4@2 ~ c4@19 g3@4 ~ bb3@5 d4@2 c4@2 ~ bb3@2 c4@2 d4@14 ~ d4@2 f4@2 ~ d4@9 g4@4 ~ g4@4 ~ bb4@19 g4]/8",
  K: "[~@4 bb4@4 ~ d5@9 c5@4 ~ bb4@5 a4@5 f4@5 g4@34]/3", L: "[~@23 bb4@7 ~ f5@7 g4@7 e5@65 bb4@7 ~ f5@7 g4@7 e5@60]/8",
  M: "[~@6 bb4@7 f5@7 g4@7 e5@65 ~ bb4@7 f5@7 g4@6 ~ e5@53 ~]/7", N: "[bb4@5 ~ f5@5 ~ g4@5 ~ e5@53 ~]/3",
  O: "[bb4@5 ~ f5@5 ~ g4@5 ~ e5@35 ~@7 f3 ~@2 f3 ~@2 f3 ~@2 f3 ~@2]/3",
  P: "[f3 ~@2 f3 ~@2 f3 ~@2 f3 ~@2 f3 ~@2 f3 ~@2 f3 ~@2 g3@15 ~@12]/2",
  Q: "[bb4@5 ~ f5@5 ~ g4@5 ~ eb5@66 eb5@5 ~ d5@41 ~ f3 ~@2 f3 ~@2 f3 ~@2 f3 ~@2]/6",
  R: "[~@95 c5, ~@19 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@5, ~@22 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@7 ~]/8",
  S: "[~@187 bb4@3 bb4@2, ~ f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@7 ~@4, ~@4 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@7 ~]/8",
  T: "~@7 g4@6 a4@3 g4@6 bb4@2, ~@4 bb4@7 ~@13", U: "~ g4@6 bb4@3 g4@6 bb4@3 g4@5",
  V: "[~ a4@3 g4@6 bb4@3 g4@6 a4@3 a4@6 a4@3 gb4@6 ab4@3 gb4@6 bb4@2]/2", W: "~ gb4@6 bb4@3 gb4@6 a4@3 gb4@5",
  X: "[~ ab4@3 gb4@6 a4@3 gb4@6 ~@171 c5@2, ~@19 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@5, ~@22 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@7 ~]/8",
  Y: "[~@95 f4, ~ f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@5, ~@4 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@7 ~]/8",
  Z: "[~@95 c4, ~ g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 bb4@6 db4@6 g4@6 a4@6 db4@6 g4@6 bb4@6 db4@6 g4@6 a4@6 db4@6 g4@6 a4@6 c4@6 gb4@6 ab4@6 c4@6 gb4@6 bb4@6 c4@6 gb4@5, ~@4 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 g4@6 bb4@6 db4@6 g4@6 bb4@6 db4@6 g4@6 bb4@6 db4@6 g4@6 bb4@6 db4@6 gb4@6 a4@6 c4@6 gb4@6 a4@6 c4@6 gb4@6 a4@7 ~]/8",
  AA: "[~@88 g3@7 ~, ~ ab4@6 c4@6 gb4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@6 e4@6 g3@6 f4@6 d5@6 g3@6 f4@7 ~@4, ~@4 gb4@6 a4@6 c4@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@6 g3@6 f4@6 c5@7 ~@7]/4",
})).s("gm_acoustic_guitar_nylon").gain(0.11).pan(0)

// other · distortion guitar · "PRG.CHANG"
const distortion_guitar = note("<~@330 [~@5 f3@2 f3] [f3@4 f3 ~@3] ~@50>").s("gm_distortion_guitar").gain(0.5)

// chords · drawbar organ · "PRG.CHANG"
const drawbar_organ = note(`<
  ~@99 A@3 B@3 C@6 D@6 E@8 ~@10 F@6 C@6 G@6 H@8 I@7 J@3 K@6 L@6 M@8 N@6 O@6 P@6 Q@6 R@6 Q@6 S@6 T@3 U@4 V@5 W@4 X@3 Y@5
  W@4 Z@3 M@8 AA@4 AB@8 AC AD@8 W@4 X@3 Y@5 W@4 Z@3 M@8 AA@4 AE@8 ~@4 AF@6 AG@6 G@6 AG@6 AF@6 AG@6 G@6 AH@4
>`.pickRestart({
  A: "[~@18 [g4,c5,e5]@53 ~]/3", B: "[[g4,bb4,d5]@17 ~ [g4,c5,e5]@36 ~@18]/3",
  C: "[~@18 [a4,c5,f5]@2 ~ [g4,bb4,d5]@123]/6", D: "[~@18 [g4,bb4,eb5]@71 ~ [gb4,a4,d5]@35 ~@19]/6",
  E: "[~@18 [f4,a4,c5]@2 ~ [g4,bb4,d5]@171]/8", F: "[~ [c5,e5]@3 [d5,f5] [c5,e5]@2 ~, ~ g4@6 ~]/6",
  G: "[~@18 [g4,bb4,eb5]@71 ~ [gb4,a4,d5]@54]/6", // Eb D
  H: "[~@18 g4@36 gb4@35 ~ f4@35 ~ e4@35 ~ [g4,bb4,eb5]@30, ~@18 [bb4,d5]@143 ~@31]/8", // Eb Bb
  I: "[~@6 [gb4,a4,d5]@35 ~ [g4,bb4,eb5]@35 ~ [gb4,a4,d5]@35 ~ [g4,bb4,d5]@53 ~]/7", // D Eb D Gm
  J: "[[g4,bb4,d5]@17 ~ [g4,bb4,d5]@53 ~]/3", K: "[[g4,bb4,d5]@17 ~ [g4,bb4,d5]@126]/6", L: "[~ [g4,c5,eb5]@7]/6",
  M: "[~@18 [g4,bb4,d5]@143 ~ [g4,bb4,eb5]@30]/8", // Gm Eb
  N: "[~@6 [gb4,a4,d5]@35 ~ [g4,bb4,eb5]@35 ~ [gb4,a4,d5]@35 ~ [g4,bb4,d5]@30]/6", // D Eb D Gm
  O: "[~@6 [g4,c5,eb5]@35 ~ [g4,bb4,d5]@35 ~ [a4,d5,f5]@66]/6", // Cm Gm Dm
  P: "[~@6 [g4,bb4,d5]@53 ~ [g4,bb4,d5]@17 ~ [g4,bb4,d5]@53 ~ [g4,bb4,d5]@12]/6", Q: "[~ [g4,bb4,d5]@23]/6",
  R: "[~ [g4,c5,eb5]@23]/6", S: "[~@6 [g4,bb4,eb5]@35 ~ [gb4,a4,d5]@35 ~ [g4,bb4,eb5]@35 ~ [gb4,a4,d5]@30]/6",
  T: "[~@6 [g4,bb4,d5]@35 ~ [g4,c5,eb5]@30]/3", U: "[~@6 [g4,bb4,d5]@35 ~ [a4,d5,f5]@54]/4",
  V: "[~@18 [g4,bb4,d5]@71 ~ [gb4,bb4,db5]@30]/5", // Gm Gb
  W: "[~@6 [f4,bb4,d5]@35 ~ [g4,bb4,eb5]@17 ~ [a4,d5,f5]@17 ~ [g4,c5,eb5]@17 ~]/4", // Bb Eb Dm Cm
  X: "[[f4,bb4,d5]@17 ~ [f4,a4,c5]@53 ~]/3", // Bb F
  Y: "[[f4,a4,c5]@5 ~ [gb4,bb4,db5]@11 ~ [g4,bb4,d5]@71 ~ [gb4,bb4,db5]@30]/5", Z: "[[f4,bb4,d5]@17 ~ [f4,a4,c5]@54]/3",
  AA: "[~@6 [f4,bb4,e5]@35 ~ [f4,bb4,d5]@35 ~ [gb4,b4,d5]@17 ~]/4", // Bb Bm
  AB: "[[gb4,a4,d5]@17 ~ [g4,bb4,d5]@71 ~ [gb4,bb4,db5]@35 ~ [f4,bb4,d5]@35 ~ [g4,bb4,eb5]@17 ~ [f4,a4,d5]@12]/8", // D Gm Gb Bb Eb Dm
  AC: "~@6 [g4,c5,eb5]@17 ~", AD: "[[f4,bb4,d5]@17 ~ [f4,a4,c5]@69 ~@3 [g4,bb4,d5]@71 ~ [gb4,bb4,db5]@30]/8",
  AE: "[[gb4,a4,d5]@17 ~ [g4,bb4,d5]@174]/8", AF: "[~ [g4,c5,e5]@7]/6", AG: "[~ [g4,bb4,d5]@7]/6",
  AH: "[~@18 [g4,bb4,d5]@71 ~@7]/4", // Gm
})).s("gm_drawbar_organ").gain(0.12).pan(0.8)

// other · pad sweep · "PRG.CHANG"
const pad_sweep = note("<~ A@4 ~@377>".pickRestart({
  A: "[~@16 g5@57 ~@23]/4",
})).s("gm_pad_sweep").gain(0.1)

// bass · slap bass 1 · "PRG.CHANG"
const bass = note(`<
  ~@99 A@2 B C@2 D E@3 F@2 G H@2 I@3 J K@3 F@2 G L@2 M@3 N@3 M@3 O@3 P@3 B Q@2 R@3 G H@2 S@3 T U@2 V@6 W@6 X@3 Y@3 Z@3
  AA@3 AB@3 AC@3 AD@3 G AE@2 AF@3 AG AH@5 AI@3 AJ@3 AK@3 AL@6 AM@3 AN@3 AO@3 AP@3 AQ@3 AR@3 AS@3 AT@4 F@2 AU@3 AV@4 AW@2
  AX AY@2 AU@3 AZ BA@3 AW@2 BB@3 V@6 BC@4 BD@2 BE@3 BF BG@3 BH@2 BI AY@2 AU@3 AV@4 AW@2 AX AY@2 AU@3 AZ BA@3 AW@2 BB@3
  V@6 BC@4 BJ@2 M@9 BK@3 BL@3 BM@3 BN@3 G BO@2 S@3 BP BQ BR BS BT BR BS BU BV BW BX BV BY BZ BR BS BT BR BS CA CB CC CD
  CE CF CG@3 ~
>`.pickRestart({
  A: "[~@18 c2@26 ~ c2@2 ~]/2", B: "c2@5 ~ c2@17 ~", C: "[~@12 g2@5 ~ c2@26 ~ c2@2 ~]/2", D: "c2@5 ~ c2@5 ~@13",
  E: "[~@18 a1@2 ~ g1@49 ~@2]/3", F: "[~@18 g1@26 ~ g1@2 ~]/2", G: "g1@5 ~ g1@17 ~",
  H: "[a1@2 ~ bb1@2 ~ b1@2 ~ c2@2 ~ db2@2 ~ d2@2 ~ eb2@26 ~ eb2@2 ~]/2",
  I: "[eb2@5 ~ eb2@23 ~ bb1@5 ~ eb2@5 ~ d2@26 ~ d2@2 ~]/3", J: "d2@5 ~ d2@5 ~@13", K: "[~@18 f1@2 ~ g1@49 ~@2]/3",
  L: "[g2@5 ~ f2@5 ~ d2@5 ~ g1@25 ~@2 f1@2 ~]/2", M: "[g1@5 ~ g1@23 ~ bb1@5 ~ bb1@5 ~ g1@26 ~ f1@2 ~]/3",
  N: "[g1@5 ~ g1@29 ~ d2@5 ~ g1@25 ~@2 f1@2 ~]/3", O: "[g1@5 ~ g1@23 ~ bb1@5 ~ d2@5 ~ c2@26 ~ bb1@2 ~]/3",
  P: "[c2@5 ~ c2@23 ~ d2@5 ~ e2@5 ~ c2@26 ~ bb1@2 ~]/3", Q: "[c2@5 ~ bb1@5 ~ g1@5 ~ f1@2 ~ g1@23 ~ f1@2 ~]/2",
  R: "[g1@5 ~ g1@34 ~@2 g1@26 ~ f1@2 ~]/3", S: "[eb2@5 ~ eb2@23 ~ bb1@5 ~ eb2@5 ~ d2@26 ~ c2@2 ~]/3",
  T: "db2@5 ~ d2@5 ~ g1@2 ~ a1@2 ~ c2@2 ~ d2@2 ~", U: "[eb2@5 ~ a2@5 ~ d3@5 ~ g2@30]/2",
  V: "[~@6 gb2@35 ~ f2@35 ~ e2@35 ~ eb2@30]/6", W: "[~@6 d2@35 ~ eb2@35 ~ d2@23 ~ d2@6 db2 ~@5 g1@26 ~ g1@2 ~]/6",
  X: "[g1@2 ~@4 g1@23 ~ bb1@5 ~ bb1@5 ~ g1@29 ~]/3", Y: "[g1@5 ~ g1@29 ~ d2@5 ~ g1@25 ~@2 g1@2 ~]/3",
  Z: "[g1@5 ~ g1@23 ~ bb1@5 ~ d2@5 ~ g1@26 ~ g1@2 ~]/3", AA: "[g1@5 ~ g1@23 ~ bb1@5 ~ d2@5 ~ c2@26 ~ c2@2 ~]/3",
  AB: "[c2@5 ~ c2@23 ~ c2@5 ~ c2@5 ~ c2@26 ~ c2@2 ~]/3", AC: "[c2@5 ~ c2@23 ~ c2@5 ~ c2@5 ~ g1@26 ~ g1@2 ~]/3",
  AD: "[g1@5 ~ g1@23 ~ bb1@5 ~ bb1@5 ~ g1@26 ~ g1@2 ~]/3",
  AE: "[a1@2 ~ bb1@2 ~ b1@2 ~ c2@2 ~ db2@2 ~ d2@2 ~ eb2@23 ~ g2@5 ~]/2",
  AF: "[bb2@5 ~ d2@26 ~ c2@2 ~ d2@5 ~ eb2@23 ~ g2@5 ~]/3", AG: "bb2@5 ~ d2@18",
  AH: "[c2@2 ~ d2@2 ~ g1@2 ~ a1@2 ~ d2@5 ~@25 d2@5 ~ g2@5 ~ c2@23 ~ c2@5 ~ d2@5 ~ g1@23 ~ g2@5 ~, ~@3 g1@6 ~@11]/5",
  AI: "[d2@5 ~ d2@62 ~ a1@2 ~]/3", AJ: "[d2@5 ~ g1@26 ~ g1@2 ~ g1@2 ~@4 g1@23 ~ bb1@5 ~]/3",
  AK: "[bb1@5 ~ g1@29 ~ g1@5 ~ g1@29 ~]/3", AL: "[d2@5 ~ g1@26 ~ g1@2 ~ g1@5 ~ g1@23 ~ bb1@5 ~]/3",
  AM: "[d2@5 ~ c2@26 ~ c2@2 ~ c2@5 ~ c2@23 ~ c2@5 ~]/3", AN: "[c2@5 ~ c2@26 ~ c2@2 ~ c2@5 ~ c2@23 ~ c2@5 ~]/3",
  AO: "[c2@5 ~ g1@26 ~ g1@2 ~ g1@5 ~ g1@23 ~ bb1@5 ~]/3",
  AP: "[bb1@5 ~ g1@26 ~ g1@2 ~ g1@5 ~ g1@17 ~ a1@2 ~ bb1@2 ~ b1@2 ~ c2@2 ~]/3",
  AQ: "[db2@2 ~ d2@2 ~ eb2@23 ~ g2@5 ~ bb2@5 ~ d2@26 ~ c2@2 ~]/3",
  AR: "[d2@5 ~ eb2@23 ~ g2@5 ~ bb2@5 ~ d2@18 c2@2 ~ d2@2 ~ g1@2 ~ a1@2 ~]/3",
  AS: "[d2@5 ~@25 d2@5 ~ g2@5 ~ c2@23 ~ c2@5 ~, ~ g1@6 ~@5]/3", AT: "[d2@5 ~ g1@23 ~ g2@5 ~ d2@5 ~ d2@54]/4",
  AU: "[g1@5 ~ g1@23 ~ d2@5 ~ g2@5 ~ gb1@29 ~]/3", AV: "[gb1@5 ~ bb1@23 ~ c2@5 ~ d2@5 ~ eb2@17 ~ d2@17 ~ c2@17 ~]/4",
  AW: "[bb1@17 ~ f2@23 ~ f2@5 ~]/2", AX: "c2@5 ~ f1@17 ~", AY: "[f1@5 ~ gb1@5 ~@7 g1@26 ~ g1@2 ~]/2",
  AZ: "gb1@5 ~ bb1@16 ~@2", BA: "[bb1@5 ~ c2@5 ~ d2@5 ~ eb2@17 ~ d2@17 ~ c2@17 ~]/3",
  BB: "[c2@5 ~ f2@23 ~ f2@5 ~ gb2@5 ~ g2@30]/3", BC: "[~@6 e2@35 ~ f2@35 ~ d2@5 ~ f2@5 ~ d2@5 ~]/4",
  BD: "[gb2@17 ~ g1@26 ~ g1@2 ~]/2", BE: "[g1@5 ~ g1@23 ~ d2@5 ~ g2@5 ~ gb2@28 ~@2]/3", BF: "gb2@5 ~ bb2@16 ~@2",
  BG: "[bb2@5 ~ c3@5 ~ d3@5 ~ eb3@17 ~ d3@17 ~ c3@17 ~]/3", BH: "[bb2@17 ~ f3@23 ~ f3@5 ~]/2", BI: "c3@5 ~ f1@16 ~@2",
  BJ: "[gb2@17 ~ g1@26 ~ f1@2 ~]/2", BK: "[g1@5 ~ g1@23 ~ bb1@5 ~ bb1@5 ~ c2@26 ~ bb1@2 ~]/3",
  BL: "[c2@5 ~ c2@29 ~ d2@5 ~ c2@26 ~ bb1@2 ~]/3",
  BM: "[c2@5 ~ c2@23 ~ g2 gb2 f2 e2@2 eb2 d2 db2 c2 b1 bb1 [ab1,a1] g1@16 ~@2 g1@8 ~ f1@2 ~]/3", // Amaj7
  BN: "[g1@5 ~ g1@23 ~ a1@5 ~ bb1@5 ~ g1@26 ~ f1@2 ~]/3",
  BO: "[a1@2 ~ bb1@2 ~ b1@2 ~ c2@2 ~ db2@2 ~ d2@2 ~ eb2@26 ~ d2@2 ~]/2", BP: "d2@5 ~ d2@11 ~ d2@5 ~",
  BQ: "bb1@5 ~ bb1@5 ~ a1@5 ~ g1@5 ~", BR: "g1 ~@11 g1@5 ~ g1@2 ~@4", BS: "a1@2 ~ bb1@2 ~ g1@5 ~ g1 ~@11",
  BT: "g1@5 ~ g1 ~@5 a1@2 ~ bb1@2 ~ g1@5 ~", BU: "g1@5 ~ g1 ~@5 a1@2 ~ bb1@2 ~ c2@5 ~", BV: "c2 ~@11 c2@5 ~ c2 ~@5",
  BW: "d2@2 ~ e2@2 ~ c2@5 ~ c2 ~@11", BX: "c2@5 ~ c2 ~@5 d2@2 ~ e2@2 ~ c2@5 ~",
  BY: "d2@2 ~ e2@2 ~ c2@5 ~ c2@2 ~ d2@2 ~ e2@2 ~ c2@2 ~", BZ: "d2@2 ~ e2@2 ~ c2@2 ~@4 c2@5 ~ g1@5 ~",
  CA: "g1@5 ~ g1 ab1 ~ a1 bb1 ~ b1 c2 ~@2 d2@2 eb2@5 ~, ~@15 db2@2 ~@7", CB: "eb2 ~@5 db2@2 ~ db2@2 ~ eb2@5 ~ eb2 ~@5",
  CC: "d2 ~@5 eb2@5 ~ eb2 ~@5 db2@2 ~ db2@2 ~", CD: "eb2@5 ~ eb2 ~@5 db2 ~@5 d2@5 ~",
  CE: "d2 ~@5 c2@2 ~ c2@2 ~ d2@5 ~ d2 ~@5", CF: "c2 ~@5 d2@8 ~ c2@8 ~", CG: "[bb1@8 ~ a1@8 ~ g1@34 ~@20]/3",
})).s("gm_slap_bass_1").gain(0.14)

// other · french horn · "PRG.CHANG"
const french_horn_2 = note("<~@4 A@2 B@8 C@2 D@8 E@6 F@7 G@3 H@4 ~@338>".pickRestart({
  A: "[~@2 g4@28 ~ bb4@4 ~ a4@4 g4@7 ~]/2", B: "[d4@12 c4@38 bb3@4 ~ f3@5 g3@106 bb4@26]/8",
  C: "[~@3 a4@9 bb4@28 ~ a4@7]/2", D: "[~@3 bb4@38 c5@38 ~ bb4@4 ~ c5@4 d5@28 ~ g4@38 ~ d5@9 d5@26]/8",
  E: "[~@3 c5@28 ~ f5@4 ~ c5@4 ~ d5@38 c5@28 ~ f5@4 ~ c5@4 ~ d5@25]/6",
  F: "[~@4 bb4@4 ~ a4@4 g4@77 g4@4 ~ d5@33 ~ g4@4 ~ c5@24 d5@9 bb4]/7",
  G: "[~@2 a4@2 g4@24 c5@4 ~ f4@4 ~ d4@19 bb4@4 ~ a4@4 ~ g4@4 ~]/3", H: "[d4@4 bb3@4 ~ g4@72 ~@15]/4",
})).s("gm_french_horn").gain(0.15)

// other · electric guitar jazz · "PRG.CHANG"
const electric_guitar_jazz = note("<~@43 A@2 B@2 C@4 D E@3 F G H@4 I@6 J@3 K@7 L@8 ~@297>".pickRestart({
  A: "[~@9 g5@28 ~ f5@9 ~]/2", B: "[g5@38 ~ g4@4 bb4@4 ~]/2", C: "[c5@4 ~ d5@14 ~@3 c5@7 d5@48 d5@4 ~ c5@4 ~ bb4@9]/4",
  D: "c5@9 ~ d5@14", E: "[~@5 d5@28 ~ a4@2 ~@8 a4@9 f4@10 f4@4 ~ d4@4]/3", F: "~ f4@23", G: "~@2 a4@3 bb4@3",
  H: "[~ bb4@4 ~@15 bb4@38 ~ bb4@19 ~@9 f4@4 ~ g4@4]/4",
  I: "[~ g4@28 ~ d5@5 f5@5 g5@19 g5@4 ~ g5@4 ~ bb5@8 ~ c6@5 bb5@9 ~ d5@2 c5@2 bb4@4 ~ d4@4 ~ f4@9 ~ g4@19 bb4@4 ~ bb4@3]/6",
  J: "[~@2 bb4@9 f4@4 ~ g4@4 ~ g4@48 ~@3]/3",
  K: "[~@2 c5@7 bb4@3 ~ c5@3 d5@57 ~ d5@4 ~ f5@14 ~ g5@4 g5@4 ~ g5@28 ~ g5@2 ~@3 d5@2 d5@21 ~ d5@2 c5@2 ~ bb4@2]/7",
  L: "[c5@2 c5@19 ~ g4@4 ~ bb4@4 d5@2 ~ c5@2 bb4@2 ~ c5@2 d5@14 d5@2 ~ f5@2 d5@9 ~ g5@4 ~ g5@4 bb5@19 ~ g5@4 ~ bb5@4 d6@9 ~ c6@4 ~ bb5@5 a5@4 f5@5 g5@47 ~@8]/8",
})).s("gm_electric_guitar_jazz").gain(0.16)

// other · electric guitar jazz · "PRG.CHANG" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@52
  [c5 ~@5]
  [~@13 bb4@2 a4@2 g4@2 ~@5]
  ~@3
  [~@6 g4@4 f4@4 ~ g4@4 ~@5]
  ~@17
  [~@7 f5 ~@4]
  ~@306
>`).s("gm_electric_guitar_jazz").gain(0.1)

// chords · distortion guitar · "PRG.CHANG"
const distortion_guitar_2 = note(`<
  ~@100 A@2 ~ B@2 ~ C@2 ~ C@2 ~ D@2 ~ E@2 ~ C@2 ~ C@2 ~@3 F@3 ~@3 F@6 G@3 H@3 F@3 I@8 J@6 K@5 L ~ M N ~ O L ~ P Q ~ P R
  ~ S R ~ S L ~ P L ~ M T ~ U V ~ U Q ~ S W X@4 P Q ~ Y Z ~ P L ~ M L ~ S R ~ S R ~ P L ~ P Q ~ AA AB ~ AC AB ~ M R ~
  AD@4 ~@4 AE AF@3 AG@2 ~@6 AE AF@3 AH ~@11 AI@2 AJ AK@2 AL@3 AM AN@4 AO@2 ~@5 AP@6 ~@6 AQ@5 ~@11 AR@2 AS@4 ~@55
>`.pickRestart({
  A: "[~@6 [e4,g4,c5,e5,g5,c6]@17 ~]/2", B: "[~@12 [e4,g4,c5,e5,g5,c6]@17 ~@19]/2",
  C: "[~@6 [d4,g4,bb4,d5,g5,bb5]@17 ~]/2", D: "[~@6 [eb4,g4,bb4,eb5,g5,bb5]@17 ~]/2",
  E: "[~@12 [d4,gb4,a4,d5,gb5,a5]@23 ~@13]/2", F: "[[bb3,bb4]@5 ~ [f4,f5]@5 ~ [g3,g4]@5 ~ [e4,e5]@52 ~@2]/3",
  G: "[[bb3,bb4]@4 ~@2 [f4,f5]@5 ~ [g3,g4]@5 ~ [e4,e5]@35 ~@19]/3", // Bb F G E
  H: "[~@18 [f3,a3,c4,f4,a4,c5,f5]@2 ~ [bb3,d4,bb4,d5,g5]@32 ~@19, ~@20 [g3,g4]@33 ~@19]/3", // F Gm G
  I: "[[bb3,bb4]@4 ~@2 [f4,f5]@5 ~ [g3,g4]@5 ~ [eb4,eb5]@70 ~@2 [d4,d5]@70 ~@2 [g3,g4]@30]/8", // Bb F G Eb D G
  J: "[~@3 [gb3,gb4]@17 ~ [f3,f4]@17 ~ e3@8 ~ e3@8 ~ [eb3,eb4]@15, ~@39 e4@17 ~@16]/6", // Gb F Eb
  K: "[~@3 [d3,d4]@17 ~ [eb3,eb4]@17 ~ [d3,d4]@17 ~@4]/5", L: "~@13 [d4,d5,g5]@2 ~@9, ~@4 [g3,bb3,g4,bb4] ~@3",
  M: "~ g5@2 ~@21, [g3,bb3,d4,g4,bb4,d5] ~@7", N: "~@12 g3 [g3,d4,d5,g5]@2 ~@9, ~@4 [bb3,g4,bb4] ~@3",
  O: "~ [d4,bb4,d5,g5]@2 ~@21, [g3,bb3,g4] ~@7", P: "~ [d4,d5,g5]@2 ~@21, [g3,bb3,g4,bb4] ~@7",
  Q: "~@13 g5@2 ~@9, ~@4 [g3,bb3,d4,g4,bb4,d5] ~@3", R: "~@13 [g3,g4,c5]@2 ~@9, ~@4 [c3,eb3,c4,eb4] ~@3",
  S: "~ [g3,g4,c5]@2 ~@21, [c3,eb3,c4,eb4] ~@7", T: "~@13 db5@2 ~@9, ~@4 [eb3,g3,bb3,eb4,g4,bb4] ~@3",
  U: "~ [a3,a4,c5]@2 ~@21, [d3,gb3,d4,gb4] ~@7", V: "~@13 [bb3,bb4,db5]@2 ~@9, ~@4 [eb3,g3,eb4,g4] ~@3",
// … 292 more lines

More by Pink Floyd