Strudelify

Cincertino pour Saxophone Alto Mib et Piano

J. B. SINGELÉEOp. 78

KeyF majorTempo120 bpm
0:00/0:00
// Cincertino pour Saxophone Alto Mib et Piano — J. B. SINGELÉEOp. 78
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5886417; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 89 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 · [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.

// chords · piano
const piano = note(`<
  A B C D E F G H I@2 J K L M N O P Q R S T U V W X@2 Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX AY AZ AW BA BB BC BD BE BF BG BH BI@3 BJ BK BL BM BN BO BP BQ BR BS BT BU@2 BV BW@2 BX@2 BY BZ CA CB CC
>`.pickRestart({
  A: "ab3@2 [c4,eb4] ~ [c4,eb4] ~ [c4,eb4] ~ ab3@2 [c4,eb4] ~ [c4,eb4] ~ [c4,eb4] ~, [c5,ab5]@4 c5@3 db5", // Cm Fm
  B: "g3@2 [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@2 [gb3,eb5]@2 [ab3,c4,eb4]@2 [ab3,c4,eb4,bb4]@2 ~ c5, f5@4 ~@3 [ab3,c4,eb4]", // Eb5 Ebm Ab
  C: "[f3,ab3,db4,eb5]@3 db5 [eb3,f3,a3,c4,f5]@3 a4 [db3,f3,bb3,c5]@3 bb4 [bb2,db3,f3,bb3,db5]@3 f4", // Db F7 Bbm
  D: "~ e3 [eb3,g4] ~, ab4 ~, ~ [bb3,db4]@2 ~", // Eb Bbm
  E: "[eb3,g4] [bb3,db4,ab4] [bb3,db4,a4] [bb3,db4,bb4] eb3 [bb3,db4]!3, ~ eb4", // Eb Bbm7 Bbm
  F: "[eb3,ab4] [ab3,c4,bb4] [ab3,c4,b4] [ab3,c4,c5] eb3 [ab3,c4]!3, ~ eb4", // Ab5 Ab
  G: "[eb3,d4] [ab3,bb3,d4]!2 [ab3,bb3,d4,f5] [eb3,d5] [ab3,bb3,d4,bb4] [ab3,bb3,d4,ab4] [ab3,bb3,d4,f4], ~ ab5@2 ~@5", // Ebmaj7 Bb7 Ebmaj7 Bb7
  H: "[eb3,g3,bb3]@2 [g4,bb4,eb5] ~@5, eb4 ~ [eb2,eb3]@2 ~@4", I: "~ [c4,eb4,ab4]!4 ~@3, [ab2,ab3]@9 ~@7",
  J: "~ [c4,eb4,ab4]!3 ~ [ab3,eb4,ab4]!3, [ab2,ab3] ~ [c2,c3] ~", K: "~ ab3 db4 f4 ab4 f4 db4 ab3, [db2,db3]@9 ~@7",
  L: "~ [bb3,db4,f4]!4 ~@3, [bb1,bb2]@9 ~@7", M: "~ [g3,bb3,db4,eb4]!4 ~@3, [eb2,eb3]@9 ~@7",
  N: "~ [ab3,bb3,db4,eb4]!4 ~@3, [eb2,eb3]@9 ~@7", O: "~ b3 d4 f4 eb4 c4 ab4 eb4, ab2 ~ ab3 ~",
  P: "ab2 [c4,eb4,ab4] bb2 [db4,eb4,g4]", Q: "~ [ab3,eb4,ab4]!2 ~@2 [bb3,db4,eb4]!2 ~, c3 ~ g2 ~",
  R: "~ [ab3,c4,eb4]!2 ~@2 [ab3,db4,f4]!2 ~, ab2 ~ [db2,db3] ~", S: "~ g3 bb3 eb4 g4 ~@3, [eb2,eb3] ~@3",
  T: "~ bb3 [f4,ab4] bb3 ~ bb3 [d4,ab4] bb3, [d2,d3] ~ [bb1,bb2] ~", // Fm Ddim D Bb
  U: "~ [bb3,eb4,g4]!2 ~@2 [ab3,c4,f4]!2 ~, [eb2,eb3] ~ [ab1,ab2] ~", // Eb Fm Eb Ab
  V: "[bb1,bb2,g3,bb3,eb4] ~ [bb1,bb2,ab3,bb3,d4]@2", // Eb Bb7
  W: "[eb2,eb3] [g3,bb3,eb4] db3 [g3,bb3,f4] c3 [ab3,eb4] bb2 [g3,db4,eb4]", X: "~ [ab3,c4,eb4]!7, ab2 ~@3",
  Y: "~ [ab3,c4,gb4]!7, [ab1,ab2]@15 ~", Z: "~ [ab3,db4,f4]!4 ~@3, [db2,db3]@9 ~@7",
  AA: "~ [g3,bb3,c4]!3 ~ [g3,bb3,e4]!3, [e2,e3] ~ [c2,c3] ~", AB: "~ [ab3,c4,f4]!4 ~@3, [f2,f3]@9 ~@7",
  AC: "~ [g3,db4,f4]!3 ~ [g3,d4,f4]!3, [bb1,bb2] ~ [b1,b2] ~", AD: "[c2,c3,g3,c4,e4] ~ [c2,c3,e4,g4,c5]@2 ~@4",
  AE: "f2 [ab3,c4,f4] f2 [bb3,c4,e4]", AF: "ab2 [ab3,c4,f4] a2 [c4,eb4,f4]", AG: "bb2 [bb3,db4,f4] c3 [a3,eb4,f4]",
  AH: "~ [bb3,f4]!4 ~@3, db3 ~", AI: "~ [bb3,db4,e4,g4] [ab3,f4,c5] [e3,g4,bb4], ~ c4",
  AJ: "[f3,c4,f4,ab4] ~ [bb1,bb2,g3,db4,f4]@2", AK: "[c2,c3,ab3,c4,f4] ~ [c2,c3,g3,bb3,e4]@2",
  AL: "~ [ab3,c4,f4]!3 ~ [ab3,c4,f4]!3, [f2,f3] ~ [f2,f3] ~", // Fm F
  AM: "~ [ab3,c4,f4]!3 ~ [c4,eb4,f4]!3, [f2,f3] ~ [a2,a3] ~", AN: "~ [db4,f4]!3 ~ [bb3,eb4]!3, [bb2,bb3] ~ [g2,g3] ~",
  AO: "~ [c4,eb4]!3 ~ [ab3,db4]!3, [ab2,ab3] ~ [f2,f3] ~", AP: "~ [bb3,db4]!3 ~ [g3,bb3,c4]!3, [g2,g3] ~ [e2,e3] ~",
  AQ: "[f2,f3] [ab3,c4] eb3 [a3,c4,f4] db3 [bb3,db4,f4] a2 [c4,eb4,f4]", // F Ab F Bbm F7
  AR: "bb2 [db4,f4] c3 [eb4,f4,a4] db3 [bb3,f4,bb4] d3 [bb3,f4,ab4]", // Db F7 Bb5 Bb7
  AS: "[eb2,eb3,bb3,eb4,g4] ~@3 [d2,d3,ab3,b3,e4]@4", AT: "[eb2,eb3,g3,bb3,eb4] ~@3 [d2,d3,ab3,b3,e4]@4",
  AU: "[eb2,eb3,g3,bb3,eb4]@2 eb4 f4 g4 ab4 bb4 c5 [eb3,g3,bb3,db5]@2 g4 ab4 bb4 c5 db5 eb5", // Eb Eb7
  AV: "[g4,bb4,f5] eb5 db5 bb4 g4 eb4 d4 eb4, [eb3,g3,bb3,db4]@9 ~@7", // Gm7 Eb7
  AW: "~ [ab3,c4,eb4]!3 ~ [ab3,c4,eb4]!3, [ab1,ab2] ~ [c2,c3] ~", // Ab C
  AX: "~ [g3,db4,eb4]!3 ~ [g3,bb3,db4]!3, [bb1,bb2] ~ [eb2,eb3] ~", // Eb7 Gdim Bb Eb
  AY: "~ [g3,bb3,c4]!3 ~ [ab3,c4]!3, [e2,e3] ~ [f2,f3] ~", // C7 Ab E F
  AZ: "~ [ab3,bb3,d4]!3 ~ [g3,bb3,eb4]!3, [bb1,bb2] ~ [eb2,eb3] ~", // Bb7 Eb Bb Eb
  BA: "~ [g3,d4,f4]!3 ~ [g3,c4,eb4]!3, [b1,b2] ~ [c2,c3] ~", BB: "~ [ab3,c4,d4]!3 g3 [g3,c4,eb4]!3, [f2,f3] ~ g2 ~",
  BC: "~ [g3,b3,f4]!3 ~ [g3,c4,eb4]!3, [g1,g2] ~ [c2,c3] ~", BD: "~ [a3,c4,eb4]!7, [f2,f3] ~",
  BE: "~ [bb3,db4]!7, [bb1,bb2] ~", BF: "~ [b3,d4,f4]!7, [g2,g3] ~",
  BG: "~ [c4,eb4]!3 ~ [bb3,eb4,g4]!3, [c2,c3] ~ [db2,db3]@2", // Cm Eb C Db
  BH: "~ [ab3,eb4,ab4]!3 ~ [db4,eb4,g4]!3, [c2,c3] ~ [g1,g2]@2", // Ab5 Eb7 C G
  BI: "[~ [c4,eb4,gb4]!3 [bb1,bb2,db4,f4] ~ [db2,db3,db4,f4,bb4]@3 ~ [eb2,eb3,c4,ab4] ~@3 [eb2,eb3,bb3,db4,g4]@4 ~ [ab3,c4,eb4]!5, [a1,a2] ~@8 [ab1,ab2] ~@2]/3", // Cdim Bbm Ab Eb7 Ab A Ab
  BJ: "[ab3,c4,eb4]!2 ~ [ab3,c4,eb4]!3 ~ [ab3,c4,eb4], ~ [ab1,ab2] ~ [ab1,ab2]", // Ab
  BK: "[ab3,c4,eb4]!2 ~ [f3,bb3,db4,f4]!5, ~ [db2,db3] ~@2", // Ab Bbm Db
  BL: "[f3,bb3,db4,f4]!2 ~ [g3,bb3,db4,eb4]!3 ~ [g3,bb3,db4,eb4], ~ [eb2,eb3] ~ [eb2,eb3]", // Bbm Eb7 Eb
  BM: "[g3,bb3,db4,eb4]!2 ~ [ab3,c4,eb4]!5, ~ [ab1,ab2] ~@2", // Eb7 Ab
  BN: "[ab3,c4,eb4]!2 ~ [bb3,c4,e4]!3 ~ [bb3,c4,e4], ~ [g1,g2] ~ [c2,c3]", // Ab C7 G C
  BO: "[bb3,c4,e4]!2 ~ [ab3,c4,f4]!5, ~ [f1,f2] ~@2", // C7 Fm F
  BP: "[ab3,c4,f4]!2 ~ [ab3,d4,f4]!3 ~ [f3,ab3,bb3,d4], ~ [bb1,bb2] ~ [bb1,bb2]", // Fm Ddim Bb7 Bb
  BQ: "[f3,ab3,bb3,d4]!2 ~ [g3,bb3,eb4]!3 g2 [bb3,db4,eb4], ~ [eb2,eb3] ~@2", // Bb7 Eb Eb7 Eb
  BR: "eb2 [bb3,db4,eb4] ab2 [ab3,c4,eb4] eb2 [ab3,c4,eb4] bb2 [g3,db4,eb4]", // Eb7 Ab Eb7
  BS: "eb2 [g3,db4,eb4] ~ [ab3,c4,eb4]!3 ~ [a2,c4,eb4,f4], ~ ab2 ~@2", // Eb7 Ab F7
  BT: "~ [f2,c4,eb4,f4] bb2 [bb3,db4,f4] db3 [db4,f4,bb4] eb3 [c4,eb4,ab4]", // F7 Bbm Ab
  BU: "[eb2 [bb3,db4,eb4,g4] [ab2,c4,eb4,ab4]@2 ~@2 [f2,f3,c4,eb4,a4]@4 [bb1,bb2,db4,f4,bb4] ~ [db2,db3,db4,f4,bb4] ~ [eb2,eb3,c4,eb4,ab4] ~]/2", // Eb7 Ab F7 Bbm Ab
  BV: "[eb2,eb3,bb3,db4,eb4,g4] ~ [ab2,ab3,c4,eb4,ab4] ~ [ab1,ab2,c4,eb4,ab4]@4", // Eb7 Ab
  BW: "[[ab1,ab2,c4,eb4,ab4]@2 [bb1,bb2,bb3,d4,f4,ab4]@4 [eb2,eb3,bb3,db4,eb4,g4]@4 [ab2,ab3,c4,eb4,ab4] ~ [ab1,ab2,c4,eb4,ab4]@4]/2", // Ab Bb7 Eb7 Ab
  BX: "[[ab1,ab2,c4,eb4,ab4]@4 [bb1,bb2,bb3,d4,f4,ab4]@8 [eb2,eb3,bb3,db4,eb4,g4]@8 [ab2,ab3,c4,eb4,ab4]!12]/2", // Ab Bb7 Eb7 Ab
  BY: "[ab2,ab3,c4,eb4,ab4]!16", BZ: "[ab2,ab3,c4,eb4,ab4]!4 [ab2,ab3,c4,eb4,ab4]@4 ~@4 [ab2,ab3,c4,eb4,ab4]@4",
  CA: "~@2 [ab2,ab3,c4,eb4,ab4] ~ [eb2,eb3,eb4,g4,bb4] ~ [ab2,ab3,eb4,ab4,c5] ~", // Ab Eb Ab
  CB: "[eb2,eb3,bb4,db5,eb5,g5] ~ [ab1,ab2,c5,eb5,ab5]@2 ~@2 [ab2,c3,eb3,ab3,c5,eb5,ab5,c6]@2", // Eb7 Ab
  CC: "~ [ab1,ab2,c4,eb4,ab4]@2 ~", // Ab
})).s("gm_piano").gain(0.2)

stack(piano)