Strudelify

Libertango

Astor Piazzolla

KeyA minorTempo144 bpm
0:00/0:00
// Libertango — Astor Piazzolla
// 144 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Flute" named as a pipe, played on flute (its string ensemble 1 patch is not one); ch 2 "B♭ Clarinet" named as a reed, played on clarinet (its acoustic bass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5952531; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(144/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 · flute
const flute = note(`<
  ~@49 A B C D@2 E F G H I J K L M N O P ~ Q ~ R ~ S ~ T ~ U ~ V ~ W ~@2 I J K L M N O X O X Y Z AA AB AA AB I J K L M N
  AC@3 AD
>`.pickRestart({
  A: "~@14 e5 f5", B: "g5@13 ~ a#4 a4", C: "g#4@2 a4@2 e5@2 g5@2 f5 e5 d5@4 e5@2", D: "[f5@25 ~ d5@4 e5@2]/2",
  E: "f5 e5 f5@12 f#4 g4", F: "g#4@2 g4@2 f#4 ~ g4 ~ g5 f5 e5@4 d5 ~", G: "e5@5 f5 e5 d5 e5@5 f5 e5 d5", H: "e5@9 ~@7",
  I: "~@2 e5@2 f5 ~ e5 ~ f5@2 e5 ~ c6@2 a5 ~", J: "~@2 e5@2 f5 ~ e5 ~ c6@2 a5 ~ e5@2 f5 ~",
  K: "~@2 d#5@2 e5 ~ d#5 ~ e5@2 d#5 ~ b5@2 f#5 ~", L: "~@2 d#5@2 e5 ~ d#5 ~ b5@2 f#5 ~ d#5@2 e5 ~",
  M: "~@2 d5@2 e5 ~ d5 ~ e5@2 d5 ~ b5@2 f5 ~", N: "~@2 d5@2 e5 ~ d5 ~ b5@2 f5 ~ d5@2 e5 ~",
  O: "~@2 c5@2 d5 ~ c5 ~ d5@2 c5 ~ a5@2 e5 ~", P: "~@2 a5 ~ g5@2 f5 ~ e5 ~ d5 ~ c5 ~ b4 ~",
  Q: "~@2 e5 ~ f5 ~ e5 ~ c6 ~ a5 ~ e5 ~ f5 ~", R: "~@2 d#5 ~ e5 ~ f5 ~ f#5 ~ f5 ~ e5 ~ d#5 ~",
  S: "~@2 g#5 ~ g5 ~ f5 ~ d5 ~ e5 ~ f5 ~ d5 ~", T: "~@2 a5 ~ c6 ~ d6 ~ e6 ~ d#6 ~ d6 ~ c6 ~",
  U: "~@2 e6 ~ d6 ~ c6 ~ a5 ~ c6 ~ d6 ~ e6 ~", V: "~@2 a5 ~ c6 ~ d6 ~ f6 ~ d#6 ~ d6 [d6,d#6] c6 ~",
  W: "~@2 b5 ~ c6 ~ b5 ~ g#6 ~ d6 ~ b5 ~ c6 ~", X: "~@2 c5@2 d5 ~ c5 ~ a5@2 e5 ~ c5@2 d5 ~",
  Y: "~@2 c5@2 d5 ~ c5 ~ d5@2 c5 ~ a5@2 d#5 ~", Z: "~@2 c5@2 d5 ~ c5 ~ a5@2 d#5 ~ c5@2 d5 ~",
  AA: "~@2 b4@2 c5 ~ b4 ~ c5@2 b4 ~ g#5@2 d5 ~", AB: "~@2 b4@2 c5 ~ b4 ~ g#5@2 d5 ~ b4@2 c5 ~",
  AC: "[~@2 b5@2 e6@2 d6 ~ a5@2 g5@2 c6 ~ a#5@2 f5@2 d#5@2 g#5@2 f#5 ~ c#5@2 b4@2 e5 ~ d5@2 b5@2 a5@2 d6@2 c6 ~ g5@2 f5@2 a#5 ~ g#5@2, e1]/3",
  AD: "~ [a1,e6] ~@2", // A5
})).s("gm_flute").gain(0.3)

// chords · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@10 B@2 C@2 D@2 E F G@2 H@2 I@2 J@2 K@2 L@2 M@2 N@2 O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL O P Q
  R S T U AM AN ~ AO ~ AP AQ AR ~ AR AS AT AU AV AW AV ~ O P Q R S T U V W X Y Z AA AB AC AD O P Q R S T AX AY AZ BA
