Strudelify

Bella Ciao Fuga para cuerda

Antonio Amaro Barragán

KeyA♭ majorTempo132 bpm
0:00/0:00
// Bella Ciao Fuga para cuerda — Antonio Amaro Barragán
// 132 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5977798; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · violin · "Violín"
const violin = note(`<
  A B@2 C D E F G H I@2 J K L M N O P Q R S T U V W X Y Z AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU AV@2 AW AX AY AZ BA BB P Q R S T U V BC
>`.pickRestart({
  A: "~@5 c4 f4 g4", B: "ab4 f4@4 c4 f4 g4", C: "ab4@2 g4 f4 ab4@2 g4 f4", D: "c5@2 c5@2 c5!2 bb4 c5",
  E: "db5 db5@4 db5 c5 bb4", F: "db5 c5@4 c5 bb4 ab4", G: "g4 c5 g4 ab4", H: "f4@5 ~@2 f4", I: "eb4 d4 c4 eb4 g4@3 f4",
  J: "eb4 d4 c4 d4 eb4 d4 eb4 c4", K: "d4@2 c4@2 b3@2 a3@2 b3@6 a3 b3", L: "c4 eb4 d4 c4 c4@3 d4",
  M: "eb4 g4 f4 eb4 eb4@3 f4", N: "g4 f4 eb4 d4 b3 d4 c4 b3", O: "c4@5 c5 f5 [g4,g5]",
  P: "[f4,ab5] [ab4,f5]@4 c5 f5 [bb4,g5]", Q: "[ab4,ab5] [c5,f5]@4 c5 f5 [bb4,g5]",
  R: "[ab4,ab5]@2 g5 f5 [ab4,ab5]@2 g5 f5, ~ c5 ~ f4", S: "c6@2 c6@2 c6 [g4,c6] [f4,bb5] [g4,c6], g4 ~",
  T: "[ab4,db6] [ab4,db6]@4 [ab4,db6] [g4,c6] [f4,bb5]", U: "[eb4,db6] [ab4,c6]@4 [ab4,c6] [g4,bb5] [ab4,ab5]",
  V: "g5 c6 g5 ab5, bb4 c5", W: "[ab4,f5]@4 g5 bb5 [f4,ab5] [g4,g5], ~@2 c4 ~",
  X: "ab4 ~@3 bb4 [bb3,db5] [eb4,c5] [f4,bb4], f5 ~, ~ f4@4 ~@3", // Bbm Cm Bb5
  Y: "g4 ~@3 ab4 [ab3,c5] [db4,bb4] [eb4,ab4], eb5 ~, ~ eb4@4 ~@3", // Ab Gb Ab5
  Z: "f4 ~@4 eb4 ab4 [bb4,db6], db5@4 g5@3 ~, ~ db4@4 ~@3", // Bbm
  AA: "[c5,c6] bb5 ab5 c6 ~ eb4 ab4 [bb4,db6], ~ ab4@4 ~@3, ~@4 eb6@3 ~", // C Bbm
  AB: "c6 bb5 [bb4,ab5] [ab4,bb5] c6 bb5 [bb4,c6] [ab4,ab5], c5 ~ c5 ~", // Bb7 Absus2 Bbsus2 Ab
  AC: "bb5@2 ab5@2 g5@2 f5@2 [g5,ab5]!6 f5 g5, eb5@2 eb5@2 eb5!2 db5 eb5", // Abmaj7
  AD: "[f5,ab5] c6 bb5 ab5 ~ f5 eb5 [db5,bb5], ~ f5@4 ~@3, ~@4 ab5@3 ~", // Fm Gb
  AE: "[f5,c6] eb6 db6 c6 ~ eb5 db5 [c5,db6], ~ eb5@4 ~@3, ~@4 c6@3 ~", // F5 Dbmaj7
  AF: "eb6 db6 c6 bb5 g5 bb5 ab5 g5, bb4 eb5 bb4 c5", AG: "[c5,ab5]@5 eb4 ab4 [bb4,eb5]",
  AH: "c5@2 bb4@2 c5@2 f5 g5 ab5@2 g5@2 ab5@2 [c5,f5]@2, eb5@3 ab4 f4@3 ~", // F5
  AI: "db5@2 c5@2 db5@2 g5 ab5 bb5@2 ab5@2 bb5@2 [db5,g5]@2, f5@3 bb4 g4@3 ~", // Dbdim
  AJ: "eb5@2 db5@2 eb5@2 ab5 bb5 c6@2 bb5@2 c6@2 bb5 c6, g5@3 db5 c5@3 eb5",
  AK: "d6 c6 d6 [c5,c6] [d5,b5]@3 [eb5,ab5], b4@3 ~@5", AL: "g5@5 g4 c5 [d4,d5], d5 ~",
  AM: "[c4,eb5] [eb4,c5]@4 g4 c5 [f4,d5]", AN: "[eb4,eb5] [g4,c5]@4 g4 c5 [f4,d5]",
  AO: "[eb4,eb5]@2 d5 c5 [eb4,eb5]@2 d5 c5, ~ g4 ~ c4", AP: "g5@2 g5@2 g5 [d4,g5] [c4,f5] [d4,g5], d4 ~",
  AQ: "[eb4,ab5] [eb4,ab5]@4 [eb4,ab5] [d4,g5] [c4,f5]", AR: "[bb3,ab5] [eb4,g5]@4 [eb4,g5] [d4,f5] [eb4,eb5]",
  AS: "d5 g5 eb5 d5, f4 ab4", AT: "[eb4,c5]@4 d5 f5 [c4,eb5] [d4,d5], ~@2 g3 ~",
  AU: "eb4 c4@3 ~ f5 bb5 [eb4,c6], eb5@4 f4@3 ~", AV: "[db4,db6] c4 bb3 db4 ~ f5 bb5 [eb4,c6], ~ bb5@4 ~@3, ~@4 f4@3 ~",
  AW: "db4 c4 [bb3,c6] [c4,bb5] db4 c4 [db4,c6] [bb3,bb5], db6 ~ db6 ~", // Bbsus2 C7 Dbmaj7 Bb
  AX: "c4@2 bb3@2 a3@2 g3@2 [a3,bb3]!6 g3 a3, f5@2 f5@2 f5!2 eb5 f5", // Bbmaj7
  AY: "[bb3,gb5] db4 c4 bb3 ~ gb5 f5 [c4,eb5], ~ gb5@4 ~@3, ~@4 bb3@3 ~", // Ebm Cm
  AZ: "[db4,gb5] f4 eb4 db4 ~ f5 eb5 [eb4,db5], ~ f5@4 ~@3, ~@4 db4@3 ~", // Gb5 Eb7
  BA: "f4 eb4 db4 c4 a3 c4 bb3 c4, c5 f5 db5 c5", BB: "db4@5 c5 f5 [g4,g5], bb4 ~", BC: "[a4,f5]",
})).s("gm_violin").gain(0.3)

stack(violin)