Strudelify
Wot's... Uh the Deal cover art

8-Tracks

Wot's... Uh the Deal

Pink Floyd

KeyG majorTempo110 bpm
0:00/0:00
// Wot's... Uh the Deal — Pink Floyd
// 110 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 118 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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 · lead 3 calliope · "SynCalliop"
const lead_3_calliope = note(`<
  ~@9 A@2 B C D E@2 ~ F@2 G H I J@2 K@5 L M N ~ O P Q R S T@2 ~ U@4 V@3 K@5 L M N ~@25 A@2 B C D E@2 ~ F@2 G H I J@2 K@5
  L M N ~@14
>`.pickRestart({
  A: "[b4 ~ d5@5 ~ b4@3 ~ b4 ~ b4@5 ~ c5 ~ b4@5 ~@5]/2", B: "b4 ~ d5@3 ~ d5@5 ~ b4 ~ d5@2", C: "~@2 e5 ~ d5@3 ~@7 d4 ~",
  D: "g4 ~ g4@3 ~ g4@3 ~ g4 ~ g4 ~ a4 ~", E: "[b4@3 ~ c5@3 ~ b4 ~ b4@3 ~ a4@7 ~@11]/2",
  F: "[g4 ~ b4@5 ~ b4@3 ~ c5 ~ b4@5 ~ b4@3 ~@9]/2", G: "b4@3 ~ d5 ~ d5@5 ~ b4 ~ e5@2", H: "~@2 d5@3 ~ b4@5 ~@5",
  I: "g4@3 ~ b4 ~ b4@5 ~ c5 ~ b4@2", J: "[~@2 b4@3 ~ b4 ~ b4@3 ~ g4 ~ a4@5 ~@13]/2",
  K: "[~@6 d4 ~ c5 ~ b4@3 ~ g4@5 ~@5 b4@3 ~ c5 ~ d5@5 ~@5 g5@3 ~ a5 ~ g5@4 e5 d5 c5@3 ~ c5 ~ d5@3 ~ e5@5 ~@3 c5 ~ c5@3 ~ c5@2 d5@2]/5",
  L: "~@2 d5@3 ~@3 d5 c#5 d5@3 ~ e5 ~", M: "d5@3 ~ d5 ~ c5 ~ d5 ~ c5 ~ d5 ~ c5 ~", N: "d5@5 ~@11",
  O: "b4@3 ~ b4 ~ b4@3 ~ b4@5 ~", P: "b4 ~@3 b4 ~ a4 ~ b4@5 ~@3", Q: "d5@3 ~ d5 ~ d5@3 ~ b4 ~ b4 ~ b4 ~",
  R: "e5@2 d5 ~ b4@9 ~@3", S: "d5@3 ~ d5 ~ d5@3 ~ d5 ~ d5 ~ b4 ~", T: "[e5@3 ~ d5 ~ d5@5 ~ b4 ~ e5@4 d5 ~@13]/2",
  U: "[g4@3 ~ g4 ~ a4 g4 b4@3 ~ b4 ~ c5 d5@4 ~ b4 ~ c5 b4 d5@3 ~ d5 ~ e5 g5@4 ~ e5 ~ g5@3 ~@5 d5 a5@2 g5 d5@5 ~@9]/4",
  V: "[d5@3 ~ d5 ~ d5@5 ~ e5 ~ d5@5 ~ c5 ~ d5@3 ~ b4 ~ e5 d5 d5@5 ~@13]/3",
})).s("gm_lead_3_calliope").gain(0.44)

// other · acoustic guitar steel · "Steel-stGt"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H A B I D E F G J K B C D E F G J A C L M N O P Q R S T U V W ~@2 A B C X Y Z AA AB A C L M N O P Q R
  S T U V W ~@2 A B C X Y Z AA AB A C L M N O P AC A B I D E F G J K B C D E F G J A C L M N O P Q R S T U V W ~@2 A B C
  X ~
