Strudelify

Bakemonogatari Op -4 Renai Circulation

Satoru KÅsaki

KeyE majorTempo120 bpm
0:00/0:00
// Bakemonogatari Op -4 Renai Circulation — Satoru KÅsaki
// 120 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5941937; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 45 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.
// 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(`<
  ~@5 A B C D A B C E F G F H F G F H I J K L ~ M N O P Q R S P Q T U V W X Y V Z X AA
>`.pickRestart({
  A: "e4@3 e4@2 e4 f#4@2 g#4@3 e4@3 b3 c#4", B: "e4@3 e4@2 e4 f#4@2 g#4@3 e4@3 c#4@2",
  C: "e4@2 c#4 e4@3 c#4@2 e4@2 c#4 e4@3 e4@2", D: "a4 g#4@2 e4@3 c#4@2 g#4@6 b3 c#4", E: "a4 g#4@2 e4@3 f#4@2 e4@4 ~@4",
  F: "~@5 a4 b4 ~", G: "~@5 b4 c#5 ~", H: "~@5 c#5 a4 ~", I: "c#4 d4 c#4 d4 e4@2 c#4 d4", J: "c#4 d4 e4@2 e4 d4 c#4 d4",
  K: "c#4 a3@2 a3@3 f#3@2 c#4 a3@2 a3@3 f#3@2", L: "a3 a3@2 a3@3 b3@2 c#4@4 e4@4", M: "a4@2 b4 c#5", N: "a4 b4",
  O: "a4@3 ~", P: "e4@2 c#4@2 b3@2 c#4!2", Q: "b3 a3 b3 c#4@3 ~ a3", R: "f#4@2 c#4@2 b3@2 a3!2", S: "b3 a3 c#4 b3 b3@4",
  T: "f#4 c#4 a3 c#4", U: "a4 g#4@2 e4@3 f#4@2 e4@2 ~@4 e4 b3", V: "c#4@3 c#4@3 b3@2 e4@3 e4@3 e4 b3",
  W: "c#4@3 c#4@3 b3@2 e4@3 g#4@3 e4 b3", X: "c#4@3 c#4@3 b3@2 e4@3 e4@3 f#4@2", Y: "e4@3 e4@3 c#4@2 g#4@6 e4 b3",
  Z: "c#4@3 c#4@3 b3@2 g#4@3 e4@3 e4 b3", AA: "e4@3 e4@3 g#4@2 e4@4 ~@4",
})).s("gm_alto_sax").gain(0.3)

// other · bassoon
const bassoon = note(`<
  ~ A B C D E F E G E F E F E F H I E F E G E J E F E F E F K L M F K L M N K L E O A B C P
>`.pickRestart({
  A: "a2@8 e3@3 e3@3 ~@2", B: "g#2@8 c#3@3 c#3@3 ~@2", C: "f#2@8 b2@3 b2@3 ~@2", D: "e2@2 g#2 ~",
  E: "a2 ~ e3 ~ b2 ~ f#3 ~", F: "e2 ~ e3 ~ c#3 ~ g#3 ~", G: "c#2 ~ e3 ~ c#3 ~ g#3 ~", H: "a2 ~ e3 ~ c#3 ~ f#3 ~",
  I: "e2 ~ e3 ~ c#3 ~ f#3 ~", J: "c#2 ~ e3 ~ b2 ~ g#3 ~", K: "b2 ~ e3 ~ b2 ~ e3 ~", L: "c#3 ~ g#3 ~ c#3 ~ g#3 ~",
  M: "a2 ~ e3 ~ a2 ~ e3 ~", N: "b2 ~ f#3 ~ b2 ~ b2 ~", O: "e3 ~ b2 ~ e2 ~@3", P: "e2@2 ~@2 e3 ~ e2 ~",
})).s("gm_bassoon").gain(0.3)

stack(alto_sax, bassoon)