Strudelify

Sabre Dance

Love Sculpture

KeyD minorTempo172 bpm
0:00/0:00
// Sabre Dance — Love Sculpture
// 172 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 37, 4/4 at bar 60) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(172/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(`<
  ~@4 A B C D E F@3 B C D E G@3 ~ H I J K L M@3 I J K L N@3 ~@12 O P Q R P S T U V W X Y ~ Z@2 AA AB AC@2 AD@2 AE ~@2 AF
  B AG@2 AH AI AJ AF AK ~@2 AG@2 AH AI AJ AL AM AN@2 AO AP AQ AR AS AT AU AV ~@3 AW AX AY
>`.pickRestart({
  A: "~@14 [gb6,gb7] ~", // Gb
  B: "[gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~", // Gb
  C: "[gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [e6,e7] [f6,f7] [gb6,gb7] ~", // Gb E F Gb
  D: "[gb6,gb7] ~ [gb6,gb7] ~ [e6,e7] [f6,f7] [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [e6,e7] [f6,f7] [gb6,gb7] ~", // Gb E F Gb E F Gb
  E: "[gb6,gb7] ~ [gb6,gb7] ~ [e6,e7] [f6,f7] [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7]@2 [f6,f7] ~", // Gb E F Gb F
  F: "[[f6,f7] ~ [e6,e7] ~ [e6,e7] ~ [eb6,eb7] ~ [eb6,eb7] ~ [d6,d7] ~ [d6,d7]@6 ~@6 [gb6,gb7] [f6,f7] [e6,e7] [eb6,eb7] [d6,d7]@7 ~@11 [gb6,gb7] ~]/3", // F E Eb D Gb F E Eb …
  G: "[[f6,f7] ~ [e6,e7] ~ [e6,e7] ~ [eb6,eb7] ~ [eb6,eb7] ~ [d6,d7] ~ [d6,d7]@7 ~@5 [gb6,gb7] [f6,f7] [e6,e7] [eb6,eb7] [d6,d7]@6 ~@14]/3", // F E Eb D Gb F E Eb …
  H: "~@14 [a6,a7] ~", I: "[a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7] ~",
  J: "[a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [g6,g7] [ab6,ab7] [a6,a7] ~", // A G Ab A
  K: "[a6,a7] ~ [a6,a7] ~ [g6,g7] [ab6,ab7] [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [g6,g7] [ab6,ab7] [a6,a7] ~", // A G Ab A G Ab A
  L: "[a6,a7] ~ [a6,a7] ~ [g6,g7] [ab6,ab7] [a6,a7] ~ [a6,a7] ~ [a6,a7] ~ [a6,a7]@2 [ab6,ab7] ~", // A G Ab A Ab
  M: "[[ab6,ab7] ~ [g6,g7] ~ [g6,g7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [f6,f7] ~ [f6,f7]@7 ~@5 [a6,a7] [ab6,ab7] [g6,g7] [gb6,gb7] [f6,f7]@6 ~@12 [a6,a7] ~]/3", // Ab G Gb F A Ab G Gb …
  N: "[[ab6,ab7] ~ [g6,g7] ~ [g6,g7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [f6,f7] ~ [f6,f7]@7 ~@5 [a6,a7] [ab6,ab7] [g6,g7] [gb6,gb7] [f6,f7]@6 ~@14]/3", // Ab G Gb F A Ab G Gb …
  O: "[f5,f6] [e5,e6] [d5,d6]@3 ~ [e5,e6] [f5,f6]", P: "[e5,e6] [g5,g6] [f5,f6]@2 ~ [e5,e6] [d5,d6]@2",
  Q: "e5 d5 ~ e5 [d5,e5,e6] ~ [d5,e5] ~ c6@4 ~@4", R: "[f5,f6]@2 [e5,e6]@2 [d5,d6]@5 ~@3 [e5,e6]@2 [f5,f6]@2",
  S: "~@4 e6 [d6,e6] e6 d6 c5@4 ~@4", T: "[e5,e6] [d5,d6] c6@2 ~@2 [d5,d6] [e5,e6]",
  U: "[d5,d6] [f5,f6] [e5,e6]@2 ~ [d5,d6] c5@2", V: "~ [d5,d6] ~ d5 d6 ~ d6 [c6,d6] ~@8",
  W: "[d5,d6]@2 [c5,c6]@2 b4@3 ~@5 [c5,c6]@2 [d5,d6]@2", X: "[c5,c6]@2 [eb5,eb6]@2 [d5,d6]@3 ~@3 [c5,c6]@2 ~@4",
  Y: "[b4,b5] [g4,g5] [g5,g6]@2 ~@4", Z: "[db6,eb6]@4 d6 ~@3 [db6,eb6]@4 d6 ~@3",
  AA: "g5 ~ a5 ~ b5 ~ c6 ~ d6@3 ~ e6 ~ c6 ~", AB: "d6@3 ~ e6 ~ c6 ~ d6@3 ~ e6 ~ c6 ~", AC: "d6@15 ~",
  AD: "[f6,f7] [eb6,e6,eb7,e7] [d6,d7]@5 ~ [f6,f7] [eb6,e6,eb7,e7] [d6,d7]@5 ~", AE: "[d6,d7]",
  AF: "~@2 [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~", // Gb
  AG: "[f6,f7]@2 [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~ [f6,f7]@2 [gb6,gb7] ~ [gb6,gb7] ~ [gb6,gb7] ~", // F Gb F Gb
  AH: "[gb6,gb7]@2 [f6,f7] ~ [f6,f7] ~ [e6,e7] ~ [e6,e7] ~ [eb6,eb7] ~ [eb6,eb7] ~ [d6,d7] ~", // Gb F E Eb D
  AI: "[d6,d7]@7 ~@5 [gb6,gb7] [f6,f7] [e6,e7] [eb6,eb7]", AJ: "[d6,d7]@3 ~@5", AK: "[gb6,gb7] ~@15",
  AL: "~@2 [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~", // Gbm
  AM: "[gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~", // Gbm
  AN: "[f6,ab6,ab7]@2 [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~ [f6,ab6,ab7]@2 [gb6,a6,a7] ~ [gb6,a6,a7] ~ [gb6,a6,a7] ~", // Fm Gbm Fm Gbm
  AO: "[gb6,a6,a7]@2 [f6,ab6,ab7] ~ [f6,ab6,ab7] ~ [e6,g6,g7] ~ [e6,g6,g7] ~ [eb6,gb6,gb7] ~ [eb6,gb6,gb7] ~ [d6,f6,f7] ~", // Gbm Fm Em Ebm Dm
  AP: "[d6,f6,f7]@5 ~@7 [a6,a7] [ab6,ab7] [g6,g7] [gb6,gb7]", AQ: "[f6,f7]@5 ~@7 [gb6,gb7] [f6,f7] [e6,e7] [eb6,eb7]",
  AR: "[d6,d7]@5 ~@7 [gb6,gb7] [f6,f7] [e6,e7] [eb6,eb7]", // D Gb F E Eb
  AS: "[d6,d7]@5 ~@7 [bb5,eb6,eb7] [b5,e7] [c6,f6,f7] [db6,gb6,gb7], ~@13 e6@2 ~", // D Eb5 E5 F5 Gb5
  AT: "[d6,g6,g7] ~ [db6,gb6,gb7] ~ [c6,f6,f7] ~ [b5,e6,e7] ~ [bb5,eb6,eb7] ~ [a5,d6,d7] ~ [ab5,db6,db7] ~ [g5,c6,c7] ~", // G5 Gb5 F5 E5 Eb5 D5 Db5 C5
  AU: "[db6,db7] ~ [c6,c7] ~ [b5,b6] ~ [bb5,bb6] ~ [a5,a6] ~ [ab5,ab6] ~ [g5,g6] ~ [gb5,gb6] ~", AV: "[g5,g6] ~@15",
  AW: "db4@2 db6 ~ eb4@2 eb6 ~ gb4@2 gb6 ~ ab4@2 ab6 ~, db5 ~@3 eb5 ~@3 gb5 ~@3 ab5 ~@3",
  AX: "bb4@2 bb6 ~ db5@2 db7 ~ eb5@2 eb7 ~ gb5@2 gb7 ~, bb5 ~@3 db6 ~@3 eb6 ~@3 gb6 ~@3", AY: "[g6,g7] ~@15, g5 ~@7",
})).s("gm_flute").gain(0.28).pan(0.4)

// other · flute · soft notes
const flute_soft = note("<~@49 A ~@2 B C D E F G ~@47>".pickRestart({
  A: "e6 d6 [d5,e5,d6,e6] e6 d6 [d5,e5,d6] [d6,e6] [d5,d6,e6] c5@4 ~@4", // Dsus2
  B: "[e5,e6] [d5,e5,d6,e6] [d5,d6] [d5,e5,d6,e6] [d5,e5] e5 [d5,e5,d6] d5 c6@4 ~@4", C: "~@4 c5@5 ~@7", D: "~@3 c6",
  E: "[d5,d6] [c5,c6]!2 [c5,d6] [d5,c6] [c5,d5,c6]!2 c5 [b4,b5]@4 ~@4", F: "~ b5 ~@2", G: "~@12 [b4,b5]@3 ~",
})).s("gm_flute").gain(0.16).pan(0.4)

// other · piano · Db Eb Gb Ab Bb Db Eb Gb …
const piano = note(`<
  ~@102
  [[db4,db5] ~ db6 ~ [eb4,eb5] ~ eb6 ~ [gb4,gb5] ~ gb6 ~ [ab4,ab5] ~ ab6 ~]
  [[bb4,bb5] ~ bb6 ~ [db5,db6] ~ db7 ~ [eb5,eb6] ~ eb7 ~ [gb5,gb6] ~ gb7 ~]
  [[g5,g6,g7] ~@15]
