Strudelify

T'amo e t'amero

Little Tony

KeyG majorTempo106 bpm
0:00/0:00
// T'amo e t'amero — Little Tony
// 106 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(106/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.

// chords · piano
const piano = note(`<
  A B A C ~@20 D E F@2 G@4 H I J@2 K L@2 M N O P@4 Q R@2 S T@5 U V@4 W@6 X Y Z@2 AA@4 AB@3
>`.pickRestart({
  A: "b2 ~@5 [a3,c#4,d4,f#4]@8 b2 ~", B: "a2 ~@5 [a3,b3,c#4,e4]@8 a2 ~", C: "a2 ~@5 [a3,b3,c#4,e4]@7 ~@3",
  D: "[b3,d4,f#4]@4 b3@2 d4 ~ b2 ~@3 b3@2 d4 ~, b2@7 ~ g4@7 ~, ~@2 [b3,d4] ~, ~@10 b2@5 ~", // Bm
  E: "b2@4 g#4@2 b2@2 b3@2 ~@2 b3@2 d4 ~, [b3,d4]@7 ~ d4@4 ~@4, g#4@3 ~@5 g4@7 ~, ~@10 b2@5 ~", // Bm
  F: "[[b3,d4,f#4]@5 ~ b3@2 ~@12 b3@2 ~@6 [d4,f#4]@2 b2@2, b2@3 [d4,f#4]@2 b3@4 ~@2 [b3,d4,f#4]@2 b3@2 ~, ~@4 b2@3 f#4@3 ~@6, ~@3 d4@2 ~@3, ~@16 b2@7 ~ b2@5 ~@3]/2", // Bm D Bm
  G: "[[b3,c#4,e4]@4 g3@2 g3@4 ~@12 [g3,b3,c#4,e4]@4 ~@2 g3@2 e3@2 ~@6 [g3,b3,c#4,e4]@4 g3@2 ~@16 [b3,c#4] ~@3, e2@14 b3@6 ~@8 [b3,c#4,e4]@8 ~@8 [b3,c#4,e4]@9 ~ e4@8 ~@2, g3@2 ~@4 [b3,c#4,e4]@6 g3@8 e3@7 ~@9 e3@12 e2@6 [g3,b3,c#4]@6 g3@2 ~@2, ~@10 e3@6 e2@9 ~ e2@5 ~ e2@14 g3@6 e3@6 e2@6]/4", // C#m7 C#m7b5 Bsus2 C#m7 C#m7b5
  H: "[a#3,c#4,f#4]@4 ~@6 f#3@2 [a#3,c#4,f#4]@2 [f#2,f#3] ~, f#2@6 [a#3,c#4,f#4]@5 ~@5, ~ f#3 f#2 ~", // F#
  I: "[g2,g3,b3,d4,g4] ~@15", J: "[~@6 [g2,g3,b3] ~ [f#2,f#3,a#3] ~ [e2,e3,g3]@13 ~@9]/2",
  K: "~@2 [e2,b2,e3] ~@7 f#2 ~ f#2@2 [f#3,c#4]@2, ~@5 [f#3,a#3,c#4]@2 ~", // E5 F#5 F#
  L: "[f#2@2 [g2,g3,b3,d4]@4 [g3,b3,d4]@2 g2@2 f#2@5 ~ f#2@2 f#3@2 f#2@2 [f#3,a#3,c#4]@2 f#2 ~ [d4,f#4]@4 b3@2, ~@10 c#4@11 ~@5 b3@2 ~@4, ~@5 [f#3,a#3]@4 ~@4 b2@3]/2", // G F# D F#
  M: "d4 ~ b2 ~@3 b3@2 d4 ~ g#4@3 ~ g#4@2, ~@2 g4@7 ~@7, ~ [b3,d4]@2 ~@5, ~@4 b2@5 ~ [b2,b3,d4]@6", // Bm
  N: "b2@2 b3@2 ~@2 b3@2 d4 ~ [b2,b3,d4,f#4]@6, ~@2 g4@7 ~@7, ~ d4@2 ~@5, ~@4 b2@5 ~@7", // Bm
  O: "b3 ~@6 b3, [d4,f#4] b3@2 ~, ~ b2@3 f#4@3 ~, ~@3 d4@4 ~, ~@5 b2@3", // D
  P: "[~@6 [d4,f#4]@2 b2@2 [b3,c#4,e4]@4 g3@2 g3@4 ~@12 [g3,b3,c#4,e4]@4 ~@2 g3@2 e3@2 ~@6 [g3,b3,c#4,e4]@4 g3@2 ~@4 [f#2,f#3,a#3,c#4,e4] ~@5, [b3,d4,f#4]@4 b3@4 ~@2 g3@2 ~@4 [b3,c#4,e4]@6 g3@8 e3@7 ~@9 e3@12 ~@6, ~@2 b2@5 ~@3 e2@14 b3@6 ~@8 [b3,c#4,e4]@8 ~@8 b3@9 ~, ~@20 e3@6 e2@9 ~ e2@5 ~ e2@14 g3@6 ~@2, ~@27 [c#4,e4]@2 ~@3]/4", // D C#m7 C#m7b5 F#7 Bm C#m7 C#m
  Q: "~@10 [b3,f#4]@4 b3 ~, ~@5 [b2,d4]@3", // B5 Bm
  R: "[b3@2 ~@2 b3 ~ [d4,f#4] ~ b2@2 [g3,a#3,c4,e4]@4 g3@2 [g3,a#3,c4,e4]@4 c3@2 [g3,a#3,c4,e4]@2 c3@2 [b2,b3,d4,f#4]@6, [d4,f#4]@5 ~ b3@2 ~@24, ~ b2@2 ~@2 c3@4 ~@7]/2", // D C7 Bm D
  S: "[b3,d4,f#4]@2 b2 [b3,d4,f#4] b2 [c3,a#3,c4,e4]@3, ~@5 g3@2 ~", // Bm C7
  T: "[g3@2 ~@2 g3 ~ [g3,a#3,c4,e4]@2 c3@2 [b2,b3,f#4]@6 ~@4 b3 ~@3 b2@2 [d4,g4]@4 b3@2 b3@2 ~@2 b3@2 [b3,d4,g4]@2 g2 ~ [g3,c4,d#4]@4 ~@16 g3 ~ [g3,c4,d#4] ~ g3@2 ~@2 g3 ~ g3 ~ f3@3 ~ f3 ~, [a#3,c4,e4]@5 ~@5 d4@10 ~@12 [d4,g4]@6 ~@10 [g3,c4,d#4]@5 ~ d#4@8 ~@18, ~@2 c3@4 ~@10 [b3,f#4]@4 ~@2 [b3,d4,f#4]@4 b3@3 ~@5 g3@7 ~@5 c3@4 ~@2 c3@6 c2@14 ~@8, ~@18 b2@4 ~@4 g2@12 ~@4 c2@7 ~ c2@6 c4@5 ~@5 [c4,d#4]@6 ~@8, ~@54 g3@6 c3@7 ~ c3@6 [a#2,a#3,d4]@6]/5", // C7 B5 G5 G Cm C7 G5 Cm …
  U: "[f3,a#3,c4]@2 ~@2 f3@2 f3@2 a#2 ~@3 f3@2 a#3 ~, d4@5 ~ d4@8 ~@2, ~ a#2@2 a#3@3 ~@2, ~@5 a#2@3", // Fsus4
  V: "[~@4 f3@2 [a#3,d4]@2 a#2@2 [g#3,c4,d#4]@4 ~@24 c4@2 g#2@2 [g2,f3,b3,d4]@14 ~@2 [g2,f3,b3,d4] ~ [g2,f3,b3,d4] ~ [g2,f3,b3,d4] ~, [f3,a#3,d4]@4 ~@2 f3 ~@7 g#3@4 g#2@6 d#4@6 ~@2 d#4@8 ~@24, ~@2 a#2@4 ~@4 g#2@6 d#4@6 c4@9 ~ c4@4 ~@28, ~@16 c4@4 g#3@9 ~ g#3@5 ~ g#3@4 ~@24, ~@26 g#2@7 ~ g#2@5 ~@25]/4", // A# G# G7 A#
  W: "[[g2,f3,b3,d4] ~ [g2,f3,b3,d4]@2 [g2,b3,d4] ~ [g2,f3,b3,d4] ~ [g2,f3,b3,d4] ~ [g3,c4,d#4]@4 g3 ~ [g3,c4,d#4] ~@13 g3 ~ [g3,c4,d#4] ~@3 [g3,c4,d#4]@4 c2 ~ [g3,c4,d#4]@5 ~ [g3,c4,d#4] ~@7 c3@2 ~@4 g3 ~ [g3,c4,d#4]@4 ~@2 [g3,c4,d#4]@3 ~ [g#3,c4,d4]@5 ~@7 g#3@2 c4 ~ [f2,g#3,c4,d4]@5 ~, ~@4 f3@2 ~@4 c2@8 [c4,d#4]@11 ~@23 [g3,c4,d#4]@9 ~@19 [g#3,c4,d4]@6 ~@10, ~@18 g3@4 c3@4 c2@12 ~@4 c2@11 ~@5 c2@16 f2@8 ~@2 f2@6 ~@6, ~@10 c2@2 g3@2 c3@6 ~@10 c3@3 ~ c3@3 ~@11]/6", // G7 G G7 Cm Dm7b5 Cm Dm7b5
  X: "[g#3,c4,d4]@4 ~@2 [c4,d4]@2 f2 ~ [f2,g#3,c4,d4] ~@3 g#3 ~, f2@7 ~@9, ~ g#3 ~@2", // Dm7b5 Csus2 Dm7b5
  Y: "[g#3,c4,d4]@4 ~@2 c4@2 d4 ~ [g2,f3,b3,d4] ~@5, f2 ~, ~@4 g#3@5 ~@7", // Dm7b5 G7
  Z: "[~@5 [g3,c4,d#4]@2 ~ [g3,c4,d#4]@2 [c2,c3] [g3,c4,d#4] c2 [g#2,f#3,c4,d#4]@3, ~@10 c2@9 ~@13, ~@14 c3@5 ~@5 c3 ~@7]/2", // Cm C Cm G#7
  AA: "[~@4 f#3@2 [c4,d#4]@2 g#2@2 ~@6 [g3,c4,d#4]@5 ~ [g3,c4,d#4]@2 c3@2 [f#3,c4,d#4]@5 ~ [f#3,c4] ~@5 f#3@2 c4 ~ [g3,d#4]@5 ~ [g3,d#4]@2 ~@2 g3 ~ [g3,c4,d#4]@2 c3@2 [g#2,f#3,c4,d#4]@6, [f#3,c4,d#4]@4 ~@2 f#3 ~@3 [g3,c4,d#4]@6 ~@18 d#4@7 ~ c4@9 ~@13, ~@2 g#2@4 ~@4 c2@13 ~ c2 ~@9 [f#3,c4]@4 ~@4 f3 ~@7 c3@5 ~@9, ~@14 c3@9 ~@3 g#2@9 ~ g#2@6 c2@13 ~ c2 ~@7]/4", // Cm Cdim F#dim Cm G#7 Cdim Cm F#dim
  AB: "[f#3@2 ~@2 f#3 ~ [f#3,c4]@2 g#2@2 [c2,c3,g3,c4,d#4]@29 ~@9, [c4,d#4]@5 ~ d#4@4 ~@38, ~@2 g#2@5 ~@41]/3", // F#dim Cm
})).s("gm_piano").gain(0.22).pan(0.4)

