Strudelify

Toss a Coin to your Witcher

Jenny Klein Sonya Belousova & Giona Ostinelli

KeyA♭ majorTempo102 bpm
0:00/0:00
// Toss a Coin to your Witcher — Jenny Klein Sonya Belousova & Giona Ostinelli
// 102 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5933398; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(102/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 · violin
const violin = note(`<
  A@5 B@2 ~@7 C D E F G H@2 I J K@3 J L@2 M N O G P@2 Q@2 R G S@5 G T U@2 V W@2 I J K@3 J X Y M Z K@3 J X Y M Z K@3 J X
  Y AA@3
>`.pickRestart({
  A: "[~@10 db4@5 c4@3 bb3 ab3@2 ~ bb3@7 ~@2 db4@3 ~ eb4 db4@2 c4@2 bb3@5 ~@2 bb3@2 ~ eb4@2 eb4@2 f4@5 db4 c4 bb3@5 ~@2 bb3@2 eb4@2 ~ db4@2 eb4@2 ~@3]/5",
  B: "[eb4 f4@15]/2", C: "db5 c5 bb4 ab4 bb4 ~@3", D: "db5 eb5 db5 c5 bb4@2 ~@2", E: "~@3 bb4 ab5 f5 eb5 c5",
  F: "db5@6 ~@2 db5@3 c5 bb4 ab4@3", G: "bb4@2 ~@2 db5 eb5 db5 c5",
  H: "[bb4@2 ~ bb4 eb5!2 f5 db5@2 bb4@2 ~ eb5 db5 eb5!2]/2", I: "f5@3 ~", J: "~@2 bb4 db5 f5@2 eb5 db5",
  K: "[eb5 f5@2 f5 eb5 db5 c5 db5@2 bb4@2 f5 eb5 db5 c5 db5@2 bb4@2 ab4 bb4 db5@3]/3",
  L: "[eb5 f5@2 f5 ab5 f5 eb5 f5@2 f5@7]/2", M: "a5", N: "bb5@7 ~", O: "~@3 db5!2 c5 bb4 ab4",
  P: "[bb4@2 ~ bb4 eb5!2 f5 db5@2 bb4@2 bb4 eb5 db5 eb5!2]/2", Q: "[f5@3 ~]/2", R: "~@4 db5 c5 bb4 ab4",
  S: "[bb4@2 ~ bb4 eb5!2 f5 db5@2 bb4@2 ~ eb5 db5 eb5 f5@13 ~@2 a5 bb5@2 ~@3 db5 c5 bb4 ab4]/5",
  T: "bb4@3 ~ bb4@2 bb4@2 eb5@2 eb5@2 f5@2 db5@2",
  U: "[~ bb4 bb4@3 ~ bb4@2 eb5@2 db5@2 eb5@2 f5@6 ~@4 db5@2 c5@2 bb4 ab4@3]/2",
  V: "bb4@4 ~@2 bb4@2 db5@2 eb5@2 db5@3 c5",
  W: "[bb4@4 ~@2 bb4@2 eb5@2 eb5@2 f5@2 db5@4 bb4@3 ~ bb4@2 ab5@2 f5@2 eb5@2 eb5@2]/2", X: "eb5 f5@2 f5 ab5 f5 eb5 f5",
  Y: "~ f5 f5@14", Z: "bb5 ~ bb4 db5 f5@2 eb5 db5", AA: "[~ a5@19 bb5@19 ~@9]/3",
})).s("gm_violin").gain(0.3)

