Strudelify

I'm Only Sleeping

The Beatles

KeyG♭ majorTempo112 bpm
0:00/0:00
// I'm Only Sleeping — The Beatles
// 112 bpm, 4/4, key Gb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "reverse electric guitar" named as a guitar, played on electric guitar clean (its pad sweep patch is not one)
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/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 · electric guitar clean · "reverse electric guitar"
const electric_guitar_clean = note("<~@19 A B C@2 ~@16 D E F G H I J ~@20 J ~@4 K L M@5>".pickRestart({
  A: "~@6 ab4 gb4 ab4@6 b4@2", B: "db5 eb5 ~@14", C: "[~@8 eb5 db5 eb5 db5 eb5@2 gb5@4 ab5@3 b5@2 b5@6 ab5@2 ~]/2",
  D: "~@7 eb5", E: "~ eb5@3 ~ eb5@3", F: "f5@4 eb5@2 db5@2 b4@2 bb4 ab4 gb4@4, eb5 ~@15",
  G: "gb4@3 ab4@2 bb4@3 bb4 [bb4,b4] ab4@2 b4 db5 ~ gb5", H: "bb4@3 eb5@2 db5@3 eb5@4 [db5,eb5] eb5@3",
  I: "eb5 db5 ~@2 eb6@12", J: "eb6@3 db6 ~@4", K: "eb5@3 eb5@5", L: "eb5@3 f5@2 gb5@3 gb5@3 gb5 ab5 gb5 f5 [eb5,f5]",
  M: "[f5@2 eb5@2 db5 [db5,eb5] bb4@2 db5@2 eb5@2 eb5@7 db5 bb4 db5@4 b4 bb4 ab4 gb4 eb4@6 gb4@4 ab4 bb4 ab4 bb4 ab4 bb4@2 ab4 gb4@25 ~@8]/5", // Dbsus2
})).s("gm_electric_guitar_clean").gain(0.64).pan(0.4)