>`.pickRestart({
  A: "a1@3 ~@3 a1@4 ~@2 a1@2 ~@2", B: "g1@3 ~@3 g1@4 ~@2 g1@2 ~@2", C: "f#1@3 ~@3 f#1@4 ~@2 f#1@2 ~@2",
  D: "f1@3 ~@3 f1@4 ~@2 f1@2 ~@2", E: "e1@3 ~@3 e1@4 ~@2 e1@2 ~@2",
  F: "e1@3 ~@3 e1@4 ~@2 [e1,e4]@2 [f#4,g#4] [a4,b4,c5]", // E F#sus2 Am
  G: "[a1@3 ~@3 a1@4 ~@2 a1@2 ~@2 a1@3 ~@3 e4@2 d5@2 c5@2 [a1,b4]@2 a4@2, e5@11 ~@5, d5 ~@21 a1@4 ~@6]/2", // Asus2
  H: "[a1@3 ~@3 a1@4 ~@2 a1@2 ~@2 a1@3 ~@3 a1@4 ~@2 a1@2 ~@2, b4@7 ~]/2",
  I: "[a1@3 ~@3 a1@4 ~@2 a1@2 ~@2 a1@3 ~@3 e4@2 c5@2 b4@2 [a1,a4]@2 g#4@2, d5@11 a1@2 ~@3]/2", // A
  J: "[a1@3 ~@3 a1@4 ~@2 a1@2 ~@2 a1@3 ~@3 a1@4 ~@2 [a1,a4]@2 b4@2, a4@3 ~]/2", // A
  K: "[g1@3 ~@3 g1@4 ~@2 g1@2 ~@2 g1@3 ~@3 a4@2 c5@2 b4@2 [g1,c5]@2 a4@2, c5@11 g1@2 ~@3]/2", // C5
  L: "[f#1@3 ~@3 f#1@4 ~@2 f#1@2 ~@2 f#1@3 ~@3 f#1@4 ~@2 f#1@2 ~@2, b4@3 ~]/2",
  M: "[b4 a4 ~@4 f1@4 ~@2 f1@2 ~@2 f1@3 ~@3 f1@4 c5@2 [f1,b4]@2 a4@2, f1 b4@12 ~@3]/2", // Fdim
  N: "[e1@3 ~@3 e1@4 ~@2 e1@2 ~@2 e1@3 ~@3 e1@4 ~@2 e1@2 ~@2, b4@11 ~@5]/2",
  O: "a1@2 e4@2 f4 ~ e4 ~ f4@2 e4 ~ [a1,c5]@2 a4 ~, ~@3 a1@2 ~@3", // Am
  P: "a1@2 e4@2 f4 ~ e4 ~ c5@2 a4 ~ [a1,e4]@2 f4 ~, ~@3 a1@2 ~@3", // A5
  Q: "a1@2 d#4@2 e4 ~ d#4 ~ e4@2 d#4 ~ [a1,b4]@2 f#4 ~, ~@3 a1@2 ~@3", // Asus2
  R: "a1@2 d#4@2 e4 ~ d#4 ~ b4@2 f#4 ~ [a1,d#4]@2 e4 ~, ~@3 a1@2 ~@3", // Adim
  S: "a1@2 d4@2 e4 ~ d4 ~ e4@2 d4 ~ [a1,b4]@2 f4 ~, ~@3 a1@2 ~@3", // Asus2
  T: "a1@2 d4@2 e4 ~ d4 ~ b4@2 f4 ~ [a1,d4]@2 e4 ~, ~@3 a1@2 ~@3", // D5
  U: "a1@2 c4@2 d4 ~ c4 ~ d4@2 c4 ~ [a1,a4]@2 e4 ~, ~@3 a1@2 ~@3", // A
  V: "a1@2 c4@2 d4 ~ c4 ~ a4@2 e4 ~ [a1,c4]@2 d4 ~, ~@3 a1@2 ~@3", // Am
  W: "g1@2 c4@2 d4 ~ c4 ~ d4@2 c4 ~ [g1,a4]@2 e4 ~, ~@3 g1@2 ~@3", // Gsus2
  X: "g1@2 c4@2 d4 ~ c4 ~ a4@2 e4 ~ [g1,c4]@2 d4 ~, ~@3 g1@2 ~@3", // C5
  Y: "f#1@2 c4@2 d4 ~ c4 ~ d4@2 c4 ~ [f#1,a4]@2 d#4 ~, ~@3 f#1@2 ~@3", // F#m
  Z: "f#1@2 c4@2 d4 ~ c4 ~ a4@2 d#4 ~ [f#1,c4]@2 d4 ~, ~@3 f#1@2 ~@3", // F#dim
  AA: "f1@2 b3@2 c4 ~ b3 ~ c4@2 b3 ~ [f1,g#4]@2 d4 ~, ~@3 f1@2 ~@3", // Fm
  AB: "f1@2 b3@2 c4 ~ b3 ~ g#4@2 d4 ~ [f1,b3]@2 c4 ~, ~@3 f1@2 ~@3", // Fdim
  AC: "e1@2 b3@2 c4 ~ b3 ~ c4@2 b3 ~ [e1,g#4]@2 d4 ~, ~@3 e1@2 ~@3", // E
  AD: "e1@2 b3@2 c4 ~ b3 ~ g#4@2 d4 ~ [e1,b3]@2 c4 ~, ~@3 e1@2 ~@3", // E5
  AE: "a#1@2 g4@2 a4 ~ g4 ~ d5@2 a#4 ~ [a#1,g4]@2 a4 ~, ~@3 a#1@2 ~@3", // D#
  AF: "a1@2 g4@2 a4 ~ a1@2 c#5 ~ a#4 ~ a4 ~ g4 ~, ~@6 g4 ~@9", AG: "d2@3 ~@3 a#1@4 ~@2 a1@2 ~@2, ~@2 f4@3 f4@3",
  AH: "[d2,e4]@2 ~ a#1 f4@2 a4@2, ~ f4 ~@2", AI: "g#1@2 f4@2 g4 ~ f4 ~ g4@2 f4 ~ [d2,c5]@2 g#4 ~, ~@3 g#1@2 ~@3",
  AJ: "~@2 f4@2 g4 ~ g1@2 b4 ~ [f2,g#4] ~ [e2,g4] ~ [d2,f4] ~, g1@5 ~ f4 ~@9", // Fm Em Dm
  AK: "b4@3 c5@2 ~@3 b4@3 ~@2 d5@3, c2@5 d5@3 ~@3 c5@3 ~@2, ~@3 c2@2 ~ c2 ~",
  AL: "b4!2 b4@2 ~@2 b4!2 b4@2 b1 ~ e2 ~ e1 ~, b1@3 ~@3 e2@3 ~@7", AM: "a1@2 a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~",
  AN: "~@2 e4 ~ f4 ~ e4 ~ f4 ~ e4 ~ c5 ~ a4 ~", AO: "~@2 d#4 ~ e4 ~ d#4 ~ e4 ~ d#4 ~ b4 ~ f#4 ~",
  AP: "~@2 d4 ~ e4 ~ d4 ~ e4 ~ d4 ~ b4 ~ f4 ~", AQ: "~@2 c6 ~@13", AR: "~@2 c4 ~ d4 ~ c4 ~ d4 ~ c4 ~ a4 ~ e4 ~",
  AS: "~@2 a4 ~ d4 ~ c4 ~ a3 ~ c4 ~ d4 ~ a4 ~", AT: "~@2 c4 ~ d4 ~ c4 ~ d4 ~ c4 ~ a4 ~ d#4 ~",
  AU: "~@2 a4 ~ c5 ~ d5 ~ f5 ~ d#5 ~ d5 [d5,d#5] c5 ~", AV: "~@2 b3 ~ c4 ~ b3 ~ c4 ~ b3 ~ g#4 ~ d4 ~",
  AW: "~@2 b3 ~ c4 ~ b3 ~ g#4 ~ d4 ~ b3 ~ c4 ~", AX: "~@2 b4@2 e5@2 d5 ~ a4@2 g4@2 c5 ~ a#4@2",
  AY: "f4@2 d#4@2 g#4@2 f#4 ~ c#4@2 b3@2 e4 ~ d4@2", AZ: "b3@2 a3@2 d4@2 c4 ~ g3@2 f3@2 a#3 ~ g#3@2", BA: "~ a4 ~@2",
})).s("gm_clarinet").gain(0.3)

// chords · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft = note(`<
  ~@66
  [a1@3 ~@3 a1@4 ~@2 a1@2 ~@2]!8
  [g1@3 ~@3 g1@4 ~@2 g1@2 ~@2]!2
  [f#1@3 ~@3 f#1@4 ~@2 f#1@2 ~@2]!2
  [f1@3 ~@3 f1@4 ~@2 f1@2 ~@2]!2
  [e1@3 ~@3 e1@4 ~@2 e1@2 ~@2]
  ~@27
>`).s("gm_clarinet").gain(0.2)

// chords · pizzicato strings
const pizzicato_strings = note("<~@66 A@2 B C D E F G F G H@2 I@2 J ~@27>".pickRestart({
  A: "c5@3 ~@3 c5@4 ~@2 c5@2 ~@2", B: "[a4,b4]@3 ~@3 b4@2 b4@2 ~@2 [a4,b4]@2 ~@2, ~@3 a4@2 ~@3",
  C: "~@2 b5 ~ b5 ~ b5 ~ b5 ~ b5 ~ b5 ~ b5 ~", D: "[a4,b4]@3 ~@3 a4@2 a4@2 ~@2 [a4,b4]@2 ~@2, ~@3 b4@2 ~@3",
  E: "[b4,d5]@3 ~@3 d5@2 d5@2 ~@2 [b4,d5]@2 ~@2, ~@3 b4@2 ~@3", // Bm
  F: "[g4,a4]@3 ~@3 g4@2 g4@2 ~@2 [g4,a4]@2 ~@2, ~@3 a4@2 ~@3", // Gsus2
  G: "[a4,c5]@3 ~@3 c5@2 c5@2 ~@2 [a4,c5]@2 ~@2, ~@3 a4@2 ~@3", // Am
  H: "[f#4,a4]@3 ~@3 a4@2 a4@2 ~@2 [f#4,a4]@2 ~@2, ~@3 f#4@2 ~@3", // F#m
  I: "[f4,a4]@3 ~@3 a4@2 a4@2 ~@2 [f4,a4]@2 ~@2, ~@3 f4@2 ~@3", // F
  J: "[e4,g#4]@3 ~@3 g#4@2 g#4@2 ~@2 [e4,g#4]@2 ~@2, ~@3 e4@2 ~@3", // E
})).s("gm_pizzicato_strings").gain(0.2)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@2 A@2 ~@14 A@2 ~@30 B C D E B F G H A@2 ~@5 I ~@15 J K@2 L@2 M@2 N@2 O@2 P@2 Q@2 L@2 R S T U V W X Y Z AA
>`.pickRestart({
  A: "[c4,e4]/2", B: "d4", C: "c#4", D: "~@2 [c#4,a4]@3 [d4,a4]@3", E: "e4 f4 g#4 a4", F: "b3",
  G: "g4@3 a4@2 b4@3 g4@3 a4@2 b4@3", H: "[e4,a4]!2 [e4,a4]@2 ~@2 [e4,g#4]!2 [e4,g#4]@2 ~@6",
  I: "~@2 [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~ [c5,e5] ~", J: "~@3 e4 f4 e4 c5 b4",
  K: "[e5@11 e4 d5 c5 b4 a4]/2", L: "[b4@7 ~]/2", M: "[d5@11 e4 c5 b4 a4 g#4]/2", N: "[a4@12 ~@2 a4 b4]/2",
  O: "[c5@11 a4 c5 b4 c5 a4]/2", P: "[b4@3 f#4@11 ~@2]/2", Q: "[b4 a4 b4@24 c5@2 b4@2 a4@2]/2",
  R: "~@2 e4@2 f4 ~ e4 ~ f4@2 e4 ~ c5@2 a4 ~", S: "~@2 e4@2 f4 ~ e4 ~ c5@2 a4 ~ e4@2 f4 ~",
  T: "~@2 d#4@2 e4 ~ d#4 ~ e4@2 d#4 ~ b4@2 f#4 ~", U: "~@2 d#4@2 e4 ~ d#4 ~ b4@2 f#4 ~ d#4@2 e4 ~",
  V: "~@2 d4@2 e4 ~ d4 ~ e4@2 d4 ~ b4@2 f4 ~", W: "~@2 d4@2 e4 ~ d4 ~ b4@2 f4 ~ d4@2 e4 ~",
  X: "~@2 b4@2 e5@2 d5 ~ a4@2 g4@2 c5 ~ a#4@2", Y: "f4@2 d#4@2 g#4@2 f#4 ~ c#4@2 b3@2 e4 ~ d4@2",
  Z: "b4@2 a4@2 d5@2 c5 ~ g4@2 f4@2 a#4 ~ g#4@2", AA: "~ [e4,g#4] ~@2",
})).s("gm_string_ensemble_1").gain(0.4)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note(`<
  ~@4 A@2 B@2 C@4 D@2 E@4 ~@2 A@2 B@2 C@4 D@2 E@2 F@2 G@2 A@2 B@2 C@4 D@2 E@4 ~@10 A@2 B@2 H ~@43
>`.pickRestart({
  A: "[b3,f#4]/2", B: "[b3,f4]/2", C: "[c4,e4]/2", D: "[a3,d#4,f#4]/2", E: "[g#3,d4]/2",
  F: "[d4@12 a3 ~ c4 b3, g#3@13 g#3@3]/2", G: "[a3,c4]/2", H: "[c4,e4]",
})).s("gm_string_ensemble_1").gain(0.15)

