Strudelify

Io sto bene dove sto

Gatto Panceri

KeyF majorTempo70 bpm
0:00/0:00
// Io sto bene dove sto — Gatto Panceri
// 70 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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(`<
  ~@2 A@4 B C D E F C G H I J K L M N O P E F C Q R S B C T M N O U V W X Y Z AA AB AC AD@2 AE AF AG AH AI AJ AK AL AM
  AN AO AP@3 AQ AR AS@2 AT AU AV@3 AQ AR AS@2 AT AU AW@6
>`.pickRestart({
  A: "f1@3 f1 ~@2 f1@2 f1@3 f1@3 c1 d1", B: "f1@3 f1 ~ f1 e1@2 d1@3 d1@4 d1", C: "d1@3 d1@4 d1 d1@3 d1@4 d1",
  D: "f1@4 c1@4 f1@3 f1 ~@2 f1@2", E: "f1@3 f1@3 c1 d1 f1@3 f1 ~@2 f1@2", F: "f1@3 f1@3 c1 d1 f1@3 f1 ~ f1 e1@2",
  G: "d1@3 d1@4 d1 d1@4 c1@4", H: "f1@3 f1@2 ~ f1@2 bb1@3 bb1@2 ~ f1@2", I: "c2@3 c2@2 ~ c2@2 f1@3 f1@3 c1@2",
  J: "f1@3 f1@4 c1 c1@3 c1@4 c1", K: "c2@3 c2@5 d1@3 d1@3 c2 d2", L: "bb1@3 bb1@4 f1 f1@3 f1@2 ~ f1@2",
  M: "bb1@3 bb1@2 ~ f1@2 c2@3 c2@2 ~ c2@2", N: "f1@3 f1@3 c1@2 f1@3 f1@4 c1", O: "c1@3 c1@4 c1 c2@3 c2@5",
  P: "a1@4 bb1@4 f1@3 f1 ~@2 f1@2", Q: "d1@3 d1@4 d1 f1@4 c1@4", R: "f1@3 f1 ~@2 f1@2 bb1@3 bb1@3 c1 d1",
  S: "f1@3 f1 ~@2 f1@2 d2@3 d2@3 c1 d1", T: "d1@4 c1@4 f1@3 f1@2 ~ f1@2", U: "a1 bb1@3 ~@4 a1 bb1@2 d1 f1 d1 c1@2",
  V: "f1@3 f1@3 g1 a1 bb1@2 ~ bb1@4 bb1", W: "c2@3 c1@3 c2 c1 f1@3 f1@4 c1", X: "f1@3 f1@4 f1 c2 g1 c1@4 c2 c1",
  Y: "c2@3 c1@3 c2 c1 d1@3 d1@3 d2 d1", Z: "d2 a1 d1@2 d2 d1 d1@2 f1@2 f1@2 f1@2 f1@2",
  AA: "d1@2 d1@4 ~ d1 bb1@2 bb1@2 bb1@2 db2 bb1", AB: "eb1@2 eb1@2 ~@3 eb1 eb1@2 db2@2 bb1@2 f1@2",
  AC: "gb1@6 ~ gb1 gb1@2 gb1@4 bb1@2", AD: "[db1@3 f1]/2", AE: "bb1 c1", AF: "c2@3 c1 c2@2 g1 f1 d1@8",
  AG: "g1@8 c2@7 g1", AH: "c2 g1 c1!6 d1!3 ~@4 c1", AI: "d1!3 ~@5 d1!3 ~@4 c1",
  AJ: "d1!2 c1 d1 f1 c1 d1 f1 f1@4 f1@2 g1 a1", AK: "bb1@2 bb1 d2 c2@2 c2@2, ~@6 db2 ~@9",
  AL: "f1@2 ~ f1 c2 bb1 a1@2 f1@4 f1@2 g1 a1", AM: "c2@4 c2@2 bb1 a1 bb1@3 a1@3 e1@2",
  AN: "f1@3 f1 f1@2 f2@2 d2@3 d2 d2@2 d2@2", AO: "c2@3 c2 c2@2 bb1@2 a1@3 g1 f1@4",
  AP: "[a1@2 ~ a1 bb1@4 g1@3 g1 g1@2 g1@5 g1 g1@2 d1 e1 g1@3 g1 g1@2 g1@5 g1 g1@2 d1 e1 g1@3 g1 g1@2 gb1@2]/3",
  AQ: "e1@3 e1 e1@4 e1@3 e1 e1@4", AR: "e1@3 e1 e1@3 e1 gb1@4 d1@4", AS: "g1@3 g1 g1@2 g1@5 g1 g1@2 d1 e1",
  AT: "g1@3 g1 g1@2 gb1@2 e1!3 ~@4 d1", AU: "e1!3 ~@4 d1 e1!3 ~@4 d1",
  AV: "[g1@4 d1@2 e1 gb1 g1@3 g1 g1@2 g1@5 g1 g1@2 d1 e1 g1@3 g1 g1@2 g1@5 g1 g1@2 d1 e1 g1@3 g1 g1@2 gb1@2]/3",
  AW: "[g1 g1@2 g1 d1@2 e1 gb1 g1@3 g1 g1@2 g1@5 g1 g1@4 d1@3 d1 d1@2 d1@5 d1 d1@4 ~ c1@9 a1@10 g1@32 ~@4]/6",
})).s("gm_electric_bass_finger").gain(0.8)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@4 A@2 B@2 C D@2 E ~ F ~@2 G H ~@3 I D@2 E J@2 A K@3 ~@7 L M@5 N@5 ~@7 O P@2 Q R S T@2 ~@2 U@2 V@2 W X@3 Y ~ Z@2 ~@2
>`.pickRestart({
  A: "[f3,a3] ~", B: "[[f3,a3]@8 ~@7 c4@5 ~@10 d4@2, ~@4 d3@6 ~@3 d3@3, ~@11 f3@9 ~@9 a3@3]/2",
  C: "e4@3 c4@3 e3 ~ [f3,a3]@8, ~@7 c4@9", D: "~ [f3,a3]", E: "~@7 c4@5 ~@4, d3@3 ~, ~@3 f3@9 ~@4",
  F: "f4@3 e4@4 [bb3,d4]@9, [a3,c4]@7 ~@9", G: "~@9 d4 c4 c4@5, ~@4 a3 ~@3",
  H: "~ [bb3,f4]@2 [bb3,f4]@2 [bb3,f4]@3 ~@8", I: "~ [f3,a3,f4]",
  J: "[~@6 d4@2 e4@3 c4@3 e3 ~ [f3,a3]@8 ~@8, ~ d3@3 ~@12, ~@5 a3@3 ~@7 c4@9 ~@8]/2", // F
  K: "[[f3,a3]@8 ~@7 c4@5 ~@4 g4@2 f4@13 ~ [a3,c4,f4]@8, ~@2 d3@3 ~@7, ~@11 f3@9 ~@28]/3", // F
  L: "~@8 f4 e4 f4 e4 f4 e4 f4 e4",
  M: "[f4 e4 f4 e4 f4 ~@3 [a3,c4]@7 ~ [b3,d4]@7 ~ [bb3,db4]@7 ~ [bb3,eb4]@8 f4@2 db4@2 bb3@2 f3 ~ [bb3,f4]@14 ~@2 [db4,f4]@7 ~@9, ~@7 f3@7 ~ f3@7 ~ f3@7 ~ g3@8 ~@8 gb3@15 ~ ab3@7 ~@10]/5", // Am Bm Bbm Eb5 Bb5 Db
  N: "[~@8 [c4,f4]@7 ~ [d4,f4]@7 ~ [c4,f4]@7 ~ [e4,g4]@7 ~ [d4,f4]@7 ~ [bb3,f4]@7 ~ [c4,f4]@7 ~ [c4,e4]@8 ~@8, ~@7 a3@7 ~ bb3@7 ~ g3@8 c4@7 ~ a3@7 ~ g3@7 ~ g3@7 ~ g3@8 ~@9]/5", // F5 Dm F5 Em Dm Bb5 F5 C
  O: "~ [b3,g4]", P: "~ [g3,b3]", Q: "e3@3 g3@3 d4@2 c4@4 d4@2 g3@2", R: "e3 d4 b3@3 a3@2 g3", S: "[b3,d4,g4] ~",
  T: "[g3,b3] ~", U: "[~@6 d4 [d4,g4]@5 ~@4]/2", V: "[~@6 e4@2 [e4,g4]@10 ~@2 b4@2 g4 g4@3 d4@2 a3 d4@3]/2",
  W: "[g3,d4] ~", // G5
  X: "[~@5 b4@3 d5@2 b4@2 b3@2 [d4,g4]@8 ~@10 g4@4 ~@3 e4 b4@5 d5@2 b4, ~@29 b3@7 ~ b3@8 ~@3, ~@31 e4@2 ~@15]/3", // G5
  Y: "a4@3 ~@5", Z: "[~@2 b3 e4 b3 g3 d3@2 ~ c3@9 ~@14]/2",
})).s("gm_electric_guitar_clean").gain(0.48).pan(0.2)

