Strudelify

Besame Mucho

The Beatles

KeyD minorTempo155 bpm
0:00/0:00
// Besame Mucho — The Beatles
// 155 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 82 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(155/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 · fretless bass · "bass"
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R S T U D V W X Y Z AA M S AB AC AD AE AF AG AH AI AJ AK AL AM AN AO M S AP AQ AR AS
  AT AU AV AW AX P Z AY AZ BA H BB BC BD BE BF Q BG BH S BI H BJ BK BL BM BN AI BO BP BQ BR
>`.pickRestart({
  A: "d2@5 ~ f2@2 a2@3 ~ f2@2 a2@2", B: "d2@6 f2@2 a2@3 ~ f2@3 ~", C: "d2@11 ~ g2@4", D: "d2@5 ~ f2@2 a2@4 f2@4",
  E: "g2@5 ~ g2@2 gb2@5 ~ gb2@2", F: "f2@5 ~ f2@2 e2@3 ~ e2@3 ~", G: "g2@5 ~ g2 ~ c2@4 c2@4",
  H: "g2@5 ~ g2@2 a2@3 ~ a2@3 ~", I: "d2@5 ~ d2@2 a2@3 ~ a2@3 ~", J: "d2@8 a2@4 f2 ~ a2@2",
  K: "d2@5 ~ d2@2 a2@3 ~ gb2@2 a2@2", L: "d2@5 ~ gb2@2 a2@4 gb2@2 a2 ~", M: "g2@5 ~ g2@2 d2@3 ~ d2@3 ~",
  N: "g2@5 ~ g2 ~ d2@3 ~ g2@3 ~", O: "d2@5 ~ f2@2 a2@3 f2@2 ~ a2@2", P: "e2@5 ~ e2@2 a2@3 ~ a2@3 ~",
  Q: "d2@5 ~ d2@2 g2@3 ~ g2@3 ~", R: "d2@11 ~ a2 ~ f2@2", S: "g2@5 ~ g2 ~ d2@3 ~ d2@3 ~", T: "d2@5 ~ d2 f2 a2@3 ~ f2@4",
  U: "a2@5 ~ a2@2 g2@3 ~ g2@3 ~", V: "g2@5 ~ g2 ~ g2@3 ~ g2@3 ~", W: "d2@5 ~ d2 ~ d2@2 a2@2 f2@2 d2 ~",
  X: "e2@5 ~ e2@2 bb2@3 ~ bb2@4", Y: "g2@6 g2@2 a2@7 ~", Z: "d2@5 ~ d2 ~ g2@3 ~ g2@3 ~",
  AA: "d2@5 ~ d2 ~ d2@2 f2 ~ a2@2 f2@2", AB: "g2@5 ~ g2 ~ c2@3 ~ c2@4", AC: "g2@5 ~ g2 ~ a2@3 ~ a2@3 ~",
  AD: "d2@5 ~ d2 ~ a2@3 ~ a2@3 ~", AE: "d2@5 ~ d2 ~ d2@2 a2@2 f2@2 a2@2", AF: "d2@5 ~ gb2@2 a2@3 ~ gb2@2 a2@2",
  AG: "d2@6 gb2@2 a2@3 ~ gb2@2 a2 ~", AH: "g2@5 ~ g2 ~ gb2@5 ~ gb2@2", AI: "f2@5 ~ f2 ~ e2@5 ~ e2 ~",
  AJ: "d2@5 ~ d2@2 f2@2 a2@2 f2 ~ d2@2", AK: "bb2@5 ~ bb2@2 a2@5 ~ a2 ~", AL: "d2@5 ~ d2 f2 a2@2 f2@2 a2 f2 d2 ~",
  AM: "d2@5 eb2 bb2 a2@4 ~ a2@3 ~", AN: "d2@5 ~ d2 ~ d2@2 ~@2 g2@3 ~", AO: "d2@5 ~ d2 ~ d2@3 ~ a2 ~ f2@2",
  AP: "g2@7 ~ c2@8", AQ: "g2@8 a2@7 ~", AR: "d2@6 f2@2 a2@3 ~ a2@3 ~", AS: "d2@6 d2 ~ d2@2 a2@2 f2 ~ a2@2",
  AT: "d2@6 gb2@2 a2@3 ~ gb2@2 a2@2", AU: "d2@6 gb2@2 a2@4 gb2@2 a2 ~", AV: "g2@5 ~ g2@2 d2@4 d2@3 ~",
  AW: "g2@5 ~ g2@2 d2@3 ~ g2@3 ~", AX: "d2@5 ~ f2@2 a2@3 ~ f2 ~ f2@2", AY: "d2@5 ~ d2 f2 a2@2 f2 ~ a2 ~ f2@2",
  AZ: "g2@5 ~ g2@2 g2@3 ~ g2@3 ~", BA: "d2@5 ~ d2 ~ d2@3 ~ d2@2 f2 ~", BB: "d2@5 ~ d2 ~ g2@4 g2@3 ~",
  BC: "d2@5 ~ g2@2 d2@3 ~ g2@3 ~", BD: "d2@5 ~ d2@2 f2@4 a2 ~ f2 ~", BE: "e2@5 ~ e2@2 bb2@3 ~ bb2@3 ~",
  BF: "g2@5 ~ g2@2 a2@7 ~", BG: "d2@5 ~ d2 ~ f2 ~ a2@2 f2@2 d2@2", BH: "g2@5 ~ g2 ~ d2@3 ~ d2@4",
  BI: "g2@5 ~ g2@2 c2@3 ~ c2@3 ~", BJ: "d2@5 ~ d2@2 a2@3 ~ a2@4", BK: "d2@5 ~ d2 ~ d2@3 ~ f2 a2 f2 ~",
  BL: "d2@5 ~ d2 gb2 a2@2 gb2 ~ a2@2 gb2 ~", BM: "d2@6 gb2@2 a2@3 ~ gb2@4", BN: "g2@5 ~ g2@2 gb2@6 gb2@2",
  BO: "d2@6 f2@2 a2@4 f2 ~ a2 ~", BP: "bb2@5 ~ bb2@2 a2@3 ~ a2@3 ~", BQ: "d2@5 ~ d2@2 f2@3 ~ a2 ~ f2 ~", BR: "d2@3 ~@5",
})).s("gm_fretless_bass").gain(0.57).pan(0.6)

// chords · acoustic guitar nylon · "guitar"
const acoustic_guitar_nylon = note(`<
  A@2 B@4 C D E@2 F G H I J K L M N O P Q R S T U V@3 R W X Y Z AA AB AC AD Q AE AF@3 AG@6 AH AI AJ AK AL AM AN AO@2 AP
  AQ AR@2 AS AT AU AV AW AX AY AZ BA BB@3 BC@2 BD BE BF@2 BG@2
