Strudelify

Kass Theme Flute Choir Double

Manaka Kataoka Yasuaki Iwata

KeyA minorTempo170 bpm
0:00/0:00
// Kass Theme Flute Choir Double — Manaka Kataoka Yasuaki Iwata
// 170 bpm, 3/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5488280; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 32 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(170/3)

// 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 · flute
const flute = note("<~ A B C D E F G H I J H@3 K L M A B C D E F G H I J H@3 N O>".pickRestart({
  A: "~@5 f5@3 ~@3 f5@3 ~@2", B: "~@3 e5@4 f5 e5 d#5 ~ e5@2 b5@3", C: "a5@15 ~", D: "~@5 e5@3 ~@3 e5 ~ e6@3",
  E: "d6@3 ~@2 d5@3 ~@3 d5@3 ~@2", F: "d5@3 ~@2 e5@5 ~ f5@5", G: "~@5 e5@3 ~@3 e5@3 ~@2", H: "~@5 c5@3 ~@3 c5@3 ~@2",
  I: "~@5 a#4@3 ~@3 a#4@3 ~@2", J: "a#4@5 f4@3 ~@3 d4@3 ~@2", K: "d5@3 ~@13", L: "a4@3 ~@2 e5@3 ~@3 c5@3 ~@2",
  M: "a4@3 ~@13", N: "d5@5 g5 ~ f#5 d#5 a4 ~ g#4 e5 g#5 ~ c6", O: "c6 ~@3",
})).s("gm_flute").gain(0.3)

// other · flute
const flute_2 = note("<~@4 A B C D E F@2 G@2 H I J K ~@3 A B C D E F@2 G@2 H L M>".pickRestart({
  A: "~@3 a4@4 b4 a4 g#4 ~ a5@2 g5@3", B: "f6@3 ~@5 f6 ~@2 f6@3 ~@2", C: "f6@3 ~@2 g6@3 ~@3 f6@3 ~@2",
  D: "f6@3 ~@2 e6@10 ~", E: "~@8 e4@3 g4@2 c5@3", F: "[c5@8 a#4 ~@2 a#4@10 d5 ~@2 d6@3 e6@2 d6@3]/2",
  G: "[b5@8 a5 ~@2 a5@10 ~@6 a4@2 b4@3]/2", H: "c5@8 b4 ~@2 a4@5", I: "g#4@3 ~@13", J: "a4@3 ~@2 e4@3 ~@3 c4@3 ~@2",
  K: "a4@3 ~@13", L: "g#4@5 g4 ~ c5 a4 f#4 ~ e4 g#4 c5 ~ e5", M: "e5 ~@3",
})).s("gm_flute").gain(0.3)

// other · flute · soft notes
const flute_soft = note(`<
  ~
  [~@5 b4@3 ~@3 b4@3 ~@2]
  [~@5 e5@3 ~@3 e5@3 ~@2]!2
  ~@13
  [~@5 b4@3 ~@3 b4@3 ~@2]
  [~@5 e5@3 ~@3 e5@3 ~@2]!2
  ~@12
>`).s("gm_flute").gain(0.2)

// other · flute · "Alto Flute"
const flute_3 = note("<~@8 A B@2 C D E F G H ~@7 A B@2 C D E I J>".pickRestart({
  A: "~@11 d5@2 e5@3", B: "[e5@8 d5 ~@2 d5@10 a#4@3 ~@3 f4@3 ~@2]/2", C: "a3@5 e4@3 ~@3 e4@3 ~@2",
  D: "g4@5 e4@3 ~@3 e5@3 ~@2", E: "f5@5 a4@3 ~@3 a4@3 ~@2", F: "e5@3 ~@13", G: "a3@3 ~@2 e4@3 ~@3 c4@3 ~@2",
  H: "~@3 e4@4 f4 e4 d#4 ~ e4@2 c5@3", I: "e4@5 g4 ~ f#4 d#4 a3 ~ g#3 c4 e4 ~ g#4", J: "a4 ~@3",
})).s("gm_flute").gain(0.4)

// other · flute · "Alto Flute" · soft notes
const flute_soft_2 = note("<~ A@2 B@2 C D E F ~@8 A@2 B@2 C D E F ~@7>".pickRestart({
  A: "~@5 d5@3 ~@3 d5@3 ~@2", B: "~@5 c5@3 ~@3 c5@3 ~@2", C: "~@5 d5@3 ~@3 f4@3 ~@2", D: "b4@3 ~@2 c5@5 ~ d5@5",
  E: "~@5 c4@3 ~@3 c4@3 ~@2", F: "~@8 c5@3 ~@5",
})).s("gm_flute").gain(0.2)

// other · flute · "Alto Flute"
const flute_4 = note("<~ A B C@2 D E F G H I J K L M N O A B C@2 D E F G H I J K L P Q>".pickRestart({
  A: "b3@5 b4@3 ~@3 b4@3 ~@2", B: "e4@5 g#4@3 ~@3 g#4@3 ~@2", C: "a3@5 a4@3 ~@3 a4@3 ~@2", D: "d4@5 a3@3 ~@3 a3@3 ~@2",
  E: "g3@5 a3@5 ~ b3@5", F: "c4@5 g3@3 ~@3 g4@3 ~@2", G: "c4@5 g4@3 ~@3 g3@3 ~@2", H: "a#3@5 f4@3 ~@3 f4@3 ~@2",
  I: "a#3@5 f4 ~@2 d4@3 e4@2 d4@3", J: "a3", K: "g3@11 a4@2 g4@3", L: "f4@5 ~@11", M: "e4@3 ~@13", N: "a3@5 ~@11",
  O: "a3@3 ~@13", P: "b3@5 g4 ~ f#4 d#4 a3 ~ g#3 c4 e4 ~ g#4", Q: "a3 ~@3",
})).s("gm_flute").gain(0.3)

stack(flute, flute_2, flute_soft, flute_3, flute_soft_2, flute_4)