// chords · french horn
const french_horn = note("<~@32 A B C D ~@7 E F G@4 ~@31>".pickRestart({
  A: "~@2 a3 c4 a3 g3 f3@6 ~@4", B: "~@2 g3 c4 g3 f3 e3@6 ~@4", C: "[a3,c4] [bb3,d4]@6 ~ [a3,c4] [bb3,d4]@7", D: "c4 ~",
  E: "db3 eb3 f3 ab3", F: "db4 eb4 a3@2",
  G: "[bb3@4 ~@2 d4@2 e4 f4 [bb3,g4]@2 a3@4 bb3@4 ~@4 c4@4 ~@4, ~@2 g3@3 ~ d4@6 ~@4, ~@5 g3@2 ~]/4", // Eb
})).s("gm_french_horn").gain(0.44).pan(0.6)

// other · timpani · Asus2
const timpani = note("<~@38 [~@12 b1 [a1,b1]!3] [[a1,b1]!8 ~@8] ~@40>").s("gm_timpani").gain(0.56)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@13 A B@5 A C D@5 E@2 F@2 G@2 H I J ~ K L@3 M N O P@4 Q@2 R S T U V W X Y@3 Z AA AB@3 AC AD@3 AE@2 AF@2 AG@3 AH@2 ~@3
>`.pickRestart({
  A: "[f3,f4]", B: "[[e3,e4] [f3,f4]@2 [e3,e4]@2 a3 bb3 [f3,f4]@2 [e3,e4], ~@5 f4@2 ~@3]/5", C: "[e3,e4]",
  D: "[[e3,a3] [f3,bb3] f4@8 f4@8 ~@2]/5", E: "f4/2", F: "[~@2 [bb4,bb5] [b4,b5], f4]/2",
  G: "[c6 c5 d5 [e5,g5], ~ f5@2 ~]/2", H: "[f5,a5]", I: "e3@2 g3 c4 g3 f3 e3@6 ~@4, [g5,c6]",
  J: "[a3,c4] [bb3,d4]@7 [a3,c4] [bb3,d4]@7, f4", K: "[g4,c5,e5] ~",
  L: "[~@8 [g4,c5,e5]@16 a4@8 ~@2 f3 g3 a3 bb3 c4 d4 [f2,c4]@8, ~@3 [d5,f5]@2 ~]/3", M: "[g2,d4] [bb2,db4]",
  N: "[eb2,eb4]", O: "[gb2,bb3,f4]", P: "[[db3,db4,f4]@3 [a3,c4] [bb3,d4] f4 e4 [a3,d4,f4], ~@3 f4@2 [g3,c4]@2 ~]/4",
  Q: "[[g3,bb3,f4]@8 f4@8 e4@8 [d3,a3]!3 ~ [f4,f5] ~@2 [d3,a3], ~ [g3,c4]@2 ~]/2", // Gm7 D5 F D5 C5
  R: "[d3,bb3]!3 ~ [e4,e5] [f4,f5] ~ [d3,bb3] [d3,b3]!3 ~ [f4,f5] ~@2 [d3,b3]", // Gm E F Gm G F G
  S: "[d3,c4]!2 [d3,c4,a4] c5 f5 g5 a5@2 [f3,c4]@8", T: "[bb3,f4] [c4,g4]", U: "~@5 c6!4 a5!3 a5@2 g5@2, [f3,c4]",
  V: "[c3,e3,g5]@6 f3 e3 d3@3 d3@3 [e3,c6]@2, ~@4 bb5@3 ~", W: "a5@3 c6 [bb3,f4,bb5]@4, [f3,c4] ~",
  X: "[c4,g4,c6] [f3,c4,a5]", // C5 F
  Y: "[e5 c5 a5 e5 f5 d5 bb5 f5 [g4,d5] a4 g4@2 gb4 e4 d4 b3 c4@4 g4 [e3,a4] [d3,b4] [c3,c5] b2 c3 d3 e3 gb3 g3 a3 b3 c4 d4 e4 gb4 g4 a4 b4 c5 d5@8, [a3,c4] [bb3,d4] d6@10, ~@4 b4@4 c5@3 ~ d5@4 c5@3 ~@5]/3", // G5 A5 G C Am Bb
  Z: "[e4,g4,b4] [e4,g4,c5]", AA: "[e4,g4,b4]@7 ~ d5@4 c5@4, ~ d4",
  AB: "[b4@8 ~@2 g5 a5 b5 c6 d6 e6 b4@8 c5@8 [g4,b4]@6 [gb4,a4]@2 e3!3 ~@4 e3, g4@32 ~@8 [b3,b4]@7 ~, ~@4 c5@4 g6@11 ~@5]/3", // G Gbm B
  AC: "e3!3 ~@4 e3!4 ~@4 e3, [c4,c5] [db4,db5]", AD: "[[g4,d5] [gb4,c5] b4@2 c5@2 d5@2 e5@2 [g4,d5]@2, d3 g4@4 ~]/3",
  AE: "[g4@6 d4 [d4,a4], ~@3 d3]/2", AF: "[~@7 e5 d5@8, g4]/2",
  AG: "[g4@7 ~ b3@7 ~ c4@7 ~ db4@7 ~ d4@4 [c4,gb4]@4 b3@8, ~@2 g4@7 ~@3]/3", AH: "[c4 a3@2 ~]/2",
})).s("gm_string_ensemble_1").gain(0.64)

// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<A@6 B@2 C@5 ~@8 D@3 E@2 F@2 G@2 H ~@4 I J@2 ~@38 K@4>".pickRestart({
  A: "[a3 bb3 a3 bb3, [f3,f4]]/2", B: "[[f3,a3] [d3,d4]@3, f4]/2",
  C: "[a3 g3 a3@2 bb3@2 a3@2 bb3@2 [f3,a3]@2 a3@2 bb3@2 b3@2 c4 [g3,c4], c4@2 [f3,f4]@8 f4@9 ~, ~@6 d3@3 ~]/5", // F C5 F
  D: "[~ a3 bb3 a3 bb3 [f3,a3], ~ f3@4 ~]/3", E: "[[d3,d4]@6 [a3,e4] [g3,c4]]/2", F: "[a3 bb3 a3 bb3, f3]/2",
  G: "[[f3,a3] [a4,a5] ~@2, ~ d3@3]/2", H: "[a3,d4] [g3,c4] ~@2", I: "[f4,a4,c5] [f4,bb4,d5]",
  J: "[~ [f4,a4,c5]@2 ~]/2", K: "[~@9 [c5,e5]@9 [a4,c5]@10 [d5,g5]@30 ~@6]/4",
})).s("gm_string_ensemble_1").gain(0.32)

// chords · piano
const piano = note(`<
  A@2 B@4 C D E F G H I J K L M N O P Q R F S H T B@2 U D V O P Q W J K L M X ~@3 Y@2 Z AA AB AC ~@7 AD AE AF AG AH AI@2
  AJ ~ AD AE AF AG AH AI@2 AJ ~ AD AK@5