>`.pickRestart({
  A: "[~@3 [f3,a3]@7 [d3,f3,a3] ~ f2 ~ [d3,f3,a3] ~@4 [d3,f3,a3]@11 ~@2, d3@9 ~@7 d2@14 ~@2, ~@3 d4@27 ~@2]/2", // F Dm
  B: "[d2@2 ~ [d4,f4]@3 d4@2 [a3,d4]@2 ~ [bb3,d4,e4]@4 ~@3 [d4,f4]@10 f3 a3 g3 ~@9 g4@2 ~ f4@4 ~@3 [d4,g4]@4 [bb3,d4,g4] ~@3 [g3,bb3,d4,g4] ~@3 [g3,bb3,d4] ~, ~@2 f3@7 ~ g3@4 ~ f3@11 ~@5 g3@15 ~ g3@8 ~@9, ~@2 a3@5 ~@10 a3@11 ~@6 [bb3,d4]@13 ~@2 bb3@4 ~@11, ~@37 e4@7 ~@20]/4", // Dm D5 Em7b5 Dm G5 Gm Bb
  C: "~@2 [g3,bb3,d4,g4]@3 ~ [g3,bb3,d4,g4] ~@3 [c4,eb4,gb4,a4] ~@3 [c4,eb4,gb4,a4] ~", // Gm Cdim
  D: "~@2 [d4,g4,bb4]@3 ~ [d4,g4,bb4] ~@3 [e4,g4,db5] ~@3 [e4,g4,db5] ~", // Gm Dbdim
  E: "[~@2 [d4,f4,a4]@4 f4 ~ [db4,e4,g4]@2 ~ [db4,e4,g4]@2 [db4,e4,g4] ~@4 [d4,f4]@13 ~, ~@15 a3@14 ~@3, ~@18 a4@11 ~@3]/2", // Dm Dbdim Dm
  F: "~@2 [gb4,a4,c5]@8 ~ [d4,gb4,a4,c5] ~@2 [d4,gb4,a4,c5] ~, d4@5 ~@3", // Gbdim D7
  G: "~@3 [a4,c5]@3 [d4,gb4,a4,c5] ~ c4@2 [gb4,a4] ~ d4@2 [gb4,a4] ~, ~ [d4,gb4]@2 ~@5", // Am D7 Gbm D
  H: "~@2 [bb4,d5]@3 ~ [bb4,d5]@2 ~@2 [bb4,d5]@3 ~ [bb4,d5] ~, g4@7 ~ gb4@8", // Bb
  I: "~@2 bb4@2 d5@2 f4@2 ~@2 bb4@2 d5@2 bb4 ~, f4@6 ~@2 e4@7 ~",
  J: "~@2 a4@5 ~ f4 ~ d4 f4 a3 ~ f3 ~, d4@7 ~@2 a3@2 ~@5, ~@2 f4@3 ~@11",
  K: "~@3 [ab3,b3]@3 [ab3,b3] ~@3 [g3,db4]@3 ~ [g3,db4]@2, e3@7 ~ e3@7 ~", // Abm Gdim
  L: "~ [a3,d4]@5 [a3,d4] ~ [g3,bb3,d4] ~@2 [g3,bb3,e4] ~ [g3,bb3,d4]@2 ~, f3@3 ~@5", M: "[f3,a3,d4]@7 ~",
  N: "~@2 [g3,bb3,d4,g4]@3 ~ [g3,bb3,d4] ~@3 [g3,bb3,d4,g4] ~@3 [g3,bb3,d4,g4] ~", // Gm
  O: "~@2 [f3,a3,d4]@4 [a3,d4] ~@3 [f3,a3,d4] ~@3 [f3,a3,d4] ~", // Dm D5 Dm
  P: "~@2 [g3,a3,db4]@4 [g3,a3,db4] ~@3 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~", // A7 Gm
  Q: "~@2 [f3,a3,d4]@4 [f3,a3,d4] ~@3 [f3,a3,d4] ~@3 [f3,a3,d4] ~", // Dm
  R: "~@2 [g3,bb3,d4]@4 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~", // Gm
  S: "~@2 [f3,a3,d4]@3 ~ [f3,a3,d4] ~@3 [f3,a3,d4] ~@3 [f3,a3,d4] ~", // Dm
  T: "~@2 [ab3,b3,e4]@3 [ab3,b3,e4] ~@2 [bb3,d4,f4] ~@2 [bb3,d4,f4] ~ [bb3,d4,f4] ~@2", // E Bb
  U: "~ bb3@2 ~ bb3 b3 g3 ab3 ~@2 [db4,e4,g4]@5 ~, g3@3 d4@2 ~@3 a3@7 ~", // Dbdim
  V: "[~@2 [f4,a4]@4 ~@5 e4@2 bb3@2 ~@3 [a3,d4]@9 ~ d3 f3 a3 ~@3 [bb3,d4]@4 bb3 ~@3 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~, d4@7 ~@2 g3@5 ~ f3@12 ~@4 g3@7 ~@10, ~@10 bb3@3 ~@35]/3", // F D5 Bb Gm
  W: "~@2 [g3,bb3,d4]@3 [g3,bb3,d4]@2 ~ [eb3,gb3]@2 ~ [eb3,gb3]@2 ~ g3@2", // Gm Ebm
  X: "g3@2 ~ [g3,bb3,d4]@2 ~ [g3,bb3,d4]@2 ~ [e3,a3,db4]@2 [e3,a3,db4]@2 ~ [e3,a3,db4]@2", // Gm A
  Y: "~@2 [a3,d4]@4 [a3,d4]@3 ~@2 db4 e4 db4 a3 g3, f3@9 g3@5 ~@2, ~@10 a3@3 ~@3", Z: "~ [f3,a3]@6 ~, d4@15 ~",
  AA: "~@2 [a3,c4,d4,gb4]@4 [c4,d4,gb4] ~@3 [a3,c4,d4,gb4] ~@3 [a3,c4,d4,gb4] ~", // D7
  AB: "~@2 [a3,c4,d4,gb4]@4 [a3,c4,d4,gb4] ~@3 [a3,c4,gb4] ~@3 [a3,c4,gb4] ~", // D7 Gbdim
  AC: "~@2 [g3,d4]@4 [bb3,d4]@2 ~@2 [bb3,d4]@3 gb3@2 ~, ~@2 bb3@3 ~@3 gb3@4 ~@4", // G5 Bb
  AD: "~@2 [bb3,d4]@4 f3@2 ~@2 [bb3,d4]@3 ~ [bb3,d4] ~, f3@6 ~@2 e3@7 ~", AE: "~@2 [f3,ab3,bb3]@5 ~@3 [e3,g3,db4]@5 ~",
  AF: "[~@2 [f3,a3,d4]@10 ~ a3 f3 ~@5 bb2@2 db3 ~@3 db3@2 e3@2 db3 ~@4 [a3,d4]@7 ~@2 bb3@4, ~@15 f3@8 ~@8 d3@10 ~@2 [d3,g3]@5, ~@18 g2@4 ~@2 a2@6 ~@4 f3@7 ~@7]/3", // Dm D5 G5
  AG: "[~@3 [a3,d4]@9 d3 f3 a3 ~@3 [bb3,d4]@8 ~ [bb3,e4]@4 ~@3 [bb3,d4]@12 ~@2 g4@3 [bb3,d4,g4]@2 ~ [bb3,d4,g4]@2 ~ [eb4,gb4,a4]@2 [eb4,gb4,a4]@2 [eb4,gb4,a4] ~@2 [g4,bb4]@3 [d4,g4,bb4]@2 [d4,g4,bb4] ~@2 [g4,db5]@2 [e4,g4,d5]@2 [e4,g4,e5]@2 ~ [f4,a4]@10 ~@2 e4 g4 e4 db4 a3, d3@11 ~@36 [bb3,d4]@4 ~@5 c4@6 ~ d4@3 ~@5 e4@3 ~@4 d4@9 ~@3 db4@2 ~@4, ~@2 f3@10 ~@3 g3@11 g3@3 ~@2 g3@14 ~ g3@8 ~@35 a3@4 ~@3]/6", // D5 Bb Bbdim Bb Gm Ebdim Gm Gdim …
  AH: "~@3 [f3,a3]@12 ~, ~ d4@15", AI: "~@2 [a3,c4,gb4]@4 [a3,c4,gb4] ~@3 [a3,c4,gb4] ~@3 [a3,c4,gb4] ~",
  AJ: "~@2 [a3,c4,gb4]@3 ~ [a3,c4,gb4] ~@3 [a3,c4,gb4] ~@3 [a3,c4,gb4] ~", // Gbdim
  AK: "~@2 [g3,bb3,d4]@3 ~ [g3,bb3,d4] ~@3 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~", // Gm
  AL: "~@3 [g3,bb3,d4]@3 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~", // Gm
  AM: "~@2 [f3,a3,d4]@3 ~ [f3,a3,d4] ~@3 [f3,a3] ~@3 [f3,a3,d4] ~", // Dm F Dm
  AN: "~@2 [e3,ab3,b3]@4 [e3,ab3,b3] ~@3 [g3,db4]@4 e3 ~, ~@10 e3@3 ~@3", // E Gdim
  AO: "[~@2 [f3,a3,d4]@3 [f3,a3,d4] ~@2 e4@2 [bb3,e4]@2 bb3 [g3,e4] ~ [a3,d4]@15 ~@2, ~@7 g3@5 ~@2 f3@16 ~@2, ~@7 bb3@2 ~@23]/2", // Dm Bbdim C D5
  AP: "~@3 g4@2 [g3,bb3,d4]@2 ~ [g3,bb3,d4,g4]@2 ~ [g3,bb3,d4] ~@2 [g3,bb3,d4,g4] ~, ~ g3@3 ~@12, ~ [bb3,d4] ~@6", // Gm Bb
  AQ: "~@3 f4@2 ~ [f3,a3,d4]@2 [f3,a3,f4]@2 ~ [f3,a3,d4]@2 ~ [f3,a3,f4]@2, ~@2 [f3,a3]@3 ~@11", // Dm F Dm F
  AR: "[~@2 db4 e4@3 [g3,db4]@2 ~@2 [bb3,d4]@2 ~ [g3,bb3,e4]@2 ~ [a3,d4]@12 ~@4, ~ a3@3 ~@12, ~@2 g3@4 ~@2 g3@4 ~@3 f3@12 ~@5, ~@3 d4 ~@12 f4@10 ~@6]/2", // Gdim Bb Edim D5
  AS: "~@2 d4 g4@2 ~ [g3,bb3,d4]@2 ~ [g3,bb3,g4]@2 [g3,bb3,d4]@2 ~ [g3,bb3,g4]@2, ~ [g3,bb3]@2 ~@5", // Gm
  AT: "~@3 f4@2 ~ [f3,a3,d4]@2 [f3,a3,f4]@2 ~ [f3,a3]@2 [f3,a3,f4]@2 ~, ~ [f3,a3]@2 ~@2 d4 ~@2", // Dm F
  AU: "~ ab3@3 b3@2 ab3@2 ~ ab3@2 bb3@2 ~ bb3 ~, e3@7 ~ f3@7 ~, ~@13 ab3@2 ~",
  AV: "~@2 [bb3,d4]@4 g3 ab3 ~@2 [db4,e4]@5 ~, g3@5 ~@2 a3@8 ~", // Bb Dbm
  AW: "~@2 [a3,d4]@6 ~ [g3,bb3,d4]@3 ~ [g3,bb3,d4]@2 ~, f3@7 ~@9", AX: "[f3,a3,d4]@11 f3 a3 f3 a3 g3",
  AY: "~@2 [bb3,d4]@3 [bb3,d4]@2 ~@4 d4@3 [bb3,d4]@2, g3@7 ~ gb3@8, ~@5 bb3 ~@2", // Bb
  AZ: "~@2 [bb3,d4]@3 ~ [bb3,d4]@2 ~@2 [bb3,d4]@3 ~ [bb3,d4] ~, f3@4 e3@3 ~", // Bb
  BA: "~@2 [g3,bb3,d4]@3 [g3,bb3,d4]@2 ~ [c4,eb4,gb4]@2 ~ [c4,eb4,gb4]@2 ~ [c4,eb4,gb4]@2", // Gm Cdim
  BB: "[[d4,g4,bb4]@2 ~ [d4,g4,bb4]@2 ~ [d4,g4,bb4]@2 [e4,g4,db5]@2 ~ [e4,g4,db5]@2 [e4,g4,db5] ~@2 a4@5 a4@3 ~@4 g4 f4@2 ~@3 [f4,a4]@7 d4 db4 c4 bb3 g3 gb3 eb3, ~@15 d4@8 ~ db4@7 d4@9 ~@8, ~@16 f4@8 ~@2 e4@5 ~@17]/3", // Gm Dbdim F
  BC: "[~@2 gb3@3 ~ gb3@4 d3 gb3 a3 d3!2 ~@3 [gb3,a3,c4]@4 [gb3,a3,c4] ~@3 [d3,gb3,a3,c4] ~@3 [d3,gb3,a3,c4] ~, d3@9 ~@6 d3@7 ~@10, ~@2 [a3,c4]@7 ~@23]/2", // Gbdim D7 Am
  BD: "~@2 [g3,bb3,d4]@4 [g3,bb3] ~@3 [gb3,bb3,d4]@4 [bb3,d4] ~", // Gm Gbaug Bb
  BE: "~@2 [f3,bb3,d4]@4 [f3,bb3,d4] ~@3 [e3,d4]@4 [bb3,d4] ~, ~@10 bb3@3 ~@3", // Bb E7 Bb
  BF: "[~@2 [f3,a3]@6 [d3,a3,d4] ~@2 f3 a3 f3 ~@3 [d3,f3,ab3]@6 ~@3 db4 ~ db4@4, ~@2 d4@4 ~@8 bb3@9 ~ e3@7 ~, ~@13 g3@3]/2", // F D5 Ddim
  BG: "[[f3,a3]@6 ~@3 a3 d4 ~ e4 d4 e4 f4@10 ~@7, d4@9 ~@23]/2", // F
})).s("gm_acoustic_guitar_nylon").gain(0.51).pan(0.2)

// other · string ensemble 2 · "strings"
const string_ensemble_2 = note(`<
  A ~@3 B C D E F G H@2 I J K L M@2 N O P Q R@2 S T U@7 V W X Y Z AA@2 AB@2 AC@2 AD@2 AE@2 AF@2 AG AH AI@2 AJ AK AL AM@2
  AN@4 AO@2 AP AQ AR AS AT@5 AU@7 AV