// chords · brass section
const brass_section = note("<~@20 A B ~@10 C B D@2 E@3 ~@6 F G@7 ~@15 H I@8>".pickRestart({
  A: "~ [c#4,f#4]", B: "[b3,d4,e4,g4] ~@15", C: "[c#4,f#4]@15 ~",
  D: "[~@6 [g2,d4,g4,b4] ~ [f#2,c#4,f#4,a#4] ~ [e2,b3,e4,g4]@14 ~@8]/2", // G F# Em
  E: "[~@5 [f#2,f#3,a#3]@4 [g2,g3,b3]@4 f#3@2 e3@2 d3@2 c#3 ~@4, ~@13 [f#2,a#3]@4 ~@7]/3", F: "~@10 [f#2,a#3,c#4] ~@5",
  G: "[~@10 [d4,f#4]@15 ~ [c4,e4,g4]@15 ~ [d4,f#4]@11 ~ [d4,f#4]@3 ~ [c4,e4,g4]@15 ~ [d4,f#4]@15 ~@5 g2@11 ~@7, ~@90 [g3,g4]@15 ~@7]/7", // D C D C D G
  H: "~@5 [c4,d#4]@3", // Cm
  I: "[~@6 [c4,d#4]@3 ~ [f#3,c4,d#4]@15 ~ [c4,d#4]@15 ~ [f#3,c4,d#4]@15 ~ [c4,d#4]@16 [f#3,c4,d#4]@15 ~ [g4,c5]@32 ~@6]/8", // Cm Cdim Cm Cdim Cm Cdim C5
})).s("gm_brass_section").gain(0.36).pan(0.6)

