Strudelify

adios nonino

Astor Piazzolla

KeyB♭ majorTempo80 bpm
0:00/0:00
// adios nonino — Astor Piazzolla
// 80 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 37, 4/4 at bar 38, 2/4 at bar 43, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 2 "Clarinete" named as a reed, played on clarinet (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1627151; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 86 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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 · acoustic bass · "Flauta"
const acoustic_bass = note(`<
  A@2 B@4 ~@14 C D E F G H I J K L M N O P Q R S T@5 U V W@4 ~@14 X@2 Y Z@3 AA@2 AB AC AD AE@2 AF AG AH@2 AI@7
>`.pickRestart({
  A: "[~@27 a4@4 d5@3 f5@3 ~ ab5@3 a5@3 ~ c6@2 b5@2 bb5@31 ~@5 a4@4 db5@3 e5@3 ~]/2",
  B: "[ab5@4 a5@3 c6@2 b5@2 bb5@31 ~@5 a4@4 d5@3 ~ f5@3 ab5@4 a5@3 c6@2 b5@2 bb5@31 ~@5 a4@4 db5@3 ~ e5@3 ab5@4 a5@3 ~@2 b5@2 bb5@31 ~@34, ~@62 c6 ~@33]/4",
  C: "~@12 d5@11 ~ a5@17 ~ g5@6", D: "g5@11 ~ f5@23 ~ f5@11 ~", E: "f5@11 ~ d5@23 ~ bb4@11 ~", F: "bb4@23 ~ a4@23 ~",
  G: "~@12 eb5@11 ~ bb5@18 a5@6", H: "a5@11 ~ g5@23 ~ g5@11 ~", I: "g5@12 f5@11 ~ f5@12 g5@11 ~",
  J: "a5@17 ~ eb5@3 f5@3 g5@11 ~ gb5@11 ~", K: "f5@17 ~ c6@3 bb5@3", L: "f5@17 ~ d6@3 c6@3", M: "f5@17 ~ g5@3 ab5@3",
  N: "ab5@9 d5@14 ~ g5@23 ~", O: "g5@17 ~ d6@3 c6@3", P: "g5@17 ~ eb6@2 d6@2 c6@2", Q: "g5@17 ~ f6@3 eb6@3",
  R: "eb6@23 ~ d6@23 ~", S: "~ d5 a5 g5!2 d5!2 bb4",
  T: "[bb4@3 a4@3 a4@3 g4@3 f5@17 ~ eb5@3 f5@3 d5@17 ~ c5@3 d5@3 bb4@17 ~ a4@3 bb4@3 g4@34 ~@2]/5",
  U: "gb4@23 ~@20 a4@3 d5@2", V: "~@2 f5@3 ab5@4 a5@3 ~ c6@2 ~ bb5@31 ~, ~@15 b5@2 ~@31",
  W: "[~@5 a4@3 db5@3 ~ e5@3 ~ ab5@3 a5@3 ~ c6@2 b5@2 bb5@31 ~@5 a4@4 d5@3 f5@3 ~ ab5@3 a5@3 ~ c6@2 b5@2 bb5@31 ~@5 a4@4 db5@3 e5@3 ~ ab5@4 a5@3 c6@2 b5@2 bb5@31 ~@18]/4",
  X: "[~@28 d5@11 ~ a5@17 ~ g5@6 g5@11 ~ f5@20]/2", Y: "~@4 f5@11 ~ f5@11 ~ d5@20",
  Z: "[~@4 bb4@11 ~ bb4@23 ~ a4@23 ~@13 eb5@11 ~ bb5@18 a5@6 a5@11 ~ g5@20]/3",
  AA: "[~@4 g5@11 ~ g5@12 f5@11 ~ f5@12 g5@11 ~ a5@17 ~ eb5@3 f5@3 g5@8]/2", AB: "~@4 gb5@11 ~ f5@32",
  AC: "~@2 c6@3 bb5@3 f5@16", AD: "~@2 d6@3 c6@3 f5@16", AE: "[~@4 g5@6 ab5@6 ab5@9 d5@14 ~ g5@23 ~ g5@32]/2",
  AF: "~@2 d6@3 c6@3 g5@16", AG: "~ eb6 d6 c6 g5@8",
  AH: "[~@4 f6@6 eb6@6 eb6@23 ~ d6@23 ~@7 d5@6 a5@6 g5@6 g5@6 d5@2]/2",
  AI: "[~@4 d5@6 bb4@6 bb4@6 a4@6 a4@6 g4@6 f5@34 ~@2 eb5@6 f5@6 d5@34 ~@2 c5@6 d5@6 bb4@34 ~@2 a4@6 bb4@6 g4@68 ~@4 gb4@23 ~ g1@48 ~@8]/7",
})).s("gm_lead_8_bass_lead").gain(0.3)

