Strudelify

Intergalactic

Beastie Boys

KeyE minorTempo210 bpm
0:00/0:00
// Intergalactic — Beastie Boys
// 210 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 7 "synth" lead 8 bass lead (copy of ch 6 "synth" synth bass 1)
// note: Full arrangement: all 182 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(210/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 · pad halo · "synth"
const pad_halo = note(`<
  ~@28 A@6 B C A@6 B C A@6 B C ~@2 A@4 ~@2 A@6 B C ~@8 A@6 B C ~@6 D E A@6 ~@2 A@6 B C A@6 B C A@2 ~@2 A@4 F@2 A@6 B G
  ~@18 A@6 B C A@6 B C ~@4 A@6 B C ~@2
>`.pickRestart({
  A: "[e4@2 g4 f#4, [e3,b3]]/2", B: "c3, c4@7 ~", C: "[b2,b3] ~", D: "b3", E: "c4@4 b3@3 ~",
  F: "[e4@2 g4 ~, b3@7 ~, e3@3 ~]/2", G: "[b2,b3] ~@3",
})).s("gm_pad_halo").gain(0.68)

// chords · lead 2 sawtooth · "synth"
const lead_2_sawtooth = note(`<
  ~@28 A@6 B C A@6 B C A@6 B C ~@2 A@4 ~@2 A@6 B C ~@8 A@6 B C D@6 E F A@6 ~@2 A@6 B C A@6 B C G@2 H I J@4 K@2 A@6 B L
  ~@18 A@6 B C A@6 B C ~@4 A@6 B C ~@2
>`.pickRestart({
  A: "[e4@2 g4 f#4, [e3,b3]]/2", B: "c3, c4@7 ~", C: "[b2,b3] ~", D: "[[b3,e4]@4 b3@11 ~, ~@2 d4@3 ~@3]/2", E: "b3",
  F: "c4@4 b3@3 ~",
  G: "[b5@2 [a5,a#5] [e5,f5,g5,g#5] ~@8 a#4 ~@7 b4 ~@3 f#4@8, [e3,b3], e4@16 g4@8 a#4 ~@7, a#5 ~@2 a4@2 ~@7 b4@6 ~@6 b4@6 ~@2]/2", // A#maj7 E5
  H: "b5@2 [a5,a#5] [a4,e5,f5,g5,g#5] ~@8 [a#4,b4] ~@3, a#5 ~@15", I: "[a#4,b4] ~@3 [a#4,b4] ~@3 b4@6 ~@2, ~@8 a#4 ~@7",
  J: "[g5@2 [f5,f#5] [c5,c#5,d#5,e5] ~@4 a4 ~@3 a#4 ~@7 b4 ~@3 f#4@8, [e3,b3], e4@16 g4@8 a#4 ~@7, f#5 ~@11 b4@6 ~@6 b4@6 ~@2]/2", // F#maj7 E5
  K: "[f#5@2 [e5,f5] [b4,c5,d5,d#5] ~@4 g#4 ~@3 b4 ~@7 a#4 ~@3 [a#4,b4] ~@7, b3@15 ~, e3@7 ~, e4@4 g4@2 f#4 ~, f5 ~@11 a#4@6 ~@14]/2", // Fmaj7 Bmaj7
  L: "[b2,b3] ~@3", // B
})).s("gm_lead_2_sawtooth").gain(0.47)

// chords · string ensemble 2 · "synth"
const string_ensemble_2 = note(`<
  ~@60 A ~ A ~ A ~@11 A ~ A ~ A ~@11 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@39 A ~ A ~ A ~@3 A ~ A ~ A ~@7 A ~ A ~ A
  ~@5
>`.pickRestart({
  A: "b5 ~@3, a#5 ~@15",
})).s("gm_string_ensemble_2").gain(0.8)

