Strudelify

Buenos Aires Hora Cero

Marco. A. Duarte

KeyA majorTempo92 bpm
0:00/0:00
// Buenos Aires Hora Cero — Marco. A. Duarte
// 92 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6283758; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 95 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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 · bandoneon · "Bandoneón"
const bandoneon = note("<~@20 A B C@3 ~@19 D E F G H I J K L M N O P Q R S ~@35>".pickRestart({
  A: "~@4 f4 f#4@3 a4@4 c#5@2 ~@2 e5@4 d#5@2 c#5@2 d#5@4 e5@4",
  B: "~@4 f4 f#4@3 a4@4 c#5@2 ~@2 e5@4 d#5@2 e5@2 d#5@2 c#5@2 d#5@4",
  C: "[~@4 f4 f#4@3 a4@4 c#5@2 e5@2 g#5@4 f#5@2 e5@2 f#5@4 g#5@12 f#5@2 g#5@2 f#5@2 e5@2 f#5@2 ~@2 g#5@28 ~@16]/3",
  D: "e4@6 d#4@4 c#4@4 d#4 ~", E: "~@2 c#4@2 e4@2 e4 ~ e4@2 d#4@2 d#4@2 c#4@2", F: "~ e4@3 ~ d#4@3",
  G: "~@2 c#4@2 d#4@2 c#4 ~ d#4@2 e4@4 f#4 ~", H: "g4@6 f#4@4 e4@4 f#4 ~",
  I: "~@2 e4@2 g4@2 g4 ~ g4@2 f#4@2 f#4@2 e4@2", J: "~ g4@3 ~ f#4@3", K: "~@2 e4@2 f#4@2 e4 ~ f#4@2 g4@4 a4 ~",
  L: "~ a#4 d#5!5 a#4 d#5!6 d#5@2", M: "~ a4 d5!5 a4 d5!6 d5@2", N: "~ g4 c5!5 g4 c5!6 c5@2",
  O: "~ b4 f#4 g4 a4 b4 d5 b4 a4 g4 f#4 e4 d4 c#4 c4 b3", P: "~ a4 a#4 d5 f5 a5 g5 f5 d5 a#4 a4 g4 f4 e4 d#4 d4",
  Q: "~ e4 c4 d4 e4 f4 a4 c5 e5 c5 g5 f5 e5 d5 c5 a4", R: "~ d6 c6 a#5 a5 g5 f5 e5 d5 c#5 c5 b4 a#4 a4 g#4 e4",
  S: "a4 ~@3",
})).s("gm_bandoneon").gain(0.3)

// other · bandoneon · "Bandoneón" · soft notes
const bandoneon_soft = note("<~@60 A B C@2 D E F@2 G H I@2 J K L@2 M N M N M N M O@3 P Q P Q P Q P Q R>".pickRestart({
  A: "~ c#4@7", B: "d#4", C: "[e4@3 f#4@13]/2", D: "f#4 e4@7", E: "e4 d#4@7", F: "[~ c#4@15]/2", G: "~ c#3@7",
  H: "e3 d#3@7", I: "[g#3 a3@12 b3@3]/2", J: "g#3@3 a3@3 f#3@2", K: "g#3@3 e3@3 f#3@2", L: "d#3/2",
  M: "~@4 f4 f#4@3 a4@4 c#5@2 ~@2 e5@4 d#5@2 c#5@2 d#5@4 e5@4",
  N: "~@4 f4 f#4@3 a4@4 c#5@2 ~@2 e5@4 d#5@2 e5@2 d#5@2 c#5@2 d#5@4",
  O: "[~@4 f4 f#4@3 a4@4 c#5@2 ~@2 e5@4 d#5@2 e5@2 d#5@2 c#5@2 d#5@60 ~@8]/3",
  P: "~@2 f#3@2 a3@2 c#4 ~ e4@2 d#4 c#4 d#4@2 e4@2", Q: "~@2 f#3@2 a3@2 c#4 ~ e4@2 d#4 e4 d#4 c#4 d#4@2",
  R: "[d#5,a5] ~@7", // D#dim
})).s("gm_bandoneon").gain(0.15)

