Strudelify

alfonsina y el mar

Ariel Ramirez

KeyA minorTempo120 bpm
0:00/0:00
// alfonsina y el mar — Ariel Ramirez
// 120 bpm, 6/8, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 6/8 at bar 2) are rendered on a constant 6/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5826052; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 45 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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 · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P Q R S T U J K L M N O P Q R S T V W X Y Z AA AB AC AD AE AF AG AH
>`.pickRestart({
  A: "~@13 d#5@3",
  B: "~@2 e5@2 c5 a2@2 e4 a2@3 ~@2 [c5,e5] ~ [a#4,c#5], [a1,e4]@5 ~@11, ~ [e2,c3]@5 ~@5 [e3,c4]@5, ~ [a4,c5]@3 ~ a4 ~@2 [c5,e5]@5 ~@3", // C A#m A5 C Am C
  C: "~@2 d5@2 b4 b2@2 e4 b2@3 g#3@5, [e2,d4]@5 ~@11, ~ [f4,g#4]@3 ~ g#4 ~@2 [d4,f4,g#4,d5]@8", // E7 Fm Ddim
  D: "f2@3 c3@2 a3@2 a#4 e2@3 b2@2 g#3@3, [d#4,f4,c5]@5 b4 ~@2 [d4,f4,b4]@8", // F7 Bdim
  E: "a2@3 d#3 e3 g3 ~ f3 e3 e2 ~ e2@4 d#5, [c4,e4,a4]@8 [c4,e4,a4]@3 ~@5", // Am
  F: "[a1,c5,e5]@5 e5 c5 [e4,a4] e2@3 ~@2 [c5,e5] ~ c#5, ~@5 e2@3 [c5,e5]@5 ~@3, ~@11 c3@5", // Am A5 C
  G: "[e2,d4,f4,d5]@5 d5 b4 [e4,g#4] b2@3 g#3@5, ~@5 b2@3 [f4,g#4,d5]@8", // Dm E Ddim
  H: "a4 [a#4,b4] [d#4,f4,c5]@6 b4 [d4,f4,b4]@6 ~, [f2,c3,a3] [e2,b2,g#3], ~@9 a#4 ~@6", // Bmaj7 F7 Bdim F E
  I: "a2@4 d2 e2@3 [a1,c4,e4,a4]@3 g4 a4 a#4 ~ a4, [c4,e4,a4] ~", J: "a1@5 e2@3 e2@3 c#3@5, [c#4,e4]@15 ~",
  K: "d2@3 d3@2 c3 ~ b2 a2@8, [a3,c4]@15 ~", L: "e2@5 f#2@3 f#2@3 g#2@5, [g#3,b3]@15 ~",
  M: "a2@3 e2 d2 c2 ~ b1 [a1,e3,a3]@3 a3 b3 c4 ~ b3, [e3,a3]@8 ~@3 c3@5", N: "[f2,d3,f3] [g1,d2,b2,f3,a3]",
  O: "c2@3 [g2,e3]@5 [d2,a2,f3,a3]@8, [g3,b3] ~", P: "[b1,f#2,f3,a3]@8 e2@3 e1@2 e1@3, ~ [d3,f3]",
  Q: "a1@3 e2@2 g2@3 [f#2,e3,e4]@3 ~@5, e3 ~, ~@3 e4@5 ~@8", R: "g1@5 d2@3 d2@3 b2@5, d4@15 ~",
  S: "[c2,c4]@3 ~ b3 [e3,a3]@3 d2@3 b2@2 f3@3, ~@3 g2@3 ~@2 b3@8", T: "[d#2,b2,d#3,f3]@8 e2@3 f#2@2 g#2@3, ~ [d3,f3]",
  U: "a2@3 a1@2 a2 ~ g#2 [g2,e3,e4]@3 g4 a4 a#4 ~ a4, [e3,e4] ~", V: "a2@3 d#2@2 e2@3 [a1,c3,e3]@3 ~@5, [c3,e3] ~",
  W: "g1@5 d2@3 d2@3 b2@5, [d4,f4]@15 ~", X: "c2 g2 ~ a2 b2 c3 ~ d3 c4@3 c4 d4 e4 ~ f4, c4 e3",
  Y: "a1@5 e2@3 e2@3 c#3@5, [c#4,e4] [a3,c#4]", // C#m A
  Z: "d2@3 a2@2 f3 ~ e3 [d3,c4,f4]@3 d4 e4 f2@2 e4, [c4,f4]@8 ~@3 a2@2 f4 ~@2", // Dm7 F5
  AA: "[d2,d4]@4 ~ a2@2 e4 [a2,d4]@3 ~ c4 b3@3, ~@4 f4@3 ~@4 f3@5", // D D5
  AB: "a1@3 a2@2 g#2@3 g2@5 [f2,c4,d#4]@3, a3@8 a3@3 ~@5", AC: "e2@5 b2@3 b2@3 [g#3,d4,f4]@5, [b3,d4] ~",
  AD: "a1@3 e2 g2 c#3 ~ d3 e3 f3 ~ g3@5, [c#4,e4]@5 ~@3", AE: "[d2,d4]@4 f4 [a2,e4]@3 [a2,d4]@3 ~ c4 b3@3, ~@11 f3@5",
  AF: "c2@3 [a2,e3]@5 d2@3 [a2,f3]@5, [g3,c4] [a3,c4]", AG: "b1@3 [f#2,d#3]@5 e2@3 d2@2 b1@3, [a3,c4] [b3,d4]",
  AH: "[a1,e2,c3,c4,e4] ~", // Am
})).s("gm_piano").gain(0.3)

stack(piano)