Strudelify
As I Lay Me Down cover art

As I Lay Me Down

Sophie B. Hawkins

KeyF majorTempo84 bpm
0:00/0:00
// As I Lay Me Down — Sophie B. Hawkins
// 84 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 81 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(84/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 guitar muted · "MUTED GTR"
const bass = note(`<
  ~@9 A B A B A B A B C D E F C D E F G H G H G H G H G H G H G H G H I J K L M N@2 G H G H G H G H G H G H G H G H G H
  G H G H G H G H G H G H G H O
>`.pickRestart({
  A: "bb2 f2", B: "eb2@6 ~ eb2 f2@8", C: "bb1@3 bb1 bb1@4 d2 d2@2 d2 d2@2 d2@2", D: "eb2 eb2@2 eb2 eb2@4 f2@3 f2@5",
  E: "g2@3 g2 g2@2 g2@2 eb2 eb2@2 eb2 eb2@2 eb2@2", F: "f2@3 f2 f2@2 f2@2 f1@3 f1@3 f1@2",
  G: "bb1 bb1@2 bb1 bb1@3 bb1 f2 f2@2 f2 f2@2 f2@2", H: "eb2 eb2@2 eb2 eb2@3 eb2 f2 f2@2 f2 f2@2 d2@2",
  I: "bb1@3 bb1 bb1@4 db2@3 db2 db2@4", J: "ab1@3 ab1 ab1@4 gb1@3 gb1 gb1@4", K: "db2@3 db2 db2@4 e2@3 e2 e2@4",
  L: "b1@3 b1 b1@4 a1@3 a1 a1@4", M: "b1@3 b1 b1@4 db2@3 db2 db2@2 db2 d2", N: "eb2/2", O: "bb1@13 ~@3",
})).s("gm_electric_guitar_muted").gain(0.47)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~ A B C D E F G H I J I K I J I K A B L D E F G H I J I K I J I K I J I K I J I K M N O P Q R@2 I J I K I J I K I J I
  K I J I K I J I K I J I K I J I K I J I K S
>`.pickRestart({
  A: "bb4 a4, [d4,f4]", B: "[eb4,g4,bb4] [f4,a4,c5]", C: "[f4,d5] [g4,eb5], bb4", D: "d5 c5, [f4,bb4]",
  E: "bb4 a4, [f4,d5]", F: "[g4,bb4,eb5] [a4,c5,f5]", G: "[d5,g5] [eb5,g5], bb4", H: "d5 c5, [bb4,f5]",
  I: "[f4,bb4,d5] [f4,a4,c5]", J: "[bb4,eb5,g5] [a4,c5,f5]", K: "[g4,bb4,eb5] [f4,a4,c5]", L: "[g4,d5] [g4,eb5], bb4",
  M: "[f4,bb4,d5] [f4,ab4,db5]", N: "[ab4,c5,eb5] [gb4,bb4,db5]", O: "[ab4,db5,f5] [b4,e5,ab5]",
  P: "[b4,eb5,gb5] [a4,db5,e5]", Q: "[b4,eb5,gb5] [db5,f5,ab5]", R: "[bb4,eb5,g5]/2", S: "[f4,bb4]",
})).s("gm_percussive_organ").gain(0.26).pan(0.6)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@4 A@2 ~@35 B C D E F G@2 ~@33>".pickRestart({
  A: "[~@8 [f5,f6]@19 ~@5]/2", B: "[d6,d7]@2 [db6,db7] [f6,f7]", C: "[eb6,eb7] [db6,db7]", D: "[f6,f7] [ab6,ab7]",
  E: "[gb6,gb7] [e6,e7]", F: "[gb6,gb7] [ab6,ab7]", G: "[~@7 d6, bb6, g6 eb6 g6 eb6, ~ f6@2 d6@2 f6@2 ~]/2",
})).s("gm_string_ensemble_2").gain(0.23).pan(0.4)

// other · orchestral harp · "HARP"
const orchestral_harp = note(`<
  ~@41
  [bb2 f3 bb3 c4 d4 f4 bb4 ~ db3 ab3 db4 eb4 f4 ab4 db5 ~]
  [ab2 eb3 ab3 bb3 c4 eb4 ab4 ~ gb2 db3 gb3 ab3 bb3 db4 eb4 bb3]
  [db4 ab3 db4 f4 ab4 db5 ab4 f4 ~ e3 b3 e4 ab4 b4 e5 eb5]
  [b2 gb3 b3 db4 eb4 gb4 eb4 b3 a2 e3 a3 b3 db4 e4 db4 a3]
  [b2 gb3 b3 db4 eb4 gb4 b4 ~ db3 ab3 db4 eb4 f4 ab4 db5 ~]
  ~@35
