Strudelify

PETIT FLEUR

RP

KeyG minorTempo120 bpm
0:00/0:00
// PETIT FLEUR — RP
// 120 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5855006; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 76 bars on a 24-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 · trombone
const trombone = note(`<
  ~ A@2 B@2 C D E F G H I H J K L M N O P Q R S T U V W X Y W Y Z AA AB@2 AC@4 Z AD AE AF AG@3 AF AH M AI@2 AH@3 AJ AH@2
  AK AL AM K AN AO AP AQ AR AS AT AU AV AW@2 ~@3 AX
>`.pickRestart({
  A: "[~@4 a3@2 gb3 d4@6 ~@3]/2", B: "[~@4 bb3@2 g3 bb3@6 ~@3]/2", C: "~@2 db3 d3 e3@2 a3@2", D: "gb3@4 d3@3 ~",
  E: "~@2 gb3 g3 a3 bb3 g3 d3", F: "bb2 ~@7", G: "~@3 d4@3 d4@2 c4@2 a3@2", H: "d4@5 ~@3",
  I: "~@3 d4@3 d4@2 c4@2 bb3@2", J: "~@2 c4 b3 c4@3 g3", K: "a3@5 ~@3", L: "~@2 bb3 a3 c4@3 a3", M: "bb3 ~@7",
  N: "~@6 g3@3 a3@3 c4@4 a3@4 g3@4", O: "gb3", P: "~@6 g3@3 a3@3 bb3@4 g3@4 bb3@4", Q: "d3@5 ~@3",
  R: "~@2 db4 c4 db4@4", S: "~@2 db4 d4 db4@4", T: "~@2 c4 b3 c4@3 a3", U: "gb3 ~@7", V: "~ c4@2 ~ c4@2 ~@2",
  W: "~ c4 ~ c4", X: "~ bb3 ~ bb3", Y: "~ d4 ~ d4", Z: "~ d4 ~ eb4", AA: "~ d4 ~ g4", AB: "~ f4 ~ f4",
  AC: "~ eb4 ~ eb4", AD: "d4 ~@7", AE: "~ gb3@2 ~ gb3@2 gb3@2", AF: "~ gb3@2 ~ a3@2 gb3@2", AG: "~ g3@2 ~ g3@2 g3@2",
  AH: "~ g3 ~ g3", AI: "~ gb3 ~ gb3", AJ: "~ gb3 ~ a3", AK: "~@3 d4@3 c4@2 d4@2 c4@2", AL: "b3@5 ~@3",
  AM: "~@3 c4@3 bb3@2 c4@2 bb3@2", AN: "c4 bb3", AO: "a3", AP: "bb3 g3", AQ: "a3 ~@7", AR: "~ d4@3 d4@2 d4@2",
  AS: "~ gb3@3 gb3@2 gb3@2", AT: "~ g3@3 g3@2 g3@2", AU: "~ bb2@3 bb2@2 bb2@2", AV: "~ c3@3 c3@2 c3@2",
  AW: "[~ d3@15]/2", AX: "g3@3 ~",
})).s("gm_trombone").gain(0.2)

// other · trombone
const trombone_2 = note(`<
  ~ A@2 B@2 C A B D A@2 E F G H E I J E@3 C K L M N@2 O@2 P Q R S T U V W X Y Z AA AB@2 AC@2 AB@2 I AD A@2 E@2 A AE I AF
  AG@2 J@4 I M AB@2 AC@2 AB AH@2 ~@4
>`.pickRestart({
  A: "~ c4 ~ c4", B: "~ bb3 ~ bb3", C: "~ db4 ~ db4", D: "bb3 ~@7", E: "~ d4 ~ d4", F: "~ bb3 ~ ab3", G: "~ g3 ~ g3",
  H: "~ eb4 ~ c4", I: "~ d4 ~ eb4", J: "~ eb4 ~ eb4", K: "~ db4 ~ g4", L: "~ gb4 ~ gb4", M: "d4 ~@7",
  N: "[~@4 a3@2 gb3 d3@6 ~@3]/2", O: "[~@4 bb3@2 g3 bb2@6 ~@3]/2", P: "~@2 c3 d3 eb3@2 g3@2", Q: "gb3", R: "g3 eb3",
  S: "d3 ~@7", T: "~@3 d4@3 c4@2 d4@2 c4@2", U: "b3@5 ~@3", V: "~@3 c4@3 bb3@2 c4@2 bb3@2", W: "a3@5 ~@3", X: "c4 bb3",
  Y: "a3", Z: "bb3 g3", AA: "a3 ~@7", AB: "~ c4@2 ~ c4@2 c4@2", AC: "~ d4@2 ~ d4@2 d4@2", AD: "g4 ~@7", AE: "~ c4 ~ d4",
  AF: "~ d4 ~ f4", AG: "~ f4 ~ f4", AH: "[~ c4@2 ~ c4@12]/2",
})).s("gm_trombone").gain(0.15)

