Strudelify

Deja Vu

Initial D

KeyC minorTempo155 bpm
0:00/0:00
// Deja Vu — Initial D
// 155 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5113014; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(155/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.

// other · trombone
const trombone = note(`<
  A B C D E B C F@2 G H G@2 I H F J K@2 L M K@2 N O P@2 Q R P@2 S T U@2 V@2 U W X Y@3 Z@2 AA AB AC AD AE@4 Z@2 AA AB AC
  AD AF@2 K@2 L M K@2 N O P@2 Q R P@2 S T U@2 V@2 U W X Y@3 Z@2 AA AB AC AD AE@4 Z@2 AA AB AC AD AF@2 K@2 L M K@2 L M
>`.pickRestart({
  A: "a2", B: "~@2 f3 ~@3 f3 ~", C: "~@2 g3 ~@3 g3 ~", D: "~@2 a3 ~@3 g3 ~", E: "~@2 f3 ~@3 g3 ~", F: "~@2 d4 ~@3 d4 ~",
  G: "~@2 a4 ~@3 a4 ~", H: "~@2 g4 ~@3 g4 ~", I: "~@2 f4 ~@3 f4 ~", J: "e2 ~ e2 ~ e2 ~ e2 ~",
  K: "[g3 ~@2 bb3 ~ bb3 ~ c4@3 ~ f4!4 ~]/2", L: "g3 ~@2 eb4 ~ eb4 ~ eb4", M: "~ c4@2 ~ f4!2 a4@2",
  N: "g3 ~@2 eb4 ~ eb4 g4 ~", O: "g4 f4 ~ f4@3 ~@2", P: "g3!8", Q: "eb3!8", R: "f3!8", S: "d3!8",
  T: "eb3!3 eb4@2 d4 c4 bb3", U: "~@2 f4!2 ~ eb4@3", V: "[~ bb2 d3 bb2 d3 bb2 d3 c3@2 ~@2 eb4@2 d4 c4 bb3]/2",
  W: "bb2!7 ~", X: "g3", Y: "[g3@2 ~@3 g3 f3 g3@2 ~ g3!2 f3 bb2 g2 d3@2 eb3 eb3@2 eb4 ~@3]/3",
  Z: "[c4 ~ eb3!2 f3 eb3 f3 c3@2 ~@2 c3@2 ~@3]/2", AA: "c3@2 ~ c4!2 d4 ~@2", AB: "d3@2 ~ eb3@2 ~@3",
  AC: "~@3 c4!2 d4 c4 d4", AD: "c4@2 d4!2 c4@2 ~@2",
  AE: "[d4@10 ~@3 c4 bb3 c4@2 ~ g3!2 f3 d3!2 d3@2 eb3 eb3@2 eb4 ~@3]/4", AF: "[d4@3 ~]/2",
})).s("gm_trombone").gain(0.3)

// other · trombone
const trombone_2 = note(`<
  ~ A B C D A B E@2 F G F@2 H G E I J@2 K L J@2 M N O@2 P Q O@2 R S T@2 ~ U T V W X@3 Y@2 Z AA AB AC AD@4 Y@2 Z AA AB AC
  AE@2 J@2 K L J@2 M N O@2 P Q O@2 R S T@2 ~ U T V W X@3 Y@2 Z AA AB AC AD@4 Y@2 Z AA AB AC AE@2 J@2 K L J@2 K L
>`.pickRestart({
  A: "f2!2 ~ f2!3 ~ f2", B: "g2!2 ~ g2!3 ~ g2", C: "a2!2 ~ a2 g2!2 ~ g2", D: "f2!2 ~ f2 g2!2 ~ g2",
  E: "d3!2 ~ d3!3 ~ d3", F: "a3!2 ~ a3!3 ~ a3", G: "g3!2 ~ g3!3 ~ g3", H: "f3!2 ~ f3!3 ~ f3", I: "e3 ~ e3 ~ e3 ~ e3 ~",
  J: "[eb3 ~@2 g3 ~ g3 ~ a3@3 ~ c4!4 ~]/2", K: "eb3 ~@2 bb3 ~ bb3 ~ bb3", L: "~ a3@2 ~ c4!2 f4@2",
  M: "eb3 ~@2 bb3 ~ bb3 eb4 ~", N: "eb4 c4 ~ c4@3 ~@2", O: "c3!8", P: "ab2!8", Q: "bb2!8", R: "g2!8",
  S: "ab2!3 c3@2 bb2 ab2 g2", T: "~@2 eb4!2 ~ bb3@3", U: "~@3 c3@2 bb2 ab2 g2", V: "f3!8", W: "f3",
  X: "[f3@2 ~@3 eb3 d3 eb3@2 ~ eb3!2 d3 bb2 g2 bb2@2 c3 c3@2 g3 f3 eb3 d3]/3", Y: "[ab3 ~@6 ab2@2 ~@2 ab2@2 ~@3]/2",
  Z: "g3@2 ~ eb3!2 f3 d3 bb2", AA: "bb2@2 c3 c3@2 eb3 d3 c3", AB: "bb2 c3@2 ab3!2 bb3 ab3 bb3",
  AC: "ab3@2 bb3!2 ab3@2 ~@2", AD: "[c4@10 ~@3 g3 f3 g3@2 ~ eb3!2 d3 bb2 g2 bb2@2 c3 c3@2 g3 f3 eb3 d3]/4",
  AE: "[c4@3 ~]/2",
})).s("gm_trombone").gain(0.3)

stack(trombone, trombone_2)