// other · electric guitar jazz · "Guitarra eléctrica"
const electric_guitar_jazz = note(`<
  ~@4 A B C@2 D E F@2 A E G@2 H I J@2 K L M@3 ~ N O P@2 Q R S@2 N R T@2 U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL
  AM AN AO AP A B C@2 D E F@2 A E G@2 H I J@2 K L K L K L K L AQ AR AS AT AS AT AS AT AS AT AU
>`.pickRestart({
  A: "~ c#4@7", B: "d#4", C: "[e4@3 f#4@13]/2", D: "f#4 e4@7", E: "e4 d#4@7", F: "[~ c#4@15]/2",
  G: "[g#4 a4@12 b4@3]/2", H: "g#4@3 a4@3 f#4@2", I: "g#4@3 e4@3 f#4@2", J: "d#4/2",
  K: "~@2 f#3@2 a3@2 c#4 ~ e4@2 d#4 c#4 d#4@2 e4@2", L: "~@2 f#3@2 a3@2 c#4 ~ e4@2 d#4 e4 d#4 c#4 d#4@2",
  M: "[~@2 a3@2 c#4@2 e4 g#4 c#5@2 b4 a4 b4@2 c#5@6 b4 c#5 b4 a4 b4@2 c#5@14 ~@8]/3", N: "~ c#3@7", O: "d#3",
  P: "[e3@3 f#3@13]/2", Q: "f#3 e3@7", R: "e3 d#3@7", S: "[~ c#3@15]/2", T: "[g#3@2 a3@26 b3!2 a3@2]/2",
  U: "g#3@3 a3@3 f#3@2", V: "g#3@3 e3@3 f#3@2", W: "d#3 e3@7", X: "d#3 e3@2 d#3@5",
  Y: "e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3",
  Z: "e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3@2 ~@8",
  AA: "a3@6 g#3@4 f#3@4 g#3 ~", AB: "~@2 f#3@2 a3@2 a3 ~ a3@2 g#3@2 g#3@2 f#3@2", AC: "~ a3@3 ~ g#3@3",
  AD: "~@2 f#3@2 g#3@2 f#3 ~ g#3@2 a3@4 b3 ~", AE: "c4@6 b3@4 a3@4 b3 ~", AF: "~@2 a3@2 c4@2 c4 ~ c4@2 b3@2 b3@2 a3@2",
  AG: "~ c4@3 ~ b3@3", AH: "~@2 a3@2 b3@2 a3 ~ b3@2 c4@4 d4 ~", AI: "~ g4 d5 c5 a#4 a4 a#4 c5 d5!3 c5 d5!2 d5@2",
  AJ: "~ f4 c5 a#4 a4 g4 a4 a#4 c5!3 a#4 c5!2 c5@2", AK: "~ d#4 a#4 a4 g4 f4 g4 a4 a#4!3 a4 a#4!2 a#4@2",
  AL: "~ b4 f#4 g#4 a4 b4 d5 b4 a4 g#4 f#4 e4 d4 c#4 c4 b3", AM: "~@2 f3@2 f3!6 f3@4 e3@2",
  AN: "~@2 e3@2 e3!6 e3@4 d3@2", AO: "~@2 d3@2 d3!6 d3@4 d3@2", AP: "a2 ~@3", AQ: "[a3,d#4]!32", AR: "[a3,d#4]!24 ~@8",
  AS: "~@2 [a4,d#5] ~@3 [a4,d#5] ~@9", // Adim
  AT: "d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 d#3 e3 ~@8", AU: "[a4,d#5] ~@7",
})).s("gm_electric_guitar_jazz").gain(0.15)