>`).s("gm_orchestral_harp").gain(0.4).pan(0.3)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@9 A B A C A B A D@2 ~@7 A B A C A B A E A B A C A B A F@2 ~@6 A B A C A B A E A B A C A B A G@2 B A C A B A E A B A
  C A B A H@2
>`.pickRestart({
  A: "~@3 bb3 ~@3 a3, bb2 f2, ~ f3@2 f4@6 ~ a3@3 f3@3, ~@2 bb3@3 f3@3 ~ f3@2 f4@5",
  B: "~@3 c4 ~@3 c4, eb3 f3, ~ g3@2 f4@6 ~ c4@2 ~ a3@3, ~@2 bb3@3 a3@3 ~ a3@2 f4@5",
  C: "~@3 d4@2 ~ c4@2 ~@6 c4@2, eb3 f3, ~ g3@2 f4@6 ~ c4@2 ~ a3@3, ~@2 bb3@3 a3@3 ~ a3@2 f4@5",
  D: "[~@3 d4@2 ~@11 f5@4 ~@12, eb3@8 c3@6 a4@3 ~@15, f4@2 bb3@3 a3@4 f3@6 c5@3 ~@14, ~ g3@2 f4@7 ~ bb3@2 f4@4 ~@15, ~@3 c4@2 a3 c4@2 ~@8]/2",
  E: "~@3 d4@2 ~@4 [g4,eb5]@2 [f4,d5]@2 [eb4,c5]@3, eb3@8 f3@7 ~, f4@2 bb3@3 a3@4 ~@7, ~ g3@2 f4@7 ~@6, ~@3 c4@2 ~@3", // Cm Dm Cm
  F: "[~@3 d4@2 ~@10 f4@3 ~@14, eb3@8 f3@7 ~@17, f4@2 bb3@3 a3@3 ~ a3@4 a3@3 ~@16, ~ g3@2 f4@7 ~ f4@4 ~@17, ~@6 c4@4 c4@4 c4@3 ~@15]/2",
  G: "[~@3 d4@2 ~@17 bb3@2 ~@6 a3@2, eb3@8 f3@7 ~ bb2@8 f2@8, f4@2 bb3@3 a3@3 ~ a3@4 a3@3 ~ f3@3 ~ f3@3 ~ f3@3 ~ f3@3, ~ g3@2 f4@7 ~ f4@4 f4@3 ~ f4@6 ~@2 f4@5, ~@6 c4@4 c4@4 c4@3 ~ bb3@3 ~@5 a3@3 ~@3]/2",
  H: "[~@3 d4@2 ~@11 [f3,bb3,d4,f4]@15 ~, eb3@8 f3@7 bb2@15 ~@2, f4@2 bb3@3 a3@3 ~ a3@4 a3@3 ~@16, ~ g3@2 f4@7 ~ f4@4 ~@17, ~@6 c4@4 c4@4 c4@3 ~@15]/2", // Bb
})).s("gm_acoustic_guitar_nylon").gain(0.4).pan(0.3)

// other · taiko drum · "TAIKO"
const taiko_drum = note("<~@18 A ~ A ~ A ~ A ~@56>".pickRestart({
  A: "~@11 b3@3 ~@2",
})).s("gm_taiko_drum").gain(0.42).pan(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@32 A@2 ~@47>".pickRestart({
  A: "[~@8 [f4,bb4]@3 ~@5, ~@14 [bb2,f3]@9 ~@9, ~@15 [bb3,d4]@7 ~@10]/2", // Bb5 Bb
})).s("gm_acoustic_guitar_steel").gain(0.26).pan(0.7)

