Strudelify

Grand Caprice sur 'Le Roi des Aulnes' Op.26

Heinrich Wilhelm Ernst

KeyB♭ majorTempo152 bpm
0:00/0:00
// Grand Caprice sur 'Le Roi des Aulnes' Op.26 — Heinrich Wilhelm Ernst
// 152 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: Transcription provider: pdmx. https://musescore.com/score/5292192; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(152/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.

// chords · violin
const violin = note(`<
  A B C B C D E F G H G H ~@2 I J K L M N O P Q R S T S U V W X Y B C ~@3 Z AA AB AC ~@12 AD AE AF AG ~@15 AH AI AH AJ
  AK AL AM AN AO AP AQ AR AS AT ~@9 AU AV AW AX AW AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL ~@6 BM BN BO BP BQ BP BR BS
  BT BU Y BV BW BX BY BZ CA CB CC CD CE CF CG CH CI ~@5 CJ@2
>`.pickRestart({
  A: "[g3,g4]!2 ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4]", // G
  B: "[g3,g4] [a3,g4] ~ [bb3,g4] [c4,g4] [d4,g4] ~ [eb4,g4] [d4,g4] g4 ~ g4!3 ~ g4", // G A7 Eb C5 G5 Eb G5
  C: "g4 [g3,g4] ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4]", // G
  D: "[c4,g4,a4] [g4,a4] ~ [g4,a4]!3 ~ [g4,a4]!3 ~ [g4,a4] [db4,g4,a4] [g4,a4] ~ [g4,a4]", // Am7 Gsus2 A7 Gsus2
  E: "[d4,g4,bb4] [g4,bb4] ~ [g4,bb4]!3 ~ [g4,bb4] [d4,gb4,a4] [gb4,a4] ~ [gb4,a4]!3 ~ [gb4,a4]", // Gm D Gbm
  F: "[g3,g4] [g4,g5] ~ [g4,g5]!3 ~ [g4,g5]!3 ~ [g4,g5]!3 ~ [g4,g5]", // G
  G: "[g3,g4,g5] [a3,g4,g5] ~ [bb3,g4,g5] [c4,g4,g5] [d4,g4,g5] ~ [eb4,g4,g5] [d4,g4,g5] [g4,g5] ~ [g4,g5]!3 ~ [g4,g5]", // G A7 Eb C5 G5 Eb G5 G
  H: "[g4,g5]!2 ~ [g4,g5]!3 ~ [g4,g5]!3 ~ [g4,g5]!3 ~ [g4,g5]", I: "~@12 [d4,gb4,a4] d4 ~ d4, ~@3 a5",
  J: "[g3,d4,bb4] [d4,bb4] ~ [d4,bb4]!3 ~ [d4,bb4]!3 ~ [d4,bb4]!3 ~ [d4,bb4], bb5@2 a5 g5", // Gm
  K: "[gb4,a4] [d4,gb4] ~ [d4,g4] [d4,a4] [d4,b4] ~ [d4,db5] d5 d4 ~ d4 [gb4,a4] d4 ~ d4, a5 ~@2 a5", // Gbm D G5 D5 G Dmaj7 Gbm
  L: "[g3,d4,bb4] [d4,bb4] ~ [d4,bb4]!3 ~ [d4,bb4]!3 ~ [d4,bb4]!3 ~ [d4,bb4], bb5 g5", // Gm
  M: "[d4,gb4,a4] [d4,gb4] ~ [d4,g4] [d4,a4] [d4,b4] ~ [d4,db5] d5 [a3,gb4] ~ [a3,gb4]!3 ~ [a3,gb4], d6 ~@3", // D G5 D5 G Dmaj7 D
  N: "[a3,gb4]!2 ~ [a3,gb4]!3 ~ [a3,gb4]!3 ~ [a3,gb4]!3 ~ [a3,gb4], ~@3 d5", // D
  O: "[g3,f4] [g3,f4,b4] ~ [g3,f4,b4]!3 ~ [g3,f4,b4]!3 ~ [g3,f4,b4]!3 ~ [g3,f4,b4], d5 ~@2 g5", // G7
  P: "[c4,eb4,c5] [eb4,c5] ~ [eb4,c5]!3 ~ [eb4,c5] [c4,g4]!2 ~ [c4,g4] [eb4,g4]!2 ~ [eb4,g4], g5@2 eb5 c5", // Cm C5 Eb
  Q: "[f4,d5] [d4,f4] ~ [d4,f4]!3 ~ [d4,f4] [c4,eb4]!2 ~ [c4,eb4]!3 ~ [c4,eb4], f5@2 ~ a4", // Dm Cm
  R: "[bb3,d4] c4 ~ d4 eb4 f4 ~ gb4 f4 e4 ~ eb4 d4 c4 ~ bb3, bb4 ~@2 bb4", // Bb
  S: "[bb3,gb4]!2 ~ [bb3,gb4]!3 ~ [bb3,gb4]!3 ~ [bb3,gb4] [bb3,eb4]!2 ~ [bb3,eb4], eb5@2 ~ a4", // Ebm Eb5
  T: "[bb3,d4] c4 ~ d4 eb4 f4 ~ gb4 f4 e4 ~ eb4 d4 c4 ~ bb3, c5 bb4 ~ bb4", // Bb
  U: "[bb3,d4] c4 ~ d4 eb4 f4 ~ gb4 f4 e4 ~ eb4 d4 c4 ~ bb3, c5 bb4 ~ [bb4,bb5]", // Bb
  V: "[d4,a4,c5] [d4,c5] ~ [e4,c5] [gb4,c5] [g4,c5] ~ [ab4,c5] [a4,c5] [ab4,c5] ~ [g4,c5] [gb4,c5] [e4,c5] ~ [d4,c5], d6@2 ~ a5", // D7 C Gbdim C5 Ab Am Ab C5 …
  W: "[g3,d4,bb4] [g4,bb4] ~ [a4,bb4] ~ g4 ~ f4 eb4!2 ~ f4 g4 eb4 ~ d4, bb5@2 ~ g5, ~@2 bb4 ~@5", // Gm Bbmaj7
  X: "[c4,g4] [c4,g4,a4] ~ [d4,g4,a4] [eb4,g4,a4] [d4,g4,a4] ~ [c4,g4,a4] [d4,a4] d4 ~ [db4,d4] [c4,d4] [bb3,d4] ~ [a3,d4], a5 gb5", // C5 Am7 Dsus4 Am7b5 Dsus4 Am7 D5 Dmaj7 …
  Y: "[g3,d4] [g3,g4] ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4], [bb4,g5] ~@3", Z: "~@13 [g3,g4] ~ [g3,g4]",
  AA: "[g3,g4]!2 ~ [g3,g4]!3 ~ [g3,g4] [g3,ab4]!2 ~ [g3,ab4]!2 [g3,g4] ~ [g3,f4,b4], bb4 ~ b4 ~", // G Abmaj7 G G7
  AB: "[c4,eb4,c5] [eb4,c5] ~ [f4,c5] [g4,c5] [a4,c5] ~ [b4,c5] c5 [c4,g4,eb5] ~ [c4,g4,eb5]!3 ~ [c4,g4,eb5]", // Cm F5 C5 Am Cmaj7 Cm
  AC: "[c4,g4,eb5] ~@15", AD: "~@5 bb3 ~ [bb3,d4]!2 [d4,f4] ~ [d4,f4]!2 [f4,bb4] ~ [f4,bb4]",
  AE: "[f4,bb4] [bb4,d5] ~ [bb4,d5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [d5,f5] ~ [bb4,f5] ~ [bb4,f5]", // Bb5 Bb Dm Bb5
  AF: "~ [bb4,g5] ~ [bb4,g5]!3 ~ [bb4,g5] ~ [g4,eb5] ~ [g4,eb5]!3 ~ [g4,eb5]", // Eb Cm
  AG: "~ [bb4,d5] ~ [bb4,d5]!3 ~ [bb4,d5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5] ~ [a4,c5], ~@3 c6", // Bb Am
  AH: "d5!2 ~ d5!3 ~ d5!3 ~ d5!3 ~ [d5,eb6], [c5,eb6] ~ [a4,eb6] ~", // Ebmaj7 Cm Adim
  AI: "[d5,eb6] d5 ~ [d5,d6] d5!2 ~ d5!3 ~ d5!3 ~ d5, gb4 d6 ~ [b4,d6]", // Ebmaj7 D Bm
  AJ: "d5!2 ~ d5!3 ~ d5!3 ~ d5!3 ~ d5, [gb4,d6] ~@2 [gb4,a5]", // D Gbm
  AK: "d5!2 ~ d5!3 ~ d5!3 ~ d5!3 ~ d5, [g4,bb5] [gb4,a5] [g4,bb5] [ab4,b5]", // Gm Gbm Gm Abm
  AL: "d5!2 ~ d5!3 ~ d5!3 ~ d5!3 ~ d5, [a4,c6] ~ [bb4,db6] ~", // Am Bbm
  AM: "[b4,d5,d6] [d4,d5] ~ [d4,d5]!3 ~ [d4,d5]!3 ~ [d4,d5]!3 ~ [d4,d5]", // Bm D
  AN: "[d4,d5]!2 ~ [d4,d5] e4 [g4,db5] ~ [g4,db5] gb4 [d4,b4] ~ [d4,b4] gb4 [db4,bb4] ~ [db4,bb4]", // D Gdim G Gb
  AO: "b4 [b4,d5] ~ [b4,d5]!3 ~ [b4,d5]!3 ~ [b4,d5] [gb4,b4,eb5] [b4,eb5] ~ [gb4,b4,eb5], b3 ~@3", // Bm B
  AP: "[e4,a4] [b4,e5] ~ [b4,e5] g4 [b4,e5] ~ g4!2 [b4,e5] ~ [b4,e5]!3 ~ [b4,e5]", // A5 E5
  AQ: "[b4,e5]!2 ~ [b4,e5] [e4,g4] [b4,e5] ~ [b4,e5] [c4,a4] [c5,e5] ~ [c5,e5] [c4,a4] [c5,e5] ~ [c5,e5]", // E5 Em E5 F C F C
  AR: "[d4,b4] [b4,d5] ~ [b4,d5] g4 [b4,d5] ~ [b4,d5] d4 [a4,c5] ~ [a4,c5] e4 [a4,c5] ~ gb4", // G Bm Am
  AS: "g4 [g4,b4] ~ [g4,b4]!3 ~ [g4,b4] d4 [g4,b4] ~ [g4,b4] b3 [g4,b4] ~ [g4,b4]", // G
  AT: "[g3,d4] g3 ~ g3!3 ~ g3!2 ~@7, [b4,g5] ~@3", AU: "~@9 e5 ~ e5!3 ~ e5",
  AV: "e5!2 ~ e5!3 ~ e5!3 ~ e5!3 ~ e5, ~@3 [db5,e6]", AW: "e5!2 ~ e5!3 ~ e5!3 ~ e5!3 ~ [e5,f6], [d5,f6] ~ [b4,f6] ~",
  AX: "[e5,f6] e5 ~ [e5,e6] e5!2 ~ e5!3 ~ e5!3 ~ e5, ab4 e6 ~ [db5,e6]", // Fmaj7 E Dbm
  AY: "[ab4,e5,e6] e5 ~ e5!3 ~ e5!3 ~ e5 [ab4,b5] e5 ~ e5", // Dbm Abm
  AZ: "[a4,c6] e5 ~ e5 [ab4,b5] e5 ~ e5 [a4,c6] e5 ~ e5 [bb4,db6] e5 ~ e5", // Am Abm Am Bbm
  BA: "[b4,d6] e5 ~ e5!3 ~ e5 [c5,eb6] e5 ~ e5!3 ~ e5", BB: "[db5,e6] e5 ~ e5!3 ~ e5!3 ~ e5!3 ~ e5",
  BC: "e5!2 ~ e5 gb4 [a4,eb5] ~ [a4,eb5] ab3 [e4,db5] ~ [e4,db5] [ab3,ab4] [eb4,c5] ~ [eb4,c5]", // Adim Dbm Ab Cm
  BD: "[db4,db5] [e4,db5] ~ [e4,db5]!3 ~ [e4,db5]!3 ~ [e4,db5] ~ [e4,db5] ~ [e4,db5], ~@6 [ab3,ab4] ~", // Db Dbm Ab
  BE: "~ [e4,db5] ~ [e4,db5]!3 ~ [e4,db5]!3 ~ [e4,db5] ~ [e4,db5] ~ [e4,db5], [a3,a4] ~@5 [a3,a4] ~", // Dbm A
  BF: "~ [e4,db5] ~ [e4,db5]!3 ~ [e4,db5] a4 [e4,a4,g5] ~ [e4,a4,g5]!3 ~ [a3,a4], [a3,a4] ~@3 a3 ~@3", // Dbm A7 A
  BG: "[d4,d5] [d4,a4,f5] ~ [d4,a4,f5]!3 ~ [d4,a4,f5]!3 ~ [d4,a4,f5] d5 [a4,f5] ~ [a4,f5]", // D Dm
  BH: "[g3,d5] [d5,e5] ~ [d5,e5] [bb4,d5,e5] [d5,e5] ~ [g4,d5,e5] ~ [d5,e5] ~ [d5,e5] ~ [d5,e5] ~ [d5,e5], ~@4 [g3,e4] ~ [g3,bb4] ~", // G5 Dsus2 Em7b5 Dsus2 Em7 Dsus2 C Gm
  BI: "~ [d5,f5] ~ [d5,f5]!3 ~ [d5,f5] ~ [d5,e5] ~ [d5,e5] ~ [db5,e5] ~ [db5,e5], [a3,a4] ~@3 [a3,a4] ~ [a3,a4] ~", // Dm Dsus2 Dbm A
  BJ: "[d4,d5]!2 ~ [d4,d5]!3 ~ [d4,d5]!3 ~ [d4,d5]!3 ~ [d4,d5]", // D
  BK: "[d4,d5] [e4,d5] ~ [f4,d5] [g4,d5] [a4,d5] ~ [bb4,d5] [a4,d5] d5 ~ d5!3 ~ d5", // D E7 Dm G5 D5 Bb D5
  BL: "d5 [d4,d5] ~ [d4,d5]!3 ~ [d4,d5]!3 ~ [d4,d5]!3 ~ [d4,d5]", BM: "~@13 [d4,f4]!3, ~@3 d5",
  BN: "[d4,f4]!8 [a3,f4] [a3,db4]!7, a4@2 a4!2", BO: "[db4,d4] f5 ~ f5!3 ~ f5!3 ~ f5!3 ~ f5, ~@3 [d5,f6]",
  BP: "f5!2 ~ f5!3 ~ f5!3 ~ f5!3 ~ [f5,gb6], [eb5,gb6] ~ [c5,gb6] ~", // Gbmaj7 Ebm Cdim
  BQ: "[f5,gb6] f5 ~ [f5,f6]!2 f5 ~ f5!3 ~ f5!3 ~ f5, a4 ~@2 [d5,f6]", // Gbmaj7 F Dm
  BR: "f5!2 ~ f5!3 ~ f5!3 ~ f5!3 ~ f5, [a4,f6] ~@3", // Dm
  BS: "[b3,d4]!2 ~ [b3,d4]!3 ~ [b3,d4] [c4,d4]!2 ~ [c4,d4]!3 ~ [c4,d4,gb5,gb6], [f5,f6] ~ [gb5,gb6] ~", // Bm Csus2 D7 F Gb
  BT: "~ [bb3,d4] ~ [bb3,d4]!3 ~ [bb3,d4] [c4,g4,a4]!2 ~ [c4,g4,a4]!3 ~ [c4,g4,a4,eb6], [g5,g6] ~@3", // Bb Am7 Am7b5 G
  BU: "d4 [d4,bb4,g5] ~ [d4,bb4,g5]!3 ~ [d4,bb4,g5] d4 [d4,a4,gb5] ~ [d4,a4,gb5]!3 ~ [d4,a4,gb5], [d5,d6] ~ [d5,d6] ~", // Gm D
  BV: "[g3,g4] [a3,g4] ~ [bb3,g4] [c4,g4] [d4,g4] ~ [eb4,g4] [d4,g4] g4 ~ g4 [bb3,g4] g4 ~ g4, ~@3 d5", // G A7 Eb C5 G5 Eb G5 Eb
  BW: "[g3,g4]!2 ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4], d5 ~@2 d5", // G
  BX: "[g3,g4] [a3,g4] ~ [bb3,g4] [c4,g4] [d4,g4] ~ [eb4,g4] [d4,g4] g4 ~ g4 [bb3,g4] g4 ~ g4, a5 g5 ~ g5", // G A7 Eb C5 G5 Eb G5 Eb
  BY: "[g3,g4]!2 ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g3,g4]!3 ~ [g4,a4,a5], g5 ~ [a4,a5] ~", // G Gsus2 A
  BZ: "[g3,g4,bb4] [a3,g4,bb4] ~ [bb3,g4,bb4] [c4,g4,bb4] [d4,g4,bb4] ~ [eb4,g4,bb4] [d4,g4,bb4] [g4,bb4] ~ [g4,bb4] [bb3,g4,bb4] [g4,bb4] ~ [g4,bb4], bb5 ~@2 bb5", // Gm Eb C7 Gm Eb Gm Eb Gm
  CA: "[g3,g4,bb4] [g4,bb4] ~ [g4,bb4]!3 ~ [g4,bb4] [a4,c5]!2 ~ [a4,c5]!3 ~ [a4,c5,c6], bb5 ~ [g3,c6] ~", // Gm Am C5
  CB: "g3 [a3,g4] ~ [bb3,g4] [c4,g4] [d4,g4] ~ [eb4,g4] [d4,g4] g4 ~ g4!3 ~ g4, [bb4,d5,d6] ~@2 [bb3,d5,d6]", // A7 Eb C5 G5 Eb G5 Bb
  CC: "[g3,b4,f5]!2 ~ [g3,b4,f5]!3 ~ [g3,b4,f5]!3 ~ [g3,b4,f5]!3 ~ [g3,b4,f5,d6], d6 ~ g6 ~", // G7
  CD: "[c4,g4,eb5] d4 ~ eb4 f4 g4 ~ ab4 g4 [g4,eb5] ~ [g4,eb5] eb4 [g4,eb5] ~ [g4,eb5], eb6 ~@3", // Cm
  CE: "~ [c5,c6] ~ [c5,c6]!3 ~ c4 db4 [c5,c6] ~ db4 d4 [c5,c6] ~ d4, c4 ~@3", // C
  CF: "eb4 [c5,c6] ~ eb4 e4 [c5,c6] ~ e4 f4 [c5,c6] ~ f4 g4 [c5,c6] ~ g4", // C
  CG: "[ab3,eb4,c5,c6] [ab3,eb4,c5] ~ [ab3,eb4,c5]!3 ~ [ab3,eb4,c5]!3 ~ [ab3,eb4,c5]!3 ~ [ab3,eb4,c5], ~@3 ab5", // Ab
  CH: "db5 [ab3,e4,db5] ~ [ab3,e4,db5]!3 ~ [ab3,e4,db5,bb5] [ab3,e4,db5]!2 ~ [ab3,e4,db5]!3 ~ [ab3,e4,db5], db6 ~ g5 bb5", // Dbm Bbm7b5 Dbm
  CI: "[ab3,eb4] [c4,eb4] ~ [c4,eb4] ~@12, [c5,ab5] ~@3", CJ: "[~@5 [d4,c5,gb5]@4 ~@5 [g3,d4,bb4,g5]@9 ~@9]/2",
})).s("gm_violin").gain(0.4)

