Strudelify

Felicidade, que saudade de voce

Zeze di Camargo

KeyF majorTempo78 bpm
0:00/0:00
// Felicidade, que saudade de voce — Zeze di Camargo
// 78 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/4 at bar 1, 4/4 at bar 2, 2/4 at bar 34, 4/4 at bar 34, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 89 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 30.
setcpm(78/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 · electric bass finger
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V W X W Y Z AA@2 AB AC AD AE AF AG AD AH AI AJ AK AL AM AN AO AL AP AQ AR
  AS AT AU AV AW AX AY AZ BA T AI BB BC T AI AD BD BE BF BG BH BI BF BG BJ BK BL AD BM BN BO AD BM BP M BQ BR BS BT ~
>`.pickRestart({
  A: "f1@5 ~ f1@2 g1@7 ~", B: "a1@5 ~ a1@2 bb1@6 ~@2", C: "g1@5 ~ g1@2 a1@6 ~@2", D: "bb1@5 ~ bb1@2 c2@7 ~",
  E: "f1@5 ~ f1 ~ f1@5 ~ e2 f2", F: "f1@5 ~ f1 ~ f1@8", G: "bb2", H: "a2", I: "ab2", J: "g2@15 ~", K: "gb2", L: "f2 g2",
  M: "c2@15 ~", N: "f2@7 ~ f2@8", O: "bb1@5 ~ bb1 ~ bb1@7 ~", P: "a1@5 ~ a1 ~ a1@6 ~@2",
  Q: "ab1@5 ~ ab1 ~ ab1@5 ~ ab1 bb1", R: "eb1@5 ~ eb1 ~ eb1@6 ~@2", S: "gb1@5 ~ gb1 ~ gb1@5 ~ gb1 ab1",
  T: "f1@5 ~ f1@2 g1@5 ~ g1@2", U: "c2@4 ~@2 c2 d2 f1@5 ~ f1@2", V: "bb1@4 ~ f1 g1 ~ bb1@6 ~@2",
  W: "f1@5 ~ f1 g1 a1@5 ~ f1 a1", X: "bb1@4 ~@2 bb1 c2 d2@3 ~ bb1@3 ~", Y: "bb1@5 ~ bb1 c2 d2@5 ~ d2@2",
  Z: "g1@3 a1 b1@2 b1@2", AA: "[c2@6 bb1@2 ab1@12 ~@4 eb1@4 ~@2 eb1 g1]/2", AB: "bb1@3 ~ bb1@4 eb1@5 ~ g1 ~",
  AC: "c2@3 ~ c2@3 ~ f1@5 ~ f1@2", AD: "g1@5 ~ g1@2 a1@5 ~ a1@2", AE: "bb1@5 ~ bb1@2 a1@5 ~ a1@2",
  AF: "g1@5 ~ g1@2 c2@5 ~ c2 ~", AG: "c2@5 ~ c2@2 f1@5 ~ f1@2", AH: "bb1@5 ~ bb1@2 g1@5 ~ g1@2",
  AI: "a1@5 ~ a1@2 bb1@5 ~ bb1@2", AJ: "c2@4 ~@2 c2@2 f1@5 ~ f1 ~", AK: "f1@5 ~@3 bb1@5 ~ bb1@2",
  AL: "c2@5 ~ c2@2 d2@5 ~ d2@2", AM: "eb2@5 ~ eb2@2 bb1@5 ~ bb1@2", AN: "eb2@5 ~ eb2@2 f2@5 ~ f2 ~",
  AO: "f2@5 ~ f2@2 bb1@5 ~ bb1@2", AP: "eb2@5 ~ eb2@2 c2@5 ~ c2@2", AQ: "d2@5 ~ d2@2 eb2@5 ~ eb2@2",
  AR: "f2@5 ~ f2@2 bb1@5 ~ bb1 ~", AS: "bb1@5 ~@3 f1@5 ~ f1 g1", AT: "a1@5 ~ f1 a1 bb1@4 ~@2 bb1 c2",
  AU: "d2@3 ~ bb1@3 ~ f1@5 ~ f1 g1", AV: "a1@5 ~ f1 a1 bb1@5 ~ bb1 c2", AW: "d2@5 ~ d2@2 g1@6 a1@2",
  AX: "b1@2 b1@2 c2@3 bb1", AY: "ab1@3 ~", AZ: "eb1@4 ~@2 eb1 g1 bb1@3 ~ bb1@4", BA: "eb1@5 ~ g1 ~ c2@3 ~ c2@3 ~",
  BB: "a1@5 ~ a1@2 g1@5 ~ g1@2", BC: "c2@5 ~ c2 ~ c2@5 ~ c2@2", BD: "bb1@5 ~ bb1@2 c2@4 ~@2 c2@2",
  BE: "f1@5 ~ f1 ~ db2@3 ~ db2@3 ~", BF: "gb1@5 ~ gb1@2 ab1@5 ~ ab1@2", BG: "bb1@5 ~ bb1@2 b1@5 ~ b1@2",
  BH: "bb1@5 ~ bb1@2 ab1@5 ~ ab1@2", BI: "db2@5 ~ db2 ~ db2@5 ~ db2@2", BJ: "ab1@5 ~ ab1@2 bb1@5 ~ bb1@2",
  BK: "b1@5 ~ b1@2 db2@4 ~@2 db2@2", BL: "gb1@5 ~ gb1 ~ d2@3 ~ d2@3 ~", BM: "b1@5 ~ b1@2 c2@5 ~ c2@2",
  BN: "b1@5 ~ b1@2 a1@5 ~ a1@2", BO: "d2@5 ~ d2 ~ d2@5 ~ d2@2", BP: "a1@5 ~ a1@2 b1@5 ~ b1@2", BQ: "d2@15 ~",
  BR: "c2 b1", BS: "a1 d2", BT: "g1",
})).s("gm_electric_bass_finger").gain(0.45).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H I J K L@3 G H I J K M@2 N O P Q R S T@2 U V W X Y Z AA AB AC AD AE AF AG AH@2 AI AJ AK AL AM@6 AN AO
  AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP@4 BQ ~
>`.pickRestart({
  A: "[f3,a3,c4]@7 ~ [g3,bb3,d4]@7 ~", B: "[a3,c4,e4]@7 ~ [bb3,d4,f4]@7 ~", C: "[g3,bb3,d4]@7 ~ [a3,c4,e4]@7 ~",
  D: "[bb3,d4,f4]@7 ~ [g3,c4,e4]@7 ~", E: "[f3,a3,c4]@7 ~ [f3,c4]@7 ~", F: "[f3,a3,c4,eb4]@7 ~ [a3,c4,eb4]@7 ~",
  G: "~@7 f3, [bb3,d4,f4] bb3@2 [bb3,d4,f4], ~ f3@2 f3@2 f3@2 ~, ~ [d4,f4] bb4@2, ~@2 [d4,f4] ~", // Bb Dm
  H: "~@7 g4, [a3,c4,f4] [a3,c4]@3, ~ f3@2 f3@5, ~@2 f4@3 g4 f4@2, ~ a4", // F Am
  I: "~@7 f3, [ab3,c4,f4,ab4] [ab3,c4,f4]@2 [ab3,c4,f4], ~ f3@2 f3@2 f3@2 ~, ~ ab4 ab4@2", // Fm
  J: "~@7 eb3, [g3,bb3,eb4] g3@2 [g3,bb3,eb4], ~ eb3@2 eb3@2 eb3@2 ~, ~ [bb3,eb4] bb4@2, ~@2 [bb3,eb4] ~", // Eb Eb5
  K: "~@7 eb3, [bb3,eb4] gb3@2 [gb3,bb3,eb4], ~ eb3@2 eb3@2 eb3@2 ~, ~ [bb3,eb4] gb4@2, ~@2 [bb3,eb4] ~", // Eb5 Ebm Eb5
  L: "[f3@2 ~@2 [bb3,d4]@4 d3@2 ~@2 [g3,bb3]@3 ~@5 bb3@2 d4 ~ e3@2 ~@2 g4@3 ~ c4@2 ~@4 bb4@2 c4 ~@5 f4@2, d3@8 ~@2 d3@5 d3@8 ~ [c3,g3,c4]@7 ~@3 c4@6 ~@2 c4@6, [bb3,d4]@2 ~@6 d4@3 ~@5 bb4@3 ~ a4@2 a4@2, ~@2 f3@6 [g3,bb3]@4 ~@3 f3@3 f3@5 ~@3 e3@5 f3@8 ~ [f3,eb4]@8, ~@16 bb3@4 ~@12 eb4@4 eb4@4 ~@5 g4@3]/3", // Bb Gm C5 Bb Gm F7
  M: "[f3@2 ~@2 [bb3,d4]@4 d3@2 ~@2 [g3,bb3]@3 ~ g3@2 ~@4 g3@2 [a3,c4] ~@3 [c4,eb4]@2 a3@2, d3@4 ~ d3@3 ~ g3@2 ~ f3@4, [bb3,d4] ~@3 [c4,e4]!2 eb4 ~, ~@2 f3@6 [g3,bb3]@4 ~@3 c3@8 ~@3 a3@4 ~@2]/2", // Bb Gm Am Cm Bb C Gm
  N: "f3 ~@6 f3, bb2, [bb3,d4]!4, ~ f3@2 f3@2 f3@2 ~", // Bb
  O: "[f3,a3,c4,f4]@4 [f3,c4,f4]@3 a3!2 [a3,c4] a3@2 [c4,f4]@3 ~, ~@4 a3 ~@2 [f3,f4]@5 [f3,a3] ~@3, ~@7 c4@2 ~@7", // F F5 Am F5 F
  P: "[f3,bb3] ~@2 bb3 [f3,bb3,d4] bb3!2 [f3,bb3,d4]@2 bb3 bb3@2 [bb3,d4,f4] [bb3,d4]!3, d4@3 ~@2 [f3,d4]@2 ~@2 f3@3 f3@3 ~", // Bb5 Bb Dm
  Q: "a3@2 c4 a3 [a3,c4]!3 [f3,a3,c4]@2 [f3,a3,c4]@3 [a3,c4]!2 c4!2, c4 ~@3 f4@11 ~, ~@4 f3@3 ~@5 f3@3 ~", // Am F Am
  R: "[bb3,d4] bb3@3 [bb3,d4,f4] ~ bb3 [f3,bb3,d4,f4]@2 [bb3,d4] bb3@2 [bb3,d4,f4] [bb3,d4,f4]@2 [bb3,d4], f3@4 f3@3 ~@2 [f3,f4]@3 f3@3 ~, ~@5 bb3@2 ~@9", // Bb F
  S: "[g3,b3,d4] [b3,d4] ~ d4 [g3,b3,d4]!2 [b3,d4] ~ d4 [b3,d4]!3 [g3,b3,d4]!2 [b3,d4] ~, ~@2 [b3,d4]@2 ~@3 [g3,b3,d4]@2 ~@7", // G Bm G Bm G Bm G
  T: "[[g3,c4,eb4]@4 [f3,bb3,d4]@4 [eb3,ab3,c4]@14 ~@2 [bb3,eb4]!3 [g3,bb3,eb4] bb3!3 [bb3,eb4], ~@24 g3@3 ~ [g3,eb4]@3 ~]/2", // Cm Bb Ab Eb5 Eb Eb5 Cm
  U: "[ab3,eb4]!2 eb4 ~ [f3,bb3] [f3,bb3]@2 bb3!2 ~@2 eb4 [g3,bb3,eb4]@3 ~, ~ c4@6 ~@3 bb3@2 ~@4, ~@2 ab3@5 ~ [g3,eb4]@4 ~@4, ~@4 d4@3 ~@9", // Ab5 Bb5 Eb Cm
  V: "[bb3,c4,f4]!3 [bb3,c4] [bb3,c4,e4] [bb3,c4] [bb3,c4,e4]!2 a3 a3@3 [f3,a3,c4,f4] [a3,c4]!2 [g3,bb3,d4], ~@3 f4@4 ~ [f3,c4,f4]@4 ~@4", // Bbsus2 C7 Bbsus2 C7 F Am Gm F5
  W: "[g3,bb3,d4] [g3,bb3,d4]@2 bb3 [g3,bb3,d4] [bb3,d4] [g3,bb3] [g3,bb3,d4] [a3,c4,e4] [a3,c4] ~@2 [a3,c4,e4] [c4,e4] c4 [bb3,d4], ~@9 e4@3 ~@4", // Gm Bb Gm Am C Bb
  X: "[bb3,d4] [bb3,d4,f4]@3 [bb3,d4] ~ bb3!2 [a3,c4,f4] [a3,c4]@2 c4 [a3,c4,f4]!3 [g3,bb3,d4], ~@4 f4@3 ~@9, ~@5 [bb3,d4]@2 ~@9", // Bb F Am F Gm Bb
  Y: "~ [g3,bb3,d4]@3 [g3,d4]@2 [bb3,d4]!2 [c4,f4] [c4,f4]@2 [g3,c4,f4]!4 [g3,c4,e4], ~@4 bb3 ~@3 g3@3 ~@5", // Gm G5 Bb F5 Csus4 C
  Z: "[c4,e4] [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 ~ [f3,a3,c4] [a3,c4] ~@2 [f3,a3,c4]!3 [g3,bb3,d4]", // C F Am F Gm
  AA: "[g3,bb3,d4] [g3,bb3,d4]@2 bb3 [g3,bb3,d4] [g3,bb3]!3 [a3,c4,e4] [c4,e4]@2 c4 [a3,c4,e4]!2 [a3,c4] [bb3,d4,f4]", // Gm Am C Am Bb
  AB: "[bb3,d4] [bb3,d4,f4]@2 bb3 [bb3,d4]!8 [g3,bb3,d4] [bb3,d4]!2 [a3,c4,f4], ~@4 f4@3 ~ g3@4 ~@4", // Bb Gm Bb F
  AC: "c4 [a3,c4,f4]@3 [a3,c4,f4] [c4,f4] [a3,c4,f4]!2 [bb3,d4]!4 [bb3,d4,f4]!2 [bb3,d4]!2, ~@2 f4 ~", // F F5 F Bb
  AD: "[g3,c4,e4] c4 [g3,c4]@2 [g3,c4,e4] [c4,e4] [g3,c4,e4]!2 [c4,f4] [c4,f4]@2 c4 [c4,f4] ~ c4 [a3,c4,f4], ~ e4@3 ~@4 a3@4 a3@2 ~@2", // C C5 C F5 F
  AE: "c4 [a3,c4,f4]@3 [a3,c4,f4]@3 ~ [bb3,d4] ~ bb3@2 [bb3,d4]!3 [g3,c4,eb4], ~@8 f4@4 f4@3 ~, ~@9 [bb3,d4]@2 ~@5", // F Bb Cm Bb
  AF: "[g3,c4,eb4]!2 ~ eb4 [g3,c4,eb4] [c4,eb4] [g3,c4,eb4] [c4,eb4] [a3,f4]@3 d4 [a3,d4,f4] [a3,d4] a3 [g3,bb3,eb4], ~ [g3,c4,eb4] ~@2 d4 ~@3", // Cm Dm D5 Eb Cm
  AG: "~ [g3,bb3,eb4]@3 [g3,bb3,eb4]!4 [bb3,d4] bb3!3 [bb3,d4,f4]!2 bb3 [g3,bb3,eb4], ~@2 f4 ~, ~@9 d4@3 ~@4", // Eb Bb Eb
  AH: "[eb4 [g3,bb3,eb4]@2 [bb3,eb4]!3 eb4!2 [f3,a3,c4] a3!2 [f3,a3] c4!2 ~ [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@3 [f3,a3,c4] [a3,c4]!2 ~ bb3 bb3@2 [f3,bb3] [f3,bb3,d4]!2 [bb3,d4] [g3,c4,eb4], ~@4 g3@3 ~@5 [f3,a3,f4]@3 ~@5 f4@3 ~ [f3,d4]@4 ~@4]/2", // Eb Eb5 F Am Bb5 Bb Cm F …
  AI: "[g3,c4,eb4] [g3,c4,eb4]@2 [g3,c4] [g3,c4,eb4]!2 g3 [c4,eb4] [a3,d4,f4] [a3,d4] a3 d4 [a3,d4,f4]!3 [g3,bb3,db4,eb4], ~@9 f4@3 ~@4", // Cm C5 Cm Dm D5 Dm Eb7
  AJ: "[g3,bb3,eb4] [g3,bb3,eb4]@2 bb3 [g3,bb3,eb4]!2 [bb3,eb4]!2 [g3,c4,eb4]!2 [c4,eb4] [g3,c4] [g3,c4,eb4] [g3,c4] [g3,c4,eb4] [f3,g3,bb3,d4]", // Eb Eb5 Cm C5 Cm C5 Cm Gm7
  AK: "~ [f3,bb3,d4]@2 bb3 [f3,bb3,d4] [f3,bb3] [f3,bb3,d4]!2 [g3,bb3,eb4] [bb3,eb4] [g3,bb3,eb4]!3 [bb3,eb4] [g3,bb3,eb4] [a3,c4,f4]", // Bb Bb5 Bb Eb Eb5 Eb Eb5 Eb …
  AL: "[a3,c4,f4] [a3,c4,f4]@2 ~ [a3,c4,f4]!3 [a3,c4] [bb3,d4] bb3 [bb3,d4]!2 [f3,bb3,d4] [bb3,d4] bb3 [f3,bb3,d4], ~@8 f3@3 ~@5", // F Am Bb
  AM: "[[bb3,d4] [f3,bb3,d4]@2 bb3 [f3,bb3,d4] [f3,bb3,d4]@2 ~ [f3,a3,c4,f4]@4 [f3,c4,f4]@3 a3 a3 [a3,c4] a3@2 [c4,f4]@3 ~ [f3,bb3] ~@2 bb3 [f3,bb3,d4] bb3!2 [f3,bb3,d4]@2 bb3 bb3@2 [bb3,d4,f4] [bb3,d4]!3 a3@2 c4 a3 [a3,c4]!3 [f3,a3,c4]@2 [f3,a3,c4]@3 [a3,c4]!2 c4!2 [bb3,d4] bb3@3 [bb3,d4,f4] ~ bb3 [f3,bb3,d4,f4]@2 [bb3,d4] bb3@2 [bb3,d4,f4] [bb3,d4,f4]@2 [bb3,d4] [g3,b3,d4] [b3,d4] ~ d4 [g3,b3,d4]!2 [b3,d4] ~ d4 [b3,d4]!3 [g3,b3,d4]!2 [b3,d4] ~ [g3,c4,eb4]@4 [f3,bb3,d4]@4, ~@12 a3 ~@2 [f3,f4]@5 [f3,a3] ~@8 [f3,d4]@2 ~@2 f3@3 f3@3 ~@5 f3@3 ~@5 f3@3 ~ f3@4 f3@3 ~@2 [f3,f4]@3 f3@3 ~@8 [g3,b3,d4]@2 ~@15, ~@15 c4@2 ~@7 d4@3 ~@13 c4 ~@3 f4@11 ~@6 bb3@2 ~@11 [b3,d4]@2 ~@20]/6", // Bb F F5 Am F5 Bb5 Bb Am …
  AN: "[eb3,ab3,c4]@7 ~", // Ab
  AO: "[bb3,eb4]!3 [g3,bb3,eb4] bb3!3 [bb3,eb4] [ab3,eb4]!2 eb4 ~ [f3,bb3] [f3,bb3]@2 bb3, g3@3 ~ [g3,eb4]@3 ~@2 c4@6 ~, ~@10 ab3@5 ~, ~@12 d4@3 ~", // Eb5 Eb Eb5 Ab5 Bb5 Cm
  AP: "bb3 ~@2 eb4 [g3,bb3,eb4]@3 ~ [bb3,c4,f4]!3 [bb3,c4] [bb3,c4,e4] [bb3,c4] [bb3,c4,e4]!2, [g3,eb4] ~@3, ~@2 bb3@2 ~@7 f4@4 ~", // Eb Bbsus2 C7 Bbsus2 C7 Cm
  AQ: "a3 a3@3 [f3,a3,c4,f4] [a3,c4]!2 [g3,bb3,d4]!2 [g3,bb3,d4]@2 bb3 [g3,bb3,d4] [bb3,d4] [g3,bb3] [g3,bb3,d4], [f3,c4,f4] ~@3", // F Am Gm Bb Gm F5
  AR: "[a3,c4,e4] [a3,c4] ~@2 [a3,c4,e4] [c4,e4] c4 [bb3,d4]!2 [bb3,d4,f4]@3 [bb3,d4] ~ bb3!2, ~ e4@3 ~@8 f4@3 ~, ~@13 [bb3,d4]@2 ~", // Am C Bb
  AS: "[a3,c4,f4] [a3,c4]@2 c4 [a3,c4,f4]!3 [g3,bb3,d4] ~ [g3,bb3,d4]@3 [g3,d4]@2 [bb3,d4]!2, ~@12 bb3 ~@3", // F Am F Gm G5 Bb
  AT: "[c4,f4] [c4,f4]@2 [g3,c4,f4]!4 [g3,c4,e4] [c4,e4] [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 ~, g3@3 ~@13", // F5 Csus4 C
  AU: "[f3,a3,c4] [a3,c4] ~@2 [f3,a3,c4]!3 [g3,bb3,d4]!2 [g3,bb3,d4]@2 bb3 [g3,bb3,d4] [g3,bb3]!3", // F Am F Gm
  AV: "[a3,c4,e4] [c4,e4]@2 c4 [a3,c4,e4]!2 [a3,c4] [bb3,d4,f4] [bb3,d4] [bb3,d4,f4]@2 bb3 [bb3,d4]!4, ~@12 f4@3 ~", // Am C Am Bb
  AW: "[bb3,d4]!4 [g3,bb3,d4] [bb3,d4]!2 [a3,c4,f4] c4 [a3,c4,f4]@3 [a3,c4,f4] [c4,f4] [a3,c4,f4]!2, g3 ~@3", // Bb Gm Bb F F5 F
  AX: "[bb3,d4]!4 [bb3,d4,f4]!2 [bb3,d4]!2 [g3,c4,e4] c4 [g3,c4]@2 [g3,c4,e4] [c4,e4] [g3,c4,e4]!2, f4@4 ~@5 e4@3 ~@4", // Bb C C5 C
  AY: "[c4,f4] [c4,f4]@2 c4 [c4,f4] ~ c4 ~ [db4,gb4] [b3,db4,gb4]!2 [b3,db4] [b3,db4,f4] [b3,db4] [b3,db4,f4]!2, a3@4 a3@2 ~ [a3,c4]@8 ~, ~@7 f4@4 gb4@4 ~", // F5 Gb5 Bsus2 Db7 Bsus2 Db7 Am
  AZ: "bb3 bb3@3 [gb3,bb3,db4,gb4] [bb3,db4]!2 [ab3,b3,eb4]!2 [ab3,b3,eb4]@2 b3 [ab3,b3,eb4] [b3,eb4] [ab3,b3] [ab3,b3,eb4], [gb3,db4,gb4] ~@3", // Gb Bbm Abm B Abm Gb5
  BA: "[bb3,db4,f4] [bb3,db4] ~@2 [bb3,db4,f4] [db4,f4] db4 [b3,eb4]!2 [b3,eb4,gb4]@3 [b3,eb4] ~ b3!2, ~ f4@3 ~@8 gb4@3 ~, ~@13 [b3,eb4]@2 ~", // Bbm Db B
  BB: "[bb3,db4,gb4] [bb3,db4]@2 db4 [bb3,db4,gb4]!3 [ab3,b3,eb4] ~ [ab3,b3,eb4]@3 [ab3,eb4]@2 [b3,eb4]!2, ~@12 b3 ~@3", // Gb Bbm Gb Abm Ab5 B
  BC: "[db4,gb4] [db4,gb4]@2 [ab3,db4,gb4]!4 [ab3,db4,f4] [db4,f4] [ab3,db4,f4]@2 [ab3,db4,f4]@2 [ab3,db4,f4]@2 ~, ab3@3 ~@13", // Gb5 Dbsus4 Db
  BD: "[gb3,bb3,db4] [bb3,db4] ~@2 [gb3,bb3,db4]!3 [ab3,b3,eb4]!2 [ab3,b3,eb4]@2 b3 [ab3,b3,eb4] [ab3,b3]!3", // Gb Bbm Gb Abm
  BE: "[bb3,db4,f4] [db4,f4]@2 db4 [bb3,db4,f4]!2 [bb3,db4] [b3,eb4,gb4] [b3,eb4] [b3,eb4,gb4]@2 b3 [b3,eb4]!4, ~@12 gb4@3 ~", // Bbm Db Bbm B
  BF: "[b3,eb4]!4 [ab3,b3,eb4] [b3,eb4]!2 [bb3,db4,gb4] db4 [bb3,db4,gb4]@3 [bb3,db4,gb4] [db4,gb4] [bb3,db4,gb4]!2, ab3 ~@3", // B Abm B Gb Gb5 Gb
  BG: "[b3,eb4]!4 [b3,eb4,gb4]!2 [b3,eb4]!2 [ab3,db4,f4] db4 [ab3,db4]@2 [ab3,db4,f4] [db4,f4] [ab3,db4,f4]!2, gb4@4 ~@5 f4@3 ~@4", // B Db Db5 Db
  BH: "[db4,gb4] [db4,gb4]@2 db4 [db4,gb4] ~ db4 ~ [d4,g4] [c4,d4,g4]!2 [c4,d4] [c4,d4,gb4] [c4,d4] [c4,d4,gb4]!2, bb3@4 bb3@2 ~ [bb3,db4]@8 ~, ~@7 gb4@4 g4@4 ~", // Gb5 G5 Csus2 D7 Csus2 D7 Bbm
  BI: "b3 b3@3 [g3,b3,d4,g4] [b3,d4]!2 [a3,c4,e4]!2 [a3,c4,e4]@2 c4 [a3,c4,e4] [c4,e4] [a3,c4] [a3,c4,e4], [g3,d4,g4] ~@3", // G Bm Am C Am G5
  BJ: "[b3,d4,gb4] [b3,d4] ~@2 [b3,d4,gb4] [d4,gb4] d4 [c4,e4]!2 [c4,e4,g4]@3 [c4,e4] ~ c4!2, ~ gb4@3 ~@8 g4@3 ~, ~@13 [c4,e4]@2 ~", // Bm D C
  BK: "[b3,d4,g4] [b3,d4]@2 d4 [b3,d4,g4]!3 [a3,c4,e4] ~ [a3,c4,e4]@3 [a3,e4]@2 [c4,e4]!2, ~@12 c4 ~@3", // G Bm G Am A5 C
  BL: "[d4,g4] [d4,g4]@2 [a3,d4,g4]!4 [a3,d4,gb4] [d4,gb4] [a3,d4,gb4]@2 [a3,d4,gb4]@2 [a3,d4,gb4]@2 ~, a3@3 ~@13", // G5 Dsus4 D
  BM: "[g3,b3,d4] [b3,d4] ~@2 [g3,b3,d4]!3 [a3,c4,e4]!2 [a3,c4,e4]@2 c4 [a3,c4,e4] [a3,c4]!3", // G Bm G Am
  BN: "[b3,d4,gb4] [d4,gb4]@2 d4 [b3,d4,gb4]!2 [b3,d4] [c4,e4,g4] [c4,e4] [c4,e4,g4]@2 c4 [c4,e4]!4, ~@12 g4@3 ~", // Bm D Bm C
  BO: "[c4,e4]!4 [a3,c4,e4] [c4,e4]!2 [b3,d4,g4] d4 [b3,d4,g4]@3 [b3,d4,g4] [d4,g4] [b3,d4,g4]!2, a3 ~@3", // C Am C G G5 G
  BP: "[~@19 c3 ~@6 [a3,c4] ~@4 g2, c4@32 c3@4 [c4,e4]@4 ~@4 [b3,d4]@6 e3@4 ~@6 d2@3 ~, ~ [e4,g4]@32 ~ g3@6 b2@6 b2@8 ~@2 [g2,g3,a3,d4]@7 ~, ~@16 a3@23 ~@3 g3@12 ~@7 e2@2 ~, ~@17 [d4,gb4]@23 ~@8 a2@6 a2@9 ~]/4", // Am C Bm Em Gsus2 D
  BQ: "~ b3@15, [g2,d3]", // G5
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.3)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@5 A B ~@16 C D E F G ~ H I J K L M N O P Q R S T U V@2 W X Y Z AA AB AC AD AE AF ~ AG ~ AH AI AJ AK AL AM AN AO AP
  AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF ~@4 BG ~
>`.pickRestart({
  A: "~@8 a3@7 ~", B: "~@8 f3@7 ~", C: "~@3 a3 ~ a3!2 ~@3 c4@2 ~ [f3,a3]@2 c4",
  D: "~@3 f3 ~ f4@3 f4 [d4,f4]@3 ~ f4 ~ f3, ~ f4@4 ~@11", E: "f3 c4 ~ c4 ~@10 a3 ~",
  F: "~ d4@3 ~ [d4,f4]@2 ~@3 d4@2 ~@3 [f3,f4]", G: "~ g3 g3@2 ~@5 g3@3 ~@2 g3 ~", H: "~@14 eb4 ~", I: "~@3 eb4@4 ~@9",
  J: "~@13 [f3,f4] f3 ~", K: "~@3 g3 ~ g3 d4 ~@3 [a3,c4]@2 ~@2 a3 ~", L: "~@9 f4@2 f4 ~@4", M: "~@5 bb3 ~@4 c4 ~@5",
  N: "~@5 [a3,c4] ~@2, ~@9 f3@3 ~@4", O: "~@5 d4!2 ~@2 a3@3 ~@4", P: "~@7 f4 ~@6 g3 ~", Q: "f4 ~@4 a3 ~@9 f4",
  R: "~ g3 ~@3 g3 ~@7 [c4,f4]@2 ~", S: "f4 ~@10 d4 ~@4", T: "~@10 d4 ~@2 f4!2 ~", U: "~@14 d4 ~",
  V: "[bb3 ~@5 bb3!2 ~ f4@3 ~@2 c4 ~@6 f3!2 ~@9, ~@9 e4@14 ~@9]/2", W: "~@6 c4 ~@3 d4 a3 ~@4",
  X: "~@7 g3 ~@3 eb4 ~ eb4 ~@2", Y: "bb3 ~@2 f3 ~ d4 ~@3 g3 ~@3 g3 ~@2", Z: "~@3 [a3,c4] ~@5 d4 ~ f3 ~ f3 [f3,d4] ~",
  AA: "~@11 a3 ~ a3!2 ~", AB: "~@2 c4@2 ~ [f3,a3]@2 c4 ~@3 f3 ~ f4@3, ~@9 f4@4 ~@3",
  AC: "f4 [d4,f4]@3 ~ f4 ~ f3!2 c4 ~ c4 ~@4", AD: "~@6 a3 ~@2 d4@3 ~ [d4,f4]@2 ~",
  AE: "~@2 d4@2 ~@3 [f3,f4] ~ g3 g3@2 ~@4", AF: "~ g3@3 ~@2 g3 ~@9", AG: "~@6 eb4 ~@4 eb4@4 ~",
  AH: "~@5 [f3,f4] f3 ~@4 g3 ~ g3 d4 ~", AI: "~@2 [a3,c4]@2 ~@2 a3 ~@9", AJ: "~ f4@2 f4 ~@9 bb3 ~@2", AK: "~@2 c4 ~@13",
  AL: "~@2 [a3,c4]@2 ~@9 d4!2 ~, ~ f3@3 ~@12", AM: "~ a3@3 ~@11 f4", AN: "~@6 g3 ~ f4 ~@4 a3 ~@2",
  AO: "~@7 f4 ~ g3 ~@3 g3 ~@2", AP: "~@5 [c4,f4]@2 ~@9", AQ: "~@5 [gb3,gb4] gb3 ~@4 ab3 ~ ab3 eb4 ~",
  AR: "~@2 [bb3,db4]@2 ~@2 bb3 ~@9", AS: "~ gb4@2 gb4 ~@9 b3 ~@2", AT: "~@2 db4 ~@13",
  AU: "~@2 [bb3,db4]@2 ~@9 eb4!2 ~, ~ gb3@3 ~@12", AV: "~ bb3@3 ~@11 gb4", AW: "~@6 ab3 ~ gb4 ~@4 bb3 ~@2",
  AX: "~@7 gb4 ~ ab3 ~@3 ab3 ~@2", AY: "~@5 [db4,gb4]@2 ~@9", AZ: "~@5 [g3,g4] g3 ~@4 a3 ~ a3 e4 ~",
  BA: "~@2 [b3,d4]@2 ~@2 b3 ~@9", BB: "~ g4@2 g4 ~@9 c4 ~@2", BC: "~@2 d4 ~@13",
  BD: "~@2 [b3,d4]@2 ~@9 e4!2 ~, ~ g3@3 ~@12", BE: "~ b3@3 ~@11 g4", BF: "~@6 a3 ~ g4 ~@4 b3 ~@2", BG: "~ g3@15",
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.3)

// chords · epiano2
const epiano2 = note(`<
  ~@15 A B C D E F G H I J K L M N@2 O P Q R S T Q U V W X Y Z AA AB Y AC AD AE AF AG@5 AH AI AJ AK AL AM AN AK AL AO AP
  AQ AR AS AT AU AR AS AV AW AX AY AZ BA BB AY AZ BC BD BE ~@4
>`.pickRestart({
  A: "~@6 [bb4,d5] bb3, bb3@7 ~, ~@2 f4@4 f4@4 f4@5 ~, ~ [bb4,d5]!2 ~", // Bb
  B: "~@6 [a4,c5] a3, a3@7 ~, ~@2 f4@4 f4@4 f4@5 ~, ~ [a4,c5]!2 ~", // Am
  C: "~@12 [ab4,c5]@2 ab3 ~, ab3@7 ~, ~@2 f4@4 f4@4 f4@5 ~, ~ [ab4,c5]!2 ~", // Ab
  D: "~@6 bb4 g3, g3@7 ~, ~@2 eb4@4 eb4@4 eb4@5 ~, ~@4 [g4,bb4]@4 g4@7 ~, ~@2 bb4 ~", // Gm
  E: "~@12 [gb4,bb4]@2 eb4 ~, gb3@15 ~, ~ eb4@2 eb4@2 eb4@2 ~, ~ [gb4,bb4]!2 ~", // Gb
  F: "~@4 [f4,bb4]@2 d4 ~@5 [g4,bb4]@2 g3 ~, f3@7 ~ g3@6 ~@2, ~@2 d4@4 ~@4 d4@5 ~", // Bb5 Gm
  G: "~@4 [g4,c5]@2 c3@2 ~@4 [a4,c5]@2 f3 ~, c3@3 ~ f3@3 ~, ~@2 e4@5 ~@3 f4@5 ~", // C5 Am
  H: "~@4 [d5,f5]@3 ~@2 [bb4,d5]!3 ~ [a4,c5] ~ [g4,bb4], bb3@7 ~@9, ~@2 bb4@5 ~@5 [bb4,d5]@2 [a4,c5]@2", // Dm Bb Am Gm Bb Am
  I: "[f4,a4,c5]@4 [f4,a4,c5]@3 ~ [f4,a4,c5] ~@3 [f4,a4,c5] ~@3, f3@7 ~ f3@4 ~@4", // F
  J: "[f4,bb4]@4 [f4,bb4,d5]@4 [bb4,d5]!4 ~ [a4,c5] ~ [g4,bb4], bb3, d5 ~@7 f4@4 [f4,bb4,d5]@4, ~@7 [a4,c5]", // Bb5 Bb Am Gm Bb Am
  K: "[f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@3 ~, f3@15 ~", // F
  L: "[f4,bb4,d5]@4 [f4,bb4,d5]@4 [bb4,d5]!4 ~@2 [g4,bb4] ~, bb3@15 ~, ~@8 f4@4 [f4,bb4,d5]@3 ~, ~@13 [a4,c5]@2 ~", // Bb Gm Bb Am
  M: "[g4,b4,d5]!4, g3", // G
  N: "[[c4,g4,c5,eb5]@4 [bb3,f4,bb4,d5]@4 [ab3,ab4,c5,eb5]@12 ~@4 [g4,bb4,eb5]@4 [g4,bb4,eb5]@3 ~, ~@24 eb3@7 ~]/2", // Cm Bb Ab Eb
  O: "[ab3,ab4,c5,eb5] [bb3,f4,bb4,d5] [g4,bb4,eb5]!2, ~ eb3", P: "~@8 [c4,f4,a4]@4 [c4,f4,a4]@3 ~",
  Q: "[d4,g4,bb4]@4 [d4,g4,bb4]@3 ~ [e4,a4,c5]@4 [e4,a4,c5]@3 ~", // Gm Am
  R: "[f4,bb4,d5]@4 [f4,bb4,d5]@3 ~ [f4,a4,c5]@4 [f4,a4,c5]@3 ~", // Bb F
  S: "[g4,bb4,d5]@4 [g4,bb4,d5]@3 ~ [c4,f4,bb4]@4 [c4,f4,bb4]@4", // Gm Fsus4
  T: "[c4,e4,bb4]@4 [c4,e4,bb4]@3 ~ [c4,f4,a4]@4 [c4,f4,a4]@3 ~", // C7 F
  U: "[f4,bb4,d5]@4 [f4,bb4,d5]@3 ~ [g4,bb4,d5]@4 [g4,bb4,d5]@3 ~", // Bb Gm
  V: "[f4,a4,c5]@4 [f4,a4,c5]@3 ~ [f4,bb4,d5]@4 [f4,bb4,d5]@3 ~", // F Bb
  W: "[e4,g4,c5]@4 [e4,g4,c5]@3 ~ [c4,f4,a4]@4 [c4,f4,a4]@4", // C F
  X: "[c4,f4,a4]@2 [c4,f4,a4] ~ [d4,f4,bb4]@2 [d4,f4,bb4]@2", Y: "[eb4,g4,c5]!2 [d4,f4,a4]!2",
  Z: "[eb4,g4,bb4]!2 [d4,f4,bb4]!2", AA: "[eb4,g4,bb4]!2 [f4,a4,c5]!2",
  AB: "[f4,a4,c5]@4 [f4,a4,c5]@3 ~ [d4,f4,bb4]@4 [d4,f4,bb4]@4", AC: "[eb4,g4,bb4]!2 [eb4,g4,c5]!2",
  AD: "[d4,f4,bb4]!2 [eb4,g4,bb4]!2", AE: "[f4,a4,c5]!2 [d4,f4,bb4]!2",
  AF: "[d4,f4,bb4]@4 [d4,f4,bb4]@3 ~ [f4,a4,c5]@4 [f4,a4,c5]@3 ~, ~@8 f3@7 ~", // Bb F
  AG: "[[f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,bb4]@4 [f4,bb4,d5]@4 [bb4,d5]!4 ~ [a4,c5] ~ [g4,bb4] [f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@4 [f4,a4,c5]@3 ~ [f4,bb4,d5]@4 [f4,bb4,d5]@4 [bb4,d5]!4 ~@2 [g4,bb4] ~ [g4,b4,d5]@4 [g4,b4,d5]@4 [g4,b4,d5]@4 [g4,b4,d5]@4 [c4,g4,c5,eb5]@4 [bb3,f4,bb4,d5]@4, f3@4 ~@4 bb3@16 f3@15 ~ bb3@15 ~ g3@16 ~@8, ~@8 d5 ~@7 f4@4 [f4,bb4,d5]@4 ~@24 f4@4 [f4,bb4,d5]@3 ~@25, ~@22 [a4,c5]@2 ~@29 [a4,c5]@2 ~@25]/5", // F Bb5 Bb Am Gm F Bb Gm …
  AH: "[ab3,ab4,c5,eb5]@3 ~", AI: "[g4,bb4,eb5]@4 [g4,bb4,eb5]@3 ~ [ab3,ab4,c5,eb5]@4 [bb3,f4,bb4,d5]@4, eb3@7 ~@9",
  AJ: "[g4,bb4,eb5]@4 [g4,bb4,eb5]@5 ~@7, eb3@9 ~@7", AK: "[c4,f4,a4]@4 [c4,f4,a4]@3 ~ [d4,g4,bb4]@4 [d4,g4,bb4]@3 ~",
  AL: "[e4,a4,c5]@4 [e4,a4,c5]@3 ~ [f4,bb4,d5]@4 [f4,bb4,d5]@3 ~", // Am Bb
  AM: "[f4,a4,c5]@4 [f4,a4,c5]@3 ~ [g4,bb4,d5]@4 [g4,bb4,d5]@3 ~", // F Gm
  AN: "[c4,f4,bb4]@4 [c4,f4,bb4]@4 [c4,e4,bb4]@4 [c4,e4,bb4]@3 ~", // Fsus4 C7
  AO: "[g4,bb4,d5]@4 [g4,bb4,d5]@3 ~ [f4,a4,c5]@4 [f4,a4,c5]@3 ~", // Gm F
  AP: "[f4,bb4,d5]@4 [f4,bb4,d5]@3 ~ [e4,g4,c5]@4 [e4,g4,c5]@3 ~", AQ: "[c4,f4,a4]@4 [c4,f4,a4]@5 ~@7",
  AR: "[db4,gb4,bb4]@4 [db4,gb4,bb4]@3 ~ [eb4,ab4,b4]@4 [eb4,ab4,b4]@3 ~", // Gb Abm
  AS: "[f4,bb4,db5]@4 [f4,bb4,db5]@3 ~ [gb4,b4,eb5]@4 [gb4,b4,eb5]@3 ~", // Bbm B
  AT: "[gb4,bb4,db5]@4 [gb4,bb4,db5]@3 ~ [ab4,b4,eb5]@4 [ab4,b4,eb5]@3 ~", // Gb Abm
  AU: "[db4,gb4,b4]@4 [db4,gb4,b4]@4 [db4,f4,b4]@4 [db4,f4,b4]@3 ~", // Gbsus4 Db7
  AV: "[ab4,b4,eb5]@4 [ab4,b4,eb5]@3 ~ [gb4,bb4,db5]@4 [gb4,bb4,db5]@3 ~", // Abm Gb
  AW: "[gb4,b4,eb5]@4 [gb4,b4,eb5]@3 ~ [f4,ab4,db5]@4 [f4,ab4,db5]@3 ~", AX: "[db4,gb4,bb4]@4 [db4,gb4,bb4]@5 ~@7",
  AY: "[d4,g4,b4]@4 [d4,g4,b4]@3 ~ [e4,a4,c5]@4 [e4,a4,c5]@3 ~", // G Am
  AZ: "[gb4,b4,d5]@4 [gb4,b4,d5]@3 ~ [g4,c5,e5]@4 [g4,c5,e5]@3 ~", // Bm C
  BA: "[g4,b4,d5]@4 [g4,b4,d5]@3 ~ [a4,c5,e5]@4 [a4,c5,e5]@3 ~", // G Am
  BB: "[d4,g4,c5]@4 [d4,g4,c5]@4 [d4,gb4,c5]@4 [d4,gb4,c5]@3 ~", // Csus2 D7
  BC: "[a4,c5,e5]@4 [a4,c5,e5]@3 ~ [g4,b4,d5]@4 [g4,b4,d5]@3 ~", BD: "[g4,c5,e5]@15 ~", BE: "[gb4,a4,d5]@15 ~",
})).s("gm_epiano2").gain(0.3).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note("<A B@3 C D ~@34 E F@4 G@3 H@2 ~@39>".pickRestart({
  A: "~@6 a4 bb4",
  B: "[bb4@2 c5@2 c5@2 c5@2 c5@4 bb4@2 c5@4 a4@2 c5@2 eb5@4 e5@2 d5@2 d5@4 [bb4,f5]@2 [bb4,e5]@2 [bb4,f5] [a4,c5]@3 [c5,f5]@2 [c5,e5]@2 [c5,f5]@2]/3", // Bb5 Bbdim Bb5 Am F5 C F5
  C: "[eb5,g5]@4 [e5,g5]@2 ~ [d5,f5]@2 [d5,f5]@3 [c5,e5] [g4,d5] [g4,e5]@2, ~@3 [e5,g5] ~@4", // Eb Em Dm C G5 C Em
  D: "[ab4,f5]@3 [a4,f5] [a4,f5]@4", E: "~@2 [bb4,d5] [c5,eb5] [d5,f5]!4",
  F: "[[c5,f5]@2 [bb4,eb5] [d5,f5]@2 [bb4,d5] [d5,f5] [f5,bb5]@2 [f5,a5] [eb5,g5] [d5,f5]@2 [bb4,eb5] [bb4,d5] [c5,eb5]@2 [bb4,d5] [g4,bb4] [bb4,d5]@2 [a4,c5]@4 ~ [bb4,d5] [c5,eb5] [d5,f5]!4]/4", // F5 Eb5 Dm Bb Dm Bb5 F Eb …
  G: "[[c5,f5]@4 [c5,eb5]@2 [d5,f5]@3 ~ [bb4,d5]@2 [d5,f5]@2 [eb5,bb5]@4 [eb5,a5]@2 [eb5,g5]@2 [eb5,g5]@2 ~@2 [eb5,bb5]@2 [eb5,a5]@2 [f5,bb5] [d5,f5]@3 [f5,bb5]@2 [f5,a5]@2 [f5,bb5]@2 [eb5,c6]@5 [eb5,c6] [d5,bb5]@2]/3", // F5 Cm Dm Bb Dm Eb5 Ebdim Eb …
// … 203 more lines

More by Zeze di Camargo