Strudelify

soft fuzzy man

Neil Cicierega

KeyC majorTempo145 bpm
0:00/0:00
// soft fuzzy man — Neil Cicierega
// 145 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5488522; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 29 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(145/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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@5 B C D E F G H I@2 J@2 K L M N O P Q R S T U V@2>".pickRestart({
  A: "[c3,e3,g3,c4]!2 ~ [c3,e3,g3,c4]!3 ~ [c3,e3,g3,c4]", B: "[c3,e3,g3,c4]!2 ~ [d3,f3,a3,c4]@2 [d3,f3,a3,c4]!3",
  C: "[e3,a3,c4,d4]!2 ~ [e3,a3,c4,d4] [e3,a3,c4,e4]!2 ~ [e3,a3,c4,e4]", // Am
  D: "[e3,a3,c4,e4]!2 ~ [b2,g3,d4,f4]@2 [b2,g3,d4,f4]!3", // Am G7
  E: "[c3,e3,g3,c4]!2 ~ [c3,e3,g3,c4] [a2,c3,e3,a3]!2 ~ [a2,c3,e3,a3]", // C Am
  F: "[c3,e3,g3,c4]!2 ~ [f2,c3,e3,d4]@2 [f2,c3,e3,d4]!3", G: "[f#2,d3,f#3,a3]!2 ~ [f#2,d3,f#3,a3]!3 ~ [f#2,d3,f#3,a3]",
  H: "[f#2,d3,f#3,a3]!2 ~ [g2,c3,d3,g3]@2 [g2,b2,d3,g3]!3", // D Gsus4 G
  I: "[[c3,e3,g3,b3]@2 [c3,e3,g3,b3]@2 [c3,e3,g3,b3]@2 [c3,e3,g3,b3] [c3,e3,g3,b3]@2 [c3,e3,g3,b3]@2 [f3,g3,b3,d4]@2 [f3,g3,b3,d4]@2 [f3,g3,b3,d4]]/2", // Cmaj7 G7
  J: "[[b2,d3,f#3,a3]@2 [b2,d3,f#3,a3]@2 [b2,d3,f#3,a3]@2 [b2,d3,f#3,a3] [g2,b2,d3,f3]@2 [g2,b2,d3,f3]@2 [g2,b2,d3,f3]@2 [g2,b2,d3,f3]@2 [g2,b2,d3,f3]]/2", // Bm7 G7
  K: "[e2,g#2,b2,e3]!4", L: "[f2,a2,c3,f3]@2 [f2,a2,c3,f3]@2 [f2,a2,c3,f3]!2 [f2,a2,c3,f3]@2",
  M: "~ [a2,c3,e3,a3] ~ [c3,e3,g3,c4]", N: "~ [d3,f#3,a3,d4] ~ [e3,f#3,b3,f#4]",
  O: "[c3,e3,c4,g4]!2 ~ [c3,e3,c4,g4]!3 ~ [c3,e3,c4,g4]", P: "[c3,e3,c4,g4]!2 ~ [d3,f3,a3,c4]@2 [d3,f3,a3,c4]!3",
  Q: "[e3,g3,b3,e4]!2 ~ [e3,g3,b3,e4]!3 ~ [e3,g3,b3,e4]", R: "[e3,g3,b3,e4]!2 ~ [f#3,a3,c4,f#4]@2 [f#3,a3,c4,f#4]!3",
  S: "[g2,c3,e3,c4]!2 ~ [g2,c3,e3,c4]!3 ~ [g2,c3,e3,c4]", T: "[g2,c3,e3,c4]!2 ~ [g#2,c3,d#3,g#3]@2 [g#2,c3,d#3,g#3]!3",
  U: "[a2,c3,e3,a3]!2 ~ [a2,c3,e3,a3]!3 ~ [a2,c3,e3,a3]", // Am
  V: "[[a2,c3,e3,a3]@2 [a2,c3,e3,a3]@2 ~@2 [b2,d#3,f#3,b3]@8 [c3,e3,g3,c4]@17 ~]/2", // Am B C
})).s("gm_piano").gain(0.3)

stack(piano)