Strudelify

Get Out Of Your Lazy Bed

Matt Bianco

KeyB♭ majorTempo98 bpm
0:00/0:00
// Get Out Of Your Lazy Bed — Matt Bianco
// 98 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 85 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(98/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 · piano · "Ac Piano"
const piano = note("<A B A B C D E F C D E F ~@16 C D E F C D E F ~@40 C D E F C D E F ~>".pickRestart({
  A: "[bb4,d5,f5] [bb4,eb5,g5]", B: "[bb4,d5,f5] ~@23", C: "~@3 d5 ~@2 bb4@5 f4 g4@2 bb4 ~@2 bb4@4 c5@2 ~",
  D: "db5@2 ab4 ~@11 e4 ab4 ~ e4 a4@2 eb4 ~@3", E: "~@3 d5 ~@2 bb4@4 ~ f4 g4@2 bb4 ~@2 bb4@4 c5@2 ~",
  F: "db5@2 ab4 ~@8 bb4 bb5 ~@2 e5 ~@2 e5 eb5 db5 ab4 ~ bb4",
})).s("gm_piano").gain(0.32)

// bass · acoustic bass · "Ac Bass"
const bass = note(`<
  A B C D E F E G E F E G E F E G E F E G H I H J H J H K E F E G E F E G E F E G E F E G H I H J H J H K E F E G E F E
  G H I H J H J H K E F E G E F E G E F E G E F E L ~
>`.pickRestart({
  A: "bb1 d2 f2 e2 eb2 g1 ab1 a1", B: "bb1 ~@7", C: "bb1 d2 f2 e2 eb2 g2 ab2 a2", D: "bb2 ~@7",
  E: "bb1 d2 f2 e2 eb2 g2 ab2 c2", F: "db2 f2 ab2 b1 c2 e2 f2 f1", G: "db2 f2 ab2 b1 c2 e2 f2 a1",
  H: "c2 eb2 g2 eb2 c2 eb2 g2 eb2", I: "f2 a2 c3 a2 f2 a2 c3 a2", J: "f1 a1 c2 a1 f1 a1 c2 a1", K: "f1 ~@11",
  L: "db2@3 f2@3 ab2@3 b1@3 c2@3 e2@3 f2@3 ab1 ~ bb1",
})).s("gm_acoustic_bass").gain(0.54)

// other · tenor sax · "Sax Solo"
const tenor_sax = note("<~@52 A B@2 C D E F G ~@25>".pickRestart({
  A: "bb3 ~ db4 e4 ~@2 f4@6 bb3 ~ db4 eb4 ~ f4@2 [db4,eb4,e4] bb3 ~@3, ~@17 e4 ~@6", // Dbm
  B: "[~@2 bb3 db4 f4 ab4 f4 ~ db4 bb3 ~ g3 g4 ~ eb4 c4 ~ bb3 g4 ~ eb4 c4 ~@2 f3 ~ bb3 db4 ~ f4 e4 f4 e4 eb4 db4 bb3 ~@3 c4 [c4,db4]!3 [bb3,c4] ab3 g3 [eb3,f3] ~, ~@23 a3@2 ~@23]/2", // Dbmaj7 Bbsus2 Ebsus2
  C: "~@2 f3 ab3 db4 f4 ab4 ~ f4 db4 ~ bb3 g4 ~ eb4 [bb3,c4] ~ [ab3,bb3] a3 ~ c4 eb4 ~ gb4", // Bbsus2 Absus2
  D: "f4 ~ bb4 ~@2 bb4@4 ab4 f4 ~@4 g4 [g4,ab4] f4 eb4 d4 db4 c4 [bb3,b3] ab3", // Abmaj7 Bmaj7
  E: "f3 ~ ab3 bb3 ~ f3 bb3 ~ eb4 db4 ~ bb3 eb4 ~ db4 eb4 ~ e4 eb4@2 db4 bb3 ~ bb3",
  F: "f4@2 [e4,f4]!6 e4 [e4,f4] [db4,eb4] bb3 ~@3 e4 [e4,f4]!3 [eb4,f4] [eb4,e4] db4 bb3 ~", // Fmaj7 Dbsus2 Fmaj7 Ebsus2 Emaj7
  G: "~@2 f3 bb3 db4 f4 ab4 ~ f4 db4 ~ bb3 g4 ~ eb4 c4 ~ bb3 g4 ~ eb4 c4 ~ a3",
})).s("gm_tenor_sax").gain(0.37)

