Strudelify

Ti sento

Matia Bazar

KeyA minorTempo122 bpm
0:00/0:00
// Ti sento — Matia Bazar
// 122 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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.

// other · pad poly · "POLYSYNTH"
const pad_poly = note(`<
  ~@10 A B ~@2 A C ~@2 D E F ~@2 G H I J K I@2 H I J K I L M N O P ~@4 Q R Q S Q S Q T ~@2 U V W ~@2 X Y Z AA AB Z@2 Y Z
  AA AB Z AC AD@8 Y Z AA AB Z@2 Y Z AA AE AD@16 ~@4 AF@16 ~
>`.pickRestart({
  A: "~@8 [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2 [c#4,f#4,a#4] [c#4,f#4,a#4]@2", // F#
  B: "[c#4,e4,g#4,b4] [c#4,e4,g#4,b4]@2 [c#4,e4,g#4,b4] [c#4,e4,g#4,b4]@2 [c#4,e4,g#4,b4] ~@2 [c#4,e4,g#4,b4] ~@6", // C#m7
  C: "[c#4,e4,g#4,b4] [c#4,e4,g#4,b4]@2 [c#4,e4,g#4,b4] ~@2 [c#4,e4,g#4,b4] ~@2 [c#4,e4,g#4,b4] ~@6", // C#m7
  D: "[a3,c#4]!8 [b3,d#4]!8", // A B
  E: "[c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4] [c#4,e4] [b3,d#4]", // C#m B C#m B C#m B C#m B …
  F: "~@2 [c#4,e4] ~@13", G: "g#2", H: "~@2 f#4!5 ~@3 g#4!5 ~", I: "~@2 a#4!5 ~@3 a#4!5 ~", J: "~@2 f#4!5 ~@3 f#4!5 ~",
  K: "~@2 d#4!5 ~@3 g#4!5 ~", L: "a#4 ~ a#4!4 ~@4 a#4!5 ~",
  M: "[c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~", // F#
  N: "[d#4,g#4,c5] ~ [d#4,g#4,c5] ~ [d#4,g#4,c5] ~ [d#4,g#4,c5] ~ [d#4,g#4,c5] ~ [d#4,g#4,c5] ~ [d#4,g#4,c5] ~ [d#4,g#4,c5] ~", // G#
  O: "[f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~", // F#
  P: "[g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g#4,c5,d#5] ~ [g4,c5,f5]@2 ~@4", // G# Csus4
  Q: "~@8 [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2", // F
  R: "[c4,d#4,g4,a#4] [c4,d#4,g4,a#4]@2 [c4,d#4,g4,a#4] ~@2 [c4,d#4,g4,a#4] ~@2 [c4,d#4,g4,a#4] ~@2 [c4,d#4,g4,a#4] ~@3", // Cm7
  S: "[c4,d#4,g4,a#4] [c4,d#4,g4,a#4]@2 [c4,d#4,g4,a#4] [c4,d#4,g4,a#4]@2 [c4,d#4,g4,a#4] ~@2 [c4,d#4,g4,a#4] ~@2 [c4,d#4,g4,a#4] ~@3", // Cm7
  T: "[c4,d#4,g4,a#4] [c4,d#4,g4,a#4]@2 [c4,d#4,g4,a#4] ~@2 [c4,d#4,g4,a#4] ~@2 [c4,d#4,g4,a#4] ~@6", // Cm7
  U: "[g#3,c4]!8 [a#3,d4]!8", // G# A#
  V: "[c4,d#4] [a#3,d4] [c4,d#4] [a#3,d4] [c4,d#4] [a#3,d4] [c4,d#4] [a#3,d4] [c4,d#4] [a#3,d4] [c4,d#4] [a#3,d4] [c4,d#4] [a#3,d4] [c4,d#4] [a#3,d4]", // Cm A# Cm A# Cm A# Cm A# …
  W: "~@2 [c4,d#4] ~@13", X: "g2", Y: "~@2 f4!5 ~@3 g4!5 ~", Z: "~@2 a4!5 ~@3 a4!5 ~", AA: "~@2 f4!5 ~@3 f4!5 ~",
  AB: "~@2 d4!5 ~@3 g4!5 ~", AC: "a4 ~ a4!4 ~@4 a4!5 ~", AD: "a3!3 ~ a3!3 ~ a3!3 ~ a3!3 ~", AE: "~@2 d4!5 ~@9",
  AF: "c#4!3 ~ c#4!3 ~ c#4!3 ~ c#4!3 ~",
})).s("gm_pad_poly").gain(0.36).pan(1)