>`.pickRestart({
  A: "~@2 g3 ~ b3 ~ g4 ~ b3 ~ g3 ~ a3 ~ g3 ~", B: "~@2 g3 ~ b3 ~ f#4 ~ b3 ~ g3 ~ f#3 ~ g3 ~",
  C: "~@2 g3 ~ b3 ~ f4 ~ b3 ~ g3 ~ f3 ~ g3 ~", D: "~@2 d4 ~ b3 ~ e4@3 ~ g3 ~ e3 ~ g3 ~",
  E: "~@2 g3 ~ b3 ~ e4 ~ b3 ~ g3 ~ e3 ~ g3 ~", F: "~@2 g3 ~ a3 ~ g3 ~ b3 ~ g3 ~ b3 ~ g3 ~",
  G: "~@2 a3 ~ c4 ~ f#4 ~ c4 ~ a3 ~ c4 ~ f#4 ~", H: "~@2 a3 ~ c4 ~ e4@3 ~ c4 ~ a3 ~ c4 ~",
  I: "~@2 a3 ~ b3 ~ f4 ~ b3 ~ g3 ~ f3 ~ g3 ~", J: "~@2 a3 ~ c4 ~ e4 ~ e4 ~ c4 ~ a3 ~ c4 ~",
  K: "~@2 g3 ~ b3 ~ g4 ~ b3 ~ g3 ~ b3 ~ g3 ~", L: "~@2 g3 ~ c4 ~ e4 ~@3 b3 ~ c4 ~ e4 ~",
  M: "~@2 a3 ~ c4 ~ e4 ~ c4 ~ a3 ~ c4 ~ e4 ~", N: "~@2 g3 ~ b3 ~ g4 ~ b3 ~ g3 ~ b3 ~ g4 ~",
  O: "~@2 g3 ~ b3 ~ f4 ~ b3 ~ g3 ~ b3 ~ f4 ~", P: "~@2 a3 ~ c4 ~ f#4@3 ~ c4 ~ a3 ~ f#4@2",
  Q: "~@4 e4 ~ e4 ~ e4@4 ~@2 d4 ~", R: "~@2 g3 ~ b3 ~ g4@3 ~ b3 ~ g3@3 ~", S: "~@2 g3 ~ b3 ~ f#4@3 ~ b3 ~ g3@3 ~",
  T: "~@2 g3 ~ b3 ~ f4@3 ~ b3 ~ g3@3 ~", U: "~@2 g3 ~ b3 ~ e4@3 ~ b3 ~ g3@3 ~", V: "~@2 g3 ~ b3 ~ d#4@3 ~ b3 ~ g3@3 ~",
  W: "~@2 g3 ~ b3 ~ d4@3 ~ b3 ~ g3@3 ~", X: "~@2 d4 ~ b3 ~ e4 ~ b3 ~ g3 ~ e3 ~ g3 ~",
  Y: "~@2 g3 ~ b3 ~ d#4 ~ b3 ~ g3 ~ e3 ~ g3 ~", Z: "~@2 g3 ~ a3 ~ g3 ~ d4 ~ g3 ~ b3 ~ g3 ~",
  AA: "~@2 a3 ~ c4 ~ f#4 ~ f#4 ~ c4 ~ a3 ~ c4 ~", AB: "~@2 a3 ~ e4 ~ f#4 ~ f#4 ~ c4 ~ a3 ~ c4 ~",
  AC: "f#4 ~@3 e4 ~ e4 ~ e4@4 ~@2 d4 ~",
})).s("gm_acoustic_guitar_steel").gain(0.35)

// other · overdriven guitar · "Overdrive"
const overdriven_guitar = note(`<
  ~ A B C D E F G H A B C D E F G H A B C D E F G H I J K L I@2 G M N B C D E F G H A B C D E F O P I J K L I@2 G M N B
  C D E F G H A B C D E F O P Q@2 R S T U V W A B C D E F G H A B C D E F G H I J K L I@2 G M X Y Z AA AB AC AD AE AF Y
  Z AA ~
