Strudelify

Tico-Tico

Xavier Cugat

KeyA minorTempo112 bpm
0:00/0:00
// Tico-Tico — Xavier Cugat
// 112 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 82 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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 · "FINGERDBAS"
const bass = note(`<
  A B C D E F G D H I J K L M N K O P G D E F C D Q I J K L R N S O T U V W X U Y Z AA C AB E F C D Q AC N K AD M J AE O
  P C D E F C AF Q I N K AD AG J K O AH ~@8
>`.pickRestart({
  A: "f1@2 ~ d2 f2@2 f#2@2 g2@2 ~ c2 e2@2 g2@2", B: "f2@2 ~ d2 b1@2 g1@2 c2@2 g1@2 c1 ~@3", C: "a1 ~ c3 c2 b1 ~ b2 b1",
  D: "g#1@2 ~@2 e2@2 g#1@2 a1 e2@2 e2 a1@2 ~@2", E: "d2 ~ a2 d#2 e2 ~ a2 g2",
  F: "f#2@2 ~@2 d#2@2 b1@2 e2 b2@2 b1 e1@2 ~@2", G: "a1@2 ~@2 c3@2 c2@2 b1@2 ~@2 b2@2 b1 ~",
  H: "d2@2 ~@2 a2@2 d#2@2 e2@2 ~@2 a1@2 e2 ~", I: "g#1@2 ~@2 b2@2 d3@2 a2 e2@2 e2 a1@2 ~@2", J: "c1 ~ g1 e2 d2 ~ g1 b1",
  K: "g1 ~ g2 b1 c2 ~ g2 e2", L: "c2 ~ e2 c#2 d2 ~ g2 d2", M: "g1@2 ~@2 b1@2 g2 f2 e2 g2@2 g2 f2@2 g1@2",
  N: "c1@2 ~@2 g1@2 e2@2 d2@2 ~@2 g1@2 b1 ~", O: "f2@2 ~ d2 f2@2 f#2@2 g2@2 ~ g1 c2@2 g2@2",
  P: "f2@2 ~ d2 b1@2 g1@2 c2@2 g1@2 c1@2 ~@2", Q: "d2 ~ a2 d#2 e2 ~ a1 e2",
  R: "g1@2 ~@2 b1@2 g2 f2 e2 g2@2 g2 f2@2 g1 ~", S: "g1@2 ~@2 g2@2 b1@2 c2@2 ~@2 g2@2 e2 ~",
  T: "f2@2 ~ d2 b1@2 g1@2 c2 a2@2 g2 e2@2 ~@2", U: "a1@2 ~ c#3 e2@2 a2@2 a1@2 ~ a2 e2@2 a2@2",
  V: "a1@2 ~ a2 a1@2 a#1@2 b1@2 ~ g#2 e2@2 b2@2", W: "b1@2 ~ b2 e2@2 b2@2 b1@2 ~ g#2 e2@2 b2@2",
  X: "b1@2 ~ b2 e2@2 c2@2 c#2@2 ~ a2 e2 ~ a2@2", Y: "c#2@2 ~ c#3 a#2@2 f#2@2 b1@2 ~ f#2 b2@2 a2 g#2",
  Z: "f#2@2 ~ e2 d2@2 d#2@2 e2@2 ~ c#3 a2@2 a1@2", AA: "e2@2 ~ b2 g#2@2 e2@2 a1 f#1@2 e1 a0@2 ~@2",
  AB: "g#1@2 ~@2 e2 ~ g#1@2 a1 e2@2 e2 a1@2 ~@2", AC: "g#1@2 ~@2 b2@2 d3 ~ a2 e2@2 e2 a1@2 ~@2",
  AD: "c2@2 ~@2 e2@2 c#2@2 d2@2 ~@2 g2@2 d2 ~", AE: "g1@2 ~@2 g2@2 b1 ~ c2@2 ~@2 g2@2 e2@2",
  AF: "~@4 e2@2 g#1@2 a1 e2@2 e2 a1@2 ~@2", AG: "g1@2 ~@2 b1@2 g2 f2 e2 g2 ~ g2 f2@2 g1@2",
  AH: "f2@2 ~ d2 b1@2 g1@2 c2 g1@2 g1 c1@2 ~@2",
})).s("gm_electric_bass_finger").gain(0.6)

