Strudelify
Outside the Wall cover art

1979 · The Wall

Outside the Wall

Pink Floyd

KeyD minorTempo150 bpm
0:00/0:00
// Outside the Wall — Pink Floyd
// 150 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "oboe1" named as a reed, played on oboe (its piano patch is not one); ch 2 "vibra2" named as a mallet, played on vibraphone (its piano patch is not one); ch 4 "oboe1" named as a reed, played on oboe (its piano patch is not one)
// note: Full arrangement: all 263 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · oboe · "oboe1"
const oboe = note(`<
  ~@11 A@2 B@2 ~@4 C@2 D@2 ~@3 E F G H@2 ~@4 I J K@2 L@4 ~@2 M N O ~@3 P@2 Q R S ~@3 P@2 T U V ~@6 W@5 ~@7 X@6 Y Z ~@3
  AA AB ~@4 AC AD ~@2 AE@3 ~ AF AG ~ AH@2 ~@2 AI@3 ~ AJ@2 ~@2 AK@2 ~@2 AL AM@2 ~ AN AO@3 ~@4 AN ~@13 AP@3 AQ AR@3 AS ~
  AT AU AV AW AX AY AZ BA BB BC AX ~@2 BD BE BF BG BH BI BJ BI BJ BI BJ BK BL BM BN ~@2 BM BO ~ BP BN@2 ~ BP BQ BO ~@2
  BR BS@2 ~ BT BU V ~ BM BN ~@2 BM BO ~ BP BN@2 ~ BP BQ BO ~@2 BR BS@2 ~ BT BU V ~@29
>`.pickRestart({
  A: "[d4@2 e4 f4@4 e4]/2", B: "[d4@2 e4 f4@2 e4 ~@2]/2", C: "[d4@2 e4 f4@2 e4@3]/2", D: "[d4@2 e4 f4@2 ~@3]/2",
  E: "~@3 e4", F: "d4 e4", G: "f4 e4@3", H: "[d4@2 e4 f4@2 e4@2 ~]/2", I: "d4 e4@7", J: "f4 e4@7",
  K: "[d4@2 e4 f4@3 d4 g4]/2", L: "[g4@7 ~]/4", M: "g4!2 ~@2 g4@2 f4@2", N: "a4@2 g4 f4@3 g4@2", O: "f4",
  P: "[~@4 f4@2 f4 f4@3 f4@2 f4@4]/2", Q: "~@2 e4!2", R: "e4@2 d4 c4", S: "d4", T: "e4!2", U: "e4@4 d4@3 c4",
  V: "d4 ~@3", W: "[~@4 a4@2 b4 a4@2 b4 a4@2 f5@2 g5 f5@2 g5 f5@2 f4@2 g4 f4@2 g4 f4@2 c4@2 d4 c4@2 d4 c4@2 ~@4]/5",
  X: "[~@4 a4@2 b4 a4@2 b4 a4@2 f5@2 g5 f5@2 g5 f5@2 f4@2 g4 f4@2 g4 f4@2 c4@2 d4 c4@2 d4 c4@2 c4@2 db4 c4@2 db4 c4@2 db4 c4@2 db4]/6",
  Y: "c4@2 db4 c4@2 db4 c4@2", Z: "d4 ~", AA: "d4 ~@7 d4 ~@7", AB: "d4 ~@15", AC: "~ g4 a4@2 g4 a4@2 g4",
  AD: "a4@2 g4 a4 a4@2 d4!2", AE: "[~ f4@2 ~ f4@2 ~ f4@17]/3", AF: "~@2 a4@2 ~ a4@2 ~", AG: "a4 ~@3",
  AH: "[~@4 c5@2 b4 a4@2 ~@7]/2", AI: "[~@2 e4@2 f4@2 g4 a4@17]/3", AJ: "[~@4 e5@2 d5 c5@2 ~@7]/2",
  AK: "[~@2 g4@2 a4@2 b4 c5@2 d5 e5@2 d5 e5@3]/2", AL: "~ e5", AM: "f5/2", AN: "~ c4", AO: "d4/3",
  AP: "d4@3 d4@3 d4@2 d4@3 d4@3 d4@2", AQ: "~ d4@2 d4!2 c4!2 d4 c4 bb3!2 c4 bb3 a3 g3@2",
  AR: "g3@2 g3 g3@3 g3 g3@2 g3 g3@2 g3@2 g3!2", AS: "g3 g3@2 g3@3 g3 g3@2 g3@2 g3 g3@2 f3@2", AT: "~@3 g4",
  AU: "a4!3 g4 a4!2 a4@2", AV: "a4!7 g4", AW: "a4@2 a4@2 a4@2 g4@2 c5 c5@2 c5@3 g4@2", AX: "a4 ~@7", AY: "~@7 e4",
  AZ: "a4@2 a4@2 a4@2 a4@2 a4 a4@4 g4 g4@2", BA: "c5!2 c5@4 a4@2 c5@6 a4@2", BB: "a4!3 g4 a4 a4@2 g4",
  BC: "g4 g4@2 g4@2 e4 e4@2 e4 e4@3 g4@2 ab4@2", BD: "~@10 e4 e4@3 a4@2", BE: "a4!5 g4!2 f4", BF: "f4!7 e4",
  BG: "d4@2 d4@2 d4@2 d4@2 g4@2 g4@4 d4!2", BH: "a4@2 g4@4 g4!2 g4@8", BI: "a5@3 g5@3 f5@2", BJ: "bb5@3 a5@3 g5@2",
  BK: "g5", BL: "g5 bb5", BM: "d4 e4@2 f4@2 e4@3", BN: "d4@2 e4 f4@2 e4@3", BO: "d4@2 e4 f4@5", BP: "~@7 a3",
  BQ: "d4@2 e4 f4@3 e4@2", BR: "~ g4", BS: "[g4!2 ~@6 a4@2 g4@2 f4@2 g4 f4@9 ~@8]/2",
  BT: "~@4 f4@2 f4 f4@3 f4@2 f4@2 f4@2", BU: "~@2 e4!3 d4@2 c4",
})).s("gm_oboe").gain(0.36)

