Strudelify

Only Time

Enya

KeyE♭ majorTempo85 bpm
0:00/0:00
// Only Time — Enya
// 85 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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.

// bass · brass section · "Brass"
const bass = note(`<
  A B C D E F G H E F G I E J G K E B C L M F C N O P C K A P G N Q J C L R H S T L U V W Q P G H X P C D E J C Y Z AA C
  Y X AA G Y AB AC G AD Q F G AE A AF G H AG D S AH AI S AJ AK A B G K E B C I O B G N O B G I E B G K E AL G K E B C N
  Q P G K M AL H X AM AN
>`.pickRestart({
  A: "eb2@5 ~ a1@2 bb1 ~ bb1@2 ~@2 eb2@2", B: "c2@5 ~ g1@2 c2@5 ~ c2 ~", C: "bb1@5 ~ bb1@2 f1 ~ f1@2 ~@2 f1@2",
  D: "bb1@5 ~ e1@2 f1 ~ f1@2 ~@2 bb1@2", E: "eb2@5 ~ eb2@2 bb1@5 ~ bb1@2", F: "c2@5 ~ c2 ~ c2@7 ~",
  G: "bb1@5 ~ e1@2 f1 ~ f1@2 ~@2 a1@2", H: "bb1@5 ~ bb1 ~ bb1@7 ~", I: "bb1@5 ~ f1@2 bb1@5 ~ bb1 ~",
  J: "c2@5 ~ gb1@2 g1 ~ g1@2 ~@2 c2@2", K: "bb1@5 ~ f1@2 bb1@6 d2@2", L: "bb1@5 ~ bb1@2 f1@5 ~ bb1@2",
  M: "eb2@5 ~ eb2@2 bb1@5 ~ eb2@2", N: "bb1@5 ~ bb1@2 f1@5 ~ f1@2", O: "eb2@5 ~ bb1@2 eb2@5 ~ eb2 ~",
  P: "c2@5 ~ c2@2 g1@5 ~ g1@2", Q: "eb2@5 ~ eb2 ~ eb2@7 ~", R: "db2@5 ~ db2@2 ab1@5 ~ db2@2",
  S: "ab1@5 ~ ab1 ~ ab1@7 ~", T: "db2@5 ~ db2 ~ ab2@4 db2@3 ~", U: "ab2@5 ~ ab2@2 eb2@5 ~ eb2@2",
  V: "f1 ~ f1 ~ f1!2 f1@2", W: "f1@2 f1!2", X: "eb2@5 ~ eb2@2 bb1 ~ bb1@2 ~@2 bb1@2",
  Y: "bb1@5 ~ f1@2 bb1 ~ bb1@2 ~@2 d2@2", Z: "eb2@5 ~ eb2@2 bb1 ~ bb1@2 ~@2 eb2@2",
  AA: "c2@5 ~ c2@2 g1 ~ g1@2 ~@2 c2@2", AB: "eb2@5 ~ bb1@2 eb2 ~ eb2@2 ~@2 eb2!2",
  AC: "c2@5 ~ g1@2 c2 ~ c2@2 ~@2 c2 b1", AD: "bb1@5 ~ f1@2 bb1 ~ bb1@2 ~@2 bb1!2",
  AE: "bb1@5 ~ f1@2 bb1 ~ bb1 ~ c2@2 d2@2", AF: "c2@5 ~ g1@2 c2 ~ c2@2 ~@2 c2!2", AG: "db2@5 ~ db2@2 ab1@5 ~ ab1@2",
  AH: "db2@5 ~ ab1@2 db2 ~ db2@2 ~@2 db2!2", AI: "bb1@5 ~ bb1@2 f1 ~ f1@2 ~@2 bb1@2", AJ: "f1 ~ f1@2 f1@2 f1@2",
  AK: "f1@4 f1!3 ~", AL: "c2@5 ~ c2@2 g1@5 ~ c2@2", AM: "eb2@5 ~ eb2@2 bb1 ~ bb1@2 ~@2 bb1 ~", AN: "eb1@3 ~",
})).s("gm_electric_bass_finger").gain(0)

