Strudelify

Everything

Diamond Eyes

KeyB♭ majorTempo140 bpm
0:00/0:00
// Everything — Diamond Eyes
// 140 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5951006; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 20 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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.

// chords · piano
const piano = note("<A@2 B C D E F G D E H I D E F G D E H I>".pickRestart({
  A: "[[eb2,f4,bb4]@3 ~@3 [eb2,f4,bb4]@2 f4 [eb2,f4,bb4]@2 ~ [eb2,f4,bb4]@2 f4 ~ d4 c4 [eb2,bb3,f4,bb4]@2 ~ [eb2,f4,bb4]@3 [eb2,f4,bb4]@4 [eb2,f4,bb4]@2 [eb2,f3,f4,bb4]@2, ~@3 [eb2,f4,bb4]@3 ~@9 [eb2,f4,bb4]@3 ~@14, ~@4 d4@4 ~@3 d4@3 ~@6 bb3@4 c4@6 ~@2]/2", // Ebsus2
  B: "[d4,bb4]@3 [d4,bb4]@3 [d4,bb4]@2 [d4,bb4]@6 bb3@2", // Gm
  C: "[f4,a4]@3 [f4,a4]@3 [f4,a4]@2 f4 [f4,a4]@3 [f4,a4,bb4]@2 [f4,a4,bb4]@2, a3 bb3", // F Bbmaj7
  D: "d6 bb5 d6 bb5 f5@2 d6 bb5, [eb2,bb2,eb3,f4,g4,bb4]!2 ~ [eb2,bb2,eb3,f4,g4,bb4]", // Eb
  E: "d6 [eb2,bb2,eb3,f4,g4,bb4,bb5] [eb2,bb2,eb3,f4,g4,bb4,a5] [eb2,bb2,eb3,f4,g4,bb4,bb5] c6 [eb2,bb2,eb3,f4,g4,bb4,f6] [eb2,bb2,eb3,f4,g4,bb4] ~, ~@3 f6", // Eb
  F: "d6 bb5 d6 bb5 f5@2 c6 d6, [g2,d3,g3,f4,g4,bb4]!2 ~ [g2,d3,g3,f4,g4,bb4]", // Gm7
  G: "~ [f2,c3,f3,f4,a4] [f2,c3,f3,f4,a4,a5] [f2,c3,f3,f4,a4,bb5] c6 [f2,c3,f3,f4,a4,bb4,f6] [f2,c3,f3,f4,a4,bb4] ~, bb5 ~@2 f6", // F
  H: "d6@2 ~@2 d6@2 [d4,bb5]@2 [d4,f5]@3 ~ c6@2 [bb3,d6]@2, [g2,d3,g3,d4,f4,g4,bb4]@3 d4@3 ~@5 bb3@3 ~@2, ~ bb5 [g2,d3,g3,f4,g4,bb4]@2 ~@2 [g2,d3,g3,f4,g4,bb4]@2", // Gm Dm Bb Gm7
  I: "~ [f2,c3] [f2,c3,a5] [f2,c3,bb5] f5 [f2,c3]!2 ~, a3 bb3, bb5 ~@3", // F5 F Fsus4 F5
})).s("gm_piano").gain(0.3)

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

// drums · snare
const snare = s("sd").struct("<[x!8]!2 [x!16] ~ [~ x]!16>").gain(0.3)

stack(piano, kick, snare)