Strudelify
KeyD♭ majorTempo86 bpm
0:00/0:00
// lemon — Yonezu Kenshi
// 86 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5296407; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 32 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(86/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "a, b" plays two voices at once.
// 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 B L J M B N O P Q R S T U V S W X Y Z AA>".pickRestart({
  A: "ab4 gb4", B: "e4 eb4", C: "e4 gb4", D: "ab4 db5", E: "b4 gb4", F: "e4 b3", G: "ab4@2 gb4 b4", H: "bb4!2 gb4@2",
  I: "~@21 ab4@2 bb4", J: "b4@3 gb4@2 eb4@4 bb4@3 gb4@3 eb4@2 b3@4 gb4@3", K: "e4@3 eb4@2 ab3@4 eb4@3 b3@6 ~@6",
  L: "d4@12 eb4@6 ~@3 ab4@2 bb4", M: "~@3 eb4@2 ab3@4 eb4@3 b3@6 ~@6, e4 ~@3", N: "ab4!2 gb4 ~", O: "e4 ab4 gb4 b4",
  P: "bb4 db5 b4 eb4", Q: "ab4 db5 b4 ab4", R: "b4@2 e4 gb4 gb4@2 ~@2", S: "b3 e4@2 ab4 bb4@2 gb4@3 ~@3",
  T: "db4 gb4@2 ab4 bb4@2 ab4@3 ~@3", U: "e4@4 eb4@2 eb5 db5", V: "db5 b4 bb4 ab4 g4@2 ~@2",
  W: "bb4 g4@2 g4 eb4@2 eb4@3 ~@3", X: "db5@2 db5 ab4 ab4@2 ab4 eb4", Y: "ab4 bb4 b4@2",
  Z: "e4@3 gb4@3 ab4@3 bb4@3 ab4@3 eb4@3 ab4@2 bb4@4", AA: "b4 db5@2 gb4 e4@2 eb4@6",
})).s("gm_clarinet").gain(0.12)

// other · clarinet · "B♭ Clarinet"
const clarinet_2 = note("<~ A B C D E F G H ~ A I@2 J A I@2 K I L I M N O P Q N R S T U V>".pickRestart({
  A: "eb4 db4", B: "b3!2", C: "b3 eb4", D: "d4 bb4", E: "ab3 b3 eb4 ab3 gb3 bb3 db4 b3",
  F: "e3 ab3 gb3 e3 eb3 gb3 b3 gb3", G: "e4@2 eb4!2", H: "gb4@2 gb4@2 eb4 db4 eb4 b3", I: "ab3 gb3", J: "f3 g3",
  K: "db4!2 b3 ~", L: "g3 ab3", M: "e3 gb3 eb3 ~", N: "ab3 eb4", O: "bb3 b3", P: "ab3@4 b3@2 gb4 e4",
  Q: "ab4 gb4 eb4 ~", R: "e4 eb4@2 db4 bb3@2 ab3@3 ~@3", S: "e4 b3", T: "b3 db4 eb4@2", U: "e4 eb4", V: "b3 db4 b3@2",
})).s("gm_clarinet").gain(0.13)

// other · clarinet · "B♭ Clarinet"
const clarinet_3 = note("<~ A B C D B E F G ~ H I J K L M N O P Q G R S T S U S V W X Y Z>".pickRestart({
  A: "b3 bb3", B: "ab3 gb3", C: "ab3 b3", D: "b3 eb4", E: "b3!2", F: "b3!4", G: "db4 b3",
  H: "ab3 eb4 ab4 ab3 gb3 ~ b3 db4", I: "e3 b3 db4 b3 eb3 gb3 b3 gb3", J: "e3 b3 db4 b3 eb3 b3 db4 b3",
  K: "d3 f3 b3 d3 eb3 g3 eb4@2", L: "ab3 eb4 ab4 ab3 gb3 db4 gb4 b3", M: "e3 b3 e4 db4 eb3 b3 eb4 b3",
  N: "e3 ab3 e4 e3 eb3 gb3 eb4 eb3", O: "e3!2 gb3 b3 eb3 db4 eb4 b3", P: "e4 eb4", Q: "eb4!2", R: "db4!2 b3 ~",
  S: "e3@6 e4@3 b3@2 e3 eb3@6 b3@3 gb3@2 b3", T: "gb3@6 gb4@3 db4@2 gb3 ab3@3 eb4@2 ab4@4 eb4@2 ab3",
  U: "gb3@6 eb4@6 eb3@6 eb4@3 eb4@2 bb3", V: "g3@6 db4@3 b3@2 bb3 ab3@2 b3 eb4@2 b3 ab4@6", W: "db4 ab3",
  X: "e3@2 ab3 b3@2 e4 gb3@2 bb3 db4@2 bb3 ab3@2 b3 eb4@2 b3 ab4@6", Y: "db4 e4 ab3 b3", Z: "e3 gb3 gb3@2",
})).s("gm_clarinet").gain(0.13)

stack(clarinet, clarinet_2, clarinet_3)