// bass · acoustic bass
const bass = note(`<
  A B A C D E F G H I J K D E F G H I L M L N O P Q R S T U V W@2 X Y Z@2 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO
  AP@2 AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL@3
>`.pickRestart({
  A: "b2 ~@3 b2 ~ b2@4 f#2 ~ b2 ~ a#2 ~", B: "a2 ~@5 a2@3 ~ e2 ~ a2 ~ a#2 ~", C: "a2 ~@5 a2@4 e2 ~ a2 ~ a#2 ~",
  D: "b2@2 ~@4 b2 ~ b2@2 ~@2 f#2@2 a#2 ~", E: "b2@2 ~@4 b2 ~ b2@2 ~@2 b2 ~ a#2 ~", F: "a2@2 ~@4 a2 ~ a2 ~@3 e2 ~ g#2 ~",
  G: "a2 ~@5 a2 ~ a2@2 ~@2 a2 ~ g#2 ~", H: "g2 ~@5 g2 ~ g2 ~@3 d2@2 f#2 ~", I: "g2 ~@5 g2 ~ g2@2 ~@2 g2@2 ~@2",
  J: "f#2@2 ~@4 f#2 ~ f#2@2 ~@2 c#2 ~ f2 ~", K: "f#2 ~ f#2@2 e2 ~ e2@2 d2 ~ d2@2 c#2@2 c#2@2",
  L: "f#2 ~@5 f#2 ~ f#2 ~@3 c#2 ~ f#2 ~", M: "g2 ~@5 g2 ~ g2 ~@3 d2@2 g2 ~", N: "g2 ~@5 g2 ~ g2@2 ~@2 d2@2 g2 ~",
  O: "f#2@3 ~@3 f#2 ~ f#2 ~@3 c#2@2 f#2 ~", P: "~@2 f#2@2 f#2@2 f#1@2 f#2@2 f#1@2 f#2@2 f#1 ~, f#1@5 ~@11",
  Q: "b1@4 ~@2 b1 ~ b1@5 ~ f#1@2", R: "b1@4 ~@2 b1 ~ b1@4 ~@2 b1 ~", S: "b1@4 ~@2 b1 ~ b1@4 f#1 ~ b1 ~",
  T: "b1@4 ~@2 b1 ~ b1@3 ~ b1@2 d#2 ~", U: "e2@4 ~@2 e2 ~ e2@3 ~ e2@2 b1@2", V: "e2@4 ~@2 e2 ~ e2@3 ~ b1@4",
  W: "e2@4 ~@2 e2 ~ e2@4 b1@2 e2 ~", X: "~@4 f#2 ~@3 f#1 ~ f#1@2 f#2@2 f#1@2, f#1@3 f#2@2 ~@3", Y: "g1 ~@7, g2 ~@15",
  Z: "[~@6 g1 ~ f#1 ~@9 e2@6 ~@8, ~@5 e1@7 ~@4]/2", AA: "~@2 [e1,e2] ~@7 f#2 ~ f#2 ~ f#2 ~",
  AB: "f#2@2 g2 ~ g2 ~ g2 ~ g2 ~ f#2 ~ f#2@2 e2 ~", AC: "e2 ~ d2 ~ d2@2 c#2 ~ c#2 ~ b1@4 ~@2",
  AD: "b1 ~ b1@5 ~ f#1@2 b1@4 ~@2", AE: "b1 ~ b1@4 ~@2 b1 ~ b1@4 ~@2", AF: "b1 ~ b1@4 f#1 ~ b1 ~ b1@4 ~@2",
  AG: "b1 ~ b1@3 ~ b1@2 d#2 ~ e2@4 ~@2", AH: "e2 ~ e2@3 ~ e2@2 b1@2 e2@4 ~@2", AI: "e2 ~ e2@3 ~ b1@4 e2@4 ~@2",
  AJ: "e2 ~ e2@4 b1@2 e2 ~ f#1 ~@5", AK: "~@10 b1@3 ~@3", AL: "b1 ~ b1@3 ~ f#1@2 b1 ~ c2@2 ~@4",
  AM: "c2 ~ c2@3 ~ g1@2 c2@2 b1@3 ~@3", AN: "b1 ~ b1@2 ~@2 f#1@2 b1 ~ c2@4 ~@2", AO: "c2 ~ c2@3 ~ g1@2 c2 ~ b1@4 ~@2",
  AP: "[b1 ~ b1@3 ~ f#1@2 b1@2 ~@6 g2 ~ g2@2 g1@2 g2@2 g1 ~ c2@2 ~@4, ~@10 g1@9 ~@13]/2",
  AQ: "c2 ~ c2@2 ~@2 g1@2 b1 ~ c2@2 ~@4", AR: "c2 ~ c2 ~@3 g1@2 c2@2 a#1 ~@5", AS: "a#1 ~ a#1 ~@3 f1@2 a1@2 a#1 ~@5",
  AT: "a#1 ~ a#1 ~@3 f1@2 a#1@2 g#1 ~@5", AU: "g#1 ~ g#1 ~@3 d#1@2 g1@2 g#1 ~@5",
  AV: "g#1 ~ g#1 ~@3 g#1@2 ~@2 g1@2 ~@4", AW: "~@10 g1@3 ~ g1@2", AX: "g1 ~ g1 ~ g1@2 a#1@2 b1@2 c2@2 ~@4",
  AY: "c2 ~ c2 ~@3 g1@2 b1 ~ c2@2 ~@4", AZ: "c2@2 ~@2 c2@2 c2@2 g1@2 c2 ~@5", BA: "c2 ~ c2 ~@3 g1 ~ a#1@2 c2@4 ~@2",
  BB: "c2 ~ c2@3 ~ c2 ~ g1 ~ f1@2 ~@4", BC: "f1 ~ f1@4 c2@4 f1@4 ~@2", BD: "f1 ~ f1 ~ c2 ~ f2@4 f1@3 ~@3",
  BE: "f1 ~ f1@4 f2@4 g1@2 ~@4", BF: "~@10 c2@3 ~@3", BG: "c2 ~ c2@2 ~@2 c2@2 a#1@2 g#1@4 ~@2",
  BH: "g#1 ~ g#1@4 a#1@3 ~ c2@4 ~@2", BI: "c2 ~ c2@4 c2@3 ~ g#1@4 ~@2", BJ: "g#1 ~ g#1@6 a#1@2 c2@4 ~@2",
  BK: "c2 ~ c2@3 ~ c2@2 a#1 ~ g#1@5 ~", BL: "[g#1 ~ g#1@4 g#1@3 ~ c2@30 ~@8]/3",
})).s("gm_acoustic_bass").gain(0.25)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@52 A@2 B@2 C@2 D ~@18>".pickRestart({
  A: "[~@10 [c4,d#4]@15 ~@3 [c4,d#4]@2 [d4,f4]@2]/2", // Cm Dm
  B: "[[d#4,g4] ~ [f4,g#4]@2 [d#4,g4]@2 [d4,f4]@2 [c4,d#4]@2 [d4,f4]@16 ~@2 [a#3,d4]@2 [c4,d#4]@2]/2", // D# Fm D# Dm Cm Dm A# Cm
  C: "[[d4,f4] ~ [d#4,g4] ~ [d4,f4] ~ [c4,d#4] ~ [a#3,d4]@2 [c4,d#4]@17 ~ [g#3,c4]@2 [a#3,d4] ~]/2", // Dm D# Dm Cm A# Cm G# A#
  D: "[c4,d#4] ~ [d4,f4]@2 [c4,d#4]@2 [a#3,d4] ~ [g#3,c4]@2 ~ [b3,c4] ~@4, ~@5 g3 ~@2", // Cm Dm Cm A# G# Cmaj7
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note("<A B A B C@2 D@2 E@2 F@2 C@2 D@2 E@2 G H G I J ~@54>".pickRestart({
  A: "~@6 [a3,c#4,d4]@7 ~@3", B: "~@6 [a3,b3,c#4,e4]@7 ~@3", C: "[[b3,d4,f#4]@15 ~]/2", D: "[[a3,c#4,e4]@15 ~]/2",
  E: "[[g3,b3,d4]@15 ~]/2", F: "[[f#3,a#3,c#4]@23 ~@9]/2", G: "[a#3,c#4]@15 ~", H: "~@6 b3@9 ~, [g3,d4]@15 ~",
  I: "[b3,d4]@15 ~", J: "[a#3,c#4]@3 ~",
})).s("gm_electric_guitar_clean").gain(0.18)