// other · trombone
const trombone_3 = note(`<
  ~ A@2 B@3 A B C D A E F G H I B@2 J B K L D@2 M N A B@3 A O F P B@4 Q R M S T U V W S X Y Z AA AB AC AD@2 AE C P B@4 Q
  R M AF AG AH@3 AI@2 ~@4
>`.pickRestart({
  A: "~ gb3 ~ gb3", B: "~ g3 ~ g3", C: "g3 ~@7", D: "~ a3 ~ a3", E: "~ f3 ~ f3", F: "~ d4 ~ d4", G: "~ c4 ~ c4",
  H: "~ c4 ~ f3", I: "~ f3 ~ gb3", J: "~ a3 ~ gb3", K: "~ bb3 ~ g3", L: "~ e3 ~ g3", M: "gb3 ~@7",
  N: "~ gb3@2 ~ gb3@2 ~@2", O: "~ bb3 ~ c4", P: "~ g3 ~ a3", Q: "~ g3 ~ f3", R: "~ f3 ~ g3", S: "~ d3@3 d3@2 d3@2",
  T: "~ gb3@3 gb3@2 gb3@2", U: "~ g3@3 g3@2 g3@2", V: "~ bb2@3 bb2@2 bb2@2", W: "~ c3@3 c3@2 c3@2", X: "g3 eb3",
  Y: "d3 ~@7", Z: "d3@3 d3@5", AA: "d3 gb3 g3 a3 eb4 d4", AB: "bb3@3 bb3@5", AC: "bb3 g3 a3 bb3 a3 g3",
  AD: "[a3@3 a3 a3@6 c4!2 bb3!2 a3!2]/2", AE: "g3!2", AF: "~ gb3@2 ~ gb3@2 gb3@2", AG: "~ gb3@2 ~ a3@2 gb3@2",
  AH: "~ g3@2 ~ g3@2 g3@2", AI: "[~ gb3@2 ~ gb3@12]/2",
})).s("gm_trombone").gain(0.15)

// bass · tuba
const bass = note(`<
  ~ A@2 B C D E F G A@2 H I J K L M N O C P Q R S T U A B C V W X Y Z AA J N J K AB T AC AD AE AF AG AD X G A@2 AH C V W
  AI Y Z AA J N J K AB AJ AC AD AE AF AK AL@2 ~@3 AM
>`.pickRestart({
  A: "d2 ~ a2 ~", B: "g2 ~ gb2 ~", C: "g2 ~ f2 ~", D: "e2 ~ a2 ~", E: "d2 ~ d2 ~", F: "g2 ~ g2 d2", G: "g2 ~@7",
  H: "bb2 ~ f2 ~", I: "bb2 ~ b2 ~", J: "c3 ~ bb2 ~", K: "a2 ~ f2 ~", L: "bb2 ~ a2 ~", M: "g2 ~ eb2 ~", N: "a2 ~ g2 ~",
  O: "gb2 ~ d2 ~", P: "e2 ~ d2 ~", Q: "a2 ~ e2 ~", R: "a2 ~ db3 ~", S: "d3 ~ a2 ~", T: "d3 ~@7",
  U: "d3 ~@2 d3 ~@2 a2@2", V: "eb2 ~ eb2 ~", W: "d2 ~ gb2 ~", X: "g2 ~ c3 ~", Y: "g2 ~ b2 ~", Z: "d3 ~ c3 ~",
  AA: "b2 ~ d3 ~", AB: "bb2 ~ g2 ~", AC: "d3 ~@2 d3 d3@2 a2@2", AD: "d3 ~@2 d3 gb2@2 d3@2", AE: "g2 ~@2 g2 d2@2 g2@2",
  AF: "g2 ~@2 g2 f2@2 g2@2", AG: "eb2 ~@2 eb2 a2@2 eb3@2", AH: "g2 ~ d2 ~", AI: "g2 ~ c2 ~", AJ: "d2 ~ d3 ~",
  AK: "eb2 ~@2 eb2 a2@2 eb2@2", AL: "[d2 ~@2 d2 d3@12]/2", AM: "g2@3 ~",
})).s("gm_tuba").gain(0.3)

stack(trombone, trombone_2, trombone_3, bass)

More by RP