// chords · piano
const piano = note(`<
  A B C D E F G H I F J K L M G H L N O P Q R S T U V S W I V X Y L Z AA W AB AC AD AE AF AD AG AH AI AJ S AK AL F J AM
  U B AN AO AP AQ AR AS Q AJ AT AU AV Z C AS AI Z AA AM AW AX AA AS AY AZ BA BB BC BD BE BF Q AJ AA BG BH M X BG I M BI
  BJ I M J AO BK M J BG AW BL AA Y I Z BM W AV BN BM AO U M AA BO BP BQ
>`.pickRestart({
  A: "[eb4,g4] ~ [bb3,eb4,g4]@4 g3@2 [bb3,eb4,g4]@2 g3@2 [bb3,eb4,g4]@2 g3@2, eb2@15 ~, bb4 ~", // Eb
  B: "~@4 [c4,eb4,g4]@6 c4@2 [eb4,g4]@2 c4 ~, c3@11 ~@5", C: "~@4 [bb3,d4,f4]@6 bb3@2 [d4,f4]@2 bb3 ~, bb2@11 ~@5",
  D: "~@4 [ab3,bb3,d4,f4]@3 ~@3 [ab3,bb3,d4,f4]@5 ~, bb2@13 ~@3", E: "~@4 [bb3,eb4,g4]@6 bb3@2 ~@2 bb3 ~, eb2@13 ~@3",
  F: "[c3,g3,c4,eb4]", G: "[d4,f4] ~ [bb3,d4]@4 f3@2 [bb3,d4,f4]@2 f3@2 [bb3,d4,f4]@2 f3@2, bb2@15 ~, bb4 ~",
  H: "[d4,f4] ~ [ab3,d4]@4 f3@2 [ab3,d4,f4]@2 f3@2 [ab3,d4,f4]@2 f3@2, bb2@15 ~, ab4 ~", // Dm Abdim Ddim
  I: "~@4 [bb3,eb4,g4]@6 bb3@2 ~@2 bb3 ~, eb2@11 ~@5", J: "bb2@4 [bb3,d4,f4]@4 ~@2 bb3@2 [d4,f4]@2 bb3 ~, ~@8 f3@7 ~",
  K: "~@4 [d4,f4,ab4,bb4]@3 ~@3 [d4,f4,ab4,bb4]@5 ~, bb2@13 ~@3", // Bb7
  L: "~@4 [bb3,eb4,bb4]@4 ~@2 [eb4,g4,bb4]@2 bb3 ~ [eb4,g4,bb4]@2, eb2@7 ~", // Eb5 Eb
  M: "~@4 [c4,eb4,g4]@6 c4@2 ~@2 c4 ~, c3@11 ~@5", N: "[c3,c4,eb4,g4] [c4,eb4]@2 g3 [c4,eb4,g4] g3 [c4,eb4,g4] g3",
  O: "~@4 [bb3,d4,bb4]@4 ~@2 [d4,f4,bb4]@2 bb3 ~ [d4,f4,bb4]@2, bb2@7 ~", // Bb
  P: "~@4 [ab3,bb3,d4,ab4]@4 ~@2 [bb3,d4,f4,ab4]@2 ab3 ~ [bb3,d4,f4,ab4]@2, bb2@7 ~", // Bb7
  Q: "~ eb4 [eb4,g4] eb4 [eb4,bb4] [eb4,g4] [eb4,bb4] [bb3,g4], eb2@7 ~, ~@10 bb4 ~@3 eb4 ~", // Eb Eb5 Eb Eb5 Eb
  R: "~@4 [g3,c4,eb4,g4]@10 eb4 ~, c3@7 ~", S: "~@4 [f3,bb3,d4,f4]@10 d4 ~, bb2@7 ~",
  T: "~@4 [ab3,bb3,d4,f4]@6 ab3@2 d4@2 ab3 ~, bb2@11 ~@5", U: "~@4 [g3,bb3,eb4]@3 ~@3 [g3,bb3,eb4]@5 ~, eb2@13 ~@3",
  V: "~@4 [c4,eb4,c5]@4 ~@2 [eb4,g4,c5]@2 c4 ~ [eb4,g4,c5]@2, c3@7 ~", // Cm
  W: "~ bb3 [d4,f4] bb3 [bb3,d4,ab4] [d4,f4] [d4,ab4] [ab3,d4,f4], bb2@7 ~, ~@10 ab4 ~@3 bb3 ~", // Dm Bb7 Dm Ddim
  X: "~@4 [bb3,d4,f4]@6 bb3@2 ~@2 bb3 ~, bb2@11 ~@5", // Bb
  Y: "bb2@4 [ab3,bb3,d4,f4]@4 ~@2 ab3@2 [bb3,d4,f4]@2 ab3 ~, ~@8 f3@7 ~", // Bb7 Bb
  Z: "~ eb4 [eb4,g4] eb4 [eb4,c5] [eb4,g4] [eb4,c5] [c4,g4], c3@7 ~, ~@10 c5 ~@3 eb4 ~", // Eb Cm Eb Cm C5
  AA: "~ d4 [d4,f4] d4 [d4,bb4] [d4,f4] [d4,bb4] [bb3,f4], bb2@7 ~, ~@10 bb4 ~@3 d4 ~", // Dm Gm Dm Gm Bb5
  AB: "db3@4 [db4,f4,ab4]@4 ~@2 db4@2 [f4,ab4]@2 db4 ~, ~@8 ab3@7 ~", // Db Fm
  AC: "~@4 [f3,bb3,db4]@3 ~@3 [f3,bb3,db4]@5 ~, bb2@13 ~@3", // Bbm
  AD: "[ab4,c5] ~ [eb4,ab4]@4 c4@2 [eb4,ab4,c5]@2 c4@2 [eb4,ab4,c5]@2 c4@2, ab2@15 ~, eb5 ~", // Ab Ab5 Ab
  AE: "~@4 [db4,f4,ab4]@6 db4@2 ~@2 db4 ~, db3@11 ~@5", // Db
  AF: "~ db4 [db4,f4] db4 [db4,bb4] [db4,f4] [db4,bb4] [bb3,f4], bb2@7 ~, ~@10 bb4 ~@3 db4 ~", // Db Gb Db Gb Bb5
  AG: "[a3,c4,f4] [c4,eb4,g4,a4] [c4,d4,f4,a4] [bb3,c4,f4]", // F Am7b5 Dm7 Bbsus2
  AH: "c4@4 [eb4,f4] ~ [eb4,f4]@2 [a3,c4,f4]@4 [c4,eb4,f4,a4]@4, ~ c5 ~@2, ~@2 a4 ~@5", // Ebsus2 F F7
  AI: "[eb2,bb3,eb4,g4] [bb3,eb4,g4]@2 g3 [bb3,eb4,g4] g3 [bb3,eb4,g4] g3", // Eb
  AJ: "~@4 [g3,c4,eb4]@3 ~@3 [g3,c4,eb4]@5 ~, c3@13 ~@3", // Cm
  AK: "[bb2,ab3,bb3,d4,f4] [ab3,bb3,d4,f4]@2 f3 [ab3,bb3,d4,f4] f3 [ab3,bb3,d4,f4] f3", // Bb7
  AL: "~@4 [bb3,eb4,g4]@6 bb3@2 [eb4,g4]@2 bb3 ~, eb2@13 ~@3", // Eb
  AM: "~ bb3 [d4,f4] bb3 [bb3,d4,ab4] [d4,f4] [bb3,d4,ab4] [ab3,d4,f4], bb2@7 ~, ~@10 ab4 ~@3 bb3 ~", // Dm Bb7 Dm Bb7 Ddim
  AN: "~@4 [bb3,d4,f4]@3 ~@3 [bb3,d4,f4]@5 ~, bb2@13 ~@3", AO: "~@4 [f3,ab3,bb3,d4,f4]@10 bb3 ~, bb2@7 ~",
  AP: "~@4 [bb3,eb4,g4]@6 bb3@2 [eb4,g4]@2 bb3 ~, eb2@11 ~@5", AQ: "~@4 [c4,eb4,g4]@6 c4@2 [eb4,g4]@2 c4 ~, c3@13 ~@3",
  AR: "[bb2,bb3,d4,f4] [bb3,d4,f4]@2 f3 [bb3,d4,f4] f3 [bb3,d4,f4] f3", // Bb
  AS: "~@4 [ab3,bb3,d4,f4]@6 ab3@2 [bb3,d4,f4]@2 ab3 ~, bb2@11 ~@5", // Bb7 Bb
  AT: "[d4,f4] ~ [bb3,d4,f4]@4 f3@2 [bb3,d4,f4]@2 f3@2 [bb3,d4,f4]@2 f3@2, bb2@15 ~, bb4 ~", AU: "[bb2,ab3,bb3,d4,f4]",
  AV: "[eb2,bb3,eb4,g4]", AW: "~@4 [g3,bb3,eb4,g4]@10 eb4 ~, eb2@7 ~",
  AX: "[c3,c4,eb4,g4] [c4,eb4,g4]@2 g3 [c4,eb4,g4] g3 [c4,eb4,g4] g3", // Cm
  AY: "[f4,ab4] ~ [db4,f4,ab4]@4 ab3@2 [db4,f4,ab4]@2 ab3@2 [db4,f4,ab4]@2 ab3@2, db3@15 ~, db5 ~", // Fm Db
  AZ: "~@4 [bb3,db4,f4]@6 bb3@2 [db4,f4]@2 bb3 ~, bb2@11 ~@5", // Bbm Db
  BA: "[ab2,eb4,ab4,c5] [eb4,ab4,c5]@2 c4 [eb4,ab4,c5] c4 [eb4,ab4,c5] c4", // Ab
  BB: "~ f4 [f4,ab4] f4 [f4,db5] [f4,ab4] [f4,db5] [db4,ab4], db3@7 ~, ~@10 db5 ~@3 f4 ~", // Fm Db Fm Db Db5
  BC: "~@4 [bb3,db4,bb4]@4 ~@2 [db4,f4,bb4]@2 bb3 ~ [db4,f4,bb4]@2, bb2@7 ~", // Bbm
  BD: "~@4 [c4,eb4,ab4,c5]@10 ab4 ~, ab2@7 ~", BE: "[a3,c4,f4] [c4,eb4,g4,a4] [c4,d4,f4,a4] [c4,f4,bb4]",
  BF: "c4@4 [eb4,f4] ~ [eb4,f4]@2 [a3,c4,f4]@4 [c4,eb4,f4,a4]@4, ~ c5 ~@2, ~@4 a4@2 c4 ~@9", // Ebsus2 F F7
  BG: "~@4 [ab3,bb3,d4,f4]@6 ab3@2 d4@2 ab3 ~, bb2@13 ~@3", // Bb7
  BH: "[eb2,bb3,eb4,g4] [bb3,eb4]@2 g3 [bb3,eb4,g4] g3 [bb3,eb4,g4] g3", BI: "[bb2,bb3,d4,f4]",
  BJ: "[bb2,ab3,bb3,d4,f4] [ab3,bb3,d4]@2 f3 [ab3,bb3,d4,f4] f3 [ab3,bb3,d4,f4] f3", // Bb7
  BK: "eb2@4 [bb3,eb4]@4 ~@2 bb3@2 [eb4,g4]@2 bb3 ~, ~@2 g4@3 ~@3, ~@8 g3@7 ~", // Eb5 Eb
  BL: "[eb4,g4] ~ [c4,eb4]@4 g3@2 [c4,eb4,g4]@2 g3@2 [c4,eb4,g4]@2 g3@2, c3@15 ~, c5 ~", // Eb Cm
  BM: "~@4 [bb3,d4,f4]@6 bb3@2 ~@2 bb3 ~, bb2@13 ~@3", BN: "~@4 [c4,eb4,g4]@6 c4@2 ~@2 c4 ~, c3@13 ~@3",
  BO: "eb2@4 [bb3,eb4,g4]@4 ~@2 bb3@2 [eb4,g4]@2 bb3 ~, ~@8 g3@7 ~", // Eb
  BP: "~ eb4 [g4,bb4,eb5]@2 ~ [eb4,bb4]@3, eb3@9 ~ g4@4 ~@2", BQ: "~ eb5@12 ~@3, [eb3,eb4]@7 ~, [g4,bb4]@3 ~",
})).s("gm_piano").gain(0.3).pan(0.6)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@4 A ~ B@2 A ~@3 C A B@2 C D C E F ~@2 G ~ H ~ I A H J ~ C F K I ~@2 L M K L ~ N ~@7 K ~@8 F ~@4 F ~@3 F K@2 ~@2 K
  ~@4 O C ~@3 F ~ K G D A J G A@2 ~ P A@2 ~@3 A ~ G ~ Q K ~ A F J I ~ A J ~@2 A K ~@3
