Strudelify

ma cherie

Dj Antoine

KeyB♭ majorTempo120 bpm
0:00/0:00
// ma cherie — Dj Antoine
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5887730; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 61 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 · [...]/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 · trumpet · "Tromba in Si♭"
const trumpet = note(`<
  ~@12 A B C D A B C D E@2 F ~ E@2 G ~ H@3 ~ E@2 I J K@2 L@2 K@2 M@4 N ~ A B C D A B C D ~@5
>`.pickRestart({
  A: "ab4 ~ ab4 ~ ab4 g4 ~ g4", B: "ab4 ~ ab4 ~ ab4 f5 ~ f5", C: "c5 ~ c5 ~ c5 eb5 ~ eb5", D: "bb4 ~ bb4 ~ bb4 g4 ~ g4",
  E: "[~@4 db5 db5@2 db5@2 c5@2 bb4@2 ab4@3]/2", F: "c5", G: "g4 f4@7",
  H: "[~@4 db5 db5@2 db5@2 eb5@2 f5@3 eb5 eb5@2 ab5@7]/3", I: "ab4@2 ~@5 eb5", J: "~@4 c5!2 bb4 ab4",
  K: "[f4@4 c5@4 f4@3 f4@3 db5@6 ~@4 db5@2 db5@2 db5@2 db5@2]/2",
  L: "[c5@4 eb5@4 c5@3 eb5@3 eb5@4 ~@6 c5@2 c5@2 bb4@2 ab4@2]/2",
  M: "[c5@4 eb5@4 c5@3 eb5@3 eb5@6 ~@2 eb5@2 eb5@3 eb5@3 f5@34]/4", N: "eb5@6 db5@2 c5@3 c5@3 c5@2",
})).s("gm_trumpet").gain(0.3)

// other · flute · "Flauto"
const flute = note(`<
  ~@8 A B A C D E F G D E F G A B A C A B A C A B A C A B H ~@5 D E F G D E F G A B A C A B A C A I J ~@2
>`.pickRestart({
  A: "c6@15 ~", B: "db6@15 ~", C: "bb5@15 ~", D: "ab5 ~ ab5 ~ ab5 g5 ~ g5", E: "ab5 ~ ab5 ~ ab5 f6 ~ f6",
  F: "c6 ~ c6 ~ c6 eb6 ~ eb6", G: "bb5 ~ bb5 ~ bb5 g5 ~ g5", H: "c6@2 ~@5 c6", I: "db6@11 ~ db6@2 c6@2", J: "c6 ~@3",
})).s("gm_flute").gain(0.3)

// bass · tuba
const bass = note(`<
  ~@4 A B C D A B C E F G H I J K L M A B C N A B C N A B C N A B O ~ J K L P J K L Q J K L Q J K L Q J K L Q A B R@2 S
>`.pickRestart({
  A: "f2", B: "db2", C: "ab2", D: "eb2", E: "g2", F: "f2@2 f2@2 ~ f2@2 f2", G: "db2@2 db2@2 ~ db2@2 db2",
  H: "ab2@2 ab2@2 ~ ab2@2 ab2", I: "g2!2 ~@2", J: "f2@2 f2@2 f2 f2@2 f2", K: "db2@2 db2@2 db2 db2@2 db2",
  L: "ab2@2 ab2@2 ab2 ab2@2 ab2", M: "bb2@8 ~@2 ab2@3 g2@3", N: "bb2@10 ab2@3 g2@3", O: "ab2@2 ~@5 eb3", P: "eb2 ~@7",
  Q: "g2@2 g2@2 g2 g2@2 g2", R: "[~@4 c3 c3@2 db3@2 c3@2 bb2@2 ab2@3]/2", S: "ab2 ~@3",
})).s("gm_tuba").gain(0.3)

stack(trumpet, flute, bass)