// other · acoustic bass · "Flauta" · soft notes
const acoustic_bass_soft = note("<~@12 A B C D E A B F ~@8 G H I J K G H L ~@18 M@8 N ~@7 O@8 P ~@7>".pickRestart({
  A: "bb1@3 bb1@3 bb1@2, bb4@23 ~", B: "a1@3 a1@3 a1@2, a4@23 ~", C: "ab1@3 ab1@3 ab1@2, ab4@23 ~",
  D: "g1@3 g1@3 g1@2, g4@23 ~", E: "c2@3 c2@3 c2@2, c5@23 ~", F: "a1@2 a1@2 a1@2 a1 ~, a4@23 ~", G: "bb1@3 bb1@3 bb1@2",
  H: "a1@3 a1@3 a1@2", I: "ab1@3 ab1@3 ab1@2", J: "g1@3 g1@3 g1@2", K: "c2@3 c2@3 c2@2", L: "d3 ~ d3 ~ d3 ~ d2 ~",
  M: "[~@8 bb1@9 bb1@9 bb1@6 a1@9 a1@9 a1@6 ab1@9 ab1@9 ab1@6 g1@9 g1@9 g1@6 c2@9 c2@9 c2@6 bb1@9 bb1@9 bb1@6 a1@9 a1@9 a1@6 a1@6 a1@6 a1@4, ~@8 bb4@23 ~ a4@23 ~ ab4@23 ~ g4@23 ~ c5@23 ~ bb4@23 ~ a4@23 ~ a4@16]/8",
  N: "~@2 a1@3 ~@19",
  O: "[~@8 bb1@9 bb1@9 bb1@6 a1@9 a1@9 a1@6 ab1@9 ab1@9 ab1@6 g1@9 g1@9 g1@6 c2@9 c2@9 c2@6 bb1@9 bb1@9 bb1@6 a1@9 a1@9 a1@6 d3@3 ~@3 d3@3 ~@3 d3@3 ~]/8",
  P: "~@2 d2@3 ~@19",
})).s("gm_lead_8_bass_lead").gain(0.2)

// other · clarinet · "Clarinete"
const clarinet = note(`<
  A@2 B@4 ~ C@3 D@2 E F G H I J K L M N O L ~@4 P@4 Q@4 R S@5 T@2 U@4 ~ V W@2 X@2 Y@7 Z@6 ~@3 AA@8 AB@7 ~
>`.pickRestart({
  A: "[~@27 d4@4 g4@3 bb4@4 db5@3 d5@4 f5@2 e5@2 eb5@33 ~@3 d4@4 gb4@3 a4@4]/2",
  B: "[db5@4 d5@3 f5@2 e5@2 eb5@33 ~@3 d4@4 g4@4 bb4@3 db5@4 d5@3 f5@2 e5@2 eb5@33 ~@3 d4@4 gb4@4 a4@3 db5@4 d5@4 ~ e5@2 eb5@33 ~@32, ~@62 f5 ~@33]/4",
  C: "[~@11 eb4@4 f4@3 g4@7 f4@7 ~ eb4@3 d4@22 ~@11 d4@4 eb4@3 f4@7 ~ eb4@7 d4@4 db4@22 ~@27]/3",
  D: "[~@9 a4@7 bb4@7 a4@7 ~ g4@7 a4@29 g4@14 gb4@15]/2", E: "f4@6 c5 bb4", F: "f4@6 d5 c5", G: "f4@6 g4 ab4",
  H: "ab4 g4", I: "g4@6 d5 c5", J: "g4@9 eb5 d5 c5", K: "g4@6 a4 bb4", L: "bb4 a4", M: "~@2 a4@2 e5@3 d5",
  N: "d5 c5@2 c5", O: "c5 bb4@2 f4", P: "f4/4", Q: "g4/4", R: "~ g4 d5 c5!2 g4!2 eb4",
  S: "[eb4 d4!2 c4 f5@6 eb5 f5 d5@6 c5 d5 bb4@6 a4 bb4 g4@12]/5",
  T: "[gb4@24 ~@19 d4@3 g4@4 bb4@3 db5@4 d5@4 f5@2 ~ eb5@32, ~@63 e5@2 ~@31]/2",
  U: "[~@5 d4@3 gb4@4 a4@4 db5@3 d5@4 f5@2 e5@2 eb5@33 ~@3 d4@4 g4@3 bb4@4 db5@3 d5@4 f5@2 e5@2 eb5@33 ~@3 d4@4 gb4@3 a4@4 db5@4 d5@3 f5@2 e5@2 eb5@33 ~@16]/4",
  V: "~@27 eb4@3 f4@4 g4@7 f4@7", W: "[eb4@4 d4@22 ~@11 d4@3 eb4@4 f4@7 eb4@7 ~ d4@3 db4@22 ~@12]/2",
  X: "[~@24 a4@7 ~ bb4@7 a4@7 g4@7 a4@29 ~ g4@13]/2",
  Y: "[~ gb4@15 f4@36 c5@6 bb4@6 f4@36 d5@6 c5@6 f4@36 g4@6 ab4@6 ab4@24 g4@24 g4@36 d5@6 c5@6 g4@36 eb5@4 d5@4 c5@4 g4@32]/7",
  Z: "[~@2 a4@3 bb4@3 bb4@12 a4@12 ~@6 a4@6 e5@9 d5@3 d5@6 c5@12 c5@6 c5@6 bb4@12 f4@6 bb4@12 a4@12 ~@16]/6",
  AA: "[~ f4@12 g4@11]/8",
  AB: "[~@11 g4@3 d5@3 c5@3 c5@3 g4@3 g4@3 eb4@3 eb4@3 d4@3 d4@3 c4@3 f5@18 eb5@3 f5@3 d5@18 c5@3 d5@3 bb4@18 a4@3 bb4@3 g4@36 gb4@12 ~@4]/7",
})).s("gm_clarinet").gain(0.4)

