Strudelify
1979 cover art

Aeroplane Flies High

1979

The Smashing Pumpkins

KeyE♭ majorTempo122 bpm
0:00/0:00
// 1979 — The Smashing Pumpkins
// 122 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 137 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// bass · fretless bass · "BASS"
const bass = note(`<
  ~@21 A B C D E B C D E B C D F G H B C D E B C D E B C D F G H B C D E B C D E B C D E B C D F I E B C D E B C D E B C
  D J K L M J K L M J K L M F G N ~@7 A B C D E B C D F G H B C D E B C D E B C D F G H B C D E B C D O ~@3
>`.pickRestart({
  A: "~@7 eb1", B: "eb1!8", C: "eb1!7 ab1", D: "ab1!8", E: "ab1!7 eb1", F: "ab1!7 f1", G: "f1!6 bb1!2", H: "bb1!7 eb1",
  I: "f1!6 ab1!2", J: "ab1!7 bb1", K: "bb1!8", L: "bb1!7 c2", M: "c2!6 ab1!2", N: "bb1!7 ~", O: "ab1!7 ~",
})).s("gm_fretless_bass").gain(0.35)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@36 A@8 B@4 ~@20 A@8 B@4 ~@32 A@8 B@4 ~@13>".pickRestart({
  A: "[~@2 g6@6 f6@6 eb6@6 c6@5 bb5@4 ~ ab5@28 ~@4 eb6@11 ~ eb6@2 d6@8 ~@2 d6@2 bb5@4 ab5@31 ~@5]/8",
  B: "[~@2 g6@6 f6@6 eb6@6 c6@6 bb5@4 ab5@29 ~@5]/4",
})).s("gm_string_ensemble_1").gain(0.17)

// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  ~@3 A B C D E B C D E B C D E B C D F G H B C D E B C D E B C D I J K ~@11 L J M B C D E B C D E B C D E B C D I N O
  ~@11 P Q R S T Q R S T Q R S U J M B C D E B C D E B C D E B C D I J K ~@11 L J M B C D E B C D V@3 ~
>`.pickRestart({
  A: "~@7 [eb2,d3,d4]", B: "[eb2,d3,d4]!6 eb2!2", C: "eb2!7 ab2", D: "ab2!8", E: "ab2!7 [eb2,d3,d4]",
  F: "ab2!7 [f3,f4]", G: "[f2,f3,f4]!7 [f2,bb2,bb3]", H: "[bb2,bb3]!7 [eb2,bb2,d3,d4]", I: "ab2!7 [f2,f3]",
  J: "[f2,f3]!6 [bb2,bb3]!2", K: "[bb2,bb3]!7 ~", L: "~@7 [f2,f3]", M: "[bb2,bb3]!7 [eb2,d3,d4]",
  N: "[f2,f3]!6 [ab2,ab3]!2", O: "[ab2,ab3]!7 ~", P: "~@7 [bb2,f3]", Q: "[bb2,f3]!8", R: "[bb2,f3]!7 [c3,g3]",
  S: "[c3,g3]!6 [ab2,eb3]!2", T: "[ab2,eb3]!7 [bb2,f3]", U: "[ab2,eb3]!7 [f2,f3]",
  V: "[ab2!7 [eb2,eb3,bb3,eb4]@14 ~@3]/3", // Eb5
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// drums · rim
const rim = s("rim").struct("<[~ x ~ x]!4 ~@131 [~ x ~@7 x ~@6]!2>").gain(0.5)

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

// drums · snare
const snare = s("sd").struct("<~@4 [~ x ~@3 x ~@2]!130 ~@3>").gain(0.5)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C B D B C B D B C B D B E F@11 G B E F@15 G B E F@11 H I@11 J B D A B@2 C A
  B@2 C B C B D B C B D B E F@11 G B D B C B D B C B D ~@3
>`.pickRestart({
  A: "x!2 ~@2", B: "x!2 ~ x", C: "~@3 x ~@4", D: "~@4 x!3 ~", E: "~@4 x!4", F: "x!8", G: "x!7 ~",
  H: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", I: "x!16", J: "x!14 ~@2",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct("<~@79 [~@7 x] [x!8]!11 [x!7 ~] ~@45>").gain(0.25)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@4 A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C B D B C B D B C B D B E F@11 G B E F@15 G B E F@11 H I J K L I J K L I J K
  M B D A B@2 C A B@2 C B C B D B C B D B E F@11 G B D B C B D B C B D ~@3
>`.pickRestart({
  A: "x!2 ~@2", B: "x!2 ~ x", C: "~@3 x ~@4", D: "~@4 x!3 ~", E: "~@4 x!4", F: "x!8", G: "x!7 ~",
  H: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", I: "x!5 ~ x!6 ~@2 x ~", J: "~@2 x!3 ~ x!2 ~ x!2 ~@3 x!2",
  K: "~@2 x!2 ~ x!3 ~ x!6 ~", L: "x ~ x!3 ~ x ~@2 x!2 ~ x ~ x!2", M: "x ~ x!3 ~ x ~@2 x!2 ~ x ~@3",
})).gain(0.4)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct("<~@80 A B C D A B C D A B C D ~@45>".pickRestart({
  A: "~@5 x ~@6 x!2 ~ x", B: "x!2 ~@3 x ~@2 x ~@2 x!3 ~@2", C: "x!2 ~@2 x ~@3 x ~@6 x",
  D: "~ x ~@3 x ~ x!2 ~@2 x ~ x ~@2",
})).gain(0.25)

stack(bass, string_ensemble_1, acoustic_guitar_nylon, rim, kick, snare, hihat, ride, shaker, shaker_soft)

More by The Smashing Pumpkins