>`.pickRestart({
  A: "g3@5 ~@3 a3@3 ~ g3@3 ~", B: "f#3@8 ~@4 f#3@3 ~", C: "f3@8 ~@4 f3@3 ~", D: "e3@8 ~@4 e3@3 ~",
  E: "d#3@8 ~@4 d#3@3 ~", F: "d3@3 ~ d#3@3 ~ e3@3 ~ d#3@3 ~", G: "d3@11 ~@5", H: "d3@13 ~ d3 ~", I: "g3@11 ~@5",
  J: "f3@11 ~@5", K: "e3@5 ~@3 c3@3 ~ b2@3 ~", L: "a2@3 ~ a3@3 ~ a3@5 ~@3", M: "d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~",
  N: "g3@8 ~@4 g3@3 ~", O: "d4@3 ~ d4@3 ~ d4@3 e4 f#4@3 g4", P: "a4@3 ~ c5@3 ~ d5@3 ~ f#5@3 ~",
  Q: "b4@5 ~@3 c5 ~ b4 ~ a4 ~ g4 ~", R: "[e3,e5]@5 ~ g5 ~ [c3,c5]@3 ~ [b2,b4]@3 ~",
  S: "[a2,a4]@4 a3@2 d#4 ~ e4 ~ a4 ~ e4@3 ~, ~@8 a3@5 ~@3", T: "b4@4 ~@2 d4 ~ g4 ~ a4 ~ b4 ~ c5 ~, g3@11 ~@5",
  U: "b4@3 ~ g4 ~ d4@5 ~ a4 ~ b4 ~, g3@11 ~@5", V: "a4@3 ~ f#4 ~ d4@3 ~ f#4 ~ a4 ~ b4 ~, d3@11 ~@5",
  W: "[d3,a4]@3 ~ d3@2 d4@2 d3@2 e4 ~ d3@2 a4 ~, ~@4 f#4 ~@7 f#4 ~@3", X: "g4@8 ~@4 g4@3 ~", Y: "f#4@8 ~@4 f#4@3 ~",
  Z: "f4@8 ~@4 f4@3 ~", AA: "e4@8 ~@4 e4@3 ~", AB: "d#4@8 ~@4 d#4@3 ~", AC: "d4@3 ~ d#4@3 ~ e4@3 ~ d#4@3 ~",
  AD: "d4@11 ~@5", AE: "d4@13 ~ d4 ~", AF: "g4@5 ~@3 a4@3 ~ g4@3 ~",
})).s("gm_overdriven_guitar").gain(0.31).pan(0.1)

// chords · piano · "Piano 1"
const piano = note(`<
  ~@9 A B C D E F G@2 A B C D E F G@2 H I J K L I M@2 N O P Q R S T U A B C D E F V@2 H I J K L I M@2 W X Y Z AA AB AC
  AD AE AF AG AH AI AB AJ@2 H I J K L I M@2 A B C D E F G@2 A B C D E F G@2 H I J K L I M@2 AK AL AM AN AO AB AP AQ AE
  AR AS AH ~