>`).s("gm_piano").gain(0.17).pan(0.8)

// chords · trumpet
const trumpet = note(`<
  ~@10 A@2 ~@5 A@2 ~@7 B C ~@5 B C ~@25 D E F G H I J K L ~@2 M N O P Q R@2 M S ~@2 T@2 Q R U V W X Y Z AA AB R@2 ~@9
>`.pickRestart({
  A: "f5 d5@5 ~@2", B: "ab5 f5@5 ~@2", C: "ab5@2 f5@9 ~@5", D: "[eb4,db5,eb5]@2 [d4,d5] ~ [eb4,db5,eb5]@2 [d4,d5] ~",
  E: "[eb4,db5,eb5]@4 [d4,d5] ~@3 [eb4,db5,eb5]@4 [d4,d5] ~@3", // Eb7 D Eb7 D
  F: "[b3,d4,g4] ~ [c4,e4,a4] ~ [d4,f4,b4] ~ [e4,g4,c5] ~ [f4,a4,d5]@2 ~@2 [g4,b4,e5] ~ [e4,g4,c5] ~", // G Am Bdim C Dm Em C
  G: "[f4,a4,d5]@3 ~ [g4,b4,e5] ~ [e4,g4,c5] ~ [f4,a4,d5]@3 ~ [g4,b4,e5] ~ [e4,g4,c5] ~", H: "[f4,a4,d5]@15 ~",
  I: "[f4,bb4,d5]@7 ~", J: "[bb4,d5,f5]@2 [f4,bb4,d5]@5 ~ [bb4,d5,f5]@2 [f4,bb4,d5]@5 ~",
  K: "[bb4,d5,f5]@2 [f4,bb4,d5]@5 ~ [bb4,d5,f5]@2 [f4,bb4,d5]@4 ~@2", L: "[g4,b4,d5]",
  M: "~@2 [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~", // B5
  N: "[gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~", // B5
  O: "[f4,bb4] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [f4,bb4,f5]@2 [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~, f5 ~@7", // Bb5 B5 Bb5 B5
  P: "[f4,bb4,f5]@2 [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [f4,f5]@2 [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~, ~@8 bb4 ~@7", // Bb5 B5 F B5
  Q: "[gb4,b4,gb5]@2 [f4,bb4,f5] ~ [f4,bb4,f5] ~ [e4,a4,e5] ~ [e4,a4,e5] ~ [eb4,ab4,eb5] ~ [eb4,ab4,eb5] ~ [d4,g4,d5] ~", // B5 Bb5 A5 Ab5 G5
  R: "~@2 f5 d5@5", S: "[gb4,b4,gb5] ~@15",
  T: "[f4,bb4,f5]@2 [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [f4,bb4,f5]@2 [gb4,b4,gb5] ~ [gb4,b4,gb5] ~ [gb4,b4,gb5] ~", // Bb5 B5 Bb5 B5
  U: "~@4 f5@2 d5@9 ~",
  V: "~@2 [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~", // D
  W: "[d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~", // D
  X: "[db5,f5,ab5]@2 [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [db5,f5,ab5]@2 [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~", // Db D Db D
  Y: "[db5,ab5]@2 [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~ [db5,f5,ab5]@2 [d5,gb5,a5] ~ [d5,gb5,a5] ~ [d5,gb5,a5] ~, f5 ~@3", // Db5 D Db D
  Z: "[d5,gb5,a5]@2 [db5,f5,ab5] ~ [db5,f5,ab5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [b4,eb5,gb5] ~ [b4,eb5,gb5] ~ [bb4,d5,f5] ~", // D Db C B Bb
  AA: "[bb4,d5,f5]@3 ~ ab5@2 f5@10", AB: "~@4 ab5@2 f5@9 ~",
})).s("gm_trumpet").gain(0.48).pan(0.4)

// other · xylophone
const xylophone = note(`<
  ~@4 A B C D E F ~ A B C D E F ~@3 G H I J K L ~ G H I J M N ~@26 O@3 ~@2 O@2 ~@2 O ~@2 P Q R@2 S T ~ P ~@3 R@2 S T ~ U
  V W@2 X Y ~@9 Z AA AB