// other · pizzicato strings
const pizzicato_strings_2 = note("<~@66 A@2 B C D E F A F A B@2 G@3 ~@27>".pickRestart({
  A: "g4@3 ~@3 g4@4 ~@2 g4@2 ~@2", B: "f#4@3 ~@3 f#4@4 ~@2 f#4@2 ~@2",
  C: "[f#4,a4]@3 ~@3 [f#4,a4]@4 ~@2 [f#4,a4]@2 ~@2", D: "[f4,a4]@3 ~@3 a4@2 a4@2 ~@2 [f4,a4]@2 ~@2, ~@3 f4@2 ~@3",
  E: "g#4@3 ~@3 g#4@4 ~@2 g#4@2 ~@2", F: "e4@3 ~@3 e4@4 ~@2 e4@2 ~@2", G: "d4@3 ~@3 d4@4 ~@2 d4@2 ~@2",
})).s("gm_pizzicato_strings").gain(0.2)

// other · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@50 A B C D E F G H I@2 J@2 K@2 I L M N O P Q R S T S T U V W X W ~ I@2 J@2 K@2 I@4 Y@2 Z@4 I@2 J@2 K@2 AA AB AC AD
>`.pickRestart({
  A: "a#3", B: "a3", C: "~@2 [c#4,a4]@3 [d4,a4]@3", D: "e4 f4!2 a4", E: "g3@3 f3", F: "e3 d3",
  G: "b3@3 c4@2 d4@3 b3@3 c4@2 d4@3", H: "e4!2 e4@2 ~@2 e4!2 e4@2 ~@6", I: "e4@3 ~@3 e4@4 ~@2 e4@2 ~@2",
  J: "f#4@3 ~@3 f#4@4 ~@2 f#4@2 ~@2", K: "f4@3 ~@3 f4@4 ~@2 f4@2 ~@2", L: "~@2 a4 ~ g4 ~ f4 ~ e4 ~ d4 ~ c4 ~ b3 ~",
  M: "~@2 e4@2 f4 ~ e4 ~ f4@2 e4 ~ c5@2 a4 ~", N: "~@2 e4@2 f4 ~ e4 ~ c5@2 a4 ~ e4@2 f4 ~",
  O: "~@2 d#4@2 e4 ~ d#4 ~ e4@2 d#4 ~ b4@2 f#4 ~", P: "~@2 d#4@2 e4 ~ d#4 ~ b4@2 f#4 ~ d#4@2 e4 ~",
  Q: "~@2 d4@2 e4 ~ d4 ~ e4@2 d4 ~ b4@2 f4 ~", R: "~@2 d4@2 e4 ~ d4 ~ b4@2 f4 ~ d4@2 e4 ~",
  S: "~@2 c4@2 d4 ~ c4 ~ d4@2 c4 ~ a4@2 e4 ~", T: "~@2 c4@2 d4 ~ c4 ~ a4@2 e4 ~ c4@2 d4 ~",
  U: "~@2 c4@2 d4 ~ c4 ~ d4@2 c4 ~ a4@2 d#4 ~", V: "~@2 c4@2 d4 ~ c4 ~ a4@2 d#4 ~ c4@2 d4 ~",
  W: "~@2 b3@2 c4 ~ b3 ~ c4@2 b3 ~ g#4@2 d4 ~", X: "~@2 b3@2 c4 ~ b3 ~ g#4@2 d4 ~ b3@2 c4 ~",
  Y: "d#4@3 ~@3 d#4@4 ~@2 d#4@2 ~@2", Z: "d4@3 ~@3 d4@4 ~@2 d4@2 ~@2", AA: "~@2 b4@2 e5@2 d5 ~ a4@2 g4@2 c5 ~ a#4@2",
  AB: "f4@2 d#4@2 g#4@2 f#4 ~ c#4@2 b3@2 e4 ~ d4@2", AC: "b3@2 a3@2 d4@2 c4 ~ g3@2 f3@2 a#3 ~ g#3@2", AD: "~ c4 ~@2",
})).s("gm_string_ensemble_1").gain(0.2)

// other · pizzicato strings
const pizzicato_strings_3 = note(`<
  ~@2 A@2 B@2 C@2 A@4 D@2 E@4 A@2 B@2 C@2 A@4 D@2 E@4 A@2 B@2 C@2 A@4 D@2 E@4 ~@58
