Strudelify

Longview

Green Day

KeyE♭ majorTempo71 bpm
0:00/0:00
// Longview — Green Day
// 71 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "bass" named as a bass, played on electric bass finger (its shakuhachi patch is not one)
// note: Full arrangement: all 133 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(71/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.

// bass · electric bass finger · "bass"
const bass = note(`<
  ~@3 A B C D@2 E C D@2 E C D@2 E C D@2 E C F@2 G H G H G H G I J K L@2 E C D@2 E C D@2 E C D@2 E C F@2 G H G H G H G I
  M@2 N@4 O P G H G H G H G I J K L@2 Q K L@2 E C D@2 E C D@2 E C D@2 E C F@2 R G H G H G H G H G H G H G H G I J K L@2
  J K L@2 J K L@2 J K L@2
>`.pickRestart({
  A: "eb4@5 d4@3 db4@4 ~ c4@3 b3@4 bb3@3 ~ a3@4 ab3@4 g3@4 gb3@4 f3@4 bb2@3 ~",
  B: "eb3@12 bb3@11 ab3@12 ~ g3@8 eb3@3 ~", C: "db3@11 ab3@12 g3@12 ~ db3@7 f3@4 ~",
  D: "[eb3@12 bb3@12 g3@4 bb3@4 eb4@3 g3@4 bb3@4 c4@3 ~ eb4@12 ~ db4@12 c4@11 db4@8 ~ f3@3 ~]/2",
  E: "~ eb3@10 ~ bb3@11 ab3@12 ~ g3@8 eb3@3 ~",
  F: "[eb3@12 bb3@12 g3@4 bb3@4 eb4@3 g3@4 bb3@4 c4@3 ~@3 db4@2 ~ [db3,ab3,db4]@3 db3 [db3,ab3,db4]@3 db3 [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~, ~@47 eb4@12 ~ bb3 ~@11 bb3 ~@23, ~@16 [db3,ab3] ~@15]/2", // Db5
  G: "[bb2,bb3,f4,bb4]@11 ~@2 bb2@10 ~ [bb2,bb3,f4,bb4]@12 [bb2,bb3,f4,bb4]@12, ~@4 [bb3,f4,bb4]@3 ~@9", // Bb5
  H: "[ab2,ab3,eb4,ab4]@12 [ab2,ab3,eb4,ab4]@11 ~ [eb2,eb3,bb3,eb4]@12 [eb2,eb3,bb3,eb4]@12", // Ab5 Eb5
  I: "ab2@8 ab2@2 ~@2 ab2@6 ~@2 ab2@2 ~@2 ab2@6 ~@2 ab2@3 ~ ab2@6 ~@2 bb2@4, [ab3,eb4,ab4]", // Ab5
  J: "~ eb3@11 bb3@11 [eb5,g5]@6 ~ [eb5,ab5]@4 ~@2 g3@6 ~@2 eb3@3 ~, ~@23 ab3@12 ~@7 bb5@4 ~@2, ~@43 db5@5", // Eb Ab5
  K: "~@11 ab3@12 g3@12 ~ db3@7 f3@4 ~, db3@11 ~@37, ~@7 [db5,eb6]@39 ~@2", // Dbsus2
  L: "[eb3@12 bb3@11 ~ g3@4 bb3@3 ~ eb4@3 g3@4 bb3@4 [db5,bb5]@4 ~@13 db4@12 c4@11 db4@8 ~ f3@3 ~, ~@23 [eb5,g5]@7 ~ [eb5,ab5]@3 ~@9 c4@3 ~ eb4@12 ~@37, ~@54 [db5,ab5]@41 ~]/2", // Gb Eb Ab5 Db5
  M: "[eb3 eb3@10 ~ bb3@8 ~@16 g3@7 eb3 eb3@3 db3 db3@11 ab3@8 ~@12 db3@5 db3@7 [db3,f3,ab3,db4]@4 ~, eb4@19 ~@4 ab3@12 ~@12 ab3@12 ~@12 g3@12 ~@13, bb3@12 ~@8 [eb3,bb3,eb4]@9 ~ bb3@12 ~ [bb3,eb4]@3 ~ db4@19 ~@13 [ab3,db4]@11 ~@6, ~@31 [eb3,eb4]@11 ~@25 [db3,ab3,db4]@11 ~@18]/2", // Db Eb5 Db5 Eb Db5
  N: "[eb3 eb3@11 bb3@8 ~@16 g3@7 eb3 eb3@3 db3 db3@11 ab3@8 ~@12 db3@5 db3@7 [db3,f3,ab3,db4]@4 ~, eb4@19 ~@4 ab3@12 ~@12 ab3@12 ~@12 g3@12 ~@13, bb3@12 ~@8 [eb3,bb3,eb4]@9 ~ bb3@12 ~ [bb3,eb4]@3 ~ db4@19 ~@13 [ab3,db4]@11 ~@6, ~@31 [eb3,eb4]@11 ~@25 [db3,ab3,db4]@11 ~@18]/2", // Db Eb5 Db5 Eb Db5
  O: "bb3@12 bb3@7 ~@17 g3@7 eb3 eb3@3 ~, [eb3,eb4]@17 ~@2 [eb3,bb3,eb4]@11 ~ [eb3,bb3,eb4]@11 ~@6, ~@24 ab3@12 ~@7 [bb3,eb4]@3 ~@2", // Eb Eb5
  P: "db3 db3@9 ~@2 [db3,ab3,db4]@7 ~ db3@2 ~@2 [db3,ab3,db4]@7 db3@2 ~@2 db3 [db3,ab3,db4]@7 db3@4 ~, [ab3,db4] ~@7", // Db5
  Q: "eb3 eb3@11 bb3@11 [eb5,g5]@6 ~ [eb5,ab5]@4 ~@2 g3@6 ~@2 eb3@3 ~, ~@23 ab3@12 ~@7 bb5@4 ~@2, ~@43 db5@5", // Eb Ab5
  R: "~ db4@2 ~ [db3,ab3,db4]@3 db3 [db3,ab3,db4]@3 db3 [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ [db3,ab3,db4]@3 ~ db3@3 ~ db3@3 ~ db3@3 ~, [db3,ab3]@3 ~@9 bb3 ~@11 bb3 ~@10 ab3@12 ~, ~@3 [eb3,eb4,ab4]", // Db5 Ab5
})).s("gm_electric_bass_finger").gain(0.5)