// chords · epiano1 · "E.PIANO"
const epiano1 = note(`<
  A B C D E F G D H D I J K L I M N O P D E F Q D R D S T K L U M N V W X Y Z W AA AB AC C AD E F AE D R D I T AF AG S M
  N AH C AI E F C D R AJ I M K AK S M N AL@8 ~
>`.pickRestart({
  A: "[c4,f4,a4]@3 ~ [d4,g4,b4]@3 ~", B: "[c4,f4,a4]@6 ~@2 [c4,e4,g4]@2 ~@2 [e4,g4,c5] g4 ~@2",
  C: "[c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 ~ [c4,e4,a4]@2 [d4,g#4,b4]@2 [d4,g#4,b4] [d4,g#4,b4]@2 [d4,g#4,b4]@2", // Am G#dim
  D: "[d4,g#4,b4]@2 [d4,g#4,b4]@2 [d4,g#4,b4]@2 ~ [d4,g#4,b4]@2 [c4,e4,a4]@2 [c4,e4,a4] [c4,e4,a4]@2 [c4,e4,a4]@2", // G#dim Am
  E: "[d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 ~ [d4,f4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4] [c4,e4,a4]@2 [c4,e4,g4]@2", // Dm Am C
  F: "[d#4,f#4,a4]@2 [d#4,f#4,a4]@2 [d#4,f#4,a4]@2 ~ [d#4,f#4,a4]@2 [e4,g#4,b4]@2 [e4,g#4,b4] [e4,g#4,b4]@2 [e4,g#4,b4]@2", // D#dim E
  G: "[c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 ~ [c4,e4,a4]@2 [d4,g#4,b4]@2 [d4,g#4,b4] [d4,g#4,b4]@2 [d4,g#4]@2, ~@14 b4 ~", // Am G#dim Ddim
  H: "[d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 ~ [d4,f4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4] [c4,e4,a4]@2 [c4,e4,a4] ~", // Dm Am
  I: "[c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 ~ [c4,e4,g4]@2 [b3,d4,f4]@2 [b3,d4,f4] [b3,d4,f4]@2 [b3,d4,f4]@2", // C Bdim
  J: "[b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4]@2, ~@14 g4 ~", // Bdim C
  K: "[c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c#4,f4,a4]@2 [d4,f4,a4] [d4,f4,a4]@2 [d4,f4,a4] [b3,d4,f4]@2 [b3,d4,f4]@2", // C C#aug Dm Bdim
  L: "[b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4]@2 [c4,e4,g4]@2 [c4,e4,g4] [b3,d4,f4]@2 [b3,d4,f4]@2", // Bdim C Bdim
  M: "[b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2", // Bdim C
  N: "[d4,f4,a4] [d4,f4,a4]@2 [d4,f4,a4] [d4,f4,a4]@2 [d#4,f#4,a4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2", // Dm D#dim C
  O: "[d4,f4,a4]@2 [d4,f4,a4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4] [c4,e4,g4]@2 ~@2 [e4,c5] ~@3", // Dm Bdim C
  P: "[c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 ~ [c4,e4,a4]@2 [d4,g#4,b4]@2 [d4,g#4,b4] [d4,g#4,b4]@2 [d4,g#4,b4] ~", // Am G#dim
  Q: "[c4,e4,a4]@2 [c4,e4,a4] ~ [c4,e4,a4]@2 ~ [c4,e4,a4]@2 [d4,g#4,b4]@2 [d4,g#4,b4] [d4,g#4,b4]@2 [d4,g#4,b4]@2", // Am G#dim
  R: "[d4,f4,a4]@2 [d4,f4,a4]@2 [d4,f4,a4]@2 ~ [d4,f4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4] [c4,e4,a4]@2 [c4,e4,a4]@2", // Dm Am
  S: "[c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 ~ [c4,e4,g4]@2 [b3,d4,f4]@2 [b3,d4,f4] [b3,d4,f4]@2 [b3,d4]@2, ~@14 f4 ~", // C Bdim Bm
  T: "[b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [e4,g4]@2, ~@14 c4 ~", // Bdim C Em
  U: "[c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 ~ [c4,e4,g4]@2 [b3,d4,f4]@2 [b3,d4,f4] [b3,d4,f4]@2 [b3,d4,f4] ~", // C Bdim
  V: "[d4,f4,a4]@2 [d4,f4,a4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4] [c4,e4,g4]@2 ~@6", // Dm Bdim C
  W: "[c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@2 ~ [c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4] [c#4,e4,a4]@2 [c#4,e4,a4]@2", // A
  X: "[c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@2 ~ [c#4,e4,a4]@2 [e4,g#4,b4]@2 [e4,g#4,b4] [e4,g#4,b4]@2 [e4,g#4,b4]@2", // A E
  Y: "[e4,g#4,b4]@2 [e4,g#4,b4]@2 [e4,g#4,b4]@2 ~ [e4,g#4,b4]@2 [e4,g#4,b4]@2 [e4,g#4,b4] [e4,g#4,b4]@2 [e4,g#4,b4]@2", // E
  Z: "[e4,g#4,b4]@2 [e4,g#4,b4]@2 [e4,g#4,b4]@2 ~ [e4,g#4,b4]@2 [c#4,e4,a4]@2 [c#4,e4,a4] [e4,a4] ~ [c#4,e4,a4]@2, ~@6 c#4 ~", // E A A5 A
  AA: "[c#4,e4,a4]@2 [c#4,e4,a4]@2 [c#4,e4,a4]@2 ~ [c#4,e4,a4]@2 [d4,f#4,b4]@2 [d4,f#4,b4] [d4,f#4,b4]@2 [d4,f#4,b4]@2", // A Bm
  AB: "[d4,f#4,b4]@2 [d4,f#4,b4]@2 [d4,f#4,b4]@2 ~ [d4,f#4] [c#4,e4] [c#4,e4,a4]@2 [c#4,e4,a4] [c#4,e4,a4]@2 [c#4,e4,a4]@2, ~@7 b4@2 ~@7", // Bm D C#m A
  AC: "[e4,g#4,b4]@2 [e4,g#4,b4]@2 [e4,g#4,b4]@2 ~ [e4,g#4,b4] [c#4,e4,a4]@2 ~@2 [a4,c#5,e5] ~@3", // E A
  AD: "[d4,g#4,b4] ~ [d4,g#4,b4]@2 [d4,g#4,b4] ~@2 [d4,g#4,b4]@2 [c4,e4,a4]@2 [c4,e4,a4] [c4,e4,a4]@2 [c4,e4,a4]@2", // G#dim Am
  AE: "[c4,e4,a4]@2 [c4,e4,a4]@2 [c4,e4,a4]@2 ~ [c4,e4,a4] ~ [d4,g#4,b4]@2 [d4,g#4,b4] [d4,g#4,b4]@2 [d4,g#4,b4]@2", // Am G#dim
  AF: "[c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c#4,f4,a4]@2 [d4,f4,a4] [d4,f4,a4]@2 [d4,f4,a4] [b3,d4,f4]@2 [b3,d4]@2, ~@14 f4 ~", // C C#aug Dm Bdim Bm
  AG: "[b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4]@2 [c4,e4,g4]@2 [c4,e4,g4] [b3,d4,f4]@2 [d4,f4]@2, ~@14 b3 ~", // Bdim C Bdim Dm
  AH: "[d4,f4,a4]@2 [d4,f4,a4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4] [c4,e4,g4]@2 ~@2 [e4,g4,c5] ~@3", // Dm Bdim C
  AI: "[d4,g#4,b4] ~ [d4,g#4,b4]@2 [d4,g#4,b4]@2 ~ [d4,g#4,b4]@2 [c4,e4,a4]@2 [c4,e4,a4] [c4,e4,a4]@2 [c4,e4,a4]@2", // G#dim Am
  AJ: "[d4,g#4,b4]@2 [d4,g#4,b4]@2 [d4,g#4,b4]@2 ~ [d4,g#4,b4]@2 [c4,e4,a4]@2 [c4,e4,a4]!2 ~ [e4,a4]@2, ~@14 c4 ~", // G#dim Am A5
  AK: "[b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4]@2 [c4,e4,g4] ~ [c4,e4,g4] [b3,d4,f4]@2 [b3,d4,f4]@2", // Bdim C Bdim
  AL: "[[d4,f4,a4] ~ [d4,f4,a4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4] [e4,g4,c5]@2 ~@2 [c5,e5]@116, ~@6 g5 ~@57]/8", // Dm Bdim C
})).s("gm_epiano1").gain(0.42).pan(0.2)