>`.pickRestart({
  A: "~@14 gb6 ~", B: "gb6 ~ gb6 ~ gb6 ~ gb6 ~ gb6 ~ gb6 ~ gb6 ~ gb6 ~",
  C: "gb6 ~ gb6 ~ gb6 ~ gb6 ~ gb6 ~ gb6 ~ e6 f6 gb6 ~", D: "gb6 ~ gb6 ~ e6 f6 gb6 ~ gb6 ~ gb6 ~ e6 f6 gb6 ~",
  E: "gb6 ~ gb6 ~ e6 f6 gb6 ~ gb6 ~ gb6 ~ gb6 ~ f6 ~", F: "f6 ~ e6 ~ e6 ~ eb6 ~ eb6 ~ d6 ~ d6 ~@3", G: "~@14 a6 ~",
  H: "a6 ~ a6 ~ a6 ~ a6 ~ a6 ~ a6 ~ a6 ~ a6 ~", I: "a6 ~ a6 ~ a6 ~ a6 ~ a6 ~ a6 ~ g6 ab6 a6 ~",
  J: "a6 ~ a6 ~ g6 ab6 a6 ~ a6 ~ a6 ~ g6 ab6 a6 ~", K: "a6 ~ a6 ~ g6 ab6 a6 ~ a6 ~ a6 ~ a6 ~ ab6 ~",
  L: "ab6 ~ g6 ~ g6 ~ gb6 ~ gb6 ~ f6 ~ f6 ~@3", M: "a6 ~ a6 ~ g6 ab6 a6 ~ a6 ~ a6 ~ a6!2 ab6!2",
  N: "ab6!2 g6!4 gb6!4 f6!3 ~@3", O: "d6!3 ~ d6!3 ~ d6!3 ~ d6!3 ~", P: "~@2 gb6!3 ~ gb6!3 ~ gb6!3 ~ gb6!2",
  Q: "gb6 ~ gb6!3 ~ gb6!3 ~ gb6!3 ~ gb6!2", R: "f6!2 gb6 ~ gb6 ~ gb6 ~ f6!2 gb6 ~ gb6 ~ gb6 ~",
  S: "gb6!2 f6!4 e6!4 eb6!4 d6!2", T: "d6 ~@15", U: "~@2 a6!3 ~ a6!3 ~ a6!3 ~ a6!2",
  V: "a6 ~ a6!3 ~ a6!3 ~ a6!3 ~ a6!2", W: "ab6!2 a6 ~ a6 ~ a6 ~ ab6!2 a6 ~ a6 ~ a6 ~", X: "a6!2 ab6!4 g6!4 gb6!4 f6!2",
  Y: "f6 ~@15", Z: "~@2 db5 ~@3 eb5 ~@3 gb5 ~@3 ab5 ~", AA: "~@2 bb5 ~@3 db6 ~@3 eb6 ~@3 gb6 ~", AB: "g6 ~@15",
})).s("gm_xylophone").gain(0.4).pan(0.2)

// other · string ensemble 1
const string_ensemble_1 = note("<A B@17 C D@15 E ~@23 F@7 G@3 H ~ H@9 ~@3 H@5 I@7 H@2 ~@4 J ~@2 A ~>".pickRestart({
  A: "~@12 g2 ~@3", B: "~@4 d2 ~@7 g2 ~@3", C: "~@4 d2 ~@7 f1 ~@3", D: "~@4 bb1 ~@7 f1 ~@3", E: "~@4 bb1 ~@11",
  F: "g2 ~@3 d3 ~@3 d2 ~@3 d3 ~@3", G: "f2 ~@3 f1 ~@3 f2 ~@3 bb1 ~@3", H: "g2 ~@7 d2 ~@7",
  I: "f2 ~@3 f1 ~@3 bb1 ~@3 f1 ~@3", J: "g1 ~@7 g2 ~@7",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.7)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note(`<
  ~@100
  [~@4 g2 ~@7 g2 ~@3]
  [g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3]!2
  [g2 ~@3 g2 ~@3 g2 ~@7]
  ~