>`.pickRestart({
  A: "d4@7 ~", B: "~@11 d5@5", C: "c5@2 ~ b4@2 bb4@10 ~", D: "~ g4@3 c4@4", E: "g4@7 ~ a4@8", F: "a4@7 ~ g4@8",
  G: "f4@3 ~@2 db4@2 d4@2 e4 gb4 ~ g4 ab4 a4 ~", H: "[gb4 ~@17 a4@12 ~@2, ~ gb4@29 ~@2, ~@3 d4@27 ~@2]/2",
  I: "[g4,bb4,d5]", J: "~@2 [bb4,d5]@5 ~ [a4,c5]@4 [g4,bb4]@4", K: "[a4,d5]@14 f4 ~", L: "~ a4, e4",
  M: "[d4@7 ~ d4@2 ~@2 bb3@3 ~ g3 ~@7 ab4 a4 bb4 b4 c5 db5 d5 e5, ~@8 g4@7 f4@5 ~@12, ~@15 a3@2 ~@15]/2", N: "g5",
  O: "f5@15 e5", P: "f5 e5@15", Q: "~@5 ab4 ~ a4 db5 ~ d5 e5 ~ f5 e5 ~", R: "[g5@15 f5@14 ~ f5 g5]/2", S: "e5 f5",
  T: "d5 db5",
  U: "[d5@25 a4@2 f4@3 gb4 g4@27 c5 b4 bb4 a4 ab4 g4@9 c4@2 eb4@2 ~ a4 ~ g4@7 ab4 a4@7 ab4 a4@9 g4@8, ~@38 gb4 ~@17]/7",
  V: "f4@5 ~ db4 d4 e4@2 gb4 g4 a4@2 ~@2", W: "[d4,gb4]@13 ~ [e4,g4]@2, a4 ~@15", X: "[gb4,a4]@11 [gb4,d5]@5",
  Y: "g4@8 ~ gb4@7", Z: "f4@8 [bb4,d5]@2 ~ [a4,c5]@2 [g4,bb4]@2 ~",
  AA: "[[f4,a4,d5]@11 ~ d4@3 ab4@9 [e4,g4]@7 ~, ~@3 f4@3 ~@2, ~@15 d4@7 ~@10]/2", // Dm Em
  AB: "[[d4,f4]@9 ~ e4 f4 ~ a4@2 c5@7 ~ a4@8 ~, ~@11 bb4 ~@4]/2", AC: "[d5@20 ~ ab4 a4@2 d5 ~ e5 f5 ~ e5 d5 ~]/2",
  AD: "[ab5 a5@9 g5@2 f5@2 e5@18]/2", AE: "[~@2 g4@8 ~@5 g4@8 a4@3 db5@3 e5@3]/2",
  AF: "[d5@9 a4@2 g4 ~ gb4 ~ a4@6 ~ db4 d4 e4 gb4 g4 ~ ab4 a4 bb4 ~]/2", AG: "gb4@7 [e4,g4], d4@3 ~",
  AH: "~ [gb4,a4]@15", AI: "[[g4,bb4] ~ bb4@16 ~@2 [bb4,d5]@4 [a4,c5]@4 [g4,bb4]@4, d5@19 ~@13]/2",
  AJ: "~ a4@15, f4@15 ~, ~ d5@9 ~@6", AK: "[e4,ab4,b4] [e4,a4], d4@3 ~@5", AL: "d4 ~",
  AM: "[~@6 ab4 a4 bb4 b4 c5 db5 d5 e5 f5 g5@16 ab5]/2",
  AN: "[a5@11 g5@2 f5@2 g5@8 ~ g4@3 a4@2 bb4@2 a4@6 ~ ab4@2 ~ db5@2 d5@2 e5@2 g5@12 ~ d5 bb4 g4@2, ~@20 a4 ~@11]/4",
  AO: "[f4@11 ~ e4 d4@2 e4@6 d4 db4 b3 bb3@8]/2", AP: "~@3 d4@2 e4 ~ db4@9", AQ: "d4@12 f3 ab3 a3 [db4,d4]",
  AR: "e4@2 f4@3 g4@2 ~ a4@2 g4@2 f4 e4@2 ~", AS: "g4@2 a4@3 g4@6 d4@4 ~",
  AT: "[c4@2 b3@2 ~ bb3@10 g4@8 c4@2 eb4@2 gb4 ~ a4@2 g4@8 ~ e4@6 eb4 d4@8 ~ g4@10 f4@2 ~ db4@3 d4@2 e4@4 ~@2]/5",
  AU: "[d4@21 [gb4,a4]@3 [gb4,c5]@7 [bb4,d5]@19 ~@2 bb4@4 [a4,c5]@4 [g4,bb4]@2 [d5,f5]@9 a4 d5@3 a4@3 ~ bb4 ab4@7 ~ [e4,db5]@7 [a4,d5]@16 ~, gb4@18 ~@13 db5 ~@19 d5@4 ~@20 f4@12 ~ g4@6 ~@18]/7", // Gbm Gbdim Bb Am Gm Dm Dbm D5
  AV: "eb4@3 ~@13",
})).s("gm_string_ensemble_2").gain(0.51).pan(0.9)

// other · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C ~@5 D E F ~@5 A C ~@3 G ~@3 H ~@6 D E I ~@5 A C ~@3 G ~@2 D E F ~@5 A C ~@3 G ~@3 H ~@6 D E J ~@5 A B
>`.pickRestart({
  A: "a4@2 ~ bb4@2 ~ a4 ~ g4@3 ~ f4 ~ e4 ~", B: "d4@2 ~@2 d5 ~ d5 ~ d5@3 ~@5", C: "d4 ~@3", D: "~@6 d4 ~ a4@3 ~ a4@3 ~",
  E: "d4 ~ b3 ~ bb3 ~ b3 ~ c4 ~ db4 ~ d4 ~ eb4 ~", F: "a4@5 ~@11", G: "~@6 f4 ~ a4@3 ~ f4@4", H: "~@6 g4@2 a4@3 ~ a4@4",
  I: "a4@3 ~", J: "a4@13 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.8).pan(0.3)

// drums · kick
const kick = s("bd").struct("<[x ~ x!2] [x ~@7 x ~@2 x ~@2 x ~] [x ~ x!2]!79 x>").gain(0.35)

// drums · rim
const rim = s("rim").struct("<[~@3 x ~@2 x ~] ~ [~@3 x ~@2 x ~]!79 ~>").gain(0.35)

// drums · hihat
const hihat = s("hh").struct("<[~ x ~ x ~ x ~ x] [~@8 x ~@2 x ~@2 x ~] [~ x ~ x ~ x ~ x]!79 ~>").gain(0.35)

// drums · low tom
const low_tom = s("lt").struct("<~@81 [x ~ x!3 ~@3]>").gain(0.5)

// drums · high tom
const high_tom = s("ht").struct("<~ [~@8 x ~@2 x ~@2 x ~] ~@79 [~@2 x!3 ~@3]>").gain(0.5)

// drums · china
const china = s("cr").struct("<x!3 ~@78 [~ x]>").gain(0.45)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<[~ x ~@6]!81 ~>").gain(4.08)

// drums · bongos
const bongos = s("bongo:18").struct("<~@2 [~@7 x]!79 ~>").gain(1.04)

// drums · congas
const congas = s("conga:13").struct("<[x ~@5 x ~ x ~ x!3 ~ x ~] ~ [~@5 x ~@2]!79 ~>").gain(1.11)

// drums · congas
const congas_2 = s("conga:18").struct("<[~ x ~@6] ~@81>").gain(1.11)

// drums · congas
const congas_3 = s("conga:33").struct("<x ~@81>").gain(1.11)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<~ [~@8 x ~@2 x ~@2 x ~] ~@80>").gain(1.58)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[~@5 x!2 ~] ~ [x!8]!79 x>").gain(2.01)

stack(
  bass, acoustic_guitar_nylon, string_ensemble_2, acoustic_guitar_steel, kick, rim, hihat, low_tom, high_tom, china,
  vibraslap, bongos, congas, congas_2, congas_3, agogo_bells, cabasa
)

More by The Beatles