Strudelify

only human

Music and

KeyF majorTempo90 bpm
0:00/0:00
// only human — Music and
// 90 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5865233; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 69 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(90/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.

// other · trombone
const trombone = note(`<
  ~@8 A B A B A B A B A B A B A B A B ~@7 C ~@4 D B A B A B A B A B A B A B A B ~@7 C A B A B A B A B ~
>`.pickRestart({
  A: "~ d3 ~ d3 ~ c3 ~ c3", B: "~ g2 ~ g2 ~ g2 ~ g2", C: "g2!4", D: "~@7 c3",
})).s("gm_trombone").gain(0.3)

// bass · electric bass pick · "Bass Guitar"
const bass = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B C D C D C D C E A B A B F B A B A B A B A B A B A B A B C D C D C D C
  E A B A B A B A B ~
>`.pickRestart({
  A: "~ d2 ~ d2 ~ c2 ~ c2", B: "~ g1 ~ g1 ~ g1 ~ g1", C: "d2 c2", D: "g1", E: "g1!4", F: "~@7 c2",
})).s("gm_electric_bass_pick").gain(0.3)

// chords · piano
const piano = note(`<
  A B A B A B A B ~@4 A B A B A B A B A B A B C D C D C D C D A B A B E B A B A B A B A B A B A B A B C D C D C D C D A
  B A B A B A B F
>`.pickRestart({
  A: "d4@2 [d5,f5,a5] ~@3 [d5,f5,a5] ~ c4@2 [c5,e5,g5] ~@3 [c5,e5,g5] ~", // Dm C
  B: "g3@2 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~ g3@2 [g4,bb4,d5] ~@3 [g4,bb4,d5] ~", C: "[d5,f5,a5] ~ [c5,e5,g5] ~",
  D: "[g4,bb4,d5] ~", E: "~@14 [c5,e5,g5] ~", F: "f5@2 f5!2 a5!2 f5@4 e5!2 g5!2 e5@2",
})).s("gm_piano").gain(0.3)

// drums · kick
const kick = s("bd").struct("<[x!2]!24 ~@8 [x!2]!4 ~ [x!2]!15 ~@8 [x!2]!8 ~>").gain(0.3)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!24 ~@8 [~ x ~ x]!4 ~ [~ x ~ x]!15 ~@8 [~ x ~ x]!8 ~>").gain(0.3)

// drums · hihat
const hihat = s("hh").struct(`<
  [~ x ~ x ~ x ~ x]!24
  ~@8
  [~ x ~ x ~ x ~ x]!4
  ~
  [~ x ~ x ~ x ~ x]!15
  ~@8
  [~ x ~ x ~ x ~ x]!8
  ~
>`).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@32 x ~@36>").gain(0.3)

stack(trombone, bass, piano, kick, snare, hihat, crash)

More by Music and