>`).s("gm_string_ensemble_1").gain(0.25).pan(0.7)

// chords · string ensemble 1
const string_ensemble_1_2 = note(`<
  A B@17 C D@14 E F G H I G H J K@2 L M@2 N ~@12 O@3 P Q O@2 R@2 O ~ B@9 ~@3 B@5 S@7 B T U V W X ~@5
>`.pickRestart({
  A: "~@14 [b4,d5] ~", B: "~@2 [b4,d5] ~@3 [b4,d5] ~@3 [b4,d5] ~@3 [b4,d5] ~",
  C: "~@2 [b4,d5] ~@3 [b4,d5] ~@3 [b4,d5] ~@3 [bb4,d5] ~", D: "~@2 [bb4,d5] ~@3 [bb4,d5] ~@3 [bb4,d5] ~@3 [bb4,d5] ~",
  E: "~@2 [bb4,d5] ~@3 [bb4,d5] ~@3 [bb4,d5] ~@3 [bb3,d4] ~", F: "~@2 [bb3,d4] ~@3 [bb3,d4] ~@3 [bb3,d4] ~@3 [b3,d4] ~",
  G: "~@2 [b3,d4] ~@3 [b3,d4] ~@3 [bb3,d4] ~@3 [bb3,d4] ~", H: "~@2 [bb3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~",
  I: "~@2 [ab3,d4] ~@3 [ab3,d4] ~@3 [ab3,d4] ~@3 [b3,d4] ~", J: "~@2 [ab3,d4] ~@3 [ab3,d4] ~@3 [ab3,d4] ~@3 [c4,e4] ~",
  K: "~@2 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~", L: "~@2 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [a3,gb4] ~",
  M: "~@2 [a3,gb4] ~@3 [a3,gb4] ~@3 [a3,gb4] ~@3 [a3,gb4] ~", N: "~@2 [b3,g4] ~@3 [b3,g4] ~@3 [b3,g4] ~@5",
  O: "d6!3 ~ d6!3 ~ d6!3 ~ d6!3 ~", P: "g5!2 a5!2 b5!2 c6!2 d6!3 ~ e6 ~ c6 ~", Q: "d6!3 ~ e6 ~ c6 ~ d6!3 ~ e6 ~ c6 ~",
  R: "f6 d6@2 ~ f6 d6@2 ~", S: "~@2 [g3,f4] ~@3 [g3,f4] ~@3 [g3,f4] ~@3 [g3,f4] ~", T: "~@2 [b4,d5] ~@3 [b4,d5] ~@9",
  U: "g6 ~ gb6 ~ f6 ~ e6 ~ eb6 ~ d6 ~ db6 ~ c6 ~", V: "db6 ~ c6 ~ b5 ~ bb5 ~ a5 ~ ab5 ~ g5 ~ gb5 ~",
  W: "g5 ~ gb5 ~ f5 ~ e5 ~ eb5 ~ d5 ~ db5 ~ c5 ~", X: "db5 ~ c5 ~ b4 ~ bb4 ~ a4 ~ ab4 ~ g4 ~@3",
})).s("gm_string_ensemble_1").gain(0.35).pan(0.3)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft_2 = note("<~@46 A B C D B C E F@2 G H@2 ~@41 I J ~@4>".pickRestart({
  A: "~@14 [b3,d4] ~", B: "~@2 [b3,d4] ~@3 [b3,d4] ~@3 [bb3,d4] ~@3 [bb3,d4] ~",
  C: "~@2 [bb3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~", D: "~@2 [ab3,d4] ~@3 [ab3,d4] ~@3 [ab3,d4] ~@3 [b3,d4] ~",
  E: "~@2 [ab3,d4] ~@3 [ab3,d4] ~@3 [ab3,d4] ~@3 [c4,e4] ~", F: "~@2 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~",
  G: "~@2 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [a3,gb4] ~", H: "~@2 [a3,gb4] ~@3 [a3,gb4] ~@3 [a3,gb4] ~@3 [a3,gb4] ~",
  I: "~@14 gb4 ~", J: "g4 ~@15",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.3)

// other · string ensemble 1
const string_ensemble_1_3 = note(`<
  A B@17 C D@15 E F@5 G H I J K@2 L ~@12 M@3 N O P@2 Q@2 M ~ B@9 ~@3 B@5 R@7 B S T U V W X ~@4
