Strudelify

Goodbye Blue Sky

Pink Floyd

KeyD majorTempo109 bpm
0:00/0:00
// Goodbye Blue Sky — Pink Floyd
// 109 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(109/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 · acoustic guitar nylon · "acoustic 15"
const acoustic_guitar_nylon = note(`<
  A@3 B C D E D E F G H I@3 ~ I@3 ~ J@3 ~ K L M L N O P@2 Q ~@3 I@3 ~ J@3 ~ K L M L R@3 ~ S T U V@2 W@2 ~@7
>`.pickRestart({
  A: "d3 f#3 d3 g3 d3 f#3 d3 f#3", B: "d3@2 f#3@2 d3@2 g3@2 d3@2 f#3@2 e3@2 c3 b2", C: "~ c4 ~ c4@4 b3", D: "b3",
  E: "~ c4@2 c4@4 b3", F: "b3@3 c4@3 b3@4 c4@4 c#4@2", G: "d3 f#3 g3 f#3 d3 f#3 g3 f#3",
  H: "d3 f#3 g3 f#3 d3 f#3 g3 d3", I: "[~ [d4,f#4,a4]@2 [c#4,e4,g4]@4 [b3,d4,f#4]@4 [a3,c#4,e4]@4 [f#3,b3,d4]@5 ~@4]/3",
  J: "[~ [d4,f#4,a4]@2 [c#4,e4,g4]@4 ~@4 [a3,c#4,e4]@4 [f#3,b3,d4]@5 ~@4, ~@7 [b3,d4,f#4]@5 ~@12]/3", // D C#dim A Bm
  K: "~ [c4,e4]!4 [a3,c4] [c4,e4]!2", L: "[c4,e4] [b3,d#4] [b3,d#4]@2 ~@4",
  M: "~@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4] [c4,e4] [c4,e4]@2", N: "~ [c4,e4]!7",
  O: "[c4,e4] [b3,d#4]!4 [a3,c4]!3", // C B Am
  P: "[[a3,c4]@2 [g3,b3]@2 [g3,b3]!2 [g3,b3]@4 [f#3,a3]@2 [f#3,a3]!2 [f#3,a3]@4 [e3,g3]@2 [e3,g3]@2 [e3,g3]@2 [e3,g3]@2 [d3,f#3] [d3,f#3]@3 [c3,e3]@2]/2", // Am G F#m Em D C
  Q: "[b2,d3] [f#3,b3]@2 [f#3,b3]@3 ~@2", // Bm B5
  R: "[~@2 [a3,c4] [c4,e4]@3 [a3,c4] [c4,e4]@3 [c4,e4]@4 [b3,d#4]@4 [b3,d#4]!2 [b3,d#4]@6 [c4,e4]@2 [c#4,f4]@2 [d4,f#4]@6 ~@12]/3", // Am C Am C B C C# D
  S: "[d4,f#4,a4]@3 [c#4,e4,g4] [c#4,e4,g4]@2 ~@2", T: "[e4,g4,b4]@2 [d4,f#4,a4] [d4,f#4,a4]@3 ~@2",
  U: "~ [d4,f#4,a4] [c#4,e4,g4] [c#4,e4,g4]@3 ~@2", // D C#dim
  V: "[[e4,g4,b4] [d4,f#4,a4] [c#4,e4,g4] [a3,d4,f#4]@3 [a3,d4,f#4] [g3,c#4,e4]@3 ~@6]/2", // Em D C#dim D C#dim
  W: "[~@6 [a3,d4,f#4] [g3,c4,e4]@3 ~@6]/2", // D C
})).s("gm_acoustic_guitar_nylon").gain(0.26)

// bass · slap bass 2 · "acoustic 45"
const bass = note(`<
  A B C D E ~@6 F G@2 H@2 G@2 H@2 G@2 H@2 I@2 J@2 K@4 H@2 L@2 G@2 H@2 G@2 H@2 I@2 J@2 M@2 N O P Q R S@5 T@3 U ~@2
>`.pickRestart({
  A: "d3 f#3 d3 [e3,g3]@2 [f#3,a3]@3", B: "e3 f#3 e3 g3@2 ~ d3 f#3, ~@5 f#3@2 ~",
  C: "d3@2 f#3@2 d3@2 [e3,g3]@4 [f#3,a3]@4 d3 [d3,e3]", D: "a2@2 f#3@2 a2@2 g3@4 f#3@2 e3@2 c#3 b2",
  E: "~ c4 ~ c4@4 b3", F: "d4@2 ~ [e3,g3] [e3,g3,a3]@2 [e3,g3]@4 [d3,f#3]@4 b2 a2",
  G: "[~@2 f#4@4 e4@8 d4@8 c#4@4 c#4 d4 c#4@4]/2", H: "b2 f#3 g3 f#3 b2 f#3 g3 f#3",
  I: "[~ c4@2 c4@2 c4@2 c4@2 b3!2 ~@5]/2", J: "[~ c4@2 c4@2 c4@2 c4@2 b3 b3@2 ~@4]/2",
  K: "[~ c4@2 c4@4 c4@2 b3@2 b3@2 a3!2 a3@2 g3!2 g3@2 f#3!2 f#3@2 e3!2 e3@2 d3@2 c3]/4", L: "d3 f#3 d3 g3 d3 f#3 d3 g3",
  M: "[~ c4@2 c4@4 b3@4 b3@2 c4 c#4 d4]/2", N: "d3 f#3 g3 f#3 d3 f#3 g3 f#3",
  O: "~@3 [e3,g3] [f#3,a3]@2 [e3,g3]@4 d3@4 b2 a2", P: "[d4,f#4]@3 [c#4,e4]@5", Q: "[e4,g4]@3 [d4,f#4]@5",
  R: "~ [d4,f#4] ~ [c#4,e4]@5", // D C#m
  S: "[[e4,g4]@3 [d4,f#4]@3 [d4,f#4] [c#4,e4]@8 [c#4,e4]@7 [d4,f#4] [c4,e4]@8 [c4,e4]@9]/5", // Em D C#m D C
  T: "d3 f#3 d3 g3 d3 f#3 d3 f#3", U: "d3 f#3 d3 g3 d3 f#3 ~@2",
})).s("gm_slap_bass_2").gain(0.2)

// bass · slap bass 2 · "acoustic 45" · soft notes
const bass_soft = note("<~@63 [~@6 d3 f#3] [d3 f#3 d3 g3 d3 f#3 d3 f#3]!2>").s("gm_slap_bass_2").gain(0.1)

// bass · slap bass 2 · "acoustic 45"
const bass_2 = note(`<
  ~@4 A ~@7 B C ~@2 B C ~@2 B C ~@2 B@7 D ~@4 B C ~@2 B C ~@2 B@6 ~@2 E@2 F ~ G E@3 ~@6
>`.pickRestart({
  A: "a2", B: "a2!4", C: "a2@2 a2@2 a2@3 a2", D: "a2!3 ~", E: "d3!4", F: "a2 ~@3", G: "~ d3!3",
})).s("gm_slap_bass_2").gain(0.15)

stack(acoustic_guitar_nylon, bass, bass_soft, bass_2)

More by Pink Floyd