Strudelify

Anitra's Dance

Edvard Grieg

KeyA minorTempo160 bpm
0:00/0:00
// Anitra's Dance — Edvard Grieg
// 160 bpm, 3/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 184 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/3)

// 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.

// chords · string ensemble 2 · "Violin I"
const string_ensemble_2 = note("<~@44 A B C@2 ~@4 D E F@2 ~@54 G@4 ~@4 H@4 ~@62>".pickRestart({
  A: "[d5,f5]@8 [c5,e5]@2 ~ [c5,e5]@2 [b4,d5]@2 ~", B: "[b4,d5]@8 [c5,e5]@2 ~ [c5,e5]@2 [d5,f5]@2 ~",
  C: "[f5@8 e5@3 ~@5, d5@11 ~@5]/2", D: "[g5,a#5]@8 [f5,a5]@2 ~ [f5,a5]@2 [e5,g5]@2 ~",
  E: "[e5,g5]@8 [f5,a5]@2 ~ [f5,a5]@2 [g5,a#5]@2 ~", F: "[a#5@8 a5@3 ~@5, g5@11 ~@5]/2",
  G: "[~@10 [d5,f5]@8 [c5,e5]@2 [c5,e5]@3 [b4,d5]@2 ~ [b4,d5]@8 [c5,e5]@2 [c5,e5]@3 [d5,f5]@2 ~ f5@16 e5@6, ~@21 d5@11]/4", // Dm C Bm C Dm
  H: "[~@10 [g5,a#5]@8 [f5,a5]@2 [f5,a5]@3 [e5,g5]@2 ~ [e5,g5]@8 [f5,a5]@2 [f5,a5]@3 [g5,a#5]@2 ~ a#5@16 a5@6, ~@21 g5@11]/4", // Gm F Em F Gm
})).s("gm_string_ensemble_2").gain(0.13).pan(0.2)

// chords · string ensemble 2 · "Violin I" · soft notes
const string_ensemble_2_soft = note("<A@7 ~@171 B@6>".pickRestart({
  A: "[~@7 [g#5,e6]@94 ~@11]/7", B: "[~@3 [c5,a5]@92 ~]/6",
})).s("gm_string_ensemble_2").gain(0.06).pan(0.2)

