Strudelify

Moo Moo Meadows

Nevaeh Mosley

KeyA majorTempo130 bpm
0:00/0:00
// Moo Moo Meadows — Nevaeh Mosley
// 130 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5849696; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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(`<
  ~ A B C D E D F D E ~@4 G@2 H@2 B C B I J@2 K L M N@2 O P ~ Q A B C D E D F D E ~@4 G@2 H@2 B C B I J@2 K L M N@2 O P
  ~ Q R
>`.pickRestart({
  A: "g3", B: "~@2 g3@2 d4 g3 b3 a3 g3 a3 g3 f#3 g3 b3 c4 b3", C: "d4 g3 c4 g3 b3 c4 d4 f#4 g4 a4 g4 f#4 g4 d4 c4 b3",
  D: "g4@5 f#4 g4 a4", E: "d4 ~", F: "g4 ~", G: "[b4@12 e5 ~ g5 ~]/2", H: "[b4@12 e4 ~ g4 ~]/2",
  I: "d4 g3 c4 g3 b3 c4 d4 f#4 g4 a4 g4 f#4 g4 b4 c5 f#4", J: "g4 e4 b3 g4 e4 b3 g4 e4 c4 g3 e4 c4 e3 f#3 g3 c4",
  K: "b3 c4 d4 b3@2 b3 a3 e4@3 f#4 e4 f#4 g4 a4 f#4", L: "g4 f#4 g4 a4@2 g4 f#4 g4@2 f#4 e4 d4@2 c4@2 a3",
  M: "b3 c4 d4 b3@2 c4 d4 b3 a3@8", N: "[g3@12 c4 ~ d4 ~]/2", O: "e3 f#3 g3 a3 b3 c4 d4 e4 f#4 g4 a4 b4@2 b4@3",
  P: "e4 f#4 g4@2 a4@4", Q: "c4 ~@3 d4 ~@3", R: "d4 ~@7",
})).s("gm_alto_sax").gain(0.4)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~ A@3 B@6 C D C D E@4 F B@4 G H G H I@2 J ~@2 K A@3 B@6 C D C D E@4 F B@4 G H G H I@2 J ~@2 K L
>`.pickRestart({
  A: "[d3@20 e3 ~ g3 ~]/3", B: "[g3@12 c4 ~ d4 ~]/2", C: "e4 g4", D: "d4!2", E: "[e4@12 c4 ~ d4 ~]/2", F: "g3",
  G: "b3 e3", H: "b3 a3", I: "[d3@12 e3 ~ g3 ~]/2", J: "e3 f#3 g3 a3 b3 c4 d4 e4 f#4 g4 a4 b4@2 b4@3",
  K: "g3 ~@3 a3 ~@3", L: "b3 ~@7",
})).s("gm_tenor_sax").gain(0.25)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B@3 C@6 D E D E F G F G F G F G F G H I J@3 ~@4 B@3 C@6 D E D E F G F G F G F G F G H I J@3 ~@5
>`.pickRestart({
  A: "g2 d3 g3 b3 c4 d4 c4 b3 g3 ~ d3 ~ g3@2 ~@2", B: "[g2@20 c3 ~ d3 ~]/3", C: "[d3@12 f#3 ~ g3 ~]/2", D: "b3 e3",
  E: "b3 a3", F: "b2@2 b2!2 c3 b2!3 b2@2 b2!2 c3 b2!3", G: "b2@2 b2!2 c3 b2!3 c3@2 ~@2 d3@2 ~@2",
  H: "c4@3 b2!5 g3@3 c3!5", I: "f#3@3 f#3!5 f#3@3 f#3!5", J: "g3@3 b2!5 g3@3 c3!5",
})).s("gm_baritone_sax").gain(0.3)

// drums · rim
const rim = s("rim").struct("<~ [x ~@5 x!3 ~@5 x!2]!13 ~@4 [x ~@5 x!3 ~@5 x!2]!28 ~@4 [x ~@5 x!3 ~@5 x!2]!15 x>")
  .gain(0.3)

// drums · congas
const congas = s("conga:13").struct("<A B@13 ~@4 B@10 ~@2 B@16 ~@4 B@10 ~@2 B@3 C>".pickRestart({
  A: "~@4 x ~@2 x ~@8", B: "~ x ~@3 x ~@2", C: "x",
})).gain(1.27)

// drums · congas
const congas_2 = s("conga:18").struct("<A B@13 ~@4 B@10 ~@2 B@16 ~@4 B@10 ~@2 B@3 C>".pickRestart({
  A: "x ~@2 x ~@4 x ~@3 x ~@3", B: "x!2", C: "x",
})).gain(1.27)

// drums · congas
const congas_3 = s("conga:33").struct("<[~@5 x ~@2] ~@65>").gain(1.27)

stack(alto_sax, tenor_sax, baritone_sax, rim, congas, congas_2, congas_3)

More by Nevaeh Mosley