>`.pickRestart({
  A: "e4@3 ~@3 e4@4 ~@2 e4@2 ~@2", B: "f#4@3 ~@3 f#4@4 ~@2 f#4@2 ~@2", C: "f4@3 ~@3 f4@4 ~@2 f4@2 ~@2",
  D: "d#4@3 ~@3 d#4@4 ~@2 d#4@2 ~@2", E: "d4@3 ~@3 d4@4 ~@2 d4@2 ~@2",
})).s("gm_pizzicato_strings").gain(0.3)

// other · string ensemble 1
const string_ensemble_1_3 = note("<~@50 A B C D E F G H I@7 J ~@16 I@8 K@2 L@2 M@2 N@2 I@6 O@3 P>".pickRestart({
  A: "a#2@3 ~@3 a#2@4 ~@2 a#2@2 ~@2", B: "a2@3 ~@3 a2@3 ~ g2 ~ f2 ~ e2 ~", C: "d3@3 ~@3 a#2@4 ~@2 a2@2 ~@2",
  D: "d2@3 ~@3 a#2@3 ~ a2 ~ f2 ~ e2 ~", E: "g#2@3 ~@3 g#2@4 ~@2 d2@2 ~@2", F: "g2@5 ~ g2@3 ~ f2 ~ e2 ~ d2 ~",
  G: "c3@3 c3@2 ~ c3 ~", H: "b2@3 ~@3 e3@3 ~ b2 ~ e3 ~ e2 ~", I: "a2@3 ~@3 a2@4 ~@2 a2@2 ~@2",
  J: "a2@2 a3 ~ g3 ~ f3 ~ e3 ~ d3 ~ c3 ~ b2 ~", K: "g2@3 ~@3 g2@4 ~@2 g2@2 ~@2", L: "f#2@3 ~@3 f#2@4 ~@2 f#2@2 ~@2",
  M: "f2@3 ~@3 f2@4 ~@2 f2@2 ~@2", N: "e2@3 ~@3 e2@4 ~@2 e2@2 ~@2", O: "e2/3", P: "~ a2 ~@2",
})).s("gm_string_ensemble_1").gain(0.4)

// other · pizzicato strings
const pizzicato_strings_4 = note("<A@10 B@2 C@2 D@2 E@2 A@8 B@2 C@2 D@2 E@2 A@8 B@2 C@2 D@2 E@2 ~@58>".pickRestart({
  A: "a2@3 ~@3 a2@4 ~@2 a2@2 ~@2", B: "g2@3 ~@3 g2@4 ~@2 g2@2 ~@2", C: "f#2@3 ~@3 f#2@4 ~@2 f#2@2 ~@2",
  D: "f2@3 ~@3 f2@4 ~@2 f2@2 ~@2", E: "e2@3 ~@3 e2@4 ~@2 e2@2 ~@2",
})).s("gm_pizzicato_strings").gain(0.3)

// other · pizzicato strings · soft notes
const pizzicato_strings_soft = note(`<
  ~@66
  [a2@3 ~@3 a2@4 ~@2 a2@2 ~@2]!8
  [g2@3 ~@3 g2@4 ~@2 g2@2 ~@2]!2
  [f#2@3 ~@3 f#2@4 ~@2 f#2@2 ~@2]!2
  [f2@3 ~@3 f2@4 ~@2 f2@2 ~@2]!2
  [e2@3 ~@3 e2@4 ~@2 e2@2 ~@2]
  ~@27
>`).s("gm_pizzicato_strings").gain(0.2)

stack(
  flute, clarinet, clarinet_soft, pizzicato_strings, string_ensemble_1, string_ensemble_1_soft, pizzicato_strings_2,
  string_ensemble_1_2, pizzicato_strings_3, string_ensemble_1_3, pizzicato_strings_4, pizzicato_strings_soft
)

More by Astor Piazzolla