// other · epiano2 · "E.PIANO 2"
const epiano2 = note("<~@51 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@4>".pickRestart({
  A: "~@13 f4 bb4 c5", B: "d5 bb4 f4@2 ~@12",
})).s("gm_epiano2").gain(0.42).pan(0.8)

// drums · rim
const rim = s("rim").struct(`<
  ~@25 A B A B A B A B A B A B A B A B A B A B A ~@2 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "~@2 x ~@3 x!2", B: "~ x ~ x",
})).gain(0.46)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@25 A B A B A B A B A B A B A B A B A B A B A ~@2 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "~@2 x ~@3 x!2", B: "~ x ~ x",
})).gain(0.52)

// drums · low tom
const low_tom = s("lt").struct("<~@24 [~@14 x!2] ~@22 [~@11 x ~@4] ~@33>").gain(0.39)

// drums · mid tom
const mid_tom = s("mt").struct("<~@24 [~@12 x!2 ~@2] ~@22 [~@12 x!4] ~@33>").gain(0.46)

// drums · china
const china = s("cr").struct("<~@25 A ~@7 A ~@12 A ~ A ~@7 A ~@7 A ~@7 A ~@7 A>".pickRestart({
  A: "x",
})).gain(0.39)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@25 A B A B A B A B A B A B A B A B A B A B A ~@2 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "~@2 x ~@3 x!2", B: "~ x ~ x",
})).gain(0.46)

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

// drums · congas
const congas = s("conga:13").struct("<~@25 [~@15 x]!21 ~@2 [~@15 x]!32 ~>").gain(1.26)

// drums · congas
const congas_2 = s("conga:18").struct(`<
  ~@25 A@2 B@2 A C D E A@2 B@2 A C D E A@2 B@2 A ~@2 A@2 B@2 A C D E A@2 B@2 A C D E A@2 B@2 A C D E A@2 B@2 A C D E ~
>`.pickRestart({
  A: "~@2 x!2 ~@9 x!2 ~", B: "~@2 x!2 ~@6 x!2 ~@4", C: "~@6 x!2 ~@5 x!2 ~", D: "~@6 x!2 ~@2 x!3 ~@3",
  E: "~@2 x!2 ~@5 x!2 ~ x ~ x ~",
})).gain(1.26)

// drums · congas
const congas_3 = s("conga:33").struct(`<
  ~@25 A@2 B@2 A C D E A@2 B@2 A C D E A@2 B@2 A ~@2 A@2 B@2 A C D E A@2 B@2 A C D E A@2 B@2 A C D E A@2 B@2 A C D E ~
>`.pickRestart({
  A: "~@6 x!2 ~@2 x!2 ~@4", B: "~@6 x!2 ~@5 x!2 ~", C: "~@2 x!2 ~@6 x!2 ~@4", D: "~@2 x!2 ~@9 x!2 ~",
  E: "~@4 x!2 ~ x ~@3 x ~ x ~@2",
})).gain(1.26)

// drums · whistle
const whistle = s("ballwhistle:0").struct("<[~@7 x ~@8] ~@11 [~@7 x ~@8] ~ [~@7 x ~@8] ~ [~@7 x ~@8] ~@64>").gain(0.17)

// drums · claves
const claves = s("clave:2").struct("<[x!2 ~ x ~@2 x ~ x!2 ~ x ~@2 x ~]!25 ~@56>").gain(1.93)

// drums · shaker
const shaker = s("sh").struct("<A@25 B C@7 B C@14 B C@7 B C@7 B C@7 B C@7 ~>".pickRestart({
  A: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2", B: "~ x!15", C: "x!16",
})).gain(0.26)

stack(
  bass, percussive_organ, string_ensemble_2, orchestral_harp, acoustic_guitar_nylon, taiko_drum, acoustic_guitar_steel,
  epiano2, rim, kick, snare, low_tom, mid_tom, china, tambourine, ride, congas, congas_2, congas_3, whistle, claves,
  shaker
)

More by Sophie B. Hawkins