>`.pickRestart({
  A: "[a3 bb3 a3 bb3, f3]/2",
  B: "[f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~ [f2,bb3,d4,f4]@3 [bb3,d4,f4] ~ [bb3,d4,f4]@3, ~@4 f2@3 ~@5 f2@4", // F Bb
  C: "[f2,a3,c4,f4]@3 [a3,c4,f4] f2 ~ e2@2 [d2,f3,a3,d4]@3 [f3,a3,d4] ~ [f3,a3,d4]@2 ~, ~@5 [a3,c4,f4]@2 ~@5 d2@3 ~", // F Dm F
  D: "[d2,f3,bb3,d4]@3 [f3,bb3,d4] ~ [f3,bb3,d4]@3 [d2,f3,a3,d4]@3 [f3,a3,d4] ~ [f3,a3,d4]@2 ~, ~@4 d2@4 ~@4 d2@3 ~", // Bb Dm
  E: "[c3,a3,c4]@4 e3 g3 c4@2 [f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~, ~@4 c3@4 ~@4 f2@3 ~", // F
  F: "[f2,bb3,d4,f4]@3 [bb3,d4,f4] ~ [bb3,d4,f4]@3 [f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~, ~@4 f2@4 ~@4 f2@3 ~", // Bb F
  G: "[f2,bb3,d4,f4]@3 [bb3,d4,f4] ~ [bb3,d4,f4]@3 [f2,a3,c4,f4]@3 [a3,c4,f4] f2 ~ e2@2, ~@4 f2@4 ~@5 [a3,c4,f4]@2 ~", // Bb F
  H: "[d2,f3,a3,d4]@3 [f3,a3,d4] ~ [f3,a3,d4]@2 ~ [d2,f3,bb3,d4]@3 [f3,bb3,d4] ~ [f3,bb3,d4]@3, ~@4 d2@3 ~@5 d2@4", // Dm Bb
  I: "[d2,f3,a3,d4]@3 [f3,a3,d4] ~ [f3,a3,d4]@2 ~ [f3,a3,c4]@4 [e3,g3,c4]@4, ~@4 d2@3 ~@9", // Dm F C
  J: "[f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~ [bb2,bb3,d4,f4]@3 [bb3,d4,f4] ~ [bb3,d4,f4]@3, ~@4 f2@3 ~@5 bb2@4", // F Bb
  K: "[c3,g3,c4,e4]@3 [g3,c4,e4] ~ [g3,c4,e4]@2 ~ [f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~, ~@4 c3@3 ~@5 f2@3 ~", // C F
  L: "[f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~ [c3,g3,c4,e4]@3 [g3,c4,e4] ~ [g3,c4,e4]@2 ~, ~@4 f2@3 ~@5 c3@3 ~", // F C
  M: "[c3,g3,c4,e4]@3 [g3,c4,e4] ~ [g3,c4,e4]@2 ~ [d2,f3,a3,d4]@3 [f3,a3,d4] ~ [f3,a3,d4]@2 ~, ~@4 c3@3 ~@5 d2@3 ~", // C Dm
  N: "[bb2,f3,bb3,d4]@3 [f3,bb3,d4] ~ [f3,bb3,d4]@2 ~ [f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~, ~@4 bb2@3 ~@5 f2@3 ~", // Bb F
  O: "[bb2,bb3,d4,f4]@3 [bb3,d4,f4] ~ [bb3,d4,f4]@3 [c3,g3,c4,e4]@3 [g3,c4,e4] ~ [g3,c4,e4]@2 ~, ~@4 bb2@4 ~@4 c3@3 ~", // Bb C
  P: "[f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~ [f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~, ~@4 f2@3 ~@5 f2@3 ~", // F
  Q: "[c3,g3,c4,e4]@3 [g3,c4,e4] ~ [g3,c4,e4]@2 ~ [c3,g3,c4,e4]@3 [g3,c4,e4] ~ [g3,c4,e4]@2 ~, ~@4 c3@3 ~@5 c3@3 ~", // C
  R: "[a1,a3,c4,e4]@4 [bb1,bb3,d4,f4]@4 [f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~, ~@12 f2@3 ~", // Am Bb F
  S: "[f2,bb3,d4,f4]@3 [bb3,d4,f4] ~ [bb3,d4,f4]@3 [f2,a3,c4,f4]@3 [a3,c4,f4] ~@2 e2@2, ~@2 f2@2 ~@2 f2 ~, ~@13 [a3,c4,f4]@2 ~", // Bb F
  T: "[d2,f3,a3,d4]@3 [f3,a3,d4] ~ [f3,a3,d4]@2 ~ [c3,a3,c4]@4 e3 g3 c4@2, ~@4 d2@3 ~@5 c3@4", // Dm F
  U: "[f2,a3,c4,f4]@3 [a3,c4,f4] ~@2 e2@2 [d2,f3,a3,d4]@3 [f3,a3,d4] ~ [f3,a3,d4]@2 ~, ~@4 f2@2 ~@6 d2@3 ~, ~@5 [a3,c4,f4]@2 ~@9", // F Dm F
  V: "[f3,a3,c4]@4 [e3,g3,c4]@4 [f2,a3,c4,f4]@3 [a3,c4,f4] ~ [a3,c4,f4]@2 ~, ~@12 f2@3 ~", W: "a1 bb1@6 ~ a1 bb1@7",
  X: "[d2,f3,a3,d4]@3 [f3,a3,d4] ~ [f3,a3,d4]@2 ~@9, ~@4 d2@3 ~@9", Y: "[[ab3,db4,f4]@21 ~@3 [a3,c4,f4]@7 ~]/2",
  Z: "[bb3,d4,f4]@7 ~ [g3,c4,f4]@8", AA: "[c4,e4,g4]@7 ~ [a3,d4,f4]@7 ~", AB: "[g3,bb3,f4]@7 ~@2 f4@7, ~@8 [g3,c4]@7 ~",
  AC: "[g3,c4,e4] ~", AD: "~@8 [b3,d4,g4]@2 ~ [b3,d4,g4] ~ [b3,d4,g4]@2 ~",
  AE: "[c4,e4,g4]@2 ~ [c4,e4,g4] ~ [c4,e4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4] ~ [b3,d4,g4]@2 ~", // C G
  AF: "[c4,e4,g4]@2 ~ [c4,e4,g4] ~ [c4,e4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4] ~ [b3,d4,g4] [a3,d4,gb4]@2", // C G D
  AG: "[g3,b3,e4]@2 ~ [g3,b3,e4] ~ [g3,b3,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4] ~ [g3,c4,e4]@3", // Em C
  AH: "[g3,b3,e4]@2 ~ [g3,b3,e4] ~ [g3,b3,e4]@2 ~ [b3,d4]@4 [a3,d4]@4", // Em Bm D5
  AI: "[b3,d4,g4]@2 ~ [b3,d4,g4] ~ [b3,d4,g4]@2 ~ [c4,e4,g4]@2 ~ [c4,e4,g4] ~ [c4,e4,g4]@3", // G C
  AJ: "[b3,d4,g4]@2 ~ [b3,d4,g4] ~ [b3,d4,g4] [a3,d4,gb4]@2 ~@8", // G D
  AK: "[[c4,e4,g4]@2 ~ [c4,e4,g4] ~ [c4,e4,g4]@2 ~ [a3,d4,gb4]@3 [a3,d4,gb4]@3 [a3,d4,gb4]@10 ~ [c2,c4]@9 [a1,a3,c4]@10 ~ [b3,d4]@30 ~@5, ~@24 e4@9 ~@11 g1@30 ~@6]/5", // C D C Am Bm
})).s("gm_piano").gain(0.4).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@2 A@4 B C D E@2 F G H I J K L M N O P E@2 F Q A@2 B R S M N O T H I J K U ~@7 V W X Y Z AA AB AC AD AE AF AG AH AI
  AJ@2 AK AL AM AF AG AH AI AJ@2 AN AO AP AQ@5
>`.pickRestart({
  A: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [bb3,c4,f4]@3 [bb3,c4,f4]@2 [bb3,d4,f4]@3", // F Bbsus2 Bb
  B: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4]@3", // F Dm
  C: "[bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]@3 [a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4]@3", // Bb Dm
  D: "[a3,c4]@4 [g3,c4]@4 [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3", // Am C5 F
  E: "[bb3,c4,f4]@3 [bb3,c4,f4]@2 [bb3,d4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3", // Bbsus2 Bb F
  F: "[a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4]@3 [bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]@3", // Dm Bb
  G: "[b3,d4,f4]@3 [b3,d4,f4]@2 [b3,d4,f4]@3 [a3,c4,f4]@4 [g3,c4,f4]@4", // Bdim F Csus4
  H: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [bb3,c4,f4]@3 [bb3,c4,f4]@2 [bb3,c4,f4]@3", // F Bbsus2
  I: "[g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3", // C F
  J: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]@3", // F C
  K: "[g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]@3 [a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4]@3", // C Dm
  L: "[bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3", // Bb F
  M: "[bb3,c4,f4]@3 [bb3,c4,f4]@2 [bb3,c4,f4]@3 [g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]@3", // Bbsus2 C
  N: "[a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3", // F
  O: "[g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]@3 [g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]@3", // C
  P: "[a3,c4,e4]@4 [bb3,d4,f4]@4 [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3", // Am Bb F
  Q: "[a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4]@3 [a3,c4]@4 [g3,c4]@4", // Dm Am C5
  R: "[bb3,d4,f4]@3 [bb3,d4,f4]@2 [bb3,d4,f4]@3 [b3,d4,f4]@3 [b3,d4,f4]@2 [b3,d4,f4]@3", // Bb Bdim
  S: "[a3,c4,f4]@4 [g3,c4,f4]@4 [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@3", // F Csus4 F
  T: "[a3,c4,f4] [bb3,d4,f4]@3 [bb3,d4,f4]@4 [a3,c4,f4] [bb3,d4,f4]@4 [f3,bb3,d4] [f3,bb3,d4]@2", // F Bb F Bb
  U: "[a3,d4,f4]@3 [a3,d4,f4]@2 [a3,d4,f4]@3 ~@8", V: "~@11 f4@2 d4@3, ~@11 [g3,c4]@5",
  W: "[g3,c4,e4]@3 [g3,c4,e4]@2 [g3,c4,e4]@3 [d4,f4] [c4,f4] [d4,f4] ~@4 [c4,f4]", // C Dm F5 Dm F5
  X: "[d4,f4]!3 ~@4 [c4,f4] [d4,f4]!3 ~@4 [c4,f4]", // Dm F5 Dm F5
  Y: "[d4,f4]@7 ~ [a3,c4,f4]@2 [a3,c4,f4]!2 [a3,c4,f4]@2 [a3,c4,f4]!2", // Dm F
  Z: "[bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb3,d4,f4]@2 [bb3,d4,f4]!2 [g3,c4,e4]@2 [g3,c4,e4]!2 [g3,c4,e4]@2 [g3,c4,e4]!2", // Bb C
  AA: "[a3,c4,f4]@2 [a3,c4,f4]!2 [a3,c4,f4]@2 [a3,c4,f4]!2 [a3,c4,f4]@2 [a3,c4,f4]!2 [a3,c4,f4]@2 [a3,c4,f4]!2", // F
  AB: "[g3,c4,e4]@2 [g3,c4,e4]!2 [g3,c4,e4]@2 [g3,c4,e4]!2 [bb3,d4,f4]@3 [bb3,d4,f4]@3 [g3,c4,e4]@2", // C Bb C
  AC: "[a3,c4,f4]@2 [a3,c4,f4]!2 [a3,c4,f4]@2 [a3,c4,f4]!2 [bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb3,d4,f4]@2 [bb3,d4,f4]!2", // F Bb
  AD: "[g3,c4,e4]@2 [g3,c4,e4]!2 [g3,c4,e4]@2 [g3,c4,e4]!2 [a3,c4,f4]@2 [a3,c4,f4]!2 [a3,c4,f4]@2 [a3,c4,f4]!2", // C F
  AE: "[a3,c4,e4]@4 [bb3,d4,f4]@4 [b3,d4,g4]@2 [b3,d4,g4]!2 [b3,d4,g4]@2 [b3,d4,g4]!2", // Am Bb G
  AF: "[c4,d4,g4]@2 [c4,d4,g4]!2 [c4,d4,g4]@2 [c4,d4,g4]!2 [b3,d4,g4]@2 [b3,d4,g4]!2 [b3,d4,g4]@2 [b3,d4,g4]!2", // Csus2 G
  AG: "[c4,d4,g4]@2 [c4,d4,g4]!2 [c4,d4,g4]@2 [c4,d4,g4]!2 [b3,d4,g4]@2 [b3,d4,g4]!2 [b3,d4,g4]@2 [a3,d4,gb4]@2", // Csus2 G D
  AH: "[g3,b3,e4]@2 [g3,b3,e4]!2 [g3,b3,e4]@2 [g3,b3,e4]!2 [g3,c4,e4]@2 [g3,c4,e4]!2 [g3,c4,e4]@2 [g3,c4,e4]!2", // Em C
  AI: "[g3,b3,e4]@2 [g3,b3,e4]!2 [g3,b3,e4]@2 [g3,b3,e4]!2 [a3,d4,gb4]@4 [d3,a3,c4]@4", // Em D D7
  AJ: "[b3,d4,g4]@2 [b3,d4,g4]!2 [b3,d4,g4]@2 [b3,d4,g4]!2 [c4,d4,g4]@2 [c4,d4,g4]!2 [c4,d4,g4]@2 [c4,d4,g4]!2", // G Csus2
  AK: "[b3,d4,g4]@2 [b3,d4,g4]!2 [b3,d4,g4]@2 [a3,d4,gb4]@2 [e4,g4] [d4,g4] [e4,g4] ~@4 [d4,g4]", // G D Em G5 Em G5
  AL: "[e4,g4]!3 ~@4 [d4,g4] [e4,g4]!3 ~@5", // Em G5 Em
  AM: "[b3,d4,g4]@4 [a3,d4,gb4]@3 ~ [b3,d4,g4]@2 [b3,d4,g4]!2 [b3,d4,g4]@2 [b3,d4,g4]!2", // G D G
  AN: "[b3,d4,g4]@2 [b3,d4,g4]!2 [b3,d4,g4]@2 [a3,d4,gb4]@2 [g3,b3,e4,g4]@2 [b3,e4,g4]!2 [b3,e4,g4]@2 [b3,e4,g4]!2", // G D Em
  AO: "[c4,e4,g4]@2 [c4,e4,g4]!2 [c4,e4,g4]@2 [c4,e4,g4]!2 [db4,e4,g4]@2 [db4,e4,g4]!2 [db4,e4,g4]@2 [db4,e4,g4]!2", // C Dbdim
  AP: "[d4,g4]@4 [c4,gb4]@4 [b3,d4,g4]@2 [b3,d4,g4]!2 [b3,d4,g4]@2 [b3,d4,g4]!2", // G5 Cdim G
  AQ: "[[c4,d4,g4]@2 [c4,d4,g4]!2 [c4,d4,g4]@2 [c4,d4,g4]!2 [a3,d4,gb4]@3 [a3,d4,gb4]@3 [a3,d4,gb4]@6 [a3,d4,gb4]@4 ~ [c4,e4]@9 [a3,c4,e4]@9 ~ [b3,d4,g4]@24 ~@12, ~@24 g3@9 ~@47]/5", // Csus2 D C Am G
})).s("gm_acoustic_guitar_steel").gain(0.46).pan(0.1)