// chords · acoustic guitar steel · "Ac Guitar"
const acoustic_guitar_steel = note(`<
  ~@4 A B A B A B A B A B A B A B A B C D E D E D F G A B A B A B A B A B A B A B A B C D E D E D F G A B A B A B A B
  ~@8 A B A B A B A B A B A B A B A H ~
>`.pickRestart({
  A: "bb1 ~ [ab3,d4] ~@2 [ab3,d4] ~@2 [ab3,d4] ~@2 [g3,db4] ~@2 [g3,db4] ~@2 [gb3,c4] ~@2 [gb3,c4] ~@2 [f3,db4]", // Abdim Gdim Gbdim Db
  B: "~@2 [f3,db4] ~@2 [f3,db4] ~@2 [f3,db4] ~@2 [f3,db4] ~@2 [bb3,eb4] ~@2 [bb3,eb4] ~@2 [a3,eb4] ~@2 [a3,eb4]", // Db Eb5 Adim
  C: "c3 ~ [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [a3,eb4,f4]", // Eb F7
  D: "~@2 [a3,eb4,f4] ~@2 [a3,eb4,f4] ~@2 [a3,eb4,f4] ~@2 [a3,eb4,f4] ~@2 [a3,eb4,f4] ~@2 [a3,eb4,f4] ~@2 [a3,eb4,f4] ~@2 [a3,eb4,f4]", // F7
  E: "~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [a3,eb4,f4]", // Eb F7
  F: "~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]", // Eb
  G: "[a3,eb4,f4] ~@23", // F7
  H: "~@2 [f3,db4] ~@2 [f3,db4] ~@2 [f3,db4] ~@2 [f3,db4] ~@2 [bb3,eb4] ~@2 [bb3,eb4] ~@2 [a3,eb4] ~@2 [bb3,bb4]", // Db Eb5 Adim Bb
})).s("gm_acoustic_guitar_steel").gain(0.25)

// other · synth brass 1 · "Brass"
const synth_brass_1 = note(`<
  ~@4 A B C D A B C D ~@9 E ~ F G E ~ H A B C D A B C I ~@9 E ~ F G E ~ H ~@16 J@3 K ~@4 A B C D A B C D ~
>`.pickRestart({
  A: "~@3 d5 ~@2 bb4@5 f4 g4@2 bb4 ~@2 bb4@4 c5@2 ~", B: "db5@2 ab4 ~@11 e4 ab4 ~ e4 a4@2 eb4 ~@3",
  C: "~@3 d5 ~@2 bb4@4 ~ f4 g4@2 bb4 ~@2 bb4@4 c5@2 ~", D: "db5@2 ab4 ~@8 bb4 bb5 ~@2 e5 ~@2 e5 eb5 db5 ab4@2 bb4",
  E: "~@2 a4 [c5,eb5,g5]@2 f4 a4 ~ [c5,eb5,g5] f4@2 a4 [c5,eb5,g5]@2 f4 a4 ~ [c5,eb5,g5]@3 f4 [c5,c6]@2 [c5,c6]", // Cm C
  F: "~@2 a4 [c5,eb5,g5]@2 f4 a4@2 [c5,eb5,g5] f4@2 a4 [c5,eb5,g5]@2 f4 a4 ~ [c5,eb5,g5]@2 ~ [f4,f5] ab5 a5 [c6,eb6,g6]", // Cm F Cm
  G: "g5 ~@23", H: "[f5,f6] ~@23", I: "db5@2 ab4 ~@8 bb4 bb5 ~@2 e5 ~@2 e5 eb5 db5 ~ ab4 bb4",
  J: "e5 [db5,eb5] bb4 f5 [db5,eb5] bb4 e5 [db5,eb5] bb4 f5 [db5,eb5] bb4 e5 [db5,eb5] bb4 f5 [db5,eb5] bb4 e5 [db5,eb5] bb4 f5 [db5,eb5] bb4", // Dbsus2
  K: "e5 [db5,eb5] bb4 f5 [db5,eb5] bb4 e5 [db5,eb5] bb4 f5 [db5,eb5] bb4 bb5@2 ~ e5@2 ~ eb5 [eb5,e5] db5 ab4@2 bb4", // Dbsus2 Emaj7
})).s("gm_synth_brass_1").gain(0.32)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~ A ~@2 B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~ B@3 ~@9 B@3 ~ B@3 ~ B@3 ~ B@3
  ~@2
