Strudelify
Nobody Home cover art

1979 · The Wall

Nobody Home

Pink Floyd

KeyC majorTempo99 bpm
0:00/0:00
// Nobody Home — Pink Floyd
// 99 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: duplicate parts dropped: ch 7 "strings2" synth strings 1 (copy of ch 6 "strings1" string ensemble 1)
// note: Full arrangement: all 85 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(99/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 · piano
const piano = note(`<
  A@8 B@3 C@2 D E@7 F@4 G H I J K@2 L M N@2 O@2 P Q R S T@3 U@2 V W X Y@2 Z@2 AA AB AC AD AE@2 AF AG AH AI AJ AK AL AM
  AN AO AP@2 AQ AR AS AT AU@2 AV@2 AW AX AY AZ@2 ~
>`.pickRestart({
  A: "[~@24 [c5,e5]@17 a4@6 [e4,c5,e5]@12 ~ e5@3 d5@4 ~ c5@2 ~ [g4,e5]@3 [e4,c5]@6 g4@3 ~@5 c3@6 d3@11 ~ d2@5 e2@6 [f2,a3,f4]@24 ~ [g#3,f4]@4 c4@4 g#3@4 f3@4 c4@2 c4@3 c4@3 e4@3 e4@3 e4@6 e4@6 g3@3 ~ g3@3 e4, ~@23 [a2,a3]@24 ~@12 c5@4 ~@7 d5@2 ~@11 [e4,c5]@12 ~@71 c3@26, ~@23 e4@18 ~@6 g#3@24 g3@17 ~@6 [c4,f#4]@23 ~@25 f2@24 g3@18 ~@8]/8", // C F C# A C Cdim
  B: "[~@2 e4@3 ~@6 c2@6 ~ d4@2 d4@2 ~ e4@9 e4@2 e4 e4@3 e4@6 e4@2 e4@2 e4@3 d4@6 e3@3 ~ e3@5 ~ e3@5, ~@5 e4@12 d2@5 d4@2 ~@36 e4@2 ~@4 d4@2 ~@4, ~@23 e2@49, ~@23 g#3@37 g#3@6 g#3@6]/3",
  C: "[c4@3 c4@3 c4@6 c4@6 f3@6 ~ c4@3 ~@9 [f3,a3,c4]@3 [f3,a3,c4]@3 [f3,a3,c4]@5, f2@17 f2@7, a3@18 ~@10 c4@9 ~@11]/2", // F
  D: "~ [e3,g3]@3 [e3,g3]@6 g2@3 c3@9 g2@2, ~ c2@9 ~@14", // Em
  E: "[~@2 c2@12 [a3,f4]@3 g3@3 g3@3 g3@3 e4@3 e4@3 e4@6 e4@3 e4@3 g3@3 e4@6 ~@7 c2@3 ~@3 e4@3 c3@3 c2@3 e2@9 b2@3 e4@3 d4@3 e4@6 ~ [e3,g#3,b3,d4]@9 [e2,g#3]@3 [b2,b3]@6 [e3,g#3,d4]@6 c4@6 c4@6 c4@3 c4@3 c4@6 ~ [f3,a3,c4]@6 c4@3 c4@3 [f3,c4]@3 [c3,c4]@3 a2, ~@14 c3@6 c3@6 [c3,g3]@12 c2@21 ~@4 c2@6 ~@18 e3@12 ~@25 [f3,a3]@24 ~@20, ~@18 e4@4 ~ [g3,c4,e4]@2 [g#3,b3]@8 ~@23]/7", // Dm E7 E B E7 F F5 C …
  F: "[~@2 [f2,c4]@3 e4@3 ~@6 c2@3 c2@9 c3@3 c3@9 ~ c2@3 ~@3 g3@3 a3@3 [c2,g3]@3 e4@3 e4@2 ~@3 c2@3 ~@8 c4@2 c3@8 c2@3 ~@8 c4@2, ~@5 g3@37 ~@12 c3@8 ~@3 c2@11 ~@10 c2@10, ~@5 c3@9 ~@28 c2@9 ~@8 e4@5 ~@32, ~@8 e4@34 ~@12 c4@19 ~@2 c4@19 ~@2]/4", // F5 C5
  G: "~ [c3,g4]@8 [c2,g4]@3 g4 ~ g4@7 c2@2 g4, ~ [a#3,e4]@23, ~@12 c2@9 a4 ~@2", // C5 A#dim
  H: "c3@3 c2 [e4,a#4,c5] c4!3, [e4,g4,a#4] c2", I: "f4 ~@2 c2 c2@3 c2, a3, f2@3 ~@5, ~ f4@7",
  J: "f4 f4@2 c2 ~ d4@2 [c2,c4], g#3, f2@3 c4@2 ~@3, ~@4 c2@3 ~", // C
  K: "[e4 ~@3 [b2,g#3,d4]@4 [a2,a3,c4]@4 [f#2,a3,c4,d4]@4, [c3,g3] ~@3, ~ e4@11 ~@4]/2", L: "[g2,g3,b3,d4]",
  M: "g#4@3 a4@4 ~ b4@4 e5@6 e5@6, g#2, d4 [d4,b4]", // G
  N: "[~@9 a4@2 a4 a4@4 ~ a4 a4@6 a4@12 [a3,a4]@6 [g#3,e4,c5]@6, [a2,e4,c5,e5]@3 ~]/2", // A G#aug Am
  O: "[~@9 c4@2 ~ g4 ~ g4 g4@7 ~@2 g4@6 ~@15 g3@3, g3@11 g3@2 g3@2 ~, [a4,c5,e5]@2 [a4,c5,e5] ~, ~@11 c4@2 ~@10 e4@2 ~@11 [e4,g4,e5]@6 [e4,g4,e5]@6]/2", // Am Em
  P: "[f#3,d4,a4,d5]", Q: "~ b3@2 c4@2 c4!3, [f3,d4,g#4,d5]", R: "e3@3 c3 c3@3 c3, [c4,g4,c5] ~",
  S: "c3@3 c3 c3@3 c3, ~ [a3,f4]", // Dm
  T: "[c3@9 c3@3 c3@9 c3@3 c2@9 c2@3 [a3,f4]@3 c4@3 c4@3 c4@2 ~ e4 ~ e4 e4@2 e4@7 e4@3 e4@9, [g3,e4]@36 c3@6 c3@5 c4@2 ~@23, ~@2 [c3,g3]]/3", // Dm C C5
  U: "[c3@12 c2@6 ~@2 c4 c4@2 ~ e4!3 e4@15 e4@3 d4@3, [g3,e4]@18 d2@5 d4@2 ~@23, ~ [e2,g#3]]/2", // C E
  V: "[g#3,b3]@2 [g#3,b3] [g#3,c4], [e2,d4]", W: "c4@2 c4!2 c4@2 c4!2, [f2,a3]", X: "c4!2 c4@2 c4 c4@3, [f2,a3]!2",
  Y: "[c2@3 c2 c2@3 c2 c2@3 c2 c4@2 c4@2, [e3,g3]@3 [f2,f3,a3]]/2", // Em F
  Z: "[e4!2 e4@2 e4@2 e4 c4 e4 ~@2 g2 ~ g3!3, g3@3 c3, c2@11 ~@5, ~@9 e4@4 ~@3]/2",
  AA: "e4!2 ~@2 g#3@2 e4!2, g#3@2 ~ a3, ~ e4@2 ~", AB: "[g#3,b3,e4]@5 a3!3, e2", AC: "c4@3 c4!2 c4@2 c4, [f2,a3]",
  AD: "c4@3 c4@4 ~ c4@4 c4@3 d4@6 c4@3, f2!2", AE: "[c2@4 c2@4 c3@4 ~ g3 g3@2, [g3,e4]@13 ~@3, ~@3 c3]/2",
  AF: "e4@4 e4 e4@3, [c2,g3]", AG: "c2@3 c3 c3@4, [g3,e4]", AH: "~@3 g4@2 g4 g4@3 g4@3 g4@3 a4@6 g4@3, [c2,a#3,e4]",
  AI: "c2@3 c2 c2@2 c2@2, [e4,a#4] [e4,a#4,c5]", AJ: "f2@3 f2 f2@3 [f2,c4], [f4,a4,c5]@7 ~",
  AK: "f4 f4@3 f4 g4@2 f4, [f2,g#3]", AL: "f4 e4@3 f4 e4@3, [c3,g3] [b2,g#3,d4]",
  AM: "f4 e4@3 f4 e4@3, [a2,a3,c4] [d2,f#3,c4]", AN: "g2!2, [g3,b3,d4]", AO: "g#4@2 a4@2 b4@2 a4@3 g#4@3, [e2,d4]",
  AP: "[[a2,c4,a4]@6 a2 g#2, ~@3 [c4,a4]]/2", AQ: "~@2 g4!3 g4@2 f#4, [g2,e4]", AR: "[e4,g4]@3 e5 c5 g4, g2",
  AS: "[f#2,a4,c5,d5]", AT: "~@2 c4@2 d4 c4!3, [f2,g#4,c5,d5]",
  AU: "[c2@3 c2 c2@3 c3 c3@3 c2 c2@3 c2, [c4,e4,g4,c5]@3 [a3,c4,f4]]/2", // C F
  AV: "[c2@3 c2 c2@3 c3 c3@3 c2 [a3,c4,f4] f4 [a3,c4,f4] f4, [g3,c4,e4]@6 c2!2]/2", AW: "e4 e4@3 f4 e4@3, [c2,g3,c4]!2",
  AX: "~@2 g3@2 ~ e4!3, c2, e4@5 ~@3, ~@2 c4 g3", AY: "[g#3,b3]@2 e3@2 e4 ~ e3@2, e2, ~@2 [g#3,b3] ~, ~@5 e4@3",
  AZ: "[e2,g#3,b3,d4]/2", // E7
})).s("gm_piano").gain(0.57)