>`.pickRestart({
  A: "[g4,b4,d5]@3 ~ [g4,b4,d5]@3 ~ [g4,b4,d5]@3 ~ [g4,b4,d5]@3 ~", // G
  B: "[b4,d5,f#5]@3 ~ [b4,d5,f#5]@3 ~ [b4,d5,f#5]@3 ~ [b4,d5,f#5]@3 ~", // Bm
  C: "[b4,d5,f5]@3 ~ [b4,d5,f5]@3 ~ [b4,d5,f5]@3 ~ [b4,d5,f5]@3 ~", // Bdim
  D: "[g4,b4,e5]@3 ~ [g4,b4,e5]@3 ~ [g4,b4,e5]@3 ~ [g4,b4,e5]@3 ~", // Em
  E: "[g4,b4,d#5]@3 ~ [g4,b4,d#5]@3 ~ [g4,b4,d#5]@3 ~ [g4,b4,d#5]@3 ~", // Gaug
  F: "[g4,b4,d5]@3 ~ [g4,b4,e5]@3 ~ [g4,b4,d5]@4 ~@2 [g4,b4,e5] ~", // G Em G Em
  G: "[a4,c5,f#5]@3 ~ [a4,c5,f#5]@3 ~ [a4,c5,f#5]@3 ~ [a4,c5,f#5]@3 ~", // F#dim
  H: "[b3,d4,g4]@3 ~ [b3,d4,g4]@3 ~ [b3,d4,g4]@3 ~ [b3,d4,g4]@3 ~", // G
  I: "[b3,d4,f4]@3 ~ [b3,d4,f4]@3 ~ [b3,d4,f4]@3 ~ [b3,d4,f4]@3 ~", // Bdim
  J: "[g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~", // C
  K: "[a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~ [a3,c4,e4]@3 ~", // Am
  L: "[g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@3 ~", // G
  M: "[a3,c4,f#4]@3 ~ [a3,c4,f#4]@3 ~ [a3,c4,f#4]@3 ~ [a3,c4,f#4]@3 ~", N: "[b4,d5,g5]@9 ~@7", O: "[b4,d5,f#5]@11 ~@5",
  P: "[b4,d5,f5]@11 ~@5", Q: "b4@5 b4 d5 ~ b4@5 ~@3, [g4,e5]@11 ~@5", R: "[g4,b4,d#5]@11 ~@5", S: "[g4,b4,d5]@11 ~@5",
  T: "[f#3,a3,d4]@3 ~ [a3,d4,f#4]@3 ~ [d4,f#4,a4]@3 ~ [f#4,a4,d5] [f#4,a4,d5]@2 ~", // D
  U: "[f#3,a3,d4]@4 ~@2 [f#3,a3,e4] ~ [a3,d4,f#4]@3 ~ [d4,f#4,a4]@3 ~", V: "[a4,c5,f#5]@11 ~@5",
  W: "~@4 b4 a4 g4 ~ d4@4 g3@3 ~, g3 ~", X: "~@4 b4 a4 g4 ~ d4@4 f#3@3 ~, f#3 ~",
  Y: "d4@3 ~ d4@3 ~ b3 d4@2 ~ g4@3 ~, f3@11 ~@5", Z: "~@4 d4@3 ~ b3 d4@6 ~", AA: "~@8 d#4 g4@2 ~ b4@3 ~",
  AB: "d4@3 ~ d#4@3 ~ e4@3 ~ d#4@3 ~", AC: "d4@4 ~@2 d4 ~ d4 f#4@2 ~ a4@3 ~", AD: "~@2 a4 ~ f#4@9 ~@3",
  AE: "~@2 b4 ~ a4 b4 a4 ~ b4 ~ a4 b4 a4 ~ b4 ~", AF: "a4 b4 a4 ~ b4 ~ a4 b4 a4 ~ b4 ~ a4 b4 a4 ~",
  AG: "b4@3 ~ d5 d5@2 ~ b4@3 ~ g4@4", AH: "~ d4 d4@3 ~ d5@3 d4!2 ~ d4@3 ~", AI: "g4@3 ~ b4 ~ g4@4 ~ d#4 d#4@3 ~",
  AJ: "[~@6 c4 ~ f#4 ~ c4@3 ~ e4@6 ~@2 e4@5 ~ d4@3 ~, d4@11 ~@21]/2",
  AK: "~@4 b4 a4 g4 ~ d4@4 b4 a4 g4 ~, g3@8 ~@4 g3@3 ~", AL: "d4@4 b4 a4 g4 ~ d4@4 b4 a4 g4 ~, f#3@8 ~@4 f#3@3 ~",
  AM: "d4@3 c4 d4@3 ~ b3 d4@2 d4 g4@3 ~, f3@11 ~@5", AN: "d4@4 d4@3 ~ [b3,d4] d4@6 ~",
  AO: "g3 b3 d#4 ~ d#4@2 ~@2 d#4 g4@2 ~ b4@3 b3", AP: "d4@4 ~ c4 d4 ~ d4 f#4@2 ~ a4@3 ~",
  AQ: "f#4 ~ [f#4,a4] ~@5 a4 ~ f#4 ~ [a4,c5] ~ f#4 ~, ~@2 f#4@3 ~@3", AR: "a4 b4 a4 ~ b4 ~ a4 b4 a4 ~ b4 ~ a4 b4 a4!2",
  AS: "b4@3 ~ d5 d5@2 ~ [b4,d5]@3 ~ g4@4", // Bm
})).s("gm_piano").gain(0.27)

// chords · pad halo · "Halo Pad"
const pad_halo = note(`<
  ~@9 A B C D E F G@2 A B C D E F G@2 ~@8 H B C D E F I@2 A B C D E F G@2 ~@8 H B C D E F I@2 A B C D E F G@2 ~@8 A B C
  D E F G@2 A B C D J F G@2 ~@8 K B L D J F I@2 A B C D ~
>`.pickRestart({
  A: "[g3,b3,d4]", B: "[b3,d4,f#4]@11 ~@5", C: "[b3,d4,f4]", D: "[g3,b3,e4]@11 ~@5", E: "[g3,b3,d#4]",
  F: "[g3,b3,d4]@11 ~@5", G: "[[a3,c4,f#4]@27 ~@5]/2", H: "[b3,d4,g4]", I: "[[f#3,a3,d4]@27 ~@5]/2",
  J: "[g3,b3,d#4]@11 ~@5", K: "[b3,d4,g4]@11 ~@5", L: "[b3,d4,f4]@11 ~@5",
})).s("gm_pad_halo").gain(0.31)

// chords · pad choir · "Halo Pad"
const pad_choir = note(`<
  ~@25 A B C D E B F@2 ~@16 A B C D E B F@2 ~@16 A B C D E B F@2 ~@16 G B H D I B J K ~@13
