Strudelify

sentimental journey

Arrange: V. Domínguez

KeyC majorTempo140 bpm
0:00/0:00
// sentimental journey — Arrange: V. Domínguez
// 140 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/432691; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 35 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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 · flute
const flute = note("<~@7 A B A B A B ~ C D E F G H I J K L ~ A B A B ~ C M N@3>".pickRestart({
  A: "~@8 d#5 e5 g5 a5", B: "c6@3 ~@7 c6@14", C: "~@4 e5@6 c5@2 e5@3 ~ f5@8", D: "e5@3 ~ d#5@2 d5@3 ~ c5@14",
  E: "b5@3 ~ c6@20", F: "b5@3 ~ c6@2 b5@3 ~ c6@2 d6@3 ~ c6@8", G: "f#5@3 ~ g5@20",
  H: "f#5@3 ~ g5@2 f#5@3 ~ g5@2 a5@3 ~ g5@8", I: "c#6@3 ~ d6@20", J: "c#6@3 ~ d6@2 c#6@3 ~ d6@2 c6@9 ~ a5@2",
  K: "b5@3 ~ g5@6 a5@12 f5@2", L: "g5@6 e5@3 ~ f5@14", M: "e6@3 ~ d#6@2 d6@3 ~@15",
  N: "[~@12 e6@3 ~ d#6@2 d6@3 ~ c6@27 ~@23]/3",
})).s("gm_flute").gain(0.3)

// other · flute
const flute_2 = note("<~@7 A B A B A B ~ C D E F G H I J K L ~ A B A B ~ C M N@3>".pickRestart({
  A: "~@8 d#5 e5 g5 a5", B: "e5@3 ~@7 e5@14", C: "~@4 g4@6 e4@2 g4@3 ~ a4@8", D: "g4@3 ~ f#4@2 f4@3 ~ e4@14",
  E: "g#5@3 ~ a5@20", F: "g#5@3 ~ a5@2 g#5@3 ~ a5@2 b5@3 ~ a5@8", G: "d#5@3 ~ e5@20",
  H: "d#5@3 ~ e5@2 d#5@3 ~ e5@2 f5@3 ~ e5@8", I: "f5@3 ~ f5@20", J: "f5@3 ~ f5@2 f5@3 ~ f5@2 a5@9 ~ f5@2",
  K: "g5@3 ~ d5@6 f5@12 d5@2", L: "d5@6 c#5@3 ~ d5@14", M: "~@12 e5@3 ~ d#5@2 d5@3 ~@3",
  N: "[~@12 b5@3 ~ a#5@2 a5@3 ~ g5@27 ~@23]/3",
})).s("gm_flute").gain(0.3)

// other · clarinet · "Clarinet in Bb"
const clarinet = note("<A B C D A E F G A B C D A E F G H I J K L M N O A B C D A E F ~ P@3>".pickRestart({
  A: "~@4 g3@6 e3@2 g3@9 ~ e3@2", B: "g3@3 ~ e3@2 g3@3 ~ e3@2 g3@3 ~ e3@8", C: "~@4 g3@6 e3@2 g3@9 ~ a3@2",
  D: "g3@6 f#3@3 ~ f3@14", E: "g3@3 ~ e3@2 g3@3 ~ e3@2 g3@3 ~ f3@8", F: "~@4 g3@6 e3@2 g3@3 ~ a3@8",
  G: "g3@3 ~ f#3@2 f3@3 ~ e3@14", H: "~@10 c4@2 d#4@3 ~ a4@8", I: "e4@3 ~ f4@2 e4@3 ~ f4@2 g4@3 ~ f4@8",
  J: "~@10 g3@2 d#4@3 ~ e4@8", K: "b3@3 ~ c4@2 b3@3 ~ c4@2 d4@3 ~ c4@8", L: "~@10 d4@2 f4@3 ~ f#4@8",
  M: "b4@3 ~ c5@2 b4@3 ~ c5@2 d5@9 ~ c5@2", N: "d5@3 ~ f4@6 c5@12 g4@2", O: "f4@6 g4@3 ~ g4@14",
  P: "[~@12 d5@3 ~ c#5@2 c5@3 ~ a4@27 ~@23]/3",
})).s("gm_clarinet").gain(0.3)

stack(flute, flute_2, clarinet)