// chords · marimba
const marimba = note(`<
  A B C D E F G H I E J K L M N O P Q R D S F G T U S V O W X Y Z AA AB AC AD AE AF AC AG AH AI AJ AK AL AM AN AO AP AQ
  N O W AR V AS P AT AJ AU AV AW AN AO AP AQ N K AX AY V AS AA AZ ~@8
>`.pickRestart({
  A: "[c5,f5,a5]@3 ~ [d5,g5,b5]@3 ~", B: "[c5,f5,a5]@6 ~@2 [c5,e5,g5]@2 ~@2 [e5,g5,c6] g5 ~@2",
  C: "a5 ~@3 c5 ~@6 g#5 ~@2 d5 ~", D: "~@4 g#5 ~@4 c5 ~@4 e5 ~", E: "~@2 d5 ~@6 e5 ~@2 c5 ~@3",
  F: "~@2 f#5 ~@4 d#5 ~@4 b5 ~@3", G: "c5 ~@6 a5 ~@3 d5 ~@4", H: "b5 ~@3 d5 ~@6 e5 ~@2 c5 ~",
  I: "~@4 f5 ~@4 c5 ~@4 e5 ~",
  J: "[c5,e5,g5]@2 [c5,e5,g5]@2 [c5,e5,g5]@2 ~ [c5,e5,g5]@2 [b4,d5,f5]@2 [b4,d5,f5] [b4,d5,f5]@2 [d5,f5]@2, ~@14 b4 ~", // C Bdim Dm
  K: "[b4,d5,f5]@2 [b4,d5,f5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5]@2 [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c5,e5]@2, ~@14 g5 ~", // Bdim C
  L: "[c5,e5,g5] [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c#5,f5,a5]@2 [d5,f5,a5] [d5,f5,a5]@2 [d5,f5,a5] [b4,d5,f5]@2 [d5,f5]@2, ~@14 b4 ~", // C C#aug Dm Bdim Dm
  M: "[b4,d5,f5]@2 [b4,d5,f5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5]@2 [c5,e5,g5]@2 [c5,e5,g5] [b4,d5,f5]@2 [d5,f5] ~, ~@7 b4", // Bdim C Bdim Dm
  N: "[c5,e5,g5]@2 [c5,e5,g5]@2 [c5,e5,g5]@2 ~ [c5,e5,g5]@2 [b4,d5,f5]@2 [b4,d5,f5] [b4,d5,f5]@2 [b4,d5,f5]@2", // C Bdim
  O: "[b4,d5,f5]@2 [b4,d5,f5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5]@2 [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [e5,g5]@2, ~@14 c5 ~", // Bdim C Em
  P: "[d5,f5,a5] [d5,f5,a5]@2 [d5,f5,a5] [d5,f5,a5]@2 [d#5,f#5,a5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c5,e5]@2, ~@14 g5 ~", // Dm D#dim C
  Q: "[d5,f5,a5]@2 [d5,f5,a5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5] [c5,e5,g5]@2 ~@2 [e5,c6] ~@3", R: "a5 ~@3 c5 ~@6 b5 ~@2 d5 ~",
  S: "~@2 d5 ~@6 a5 ~@2 c5 ~@3", T: "g#5 ~@3 d5 ~@6 e5 ~@2 c5 ~", U: "~@4 a5 ~@4 c5 ~@4 e5 ~",
  V: "[c5,e5,g5]@2 [c5,e5,g5]@2 [c5,e5,g5]@2 ~ [c5,e5,g5]@2 [b4,d5,f5]@2 [b4,d5,f5] [b4,d5,f5]@2 [b4,d5]@2, ~@14 f5 ~", // C Bdim Bm
  W: "[c5,e5,g5] [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c#5,f5,a5]@2 [d5,f5,a5] [d5,f5,a5]@2 [d5,f5,a5] [b4,d5,f5]@2 [b4,d5]@2, ~@14 f5 ~", // C C#aug Dm Bdim Bm
  X: "[b4,d5,f5]@2 [b4,d5,f5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5]@2 [c5,e5,g5]@2 [c5,e5,g5] [b4,d5,f5]@2 [b4,d5,f5]@2", // Bdim C Bdim
  Y: "[c5,e5,g5]@2 [c5,e5,g5]@2 [c5,e5,g5]@2 ~ [c5,e5,g5]@2 [b4,d5,f5]@2 [b4,d5,f5] [b4,d5,f5]@2 [b4,d5,f5] ~", // C Bdim
  Z: "[b4,d5,f5]@2 [b4,d5,f5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5]@2 [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c5,e5,g5]@2", // Bdim C
  AA: "[d5,f5,a5] [d5,f5,a5]@2 [d5,f5,a5] [d5,f5,a5]@2 [d#5,f#5,a5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c5,e5,g5]@2", // Dm D#dim C
  AB: "[d5,f5,a5]@2 [d5,f5,a5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5] [c5,e5,g5]@2 ~@6", // Dm Bdim C
  AC: "[c#5,e5,a5]@2 [c#5,e5,a5]@2 [c#5,e5,a5]@2 ~ [c#5,e5,a5]@2 [c#5,e5,a5]@2 [c#5,e5,a5] [c#5,e5,a5]@2 [c#5,e5,a5]@2", // A
  AD: "[c#5,e5,a5]@2 [c#5,e5,a5]@2 [c#5,e5,a5]@2 ~ [c#5,e5,a5]@2 [e5,g#5,b5]@2 [e5,g#5,b5] [e5,g#5,b5]@2 [e5,g#5,b5]@2", // A E
  AE: "[e5,g#5,b5]@2 [e5,g#5,b5]@2 [e5,g#5,b5]@2 ~ [e5,g#5,b5]@2 [e5,g#5,b5]@2 [e5,g#5,b5] [e5,g#5,b5]@2 [e5,g#5,b5]@2", // E
  AF: "[e5,g#5,b5]@2 [e5,g#5,b5]@2 [e5,g#5,b5]@2 ~ [e5,g#5,b5]@2 [c#5,e5,a5]@2 [c#5,e5,a5] [e5,a5] ~ [c#5,e5,a5]@2, ~@6 c#5 ~", // E A A5 A
  AG: "[c#5,e5,a5]@2 [c#5,e5,a5]@2 [c#5,e5,a5]@2 ~ [c#5,e5,a5]@2 [d5,f#5,b5]@2 [d5,f#5,b5] [d5,f#5,b5]@2 [d5,f#5,b5]@2", // A Bm
  AH: "[d5,f#5,b5]@2 [d5,f#5,b5]@2 [d5,f#5,b5]@2 ~ [d5,f#5] [c#5,e5] [c#5,e5,a5]@2 [c#5,e5,a5] [c#5,e5,a5]@2 [c#5,e5,a5]@2, ~@7 b5@2 ~@7", // Bm D C#m A
  AI: "[e5,g#5,b5]@2 [e5,g#5,b5]@2 [e5,g#5,b5]@2 ~ [e5,g#5,b5] [c#5,e5,a5]@2 ~@2 [a5,c#6,e6] ~@3", // E A
  AJ: "~@2 a5 ~@4 c5 ~@4 b5 ~@3", AK: "d5 ~@6 b5 ~@3 c5 ~@4", AL: "a5 ~@3 a5 ~@6 a5 ~@2 c5 ~",
  AM: "~@4 a5 ~@4 b5 ~@4 b5 ~", AN: "~@2 c5 ~@6 g#5 ~@2 d5 ~@3", AO: "~@2 b5 ~@4 d5 ~@4 a5 ~@3",
  AP: "d5 ~@6 a5 ~@3 c5 ~@4", AQ: "b5 ~@3 d5 ~@6 a5 ~@2 c5 ~",
  AR: "[b4,d5,f5]@2 [b4,d5,f5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5]@2 [c5,e5,g5]@2 [c5,e5,g5] [b4,d5,f5]@2 [d5,f5]@2, ~@14 b4 ~", // Bdim C Bdim Dm
  AS: "[b4,d5,f5]@2 [b4,d5,f5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5]@2 [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c5,e5] ~, ~@7 g5", // Bdim C
  AT: "[d5,f5,a5]@2 [d5,f5,a5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5] [c5,e5,g5]@2 ~@2 [e5,g5,c6] ~@3", AU: "d5 ~@6 b5 ~@3 a5 ~@4",
  AV: "a5 ~@3 d5 ~@6 a5 ~@2 c5 ~", AW: "~@4 f#5 ~@4 b5 ~@4 b5 ~",
  AX: "[c5,e5,g5] [c5,e5,g5]@2 [c5,e5,g5] [c5,e5,g5]@2 [c#5,f5,a5]@2 [d5,f5,a5] [d5,f5,a5]@2 [d5,f5,a5] [b4,d5,f5]@2 [b4,d5,f5]@2", // C C#aug Dm Bdim
  AY: "[b4,d5,f5]@2 [b4,d5,f5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5]@2 [c5,e5,g5] ~ [c5,e5,g5] [b4,d5,f5]@2 [b4,d5] ~, ~@7 f5", // Bdim C Bdim Bm
  AZ: "[d5,f5,a5] ~ [d5,f5,a5]@2 [b4,d5,f5]@2 ~ [b4,d5,f5] [e5,g5,c6]@2 ~@2 [c6,e6,g6]@2 ~@2", // Dm Bdim C
})).s("gm_marimba").gain(0.17).pan(0.9)