// other · violin
const violin = note("<A B@3 C@2 D ~@35 E@2 F G H@3 ~@37>".pickRestart({
  A: "~@23 d4@4 d4@21",
  B: "[~ d4@4 ~@10 d4@4 ~@4 c4@4 ~@3 bb3@3 a3@4 a3@22 a3@4 ~@10 eb4@4 ~@4 d4@4 ~@3 c4@4 d4@3 d4@22 d4@4 ~@11 d4@4 ~@3 c4@4 ~]/3",
  C: "[~@2 bb3@4 a3@3 a3@22 a3@4 ~@11 eb4@4 ~@3 d4@4 ~@3 c4@4 ~@4 d4@3 d4@7 ~ db4@3 db4@11 ~@3]/2",
  D: "~ c4@3 c4@7 ~ b3@7 ~@29", E: "[~@39 d4@4 d4@21 d4@4 ~@11 d4@4 ~@3 c4@4 ~@3 bb3@3]/2",
  F: "~ a3@4 a3@22 a3@4 ~@10 eb4@4 ~@3", G: "d4@4 ~@4 c4@3 d4@4 d4@22 d4@4 ~@7",
  H: "[~@3 d4@4 ~@4 c4@4 ~@3 bb3@3 a3@4 a3@22 a3@4 ~@10 eb4@4 ~@4 d4@4 ~@3 c4@4 ~@3 d4@4 d4@7 db4@4 db4@11 ~@3 c4@4 c4@7 b3@7 ~@14]/3",
})).s("gm_violin").gain(0.3)