>`.pickRestart({
  A: "~@12 [eb4,g4]@3 ~", B: "~ f4@2 ~@5", C: "~@8 bb3 ~@7", D: "~@2 g4@3 ~@11", E: "~@8 ab3 ~@7", F: "~@4 g4 ~@3",
  G: "~@12 [bb3,f4]@3 ~", H: "~@8 c4 ~@7", I: "~@4 f4 ~ bb3 ~", J: "~@12 [d4,f4]@3 ~", K: "~@4 f4 ~@3", L: "~ c5@2 ~@5",
  M: "~@12 [f4,ab4]@3 ~", N: "~@6 c4 ~@9", O: "~@4 ab4 ~@3", P: "~@2 f4@3 ~@11", Q: "~ g4@2 ~@5",
})).s("gm_piano").gain(0.18).pan(0.6)

// bass · acoustic bass · "Bass"
const bass_2 = note(`<
  A B C D E F G H I F J K L M N H O M P Q R S T U V F N K W F J X Y Z T H AA AB AC AA AD AE AF AG AH AI J AJ O B AK AL
  AM B AN AJ AO B J AJ O AP AQ AL E B J AL O AR AS Q E AP AN AT AA AU AV AA AU AW AX AY AZ B BA BB L Z BC BB Y F BD BE Y
  F BF X Y M BC BB R F BF Q BG BH BF H BI F BD BB BJ F J O BK BL