// chords · violin · soft notes
const violin_soft = note(`<
  ~@12 A B C ~@19 D E@2 F ~@2 G H I H J K L M L N O P O Q ~@31 R S T U@2 V W X Y X Z ~@18 AA AB AC AD AE AF AG ~@23 AH
  AI@3 AJ AK@2 ~
>`.pickRestart({
  A: "[c4,g4,a4] [g4,a4] ~ [g4,a4]!3 ~ [g4,a4]!3 ~ [g4,a4]!3 ~ [g4,a4]", // Am7 Gsus2
  B: "[db4,g4,bb4,e5] [g4,bb4] ~ [g4,bb4]!3 ~ [g4,bb4]!3 ~ [g4,bb4] [db4,g4]!2 ~ [db4,g4]", // Dbdim Gm Dbdim
  C: "[d4,gb4]!2 ~ [d4,g4] [d4,a4] [d4,b4] ~ [d4,db5] [d4,d5] d4 ~ d4 ~@4", // D G5 D5 G Dmaj7 D
  D: "[g3,g4] [a3,g4] ~ [bb3,g4] [c4,g4] [d4,g4] ~ [eb4,g4] [d4,g4] g4 ~ g4!3 ~ g4", // G A7 Eb C5 G5 Eb G5
  E: "g4!2 ~ g4!3 ~ g4!3 ~ g4!3 ~ g4, ~@3 d4", F: "g4!2 ~ g4!3 ~ g4!2 [g3,g4] ~ [g3,g4]!2 ~@3, ~@2 a4 ~",
  G: "~ [eb4,c5] ~ [f4,c5] [g4,c5] [a4,c5] ~ [b4,c5] c5 [g4,eb5] ~ [g4,eb5]!3 ~ [g4,eb5], ~@3 c6", // Cm F5 C5 Am Cmaj7 Cm
  H: "[c4,ab4,f5] [b4,f5] ~ [b4,f5]!3 ~ [b4,f5]!3 ~ [b4,f5]!3 ~ [b4,f5], d6@2 ~ g5", // Fm Bdim
  I: "[c4,g4,eb5] eb4 ~ f4 [g3,g4] [a3,a4] ~ [b3,b4] [c4,c5] [g4,eb5] ~ [g4,eb5]!3 ~ [g4,eb5], eb6@2 ~ c6", // Cm G A B C Cm
  J: "[c4,g4,eb5] eb4 ~ f4 [g3,g4] [a3,a4] ~ [b3,b4] [c4,c5] [g4,eb5] ~ c4 bb3 [gb4,eb5] ~ bb3, eb6 ~", // Cm G A B C Cm Ebm
  K: "[a3,f4,eb5] [a3,f4,a4] ~ [bb3,f4,a4] [c4,f4,a4] [d4,f4,a4] ~ [e4,f4,a4] [f4,a4]!2 ~ [f4,a4]!3 ~ [f4,a4], ~@3 c6", // F7 Dm Bbmaj7 F Dm Fmaj7 F
  L: "[f4,bb4] [f4,bb4,e5] ~ [f4,bb4,e5]!3 ~ [f4,bb4,e5]!3 ~ [f4,bb4,e5] [f4,db5,c6] [f4,db5] ~ [f4,db5,bb5], db6 ~", // Bb5 Bb Dbmaj7 Db Bbm
  M: "[f4,c5] [a3,f4] ~ [bb3,f4] [c4,f4] [d4,f4] ~ [e4,f4] f4 [f4,a4] ~ [f4,a4]!3 ~ [f4,a4], a5 f5 ~ c6", // F5 Dm Bb5 F5 Dm Fmaj7 F
  N: "[f4,a4] [a3,f4,a4] ~ [bb3,f4,a4] [c4,f4,a4] [d4,f4,a4] ~ [e4,f4,a4] [f4,a4] f4 ~ f4!3 ~ f4, c6 ~@3", // F Dm Bbmaj7 F Dm Fmaj7 F
  O: "f4!2 ~ f4!3 ~ f4!3 ~ f4!3 ~ f4, ~@3 c4", P: "f4!2 ~ f4!3 ~ f4!3 ~ f4!3 ~ f4, eb4@2 ~ eb4",
  Q: "bb3!2 ~ bb3!2 ~@11, eb4@3 ~@5", R: "~@9 g3 ~ ab3 a3 bb3 ~ b3, ~@3 g4",
  S: "c4 g3 ~ c4 [e4,a4] c4 ~ [g3,b4] c4 g3 ~ c4 [e4,c5] c4 ~ [g3,db5], g4 ~ c5 ~", // A5 G C Gdim
  T: "b3 g3 ~ d4 f4 d4 ~ g3 c4!2 ~ e4 [g4,d5] e4 ~ [c4,c5], d5 g4 e5 ~", // G5 C
  U: "e4 d4 ~ e4 [e4,ab4] e4@2 d4 a3 c4 ~ e4 a4 e4 ~ [c4,a4], b4 ~ c5 ~", // E F
  V: "d4 c4 ~ d4 [gb4,ab4] d4 ~ [c4,a4] g3 b3 ~ d4 g4 d4 ~ [b3,g4], a4 ~ b4 ~", // Gbsus2 F Em
  W: "d4 c4 ~ d4 [d4,gb4] d4 ~ [c4,d4] g3 b3 ~ d4 g4 d4 ~ [b3,g4], a4 ~ b4 ~", // D Csus2 Em
  X: "g3 b3 ~ d4 [g4,a4] f4 ~ [d4,b4] e4 c4 ~ e4 [g4,d5] e4 ~ [c4,e5], g4 ~ c5 ~", // Gsus2 G G5 C
  Y: "g3 b3 ~ d4 [f4,d5] d4 ~ [g4,b4] [c4,e4] c4 ~ e4 g4 e4 ~ [c4,g4], f5 ~ c5 ~", // Dm G C C5
  Z: "[g3,g5] b3 ~ [d4,f5] [g4,d5] f4 ~ [g3,d4,b4] [c4,e4,c5] ~@7", // G Dm G5 G C
  AA: "[d4,d5] [e4,d5] ~ [f4,d5] [g4,d5] [a4,d5] ~ [bb4,d5] [a4,d5] d5 ~ d5!3 ~ d5", // D E7 Dm G5 D5 Bb D5
  AB: "d5 d4 ~ d4!3 ~ d4!3 ~ d4!3 ~ d4, ~@3 d5", AC: "[g3,eb4] [eb4,g4]!11 g4 [g4,bb4]!3, eb5@3 bb4 bb4@2 eb5@2",
  AD: "[eb4,ab4,bb4] [ab4,b4]!15, d5@2 d5 eb5 f5@2 eb5 d5", AE: "[eb4,g4,b4] [g4,bb4]!15, eb5@3 d5",
  AF: "[g3,e4,bb4] [e4,bb4]!7 [g3,e4,bb4] [e4,bb4]!3 [g3,e4,bb4] [e4,bb4]!3, db5@2 db5!2", // Edim
  AG: "[d4,bb4] [d4,f4]!12 ~@3, d5@2 d5 ~", AH: "~@4 [c4,eb4]!2 ~ [c4,eb4]!2 [c4,ab4] ~ [c4,ab4]!3 ~ [c4,ab4]",
  AI: "[[c4,ab4]@4 ~ ab4 ab4 bb4 c5@4 bb4@2 ab4@2]/3", AJ: "g4@3 ~@5", AK: "[~@3 db4@6 d4@12 ~@11]/2",
})).s("gm_violin").gain(0.15)