// chords · acoustic guitar steel · "accoustic guitar"
const acoustic_guitar_steel = note(`<
  A B C D A E C@2 F G B H B I ~ A B C D A E C@2 F G B H B J K L M N O P Q@2 E C D A E C@2 F G B H B J K L ~ N O P R@2 B
  C D A E C@2 F G B H B I K ~@6
>`.pickRestart({
  A: "[eb3,bb3,eb4,gb4,bb4,eb5]@4 [eb3,bb3,eb4,gb4,bb4,eb5]@4 [eb3,bb3,eb4,gb4,bb4,eb5]@3 [eb3,bb3,eb4,gb4,bb4,eb5] [eb3,bb3,eb4,gb4,bb4,eb5]@3 [eb3,bb3,eb4,gb4,bb4,eb5]", // Ebm
  B: "[eb3,ab3,eb4,ab4,b4,eb5]@4 [eb3,ab3,eb4,ab4,b4,eb5]@4 [gb3,b3,eb4,ab4,b4,eb5]@3 [gb3,b3,eb4,ab4,b4,eb5] [gb3,b3,eb4,ab4,b4,eb5]@3 [gb3,b3,eb4,ab4,b4,eb5]", // Abm Abm7
  C: "[gb3,bb3,db4,gb4,bb4,gb5]@4 [gb3,bb3,db4,gb4,bb4,gb5]@4 [gb3,b3,eb4,gb4,b4,eb5]@3 [gb3,b3,eb4,gb4,b4,eb5] [gb3,b3,eb4,gb4,b4,eb5]@3 [gb3,b3,eb4,gb4,b4,eb5]", // Gb B
  D: "[gb3,bb3,db4,gb4,bb4,gb5]@4 [gb3,bb3,db4,gb4,bb4,gb5]@4 [f3,bb3,f4,ab4,bb4,f5]!2 ~ [f3,bb3,f4,ab4,bb4,f5] [f3,bb3,f4,ab4,bb4,f5]@4", // Gb Bb7
  E: "[ab3,eb4,ab4,b4,eb5,ab5]@4 [ab3,eb4,ab4,b4,eb5,ab5]@4 [ab3,eb4,ab4,b4,eb5,ab5]@3 [ab3,eb4,ab4,b4,eb5,ab5] [ab3,eb4,ab4,b4,eb5,ab5]@3 [ab3,eb4,ab4,b4,eb5,ab5]", // Abm
  F: "[gb3,b3,eb4,gb4,b4,eb5]@4 ~@4 [gb3,b3,eb4,gb4,b4,eb5]@4 [gb3,b3,eb4,gb4,b4,eb5]@3 [gb3,b3,eb4,gb4,b4,eb5]", // B
  G: "[gb3,bb3,db4,gb4,bb4,gb5]@4 [gb3,bb3,db4,gb4,bb4,gb5]@4 [gb3,bb3,db4,gb4,bb4,gb5]@3 [gb3,bb3,db4,gb4,bb4,gb5] [gb3,bb3,db4,gb4,bb4,gb5]@3 [gb3,bb3,db4,gb4,bb4,gb5]", // Gb
  H: "[bb3,db4,f4,bb4,db5,f5]@4 [bb3,db4,f4,bb4,db5,f5]@4 [bb3,db4,f4,bb4,db5,f5]@3 [bb3,db4,f4,bb4,db5,f5] [bb3,db4,f4,bb4,db5,f5]@3 [bb3,db4,f4,bb4,db5,f5]", // Bbm
  I: "[gb3,b3,eb4,gb4,bb4,eb5]@4 [gb3,b3,eb4,gb4,bb4,eb5]@4 [gb3,b3,eb4,gb4,bb4,eb5]@3 [gb3,b3,eb4,gb4,bb4,eb5] [gb3,b3,eb4,gb4,bb4,eb5]@4", // Bmaj7
  J: "[gb3,b3,eb4,gb4,bb4,eb5]@4 [gb3,b3,eb4,gb4,bb4,eb5]@4 [gb3,b3,eb4,gb4,bb4,eb5]@3 [gb3,b3,eb4,gb4,bb4,eb5] [gb3,b3,eb4,gb4,bb4,eb5]@3 [gb3,b3,eb4,gb4,bb4,eb5]", // Bmaj7
  K: "[gb3,b3,eb4,gb4,bb4,eb5] ~@7", L: "~ [eb3,bb3]@12 ~@3, [eb4,gb4,bb4,eb5]@3 ~", M: "~@7 [db4,e4,ab4,db5,e5]",
  N: "[db4,e4,ab4,db5,e5]@4 [db4,e4,ab4,db5,e5]@4 [db4,e4,ab4,db5,e5]@3 [db4,e4,ab4,db5,e5] [db4,e4,ab4,db5,e5]@3 [db4,e4,ab4,db5,e5]", // Dbm
  O: "[eb3,bb3,eb4,g4,db5,eb5]@4 [eb3,bb3,eb4,g4,db5,eb5]@4 [eb3,bb3,eb4,g4,db5,eb5]@3 [eb3,bb3,eb4,g4,db5,eb5] [eb3,bb3,eb4,g4,db5,eb5]@3 [eb3,bb3,eb4,g4,db5,eb5]", // Eb7
  P: "[eb3,ab3,eb4,ab4,b4,eb5]@4 [eb3,ab3,eb4,ab4,b4,eb5]@4 [gb3,b3,eb4,gb4,b4,eb5]@3 [gb3,b3,eb4,gb4,b4,eb5] [gb3,b3,eb4,gb4,b4,eb5]@3 [gb3,b3,eb4,gb4,b4,eb5]", // Abm B
  Q: "[[db4,e4,ab4,db5,e5]@4 ~@7 [db4,e4,ab4,db5,e5] [db4,e4,ab4,db5,e5]@3 [db4,e4,ab4,db5,e5]@2 ~@3 [eb3,bb3,eb4,g4,db5,eb5]@4 [eb3,bb3,eb4,g4,db5,eb5]@3 [eb3,bb3,eb4,g4,db5,eb5] [eb3,bb3,eb4,g4,db5,eb5]@3 [eb3,bb3,eb4,g4,db5,eb5]]/2", // Dbm Eb7
  R: "[[db4,e4,ab4,db5,e5]@4 ~@7 [db4,e4,ab4,db5,e5] [db4,e4,ab4,db5,e5]@3 ~ [eb3,bb3,eb4,gb4,bb4,eb5]@4 [eb3,bb3,eb4,gb4,bb4,eb5]@4 [eb3,bb3,eb4,gb4,bb4,eb5]@3 [eb3,bb3,eb4,gb4,bb4,eb5] [eb3,bb3,eb4,gb4,bb4,eb5]@3 [eb3,bb3,eb4,gb4,bb4,eb5], ~@15 [db4,e4,ab4,db5,e5]@2 ~@15]/2", // Dbm Ebm Dbm
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.9)

// bass · electric bass finger · "bass"
const bass = note(`<
  A B C D E F G H I J K L M N O A B C D E F G H I J P L M N Q@3 R S T U V W X Y E F G H Z J P L M N Q@3 R S T U A B C D
  E F G H I J K L M N AA AB ~@5
>`.pickRestart({
  A: "eb2@4 eb2@4 bb1@3 bb1 bb1@3 eb2", B: "ab2@4 ab2@4 eb2@4 eb2@3 gb2", C: "gb2@4 gb2@4 b1@3 b1 b1@3 bb1",
  D: "gb2@4 gb2@3 b1 bb1@4 d2@4", E: "eb2@4 bb1@4 eb2@3 gb2 bb1@4", F: "ab1@4 b1@4 eb2@3 eb2 b1@4",
  G: "gb2@4 gb2@3 bb1 b1@4 b1@3 bb1", H: "gb2@4 gb2@3 bb1 b1@4 b1@4", I: "b1 bb1 ab1 ~",
  J: "gb2@4 gb2@4 db2@3 eb2 gb2@4", K: "ab2@4 ab2@4 eb2 db2@2 eb2 ab2@4", L: "bb2@4 bb2@4 f2@3 f2 bb2@4",
  M: "ab2!2 eb2 db2", N: "b1!3 bb1", O: "~@3 eb2 gb2@2 bb2@2 ~@3 gb2@3 ~@2", P: "ab2@4 ab2@4 eb2 db2 ~ eb2 ab2@4",
  Q: "[~@4 gb2@2 ~ bb2 ~@3 gb2@2 ~@2 eb2@18 ~@3 gb2@2 ~ bb2@2 ~@2 eb3@3 ~@2, ~@3 eb2@2 ~@30 eb2@3 ~@10]/3",
  R: "db2@4 db2@4 gb1 ab1 ~ b1 db2@3 ab1", S: "eb2@4 eb2@4 bb1@3 b1 eb2@2 ~@2", T: "ab2@2 ab2@2 ab2@2 ab2 ~",
  U: "e2@3 b2 ~@4 b2@4 ~@4", V: "eb2@4 eb2@4 bb1@3 bb1 eb2@4", W: "ab2!2 eb2 ab2", X: "gb2@4 gb2@4 b1@4 b1@3 bb1",
  Y: "gb2@4 gb2@3 bb1 bb1@4 d2@4", Z: "b1 bb1 ab1 db2", AA: "~@3 eb2@2 gb2@3 bb2@4 gb2@4", AB: "[bb1,eb2]",
})).s("gm_electric_bass_finger").gain(0.32).pan(0)

// drums · kick
const kick = s("bd").struct("<A@8 B A@5 C A@8 B A@5 C ~@2 D@3 C D@9 A@5 C ~@2 D@3 C A@8 B A@5 C ~@6>".pickRestart({
  A: "x ~@7 x ~@2 x ~@4", B: "x!4", C: "x", D: "x ~@10 x ~@3 x",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<A@8 B A@5 ~ A@8 B A@5 ~@3 A@3 C A@14 ~@3 A@3 C A@8 B A@5 ~@7>".pickRestart({
  A: "~ x ~ x", B: "~ x!3", C: "~@11 x!2 ~@2 x",
})).gain(0.4)

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

// drums · crash
const crash = s("cr").struct("<~@8 A B ~@4 B ~@8 A B ~@4 B ~@15 B ~@4 B@2 ~@13 A B ~@4 B ~@6>".pickRestart({
  A: "~@2 x!2", B: "x",
})).gain(0.4)

stack(electric_guitar_clean, acoustic_guitar_steel, bass, kick, snare, hihat, crash)

More by The Beatles