>`.pickRestart({
  A: "eb3@2 [eb3,bb3,eb4,g4]!3 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]", // Eb
  B: "[c3,g3,c4,eb4,g4,c5]!3 [c3,g3,c4,eb4,g4,c5]@2 [c3,g3,c4,eb4,g4,c5]!3", // Cm
  C: "~@4 [bb3,d4,f4]@2 [bb2,bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb2,bb3,d4,f4] ~@3 [bb2,bb3,d4,f4]@2, bb2@3 ~@5", // Bb
  D: "~@2 [ab3,d4,f4] [bb2,ab3,d4,f4] [ab3,d4,f4] [bb2,ab3,d4,f4]@2 [bb2,ab3,d4,f4], bb2@3 ~@5", // Ddim Bb7 Ddim Bb7
  E: "[eb3,g3,bb3,eb4,g4]!3 [eb3,g3,bb3,eb4,g4]@2 [eb3,g3,bb3,eb4,g4]!3", // Eb
  F: "~@4 [g3,eb4]@2 [g3,eb4]@2 [g3,eb4]@2 [c3,g3,eb4] ~@3 eb4@2, c3@3 ~@5", // Cm
  G: "~@2 [f3,bb3] [f3,bb3,d4]!2 [bb2,f3,bb3,d4]@2 [bb3,d4], bb2@3 ~@5", H: "[bb2,f3,ab3,d4,f4,bb4]!8",
  I: "eb3@4 [eb3,g3,bb3]@2 [g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@2 [eb3,g3,bb3,eb4] ~@3 [bb3,eb4]@2", // Eb Eb5
  J: "[bb2,f3,bb3,d4,f4,bb4]!3 [bb2,f3,bb3,d4,f4,bb4]@2 [bb2,f3,bb3,d4,f4,bb4]!3", // Bb
  K: "~@4 [ab3,d4]@2 [ab3,d4,f4]@2 [ab3,d4,f4]@2 [bb2,ab3,d4,f4] ~@3 [d4,f4]@2, bb2@3 ~@5", // Abdim Ddim Bb7 Dm
  L: "eb3@4 [eb3,g3,bb3]@2 [g3,bb3,d4,g4]@2 [eb3,g3,bb3,d4,g4]@2 [eb3,g3,bb3,d4,g4] ~@3 [bb3,d4]@2", // Eb Gm Ebmaj7 Bb
  M: "[g3,c4,eb4,g4,c5] [c3,g3,c4,eb4,g4,c5]!2 [c3,g3,c4,eb4,g4,c5]@2 [c3,g3,c4,eb4,g4,c5]!3", // Cm
  N: "~@4 [bb3,d4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb2,bb3,d4,f4] ~@5, bb2@3 ~@5", // Bb
  O: "[eb3,bb3,eb4,g4,bb4]!3 [eb3,bb3,eb4,g4,bb4]@2 [eb3,bb3,eb4,g4,bb4]!3", // Eb
  P: "[bb2,f3,bb3,d4] [f3,bb3,d4] [bb2,f3,bb3,d4] [bb2,f3,bb3,d4]@2 [f3,bb3,d4] [bb2,f3,bb3,d4] ~", // Bb
  Q: "[bb2,f3,ab3,d4,f4,bb4]!3 [bb2,f3,ab3,d4,f4,bb4]@2 [bb2,f3,ab3,d4,f4,bb4]!3", // Bb7
  R: "[eb3,bb3,eb4,g4,bb4] [bb3,eb4,g4,bb4] [eb3,bb3,eb4,g4,bb4] [eb3,bb3,eb4,g4,bb4]@2 [bb3,eb4,g4,bb4] [eb3,bb3,eb4,g4,bb4] ~", // Eb
  S: "[c3,g3,c4,eb4,g4,c5]!8", T: "~@4 [f3,bb3]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [bb2,f3,bb3,d4] ~@5, bb2@3 ~@5",
  U: "[f3,ab3,d4,f4,bb4] [bb2,f3,ab3,d4,f4,bb4]!2 [bb2,f3,ab3,d4,f4,bb4]@2 [bb2,f3,ab3,d4,f4,bb4]!3", // Bb7
  V: "eb3@4 [eb3,bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] ~@3 [eb4,g4]@2", // Eb
  W: "eb3@4 [eb3,bb3,eb4]@2 [bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] ~@5", // Eb5 Eb
  X: "~@4 [ab3,d4]@2 [ab3,d4,f4]@2 [ab3,d4,f4]@2 [bb2,ab3,d4,f4] ~@5, bb2@3 ~@5", // Abdim Ddim Bb7
  Y: "eb3@4 [eb3,g3,bb3]@2 [g3,bb3,d4,g4]@2 [eb3,g3,bb3,d4,g4]@2 [eb3,g3,bb3,d4,g4] ~@5", // Eb Gm Ebmaj7
  Z: "~@2 [g3,eb4]!3 [c3,g3,eb4]@2 eb4, c3@3 ~@5", // Cm
  AA: "[db3,f3,ab3,db4,f4]!3 [db3,f3,ab3,db4,f4]@2 [db3,f3,ab3,db4,f4]!3", // Db
  AB: "[f3,bb3,db4,f4,bb4] [bb2,f3,bb3,db4,f4,bb4]!2 [bb2,f3,bb3,db4,f4,bb4]@2 [bb2,f3,bb3,db4,f4,bb4]!3", // Bbm
  AC: "[ab2,eb3,ab3,c4,eb4,ab4] [ab3,c4,eb4,ab4] [ab2,eb3,ab3,c4,eb4,ab4] [ab2,eb3,ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] [ab2,eb3,ab3,c4,eb4,ab4] ~", // Ab
  AD: "~@4 [f3,bb3,db4]@2 [bb3,db4,f4,bb4]@2 [f3,bb3,db4,f4,bb4]@2 [bb2,f3,bb3,db4,f4,bb4] ~@5, bb2@3 ~@5", // Bbm
  AE: "~@4 [eb3,ab3,c4]@2 [eb3,ab3,c4]@2 [eb3,ab3,c4]@2 [ab2,eb3,ab3,c4] ~@3 [ab3,c4]@2, ab2@3 ~@5", // Ab
  AF: "f2@3 ~ [eb3,a3,c4]@2 ~@4 [f2,c3,a3]@2 [f2,f3,bb3,c4]@2 [f2,f3,bb3,c4]@2", // Adim F Fsus4
  AG: "~@2 [f3,a3,c4] ~@2 [f2,f3,a3] f2@2, f2@3 ~@5", // F
  AH: "~@4 [g3,bb3,d4]@3 [bb3,d4] [eb3,g3,bb3,d4,g4]@2 [eb3,g3,bb3,d4,g4] ~@3 [eb3,g3,bb3] ~, eb3@7 ~@9", // Gm Bb Ebmaj7 Eb
  AI: "~@4 [g3,eb4]@2 [g3,eb4]@2 [g3,eb4]@2 [c3,g3,eb4] ~@3 [c3,g3,eb4]@2, c3@3 ~@5", // Cm
  AJ: "~@4 [ab3,d4,f4]@2 [ab3,d4,f4]@2 [ab3,d4,f4]@2 [bb2,ab3,d4,f4] ~@3 [bb2,ab3,d4]@2, bb2@3 ~@5", // Ddim Bb7
  AK: "~@4 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [bb2,f3,bb3,d4]@3 ~ [bb2,f3,bb3]@2, bb2@3 ~@5", // Bb Bb5
  AL: "~@4 [ab3,d4,f4]@3 [d4,f4] [ab3,d4,f4]@2 [bb2,ab3,d4,f4] ~@3 [bb2,ab3,d4] ~, bb2@7 ~@9", // Ddim Dm Ddim Bb7
  AM: "eb3@4 [eb3,bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4]@3 ~ [eb3,bb3,eb4]@2", // Eb Eb5
  AN: "~@4 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb2,bb3,d4,f4]@2 ~@2 [bb2,bb3,d4,f4] ~, bb2@3 ~@5", // Bb
  AO: "eb3@4 [eb3,g3,bb3,d4,g4]@2 [g3,bb3,d4,g4]@2 [eb3,g3,bb3,d4,g4]@2 [eb3,g3,bb3,d4,g4]@2 ~@2 [eb3,g3,bb3,d4,g4] ~", // Ebmaj7 Gm Ebmaj7
  AP: "~@4 [g3,eb4]@2 [g3,eb4]@2 [g3,eb4]@2 [c3,g3,eb4]@3 ~ [c3,g3,eb4]@2, c3@3 ~@5", // Cm
  AQ: "~@4 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [bb2,f3,bb3,d4]@2 ~@2 [bb2,f3,bb3,d4] ~, bb2@3 ~@5", // Bb
  AR: "~@4 [g3,eb4]@3 eb4 [g3,eb4]@2 [c3,g3,eb4] ~@3 [c3,g3,eb4] ~, c3@7 ~@9", // Cm
  AS: "[bb2,f3,bb3,d4]!3 [bb2,f3,bb3,d4]@2 [bb2,f3,bb3,d4]!3", // Bb
  AT: "~@4 [ab3,d4,f4]@2 [ab3,d4,f4]@2 [ab3,d4,f4]@2 [bb2,ab3,d4,f4]@2 ~@2 [bb2,ab3,d4,f4] ~, bb2@3 ~@5", // Ddim Bb7
  AU: "[bb2,f3,bb3,db4,f4,bb4]!3 [bb2,f3,bb3,db4,f4,bb4]@2 [bb2,f3,bb3,db4,f4,bb4]!3", // Bbm
  AV: "[ab2,eb3,ab3,c4,eb4,ab4]!3 [ab2,eb3,ab3,c4,eb4,ab4]@2 [ab2,eb3,ab3,c4,eb4,ab4]!3", // Ab
  AW: "~@4 [eb3,ab3,c4]@2 [eb3,ab3,c4]@2 [eb3,ab3,c4]@2 [ab2,eb3,ab3,c4] ~@3 [ab2,eb3,ab3]@2, ab2@3 ~@5", // Ab Ab5
  AX: "f2@3 ~ [eb3,a3,c4]@2 ~@2 [c3,a3,d4]@3 ~ f2@4", // Adim D7
  AY: "~@2 [f3,a3,c4] ~ [f2,f3,a3] [f2,f3] [f2,c3,eb3,a3,c4,f4] ~, f2@6 ~@4 a3 ~@5", // F F7
  AZ: "[eb3,g3,bb3,eb4,g4] [g3,bb3,eb4,g4] [eb3,g3,bb3,eb4,g4] [eb3,g3,bb3,eb4,g4]@2 [g3,bb3,eb4,g4] [eb3,g3,bb3,eb4,g4] ~", // Eb
  BA: "[bb2,f3,bb3,d4,f4,bb4]!8", // Bb
  BB: "~@4 [ab3,d4,f4]@2 [ab3,d4,f4]@2 [ab3,d4,f4]@2 [bb2,ab3,d4,f4] ~@3 [d4,f4]@2, bb2@3 ~@5", // Ddim Bb7 Dm
  BC: "~@4 [f3,bb3]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [bb2,f3,bb3,d4] ~@3 [bb3,d4]@2, bb2@3 ~@5", // Bb5 Bb
  BD: "~@4 [bb3,d4]@2 [bb3,d4,f4]@2 [bb3,d4,f4]@2 [bb2,bb3,d4,f4] ~@3 [d4,f4]@2, bb2@3 ~@5", // Bb Dm
  BE: "~@2 [ab3,d4] [ab3,d4,f4]!2 [bb2,ab3,d4,f4]@2 [d4,f4], bb2@3 ~@5", // Abdim Ddim Bb7 Dm
  BF: "[bb2,f3,bb3,d4,f4,bb4] [bb3,d4,f4,bb4] [bb2,f3,bb3,d4,f4,bb4] [bb2,f3,bb3,d4,f4,bb4]@2 [bb3,d4,f4,bb4] [bb2,f3,bb3,d4,f4,bb4] ~", // Bb
  BG: "[eb3,g3,bb3,eb4,g4]!8", BH: "~@4 [g3,eb4]@2 [g3,eb4]@2 [g3,eb4]@2 [c3,g3,eb4] ~@5, c3@3 ~@5",
  BI: "[eb3,bb3,eb4,g4,bb4]!8", BJ: "eb3@4 [eb3,g3,bb3]@2 [g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@2 [eb3,g3,bb3,eb4] ~@5",
  BK: "eb3@4 [eb3,bb3,eb4,g4]@3 [eb3,bb3,eb4,g4] [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] ~@3 [eb3,bb3,eb4] ~, ~@7 g4", // Eb Eb5
  BL: "~ [eb4,g4]@12 ~@3, [eb3,bb3]@3 ~", // Eb Eb5
})).s("gm_acoustic_bass").gain(0.25)

// bass · acoustic bass · "Bass" · soft notes
const bass_soft = note(`<
  ~@5 A B ~ C A ~ D E F G ~@2 F H ~ I ~ J K L A G D M A ~ N O A J ~@2 K P ~ Q R S T U V ~ W ~@2 X Y Z ~ AA W AB ~@2 W ~
  V AA Y ~@3 Y ~ AC ~@3 V AA@2 ~@5 AD ~ AE AF ~@2 AG E A B AG O A AH D O A AI N O F B AG I A AI ~@2 AJ AI ~@2 A AH AG AK
  A ~@4