// chords · violin
const violin_2 = note("<~@57 A B A B C D E F G H I J K L M ~@80>".pickRestart({
  A: "bb3 [bb4,d5] ~ f4 bb3 [bb4,d5] ~ f4 d4 [bb4,d5] ~ f4 ~ [bb4,d5] ~ f4, d6@2 ~ bb5", // Bb
  B: "~ [a4,eb5] ~ f4 bb3 [a4,eb5] ~ f4 bb3 [a4,eb5] ~ f4 bb3 [a4,eb5] ~ f4, f5 ~@2 c6", // Adim
  C: "bb3 [bb4,d5] ~ f4 bb3 [bb4,d5] ~ f4 d4 [bb4,d5] ~ f4 ~ [bb4,d5] ~ f4, d6@2 ~ d6", // Bb
  D: "c4 [a4,c5] ~ f4 c4 [a4,c5] ~ f4 ~ [a4,c5] ~ f4 c4 [a4,c5] ~ f4, f6 ~ c6 ~", // Am
  E: "~ [bb4,e5] ~ g4 b5 c6 ~ d6 ~ [bb4,e5] ~ g4 ~ [bb4,c5] ~ g4, c6 ~ c6 e5", // Bbdim Bbsus2
  F: "~ [a4,c5] ~ f4 c4 [a4,c5] ~ [f4,a4] f4 [a4,c5] ~ [f4,a4] ~ [a4,c5] ~ [f4,a4], f5 ~@2 f5", // Am F Am F Am F
  G: "~ [c5,eb5] ~ a4 gb4 [c5,eb5] ~ a4 f4 [a4,eb5] ~ f4 ~ [a4,eb5] ~ f4, c6 ~@2 db6", // Cm Adim
  H: "bb3 [bb4,d5] ~ f4 bb3 [bb4,d5] ~ f4 d4 [bb4,d5] ~ f4 bb3 [f4,d5] ~ b5, d6@2 bb5 ~", // Bb Dm
  I: "~ [c5,eb5] ~ a4 gb4 [c5,eb5] ~ a4 f4 [c5,eb5] ~ a4 ~ [a4,eb5] ~ f4, c6 ~@2 f5", // Cm Adim
  J: "bb3 [bb4,d5] ~ f4 bb3 [bb4,d5] ~ f4 d4 [bb4,d5] ~ f4 bb3 [bb4,d5] ~ f4, d6@2 ~ d6", // Bb
  K: "g3 [b4,f5] ~ g4 g3 [b4,d5] ~ [g3,f6] [c4,f6] [g4,eb5] ~ eb6 [eb4,d6] [g4,eb5] ~ c6, g6 ~@3", // Bdim Bm G7 F5 Cm Ebmaj7 Cm
  L: "f4 [bb4,d5] ~ [bb4,d5] f4 [bb4,d5] ~ [bb4,d5] f4 [a4,eb5] ~ c6 [f4,d6] [a4,eb5] ~ c6, bb5 ~@3", // Bb Adim Dm Adim
  M: "bb5 d5 ~ d5!3 ~ d5!3 ~ d5!3 ~ d5, ~@3 d6",
})).s("gm_violin").gain(0.2)

stack(violin, violin_soft, violin_2)