// other · vibraphone
const vibraphone = 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 Y J Z AA M AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP E AQ AR X AS J
  AT AA AU AV O AW Q AX S AY U AZ AR X AS BA BB BC BD BE O BF BG BH ~@8
>`.pickRestart({
  A: "a5@3 ~ g5@3 ~", B: "~@8 c5@2 ~@3 g5 ~@2", C: "~@2 c5@2 ~@3 a5@2 g#5@2 ~ b5@2 ~@2",
  D: "b5@2 d5@2 ~@3 g#5@2 ~@2 a5 c5@2 ~@2", E: "f5@2 ~@2 d5@2 ~ d5@2 ~@2 e5 ~@2 g5@2",
  F: "d#5@2 ~@2 d#5@2 ~@3 b5@2 g#5 ~@2 e5@2", G: "~@2 a5@2 e5@2 ~@3 g#5@2 ~ b5@2 d5@2",
  H: "~@2 g#5@2 ~@3 b5@2 c5@2 ~ e5@2 ~@2", I: "a5@2 d5@2 ~@3 f5@2 ~@2 a5 e5@2 ~@2",
  J: "g#5@2 ~@2 b5@2 ~ d5@2 ~@2 e5 ~@2 a5@2", K: "c5@2 ~@2 c5@2 ~@3 f5@2 b4 ~@2 b4 ~",
  L: "~@2 f5@2 b4@2 ~@3 c5@2 ~ g5@2 e5@2", M: "~ e5@2 ~ c5@2 f5@2 ~ d5@2 ~ f5@2 d5 ~",
  N: "~@2 b4@2 ~@3 f5@2 e5@2 ~ d5@2 ~@2", O: "g5@2 c5@2 ~@3 e5@2 ~@2 f5 d5@2 ~@2",
  P: "b4@2 ~@2 f5@2 ~ b4@2 ~@2 e5 ~@2 c5 ~", Q: "d5 ~@2 d5 ~@2 d#5@2 e5 ~@2 c5 ~@2 g5 ~",
  R: "d5@2 ~@2 b4@2 ~@2 g5@2 ~@2 e5 ~@3", S: "~@2 e5@2 ~@3 a5@2 d5@2 ~ d5@2 ~@2",
  T: "b5@2 g#5@2 ~@3 g#5@2 ~@2 c5 c5@2 ~@2", U: "f5@2 ~@2 a5@2 ~ d5@2 ~@2 e5 ~@2 g5@2",
  V: "d#5@2 ~@2 d#5@2 ~@3 e5@2 g#5 ~@2 g#5@2", W: "~@2 a5 ~ e5@2 ~@3 b5@2 ~ d5@2 g#5@2",
  X: "~@2 d5@2 ~@3 b5@2 e5@2 ~ e5@2 ~@2", Y: "a5@2 f5@2 ~@3 f5@2 ~@2 a5 e5@2 ~@2",
  Z: "c5@2 ~@2 e5@2 ~@3 f5@2 b4 ~@2 b4@2", AA: "~@2 f5@2 b4@2 ~@3 g5@2 ~ g5@2 e5@2",
  AB: "~@2 d5@2 ~@3 f5@2 c5@2 ~ d5@2 ~@2", AC: "g5@2 e5@2 ~@3 e5@2 ~@2 f5 b4@2 ~@2",
  AD: "d5@2 ~@2 f5@2 ~ b4@2 ~@2 c5 ~@2 c5@2", AE: "d5 ~@2 d5 ~@2 a5 ~ e5 ~@2 c5 ~@2 c5 ~", AF: "d5 ~ d5 ~ c5 ~@3",
  AG: "c#5@2 ~@2 e5@2 ~@3 a5@2 e5 ~@2 c#5@2", AH: "~@2 a5@2 c#5@2 ~@3 g#5@2 ~ b5@2 g#5@2",
  AI: "~@2 b5@2 ~@3 b5@2 g#5@2 ~ e5@2 ~@2", AJ: "b5@2 e5@2 ~@3 g#5@2 ~@2 a5 c#5@2 ~@2",
  AK: "e5@2 ~@2 a5@2 ~ e5@2 ~@2 c#5 ~@2 a5@2", AL: "c#5@2 ~@2 c#5@2 ~@3 b5@2 f#5 ~@2 d5@2",
  AM: "~@2 b5@2 f#5@2 ~@2 e5 ~@2 c#5 ~@2 a5@2", AN: "e5@2 ~@2 g#5@2 ~@2 c#5@2 ~@2 c#6 ~@3",
  AO: "~@2 e5@2 ~@3 a5@2 g#5@2 ~ d5@2 ~@2", AP: "b5 ~ g#5@2 ~@3 g#5@2 ~@2 a5 c5@2 ~@2",
  AQ: "f#5@2 ~@2 d#5@2 ~@3 e5@2 g#5 ~@2 e5@2", AR: "~@2 a5@2 e5@2 ~@3 b5@2 ~ b5@2 g#5@2",
  AS: "a5@2 d5@2 ~@3 f5@2 ~@2 a5 c5@2 ~@2", AT: "c5@2 ~@2 c5@2 ~@3 f5@2 b4 ~@2 b4@2",
  AU: "~ c5@2 ~ c5@2 f5@2 ~ d5@2 ~ f5@2 d5@2", AV: "~@2 d5@2 ~@3 f5@2 e5@2 ~ d5@2 ~@2",
  AW: "b4@2 ~@2 f5@2 ~ d5@2 ~@2 e5 ~@2 g5@2", AX: "f5@2 ~@2 b4@2 ~@2 g5@2 ~@2 e5 ~@3",
  AY: "b5 ~ d5@2 ~@3 g#5@2 ~@2 c5 c5@2 ~@2", AZ: "f#5@2 ~@2 a5@2 ~@3 e5@2 g#5 ~@2 e5@2",
  BA: "g#5@2 ~@2 b5@2 ~ d5@2 ~@2 c5 ~@2 a5@2", BB: "c5@2 ~@2 c5@2 ~@3 f5@2 b4 ~@2 f5@2",
  BC: "~@2 f5@2 b4@2 ~@3 c5@2 ~ g5@2 e5 ~", BD: "~ e5@2 ~ c5@2 f5@2 ~ a5@2 ~ b4@2 d5@2",
  BE: "~@2 b4@2 ~@3 f5@2 e5 ~@2 d5@2 ~@2", BF: "b4@2 ~@2 f5@2 ~ b4@2 ~@2 c5 ~@2 g5@2",
  BG: "f5 ~@2 d5 ~@2 d#5@2 e5 ~@2 c5 ~@2 g5 ~", BH: "d5 ~@3 b4@2 ~@2 c6@2 ~@2 e6@2 ~@2",
})).s("gm_vibraphone").gain(0.17).pan(0.2)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = 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 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 BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV ~@8
>`.pickRestart({
  A: "a3@3 ~ [g3,b3]@3 ~", B: "[c3,f3]@3 ~@5", C: "a3@2 a3@2 ~@3 e3@2 g#3@2 d3 b3@2 ~@2",
  D: "b3@2 ~@2 g#3@2 ~@3 [e3,a3]@2 ~ c3@2 a3@2", E: "~@2 f3@2 a3@2 ~@3 e3@2 ~ a3@2 c3@2",
  F: "[f#3,a3]@2 ~@7 g#3@2 b3 b3@2 g#3@2", G: "c3@2 ~@5 a3@2 [g#3,b3]@2 ~ g#3@2 ~@2",
  H: "~@2 [d3,b3]@2 ~@3 b3@2 e3@2 e3 ~@2 a3@2", I: "~@4 [d3,a3]@2 ~ f3@2 e3@2 a3 ~@4",
  J: "~@2 b3@2 g#3@2 ~ [d3,b3]@2 e3@2 ~@5", K: "g3@2 [e3,g3]@2 ~@5 [b2,d3]@2 ~ f3@2 f3@2",
  L: "d3@2 ~@7 [e3,g3]@2 c3 g3@2 e3@2", M: "~@3 g3 ~@2 f3@2 a3 [d3,f3]@2 ~ f3@2 ~@2",
  N: "~@4 [d3,f3]@2 ~ d3@2 g3@2 c3 ~@4", O: "~ [e3,g3]!2 ~@3 b2 f3", P: "[d3,f3]@2 ~@2 d3@2 ~@5 g3 ~@2 [c3,e3,g3]@2",
  Q: "~@3 f3 a3@2 ~@3 [e3,g3]@2 ~ c3@2 g3@2", R: "f3@2 ~@5 [d3,f3] ~@4 c4 ~@3",
  S: "~@2 c3@2 e3@2 ~@3 [g#3,b3]@2 b3 ~@4", T: "~@4 [d3,g#3,b3]@2 ~ [g#3,b3]@2 ~@7",
  U: "a3@2 f3@2 [f3,a3]@2 ~ d3@2 ~@3 a3@2 ~@2", V: "f#3@2 a3@2 f#3@2 ~@3 [e3,b3]@2 ~@3 g#3@2",
  W: "a3@2 ~@2 [e3,a3]@2 ~@5 d3 g#3@2 b3@2", X: "b3@2 ~@2 g#3@2 ~@5 [e3,a3] [c3,a3]@2 ~@2",
  Y: "~@4 f3@2 ~ a3@2 e3@2 a3 ~@2 c3@2", Z: "~@2 b3@2 g#3@2 ~ g#3@2 a3@2 ~@3 a3@2",
  AA: "c3@2 e3@2 e3@2 ~ g3@2 ~@2 f3 ~@4", AB: "d3@2 b2@2 [d3,f3]@2 ~ f3@2 ~@5 e3@2",
  AC: "g3 g3@2 [c3,e3] ~@5 [f3,a3]@2 ~ f3@2 ~@2", AD: "d3@2 b2@2 f3@2 ~ d3@2 ~@2 g3 ~@4",
  AE: "[e3,g3]@2 ~@2 [c3,e3]@2 ~@3 f3@2 ~ f3@2 ~@2", AF: "d3@2 d3@2 ~@3 [b2,f3]@2 g3@2 ~@3 e3@2",
  AG: "f3 a3@2 a3 ~@2 d#3@2 ~ e3@2 g3 e3@2 g3@2", AH: "~@7 [b2,d3,f3] ~@8", AI: "~@2 [e3,a3]@2 ~@5 a3@2 e3 ~@2 c#3@2",
  AJ: "a3@2 e3@2 a3@2 ~@3 g#3@2 ~@3 b3@2", AK: "[e3,b3]@2 g#3@2 ~@3 g#3@2 ~@2 b3 b3@2 ~@2",
  AL: "~@2 [e3,g#3]@2 g#3@2 ~ b3@2 ~@2 a3 ~@4", AM: "e3@2 [e3,a3]@2 c#3@2 ~@3 a3@2 ~@3 [e3,a3]@2",
  AN: "~@2 e3@2 ~@3 [c#3,a3]@2 ~@2 b3 f#3@2 ~@2", AO: "~@2 f#3@2 b3@2 ~@2 c#3 e3@2 ~@5, ~@7 b3@2 ~@7",
  AP: "[g#3,b3]@2 b3@2 ~@3 g#3 c#3@2 ~@6", AQ: "a3@2 ~@2 [e3,a3]@2 ~@3 g#3@2 ~ b3@2 d3@2",
  AR: "~@2 b3@2 g#3 ~@2 g#3@2 a3@2 ~@5", AS: "[d3,a3] f3 [f3,a3] ~@4 g3",
  AT: "[f#3,a3]@2 d#3@2 f#3@2 ~@5 b3 b3@2 g#3@2", AU: "~@4 [c3,e3]@2 ~ a3 ~@3 b3 g#3@2 ~@2",
  AV: "~@2 b3@2 g#3@2 ~ d3@2 a3@2 e3 ~@2 a3@2", AW: "~@4 f3@2 ~ a3@2 [c3,e3]@2 a3 ~@4",
  AX: "~@4 [g#3,b3]@2 ~ [g#3,b3]@2 ~@2 c3 ~@4", AY: "g3 [e3,g3] e3 ~@3 [b2,f3] ~",
  AZ: "[d3,f3]@2 ~@2 d3@2 ~@3 g3@2 ~@3 [c3,e3,g3]@2", BA: "~@3 [e3,g3] ~@5 [f3,a3]@2 ~ [b2,f3]@2 ~@2",
  BB: "d3@2 ~@5 [d3,f3]@2 g3@2 ~@3 b2@2", BC: "e3 g3 [e3,g3] ~@4 f3", BD: "[b2,d3]@2 [d3,f3]@2 ~@7 g3 ~@2 e3@2",
  BE: "[f3,a3] d3@2 ~ a3@2 ~@3 e3@2 g3 e3@2 g3@2", BF: "d3@2 ~@5 d3 g3@2 ~@2 c4 ~@3",
  BG: "e3@2 ~@5 c3@2 [g#3,b3]@2 b3 ~@4", BH: "g#3 ~@3 b3@2 ~ g#3@2 [c3,a3]@2 ~@5",
  BI: "[f3,a3]@2 ~@2 f3@2 ~ a3@2 ~@2 c3 a3@2 ~@2", BJ: "f#3@2 f#3@2 a3@2 ~@3 b3@2 ~ e3@2 g#3@2",
  BK: "e3 a3!2 ~@3 g#3 [d3,b3]", BL: "[g#3,b3]@2 ~@9 [e3,a3] ~@2 a3@2", BM: "[d3,f3]@2 ~@5 a3@2 e3@2 ~ a3@2 ~@2",
  BN: "g#3@2 [d3,b3]@2 ~@3 g#3@2 ~@2 a3 ~@2 a3@2", BO: "e3@2 ~@2 [c3,e3]@2 ~@3 f3@2 f3 ~@4",
  BP: "d3@2 d3@2 f3@2 ~ [b2,f3]@2 ~@5 e3@2", BQ: "[e3,g3] ~@2 g3 ~@2 c#3@2 ~ [f3,a3]@2 ~ d3@2 f3@2",
  BR: "~@4 f3@2 ~ [b2,d3]@2 ~@3 [d3,f3]@2 ~@2", BS: "g3@2 ~@2 e3@2 ~@3 b2@2 f3 [d3,f3]@2 ~@2",
  BT: "~@2 d3@2 ~@3 f3@2 g3@2 c3 e3@2 ~@2", BU: "f3 a3@2 ~ a3@2 ~@3 [c3,e3]@2 [e3,g3] ~@4",
  BV: "a3 ~@6 [d3,f3] g3@2 ~@2 c4@2 ~@2", // Dm
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.4)

// other · steel drums · "STEELDRUMS"
// … 123 more lines

More by Xavier Cugat