// other · violin
const violin_2 = note(`<
  ~@10 A@2 ~@9 B C ~@5 D E@2 F G H I J K L@3 M N O ~@9 P@3 ~@8 Q R S ~@4 T@8 U@5 V W ~
>`.pickRestart({
  A: "[~@9 a3@29 a3@29 a3@29]/2", B: "g4 f4 c5 e5 f5 g5 e5 c5 bb4 g4@3",
  C: "f4@6 bb4@2 a4@2 d5@2 f5@2 d5@2 c5@2 bb4@3 g4@3", D: "d5", E: "c5", F: "c5 b4", G: "eb5",
  H: "eb5 f5 eb5 d5 eb5@12", I: "eb5 d5 c5 eb5@9", J: "~@2 [d4,c5]@2 ~@2 [d4,c5]@2 ~@2 [d4,c5]@2 ~@2 d5 ~",
  K: "~ g5 d6 c6!2 g5!2 eb5", L: "[eb5 d5!2 c5 [g3,db4]@6 [g3,eb4]@2 eb4@6 d4@2 a3@4]/3",
  M: "c4@24 d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~",
  N: "c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~",
  O: "c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~@25", P: "[~@24 a3@29 a3@29 ~ a3@29 ~@32]/3",
  Q: "~@4 g4 f4 c5 e5 f5 g5 e5 c5", R: "bb4 g4@3 f4@3 bb4 a4 d5 f5 d5", S: "c5@2 bb4@3 g4@3 ~@16",
  T: "[~@16 d5@48 c5@48 c5@48 c5@24 b4@24 eb5@48 eb5@3 f5@3 eb5@3 d5@3 eb5@36 eb5@4 d5@4 c5@4 eb5@36 ~@6 [d4,c5]@6 ~@6 [d4,c5]@6 ~@6 [d4,c5]@2]/8", // D7
  U: "[~@10 d5@3 ~@9 g5@6 d6@6 c6@6 c6@6 g5@6 g5@6 eb5@6 eb5@6 d5@6 d5@6 c5@6 [g3,db4]@36 [g3,eb4]@12 eb4@36 d4@12 a3@24 c4@24 d4!2 ~ d4!2 ~ d4!2]/5", // Gdim Cm
  V: "~ d4!2 ~ d4!2 ~ d4!2 ~ d4!3 ~ d4 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!3 ~ c4 ~ d4!2 ~ d4!2 ~ d4!2",
  W: "~ d4!2 ~ d4!2 ~ d4!2 ~ d4!3 ~ d4 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!3 ~ c4 ~@9",
})).s("gm_violin").gain(0.3)

// other · violin · soft notes
const violin_soft = note("<~@12 A@4 B@4 C ~@2 D C E F G ~@26 H@8 I@2 ~ J@6 ~@15>".pickRestart({
  A: "f4/4", B: "g4/4", C: "a4 a4@7", D: "a4", E: "g4", F: "e4", G: "eb4", H: "[~ f4@12 g4@11]/8",
  I: "[~@8 a4@3 a4@21 ~@16]/2", J: "[~@8 a4@24 a4@3 a4@21 g4@24 e4@24 eb4@24 ~@16]/6",
})).s("gm_violin").gain(0.2)