// bass · acoustic bass · "bass2"
const bass = note(`<
  A B@3 C D B@8 E B@23 F G@8 H@4 I@2 J@2 B K B K I@2 J@2 B@3 L B@3 L B@3 L@6 M L@5 M L M L M L M L N B@3 O L M L@2 M P Q
  R L@5 P Q S L@2 P L M L M S L@3 P@4 T P@3 L M L M L@4 ~@10 U V@2 W@5 X Y Z@2 AA AB AC AD AE AD AF Z@3 AD AG AH AI AJ
  AE AK AE AK AE AK AJ@2 AL@2 AM@2 AL@2 AN AO AP AQ AN AO AR AO AS@3 AT AU AV AW AX ~@2 AL@2 AM@2 AL@2 AN AO AP AQ AN AO
  AR AO AS@3 AT AU AV AW AX AY AQ ~ AZ ~@2 BA BB ~@8 BC ~@2 BD BE ~ BF BG ~@6
>`.pickRestart({
  A: "~@2 d2!2 d2@2 d2!2", B: "d2@2 d2!2 d2@2 d2!2", C: "d2@2 d2!6", D: "d2 ~ d2!2 d2@2 d2!2",
  E: "d2@2 d2!2 db2 d2 ~@2", F: "d2@2 d2!2 d2@2 g2@2", G: "g2@2 g2!2 g2@2 g2!2", H: "d2@2 d2!2 d2@2 d2@2",
  I: "f2@2 f2!2 f2@2 f2!2", J: "c2@2 c2!2 c2@2 c2!2", K: "d2!2", L: "d2@2 d2!2 d2@2 c2@2", M: "d2@2 d2!2 d2@2 a1@2",
  N: "d2 c2!3", O: "d2@2 d2!2 a1@2 c2 d2", P: "d2@2 d2!2 d2@2 c2!2", Q: "d2@2 d2!2 d2@2 a1!2", R: "bb1@4 c2@2 d2!2",
  S: "d2@2 d2!2 c2@2 c2@2", T: "a1@2 a1!2 c2@2 c2!2", U: "d2", V: "d2 ~@3",
  W: "[d3@2 d3!2 c3!2 d3 c3 bb2!2 c3 bb2 a2@2 g2@4 ~@12 g2@4 ~@12 g2@4 ~@12 g2@4 ~@12 g2@2]/5",
  X: "a2!2 a2@2 a2@2 a2!4 a2@2 a2@2 g2@2", Y: "a2!2 a2@2 a2@2 a2!4 a2@2 b2@4", Z: "a2@2 a2@2 a2@2 a2 g2",
  AA: "a2@2 a2@2 c3@2 c3!2", AB: "~@2 c4 ~ c4 ~ c4 ~", AC: "c4@3 ~ c4@2 c4@2 c4 ~@3 c4@2 ~@2", AD: "a2!4", AE: "f2!4",
  AF: "e2@2 e2@2 e2@2 g2 ab2", AG: "d3@2 d3@2 d3@2 d3 c3", AH: "bb2@2 bb2@2 bb2@2 bb2 a2", AI: "g2@2 g2@2 g2@2 g2 bb2",
  AJ: "c3!4", AK: "bb2!4", AL: "d2 d3 d2 d3", AM: "a3@3 a3 ~@4 a3!2 ~@2 a3!2 ~@2", AN: "d3@3 c3 d3 ~@3",
  AO: "d3@3 d3 a2@2 c3 ~", AP: "d3@3 c3 d3@2 d3@2", AQ: "d3@3 d3 a2@2 c3@2", AR: "d3@3 c3 d3@2 d3 ~",
  AS: "[g2@11 g3]/3", AT: "g2 g3 g2!2", AU: "~@10 d5 ~@2 c5 ~@2", AV: "d5@3 d5!2 ~ c5 ~ c5 ~ b4 b4@3 a4 ~",
  AW: "f2@2 f2!2", AX: "c2@2 c2 c3", AY: "d3@3 c3 d3@2 ~@2", AZ: "~ d4 ~@2", BA: "~@6 a3 ~",
  BB: "~@6 a3@2 a3 ~@3 d4@2 ~ e4", BC: "a3@5 ~@3 a3@8", BD: "~@2 f4@10 f4 ~@3", BE: "a4 f4@3", BF: "~@12 a4 f4@3",
  BG: "~@2 a4 ~ e5@4",
})).s("gm_acoustic_bass").gain(0.36)