// chords · string ensemble 1 · "strings1"
const string_ensemble_1 = note(`<
  ~@23 A@3 ~@3 B C D E F@2 G ~ H ~@2 I J@2 K@2 L M N O P@2 Q@2 R S N T U V W@2 X Y Z AA B AB AC AD AE@2 AF AG ~@3 AH
  AI@2 ~@6
>`.pickRestart({
  A: "[~@27 e5@22 a#3@23, ~@6 c4@43 ~@23]/3", B: "[c3,g3] [b2,g#3]", C: "[a2,a3] [g2,a3]", D: "[g2,g3,b3]", E: "g#2",
  F: "[a2@6 a3 g#3]/2", G: "g3", H: "f#3", I: "~ [a3,f4]", J: "[[g3,e4]@3 [a3,f4]]/2", K: "[[g3,e4]@6 c2 d2]/2",
  L: "[e2,g#3]", M: "[g#3,b3]@2 [g#3,b3] g#3, e2", N: "[f2,a3]", O: "[f2,a3]!2", P: "[[e3,g3]@3 [f2,f3,a3]]/2",
  Q: "[[c2,g3]@3 c3]/2", R: "g#3 ~", S: "[g#3,b3]", T: "f2!2", U: "[c2,c3]!2", V: "c3!2", W: "[c2,g3]", X: "[c2,a#3]",
  Y: "[e4,a#4] [e4,a#4,c5]", Z: "[f4,a4,c5]@7 ~", AA: "[f2,g#3]", AB: "[a2,a3] [d2,f#3,c4]", AC: "g2!2, [g3,b3]",
  AD: "e2", AE: "[[a2,c4,a4]@6 a2 g#2]/2", AF: "g2", AG: "[g2,e4,g4]", AH: "~ [a3,c4,f4]", AI: "[[g3,c4,e4]@3 ~]/2",
})).s("gm_string_ensemble_1").gain(0.37).pan(0.2)

stack(piano, string_ensemble_1)

More by Pink Floyd