Strudelify
All Mixed Up cover art

311

All Mixed Up

311

KeyA♭ majorTempo92 bpm
0:00/0:00
// All Mixed Up — 311
// 92 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 69 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(92/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · electric guitar clean · "Clean Guitar"
const electric_guitar_clean = note(`<
  A B A B A B A B A B A B A B A B ~@16 A B A B A B A B ~@8 C@3 D C@4 E@4 ~@9
>`.pickRestart({
  A: "[ab3,c4,f4,ab4]@13 ~@3 [a3,c4,f4,a4]@13 ~@3", // Fm F
  B: "[f3,bb3] ~ [f3,bb3] ~ [f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [d4,ab4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~@3 [f3,bb3] ~ [d4,f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~, ~@23 [d4,ab4,bb4]@2 ~@7", // Bb5 Bb7 Bb5 Bb Bb5 Bb7
  C: "[f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~", // Bb5
  D: "[f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f4,bb4]@2 [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~", // Bb5
  E: "[f4,bb4] ~@5 [f4,bb4] ~ [eb4,ab4] ~@5 [eb4,ab4] ~", // Bb5 Ab5
})).s("gm_electric_guitar_clean").gain(0.26)

// chords · electric guitar jazz · "Distorted Guitar"
const electric_guitar_jazz = note("<~@16 A@16 ~@8 A@4 ~ A@3 ~@12 A@8 B>".pickRestart({
  A: "[bb3,f4]@3 ~@5 [bb3,f4]@3 ~@3 [f3,c4]@2 [ab3,eb4]@2 [ab3,eb4]@2 [ab3,eb4]@2 [ab3,eb4]@2 [ab3,eb4]@2 [ab3,eb4]@2 [ab3,eb4]@2 [ab3,eb4]@2", // Bb5 F5 Ab5
  B: "[bb3,f4]@3 ~@29", // Bb5
})).s("gm_electric_guitar_jazz").gain(0.51)

// bass · electric bass pick
const bass = note("<~ A B C B A B C B A B C B A B C D@16 B A B C B A B C D@8 E@3 F D@4 G@4 D@8 H>".pickRestart({
  A: "bb1@2 ~@2 bb1@2 ~@8 f1 ~ ab1@2 f1 ~ ab1@2 f1 ~ ab1@7 ~", B: "db1@7 ~ d1@7 ~",
  C: "~@4 bb1@3 ~@3 f1@2 ~@2 g1@2 ~@2 ab1@2 ~@2 bb1@2 ~@2 d2@3 ~@3",
  D: "bb1@3 ~@5 bb1@3 ~@3 f1@2 ab1@2 ab1@2 ab1@2 ab1@2 ab1@2 ab1@2 ab1@2 ab1@2",
  E: "bb1@3 ~@5 bb1@3 ~@3 f1 ~ bb1 ~ ab2 ~ ab2@2 ab2@2 ab2@2 ab2@2 ab2@2 ab2@2",
  F: "bb1@3 ~@5 bb1@3 ~@3 f1@2 bb1@2 ~@2 f1@2 bb1@2 ~@2 f1@2 bb1@2 ~@2", G: "bb1 ~@5 bb1 ~ ab1 ~@5 ab1 ~",
  H: "bb1@3 ~@29",
})).s("gm_electric_bass_pick").gain(0.41)

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

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

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@3 A@13 B@16 A@8 B@4 ~ B@3 ~@4 A@4 C@4 ~@9>".pickRestart({
  A: "x ~ x!6", B: "x!7 ~", C: "x ~ x!5 ~",
})).gain(0.41)

// drums · open hat
const open_hat = s("oh").struct("<~@3 A@13 B@16 A@8 B@4 ~ B@3 ~@4 A@4 C@4 D@8 ~>".pickRestart({
  A: "~ x ~@6", B: "~@7 x", C: "~ x ~@5 x", D: "x!8",
})).gain(0.41)

// drums · china
const china = s("cr").struct("<~@60 x ~@7 x>").gain(0.41)

stack(electric_guitar_clean, electric_guitar_jazz, bass, kick, snare, pedal_hat, open_hat, china)

More by 311