// other · oboe · "oboe1"
const oboe_2 = note(`<
  A@8 ~@3 A@8 ~@19 B@7 ~ C ~@20 D@4 ~@4 E F@4 G F@5 G F G F G E F ~@6 E G F@2 G F G ~ E F@11 G F G F@8 H F@4 G F G F@4
  ~@23 I J ~@22 K@2 ~@2 L@2 ~@2 L@2 ~@6 M N ~@6 K@2 ~@2 L@2 ~@2 L@2 ~@6 M N ~@4 O P O P Q P R P O P O P O P O P O P O P
  O P O P O P O P
>`.pickRestart({
  A: "d2/8", B: "[~@4 e3@2 g3@30 d3 ~ g3@18]/7", C: "~ d3", D: "d3/4", E: "~@3 c2", F: "d2 ~@2 c2", G: "d2 ~@2 a1",
  H: "a1 ~@2 c2", I: "a2!4", J: "a2@2 a2@2 a2@2 a2 e2", K: "d2/2", L: "a3@3 a3 ~@4 a3!2 ~@2 a3!2 ~@2",
  M: "d2@2 d3 c2 d2@2 d3@2", N: "d2 d3 a2 g2", O: "d3@3 c3 d3@2 ~@2", P: "d3@3 d3 a2@2 c3 ~", Q: "d3@3 c3 d3@2 d3@2",
  R: "d3@3 c3 d3@4",
})).s("gm_oboe").gain(0.36)

// other · piano · "piano1"
const piano = note("<~@38 A@7 ~@22 B@4 ~@192>".pickRestart({
  A: "[~@4 e3@2 g3@30 d3 ~ g3@18]/7", B: "d3/4",
})).s("gm_piano").gain(0.36)

// bass · piano · "piano1"
const bass_2 = note("<~@138 A@8 ~@117>".pickRestart({
  A: "d0/8",
})).s("gm_piano").gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@152 A@3 B@4 ~ C@15 D@4 A@2 ~@6 D@76>".pickRestart({
  A: "x", B: "~@7 x", C: "x!4", D: "x!2",
})).gain(0.36)

// drums · china
const china = s("cr").struct("<~@175 [~ x ~ x]!4 ~@8 [~ x ~ x]!76>").gain(0.36)

// drums · bongos
const bongos = s("bongo:4").struct(`<
  ~@152 A@3 B@4 ~ C@2 ~@9 A@4 ~@12 B@14 ~ B@3 ~ B@19 ~ B@3 ~ B@5 ~ B@3 ~ B ~ B ~ B@19
>`.pickRestart({
  A: "x", B: "~@7 x", C: "x!5 ~@11",
})).gain(0.94)

stack(oboe, bass, oboe_2, piano, bass_2, snare, china, bongos)

More by Pink Floyd