// other · cello · "Violoncello"
const cello = note(`<
  A B@4 C@7 ~@7 D ~@3 E F ~@3 G H I J K G H L M N@3 O@4 P@2 Q@4 R@5 ~@7 S ~@3 T ~@3 U@8 V@8
>`.pickRestart({
  A: "~@23 g2@4 g2@21",
  B: "[~ g2@4 ~ g2@2 ab2@2 a2@2 bb2@7 a2@7 g2@7 eb3@4 eb3@22 eb3@4 ~ a2@2 bb2@2 b2@2 c3@7 bb2@7 a2@7 ~ g2@3 g2@22 g2@4 ~@3 ab2@2 a2@2 bb2@7 a2@7 ~ g2@7 eb3@3 eb3@22 eb3@4 ~@2 a2@2 ~ b2@2 c3@6, ~@123 g2@2 ~@58 bb2@2 ~@7]/4",
  C: "[~ bb2@7 ~ a2@7 bb2@7 bb2@7 ~ a2@7 a2@7 ab2@7 ab2@7 ~ g2@7 g2@7 c3@2 ~@2 c3@22 f2@25 f2@2 g2@2 a2@2 ~ bb2@2 ~@2 bb2@22 eb2@29 g2@2 ab2@2 a2@58 c3@29 c3@29 c3@29, ~@131 f2@2 ~@203]/7",
  D: "~@14 d3 eb3", E: "~@14 bb2 b2", F: "c3 ~@7", G: "bb2!8", H: "a2!8", I: "ab2!8",
  J: "g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2 ab2 a2 b2", K: "c3!8", L: "d3!3 d2", M: "g2 f2",
  N: "[e2@2 a2@3 c3 f2@3 bb2 g2!2]/3",
  O: "[gb2@12 gb2@12 g2@6 d3@6 bb3@6 d3@12 bb2@6 d3@6 g3@6 a3@6 d3@6 g2@6 a2@12 d3@6 gb3@6 a3@6 ~@15 g2@4 g2@21 g2@4 ~@2 g2@2 ~ a2@2 bb2@7 ~ a2@7 g2@6, ~@84 ab2 ~@11]/4",
  P: "[~ eb3@4 eb3@22 eb3@4 ~ a2@2 bb2@2 ~ c3@7 ~ bb2@7 a2@7 g2@4 g2@22 g2@4 ~ g2@2 ab2@2 a2@2, ~@18 b2 ~@29]/2",
  Q: "[bb2@7 a2@7 g2@7 eb3@4 eb3@22 eb3@4 ~ a2@2 bb2@2 b2@2 c3@7 bb2@7 a2@7 ~ bb2@7 bb2@7 a2@7 a2@7 ~ ab2@7 ab2@7 g2@7 ~ g2@7 c3@2 ~ c3@22 f2@25 ~ f2@2 g2]/4",
  R: "[a2@2 f2@2 bb2@2 ~@2 bb2@21 eb2@29 ~@2 ab2@2 a2@58 c3@29 c3@29 ~ c3@29 ~@32, ~@59 g2@2 ~@179]/5",
  S: "~@10 d3@3 eb3@3 ~@32", T: "~@10 bb2@3 b2@3 c3@6 ~@26",
  U: "[~@16 bb2@6 bb2@6 bb2@6 bb2@6 bb2@6 bb2@6 bb2@6 bb2@6 a2@6 a2@6 a2@6 a2@6 a2@6 a2@6 a2@6 a2@6 ab2@6 ab2@6 ab2@6 ab2@6 ab2@6 ab2@6 ab2@6 ab2@6 g2@6 g2@6 g2@6 g2@6 g2@6 g2@6 g2@3 ab2@3 a2@3 b2@3 c3@6 c3@6 c3@6 c3@6 c3@6 c3@6 c3@6 c3@6 bb2@6 bb2@6 bb2@6 bb2@6 bb2@6 bb2@6 bb2@6 bb2@6 a2@6 a2@6 a2@6 a2@6 a2@6 a2@6 a2@6 a2@6 d3@12 d3@12 d3@8]/8",
  V: "[~@2 d2@6 g2@12 f2@12 e2@12 a2@18 c3@6 f2@18 bb2@6 g2@6 g2@6 gb2@6 gb2@6 g2@3 d3@3 bb3@3 d3@6 bb2@3 d3@3 g3@3 a3@3 d3@3 g2@3 a2@6 d3@3 gb3@3 a3@3 g2@24 ~@4]/8",
})).s("gm_cello").gain(0.4)

// other · cello · "Violoncello" · soft notes
const cello_soft = note("<~@12 A B C D E A B F G H I J K L M N ~@26 O@8 P@8 Q ~@15>".pickRestart({
  A: "bb2!4", B: "a2!4", C: "ab2!4", D: "g2!4", E: "c3!4", F: "a2@2 a2@2 a2@2 a2 ~", G: "f3 f3@7", H: "e3", I: "d3",
  J: "db3@7 ~", K: "~ c3@7", L: "b2", M: "bb2", N: "a2@6 eb2 f2 g2@4 gb2@4",
  O: "[~@4 bb2@3 bb2@3 bb2@3 bb2@3 a2@3 a2@3 a2@3 a2@3 ab2@3 ab2@3 ab2@3 ab2@3 g2@3 g2@3 g2@3 g2@3 c3@3 c3@3 c3@3 c3@3 bb2@3 bb2@3 bb2@3 bb2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@2]/8",
  P: "[~@4 a2@6 ~@6 f3@6 f3@42 e3@48 d3@48 db3@42 ~@12 c3@42 b2@48 bb2@48 a2@18 eb2@3 f2@3 g2@8]/8", Q: "~ gb2@3 ~@8",
})).s("gm_cello").gain(0.2)