// bass · acoustic bass · "bass"
const bass = note(`<
  ~@4 A B A B C@4 D E D E ~@4 F G F H I@3 J K@6 L M K@6 L M K@6 L M ~@2 K@4 ~@2 K@6 L M ~@2 N ~ O@2 ~@2 K@6 L M ~@8 K@6
  ~@2 K@6 L M K@6 L M K@2 ~@2 K@4 P@2 K@6 L Q ~@2 R@6 S ~ R@6 T@2 K@6 L M K@6 L M ~@4 K@6 L U ~@2
>`.pickRestart({
  A: "e1@3 ~ e1@3 ~", B: "e1@3 ~@3 e1@2", C: "[e1@3 ~@4 e1@2 ~ e1@2 ~@2 e1@2]/2", D: "e1!2 ~ e1", E: "e1 ~@3",
  F: "b1!2", G: "b1 f1 f1@2", H: "b1 f1 b1 a1", I: "f1!2", J: "f1@7 ~", K: "[e2@7 e2@2 e2 e2@6]/2", L: "c2@7 ~",
  M: "b1 ~", N: "e1@3 ~@5", O: "[e1@3 ~@4 e1@2 e1 e1@2 ~@4]/2", P: "[e2@7 e2@2 e2 e2@2 ~@4]/2", Q: "b1 ~@3",
  R: "[d1@3 f1@2 f1 e1 d#1]/2", S: "d1 ~", T: "d1!2", U: "b1@7 ~",
})).s("gm_acoustic_bass").gain(0.57)

// bass · fretless bass · "bass"
const bass_2 = note(`<
  ~@28 A@6 B C A@6 B C A@6 B C ~@2 A@4 ~@2 A@6 B C ~@2 D ~ E@2 ~@2 A@6 B C ~@8 A@6 ~@2 A@6 B C A@6 B C A@2 ~@2 A@4 F@2
  A@6 B G ~@2 H@6 I ~ H@6 J@2 A@6 B C A@6 B C ~@4 K@6 B L ~@2
>`.pickRestart({
  A: "[e1@7 e1@2 e1 e1@6]/2", B: "c2@7 ~", C: "b1 ~", D: "e1@3 ~@5", E: "[e1@3 ~@4 e1@2 e1 e1@2 ~@4]/2",
  F: "[e1@7 e1@2 e1 e1@2 ~@4]/2", G: "b1 ~@3", H: "[d1@3 f1@2 f1 e1 d#1]/2", I: "d1 ~", J: "d1!2",
  K: "[e2@7 e2@2 e2 e2@6]/2", L: "b1@7 ~",
})).s("gm_fretless_bass").gain(0.8)

// bass · synth bass 1 · "synth"
const bass_3 = note(`<
  A B C@2 A B C@2 A B C@2 A B C@2 D E F G H I J K F G L G ~@32 A B C@2 A B M@2 ~@32 A B C@2 A B M@2 A B C@2 A B M@2 ~@36
  A B C@2 A B M@2 A B C@2 A B M@2 D E F G H N H N H I J O P@2
>`.pickRestart({
  A: "b2@2 b2!2 b2@2 b2@2", B: "b2@4 b2@3 b2@4 ~ b2@3 ~", C: "[b2@4 b2@3 b2@5 b2@3 f2@4 ~ f2@2 [f2,f#2] ~ b2@4 b2@4]/2",
  D: "b1@2 b1@2 b1@2 b1@4 b1@4 b1 ~", E: "b1@2 b1@2 b1@2 b1@4 b1@4 a#1 ~", F: "a1@2 f1@2 f1@2 f1@4 f1@4 f1 ~",
  G: "f1!3 f1@2 f1@2 ~", H: "c5 c#5 d#5 b4@2 g#4 ~ g#3", I: "b2@2 c3@2 d#3@2 g3@4 g#4@4 d#5 ~",
  J: "d#5!2 b4 g#4@2 g#3@2 g#3", K: "d#3@2 c3@2 b2@2 g#2@4 d#2@4 a#1 ~", L: "f1@2 f1@2 f1@2 f1@4 f1@4 f1 ~",
  M: "[c3@4 c3@3 c3@5 c3@3 f2@4 ~ e2@2 [e2,f2] ~ b2@4 b2@4]/2", N: "b2 c3 d#3 g3@2 g#4@2 ~",
  O: "d#3 c3 b2 g#2@2 d#2@2 ~", P: "[f1@3 ~]/2",
})).s("gm_synth_bass_1").gain(0.68)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B A B C D C D E F E F ~@4 B G C H C H I A C H C H C H C H C H C H C H C H C H C H C H C H ~ J C H C H I J C H C
  H C H C H ~@2 I J C H ~@2 I J C H C H I K L A L M L N I K C O C P C Q ~@2 C H C H C H C H C H C H C H C H C H ~ R C H
  C H A ~ C P C H C P I ~@3 B G B G B G ~ K B G B G B G A B C H C H C H C H C H C H C H C H ~@3 R B G B S B S B G ~@2