>`.pickRestart({
  A: "~@14 [g3,g4] ~", B: "~@2 [g3,g4] ~@3 [g3,g4] ~@3 [g3,g4] ~@3 [g3,g4] ~",
  C: "~@2 [g3,g4] ~@3 [g3,g4] ~@3 [g3,g4] ~@3 [g3,f4] ~", D: "~@2 [g3,f4] ~@3 [g3,f4] ~@3 [g3,f4] ~@3 [g3,f4] ~",
  E: "~@2 [g3,f4] ~@3 [g3,f4] ~@3 [g3,f4] ~@3 [d4,f4] ~", F: "~@2 [d4,f4] ~@3 [d4,f4] ~@3 [d4,f4] ~@3 [d4,f4] ~",
  G: "~@2 [d4,f4] ~@3 [d4,f4] ~@3 [d4,f4] ~@3 bb3 ~", H: "~@2 bb3 ~@3 bb3 ~@3 a3 ~@3 a3 ~",
  I: "~@2 a3 ~@3 ab3 ~@3 ab3 ~@3 ab3 ~", J: "~@2 g3 ~@3 g3 ~@3 g3 ~@3 eb4 ~", K: "~@2 eb4 ~@3 eb4 ~@3 eb4 ~@3 eb4 ~",
  L: "~@2 [g3,d4] ~@3 [g3,d4] ~@3 [g3,d4] ~@5", M: "d5!3 ~ d5!3 ~ d5!3 ~ d5!3 ~",
  N: "b4!2 c5!2 d5!2 e5!2 f5!3 ~ g5 ~ e5 ~", O: "f5!3 ~ g5 ~ e5 ~ f5!3 ~ g5 ~ e5 ~", P: "f5!3 ~ f5!3 ~ f5!3 ~ f5!3 ~",
  Q: "f5@2 d5@5 ~ f5@2 d5@5 ~", R: "~@2 [g3,d4] ~@3 [g3,d4] ~@3 [g3,d4] ~@3 [g3,d4] ~",
  S: "~@2 [g3,g4] ~@3 [g3,g4] ~@9", T: "b5 ~ bb5 ~ a5 ~ ab5 ~ g5 ~ gb5 ~ f5 ~ e5 ~",
  U: "f5 ~ e5 ~ eb5 ~ d5 ~ db5 ~ c5 ~ b4 ~ bb4 ~", V: "b4 ~ bb4 ~ a4 ~ ab4 ~ g4 ~ gb4 ~ f4 ~ e4 ~",
  W: "f4 ~ e4 ~ eb4 ~ d4 ~ db4 ~ c4 ~ b3 ~@3", X: "b3 ~@15",
})).s("gm_string_ensemble_1").gain(0.35).pan(0.4)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft_3 = note("<~@46 A B@5 C D E F G@2 ~@41 H ~@5>".pickRestart({
  A: "~@14 [d4,f4] ~", B: "~@2 [d4,f4] ~@3 [d4,f4] ~@3 [d4,f4] ~@3 [d4,f4] ~",
  C: "~@2 [d4,f4] ~@3 [d4,f4] ~@3 [d4,f4] ~@3 bb3 ~", D: "~@2 bb3 ~@3 bb3 ~@3 a3 ~@3 a3 ~",
  E: "~@2 a3 ~@3 ab3 ~@3 ab3 ~@3 ab3 ~", F: "~@2 g3 ~@3 g3 ~@3 g3 ~@3 eb4 ~", G: "~@2 eb4 ~@3 eb4 ~@3 eb4 ~@3 eb4 ~",
  H: "~@14 bb3 ~",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.4)

// chords · string ensemble 1
const string_ensemble_1_4 = note(`<
  A B@17 C D@14 E F G H I G H J K L M N@2 O ~@12 P@3 Q R S@2 T@2 U ~ B@9 ~@3 B@5 V@7 B W X Y Z AA ~@5