// drums · kick
const kick = s("bd").struct("<~@24 A@7 B ~@20 A@7 B A@15 B ~@25 A@15 B ~@16>".pickRestart({
  A: "x ~@19 x ~@4 x ~@18 x ~@3", B: "x ~@6 x ~@12 x ~@4 x ~@6 x ~@15",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct(`<
  A B C D A B C D A B C D A B C D A B C D A B C E F G F G F G F H A B C D A B C D A B C D A B C D A B C E F G F G F G F
  H F G F G F G F G F G F G F G F H A B C D A B C D A B C D A B C D A B C D A B C E@2 F G F G F G F G F G F G F G F H A
  B C D A B C D A B C D A B C D
>`.pickRestart({
  A: "~ x ~@6 x ~@10 x ~@4 x ~@7 x ~@15", B: "~@7 x ~@11 x ~@3 x ~@7 x ~@16",
  C: "x ~@6 x ~@11 x ~@3 x ~@7 x ~@11 x ~@4", D: "x ~@6 x ~@11 x ~@4 x ~@7 x ~@15", E: "x!12", F: "~@12 x ~@24 x ~@10",
  G: "~@13 x ~@23 x ~@10", H: "~ x ~ x",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct(`<
  A B C D A B C D A B C D A B C D A B C D A B C ~@8 E A B C D A B C D A B C D A B C D A B C ~@8 E ~@15 E A B C D A B C D
  A B C D A B C D A B C D A B C ~@17 E A B C D A B C D A B C D A B C D
>`.pickRestart({
  A: "~@11 x ~@24 x ~@7 x ~@3", B: "x ~@10 x ~@24 x ~@8 x ~ x", C: "~@12 x ~@22 x!2 ~@11", D: "~@11 x", E: "~@47 x",
})).gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C ~@8 D A B C@2 A B C@2 A B C@2 A B C@2 A B C ~@8 D ~@15 D A B C@2 A B C@2
  A B C@2 A B C@2 A B C@2 A B C ~@17 D A B C@2 A B C@2 A B C@2 A B C@2
>`.pickRestart({
  A: "~@12 x ~@24 x ~@10", B: "~@3 x ~@5 x ~ x", C: "~ x ~ x", D: "~@15 x",
})).gain(0.5)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 B C B C B C B D ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 B C B C B C B D B C B C B C B C
  B C B C B C B D ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 B C B C B C B C B C B C B C B D ~ A ~@3 A ~@3 A ~@3 A ~@2
>`.pickRestart({
  A: "~@11 x", B: "x ~@10 x ~@12 x ~@11 x ~@11", C: "x ~@11 x ~@11 x ~@12 x ~@10", D: "x",
})).gain(0.5)

// drums · crash
const crash = s("cr").struct("<~@23 A B C@6 ~@20 A B C@6 ~ C@8 B C@6 ~@24 A@2 B C@3 B C@3 B C@6 ~@17>".pickRestart({
  A: "x", B: "x ~@36 x ~@10", C: "~@37 x ~@10",
})).gain(0.5)

stack(bass, kick, snare, low_tom, mid_tom, high_tom, crash)

More by Green Day