// other · timpani · Dsus2
const timpani = note("<~@35 [~@10 [d2,e2]!6] [[d2,e2]!2 d2 ~@13] ~@40>").s("gm_timpani").gain(0.24).pan(0.2)

// chords · french horn
const french_horn = note("<~@4 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E F E F E@2 ~@53>".pickRestart({
  A: "[[f#3,b3,d4]@31 ~]/2", B: "[~@8 e4@23 ~, [a3,c#4]@31 ~]/2", C: "[[g3,b3,d4]@31 ~]/2",
  D: "[[e3,f#3,a#3,c#4]@31 ~]/2", E: "[f#3,a#3]@15 ~", F: "[g3,b3]@15 ~",
})).s("gm_french_horn").gain(0.13).pan(0.8)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A B C B D@2 E@2 ~@2 F G H I J K L M N ~@4 O P Q R S T U@3 ~@2 V@2 W X Y@4 Z AA@4 ~@4 AB AC@3 AD@4 AE AF ~@7 AG@7 ~@2
>`.pickRestart({
  A: "f#6", B: "[c#6,e6]", C: "[d6,f#6]", D: "f#6/2", E: "[e5,e6]/2",
  F: "g4 [f#4,g4] f#4 [f#4,g4] g4 [f#4,g4] f#4 [f#4,g4] g4 [f#4,g4] f#4 [f#4,g4] g4 [f#4,g4] f#4 ~", // Gmaj7
  G: "f#5 [f#5,g5] g5 [f#5,g5] f#5 [f#5,g5] g5 [f#5,g5] f#5 [f#5,g5] g5 f#5 g5 [a5,a#5,b5] [c#6,d6,e6] ~", // Gmaj7 C#m
  H: "f#6 ~@3 d6 ~@3 b5 ~@3 f#5 ~@3", I: "d5 ~@15", J: "e6 ~@3 c#6 ~@3 a5 ~@3 e5 ~@3", K: "c#5 ~@15",
  L: "d6 ~@3 b5 ~@3 g5 ~@3 d5 ~@3", M: "g4 ~@15", N: "c#6 ~@3 a#5 ~@3 f#5 ~@3 c#5 ~@3", O: "[f#2,f#3,f#4]@15 ~",
  P: "[f#5,f#6] [g5,g6]", Q: "[g#5,g#6] [g5,g6]", R: "f#6@9 d6 ~ c#6 b5 f#5 ~ d5, f#5@7 ~@9", S: "c#5@4 b4@3 ~@9",
  T: "~@5 e4 ~ g4 b4 c#5 ~ e5 g5 b5 ~ c#6", U: "[[g5,c#6,e6]@47 ~]/3", V: "[~@6 [d5,g5] ~ [c#5,f#5] ~ e5@14 ~@8]/2",
  W: "~@10 f#5 [f#5,g5] g5 [f#5,g5] f#5 [f#5,g5]", // Gmaj7
  X: "g5 [f#5,g5] f#5 [f#5,g5] g5 [f#5,g5] f#5 [f#5,g5] g5 ~ f#6 [f#6,g6] g6 [f#6,g6] f#6 [f#6,g6]", // Gmaj7
  Y: "[g6 [f#6,g6] f#6 [f#6,g6] g6 [f#6,g6] f#6 [f#6,g6] g6 f#6 [f#5,f#6]@8 [g5,g6]@8 [g#5,g#6]@8 [g5,g6]@8 f#6@9 d6 ~ c#6 b5 f#5 ~ d5 c#5@4 b4@2, ~@42 f#5@7 ~@15]/4", // Gmaj7 F# G G# G
  Z: "~@15 e4", AA: "[~ g4 b4 c#5 ~ e5 g5 b5 ~ c#6 [g5,c#6,e6]@47 ~@7]/4",
  AB: "~@6 d4@2 [e4,f#4] [g4,a#4,b4] d5@2 e5@2 f5@2, ~@10 c#5 ~@5", // Esus2 G
  AC: "[g5@2 a5@2 b5@2 c6@2 d6@2 d#6@9 ~ d#6@2 f6@2 g6@2 ~@3 f6@2 d#6@3 d#6@3 d6@3 ~@8]/3",
  AD: "[~@6 d#6@2 f6@2 f6@3 d#6@2 d6@3 d6@3 c6@3 a#5@2 c6@10 d#5@2 g#5@2 a#5@2 c6@3 d6@2 d#6@3 f6@4 d#6 [c6,d6] b5 [g5,g#5] ~@6]/4", // Csus2 G#maj7
  AE: "~@10 g4 ~@3 [d5,g5] ~", AF: "~@2 [g5,d6] ~@3 [d6,g6] ~@9", AG: "[~@10 [d#4,c5]@95 ~@7]/7",
})).s("gm_string_ensemble_1").gain(0.29)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<A ~@3 B@2 ~@2 C@2 ~@20 D@2 ~@2 E@2 ~@8 F@3 ~@6 G H@2 ~@17 I@4>".pickRestart({
  A: "d6", B: "f#5/2", C: "[d5,d6]/2", D: "b5/2", E: "[~@5 b4@7 ~@4]/2", F: "[~@5 b5@16 ~@3]/3", G: "~@10 g6@3 ~@3",
  H: "[~@8 c6@2 d6@9 ~ d6@2 ~@10]/2", I: "[~@10 f#4@14 ~@2 [c5,c6]@31 ~@7]/4",
})).s("gm_string_ensemble_1").gain(0.19)

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

// drums · rim
const rim = s("rim").struct("<~@4 A@7 ~ A@11 ~ A@9 ~@5 B C@6 D B C@4 D B C@5 D ~ B C@6 D B C@5 ~@3>".pickRestart({
  A: "~ x ~ x", B: "~@7 x", C: "~@3 x ~@3 x", D: "~@3 x ~@4",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@11 A ~@11 B ~@12 C D E ~@10 F ~@2 G ~@6 H I ~@13 J ~@2>".pickRestart({
  A: "~@2 x ~@3 x!2", B: "x!8", C: "~@7 x", D: "~@3 x ~@3 x", E: "~ x!4 ~@3", F: "~@3 x ~@4", G: "x!5 ~@3",
  H: "~@6 x!2", I: "x!2 ~@6", J: "~@5 x ~@10",
})).gain(0.42)

// drums · hihat
const hihat = s("hh").struct("<A@4 B@7 ~ C B@10 ~@23 D E@4 F ~@8 D E@6 F D E@5 G ~@2>".pickRestart({
  A: "~@5 x!3", B: "x!2 ~ x!3 ~ x", C: "~ x ~ x!3 ~ x", D: "~@5 x!2 ~", E: "x!3 ~ x!3 ~", F: "x!3 ~ x ~@3",
  G: "x!2 ~@6",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@74 [~@2 x!2 ~@4] ~@2>").gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 [~@6 x!2] ~@14 [~@3 x!2 ~@3] ~@38>").gain(0.42)

// drums · open hat
const open_hat = s("oh").struct("<A@4 B@7 C B@11 D ~@12 E C F ~@7 G H@5 I ~@6 J K H@6 A G H@5 ~@3>".pickRestart({
  A: "~@3 x ~@4", B: "~ x ~ x", C: "x!8", D: "x!6 ~@2", E: "~@6 x!2", F: "x!3 ~@5", G: "~@7 x", H: "~@3 x ~@3 x",
  I: "x!5 ~@3", J: "~@5 x!3", K: "x!5 ~@2 x",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@12 A ~@11 A ~@9 B ~ C ~ D ~@6 D ~@5 D@2 ~@5 D ~@8 D ~@6 D ~@2>".pickRestart({
  A: "x", B: "~@3 x!3 ~@2", C: "~ x ~@3 x ~@2", D: "~@5 x ~@2",
})).gain(0.3)

// drums · ride
const ride = s("rd").struct("<~@24 A B@8 ~@5 C B@6 D ~@6 C B@5 E ~@18>".pickRestart({
  A: "~ x!7", B: "x!8", C: "~@6 x!2", D: "x!5 ~@3", E: "x!4 ~@4",
})).gain(0.36)

// drums · tambourine
const tambourine = s("tb").struct("<~@24 [~ x ~ x]!9 ~@5 [~@7 x] [~@3 x ~@3 x]!6 [~@3 x ~@4] ~@31>").gain(0.36)

// drums · congas
const congas = s("conga:33").struct("<[~ x ~@6]!4 ~@73>").gain(1.15)

// drums · ht
const ht = s("ht").struct("<[~ x ~@6]!4 ~@73>").gain(0.3)

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

// drums · claves
const claves = s("clave:2").struct("<~@24 [~ x ~ x]!9 ~@5 [~@7 x] [~@3 x ~@3 x]!6 [~@3 x ~@4] ~@31>").gain(2.06)

stack(
  piano, brass_section, bass, acoustic_guitar_nylon, electric_guitar_clean, timpani, french_horn, string_ensemble_1,
  string_ensemble_1_soft, kick, rim, snare, hihat, low_tom, mid_tom, open_hat, crash, ride, tambourine, congas, ht,
  cabasa, claves
)

More by Little Tony