Strudelify

blue bossa

Dexter Gordon

KeyC minorTempo168 bpm
0:00/0:00
// blue bossa — Dexter Gordon
// 168 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "Saxophone Ténor" tenor sax (copy of ch 1 "Saxophone Alto" alto sax)
// note: Transcription provider: pdmx. https://musescore.com/score/5203236; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 161 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(168/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.

// melody · alto sax · "Saxophone Alto"
const alto_sax = note(`<
  A@2 B@2 C@2 D@2 E@2 F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE BF@2 BG BH BI BH BJ BK BL BM BN@2 BO@2 BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC
  CD CE CF CG CH CI CJ CK CL CM@2 CN CO ~ CP@2 CQ CR@2 CS CT@2 CU CV@2 CW@2 CX CY CZ DA DB DC ~ DD@2 DE DF DG DH DI DJ
  DK DL DM DN@2 DO@2 DP DQ DR DS DT@2 DU DV DW DX@2 DY@2 DZ EA EB@4 EC ED EE
>`.pickRestart({
  A: "[g4@3 f4 eb4 d4@2 c4@7 bb3@2]/2", B: "[ab3@4 g4@3 f4@5 ~@4]/2", C: "[f4@3 eb4 d4 c4@2 bb3@7 ab3@2]/2",
  D: "[g3@4 f4@3 eb4@5 ~@4]/2", E: "[eb4@3 db4 c4 bb3@2 ab3@7 gb3@2]/2", F: "gb3@2 f3@2 bb3@3 ab3", G: "ab3@6 ~ c3",
  H: "ab3 g3@2 bb3@3 ~@2", I: "ab3@2 g3 bb3@3 ab3@2", J: "g3@3 b3", K: "d4@3 b3 d4 b3 g3 d3", L: "f3@3 d3 eb3 g3 ~@2",
  M: "~@8 d4@3 d4@2 d4@3", N: "d4@3 c4 ab3@3 d3", O: "g3 f3@3 ~@4", P: "~@2 eb3 c3 d3 bb3@3", Q: "eb3 c3 d3 ab3@4 f3",
  R: "g3 d3 f3 d3 eb3 f3 g3 a3", S: "d4@2 d4 c4 bb3@2 ab3@2 g3@2 gb3@2 f3@2 e3@2", T: "eb3 f3 gb3 ab3 bb3 c4 db4 eb4",
  U: "f4@2 f4 gb4 ab4@2 g4 gb4 f4@2 db4@2 bb3@2 gb3@2", V: "f3@4 ~@2 eb4 c4", W: "db4 bb3@5 ~@2", X: "~ eb4 d4@2 f4@4",
  Y: "eb4@2 d4@2 g4@3 f4", Z: "eb4 f4 d4 f4 c4 d4 eb4 f4", AA: "g4 ab4 g4 f4 eb4 b3 bb3 ab3", AB: "g3@2 d4 b3 c4 a3@3",
  AC: "~@2 eb3@3 a3@3", AD: "~@3 g3 f3@3 c4", AE: "bb3 c4 ab3 c4 g3 f3@3", AF: "~@10 ab3 g3 f3@2 g3@2",
  AG: "ab3 bb3 c4 eb4 d4 c4 b3 d4", AH: "f4 ab4 g4 f4 eb4@2 eb4!2", AI: "bb4@2 g4 eb4 d4 c4@2 c4",
  AJ: "bb3@6 f4 db4 a3@6 f4@2", AK: "db4@3 bb3 c4 bb3 gb3 eb3", AL: "f3@2 gb3 ab3 ~@4", AM: "~@5 eb4 d4 ~", AN: "d4!4",
  AO: "d4@2 db4 d4 ~ g4@2 d4", AP: "f4 eb4 ~@2", AQ: "~@6 g4 c5", AR: "a4 f4 d4 g4 eb4 c4 d4 bb3",
  AS: "g3 c4 ab3 f3 g3 eb3 c3 ~", AT: "f3@3 c3 eb3 c3 d3@2", AU: "bb3@3 g3@3 g3@10", AV: "~@4 ab3 f3 e3 f3",
  AW: "bb3 g3 ab3 a3 bb3@2 b3@2", AX: "g4@2 d4 f4 eb4@2 a3@2", AY: "c4 ~@3", AZ: "eb4 ab4 f4 db4 bb3@2 eb4 ab4",
  BA: "f4 db4 bb3@2 eb4@4", BB: "~@4 db4 ab4 f4 db4", BC: "bb3 eb4 c4 ab3 f3 bb3 gb3 eb3", BD: "g3 a3 b3 c4",
  BE: "d4@2 eb4@2 d4@3 c4", BF: "[d4 eb4 d4 ~ d4@2 a3@4 ~@6]/2", BG: "~@3 g3 a3@2 eb4@2", BH: "c4@3 d4@5",
  BI: "~@3 ab3@3 eb4@2", BJ: "~@2 d4 ab4", BK: "g4@3 ab4@3 ~@2", BL: "g4 gb4 g4 gb4 f4 e4 f4 e4",
  BM: "eb4 d4 eb4 d4 db4 b3 db4 b3", BN: "[c4@2 ab4@2 g4@2 ab4 f4@4 db4 bb3 gb3 f3 eb3]/2",
  BO: "[ab3@2 ab3!2 f3@2 ab3 eb3@3 ~@5 ab3]/2", BP: "g3@8 g3@3 g3@3 ab4@2", BQ: "g4@4 g4@3 f4", BR: "eb4 f4 g4 ~",
  BS: "~ d4@3 eb4@3 f4@3 g4@3 a4@3", BT: "d5@5 g4 f4 eb4", BU: "d4@6 c4 ~", BV: "~@2 eb5 ~",
  BW: "c5 ab4 f4 c4 eb4 c4 d4@2", BX: "bb4 g4 ab4@2 g4 f4@2 f4", BY: "b4 ab4 g4 eb4 bb3@2 ab3 g3", BZ: "~@4 d4 b3 c4@2",
  CA: "g4!2 ~@6", CB: "eb4 gb4 bb4 db5 bb4 gb4 eb4 gb4", CC: "bb4 db5 bb4 gb4 eb4@2 db5@2",
  CD: "c5@3 ab4 bb4 c5 ab4 f4", CE: "eb4 db4 eb4 f4 ~@4", CF: "~ g4 f4 ab4 g4 bb4 ab4 b4",
  CG: "bb4 db5 b4 bb4 ab4 g4 f4 d4", CH: "eb4@2 g4@2 g4 c4 ~@2", CI: "~@4 gb4 g4 ~ bb4 gb4 g4 ~ bb4 gb4 g4 ~ bb4",
  CJ: "gb4 g4 ~ bb4 gb4 g4 ~ bb4 gb4 g4 ~ bb4 gb4 g4 ~ bb4", CK: "gb4@2 g4 bb4 gb4@2 g4 bb4 gb4@2 g4 bb4 gb4@2 g4 bb4",
  CL: "g4@6 f4 eb4", CM: "[f4 g4 ~@5 g4@3 f4@2 eb4 d4 c4 bb3]/2", CN: "b3 db4 d4 e4 f4 g4 ab4 bb4",
  CO: "b4 d5 c5 g4 f4 eb4@2 g4", CP: "[~@3 ab4@11 f4 ~]/2", CQ: "ab4@3 f4@3 ~@2",
  CR: "[~@5 g4@2 g4@3 eb4 ~ g4@2 ~@2]/2", CS: "~@3 g4@4 f4", CT: "[eb4 f4 g4@2 c4@2 c4@4 ~@4 c4!2]/2", CU: "c4!8",
  CV: "[c4@2 eb4 c4 ~ c4@5 c4!6]/2", CW: "[g4 f4 eb4 c4 ~ c4@5 ~@2 c4@2 ~@2]/2", CX: "c4 b3 c4 b3 ab3@2 b3@2", CY: "g3",
  CZ: "~@3 g3 ab3@2 f4@2", DA: "eb4@4 ~ eb4@2 ab4", DB: "gb4@2 ab4 f4@4 eb4", DC: "db4 eb4 f4 ab4 db5 bb4@3",
  DD: "[g4 a4 b4 eb5 ~ g5@6 ~@2 eb5 ~@2]/2", DE: "~@4 b4@2 d5 b4", DF: "c5 a4 f4 d4 eb4 gb4 b4 a4",
  DG: "g4@2 ab4 g4 f4@2 g4 f4 eb4@2 f4 eb4 d4@2 eb4 d4", DH: "c4 d4 eb4 f4 g4 bb4 g4 ~", DI: "f4@3 g4 ab4 g4 f4 ~",
  DJ: "~@4 b3 c4 eb4 g4 ab4 g4 f4 eb4 d4 c4 b3 ab3", DK: "g3 f3 g3 ab3 g3 g3@4 ~@7", DL: "~@3 f4@2 eb4 d4 c4",
  DM: "b3 ab3 g3 f3 eb3 d3 f3 ~", DN: "[eb3 d4@2 ~@4 f4@3 db4 bb3 f4@2 db4 bb3]/2",
  DO: "[f4@2 ab4 f4 ~ db4@2 eb4@3 c4 ab3 eb4@2 c4 ab3]/2", DP: "c4@2 eb4 c4 ~@4", DQ: "~ g3!7", DR: "g3!4 g4@2 g3@2",
  DS: "f4 d4", DT: "[~@6 g4@14 eb4 f4 ~ g4 eb4 f4 ~ g4 eb4 f4 ~ g4]/2",
  DU: "eb4 f4 ~ g4 eb4 f4 ~ g4 eb4 f4 ~ g4 eb4 f4 ~ g4", DV: "f4 g4 ~ ab4 f4 g4 ~ ab4 f4 g4 ~ ab4 f4 g4 ~ ab4",
  DW: "f4@3 eb4 d4 c4 bb3 ab3", DX: "[g3@3 g4@3 ~@6 g3@3 g4@3 ~@4 g4@2 f4@2 f4@2 g4@2 ~@2]/2",
  DY: "[c4@2 eb4@2 ~ c4@2 eb4@2 ~@2 c4 eb4!2 g4 ~]/2", DZ: "eb4!2 f4!2 gb4!2 ab4!2", EA: "bb4@2 ab4 gb4 ~@4",
  EB: "[f4@2 f4@2 c4@2 eb4@4 ~@5 g4@2 eb4@3 ~ g4@2 d4@3 ~@4 g4@2]/4", EC: "c4@2 c4@2 c4@2 g4 f4",
  ED: "eb4 c4 ab3 f3 g3@3 f3", EE: "eb3@2 f3 g3@5",
})).s("gm_alto_sax").gain(0.3)

stack(alto_sax)