>`.pickRestart({
  A: "x!2", B: "x ~ x!2", C: "x ~@3 x ~@2 x", D: "x!3 ~ x ~ x ~", E: "x!4", F: "x ~@2 x ~@2 x ~", G: "~ x!3",
  H: "~ x!2 ~ x ~@3", I: "x", J: "~ x", K: "~@2 x!2", L: "x ~@6 x", M: "x!3 ~", N: "x!2 ~ x", O: "~ x!2 ~ x ~ x!2",
  P: "~ x!2 ~@5", Q: "~ x!2 ~ x ~ x ~", R: "~ x!2 ~", S: "~@2 x ~ x ~ x!2",
})).gain(0.8)

// drums · rim
const rim = s("rim").struct("<~@84 [~ x] [~ x ~ x] [~ x] [~@3 x] [~ x]!2 ~@92>").gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@5 A ~ A B C B C A D A D ~@4 A@6 ~ E A@24 ~ F A@4 ~ F A@8 ~@3 A@3 ~ G ~ A@5 ~ A ~@6 H F A@3 ~ A@2 ~@2 A@18 ~ F A@5 ~
  A ~ A@3 ~@4 I A@6 J K A@6 ~ A@17 ~@3 A@9 ~@2
>`.pickRestart({
  A: "~ x", B: "~@4 x ~@2 x", C: "~ x ~@2 x ~@3", D: "~@3 x ~@2 x ~", E: "x!2", F: "~ x!2 ~", G: "~@2 x!2",
  H: "~@2 x ~@2 x ~@2", I: "~@6 x!2", J: "x ~@2 x ~@2 x ~", K: "x ~@2 x!2 ~@3",
})).gain(0.8)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@52 A B ~@4 C D ~@15 E ~@23 F ~@18 G D ~@62>".pickRestart({
  A: "~@4 x!3 ~", B: "x!2", C: "x!4", D: "x", E: "x!3 ~@5", F: "~@6 x!2", G: "~@3 x",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@52 A B ~@4 C B ~@15 D ~@14 E@2 ~@7 F ~@18 G H ~@15 F ~@6 I J ~@38>".pickRestart({
  A: "~@4 x!3 ~", B: "x!3 ~", C: "x!4", D: "x!3 ~ x ~ x ~", E: "~@2 x ~@2 x ~@2", F: "~@6 x!2", G: "~@3 x",
  H: "x!2 ~@2", I: "x ~@2 x ~@2 x ~", J: "x ~@2 x ~@4",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A@4 B@8 ~@4 B@6 C D B E B E B E B E B E B E B E B E B E B E B E B E ~ F B E B E ~ F B E B E B E B E B@3 E B@2 ~@3
  F B E B E ~ G E@6 ~ G B H B I B H ~@2 B E B E B E B E B E B E B E B E B E ~ F B E B E B ~ B I B E B I C ~@3 B@6 ~ G
  B@9 E B E B E B E B E B E B E B E J@3 K B E B@5 E ~@2
>`.pickRestart({
  A: "x!2", B: "x!4", C: "x", D: "x ~ x!3 ~ x!2", E: "x ~ x ~ x ~ x!2", F: "~@4 x ~ x!2", G: "~@2 x!2", H: "x!3 ~",
  I: "x!2 ~@2", J: "x!8", K: "x!3 ~ x ~ x!2",
})).gain(0.8)

stack(pad_halo, lead_2_sawtooth, string_ensemble_2, bass, bass_2, bass_3, kick, rim, snare, snare_soft, low_tom, hihat)

More by Beastie Boys