// chords · piano
const piano = note(`<
  ~@19 A B C D@3 E F G H@2 I J K@2 F J L@2 M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH ~@35
>`.pickRestart({
  A: "~@14 d#2 f2",
  B: "~@2 [c#5,f#5]@2 [g#1,g#2,e5,a5]@2 [g#5,c#6] ~ [b5,e6]@2 d#6 c#6 [g#1,g#2,d#6]@2 f#6@2, [f#1,f#2] ~ [a1,a2] ~", // F#5 Amaj7 C#5 E5 G#5 F# A
  C: "~@2 [c#5,f#5]@2 [g#1,g#2,e5,a5]@2 [g#5,c#6] ~ [b5,e6]@2 d#6 e6 d#6 c#6 [a5,d#6]@2, [f#1,f#2]@2 ~@2 [a1,a2]@2 [g#1,g#2] ~", // F#5 Amaj7 C#5 E5 Adim F# A G#
  D: "[~@2 [c#5,f#5]@2 [g#1,g#2,e5,a5]@2 c#6 e6 [c#6,g#6]@2 [b5,f#6] [a5,e6] [g#1,g#2,b5,f#6]@2 ~@2 [f#1,f#2]@4 [b5,f#6] [c#6,g#6] f#6 e6 [b5,f#6] ~@3 [g#1,g#2]@2 ~@2 [f#1,f#2]@4 [g#1,g#2]@2 ~@2 [a1,a2]@4 [g#1,g#2]@2 ~@2, [f#1,f#2]@2 ~@2 [a1,a2]@2 ~ [c#6,g#6]@3 [g#1,g#2] ~ [a1,a2]@2 ~@10, ~@52 [c#6,g#6]@27 ~@17]/3", // F#5 Amaj7 C#5 B5 A5 G#m7 F# B5 …
  E: "[f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~", // F# G# A G#
  F: "~@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~, [f#1,f#2] ~@3, ~@4 [c#3,f#3,a3,c#4]@27 ~", // G# A G# F# F#m
  G: "[f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~, [d#3,g#3,b3,d#4]@15 ~", // F# G# A G# G#m
  H: "[[f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~ [f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~, [e3,a3,c#4,e4]@11 ~ [f#3,b3,d#4,f#4]@49 ~@3]/2", // F# G# A G# F# G# A G# …
  I: "[f#3,b3,d#4,f#4] ~ [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~, [f#1,f#2] ~@3, ~@4 [e3,a3,c#4,e4]@27 ~", // B G# A G# F# A
  J: "[e3,a3,c#4,e4] ~ [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~, [f#1,f#2] ~@3, ~@4 [d#3,g#3,b3,d#4]@27 ~", // A G# A G# F# G#m
  K: "[~@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~ [f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~, [f#1,f#2] ~@7, ~@4 [c#3,f#3,a3,c#4]@57 ~@3]/2", // G# A G# F# G# A G# F# …
  L: "[[g#3,c#4,e4,g#4]@2 ~@2 [g#1,g#2]@2 ~@2 [a1,a2]@4 [g#1,g#2]@2 ~@2 [f#1,f#2]@4 [g#1,g#2]@2 ~@2 [a1,a2]@4 [b3,e4,g#4,b4]!2 [a3,d4,f4,a4]@2, [f#1,f#2]@2 ~@12 [g#1,g#2] ~, ~@4 [a3,d4,f4,a4]@49 ~@11]/2", // C#m G# A G# F# G# A E …
  M: "[f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [f#3,b3,d#4,f#4]@2, [g#3,c#4,e4,g#4]@11 ~ [a3,d4,f#4,a4]@11 ~ [g#1,g#2]@4 ~@4", // F# G# A B C#m D G#
  N: "[f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [f#3,b3,d#4,f#4]@2, [g#3,c#4,e4,g#4]@11 ~ [e3,a3,c#4,e4]@11 ~ [g#1,g#2]@4 ~@4", // F# G# A B C#m A G#
  O: "[d3,g#3,b3,d#4] ~ [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~, [f#1,f#2] ~@3, ~@4 [e3,a3,c#4,e4]@27 ~", // G#m G# A G# F# A
  P: "[d#3,g#3,b3,d#4] ~ [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~, [f#1,f#2] ~@3, ~@4 [e3,a3,c#4,e4]@8 [d#3,g#3,b3,d#4]@19 ~", // G#m G# A G# F# A G#m
  Q: "[b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4], [f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~", // B C#m B C#m B C#m B C#m …
  R: "[b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [g#1,g#2]@4 ~@4, [f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 ~@2", // B C#m B C#m B C#m B C#m …
  S: "[f#1,f#2]@2 [g#1,g#2] ~@3 [g#1,g#2] [g#4,b4,d#5], [a4,c#5,e5]@3 [g#4,b4,d#5]@2 [f#4,a4,c#5]@2 ~, ~@2 [a1,a2] ~", // F# G# G#m A G#m F#m A
  T: "~@2 [f#4,a4,c#5]@2 [g#1,g#2,a4,c#5,e5]@2 [a4,c#5,e5] ~ [a4,c#5,e5]@2 [g#4,b4,d#5]@2 [g#1,g#2,g#4,b4,d#5]@2 [f#4,a4,c#5]@2, [f#1,f#2] ~ [a1,a2] ~", // F#m Amaj7 A G#m F#m F# A
  U: "~@2 [g#1,g#2] ~@3 [g#1,g#2] ~, [f#1,f#2] ~ [a1,a2] ~, ~ [a4,c#5,e5]@3 ~ [g#4,b4,d#5]@3", // G# F# A G#m
  V: "~ [f#4,a4,c#5] [g#1,g#2,g#4,b4,d#5] [f#4,a4,c#5] [g#4,b4,d#5] ~ [g#1,g#2] [b4,d#5,f#5], [f#1,f#2] ~ [a1,a2] ~, ~@5 [a4,c#5,e5]@2 ~", // F#m G#m F#m G#m G# B F# A
  W: "[a1,a2]@4 [b1,b2]@2 ~@6 [b1,b2]@2 [b4,d5,f#5] ~, [c5,e5,g5]@3 [b4,d5,f#5]@2 [a4,c5,e5]@2 ~, ~@2 [c2,c3] ~", // A B Bm C Bm Am C
  X: "~@2 [a4,c5,e5]@2 [c5,e5,g5] ~ [c5,e5,g5]@2 [c5,e5,g5]@2 [b4,d5,f#5]@2 [b1,b2,b4,d5,f#5]@2 [a4,c5,e5]@2, [a1,a2]@2 [b1,b2] ~ [c2,c3]@2 ~@2", // Am C Bm Am A B C
  Y: "~@2 [b1,b2] ~@3 [b1,b2] ~, [a1,a2] ~ [c2,c3] ~, ~ [c5,e5,g5]@3 ~ [b4,d5,f#5]@3", // B A C Bm
  Z: "~@2 [a4,c5,e5]@2 [b1,b2,b4,d5,f#5]@2 [a4,c5,e5] ~ [b4,d5,f#5]@2 ~@2 [b1,b2]@2 [d5,f#5,a5] ~, [a1,a2] ~ [c2,c3] ~, ~@5 [c5,e5,g#5]@2 ~", // Am Bm Am Bm B D A C …
  AA: "b2 ~@3 [a#3,d#4,a#4]@2 ~@6 e3 ~@3 [a3,d4,a4]@2 ~@2 f2@4 g2@4 a2@2 ~@2, ~ c3@11 ~ f3@7 [g3,d4,g4]@12, ~ [d4,a4,d5] ~@2", // D#5 D5 G5 D5
  AB: "a2 ~@3 [a3,d4,a4]@2 ~@6 d3 ~@3 [a3,d4,a4]@2 ~@2 d#2@4 f2@4 g2@2 ~@2, ~ a#2@11 ~ d#3@7 [g3,d4,g4]@12, ~ [d4,a4,d5] ~@2", // D5 G5 D5
  AC: "g#2 ~@3 [g3,c4,g4]@2 ~@6 c#3 ~@3 [g3,c4,g4]@2 ~@2 d2@4 e2@4 f2@2 ~@2, ~ a2@11 ~ d3@7 [f#3,c4,f#4]@12, ~ [c4,g4,c5] ~@2", // C5 F#dim C5
  AD: "f2 ~@3 [f#3,b3,f#4]@2 ~@6 c#3 ~@3 [f#3,b3,f#4]@2 ~@2 d2@4 e2@4 f2@2 ~@2, ~ g#2@11 ~ d3@7 ~@12, ~@2 [b3,f#4,b4]@2 ~ [b3,f#4,b4]@3", // B5
  AE: "~@2 [f3,a#3,f4]@2 [f3,a#3,f4]!6 ~@4 [e3,a#3,e4]@2, g2!2 c2!2, ~@5 [f3,a#3,f4]@2 ~", // A#5 Edim A#5
  AF: "~@2 [e3,a3,e4]@2 [e3,a3,e4]!6 ~@4 [d3,a3,d4]@2, f2!2 a#1!2, ~@5 [e3,a3,e4]@2 ~", // A5 D5 A5
  AG: "~@2 [d3,g3,d4]@2 [d3,g3,d4]!4 [d3,g#3,d4]!2 ~@4 [d3,g#3,d4]@2, e2!2 a#1!2, ~@5 [d3,g#3,d4]@2 ~", // G5 Ddim
  AH: "[a1,g3,c#4,a4] ~@3", // A7
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft = note("<A@18 ~@41 B C A@15 D E D E D E D F@3 G H G H G H G H I>".pickRestart({
  A: "[f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~", B: "~@5 c#2 d#2 f2", C: "f#2@2 [g#1,g#2] ~ [a1,a2]@2 [g#1,g#2] ~",
  D: "~@2 [c#5,f#5]@2 [g#1,g#2,e5,a5]@2 [g#5,c#6] ~ [a5,e6]@2 d#6 c#6 [g#1,g#2,d#6]@2 [b5,e6]@2, [f#1,f#2] ~ [a1,a2] ~", // F#5 Amaj7 C#5 A5 G#5 E5 F# A
  E: "~@2 [c#5,f#5]@2 [g#1,g#2,e5,a5]@2 [g#5,c#6] ~ [a5,e6]@2 d#6 e6 d#6 c#6 [a5,d#6]@2, [f#1,f#2]@2 ~@2 [a1,a2]@2 [g#1,g#2] ~", // F#5 Amaj7 C#5 A5 Adim F# A G#
  F: "[~@2 [c#5,f#5]@2 [g#1,g#2,e5,a5]@2 [g#5,c#6] ~ [a5,e6]@2 d#6 e6 d#6 c#6 ~@2 [f#1,f#2]@4 [g#1,g#2]@2 ~@2 [a1,a2]@4 [g#1,g#2]@2 ~@2 [f#1,f#2]@4 [g#1,g#2]@2 ~@2 [a1,a2]@4 [g#1,g#2]@2 ~@2, [f#1,f#2]@8 ~@8 [a1,a2]@8 [g#1,g#2]@4 [a5,d#6]@57 ~@11]/3", // F#5 Amaj7 C#5 A5 F# G# A G# …
  G: "~@2 [d#5,a5,d#6] ~ [g#1,g#2]@2 [d#5,a5,d#6] ~ [a1,a2]@4 [g#1,g#2]@2 ~@2, [f#1,f#2] ~@3", // D#dim G# D#dim A G# F#
  H: "[a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [a3,d#4] [b3,e4] [g#1,g#2]@4 ~@4, [f#1,f#2]@2 [g#1,g#2] ~ [a1,a2]@2 ~@2", // Adim E5 Adim E5 Adim E5 Adim E5 …
  I: "[f#1,f#2,d#5,a5,d#6]@4 ~@12 [f#1,f#2]@15 ~", // D#dim F#
})).s("gm_piano").gain(0.15)

// bass · contrabass
const bass = note("<A@48 B@4 C D E F ~@3 G A@34 H>".pickRestart({
  A: "f#2@2 g#2 ~ a2@2 g#2 ~", B: "a1 ~ b1 ~ c2 ~ b1 ~", C: "b1 c2@11 e2 f2@7 f1@4 g1@4 a1@2 ~@2",
  D: "a1 a#1@11 d2 d#2@7 d#2@4 f2@4 g2@2 ~@2", E: "g#2 a2@11 d2@8 d2@4 e2@4 f#2@2 ~@2",
  F: "f#2 g2@11 c#2 d2@7 d2@4 e2@4 f#2@2 ~@2", G: "~@10 c#2 ~ d#2 ~ f2 ~", H: "f#2 ~@3 f#2 ~@3",
})).s("gm_contrabass").gain(0.15)

// bass · acoustic bass
const bass_2 = note("<~@56 [g2!2 c2!2] [f2!2 a#1!2] [e2!2 a#1!2] [a1 ~@3] ~@35>").s("gm_acoustic_bass").gain(0.3)

stack(bandoneon, bandoneon_soft, electric_guitar_jazz, piano, piano_soft, bass, bass_2)