// other · violin
const violin_2 = note(`<
  ~@7 A B C@4 D E F@2 G H I@2 J K L@3 K M@2 N O P Q@2 P@2 R P Q@2 P@2 S@2 H T U@2 V W@2 X K L@3 K Y Z N AA AB@3 K AC AD
  AE AA AB@3 K AC AD AF@3
>`.pickRestart({
  A: "~@6 bb3@2 db4@3 c4 bb3@2 ab3@2", B: "bb3@2 ~ bb3 db4 eb4 db4@2",
  C: "[ab3 bb3 ~ bb3 eb4!2 f4 db4@2 ~ bb3!2 eb4 db4 eb4 f4@7 db4 bb3@5 ~@4]/4", D: "~@4 db4 c4 bb3 ab3",
  E: "bb3@2 ~ bb3 db4 eb4 db4 c4", F: "[bb3@2 ~@2 eb4!2 f4 db4@2 bb3 ~ bb3 ab4 f4 eb4!2]/2",
  G: "f4@6 ~@2 db4@3 c4 bb3 ab3@3", H: "eb4@2 ~@2 db4 eb4 db4 c4",
  I: "[db4@2 ~ bb3 eb4!2 f4 db4@2 bb3@2 ~ ab4 f4 eb4!2]/2", J: "f4@3 ~", K: "~@2 bb3 db4 f4@2 eb4 db4",
  L: "[eb4 f4@2 f4 eb4 db4 c4 db4@2 bb3@2 f4 eb4 db4 c4 db4@2 bb3@2 ab3 bb3 db4@3]/3",
  M: "[eb4 f4@2 f4 ab4 f4 eb4 f4@2 f4@7]/2", N: "a4", O: "bb4@7 ~", P: "db4", Q: "eb4", R: "eb4@3 eb4",
  S: "[eb4@6 a4 bb4@2 ~@3 db4 c4 bb3 ab3]/2", T: "db4@3 ~ bb3@2 bb3@2 eb4@2 eb4@2 f4@2 db4@2",
  U: "[~ db4 db4@3 ~ bb3@2 eb4@2 db4@2 eb4@2 db4@6 ~@4 db4@2 c4@2 bb3 ab3@3]/2",
  V: "eb4@4 ~@2 bb3@2 db4@2 eb4@2 db4@3 c4",
  W: "[db4@4 ~@2 bb3@2 eb4@2 eb4@2 f4@2 db4@4 bb3@3 ~ db4@2 ab4@2 f4@2 eb4@2 eb4@2]/2", X: "db4@3 ~",
  Y: "eb4 f4@2 f4 ab4 f4 eb4 f4", Z: "~ f4 f4@14", AA: "f5 ~ bb3 db4 f4@2 eb4 db4",
  AB: "[eb4 f4@2 ab4 g4 f4 eb4 f4@2 db4@2 ab4 g4 f4 eb4 f4@2 db4@2 ab3 bb3 db4@3]/3", AC: "eb4 f4@2 f4 ab4 f4 eb4 c5",
  AD: "~ c5 c5@14", AE: "c5", AF: "[~ c5@19 f5@19 ~@9]/3",
})).s("gm_violin").gain(0.3)

// other · tremolo strings
const tremolo_strings = note("<A@6 ~@72>".pickRestart({
  A: "[~@3 f3@19 g3@18 gb3@19 ab3@18 g3@19]/6",
})).s("gm_tremolo_strings").gain(0.2)

// other · cello
const cello = note(`<
  ~@22 A B@3 A C D E ~ F@3 G H I F@3 G H I F H J K F H J L K A B@3 A C D@2 A B@3 A C D@2 M N O P M Q R@4
>`.pickRestart({
  A: "bb2 c3", B: "[db3@3 eb3@4 bb2@5 eb3@3 bb2@9]/3", C: "ab2 a2", D: "c3!8", E: "c3!4 c3@3 ~", F: "bb2", G: "ab2",
  H: "g2", I: "ab2@3 a2", J: "gb2", K: "f2@3 gb2", L: "bb2@4 ab2 f2 eb2!2", M: "bb2!4 c3!4", N: "db3!3 eb3!4 bb2",
  O: "bb2!4 eb3!3 bb2", P: "bb2!3 ab2 bb2 db3 bb2!2", Q: "ab2!4 a2!4",
  R: "[c3@2 c3@2 c3@2 c3@2 c3@2 ~ c3@2 c3@2 c3@2 c3@2 c3@2 ~ c3@2 c3@2 c3@9 ~ bb2@19 ~@9]/4",
})).s("gm_cello").gain(0.3)

// other · cello · soft notes
const cello_soft = note("<~@6 A ~@6 B C D E B C D F E ~@56>".pickRestart({
  A: "db3 c3", B: "bb2 ~ bb2 ~ bb2 ~ bb2 ~", C: "g2 ~ g2 ~ g2 ~ g2 ~", D: "gb2 ~ gb2 ~ gb2 ~ gb2 ~",
  E: "f2 ~ f2 ~ f2 ~ gb2 ~", F: "bb2 ~ c3 ~ c3 ~ c3 ~",
})).s("gm_cello").gain(0.2)

// other · tremolo strings
const tremolo_strings_2 = note("<A@6 ~@72>".pickRestart({
  A: "[~ bb2@31]/6",
})).s("gm_tremolo_strings").gain(0.2)

stack(violin, violin_2, tremolo_strings, cello, cello_soft, tremolo_strings_2)