// chords · synth strings 2
const synth_strings_2 = note(`<
  A@6 B@2 C@3 D@2 E F G@4 H I J@3 K@2 A@2 L@2 M@2 H I N O P Q@3 R S T U@8 V W X Y Z AA@3 AB@2 AC@3 AD@4 AB@2 AC@3 AE@7
>`.pickRestart({
  A: "[a3 bb3 a3 bb3, f3]/2", B: "[[f3,a3] a3 bb3 a3, ~ d3@3]/2",
  C: "[[d3,a3] [c3,g3] a3@2 bb3@2 a3@2 bb3@2 [f3,a3]@2, ~ f3@4 ~]/3", D: "[a3@2 bb3@2 b3@2 d3 c3, d3@3 c4]/2",
  E: "a3 bb3, f3", F: "[g3,c4] [f3,a3]", G: "[[f3,a3] [g3,c4]@2 a3 bb3 a3 bb3 [g3,c4], ~@3 d4@2 f3@2 ~]/4",
  H: "[f3,a3]!2", I: "[g3,c4]", J: "[[a3,c4] [bb3,d4] a3@2 bb3@2 a3@2 bb3@2 [f3,a3]@2, ~ f3@4 ~]/3",
  K: "[a3@2 bb3@2 a3@2 [c3,a3] [c3,g3], d3@3 ~]/2", L: "[[f3,a3] a3 bb3 b3, ~ d3@3]/2",
  M: "[d3 c3 a3@2 bb3@2 [g3,c4]@2, c4 f3@2 ~]/2", N: "bb1", O: "[f2,a3] [bb2,bb3]", P: "[c3,c4] [f2,a3]",
  Q: "[[f2,a3] [c3,g3]@2 [d3,a3]@2 [c4,f4]]/3", R: "[b3,f4] [db4,f4]", S: "[bb3,eb4]", T: "[bb3,f4]",
  U: "[db4@4 eb4@4 f4@4 ab4@4 db5@4 eb5@4 f2@8 bb1@8 ~@8 g5@8 d2@8 g2@8 ~@8 e5@8 a3@8 bb3@8 b3@8 c4@8 [f2,f3,a3]@7 ~, db2@3 f5@3 ~ f5@3 ~@6, ~@5 c2@2 ~@2 c2@2 [d2,f3]@4 ~]/8", // F Dm
// … 134 more lines

More by Gatto Panceri