// other · pad poly · "POLYSYNTH" · soft notes
const pad_poly_soft = note("<~@11 A ~@3 B ~@4 C ~@24 D ~ E ~ E ~ F ~@4 G ~@70>".pickRestart({
  A: "~@7 [c#4,e4,g#4,b4]@2 ~ [c#4,e4,g#4,b4]@2 [c#4,e4,g#4,b4] [c#4,e4,g#4,b4]@2 ~", // C#m7
  B: "~@4 [c#4,e4,g#4,b4]@2 ~ [c#4,e4,g#4,b4]@2 ~ [c#4,e4,g#4,b4]@2 [c#4,e4,g#4,b4] [c#4,e4,g#4,b4]@2 ~", // C#m7
  C: "[c#4,e4] [b3,d#4] ~@14", D: "~@4 [c4,d#4,g4,a#4]@2 ~ [c4,d#4,g4,a#4]@2 ~ [c4,d#4,g4,a#4]@2 ~ [c4,d#4,g4,a#4]@2 ~",
  E: "~@7 [c4,d#4,g4,a#4]@2 ~ [c4,d#4,g4,a#4]@2 ~ [c4,d#4,g4,a#4]@2 ~", // Cm7
  F: "~@4 [c4,d#4,g4,a#4]@2 ~ [c4,d#4,g4,a#4]@2 ~ [c4,d#4,g4,a#4]@2 [c4,d#4,g4,a#4] [c4,d#4,g4,a#4]@2 ~", // Cm7
  G: "[c4,d#4] [a#3,d4] ~@14", // Cm A#
})).s("gm_pad_poly").gain(0.18).pan(1)

// bass · slap bass 1 · "SLAP BASS"
const bass = note(`<
  A@16 B A B A B A B C D E F G E@2 D E F G E@2 F@3 H I@12 J I J I J I J K L M N O M@2 L M N O M@2 N@4 M@4 L M N O M@2 L
  M N P N@4 M@4 N@4 M@4 B A M Q M@4 A@4 M@4 A@4 ~
>`.pickRestart({
  A: "c#2!8", B: "a1!4 b1!4", C: "g#1!8", D: "f#1!4 g#1!4", E: "a#1!8", F: "f#1!8", G: "d#1!4 g#1!4", H: "f#1!6 ~@2",
  I: "c2!8", J: "g#1!4 a#1!4", K: "g1!8", L: "f1!4 g1!4", M: "a1!8", N: "f1!8", O: "d1!4 g1!4", P: "d1!4 g1!2 ~@2",
  Q: "f#1@2 f#1@2 f#1@2 f#1@2 b1 ~ b1 ~@5",
})).s("gm_slap_bass_1").gain(0.47)

// chords · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
  A@11 ~ A@3 ~ B@3 ~ B@3 ~ C D E F D@2 C D E F D G ~@4 H@7 ~ H@3 ~ I@3 ~ I@3 ~ J K L M K@2 J K L M K N ~@8 J K L M K@2 J
  K L O ~@37
