Strudelify

Moliendo Café for 2 Accordions

J. M. Perroni

KeyA minorTempo96 bpm
0:00/0:00
// Moliendo Café for 2 Accordions — J. M. Perroni
// 96 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5712683; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 62 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/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 · accordion
const accordion = note(`<
  ~ A B C D E D F G H I J A B K L M N M O P Q R S T U V W X Y Z@2 AA@4 AB@2 AC B K L M AD M AE P AF R AG R AH AI AJ AK
  AL AM@2 AN AO AP AQ
>`.pickRestart({
  A: "a4@2 ~@2 g4@2 ~@2 f4@2 ~ e4@5", B: "c5@2 ~@2 b4@2 ~@2 a4@2 ~ g#4@5",
  C: "e5 a5 c6 a5 d5 g5 b5 g5 c5 f5 a5 e5@2 e4 a4 b4", D: "c5!2 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 b4 a4",
  E: "c5 a4 ~@11 e4 a4 b4", F: "d5@2 ~@11 d4 f4 a4", G: "d5!2 ~ d5 ~ d5 ~ d5 ~ d5 ~ d5 ~ d5!2 e5",
  H: "d5 c5 ~@11 e4 a4 b4", I: "c5!2 ~ c5 ~ c5 ~ c5 b4!2 ~ b4 ~ d5 c5 b4", J: "a4@2 a4@2 ~@2 a4!2 a4@2 ~@6",
  K: "e5 a5 c6 a5 d5 g5 b5 g5 c5 f5 a5 e5@5", L: "c5 e5 a5 e5 b4 d5 g5 d5 a4 c5 f5 g#4@2 a4 c5 d5",
  M: "e5!2 ~ e5 ~ e5 ~ e5 ~ e5 ~ e5 ~ e5 d5 c5", N: "e5 c5 a5 c6 b5 a5 e5 c5 b4 a4 d5 c5 b4 a4 c5 d5",
  O: "f5 e5 f5 a5 d6 c#6 e6 d6 a5 f5 e5 d5 a4 f4 a4 d5", P: "f5!2 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5!2 g5",
  Q: "f5 e5 e6 d6 c6 a5 e5 d5 c5 a4 e4 d4 c4 a4 c5 d5", R: "e5!2 ~ e5 ~ e5 ~ e5 d#5!2 ~ d5 ~ f5 e5 d5",
  S: "[c5,f#5,b5]@2 [c5,f#5,b5]@2 ~@2 [c5,f#5,b5]!2 [c5,f#5,b5]@2 b4 c5 c#5 d5 d#5 e5", // B
  T: "f5@2 g5 f5@2 g5 f5@2 a5@5 g5@2 f5", U: "g5 e5@2 c5@3 g4@2 e4 f4 g4 a4 b4 c5 d5 e5",
  V: "f5@2 g5 f5@2 g5 f5@2 a5@5 c6 b5 a5", W: "b5 g5@2 e5@3 b4@2 c5 d5 e5 f5 g5 a5 b5 c6",
  X: "d6@2 c#6 [b5,c6] d6@2 c#6 [b5,c6] d6@2 c#6 [b5,c6] a5 g#5 a5 a#5", // Cmaj7
  Y: "[b4,b5]@2 [c5,c6]@2 ~@2 [d5,d6] [d#5,d#6] [e5,e6]@2 ~@6", // B C D D# E
  Z: "[[e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4,e6]@3 [e3,g3,b3,d6]@2, g6@27 ~@5]/2", // Am Dm Em Am Dm Em Am Dm …
  AA: "[[e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4,a5]@3 [e3,g3,b3,d6]@2, b5@27 ~@5]/2", // Am Dm Em Am Dm Em Am Dm …
  AB: "[[e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4]@3 [e3,g3,b3]@2 [e3,a3,c4]@3 [f3,a3,d4,a5]@3 [e3,g#3,d4,c6]@2, b5@27 ~@5]/2", // Am Dm Em Am Dm Em Am Dm …
  AC: "b5@4 a5 [c5,e5] b4@5 a4 ~@4", AD: "e5 c5 ~@2 d#4 e4 d#4 e4 ~ g#4@2 a4@2 a4 c5 d5",
  AE: "f5@2 ~@2 e4 f4 e4 f4 ~ g#4@2 a4@2 f4 a4 d5", AF: "f5 e5 ~@2 d#4 e4 d#4 e4 ~ g#4@2 a4@2 a4 c5 d5",
  AG: "[c5,f#5,b5]@2 [c5,f#5,b5]@2 ~@2 [c5,f#5,b5]!2 [c5,f#5,b5]@2 ~@3 a4 c5 d5", // B
  AH: "c5@2 c5@2 ~@2 c5!2 c5@2 ~@3 e5 a5 b5", AI: "c6!2 ~ c6 ~ c6 ~ c6 b5!2 ~ b5 ~ d6 c6 b5",
  AJ: "[c5,e5,a5]@2 [c5,e5,a5]@2 ~@2 [c5,e5,a5]!2 [c5,e5,a5]@2 ~@2 e4 a4 b4 c5", // Am
  AK: "c5 e5@2 f5@2 b4 d5 e5@3 b4 d5@2 e5 d5 c5", AL: "c5 e5@2 f5@2 b4 d5 e5@3 b4 d5@2 e5 d5 e5",
  AM: "e5 c6@2 a5@2 d5 f5 g#5@3 d5 f5@2 g#5 f5 e5", AN: "g5 c6 d6 e6 e5 a5 a#5 c6 c#5 f#5 g5 a5 a#4 d#5 e5 f#5",
  AO: "f5 a#5 c#6 d6 d5 g5 a#5 b5 b4 e5 f5 g5 g#4 c#5 d5 d#5", AP: "[e4,a4,e5]@2 [e4,a4,e5]!2", AQ: "[e4,a4,e5] ~",
})).s("gm_accordion").gain(0.4)

