Strudelify

Si Tu Vois Ma Mère

Sidney Bechet

KeyB♭ majorTempo120 bpm
0:00/0:00
// Si Tu Vois Ma Mère — Sidney Bechet
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/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/1104406; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 65 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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 · clarinet · "Bb Clarinet"
const clarinet = note(`<
  ~ A@4 B C D E F C G H I@2 J@2 K L M N O P Q R C A@2 S T U V W A@4 B C D E F C G H I@2 J@2 K L M N O P Q R C A@2 S T X
  Y Z
>`.pickRestart({
  A: "bb3", B: "eb4", C: "c4", D: "bb3 ab3", E: "g3", F: "a3 c4", G: "d4", H: "f4", I: "e4", J: "eb4 f4",
  K: "~@6 d4 f4 d4@4", L: "~@6 c4 f4 c4@4", M: "~@6 bb3 d4 bb3@4", N: "~@6 ab3 c4 ab3@4", O: "~@6 g3 bb3 g3@4",
  P: "~@6 gb3 bb3 gb3@4", Q: "d4 c4", R: "b3", S: "c4 b3", T: "a3", U: "bb3 c4", V: "bb3 b3", W: "c4 a3", X: "e4 c4",
  Y: "bb3@2 bb3 c4 bb3 a3 d4 db4", Z: "d4 ~@7",
})).s("gm_clarinet").gain(0.11)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<~@16 A B C D E F G H@2 I J K L I M N O ~@15 A B C D E F G H@2 I J K L I M P Q>".pickRestart({
  A: "~@6 e3 f3", B: "d4 f4 d4@7 ~ e3 f3", C: "c4 f4 c4@7 ~ e3 f3", D: "bb3 d4 bb3@7 ~ db3 d3", E: "ab3 c4 ab3@7 ~@3",
  F: "eb3", G: "~@3 eb3@3 c3@4 a3 bb3", H: "[f4@12 ~@3 f3]/2", I: "gb3 f4@2 eb4", J: "gb3@9 ~ f4 eb4",
  K: "d4@9 eb4@3 e4@3 f4@3 f4@2 d4@2 bb3@2", L: "a3@6 ~ f3", M: "g3 a3", N: "bb3 d3 g3 d3", O: "f3",
  P: "bb3@2 g3 ab3 a3 f4 g3 gb3", Q: "f3 ~@3",
})).s("gm_tenor_sax").gain(0.15)

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note(`<
  ~ A B C D C E F A G@2 C@2 H C I J ~@16 A B C D C E F A G@2 C@2 H C I J ~@16
>`.pickRestart({
  A: "f3", B: "a3", C: "g3", D: "ab3", E: "gb3", F: "d3 eb3", G: "g3 gb3", H: "bb3", I: "g3 a3", J: "bb3@2 a3 ~",
})).s("gm_tenor_sax").gain(0.1)

// chords · piano
const piano = note(`<
  ~ A B C D E@2 F G H I J@2 K L M@2 N O P Q R S T U V@2 W X Y Z AA AB A B C D E@2 F G H I J@2 K L M@2 N O P Q R S T U
  V@2 W X Y Z AC AD
>`.pickRestart({
  A: "bb2@3 [bb2,d4,f4]@5", B: "bb2@3 [bb2,d4,a4]@5", C: "bb2@3 [bb2,d4,g4]@5", D: "bb2@3 [bb2,d4,ab4]@5",
  E: "bb2@3 [bb2,eb4,c5]@5", F: "d3@6 gb5 db5 bb4 g4 gb4 f4, ~ c3",
  G: "[bb2,d4]@4 ~ [f4,bb4,d5] [g2,f4,bb4,d5]@2, ~@2 f2 ~", H: "~ a2, a2 ~, ~@3 [gb4,c5]@5",
  I: "~ d5 a4 g4 [a2,gb4]@4, a2 ~", J: "[~@5 bb4@2 ~ g2@4 ~ [d4,f4,bb4]@3, g2 bb2 ~ g2, ~@3 eb5@2 ~@2 f4@5 ~@4]/2",
  K: "[c3,e4,bb4] [c3,e4,c5]", L: "[e3,g4,c5]@2 bb4 g4, ~ e3", M: "eb3 f3@2 ~, [eb4,a4]", N: "[bb3,d4,f4]!4, bb2",
  O: "[a3,d4,f4]!4, bb2", P: "[g3,d4,f4]!4, bb2", Q: "[bb3,c4,f4]!4, bb2", R: "[c4,eb4,g4]!4, eb2",
  S: "[c4,eb4,gb4]!2 [c4,f4,gb4] [c4,eb4,gb4], eb2", T: "[c4,d4,f4]!2 [c4,f4] [ab2,c4,f4], d2@3 ~", U: "[b3,d4]!4, g2",
  V: "[bb3,eb4]!4, c3", W: "[bb3,f4]!4, bb2", X: "[c4,f4] [bb3,f4] [b3,g4] [d4,g4], a2 g2",
  Y: "[eb4,gb4]!2 [d4,gb4] [c4,gb4], c3", Z: "[bb3,d4,g4]!2 [a3,eb4,f4]!2, c3!2", AA: "bb2@2 a2 b2, [d4,f4]",
  AB: "[c3,bb3,eb4] [f2,a3,f4]", AC: "[bb2,d4,f4] [bb2,d4,eb4] [a2,d4,f4] [c3,c4,eb4]", AD: "[bb2,f3,bb3,a4] ~@3",
})).s("gm_piano").gain(0.4)

stack(clarinet, tenor_sax, tenor_sax_soft, piano)