>`.pickRestart({
  A: "~@2 c#4!5 ~@3 c#4!5 ~", B: "~@2 c#4 ~ c#4 ~ c#4 ~@3 c#4 ~ c#4 ~ c#4 ~",
  C: "[c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c5,d#5,g#5] ~ [c5,d#5,g#5] ~ [c5,d#5,g#5] ~ [c5,d#5,g#5] ~", // F# G#
  D: "[c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~", // A#m
  E: "[c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~ [c#5,f#5,a#5] ~", // F#
  F: "[d#5,f#5,a#5] ~ [d#5,f#5,a#5] ~ [d#5,f#5,a#5] ~ [d#5,f#5,a#5] ~ [c5,d#5,g#5] ~ [c5,d#5,g#5] ~ [c5,d#5,g#5] ~ [c5,d#5,g#5] ~", // D#m G#
  G: "[c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~@7", H: "~@2 c4!5 ~@3 c4!5 ~",
  I: "~@2 c4 ~ c4 ~ c4 ~@3 c4 ~ c4 ~ c4 ~",
  J: "[c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // F G
  K: "[c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~", // Am
  L: "[c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  M: "[d5,f5,a5] ~ [d5,f5,a5] ~ [d5,f5,a5] ~ [d5,f5,a5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // Dm G
  N: "[c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~@7", // Am
  O: "[d5,f5,a5] ~ [d5,f5,a5] ~ [d5,f5,a5] ~ [d5,f5,a5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~@5", // Dm G
})).s("gm_lead_2_sawtooth").gain(0.24).pan(0.1)

// chords · lead 2 sawtooth · "SAW WAVE" · soft notes
const lead_2_sawtooth_soft = note("<~@16 A@3 ~ A@3 ~@12 B ~@16 C@3 ~ C@3 ~@12 D ~@55>".pickRestart({
  A: "~@3 c#4 ~ c#4 ~@5 c#4 ~ c#4 ~@2", B: "~@10 [c#5,f5,a#5] ~ [c#5,f5,a#5] ~ [c#5,f5,a#5] ~",
  C: "~@3 c4 ~ c4 ~@5 c4 ~ c4 ~@2", D: "~@10 [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~",
})).s("gm_lead_2_sawtooth").gain(0.16).pan(0.1)

// chords · overdriven guitar · "SAW WAVE" · A5 B5 C#5 A5 F#5 B5
const overdriven_guitar = note(`<
  ~@106
  [[a2,e3,a3] [b2,f#3,b3]]
  [[c#3,g#3,c#4]]
  [[a2,e3,a3]]
  [[f#2,c#3,f#3]@8 [b2,f#3,b3]@2 [b2,f#3,b3] ~@5]
  ~@17
>`).s("gm_overdriven_guitar").gain(0.24).pan(0.2)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A B C D C E C E ~@14 F G H I J K L@2 H I J K L@2 M N O P Q R S T ~@14 U V W X Y Z AA@2 W X Y Z AA@2 ~@6 AB AC W X Y Z
  AA@2 W X Y AD ~@6 AB AC ~@6 AB AE@3 AF AG ~@6 AH AI ~@6 AH AI ~
>`.pickRestart({
  A: "~@4 [g#3,g#4] ~@5 [f#3,f#4]@2 ~@4", B: "[e3,e4]@3 ~@13", C: "~@2 [g#3,g#4] ~@2 [f#3,f#4] ~@2", D: "[e3,e4] ~@3",
  E: "[e3,e4]@5 ~@11", F: "~ [c#3,c#4] [d#3,d#4] [e3,e4] [d#3,d#4]@2 [c#3,c#4]@2", G: "[g#3,g#4]@15 ~",
  H: "[f#2,f#3] [g#2,g#3]", I: "[a#2,a#3]", J: "[f#2,f#3]", K: "[d#2,d#3] [g#2,g#3]", L: "[~@6 a#5 ~@9, [a#2,a#3]]/2",
  M: "a#3 ~ a#3 ~ a#3 ~ a#3 ~ a#3 ~ a#3 ~ a#3 ~ a#3 ~", N: "c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4 ~",
  O: "c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~ c#4 ~", P: "d#4 ~ d#4 ~ d#4 ~ d#4 ~ d#4 ~ f4 ~@5",
  Q: "~@4 [g3,g4] ~@5 [f3,f4]@2 ~@4", R: "[d#3,d#4]@3 ~@13", S: "~@2 [g3,g4] ~@2 [f3,f4] ~@2", T: "[d#3,d#4] ~@3",
  U: "~ [c3,c4] [d3,d4] [d#3,d#4] [d3,d4]@2 [c3,c4]@2", V: "[g3,g4]@15 ~", W: "[f2,f3] [g2,g3]", X: "[a2,a3]",
  Y: "[f2,f3]", Z: "[d2,d3] [g2,g3]", AA: "[~@6 a5 ~@9, [a2,a3]]/2", AB: "[a2,a4]@10 [b2,b4]@3 [c3,c5]@3",
  AC: "[a2,a4]", AD: "[d2,d3]@2 [g2,g3] ~", AE: "[a2 a2@2, a4@2 ~]/3", AF: "a2", AG: "f#2@2 b2 ~",
  AH: "[c#3,c#5]@10 [d#3,d#5]@3 [e3,e5]@3", AI: "[c#3,c#5]",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.3)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  A@8 ~@13 B@2 C D E F@2 G@3 E F@2 H@2 ~@4 I@8 ~@9 J@2 K L M N@2 O@3 M N@2 P@2 Q R S T U@4 L M N@2 O@3 M V@2 Q R S T U@4
  Q R S T U@4 W@2 X Y Z AA AB AC AD@4 Z AA AB AC AE@4 ~
>`.pickRestart({
  A: "[c#4,c#6]/8", B: "[~@4 [c#4,c#5]@6 [d#4,d#5] [e4,e5] [d#4,d#5]@2 [c#4,c#5]@2]/2", C: "[g#4,g#5]",
  D: "[a#3,a#5] [c4,c6]", E: "[c#4,c#6]", F: "[[a#3,a#5]@3 [c4,c6]]/2", G: "[[c#4,c#6]@4 [a#3,a#5] [c4,c6]]/3",
  H: "[c#4,c#6]/2", I: "[c4,c6]/8", J: "[~@4 [c4,c5]@6 [d4,d5] [d#4,d#5] [d4,d5]@2 [c4,c5]@2]/2", K: "[g4,g5]",
  L: "[a3,a5] [b3,b5]", M: "[c4,c6]", N: "[[a3,a5]@3 [b3,b5]]/2", O: "[[c4,c6]@4 [a3,a5] [b3,b5]]/3", P: "[c4,c6]/2",
  Q: "[f3,a3] ~ [f3,a3] ~ [f3,a3] ~ [f3,a3] ~ [f3,a3] ~ [f3,a3] ~ [f3,a3] ~ [f3,a3] ~", // F
  R: "[g3,b3] ~ [g3,b3] ~ [g3,b3] ~ [g3,b3] ~ [g3,b3] ~ [g3,b3] ~ [g3,b3] ~ [g3,b3] ~", // G
  S: "[a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~ [a3,c4] ~", // Am
  T: "[b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~ [b3,d4] ~", // Bm
  U: "[[c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,f#4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~ [c4,g4] ~, a5, ~@42 b5@2 ~ c6@3 ~@16]/4", // C F5 Cdim C5
  V: "[[a3,a5]@6 [b3,b5] ~]/2", W: "e6/2", X: "c#6", Y: "a5@2 b5 ~",
  Z: "[a3,c#4] ~ [a3,c#4] ~ [a3,c#4] ~ [a3,c#4] ~ [a3,c#4] ~ [a3,c#4] ~ [a3,c#4] ~ [a3,c#4] ~", // A
  AA: "[b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~ [b3,d#4] ~", // B
  AB: "[c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~ [c#4,e4] ~", // C#m
  AC: "[d#4,f#4] ~ [d#4,f#4] ~ [d#4,f#4] ~ [d#4,f#4] ~ [d#4,f#4] ~ [d#4,f#4] ~ [d#4,f#4] ~ [d#4,f#4] ~", // D#m
  AD: "[[e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~, c#6, ~@42 d#6@2 ~ e6@3 ~@16]/4", // E A5 Edim E5
  AE: "[[e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,g#4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,a#4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ e4 ~ [e4,b4] ~ [e4,b4] ~, c#6, ~@42 d#6@2 ~ e6@3 ~@16]/4", // E A5 Edim E5
})).s("gm_string_ensemble_1").gain(0.4).pan(0.7)

// other · pad metallic · "METAL PAD"
const pad_metallic = note("<~@16 A B@3 A C ~@30 D E@3 D F ~@48 G@2 H@2 ~@17>".pickRestart({
  A: "~ c#5 d#5 e5@2 d#5@2 c#5", B: "g#5/3", C: "g#4", D: "~ c5 d5 d#5@2 d5@2 c5", E: "g5/3", F: "g4", G: "[e5@31 ~]/2",
  H: "e5/2",
})).s("gm_pad_metallic").gain(0.8).pan(0.8)

// other · pad halo · "HALO PAD"
const pad_halo = note("<~@4 A@3 ~@9 B C@3 B D ~@14 E@3 F ~@12 G H@3 G I ~@56 J@3 K@2 ~@3 J@3 L ~>".pickRestart({
  A: "[g#3,c#4,g#4]/3", B: "~ c#5 d#5 e5@2 d#5@2 c#5", C: "g#5/3", D: "g#4",
  E: "[[c#4,f#4,a#4] [d#4,g#4] [f#4,a#4], c#5]/3", F: "[d#4,g#4,c5]@5 [g3,c4,f4] ~@2", G: "~ c5 d5 d#5@2 d5@2 c5",
  H: "g5/3", I: "g4", J: "[e4@14 f#4 g#4]/3", K: "[e4@11 ~@5]/2", L: "e4@7 ~",
})).s("gm_pad_halo").gain(0.18).pan(0.3)

// other · pad choir · "SPACE VOIE"
const pad_choir = note(`<
  ~@3 A@3 ~@35 B@3 ~@28 C D E F G H I J ~@10 C D E F G H I J C D E F G H I J K@2 L@2 M N O P Q R S T M N O P Q R S T ~
>`.pickRestart({
  A: "[[c#3,g#3,c#4]@23 ~]/3", B: "[[c3,g3,c4]@23 ~]/3", C: "a4@2 ~@2 [a3,a4] ~@3 [a3,a4] ~@3 [a3,a4] ~@3, a3 ~@15",
  D: "[a3,a4] ~@3 a4@2 ~@2 [a3,a4] ~@3 a4@2 ~@2, ~@4 a3 ~@7 a3 ~@3", // A
  E: "[a3,a4] ~@3 [a3,a4] ~@3 [a3,a4] ~@3 [a3,a4]@2 ~@2", // A
  F: "[a3,a4] ~@3 [a3,a4]@2 ~@2 a4@2 ~@2 [a3,a4]@2 ~@2, ~@8 a3 ~@7", // A
  G: "[a3,a4]@2 ~@2 [a3,a4]@2 ~@2 a4@2 ~@2 [a3,a4] ~@3, ~@8 a3 ~@7", // A
  H: "a4 ~ [a3,a4] ~ a4 ~ a4 ~, a3 ~@7 a3 ~@3 a3 ~@3", I: "[a3,a4]@2 ~@2 [a3,a4]@2 ~@2 [a3,a4] ~@3 [a3,a4] ~@3",
  J: "[a3,a4] ~@3 [a3,a4]@2 ~@2 [a3,a4] ~@3 a4@2 ~@2, ~@12 a3 ~@3", K: "[e5@31 ~]/2", L: "e5/2",
  M: "c#5@2 ~@2 [c#4,c#5] ~@3 [c#4,c#5] ~@3 [c#4,c#5] ~@3, c#4 ~@15", // C#
  N: "[c#4,c#5] ~@3 c#5@2 ~@2 [c#4,c#5] ~@3 c#5@2 ~@2, ~@4 c#4 ~@7 c#4 ~@3", // C#
  O: "[c#4,c#5] ~@3 [c#4,c#5] ~@3 [c#4,c#5] ~@3 [c#4,c#5]@2 ~@2", // C#
  P: "[c#4,c#5] ~@3 [c#4,c#5]@2 ~@2 c#5@2 ~@2 [c#4,c#5]@2 ~@2, ~@8 c#4 ~@7", // C#
  Q: "[c#4,c#5]@2 ~@2 [c#4,c#5]@2 ~@2 c#5@2 ~@2 [c#4,c#5] ~@3, ~@8 c#4 ~@7", // C#
  R: "c#5 ~ [c#4,c#5] ~ c#5 ~ c#5 ~, c#4 ~@7 c#4 ~@3 c#4 ~@3", // C#
  S: "[c#4,c#5]@2 ~@2 [c#4,c#5]@2 ~@2 [c#4,c#5] ~@3 [c#4,c#5] ~@3", // C#
  T: "[c#4,c#5] ~@3 [c#4,c#5]@2 ~@2 [c#4,c#5] ~@3 c#5@2 ~@2, ~@12 c#4 ~@3", // C#
})).s("gm_pad_choir").gain(0.04).pan(0.6)

// other · timpani
const timpani = note("<~@39 [~@8 c3 ~ d3 ~@5] ~@69 [~@9 c3 d3 c3 ~@4] ~@17>").s("gm_timpani").gain(0.72).pan(1)

// other · orchestra hit · "ORCHESTRA"
const orchestra_hit = note("<~@28 A ~@5 A ~@29 B ~@5 B ~@13 B ~@42>".pickRestart({
  A: "~@3 a#4", B: "~@3 a4",
})).s("gm_orchestra_hit").gain(0.6).pan(0.7)

// other · celesta
const celesta = note("<A ~ A ~ A ~ A ~@22 B ~@10 C ~ C ~@22 D ~@19 D ~@41>".pickRestart({
  A: "b4 ~@7 a#4 ~@5 g#4 ~", B: "~@2 a#4 ~ c5 ~ c#5 ~ f5 ~ c#5 ~ c5 ~ a#4 ~", C: "a#4 ~@7 a4 ~@5 g4 ~",
  D: "~@2 a4 ~ b4 ~ c5 ~ e5 ~ c5 ~ b4 ~ a4 ~",
})).s("gm_celesta").gain(0.33).pan(1)

// chords · vibraphone
const vibraphone = note("<A@16 ~@24 B@12 ~@75>".pickRestart({
  A: "[[c#4,e4,b4]@2 ~@2 [c#4,f#4,a#4]@2 ~ [c#4,e4,g#4]@2 ~@7]/2", // C#m7 F# C#m
  B: "[[c4,d#4,a#4]@2 ~@2 [c4,f4,a4]@2 ~ [c4,d#4,g4]@2 ~@7]/2", // Cm7 F Cm
})).s("gm_vibraphone").gain(0.27).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  A@9 B A C A B A C A B A C A B A D A@4 E F A@4 E A B@4 A@3 E A B A C A B A C A B A C A B A D A@4 E F A@4 E A B@8 A@4 E
  F A@3 G B@16 A H A B@17 ~
>`.pickRestart({
  A: "x!2", B: "x ~@3 x!2 ~@2", C: "x ~@7 x ~@2 x ~@2 x ~", D: "x ~@6 x ~@2 x ~@3 x ~", E: "x ~@7 x ~@2 x ~@4",
  F: "x ~@7 x ~ x!2 ~@4", G: "x ~@6 x ~@2 x ~@2 x ~ x", H: "x ~@7 x!2 ~@6",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  A@23 B A@5 C A@5 D A@3 E A@19 B A@5 C A@5 D A@5 F A B A@5 C A@3 G A@5 F A B A@5 F A B A@3 E A@5 F A B A@5 F A B ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@3 x!2 ~@2 x ~@3", C: "~@4 x ~@4 x ~@2 x ~@3", D: "~@3 x", E: "~ x ~@2",
// … 58 more lines

More by Matia Bazar