Strudelify

I Wanna Be a Hippy

Technohead

KeyD♭ majorTempo178 bpm
0:00/0:00
// I Wanna Be a Hippy — Technohead
// 178 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(178/4)

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

// bass · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  A@7 B A@7 B C D C D C D C E C@16 ~@8 A@7 B A@7 B ~@8 C E C E C E C E C E C E C E C E ~@8 C E C E C E C E A@7 B A@7 B
  ~@8 C E C E C E C E C E C E C E ~@2
>`.pickRestart({
  A: "db2@3 ~ ab1@3 ~ db2@3 ~ ab1@3 ~", B: "db2@3 ~ ab1@3 ~ db2@2 ab1@2 bb1@2 b1@2",
  C: "db2@3 ~ db2@3 ~ ab2@3 ~ ab2@3 ~", D: "b1@3 ~ b1@3 ~ b1@2 b1@2 db2@2 eb2@2", E: "b1@3 ~ b1@3 ~@9",
})).s("gm_synth_bass_1").gain(0.53)

// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
  ~@24 A@3 B A@3 B A@3 B A@3 B ~@8 A@3 B A@3 B A@3 B A@3 B C D C D C D C E C D C D C D C E ~@8 F G F G F G F H F G F G F
  G I J ~@16 C D C D C D C E C D C D C D C E C D C D C D C K
>`.pickRestart({
  A: "db3 ~ db3 ~@3 db3 ~@3 db3 ~ gb3 ~ ab3 ~", B: "db3 ~ db3 ~@3 db3 ~ db3@4 ab2@4",
  C: "db3!3 ~ db3!3 ~ ab3!3 ~ ab3!3 ~", D: "eb3!3 ~ eb3!3 ~@3 f3!2 gb3!2 eb3!2", E: "eb3!3 ~ eb3!2 db3 ~@9",
  F: "db3@2 ~ ab3 ~ ab3 ~ b2", G: "~ b2 ~ b2 ~ f3 gb3 eb3", H: "~ b2 ~ b2 ~@4", I: "db3@2 ~ ab3 ~ ab3 ~ eb3",
  J: "~ eb3 ~ db3 ~@4", K: "eb3!3 ~ eb3!3 ~ db3 ~@7",
})).s("gm_lead_2_sawtooth").gain(0.34).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@17 B A B A B A B A@16 C@3 D C D ~@2 A@17 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 A B A B A B A
  B A@17 B A B A B A B A B A B A B A B A B A B A B ~@2
>`.pickRestart({
  A: "db3 [db4,f4,ab4] db3 [db4,f4,ab4] db3 [db4,f4,ab4] db3 [db4,f4,ab4]", // Db
  B: "b2 [b3,eb4,gb4] b2 [b3,eb4,gb4] b2 [b3,eb4,gb4] b2 [b3,eb4,gb4]", C: "~ [ab3,c4,eb4,ab4]@3",
  D: "~ [gb3,bb3,db4,gb4]@3", // Gb
})).s("gm_acoustic_guitar_steel").gain(0.2)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@40 A B@7 ~@16 C@3 D C@3 D C@3 D C@3 D C@3 D C@3 D C@3 D C@3 D C@3 D C@3 D ~@8 A B@6 E C@3 D C@3 D C@3 D C@3 D C@3 D
  C@3 D
>`.pickRestart({
  A: "~@15 x", B: "x!16", C: "~@4 x ~@2 x ~ x ~@4 x ~", D: "~@4 x ~@2 x ~ x ~@2 x ~@3", E: "~@10 x!3 ~ x ~",
})).gain(0.27)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@40 [x!15 ~] ~@71 [x!15 ~] ~@31>").gain(0.13)

// drums · clap
const clap = s("cp").struct("<~@48 [x!4]!16 ~@40 [x!4]!16 ~@24>").gain(0.4)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@16 A@32 ~@8 A@11 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@3 C ~@3 C A@3 B A@3 D ~@8 A@11 B A@3 B A@3 B A@3 B A@3 B A@3 D
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x!2 ~", C: "~@3 x", D: "~ x ~ x ~@2 x ~",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct("<~@64 [x!8]!40 ~@16 [x!8]!23 [x!6 ~@2]>").gain(0.33)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@64 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@16 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 C
>`.pickRestart({
  A: "x!16", B: "x!13 ~ x ~", C: "x!13 ~@3",
})).gain(0.27)

// drums · woodblocks
const woodblocks = s("woodblock:5").struct("<~@16 [x ~@2 x!2 ~@3 x ~@7]!8 ~@120>").gain(0.39)

stack(
  bass, lead_2_sawtooth, acoustic_guitar_steel, kick, snare, snare_soft, clap, hihat, open_hat, ride, tambourine,
  woodblocks
)