>`.pickRestart({
  A: "[b3,d4,g4]", B: "[b3,d4,f4]@11 ~@5", C: "[g3,c4,e4]", D: "[a3,c4,e4]@11 ~@5", E: "[g3,b3,d4]",
  F: "[[a3,c4,f#4]@25 ~@7]/2", G: "[b3,d4,g4]@11 ~@5", H: "[g3,c4,e4]@11 ~@5", I: "[g3,b3,d4]@11 ~@5", J: "[a3,c4,f#4]",
  K: "[a3,c4,f#4]@9 ~@7", // F#dim
})).s("gm_pad_choir").gain(0.31)

// bass · electric bass finger · "FingeredBs"
const bass = note(`<
  ~ A B@2 C@2 D E F G H I J@2 G E K L M@3 G@2 E N O P Q R S T E U G H I J@2 G E K L M@3 G@2 E K O P Q R S T E U G H I
  J@2 G E K L M@3 G@2 E K O P Q R S T E U G H I J@2 G E K L M@3 G@2 E N O P Q R S T E U G H I J@2 G E K L M@3 ~
>`.pickRestart({
  A: "g2@13 ~ d2 ~", B: "[g2@9 ~ b1 ~ d2 ~ g2@15 ~ d2 ~]/2", C: "[g2@9 ~ a1 ~ b1 ~ g2@10 ~@4 g2 ~ d2 ~]/2",
  D: "g2@13 ~ g2 ~", E: "d2@4 ~@2 d2 ~ d2@4 ~@2 d2 ~", F: "d2@4 ~@2 d2 ~ d2 ~ d2@3 ~ d2 ~",
  G: "g2@4 ~@2 g2 ~ g2@4 ~@2 g2 ~", H: "g2@4 ~@2 d2 ~ g2@4 ~@2 g2 ~", I: "g2 ~ d2 ~ g2 ~ g2 ~ g2@4 ~@2 d2 ~",
  J: "[g2@4 ~@2 g2@3 ~ a2 ~ b2 ~ g2@6 ~@2 g2@3 ~ d2 ~ b1 ~ d2 ~]/2", K: "d2 ~ d2@3 ~ d2 ~ d2@3 ~ d2@3 ~",
  L: "g2@4 ~@2 g2 ~ g2@3 ~ e2 ~ d2 ~",
  M: "[g2@4 ~@2 g2 ~ g2 ~ b1 ~ d2 ~ g2@6 ~@2 g2 ~ g2 ~ a2 ~ b2 ~ g2@6 ~@2 e2 ~ g2@4 ~@2 e2 ~]/3",
  N: "d2@4 ~@2 d2 ~ g2 ~ a2 ~ b2 ~ a2 ~", O: "g2@4 ~@2 g2 ~ g2 ~ b1 ~ d2 ~ g2@2", P: "~@2 b1 ~ d2 ~ g2 ~ f2@4 ~@2 f2 ~",
  Q: "c2@4 ~@2 c2 ~ c2@3 ~ b1@3 ~", R: "a1@3 ~ a2 ~ a2 ~ a2 ~ a2@5 ~", S: "g2@4 ~@2 g2 ~ g2@3 ~ b1 ~ d2 ~",
  T: "d2@3 ~ d2 ~ d2 ~ d2 ~ d3 ~ b1 ~ c2 ~", U: "d2@4 ~@2 d2 ~ d2 ~ e2 ~ f#2 ~ a2 ~",
})).s("gm_electric_bass_finger").gain(0.27).pan(0.9)

// drums · kick
const kick = s("bd").struct(`<
  A B@7 C B@7 C B@7 C B@7 D B@7 C B@7 D B@7 D B@7 E B@7 C B@7 D B@7 C B@6 C F B@7 D B@7 C B@4 ~
>`.pickRestart({
  A: "x!4", B: "x ~@3 x!2 ~@2", C: "x!2 ~ x ~ x!2 ~", D: "x ~@2 x!2 ~@3", E: "x ~@2 x ~ x!2 ~", F: "x!2 ~@2 x!2 ~@2",
})).gain(0.37)

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@7 C B@7 C B@7 D B@7 C B@7 D B@7 D B@7 C B@7 C B@7 D B@7 C B@6 C E B@7 D B@7 C B@4 ~
>`.pickRestart({
  A: "~@8 x ~@3 x!3 ~", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@4 x ~@5 x!3 ~@3", E: "~@2 x!3 ~ x ~@3 x!3 ~ x ~",
})).gain(0.37)

// drums · hihat
const hihat = s("hh").struct("<~ [x!8]!116 ~>").gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@32 A ~@15 A ~@7 A ~@23 A ~@23 A ~@13>".pickRestart({
  A: "~@7 x",
})).gain(0.37)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@6 B A ~@7 A ~@7 A ~@4
>`.pickRestart({
  A: "x", B: "x!4",
})).gain(0.32)

stack(
  lead_3_calliope, acoustic_guitar_steel, overdriven_guitar, piano, pad_halo, pad_choir, bass, kick, snare, hihat,
  low_tom, crash
)

More by Pink Floyd