Strudelify

Light: Quartet for Clarinet Alto Saxophone Tenor Saxophone and Bassoon

Chelsey Boutilier

KeyF majorTempo130 bpm
0:00/0:00
// Light: Quartet for Clarinet Alto Saxophone Tenor Saxophone and Bassoon — Chelsey Boutilier
// 130 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1513581; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 36 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 · clarinet · "B♭ Clarinet"
const clarinet = note("<~ A B C D E F G H I J K H L H M N O P ~ I Q R S T A U V K W X F Y Z AA I>".pickRestart({
  A: "~@3 bb4", B: "c5 d5 eb5@6", C: "d5 eb5 f5@6", D: "g5", E: "f5 bb4", F: "g4", G: "ab4 c5 eb5@2", H: "d5", I: "eb5",
  J: "c5", K: "ab4", L: "c5@3 d5 f5@3 d5", M: "eb5 d5 eb5 bb4", N: "g4 bb4", O: "~@6 ab4 c5", P: "f5", Q: "eb5 c5",
  R: "d5 c5 bb4@2", S: "c5 eb5 bb4@2", T: "bb4", U: "ab4 g4 f4@6", V: "g4 f4 eb4@6", W: "~ d5", X: "~ eb5",
  Y: "ab4 g4 f4@2", Z: "eb4 d4 c4@2", AA: "d4 eb4 f4@6",
})).s("gm_clarinet").gain(0.45)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<A B C@2 D E F G@2 H G I J K H L M N O P G Q H R H S T U V W X H X Y Z H>".pickRestart({
  A: "c3 eb3", B: "f3", C: "[~ g3@2 bb3]/2", D: "~ eb4", E: "bb3 ab3 g3 f3", F: "eb3", G: "ab3", H: "bb3",
  I: "~@6 eb3 ab3", J: "g3 bb3", K: "g3 eb3", L: "~ g3", M: "g3 c4 d4@2", N: "eb4@3 d4", O: "bb3@3 ab3", P: "g3",
  Q: "eb3 g3", R: "eb3 ab3", S: "ab3 c4", T: "d4 bb3 g3@2", U: "c4 bb3 g3 eb3", V: "c3", W: "bb3 g3", X: "c4 ab3",
  Y: "g3 ab3", Z: "f3@6 g3 ab3",
})).s("gm_tenor_sax").gain(0.45)

// other · bassoon
const bassoon = note("<A B C B A B C A C A@2 C D E F A B A D ~ C A F A E A B C A E F A F C D A>".pickRestart({
  A: "eb3", B: "d3", C: "c3", D: "bb2", E: "g3", F: "f3",
})).s("gm_bassoon").gain(0.45)

stack(clarinet, tenor_sax, bassoon)