>`.pickRestart({
  A: "~ x!4 ~@3", B: "~@7 x",
})).gain(0.3)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~ A ~ B ~@3 C ~@3 C ~@3 C ~@3 C ~@3 C ~@3 D ~@3 C ~@3 C ~@3 C ~@3 C ~@3 C ~@3 B ~@3 C ~@3 C ~@7 E ~@3 C ~@3 C ~@3 C
  ~@5
>`.pickRestart({
  A: "~@2 x!11 ~@11", B: "~@3 x!6 ~ x ~@13", C: "~@19 x!2 ~@3", D: "~@3 x!10 ~@11", E: "~@4 x!2 ~@4 x ~@5 x!2 ~ x ~@4",
})).gain(0.3)

// drums · clap
const clap = s("cp").struct("<~@4 A@23 ~ A@23 ~ A@8 ~@8 A@16 ~>".pickRestart({
  A: "~ x ~ x ~ x ~ x",
})).gain(0.54)

// drums · low tom
const low_tom = s("lt").struct("<~@83 [~@11 x ~@2 x ~@9] ~>").gain(0.48)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 A ~@11 A ~@3 A ~@3 A ~@3 B ~
>`.pickRestart({
  A: "~@3 x", B: "~@5 x ~@2 x ~@8 x!2 ~@5",
})).gain(0.42)

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

// drums · ride
const ride = s("rd").struct(`<
  ~@4 A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C A B@2 ~ A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C A B@2 ~ A B@2 C A B@2 C
  ~@8 A B@2 C A B@2 C A B@2 C A B@2 D ~
>`.pickRestart({
  A: "~@3 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x", B: "x ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x ~ x",
  C: "x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~ x ~@6", D: "x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@8",
})).gain(0.36)

// drums · congas
const congas = s("conga:13").struct(`<
  A B C@2 A B C@5 D A B C@5 D A B C@5 ~ A B C@5 D A B C@5 D A B C@5 ~ A B C@5 D A B C@5 ~ A B C@5 D A B C@5 D ~
>`.pickRestart({
  A: "~ x ~@3 x ~@2", B: "~@3 x ~@4 x ~@6 x ~@8", C: "~@3 x ~@4 x ~@6 x ~@4 x ~@3", D: "~@3 x ~@4 x ~@6 x ~@5 x ~@2",
})).gain(1.73)

// drums · congas · soft notes
const congas_soft = s("conga:13").struct(`<
  A B ~@2 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@6 A B ~@7
>`.pickRestart({
  A: "~@2 x ~@2 x", B: "~@5 x",
})).gain(0.96)

// drums · congas
const congas_2 = s("conga:18").struct(`<
  A B@2 A@2 B@2 A B C@3 A B@2 A B C@3 A B@2 A B C@2 ~ A B@2 A B C@3 A B@2 A B C@3 A B@2 A B C@2 ~ A B@2 A B C@3 A B@2 A
  B C@2 ~ A B@2 A B C@3 A B@2 A B C@3 ~
>`.pickRestart({
  A: "~@9 x ~ x ~@11 x", B: "~@9 x ~ x ~@12", C: "~@11 x ~@12",
})).gain(1.73)

// drums · congas
const congas_3 = s("conga:33").struct(`<
  A B@2 A@2 B@2 A B C@2 D A B@2 A B C@2 D A B@2 A B C@2 ~ A B@2 A B C@2 D A B@2 A B C@2 D A B@2 A B C@2 ~ A B@2 A B C@2
  D A B@2 A B C@2 ~ A B@2 A B C@2 D A B@2 A B C@2 D ~
>`.pickRestart({
  A: "~@7 x", B: "~@21 x ~ x", C: "~@9 x ~@11 x ~ x", D: "~@3 x ~@4",
})).gain(1.73)

stack(
  piano, bass, tenor_sax, acoustic_guitar_steel, synth_brass_1, kick, kick_soft, snare, snare_soft, clap, low_tom,
  high_tom, crash, ride, congas, congas_soft, congas_2, congas_3
)

More by Matt Bianco