Strudelify

Sweet Dreams

Frank Maronas

KeyC minorTempo125 bpm
0:00/0:00
// Sweet Dreams — Frank Maronas
// 125 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5769754; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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.

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@4 A B C@2 D B E F G@2 H@2 I J K L M N O M@2 P A B C@2 D B E F M N O M@2 Q R@7 S@2 T U V W X Y Z G@2 H@2 I J K L M N
  O M@2 Q A B C@2 D B E F A B C@2 D B E F A B C@2 D B E F A B C@2 D B E F A B C@2 D B E F AA M
>`.pickRestart({
  A: "~ eb5!2 c5", B: "eb5 eb5@2 eb5 d5@4", C: "[eb5!2 c5 eb5 eb5@2 eb5 c5@2 f5@3 eb5 d5@3]/2",
  D: "eb5!2 c5 eb5 eb5@2 eb5 c5", E: "eb5@2 c5 eb5@3 c5@2", F: "eb5!2 f5 eb5@2 d5@3",
  G: "[eb5!2 c5@2 eb5@2 c5 eb5@2 d5@7]/2", H: "[eb5!2 c5@2 eb5!3 eb5@2 f5@3 eb5 d5@3]/2", I: "eb5!2 c5@2 eb5!2 c5 eb5",
  J: "eb5 d5@7", K: "eb5!2 c5 eb5@3 c5@2", L: "eb5 f5@3 eb5 d5@3", M: "eb5", N: "eb5 d5", O: "c5@3 d5", P: "d5",
  Q: "d5 c5", R: "eb5 ~ c5 ~ c5!2 ~@10", S: "[eb5 ~ c5 ~ c5!2 ~@3 c5 eb5 f5 eb5 ab4 bb4 c5@17]/2",
  T: "eb5 d5 c5 d5 g5 ~ f5 ~", U: "eb5@4 ~@4 d5@3 c5@2 eb5@3", V: "~@2 ab4 c5 eb5 ~@2 f4 ab4 c5 eb5 ~ ab4 c5 f5 eb5",
  W: "c5 eb5 d5 f5 eb5 c5 ab4 ~ eb5@2 ~@2 c5@2 ~@2", X: "g5 f5 eb5 d5 c5 b4 eb5 c5 ab4 f4 d5 c5 b4 a4 g4 c4",
  Y: "b3 c4 g4 bb4 a4 g4 ab4 bb4 c5 eb5 d5 f5 e5 d5 eb5 c5", Z: "ab4!2 ~@2 c5!2 ~@2", AA: "~ eb5@3",
})).s("gm_alto_sax").gain(0.4)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B A B A B A B A B A B A B A B A B A B C@2 D C@2 E A B A B A B A B F@2 E G@2 F A B A B A B A ~ 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 ~ H G I D J G ~ A B A B A B A B A B A B A B A B A B A B A B A B K L
>`.pickRestart({
  A: "c2!2 c3!2 eb3 eb4 c3 c4", B: "ab2!2 bb2 c3 g2!2 bb2 c3", C: "eb2", D: "c2", E: "f2", F: "ab2", G: "g2",
  H: "~@4 c2 eb2 d2 f2", I: "~@10 bb2 ab2 f2 g2 eb2 c2", J: "~@10 c2 eb2 d2 f2 eb2 g2", K: "~ eb3@3", L: "eb3",
})).s("gm_baritone_sax").gain(0.3)

stack(alto_sax, baritone_sax)

More by Frank Maronas