// other · string ensemble 1 · "Violin I"
const string_ensemble_1 = note(`<
  ~@11 A B C D E F G H I J K L M N ~@2 O B C D E F G H I J K L M N ~@7 P Q R ~@5 S T U ~@3 V W X Y Z ~ V AA AB AC Z ~ AD
  AE AF ~ AG AH AI ~ AJ AK AL ~ AM AN AO@2 AP AQ@8 AR@4 AS AT AU AV ~@8 AW AX@2 ~@5 AY AZ@2 ~@3 BA BB@4 ~ BA BC@4 ~ BD
  BE@2 ~ BF BG@2 ~ BH@3 ~ BI@2 BJ BK@2 BL@3 BM@3 BN@6 BO BP BQ BR ~@10
>`.pickRestart({
  A: "~@11 e4@5", B: "a4 b4 a4 g#4 ~ a4 ~@2 b4 ~@2 c5 ~ d5 ~@2", C: "e5@3 a5@2 e5@4 ~@2 d5 ~ d5@3, ~@6 e5 ~",
  D: "c5@3 a5@2 c5@4 ~@2 b4 ~ b4@2 ~, ~@6 c5 ~", E: "a4@11 ~@5", F: "a4@3 c5@2 a4@4 ~@2 g4 ~ g4@3, ~@6 a4 ~",
  G: "f#4@3 c5@2 f#4@10 ~", H: "f4@3 c5@2 f4@4 ~@2 e4 f4 e4@3", I: "d#4@3 b4@2 d#4@10 ~",
  J: "b4 ~@2 a#4 ~ f#4 ~@2 b4 ~@2 a4 ~ f4 ~@2", K: "b4 ~@2 g#4 ~ e4 ~@2 b4 ~@2 g4 ~ d#4 ~@2",
  L: "b4 ~@2 f#4 ~ d4 ~@2 b4 ~@2 f4 ~ c#4 ~@2", M: "b4 ~@2 e4 ~ c4 ~@2 b4 ~@2 d#4 ~ b3 ~@2", N: "e4 f#4 e4 ~@13",
  O: "~@11 e4@4 ~", P: "~@13 f5@3", Q: "d5@2 ~ c5 ~ b4 ~@10", R: "~@3 d5@2 b4@2 ~ a4 ~@2 g#4 ~@4", S: "~@13 a#5@3",
  T: "g5@2 ~ f5@2 e5 ~@10", U: "~@3 g5@2 e5@2 ~ d5 ~@2 c#5 ~@4", V: "~@11 a4@5",
  W: "d5 [d5,e5] ~ c#5 ~ d5 ~@2 e5 ~@2 f#5 ~ g5 ~@2", X: "a5@3 d6@2 a5@4 ~@2 g5 ~ g5@3, ~@6 a5 ~",
  Y: "f#5@3 d6@2 f#5@4 ~@2 e5 ~ e5@2 ~, ~@6 f#5 ~", Z: "d5@11 ~@5", AA: "d5 e5 d5 c#5 ~ d5 ~@2 e5 ~@2 f5 ~ g5 ~@2",
  AB: "a5@3 d6@2 a5@4 ~@2 g5 [g5,a5]@3 ~", AC: "f5@3 d6@2 f5@4 ~@3 f5 e5@2 ~, ~@11 e5@2 ~@3", AD: "~@13 c5@2 ~",
  AE: "f5 g5 f5 e5 ~ f5 ~@2 g5 ~@2 a5 ~ a#5 ~@2", AF: "c6@3 f6@2 c6@10 ~", AG: "~@13 e5@2 ~",
  AH: "a5 b5 a5 g#5 ~ a5 ~@2 b5 ~@2 c6 ~ d6 ~@2", AI: "e6@3 a6@2 e6@10 ~", AJ: "~@13 b4@2 ~",
  AK: "f#5 g5 f#5 f5@2 f#5@2 ~ g5@2 ~ a5@2 b5@2 ~", AL: "c6@3 c5@2 f#5@10 ~", AM: "~@13 e4@2 ~",
  AN: "b4 [b4,c5] ~ a#4@2 b4@2 ~ c5@2 ~ d5@2 e5@2 ~", AO: "[f5@3 f4@3 b4@13 ~@13]/2",
  AP: "~@2 [e4,e5]@7 ~ [a4,a5] [a4,b4,a5,b5] [g#4,g#5] ~@2 [a4,a5]", // E A Asus2 G# A
  AQ: "[~@2 [b4,b5] ~ [c5,c6] ~@2 [d5,d6] ~@2 [e5,e6]@2 [a5,a6]@3 [e5,e6]@5 [d5,d6] ~ [d5,d6]@2 ~@2 [c5,c6]@2 [e5,e6]@3 [c5,c6]@5 [b4,b5]@2 ~ [b4,b5]@3 [a4,a5]@11 ~@5 a5@2 c6@3 a5@5 g5 ~ g5@3 ~ f#5@2 c6@3 f#5@10 ~ f5@2 c6@3 f5@5 e5 f5 e5@3 ~ d#5@2 b5@3 d#5@10 ~ d5@2 f5@3 d5, ~@21 [e5,e6]@2 ~@15 [c5,c6]@2 ~@29 a5@2 ~@57]/8", // B C D E A E D C …
  AR: "[~@4 c5 ~ c5@3 ~ b4@2 f5@3 b4@10 ~ a#4@2 f5@3 a#4@5 a4 ~ a4@3 ~ g#4@2 e5@3 g#4@10 ~ e5 ~ d#5 ~@2 b4, ~@5 d5@2 ~@30 a#4@2 ~@25]/4",
  AS: "~@2 e5 ~ d5 ~@2 a#4 ~@2 e5 ~ c#5 ~@2 a4", AT: "~@2 e5 ~ c5 ~@2 g#4 ~@2 e5 ~ b4 ~@2 g4",
  AU: "~@2 e5 ~ a#4 ~@2 f#4 ~@2 e5 ~ a4 ~@2 f4", AV: "~@2 e5 ~ g#4 ~@2 e4 ~@2 [a4,b4] a4@4 ~",
  AW: "~@7 f5@3 d5@2 c5 ~@2 b4", AX: "[~@12 d5@3 b4@2 ~ a4 ~ g#4 ~@11]/2", AY: "~@7 a#5@3 g5@2 f5@2 ~ e5",
  AZ: "[~@12 g5@3 e5@2 ~ d5 ~ c#5 ~@11]/2", BA: "~@4 a4@5 ~ d5 [d5,e5] c#5 ~@2 d5",
  BB: "[~@2 e5 ~ f#5 ~@2 g5 ~@2 a5@2 d6@3 a5@4 ~ g5 ~ g5@3 ~ f#5@2 d6@3 f#5@4 ~ e5 ~ e5@2 ~@2 d5@11 ~@11, ~@21 a5@2 ~@14 f#5@2 ~@25]/4",
  BC: "[~@2 e5 ~ f5 ~@2 g5 ~@2 a5@2 d6@3 a5@4 ~ g5 ~ g5@3 ~ f5@2 d6@3 f5@4 ~@2 f5 e5@2 ~@2 d5@11 ~@11, ~@21 a5@2 ~@13 e5@2 ~@26]/4",
  BD: "~@7 c5@2 ~ f5 [f5,g5] e5 ~@2 f5", BE: "[~@2 g5 ~ a5 ~@2 a#5 ~@2 c6@2 f6@3 c6@10 ~@7]/2",
  BF: "~@7 e5@2 ~ a5 [a5,b5] g#5 ~@2 a5", BG: "[~@2 b5 ~ c6 ~@2 d6 ~@2 e6@2 a6@3 e6@10 ~@7]/2",
  BH: "[~@7 b4@2 ~ f#5 [f#5,g5] f5@2 ~ f#5@2 ~ g5@2 a5@2 ~ b5@2 ~ c6@2 c5@3 f#5@10 ~@7]/3", // Gmaj7
  BI: "[~@7 e4@2 ~ b4 [b4,c5] a#4@2 ~ b4@2 ~ c5@2 d5@2 ~ e5@2 ~ f5@3 f4@3]/2", BJ: "b4@13 ~@3",
  BK: "[~@11 [e4,e5]@7 ~ [a4,a5] [b4,b5] [a4,a5] [g#4,g#5] ~@2 [a4,a5] ~ [b4,b5] ~@2 [c5,c6] ~]/2", // E A B A G# A B C
  BL: "[~ [d5,d6] ~ [e5,e6]@3 [a5,a6]@3 [e5,e6]@5 [d5,d6] ~ [d5,d6]@2 ~ [c5,c6]@3 [e5,e6]@3 [c5,c6]@5 ~ [c5,c6]@2 [b4,b5]@2 [a4,a5]@11 ~@2, ~@15 [e5,e6]@2 ~@13 [b4,b5]@2 ~@16]/3", // D E A E D C E C …
  BM: "[~@3 a5@3 c6@3 a5@5 g5 ~ g5@3 f#5@3 c6@3 f#5@10 f5@3 c6@3 f5@5 e5 f5, ~@15 a5@2 ~@31]/3",
  BN: "[e5@3 d#5@3 b5@3 d#5@10 d5@3 f5@3 d5@5 c5 ~ c5@3 b4@3 f5@3 b4@10 a#4@3 f5@3 a#4@5 a4 ~ a4@3 g#4@3 e5@3 g#4@10 e5 ~@2 d#5 ~@2 b4 ~ e5 ~@2 d5 ~, ~@31 d5@2 ~@30 a#4@2 ~@31]/6",
  BO: "~ a#4 ~ e5 ~@2 c#5 ~@2 a4 ~ e5 ~@2 c5 ~", BP: "~ g#4 ~ e5 ~@2 b4 ~@2 g4 ~ e5 ~@2 a#4 ~",
  BQ: "~ f#4 ~ e5 ~@2 a4 ~@2 f4 ~ e5 ~@2 g#4 ~", BR: "~ e4 ~ a4 b4 a4@4 ~@7",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.2)

// other · pizzicato strings · "Violin I"
const pizzicato_strings = note("<~@26 A B ~@14 A B ~@64 C@2 ~@65 D@2 ~@7>".pickRestart({
  A: "~@3 f#4@2 g4@2 ~ a4@2 ~ b4@4 ~", B: "e5 ~@3", C: "[~@12 b4@2 ~ c5@2 ~ d5@2 e5@5 ~ a5@5 ~]/2",
  D: "[~@6 b4@2 ~ c5@2 d5@2 ~ e5@5 a5@5 ~@8]/2",
})).s("gm_pizzicato_strings").gain(0.24).pan(0.2)

// other · pizzicato strings · "Violin I" · soft notes
const pizzicato_strings_soft = note("<~@26 A ~@15 A ~@65 B ~@66 C ~@8>".pickRestart({
  A: "e4 ~@7", B: "~@5 a4 ~@2", C: "~@3 a4@2 ~@11",
})).s("gm_pizzicato_strings").gain(0.16).pan(0.2)

// other · string ensemble 2 · "Violin II"
const string_ensemble_2_2 = note("<~@44 A@2 B@2 ~@4 C@2 D@2 ~@54 E@4 ~@4 F@4 ~@62>".pickRestart({
  A: "g#4@15 ~", B: "[g#4@11 ~@5]/2", C: "c#5@15 ~", D: "[c#5@11 ~@5]/2", E: "[~@10 g#4@15 ~ g#4@15 ~ g#4@22]/4",
  F: "[~@10 c#5@15 ~ c#5@15 ~ c#5@22]/4",
})).s("gm_string_ensemble_2").gain(0.28).pan(0.3)

// other · string ensemble 2 · "Violin II" · soft notes
const string_ensemble_2_soft_2 = note("<A@7 ~@171 B@6>".pickRestart({
  A: "[~@7 [e4,b4,e5,b5]@94 ~@11]/7", B: "[~@3 [a3,e4,a4,e5]@92 ~]/6",
})).s("gm_string_ensemble_2").gain(0.16).pan(0.3)

// chords · pizzicato strings · "Violin II"
const pizzicato_strings_2 = note(`<
  ~@8 A B C D A B C E F G F H I@4 J K ~@2 A B C E F G F H I@4 J K ~@6 L M N O ~@4 P Q R S T U V W T U V X Y Z AA AB AC@2
  AD AE@2 AF AG AH@3 AI@4 AJ@2 AK@2 AL@8 AM@5 AN@3 AO@3 ~@5 AP@2 AQ AR@2 ~@3 AS@2 AT AU AV@8 AW AX@2 AY@8 AZ@8 BA@2 BB
  BC@8 BD@8 BE@2 BF BG ~@8
>`.pickRestart({
  A: "~@5 [a3,c4]@5 ~ [b3,d4]@5", B: "~@5 [c4,e4]@5 ~ [d4,f4]@5", C: "~@5 [c4,e4]@5 ~ [b3,d4]@5",
  D: "~@5 [a3,c4]@5 ~ [g#3,b3]@5", E: "~@5 [a3,c4]@5 ~ [c4,e4]@5", F: "~@5 [c4,f4]@5 ~ [c4,e4]@5",
  G: "~@5 [c4,d#4]@5 ~ [c4,d#4]@5", H: "~@5 [b3,d#4]@5 ~ [b3,d#4]@5", I: "[b3,b4]@5 ~@6 [b4,b5]@5",
  J: "e4@2 ~ d#4@2 e4@2 ~ f#4@2 ~ g4@2 a4@2 ~", K: "b4@2 ~ e5@2 b4@2 ~ a4@2 ~ g4@2 f#4@2 ~",
  L: "~@3 f5@2 d5@2 ~ c5@2 ~ b4@2 ~@3", M: "~@8 d5@2 ~ b4@2 a4@2 ~", N: "g#4@2 ~@11 b4@2 ~", O: "g#4@2 ~ f4@2 e4@2 ~@9",
  P: "~@3 a#5@2 g5@2 ~ f5@2 ~ e5@2 ~@3", Q: "~@8 g5@2 ~ e5@2 d5@2 ~", R: "c#5@2 ~@11 e5@2 ~",
  S: "c#5@2 ~ a#4@2 a4@2 ~@9", T: "~@5 [d4,f#4]@5 ~ [e4,g4]@5", U: "~@5 [f#4,a4]@5 ~ [g4,b4]@5",
  V: "~@5 [f#4,a4]@5 ~ [e4,g4]@5", W: "~@5 [d4,f#4]@5 ~ [c#4,e4]@5", X: "~@5 d4@5 ~ g4@5", Y: "~@11 g4@5",
  Z: "~@5 a4@5 ~ [e4,g4]@5", AA: "~@11 e4@5", AB: "~@5 [d4,f4]@5 ~ g4@5", AC: "~@5 a4@5 ~@6", AD: "~@5 f4@5 ~@6",
  AE: "~@5 c4@5 ~ c4@5", AF: "~@5 f4@5 ~ c4@5", AG: "~@5 a4@5 ~ [e4,a4]@5", AH: "~@5 [e4,a4]@5 ~ [e4,a4]@5",
  AI: "~@5 [f#4,a4]@5 ~ [f#4,a4]@5", AJ: "~@5 [b3,d4]@5 ~ [b3,d4]@5", AK: "[~@3 [b3,d4]@3 [b3,d4]@3 ~@4 [b3,d4]@3]/2",
  AL: "[~@2 [b3,d4]@8 ~@5 [a3,c4]@5 [b3,d4]@5 ~@6 [c4,e4]@5 [d4,f4]@5 ~@6 [c4,e4]@5 [b3,d4]@5 ~@6 [a3,c4]@5 [a3,c4]@5 ~@6 [c4,f4]@5 [c4,e4]@5 ~@6 [c4,d#4]@5 [c4,d#4]@5 ~@6 [c4,f4]@5 [c4,e4]@5 ~@6 [b3,d#4]]/8", // Bm Am Bm C Dm C Bm Am …
  AM: "[~@4 [b3,d#4]@5 ~@6 [f4,a#4]@5 [f4,a4]@5 ~@6 [f4,g#4]@5 [f4,g#4]@5 ~@6 [f4,a#4]@5 [f4,a4]@5 ~@6 [e4,g#4]@5 [e4,g#4]@5 ~ [e4,e5]@5 ~]/5", // B A#5 F Fm A#5 F E
  AN: "~@4 [e5,e6]@5 ~ [e4,e5]@5 ~", // E
  AO: "[~@4 [e5,e6]@5 ~ a4@2 g#4@2 ~ a4@2 ~ b4@2 c5@2 ~ d5@2 ~ e5@2 a5@2 ~ e5@2 ~ d5@2 c5@2 ~ b4@2 ~@7]/3", // E
  AP: "[~@12 f5@2 ~ d5@2 ~ c5@2 b4@2 ~@10]/2", AQ: "~@2 d5@2 b4@2 ~ a4@2 ~ g#4@2 ~@4",
  AR: "[~@7 b4@2 ~ g#4@2 f4@2 ~ e4@2 ~@15]/2", AS: "[~@12 a#5@2 ~ g5@2 ~ f5@2 e5@2 ~@10]/2",
  AT: "~@2 g5@2 e5@2 ~ d5@2 ~ c#5@2 ~@4", AU: "~@7 e5@2 ~ c#5@2 a#4@2 ~ a4",
  AV: "[~@15 [d4,f#4]@5 [e4,g4]@5 ~@6 [f#4,a4]@5 [g4,b4]@5 ~@6 [f#4,a4]@5 [e4,g4]@5 ~@6 [d4,f#4]@5 [c#4,e4]@5 ~@6 [d4,f#4]@5 [e4,g4]@5 ~@6 [f#4,a4]@5 [g4,b4]@5 ~@6 [f#4,a4]@5 [e4,g4]@5 ~@6 d4]/8", // D Em F#m G F#m Em D C#m …
  AW: "~@4 g4@5 ~@7", AX: "[~@4 g4@5 ~@6 a4@5 [e4,g4]@5 ~@7]/2",
  AY: "[~@4 e4@5 ~@6 [d4,f4]@5 g4@5 ~@6 a4@5 ~@11 a4@5 ~@11 f4@5 ~@11 c4@5 c4@5 ~@6 c4@5 c4@5 ~@6 f4@5 c4@5 ~@6 a4]/8", // Dm
  AZ: "[~@4 [e4,a4]@5 ~@6 [e4,a4]@5 [e4,a4]@5 ~@6 [e4,a4]@5 [e4,a4]@5 ~@6 [e4,a4]@5 [e4,a4]@5 ~@6 [f#4,a4]@5 [f#4,a4]@5 ~@6 [f#4,a4]@5 [f#4,a4]@5 ~@6 [f#4,a4]@5 [f#4,a4]@5 ~@6 [f#4,a4]@5 [f#4,a4]@5 ~@6 [b3,d4]]/8", // A5 F#m Bm
  BA: "[~@4 [b3,d4]@5 ~@6 [b3,d4]@5 [b3,d4]@5 ~@7]/2", BB: "[b3,d4]@3 [b3,d4]@3 ~@2",
  BC: "[~@4 [b3,d4]@7 [b3,d4]@8 ~@6 [a3,c4]@5 [b3,d4]@5 ~@6 [c4,e4]@5 [d4,f4]@5 ~@6 [c4,e4]@5 [b3,d4]@5 ~@6 [a3,c4]@5 [a3,c4]@5 ~@6 [c4,f4]@5 [c4,e4]@5 ~@6 [c4,d#4]@5 [c4,d#4]@5 ~@6 [c4,f4]@5 [c4,e4]@2]/8", // Bm Am Bm C Dm C Bm Am …
  BD: "[~@9 [b3,d#4]@5 [b3,d#4]@5 ~@6 [f4,a#4]@5 [f4,a4]@5 ~@6 [f4,g#4]@5 [f4,g#4]@5 ~@6 [f4,a#4]@5 [f4,a4]@5 ~@6 [e4,g#4]@5 [e4,g#4]@5 [e4,e5]@5 ~@6 [e5,e6]@5 [e4,e5]@5 ~@6 [e5,e6]@5 [e4,e5]@5 ~@6 [e5,e6]@2]/8", // B A#5 F Fm A#5 F E
  BE: "[~@3 [e4,e5]@5 ~@6 [e5,e6]@5 a4@2 ~ g#4@2 ~ a4@2 b4@2 ~ c5@2]/2", BF: "~ d5@2 e5@2 ~ a5@2 ~ e5@2 d5@2 ~ c5@2",
  BG: "~ b4@2 ~@13",
})).s("gm_pizzicato_strings").gain(0.16).pan(0.3)

// chords · pizzicato strings · "Violin II" · soft notes
const pizzicato_strings_soft_2 = note("<~@67 A B C D E F G H I@2 J K ~@54 L@5 M@8 ~@38>".pickRestart({
  A: "~@5 f4@5 ~ e4@5", B: "~@5 [f4,a4]@5 ~ a#4@5", C: "~@5 f4@5 ~@6", D: "~@5 [d4,f4]@5 ~ c#4@5", E: "~@11 e4@5",
  F: "~@5 f4@5 ~ [g4,a#4]@5", G: "~@5 f4@5 ~ [e4,g4]@5", H: "~@5 c4@5 ~ [c4,f4]@5", I: "~@5 f4@5 ~ f4@5",
  J: "~@5 c4@5 ~ f4@5", K: "~@5 e4@5 ~@6",
  L: "[~@15 f4@5 e4@5 ~@6 [f4,a4]@5 a#4@5 ~@6 f4@5 ~@11 [d4,f4]@5 c#4@5 ~@7]/5", // F Dm
  M: "[~@4 e4@5 ~@6 f4@5 [g4,a#4]@5 ~@6 f4@5 [e4,g4]@5 ~@6 c4@5 [c4,f4]@5 ~@6 f4@5 f4@5 ~@6 f4@5 f4@5 ~@6 c4@5 f4@5 ~@6 e4@5 ~@12]/8", // Gm Em F5
})).s("gm_pizzicato_strings").gain(0.12).pan(0.3)

// other · pizzicato strings · "Viola I"
const pizzicato_strings_3 = note(`<
  ~@8 A@7 B C D C E F G H I J K L M A@3 B C D C E F G H I J K L M N@4 O P Q R S@4 T U V W X@7 ~@3 X ~ Y Z AA ~@15 AB@8
  AC@5 AD AE AF AG@4 AH@6 AI AJ@7 AK AL AM@8 ~@2 AN@2 AO@2 AP@2 ~@15 AQ@8 AR@4 AS@5 AT AU@2 ~@7
>`.pickRestart({
  A: "~@5 e3@5 ~ e3@5", B: "~@5 e3@5 ~ a3@5", C: "~@5 a3@5 ~ g3@5", D: "~@5 f#3@5 ~ f#3@5", E: "~@5 f#3@5 ~ f#3 ~@4",
  F: "b3@5 ~@6 [f4,a4]@5", G: "[e4,g#4]@5 ~@6 [d#4,g4]@5", H: "[d4,f#4]@5 ~@6 [c#4,f4]@5",
  I: "[c4,e4]@5 ~@6 [b3,d#4]@5", J: "e3@2 ~ d#3@2 e3@2 ~ f#3@2 ~ g3@2 a3@2 ~",
  K: "b3@2 ~ e4@2 b3@2 ~ a3@2 ~ g3@2 f#3@2 ~", L: "e3@2 ~ f#3@2 g3@2 ~ a3@2 ~ b3@5", M: "e4@5 ~@11",
  N: "~@5 [g#3,d4]@5 ~ [d4,e4]@5", O: "~@3 f4@2 d4@2 ~ c4@2 ~ b3@2 ~@3", P: "~@8 d4@2 ~ b3@2 a3@2 ~",
  Q: "g#3@2 ~@11 b3@2 ~", R: "g#3@2 ~ f3@2 e3@2 ~@9", S: "~@5 [c#4,g4]@5 ~ [g4,a4]@5",
  T: "~@3 a#4@2 g4@2 ~ f4@2 ~ e4@2 ~@3", U: "~@8 g4@2 ~ e4@2 d4@2 ~", V: "c#4@2 ~@11 e4@2 ~",
  W: "c#4@2 ~ a#3@2 a3@2 ~@9", X: "~@5 a3@5 ~ a3@5", Y: "~@5 a3@5 ~@6", Z: "~@11 a3@5", AA: "~@5 a3@2 ~@4 a3@2 ~@3",
  AB: "[~@15 e3@5 e3@5 ~@6 e3@5 e3@5 ~@6 e3@5 e3@5 ~@6 e3@5 e3@5 ~@6 a3@5 g3@5 ~@6 f#3@5 f#3@5 ~@6 a3@5 g3@5 ~@6 f#3]/8",
  AC: "[~@4 f#3@5 ~@6 d4@5 c4@5 ~@6 b3@5 b3@5 ~@6 d4@5 c4@5 ~@6 b3@5 b3@5 ~ e4@5 ~]/5",
  AD: "~@4 [a#4,d5]@5 ~ [a4,c#5]@5 ~", AE: "~@4 [g#4,c5]@5 ~ [g4,b4]@5 ~", AF: "~@4 [f#4,a#4]@5 ~ [f4,a4]@5 ~",
  AG: "[~@4 [e4,g#4]@5 ~ a3@2 g#3@2 ~ a3@2 ~ b3@2 c4@2 ~ d4@2 ~ e4@2 a4@2 ~ e4@2 ~ d4@2 c4@2 ~ b3@2 ~ a3@2 b3@2 ~ c4@2 ~ d4@2 e4@5 ~ a4@5 ~]/4", // E
  AH: "[~@15 [g#3,d4]@5 [d4,e4]@5 ~@6 [g#3,d4]@5 [d4,e4]@5 ~@6 [g#3,d4]@5 [d4,e4]@5 ~@6 [g#3,d4]@5 [d4,e4]@5 ~@3 f4@2 ~ d4@2 ~ c4@2 b3@2 ~@10]/6", // G#dim Dsus2 G#dim Dsus2 G#dim Dsus2 G#dim Dsus2
  AI: "~@2 d4@2 b3@2 ~ a3@2 ~ g#3@2 ~@4",
  AJ: "[~@7 b3@2 ~ g#3@2 f3@2 ~ e3@2 ~@14 [c#4,g4]@5 [g4,a4]@5 ~@6 [c#4,g4]@5 [g4,a4]@5 ~@6 [c#4,g4]@5 [g4,a4]@5 ~@6 [c#4,g4]@5 [g4,a4]@5 ~@3 a#4@2 ~ g4@2 ~ f4@2 e4@2 ~@10]/7", // C#dim Gsus2 C#dim Gsus2 C#dim Gsus2 C#dim Gsus2
  AK: "~@2 g4@2 e4@2 ~ d4@2 ~ c#4@2 ~@4", AL: "~@7 e4@2 ~ c#4@2 a#3@2 ~ a3",
  AM: "[~@15 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 a3@5 a3@5 ~@7]/8",
  AN: "[~@15 a3@5 a3@5 ~@7]/2", AO: "[~@15 a3@5 ~@12]/2", AP: "[~@4 a3@5 ~@6 a3@2 ~@3 a3@2 ~@10]/2",
  AQ: "[~@9 e3@5 e3@5 ~@6 e3@5 e3@5 ~@6 e3@5 e3@5 ~@6 e3@5 e3@5 ~@6 a3@5 g3@5 ~@6 f#3@5 f#3@5 ~@6 a3@5 g3@5 ~@6 f#3@5 f#3@2]/8",
  AR: "[~@9 d4@5 c4@5 ~@6 b3@5 b3@5 ~@6 d4@5 c4@5 ~@6 b3@5 b3@2]/4",
  AS: "[~@4 e4@5 ~@5 [a#4,d5]@5 ~ [a4,c#5]@5 ~@5 [g#4,c5]@5 ~ [g4,b4]@5 ~@5 [f#4,a#4]@5 ~ [f4,a4]@5 ~@5 [e4,g#4]@5 ~ a3@2 g#3@2 ~ a3@2 ~ b3@2 c4@2]/5", // A# A G# G F# F E
  AT: "~ d4@2 ~ e4@2 a4@2 ~ e4@2 ~ d4@2 c4@2", AU: "[~ b3@2 a3@2 ~ b3@2 ~ c4@2 ~ d4@2 e4@5 ~ a4@5 ~@7]/2",
})).s("gm_pizzicato_strings").gain(0.16).pan(0.7)

// other · pizzicato strings · "Viola I" · soft notes
const pizzicato_strings_soft_3 = note("<~@67 A@3 ~ A B C ~@59 D@4 E@2 F@2 ~@43>".pickRestart({
  A: "~@5 a3@5 ~ a3@5", B: "~@11 a3@5", C: "~@5 a3@5 ~@6", D: "[~@15 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 a3@5 a3@5 ~@7]/4",
  E: "[~@15 a3@5 a3@5 ~@7]/2", F: "[~@4 a3@5 ~@6 a3@5 ~@12]/2",
})).s("gm_pizzicato_strings").gain(0.12).pan(0.7)

// other · string ensemble 1 · "Viola I"
const string_ensemble_1_2 = note(`<
  ~@75 A B C ~ D E F ~ G H I ~ J K L@2 ~@51 M N@2 ~ O@3 ~ P@3 ~ Q R S@2 ~@26
>`.pickRestart({
  A: "~@13 c4@2 ~", B: "~@3 e4@2 ~@3 g4@2 ~@6", C: "~@3 f5@2 c5@10 ~", D: "~@13 e4@2 ~",
  E: "a4 b4 a4 g#4@2 a4@2 ~ b4@2 ~ c5@2 d5@2 ~", F: "e5@3 a5@2 e5@10 ~", G: "~@13 b3@2 ~",
  H: "f#4 g4 f#4 f4@2 f#4@2 ~ g4@2 ~ a4@2 b4@2 ~", I: "c5@3 c4@2 f#4@10 ~", J: "~@13 e3@2 ~",
  K: "b3 [b3,c4] ~ a#3@3 b3@3 c4@3 d4@3 ~", L: "[e4@3 f4@4 f3@3 b3@15 ~@7]/2", M: "~@7 c4@2 ~@3 e4@2 ~@2",
  N: "[~@2 g4@2 ~@8 f5@3 c5@10 ~@7]/2",
  O: "[~@7 e4@2 ~ a4 [a4,b4] g#4@2 ~ a4@2 ~ b4@2 c5@2 ~ d5@2 ~ e5@2 a5@3 e5@10 ~@7]/3", // Asus2
  P: "[~@7 b3@2 ~ f#4 [f#4,g4] f4@2 ~ f#4@2 ~ g4@2 a4@2 ~ b4@2 ~ c5@2 c4@3 f#4@10 ~@7]/3", // Gmaj7
  Q: "~@7 e3@2 ~ b3 [b3,c4] ~ a#3@3", R: "b3@3 c4@3 d4@3 e4@3 ~ f4@3", S: "[f3@3 ~ b3@15 ~@13]/2",
})).s("gm_string_ensemble_1").gain(0.24).pan(0.7)

// other · string ensemble 1 · "Viola I" · soft notes
const string_ensemble_1_soft = note("<~@76 A B ~@64 C@2 ~@40>".pickRestart({
  A: "f4 f#4 f4 ~@2 f4@2 ~@4 a4@2 a#4@2 ~", B: "c5@3 ~@13",
  C: "[~@10 f4 [f4,f#4] ~@3 f4@2 ~@3 a4@2 ~ a#4@2 ~ c5@3 ~@3]/2", // F#maj7
})).s("gm_string_ensemble_1").gain(0.16).pan(0.7)

// other · pizzicato strings · "Viola II"
const pizzicato_strings_4 = note("<~@74 A@4 B@4 C@4 D@2 E F ~@50 G@8 H@7 I@2 ~@27>".pickRestart({
  A: "~@5 a3@5 ~ a3@5", B: "~@5 c4@5 ~ c4@5", C: "~@5 e4@5 ~ d#4@5", D: "~@5 a3@5 ~ g#3@5", E: "a3@3 g#3@3 ~@2",
  F: "~@3 a3@7 g#3@6",
  G: "[~@15 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 a3@5 a3@5 ~@6 c4@5 c4@5 ~@6 c4@5 c4@5 ~@6 c4@5 c4@5 ~@6 c4]/8",
  H: "[~@4 c4@5 ~@6 e4@5 d#4@5 ~@6 e4@5 d#4@5 ~@6 e4@5 d#4@5 ~@6 e4@5 d#4@5 ~@6 a3@5 g#3@5 ~@6 a3@5 g#3@5 ~ a3@6]/7",
  I: "[g#3@6 ~@7 a3@7 g#3@7 ~@5]/2",
})).s("gm_pizzicato_strings").gain(0.24).pan(0.7)

// other · pizzicato strings · "Cello II"
const pizzicato_strings_5 = note(`<
  ~@20 A@4 ~@12 A@4 ~@4 B@4 C ~@3 D E@3 F ~@25 G@3 H B@2 ~@7 I@2 ~@2 J@2 ~@3 K ~@4 L M N@4 ~@4 O@4 ~@25 P Q@3 N@2 R ~@7
  S@2 ~@2 T@2 ~@2 U@2 ~@3 V@2 ~@7
>`.pickRestart({
// … 44 more lines

More by Edvard Grieg