Strudelify

Bassoon-Off

Javan Caselli

KeyA minorTempo120 bpm
0:00/0:00
// Bassoon-Off — Javan Caselli
// 120 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 58, 4/4 at bar 59) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/162999; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// other · bassoon
const bassoon = note(`<
  ~ A B C D E F G H@4 I@2 J K L@2 M N O P Q R S@2 ~ T U V ~@2 W X Y Z Y Z AA AB@4 AC AD@2 AC@2 AE AF ~ AG@2 AH AI AG AJ
  AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC@2 BD BE BF BG ~@7 BH@4 BI BJ BK BL BM BN BO BP BQ
>`.pickRestart({
  A: "c2@2 c4@4 b3 a#3 a3 g#3 g3 f#3 f3 e3 d#3 d3", B: "c3 ~ f2 ~ f3 ~ f2 ~",
  C: "f2@2 f4@4 e4 d#4 d4 c#4 c4 b3 a#3 a3 g#3 g3", D: "c2@2 c2!2 c2@2 c2!2 c2@2 c2!2 c2@2 c2!2",
  E: "c3@2 c2!2 c4@2 c3 c2 c3@2 c4 c3 c3@2 c3 c2", F: "g#4@2 g#4 f4!2 g4!2 e4!2 f4!2 d4!2 e4!2 c4",
  G: "c4 c3 c2 c3 c4 c3 c2 c3 ~@8", H: "f2@2 f2!2 f2@2 f2!2 f2@2 f2!2 f2@2 f2!2", I: "c4 g3!2 f#3",
  J: "f4@2 f4!2 f4@2 f4!2 f4@2 f4!2 f4@2 f4!2", K: "c4@2 c4!2 c4@2 c4!2 c4@2 c4!2 c4@2 c4!2",
  L: "c4@2 c4!2 c#4@2 c#4!2 d4@2 d4!2 d#4@2 d#4!2", M: "c4@2 c5 b4 a4 g4 f4 e4 d4 c4 c4@2 c4!2 c4@2",
  N: "c4@2 c5 b4 a4 g4 f4 e4 d4@2 c4!2 c4@2 c4!2", O: "f#2!8", P: "c3!8", Q: "e4 c4 ~@2 g4 ~@3",
  R: "g#4 g4 g#4 a#4 g#4 g#3 g#2!2 c3@8", S: "~@6 c4 [a#3,b3] [g#3,a3] [f#3,g3] [e3,f3] [d3,d#3] [c#3,e4] g4!3",
  T: "c2 ~ c2 ~ c2 ~ c2 ~", U: "b4@2 f#4 [f4,f#4] b3@2 f#3 [f3,f#3] b2@2 f#2 [f2,f#2] b1@2 f#2 [f2,f#2]",
  V: "a#4@2 f4 [e4,f4] a#3@2 f3 [e3,f3] a2@2 e2 [d#2,e2] a2@2 e2 [d#2,e2]", // Fmaj7 Emaj7
  W: "a2@2 c#3@2 a3@2 ~@2 a2@2 a3 e3!2 c#3 a4@2", X: "e3@2 c#2@2 ~@2 e2@2 c#3@2 a4!2 a4@2 a4@2",
  Y: "c#3@2 e3@2 e3@2 ~@2 a3@2 e3 c#3!2 b2!2 a2", Z: "b2@3 e3 e3@2 e3@2 e3@2 a3!2 e3 c#3 e3 c#3",
  AA: "a4@2 e4@4 c#4@2 a3@3 b3 c#4 e4 e2@2", AB: "c#4 e4 c#4 e4 a3 e4 c#4 e4 g#3 e4 c#4 e4 g#3 e4 c#4 e4",
  AC: "c#4 e4 c#4 e4 a3 e4 c#4 e4 g#2 e3 c#3 e3 g#2 e3 c#3 e3", AD: "d4 f4 d4 f4 a#3 f4 d4 f4 a2 f3 d3 f3 a2 f3 d3 f3",
  AE: "c#4@4 c#4!2 ~ c#4 d4 ~@2 c#4 ~ d4 ~@2", AF: "a4", AG: "c3@2 c4@4 b2@2 b2@3 a2 g2 ~ g#2 ~",
  AH: "a4 ~ a4 ~ a4 ~ a4 ~", AI: "c2 a4!2 ~ a4 ~ a4 ~", AJ: "c3@2 c4@4 b2@2 a4 g#4 g4 g#4 a4 g#4 g4 g#4",
  AK: "a4 g#4 g4 g#4 a4 g#4 g4 g#4 b2@3 a2 g2 ~ g#2 ~", AL: "c#4@4 ~@2 a3 ~@3 e3 ~@3 c#3 ~",
  AM: "~@2 e3 ~@3 a3 ~@3 e3 ~@3 c#3 ~", AN: "~@2 e3 ~@3 a3 ~@3 e3 ~@3 a3 ~", AO: "~@2 c#4 ~@3 e4 ~@3 c#4 ~@3 a3 ~",
  AP: "~@2 e3 ~@3 c#3 ~@3 e3 ~@3 b2 ~", AQ: "~@2 e3 ~@3 a2 ~@9", AR: "~@6 g#3!2 ~@2 d#3 ~@3 c3!2",
  AS: "~@2 d#3 ~@3 g#3!2 ~@2 d#3 ~@3 c3!2", AT: "~@2 d#3 ~@3 g#2!2 ~@2 d#2 ~@3 g#2!2",
  AU: "~@2 c3 ~@3 d#3!2 ~@2 c3 ~@3 g#2!2", AV: "~@2 d#2 ~@3 c2!2 ~@2 d#2 ~@3 a#1!2",
  AW: "~@2 d#2 ~@3 g#2!2 ~@2 a2 ~@3 a#2!2", AX: "~@2 b2 ~ f3 ~ c#4!3 ~ f3 ~ f3 ~ c#4!2",
  AY: "c#4 ~ f3 ~ c#3 ~ f3!3 ~ c#3 ~ c#3 ~ f3!2", AZ: "f3 ~ c#3 ~ c#2 c2 c#2 d#2 c#2@2 c#2@2 c#2 c2 c#2 d#2",
  BA: "c#2@2 ~@2 c#3 ~ f3!3 ~ c#3 ~ c#3 ~ f3!2", BB: "f3 ~ c#3 ~ c#4 ~ f4!3 ~ c#4 ~ g#3@2 c#2@2",
  BC: "[c#2@2 ~@2 c#4 ~ f4!3 ~ c#4 ~ c#3@8 d#2 g2 a#2 d#3!2 a#2 g2 d#2!2 g2 a#2 d#3]/2",
  BD: "d#3 a#2 g2 d#2!2 g2 a#1 d#2 d#3 a#3 g3 d#2!2 a#1 g2 d#2",
  BE: "d#2 g2 a#2 d#3!2 g3 a#2 d#3 d#4 a#4 g4 d#3!2 a#2 g3 d#3",
  BF: "d#3 g3 a#3 d#4 d#2 g2 a#1 d#2!2 a#2 g2 d#2!2 a#1 g2 d#2", BG: "d#2 g2 a#1 d#2 ~@12",
  BH: "[~@4 c3 ~ b2 ~ c#3 d#3@3 d#3@2 e4@4 e3@2 g#2 ~ g2 ~ a2 b2@3 b2@2 c4@4 c3@2 g2!2 ~ g2!4 ~ g2@8 b2@8 b2 g2!2 c3]/4",
  BI: "c3 b2!2 d3!2 c3!2 e3!2 d3!2 f3!2 e3!2 g3", BJ: "g3 f3!2 a3 c4 g3 g2 d3 c3 e3 d3 f3 e3 g3 f3 a3",
  BK: "g3 b3 a3 c4 b2 c3!2 f2 e2 g2 a2 c3 b2 a2 ~ g2", BL: "f2 [d2,e2] d#3@2 c#2 c3 b2 g#3 g2 f4 e2@2 f3 g2 g#4 a#2",
  BM: "c4 c#3 d#2@2 a2@2 c#3@2 a3@2 ~@2 a2@2 a3 e3", BN: "e3 c#3 a4@2 e3@2 c#2@2 ~@2 e2@2 c#3@2 a4!2",
  BO: "a4@2 a4@2 c#3@2 e3@2 e3@2 ~@2 a3@2 e3 c#3", BP: "c#3 b2!2 a2 b2@3 e3 e3@2 e3@2 c#3 ~ e3 ~", BQ: "a3 ~@7",
})).s("gm_bassoon").gain(0.3)

stack(bassoon)