// bass · contrabass
const bass = note("<A B@4 C@7 ~@7 D ~@3 E F ~@11 G H@3 I@4 J@2 K@4 L@5 ~@7 M ~@3 N ~@11 O@7 ~>".pickRestart({
  A: "~@23 g1@4 g1@21",
  B: "[~ g1@4 ~ g1@2 ab1@2 a1@2 bb1@7 a1@7 g1@7 gb1@4 gb1@22 gb1@4 ~ a1@2 bb1@2 b1@2 c2@7 bb1@7 a1@7 ~ g1@3 g1@22 g1@4 ~@3 ab1@2 a1@2 bb1@7 a1@7 ~ g1@7 gb1@3 gb1@22 gb1@4 ~@2 a1@2 ~ b1@2 c2@6, ~@123 g1@2 ~@58 bb1@2 ~@7]/4",
  C: "[~ bb1@7 ~ a1@7 bb1@7 bb1@7 ~ a1@7 a1@7 ab1@7 ab1@7 ~ g1@7 g1@7 c3@2 ~@2 c3@22 f2@25 f2@2 g2@2 a2@2 ~ bb2@2 ~@2 bb2@22 eb2@29 g2@2 ab2@2 a2@58 c3@29 c3@29 c3@29, ~@131 f2@2 ~@203]/7",
  D: "~@14 d2 eb2", E: "~@14 bb1 b1", F: "c2 ~@7", G: "g1 f1", H: "[e1@2 a1@3 c2 f1@3 bb1 g1!2]/3",
  I: "[gb1@12 gb1@12 g1@6 d2@6 bb2@6 d2@12 bb1@6 d2@6 g2@6 a2@6 d2@6 g1@6 a1@12 d2@6 gb2@6 a2@6 ~@15 g1@4 g1@21 g1@4 ~@2 g1@2 ~ a1@2 bb1@7 ~ a1@7 g1@6, ~@84 ab1 ~@11]/4",
  J: "[~ gb1@4 gb1@22 gb1@4 ~ a1@2 bb1@2 ~ c2@7 ~ bb1@7 a1@7 g1@4 g1@22 g1@4 ~ g1@2 ab1@2 a1@2, ~@18 b1 ~@29]/2",
  K: "[bb1@7 a1@7 g1@7 gb1@4 gb1@22 gb1@4 ~ a1@2 bb1@2 b1@2 c2@7 bb1@7 a1@7 ~ bb1@7 bb1@7 a1@7 a1@7 ~ ab1@7 ab1@7 g1@7 ~ g1@7 c3@2 ~ c3@22 f2@25 ~ f2@2 g2]/4",
  L: "[a2@2 f2@2 bb2@2 ~@2 bb2@21 eb2@29 ~@2 ab2@2 a2@58 c3@29 c3@29 ~ c3@29 ~@32, ~@59 g2@2 ~@179]/5",
  M: "~@10 d2@3 eb2@3 ~@32", N: "~@10 bb1@3 b1@3 c2@6 ~@26",
  O: "[~@8 g1@12 f1@12 e1@12 a1@18 c2@6 f1@18 bb1@6 g1@6 g1@6 gb1@6 gb1@6 g1@3 d2@3 bb2@3 d2@6 bb1@3 d2@3 g2@3 a2@3 d2@3 g1@3 a1@6 d2@3 gb2@3 a2@3 ~@4]/7",
})).s("gm_contrabass").gain(0.4)

// bass · contrabass · soft notes
const bass_soft = note("<~@20 A B C D E F G H ~@34 I@7 J@2 ~@15>".pickRestart({
  A: "f2 f2@7", B: "e2", C: "d2", D: "db2@7 ~", E: "~ c2@7", F: "b1", G: "d2@3 bb1", H: "a1",
  I: "[~@8 f2@3 f2@21 e2@24 d2@24 db2@21 ~@6 c2@21 b1@24 d2@16]/7", J: "[~ bb1@3 a1@12 ~@8]/2",
})).s("gm_contrabass").gain(0.2)

// drums · bongos
const bongos = s("bongo:4").struct("<~@6 A B C D ~@38 E F G H ~@34>".pickRestart({
  A: "~@26 x ~@10 x ~@10", B: "x ~@6 x ~@10 x ~@10 x ~@6 x ~@10 x", C: "~@10 x ~@6 x ~@10 x ~@10 x ~@7 x",
  D: "~@9 x ~@10 x ~@7 x ~@19", E: "~@7 x", F: "~@5 x ~@10 x ~@6 x ~@10 x ~@10 x ~@2",
  G: "~@4 x ~@10 x ~@10 x ~@6 x ~@10 x ~@3", H: "~@7 x ~@6 x ~@10 x ~@10 x ~@6 x ~@4",
})).gain(0.78)

// drums · guiro
const guiro = s("guiro:0").struct("<~@6 [~@19 x ~ x ~ x!2 ~@23] ~@41 [~@35 x!2 ~ x ~ x ~@7] ~@37>").gain(6.29)

stack(
  acoustic_bass, acoustic_bass_soft, clarinet, violin, violin_2, violin_soft, cello, cello_soft, bass, bass_soft,
  bongos, guiro
)

More by Astor Piazzolla