// chords · accordion
const accordion_2 = note(`<
  A B C D E F@2 G@2 F H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AB AC AD AF AG AH L M AI AJ P AK R AL T AM AN
  AO AP AQ@7 AR AS
>`.pickRestart({
  A: "a4@2 ~@2 g4@2 ~@2 f4@2 ~ e4@5", B: "c5@2 ~@2 b4@2 ~@2 a4@2 ~ g#4@5", C: "e5 a5 c6 a5 d5 g5 b5 g5 c5 f5 a5 e5@5",
  D: "c5 e5 a5 e5 b4 d5 g5 d5 a4 c5 [f3,a3,c4,f5] [e2,g#4]@2 [e3,g#3,d4]@2 [e3,g#3,d4], a2 [e3,a3,c4] g2 [g3,b3,d4] f2 ~@3", // F E E7 Am G
  E: "[a2,e3,a3,c4,c5,f#5,b5] ~@7", // F#m7b5
  F: "a2@2 [e5,a5]!2 e2@2 [e5,a5]!2 a2@2 [e5,a5]!2 ~@3 [e5,a5], ~ [e3,a3,c4] ~ e2 ~ [e3,a3,c4] e2!2, ~@13 [e5,a5]@2 ~", // A5 Am A5
  G: "d3@2 [f5,a5]!2 a2@2 [f5,a5]!2 d3@2 [f5,a5]!2 ~@3 [f5,a5], ~ [f3,a3,d4] ~ a2 ~ [f3,a3,d4] a2!2, ~@13 [f5,a5]@2 ~", // F Dm F
  H: "a2@2 [e3,a3,c4]@2 e2@2 e2@2 b2@2 [a3,b3,d#4]@2 [e2,e3,g#3,d4,d5,g#5] ~ [e2,e3,g#3,d4,d5,g#5] ~, a5@3 ~, e5@2 d#5 ~", // Am B7 E7
  I: "[a2,e3,a3,c4,c5,f#5,b5]@2 [a2,e3,a3,c4,c5,f#5,b5]@2 ~@2 [a2,e3,a3,c4,c5,f#5,b5]!2 [a2,e3,a3,c4,c5,f#5,b5]@2 ~@2 [e2,e3,g#3,d4,g4]@4", // F#m7b5 E7
  J: "[a2,e3,a3]@2 ~@2 [b3,d4]@4 [a3,c4]@3 [g#3,b3]@5, [c4,e4] ~@3", // A5 Bm Am G#m C
  K: "[a2,c4,e4,a4]@4 [g2,b3,d4,g4]@4 [f2,a3,c4,f4]@3 [e2,g#3,b3,e4]@5", // Am G F E
  L: "[a2,c5]@2 [e3,a3,c4]@2 [g2,b4]@2 [g3,b3,d4]@2 [f2,a4]@2 [f3,a3,c4] e2@2 [e3,g#3,d4]@2 [e3,g#3,d4], ~@11 g#4@5", // Am G F E7
  M: "e5 a5 c6 a5 d5 g5 b5 g5 c5 f5 [f3,a3,c4,a5] [e2,e5]@2 e4 a4 [e3,g#3,d4,b4], a2@2 [e3,a3,c4]@2 g2@2 [g3,b3,d4]@2 f2@2 ~@3 [e3,g#3,d4]@2 ~", // F E E7 Am G E7
  N: "c5!2 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 b4 a4, a2 g#2", O: "c5 a4 [c4,e4]@2 ~@6 [c4,e4]@2 ~ e4 a4 b4, g2 g#2",
  P: "c5!2 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 b4 a4, a2 [e3,a3,c4] e2!2 a2 [e3,a3,c4] e2!2", // Am
  Q: "[d3,d5]@2 [f3,a3,d4]@2 a2@2 a2@2 d3@2 [f3,a3,d4]@2 ~ d4 f4 a4, ~@6 a2!2", // D Dm
  R: "d5!2 ~ d5 ~ d5 ~ d5 ~ d5 ~ d5 ~ d5!2 e5, d3 [f3,a3,d4] a2!2 d3 [f3,a3,d4] a2!2", // Dm
  S: "d5 c5 [e3,a3,c4]@2 e2@2 e2@2 a2@2 [e3,a3,c4]@2 ~ e4 a4 b4, a2 ~@5 e2!2", // Am
  T: "c5!2 ~ c5 ~ c5 ~ c5 b4!2 [a3,b3,d#4] b4 [e2,e3,g#3,d4] d5 [e2,e3,g#3,d4,c5] b4, a2 [e3,a3,c4] e2!2 b2 ~@3", // B7 E7 Eaug Am
  U: "[a2,e3,a3,c4,a4]@2 [a2,e3,a3,c4,a4]@2 ~@2 [a2,e3,a3,c4,a4]!2 [a2,e3,a3,c4,a4]@2 g#4 a4 a#4 b4 c5 c#5", // Am
  V: "[d3,f3,a3,d4,d5]@2 e5 [a2,f3,a3,d4,d5]@2 e5 [d3,f3,a3,d4,d5]@2 [g2,f3,g3,b3]@3 [d3,f3,g3,b3]@2 ~@2 d5, ~@8 f5@5 e5@2 ~, ~@7 [g2,f3,g3,b3]", // Dm G7
  W: "e5 c5@2 [e2,e3,g3,c4,g4]@3 [g2,e3,g3,c4,e4]@2 ~ d4 e4 f4 g4 a4 b4 c5, [c3,e3,g3,c4]@3 ~@5 [c3,e3,g3,c4]@3 [e2,e3,g3,c4]@3 [g2,e3,g3,c4]@2", // C
  X: "[d3,f3,a3,d4,d5]@2 e5 [a2,f3,a3,d4,d5]@2 e5 [d3,f3,a3,d4,d5]@2 [g2,f3,g3,b3]@3 [d3,f3,g3,b3]@2 a5 g5 f5, ~@8 f5@5 ~ [g2,f3,g3,b3]@2", // Dm G7
  Y: "g5 e5@2 [e2,e3,g3,c4,b4]@3 [g2,e3,g3,c4,g4]@2 a4 b4 c5 d5 e5 f5 g5 a5, [c3,e3,g3,c4]@3 ~@5 [c3,e3,g3,c4]@3 [e2,e3,g3,c4]@3 [g2,e3,g3,c4]@2", // Cmaj7 C
  Z: "b5@2 a#5 [g#5,a5] b5@2 a#5 [g#5,a5] b5@2 a#5 [g#5,a5] f#5 f5 f#5 g5, [f2,f3,a3,d#4]!4", // Amaj7 F7
  AA: "[e2,e3,g#3,b3,g#4,g#5]@2 [e2,e3,g#3,b3,a4,a5]@2 ~@2 [e2,e3,g#3,b3,b4,b5] [e2,e3,g#3,b3,a4,a5] [e2,e3,g#3,b3,g#4,g#5]@2 ~@6", // E
  AB: "a4 c5 a5 c5 a4 c5 a5 c5 a4 c5 a5 c5 a4 c5 a5 c5, f2@3 f2@3 f2@2 f2@3 f2@3 f2@2",
  AC: "a4 c5 a5 c5 a4 c5 a5 c5 f2@3 f2@3 f2@2, f2@3 f2@3 f2@2 a4 ~@7",
  AD: "d5 e5 a5 e5 d5 e5 a5 e5 d5 e5 a5 e5 d5 e5 a5 e5, g2@3 g2@3 g2@2 g2@3 g2@3 g2@2",
  AE: "d5 e5 a5 e5 d5 e5 a5 e5 g2@3 g2@3 g2@2, g2@3 g2@3 g2@2 d5 ~@7",
  AF: "d5 e5 a5 e5 d5 e5 a5 e5 c5 e5 a5 e5 c#5 d5 g5 f5, g2@3 g2@3 g2@2 f2@3 f2@3 e2@2",
  AG: "[a2,e5]@2 [e3,a3,c4]@2 g2@2 [g3,b3,d4]@2 f2@2 [f3,a3,c4] e2@2 [e3,g#3,d4]@2 [e3,g#3,d4]", // A5 Am G F E7
  AH: "[a2,a4]@2 [e3,a3,c4]@2 [g2,g4]@2 [g3,b3,d4]@2 [f2,f4]@2 [f3,a3,c4] e2@2 [e3,g#3,d4]@2 [e3,g#3,d4], ~@11 e4@5", // A Am G F E7
  AI: "c5!2 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 b4 a4, [a2,e3,a3,c4] ~@7", // Am
  AJ: "c5 a4 [e3,a3,c4]@2 b3 c4 b3 c4 ~@2 c4 ~@2 e4 a4 b4, a2 ~ e2!2 a2 [e3,a3] e2!2, ~@9 e4@2 c4@2 ~@3", // Am A5
  AK: "[d3,d5]@2 [f3,a3,d4]@2 c#4 d4 c#4 d4 ~@5 d4 f4 a4, ~@2 a2!2 d3 [f3,a3,d4] a2!2, ~@9 e4@2 f4@2 ~@3", // D Dm
  AL: "d5 c5 [e3,a3,c4]@2 b3 c4 b3 c4 ~@2 c4 ~@2 e4 a4 b4, a2 ~ e2!2 a2 [e3,a3] e2!2, ~@9 e4@2 c4@2 ~@3", // Am A5
  AM: "[a2,e3,a3,c4,a4]@2 [a2,e3,a3,c4,a4]@2 ~@2 [a2,e3,a3,c4,a4]!2 [a2,e3,a3,c4,a4]@2 ~@3 e4 a4 b4", // Am
  AN: "c5!2 ~ c5 ~ c5 ~ c5 b4!2 ~ b4 ~ d5 c5 b4", AO: "a4@2 a4@2 ~@2 a4!2 a4@2 ~@3 a4 c5 d5",
  AP: "e5!2 ~ e5 ~ e5 ~ e5 d#5!2 ~ d5 ~ f5 e5 d5, [a2,e3,a3,c4]@2 [b2,a3,b3,d#4] [e2,e3,g#3,d4]", // Am B7 E7
  AQ: "[[a2,e3,a3,c4,e4,a4,c5]@2 [a2,e3,a3,c4,e4,a4,c5]@2 ~@2 [a2,e3,a3,c4,e4,a4,c5]!2 [a2,e3,a3,c4,e4,a4,c5]@2 ~@2 c4 e4 g#4 a4 a4 c5@2 [d3,d5]@2 g#4 b4 c5@3 g#4 [d3,b4]@2 c5 b4 a4 a4 c5@2 [d3,d5]@2 g#4 b4 c5@3 g#4 [d3,b4]@2 c5 b4 c5 c5 e5@2 [d3,f5]@2 b4 d5 e5@3 b4 [d3,d5]@2 e5 d5 c5 c5 e5@2 [d3,f5]@2 b4 d5 e5@3 b4 [d3,d5]@2 e5 d5 c5 e5 c#5 a#4 g4 c#5 a#4 g4 e4 a#4 g4 e4 c#4 g4 e4 c#4 a#3 d5 b4 g#4 f4 b4 g#4 f4 d4 g#4 f4 d4 b3 f4 d4 b3 g#3, ~@12 a2@7 ~@3 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@5 ~@3 e2@5 ~@3 a2@34]/7", // Am D G D G Dm D Dm …
  AR: "[a2,a3,e4,a4]@2 [a2,a3,e4,a4]!2", AS: "[a2,a3,e4,a4] ~",
})).s("gm_accordion").gain(0.4)

stack(accordion, accordion_2)