>`.pickRestart({
  A: "~@3 c3 ~@3 [c3,g3]", B: "~@2 d4 bb2 ~@3 [bb2,f3]", C: "~@4 eb4@2 eb3 ~@7 [eb3,g3]@2",
  D: "~@2 f4 bb2 ~@3 [bb2,ab3]", E: "~@4 [d4,g4]@2 eb3 ~@7 [eb3,g3,g4]@2", F: "c3 ~@7",
  G: "~@2 f4 bb2 ~@3 [d4,f4], ~@14 [bb2,bb3] ~", H: "~ bb2 ~@3 bb2 ~ [bb2,f3,bb3,d4]",
  I: "~ eb3 ~@3 eb3 ~ [eb3,bb3,eb4,g4,bb4]", J: "~@2 d4 bb2 ~@3 [bb3,d4], ~@14 [bb2,f3] ~", K: "bb2 ~@7",
  L: "~@3 eb3 ~@3 [eb3,bb3]", M: "~@2 g4 eb3 ~@3 [eb4,g4], ~@14 [eb3,bb3] ~",
  N: "~@2 f4 bb2 ~@3 [d4,f4], ~@14 [bb2,ab3] ~", O: "~@4 [d4,g4]@2 eb3@2 ~@6 [eb3,g3,bb3] ~, ~@7 [d4,g4]",
  P: "~ [ab2,eb3] ~@3 [ab2,eb3] ~ [ab2,eb3,ab3,c4,eb4,ab4]", // Ab5 Ab
  Q: "~@4 [f4,bb4]@2 [bb2,f3]@2 ~@6 [bb2,f3,bb3,db4] ~, ~@7 [f4,bb4]", R: "~@3 ab2 ~@3 [ab2,eb3]", S: "~@5 d4 ~@2",
  T: "~@3 [f2,f3,a3,c4] ~ c4 ~@2", U: "~@7 [eb3,g3,g4] ~@6 [d4,g4] ~", V: "~@3 c3 ~@4", W: "~@3 bb2 ~@3 f4",
  X: "~@3 bb2 ~@3 d4", Y: "~@7 [bb2,ab3] ~@6 f4 ~", Z: "~@3 eb3 ~@3 g4", AA: "~@3 bb2 ~@4", AB: "~@3 eb3 ~@4",
  AC: "~@7 [c3,g3] ~@8", AD: "~@3 ab2 ~@3 c4", AE: "~@6 [f3,a3,c4]@2 c4@2 c4 ~@5, ~@6 f2 ~@9",
  AF: "~ eb3 ~@3 eb3 ~ [eb3,g3,bb3,eb4,g4]", AG: "~@3 bb2 ~@3 [bb2,ab3]", AH: "~@2 f4 bb2 ~@3 [bb2,bb3]",
  AI: "~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3,bb3,d4,f4,bb4]", AJ: "~@6 c3@2 ~@6 [c3,g3] ~, ~@7 eb4",
  AK: "~@2 eb4 eb3 ~@3 [bb3,eb4], ~@14 [eb3,g3] ~", // Eb5 Eb
})).s("gm_acoustic_bass").gain(0.15)

// chords · pizzicato strings · "Strings"
const pizzicato_strings = note(`<
  A B C D E B F C G H I J K L M J N O C P K L F J A B Q R G S T J E L I D U V W X V Y Z AA G H C P AB L AC C AD O C P K
  O M D E S M D AD H AC C N L AE P AD L M D AF AG AH AF AG AI AJ AK A H Q C N O AE P AL H M D A H AC C G O F R G B Q C
  AB L M C E B M P G B T G AM AN
>`.pickRestart({
  A: "~ bb3 ~@4 bb3 g4, eb3@7 ~, ~@4 eb4@6 eb4@5 ~, ~@6 bb3@5 ~@5, ~@8 g4@5 ~@3",
// … 125 more lines

More by Enya