>`.pickRestart({
  A: "~@14 [b3,d4] ~", B: "~@2 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~",
  C: "~@2 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [bb3,d4] ~", D: "~@2 [bb3,d4] ~@3 [bb3,d4] ~@3 [bb3,d4] ~@3 [bb3,d4] ~",
  E: "~@2 [bb3,d4] ~@3 [bb3,d4] ~@3 [bb3,d4] ~@3 [g3,d4] ~", F: "~@2 [g3,d4] ~@3 [g3,d4] ~@3 [g3,d4] ~@3 [b3,f4] ~",
  G: "~@2 [b3,f4] ~@3 [b3,f4] ~@3 [bb3,f4] ~@3 [bb3,f4] ~", H: "~@2 [bb3,f4] ~@3 [a3,f4] ~@3 [a3,f4] ~@3 [a3,f4] ~",
  I: "~@2 [ab3,f4] ~@3 [ab3,f4] ~@3 [ab3,f4] ~@3 [b3,f4] ~", J: "~@2 [ab3,f4] ~@3 [ab3,f4] ~@3 [ab3,f4] ~@3 [bb3,e4] ~",
  K: "~@2 [bb3,e4] ~@3 [bb3,e4] ~@3 [a3,e4] ~@3 [a3,e4] ~", L: "~@2 [a3,e4] ~@3 [ab3,e4] ~@3 [ab3,e4] ~@3 [ab3,e4] ~",
  M: "~@2 [g3,e4] ~@3 [g3,e4] ~@3 [g3,e4] ~@3 [a3,gb4] ~", N: "~@2 [a3,gb4] ~@3 [a3,gb4] ~@3 [a3,gb4] ~@3 [a3,gb4] ~",
  O: "~@2 [b3,g4] ~@3 [b3,g4] ~@3 [b3,g4] ~@5", P: "d4!3 ~ d4!3 ~ d4!3 ~ d4!3 ~",
  Q: "g4!2 a4!2 b4!2 c5!2 d5!3 ~ e5 ~ c5 ~", R: "d5!3 ~ e5 ~ c5 ~ d5!3 ~ e5 ~ c5 ~", S: "d5!3 ~ d5!3 ~ d5!3 ~ d5!3 ~",
  T: "d5@2 bb4@5 ~ d5@2 bb4@5 ~", U: "b4!3 ~ b4!3 ~ b4!3 ~ b4!3 ~", V: "~@2 bb3 ~@3 bb3 ~@3 bb3 ~@3 bb3 ~",
  W: "~@2 [b3,d4] ~@3 [b3,d4] ~@9", X: "d5 ~ db5 ~ c5 ~ b4 ~ bb4 ~ a4 ~ ab4 ~ g4 ~",
  Y: "ab4 ~ g4 ~ gb4 ~ f4 ~ e4 ~ eb4 ~ d4 ~ db4 ~", Z: "d4 ~ db4 ~ c4 ~ b3 ~ bb3 ~ a3 ~ ab3 ~ g3 ~",
  AA: "ab3 ~ g3 ~ gb3 ~ f3 ~ e3 ~ eb3 ~ d3 ~ db3 ~",
})).s("gm_string_ensemble_1").gain(0.35).pan(0.6)

// chords · string ensemble 1 · soft notes
// … 217 more lines