Strudelify

Figlio Unico

Renzo Arbore

KeyF minorTempo92 bpm
0:00/0:00
// Figlio Unico — Renzo Arbore
// 92 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · percussive organ · "ORGAN"
const percussive_organ = note("<~ A B C D A B C ~@25 A E F G ~@14 A E F A E F A B C D A B C ~@2>".pickRestart({
  A: "[f5,bb5] [f5,b5]", B: "ab5, c6@7 ~", C: "[f5,ab5] [e5,g5]", D: "[f5,a5] [eb5,f5,a5]@3", E: "[ab5,c6]",
  F: "[b4,db5,f5] [e5,g5]", G: "[c5,f5] ~@15",
})).s("gm_percussive_organ").gain(0.14)

// other · trumpet
const trumpet = note(`<
  [~@7 c6 ~ f5 a5 ~ c6 ~ f5 ~]
  ~@3
  [~@4 f5 a5 ~ c6 ~ f5 a5 ~ c6 ~ f5 ~]
  ~@55
  [~@4 f5 a5 ~ c6 ~ f5 a5 ~ c6 ~ f5 ~]
  ~@4
  [f5 ~@15]
>`).s("gm_trumpet").gain(0.48).pan(0.7)

// chords · piano
const piano = note(`<
  ~ A B C D E B F G H I J K L M N O P G Q R J S L M N O P G T U V W X Y Z AA Q I J AB AC M N O AD G T AE V W X Y AF X AG
  AH AI B AJ D A B F G AK
>`.pickRestart({
  A: "[bb3,db4,f4] ~@2 [bb3,db4,f4]@2 bb2 [bb3,db4,f4] bb2 [b2,b3,d4,f4] ~ [b3,d4,f4]@2 b2 [b3,f4]@2 b2, bb2@3 ~@10 d4 ~@2", // Bbm Bdim
  B: "[ab3,c4,f4] ~ [ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4]@2 ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~", // Fm
  C: "[d3,d4,f4,ab4]@3 ~ [db3,b3,db4,f4]@3 ~ [c3,c4,e4]@4 [c4,e4] ~ [c4,e4] ~, ~@13 c3@2 ~", // Ddim Db7 C
  D: "[a3,c4,eb4,f4] ~ [a3,f4] ~ [a3,c4,eb4,f4] ~ [a3,c4,eb4,f4] ~ [a3,c4,eb4,f4]@2 f2!2 [a3,c4,eb4,f4] f2@2 ~, f2@2 ~ f2@3 ~ f2@2 ~@7", // F7 Dm F7
  E: "[bb3,db4] ~@2 [bb3,db4,f4]@2 bb2 [bb3,db4,f4] bb2 [b2,b3,d4,f4] ~ [b3,d4,f4]@2 b2 [b3,d4] ~ b2, bb2@3 ~@13, f4@2 ~@11 f4@2 ~", // Bbm Bdim Bm
  F: "[d3,d4,f4,ab4]@4 [db3,b3,db4,f4]@3 ~ [c3,c4,e4]@4 [c4,e4] ~ [c4,e4] ~, ~@13 c3@2 ~", // Ddim Db7 C
  G: "[ab3,c4,f4] ~ [ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] c3@2 [ab3,c4,f4] ~, f2@2 ~@2 c3@3 ~ f2@3 ~@5", // Fm
  H: "[f2,ab3,c4,f4] ~ [f2,ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] c3@2 [c4,f4] ab3, ~@4 c3@3 ~ f2@3 ~@5", // Fm F5
  I: "f2@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4]!2 ~, ~@4 c3@4 f2@3 ~ c3@2 ~@2", // Fm
  J: "f2@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4]!2 ~, ~@4 c3@4 f2@3 ~ c3@3 ~", // Fm
  K: "[g3,bb3,e4] ~ [g3,bb3,e4] ~ c2 [g3,bb3,e4] c2@2 [eb2,gb3,bb3,eb4]@3 ~ [f2,a3,c4,eb4,f4]@4, c2 ~@7", // Edim Ebm F7
  L: "[f3,bb3,db4] ~ [f3,bb3,db4] ~@2 [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] f2@2 [f3,bb3,db4] ~, bb2@2 ~@2 f2@3 ~ bb2@3 ~@5", // Bbm
  M: "[ab3,c4,f4] ~ [ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4]@2 eb2@3 [ab3,c4,f4] ~, f2@2 ~@2 c3@3 ~ f2@2 ~@6", // Fm
  N: "db2@2 [b3,db4,f4]@2 ~ [b3,db4,f4] ~ [b3,db4,f4] ~ [b3,db4,f4]@3 ab2@2 [b3,db4,f4] ~, ~@4 ab2@3 ~ db2@4 ~@4", // Db7
  O: "~@2 [g3,bb3,c4,e4] ~ g2@2 [g3,bb3,c4,e4] ~ c3@2 [g3,bb3,c4,e4] g2@2 [g3,bb3,c4,e4] c2@2, c2 ~@3", // C7
  P: "[g3,bb3,c4,e4] ~ [g3,bb3,c4,e4] ~@2 [bb3,c4,e4]@2 ~ c3@2 [g3,bb3,c4,e4] g2@2 [g3,bb3,c4,e4] ~@2, c2@2 ~@2 g2@3 ~@9, ~@5 g3 ~@10", // C7
  Q: "[f2,ab3,c4,f4] ~ [f2,ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] c3@2 [c4,f4] ab3, ~@4 c3@3 ~ f2@4 ~@4", // Fm F5
  R: "f2@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4]!2 ~, ~@2 c3@2 f2@2 c3 ~", // Fm
  S: "[bb3,c4,e4] ~ [g3,bb3,c4,e4] ~ [g3,bb3,c4,e4]!2 ~@2 [eb2,bb3,eb4]@4 [f2,a3,c4,eb4,f4]@4, c2@2 ~@2 g2@3 ~ gb3@2 ~@6", // C7 Eb5 F7
  T: "c3@2 [a3,c4,eb4,gb4]@2 ~ [a3,c4,eb4,gb4] ~ [a3,c4,eb4,gb4] ~ [a3,c4,eb4,gb4] ~ [a3,c4,eb4,gb4] a2@2 [a3,c4,eb4,gb4] ~, ~@4 a2@3 ~ gb2@3 ~@5", // Adim
  U: "bb2@2 [f3,bb3,db4]@2 ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] f2@2 [f3,bb3,db4] ~, ~@4 f2@3 ~ bb2@4 ~@4", // Bbm
  V: "~@2 [f3,b3,d4]@2 ~ [f3,b3,d4] ~ [f3,b3,d4] ~ [f3,b3,d4] ~ [f3,b3,d4] d2@2 [f3,b3,d4] ~, g2@4 d2@3 ~ g2@4 c2 ~@3", // Bdim
  W: "~@2 [g3,bb3,c4,e4]@2 ~ [g3,bb3,c4,e4] ~ [g3,bb3,c4,e4] ~ [g3,bb3,c4,e4] ~ [g3,bb3,c4,e4] g2@2 [g3,bb3,c4,e4] ~, c2 g2 c3 ~", // C7
  X: "[bb3,db4,f4] ~ [bb3,db4,f4]@2 bb2 [bb3,db4,f4] ~ bb2 [b3,d4,f4]@2 ~ [b3,d4,f4]@2 ~ [b3,d4,f4] ~, bb2@2 ~@6 b2@3 ~@2 b2@3", // Bbm Bdim
  Y: "[c3,c4,f4]@3 ~ [ab3,c4,f4]@3 ~ ab3@3 f3@2 [c4,f4] [c3,ab3] ~, ~@4 f3@4 [c4,f4]@5 ~@3", // F5 Fm F5 Fm F5
  Z: "[db3,b3,f4]@2 [b3,f4,ab4]@2 db3 [b3,f4,ab4] ~ db3 [bb3,e4,g4] ~ [bb3,e4] ~ [bb3,e4,g4] c3 [bb3,e4,g4] ~, ab4 ~@7 c3@4 ~@4, ~@5 g4 ~@2", // Db7 Fdim Edim Bbdim Edim
  AA: "[f2,c4,f4,ab4] ~@15", // Fm
  AB: "[bb3,c4,e4] ~ [g3,bb3,c4,e4] ~ [g3,bb3,c4,e4]!2 ~@2 [eb2,bb3,eb4]@4 [f2,a3,c4,eb4,f4]@3 ~, c2@2 ~@2 g2@3 ~ gb3@2 ~@6", // C7 Eb5 F7
  AC: "[f3,bb3,db4] ~ [bb3,db4] ~@2 [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] f2@2 [f3,bb3,db4] ~, bb2@2 f3@2 f2@3 ~ bb2@3 ~@5", // Bbm
  AD: "[g3,bb3,c4,e4] ~ [g3,bb3,c4,e4] ~@2 [bb3,c4]@2 ~ c3@2 [g3,bb3,c4,e4] g2@2 [g3,bb3,c4,e4] ~@2, c2@2 ~@2 g2@3 ~@9, ~@5 [g3,e4] ~@10", // C7 Bbsus2 C7 C
  AE: "bb2@2 [f3,bb3]@2 ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] f2@2 [f3,bb3,db4] ~, ~@2 db4 ~ f2@3 ~ bb2@4 ~@4", // Bb5 Bbm
  AF: "[b3,f4,ab4] ~ [b3,f4,ab4]@2 db3 [b3,f4,ab4] ~ db3 [bb3,e4,g4] ~ [bb3,e4] ~ [bb3,e4,g4] c3 [bb3,e4,g4] ~, db3 ~@3 c3@2 ~@2, ~@5 g4 ~@2", // Fdim Edim Bbdim Edim
  AG: "[c3,c4,f4]@3 ~ [ab3,c4,f4]@3 ~@4 f3@2 [c4,f4] [c3,ab3] ~, ~@4 f3@4 [ab3,c4,f4]@5 ~@3", // F5 Fm F5 Fm
  AH: "[b3,f4,ab4] ~ [b3,f4,ab4]@2 ~ [f4,ab4]@2 db3 [bb3,e4,g4] ~ [bb3,e4] ~ [bb3,e4,g4] c3 [bb3,e4,g4] ~, db3 ~ db3 ~ c3@2 ~@2, ~@5 b3 ~@4 g4@2 ~@4", // Fdim Fm Edim Bbdim Edim
  AI: "[bb3,db4] ~@2 [bb3,db4,f4]@2 bb2 [bb3,db4,f4] bb2 [b2,b3,d4,f4] ~ [b3,d4,f4]@2 b2 [b3,f4]@2 b2, bb2@3 ~@13, f4@2 ~@11 d4 ~@2", // Bbm Bdim
  AJ: "[d3,d4,f4,ab4]@3 ~ [db3,b3,db4,f4]@3 ~ [c3,c4,e4]@4 [c4,e4] ~ [c4,e4] ~, ~@13 c3@3", AK: "[f2,ab3,c4,f4] ~@15",
})).s("gm_piano").gain(0.16).pan(0.3)

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~ A B C D A B E F@2 G H I J K L M N F G F H I J K L M N F O P Q R S T U V G@2 H I J K L M N F O P W X S T U S T U A B
  C D A B E F Y
>`.pickRestart({
  A: "bb1@2 ~ bb1 bb1@4 b1@2 ~ b1 b1@3 ~", B: "c2@2 f2@2 ab2 g2 f2 eb2", C: "d2@4 db2@3 ~ c2@3 ~ c2@3 ~",
  D: "f1@3 ~ c2@3 ~ f2@3 c2@2 f1 f1@2", E: "d2@4 db2@4 c2@3 ~ c2@3 ~", F: "f1 c2 f1 c2", G: "f1@4 c2@3 ~ f1@4 c2@4",
  H: "f1@4 c2@4 f1@4 c2@3 ~", I: "c2@3 ~ g1@4 eb2@4 f1@3 ~", J: "bb1@2 ~ bb1 f2@2 ~ f2 bb1@2 ~ bb1 f2 ~ bb1 ~",
  K: "f1@2 ~ c2 c2@3 f2 f2@3 c2 eb2@4", L: "db2@2 ~ db2 ab1@2 ~ ab1 db2@2 ~ db2 ab1@3 ~",
  M: "c2@2 ~ c2 g1@3 ~ c2@3 g2 g2@3 c2", N: "c2@4 g1@2 ~ c2 c2@3 ~ g1@4", O: "c2@4 a1@4 gb1@4 a1@3 ~",
  P: "bb1@3 ~ f2 ~@2 bb1 bb1@3 f2 f2@2 bb1@2", Q: "g1@3 d2 d2@3 g1 g1@3 ~ d2@4", R: "c2@3 g2 g2@3 c3 c3@3 g2 g2@2 c2@2",
  S: "bb1@2 ~ bb1 bb1@3 ~ b1@2 ~ b1 b1@3 ~", T: "c2@3 ~ f2@4 ab2@4 f2@2 c2@2",
  U: "db2@2 ~ db2 db2@2 ~ db2 c2@2 ~ c2 ~ g2 c2 ~", V: "f2 ~@9 c2@2 d2@2 e2 ~", W: "g1@3 d2 d2@3 g1 g1@4 d2@4",
  X: "c2@3 g2 g2@3 c3 c3@2 ~ g2 g2@2 c2 ~", Y: "f1 ~@15",
})).s("gm_electric_bass_finger").gain(0.21)

// chords · marimba
const marimba = note("<~@9 A B C ~ D E F G H ~ A B C ~ D E F G H ~@9 A B C ~ D E F G H ~@20>".pickRestart({
  A: "~@2 [c5,f5] [c5,f5,ab5] ~@2 [c5,f5,ab5] ~@3 [c5,f5,ab5]!2 ~@2 [c5,f5,ab5] ~", // F5 Fm
  B: "~@2 [c5,f5,ab5]!2 ~@2 [c5,f5,ab5] ~@3 [c5,f5,ab5] ~@3 [c5,f5,ab5]!2", // Fm
  C: "~@2 [c5,f5,ab5] ~@3 [c5,f5,ab5]!2 ~@2 [c5,f5,ab5] ~@3 [c5,f5,ab5]!2", // Fm
  D: "~@2 [bb4,db5]!2 ~@2 [bb4,db5] ~@3 [bb4,db5]!2 ~@2 [bb4,db5] ~", // Bbm
  E: "~@2 [ab4,c5]!2 ~@2 [ab4,c5] ~@3 [ab4,c5]!2 ~@2 [ab4,c5] ~", // Ab
  F: "~@2 [ab4,db5]!2 ~@2 [ab4,db5] ~@3 [ab4,db5]!2 ~@2 [ab4,db5] ~", // Db5
  G: "~@2 [g4,c5]!2 ~@2 [g4,c5] ~@3 [g4,c5] ~@3 [g4,c5]!2", H: "~@2 [g4,c5] ~@3 [g4,c5]!2 ~@2 [g4,c5] ~@3 [g4,c5] ~",
})).s("gm_marimba").gain(0.19)

// chords · acoustic guitar nylon · "NYLON GT"
const acoustic_guitar_nylon = note(`<
  ~ A B C D E B C F G H I J K L M N O F G H I P K L M N O F Q R S T U V W X G H I Y K L M N O Z Q R S T AA AB AC AD AE
  AF E B C D A B C Z AG
>`.pickRestart({
  A: "[f3,bb3,db4] ~ [f3,bb3,db4]@2 f3 [bb3,db4]@2 ~ [b3,d4]@2 ~ [f3,b3,d4]@2 ~ [b3,d4] ~, ~@7 f3@3 ~@3 f3@2 ~", // Bbm Bm Bdim Bm
  B: "[c4,f4,ab4] ~ [c4,f4,ab4] ~@2 [c4,f4,ab4] ~ [c4,f4,ab4]@2 c4 [c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~", // Fm
  C: "[b3,f4,ab4] ~@2 b3 [f4,ab4] b3@2 ~ [bb3,e4,g4] ~@2 bb3 [e4,g4] bb3 [e4,g4] ~", // Fdim Fm Edim Em
  D: "[f4,a4,eb5]@2 ~ f4 [f4,a4,eb5]@2 ~ [a4,eb5]@2 ~ [a4,eb5] ~ [a4,eb5]@2 [f4,a4] ~, ~@6 f4@2 ~ f4@4 ~@3", // F7 Adim F
  E: "[f3,bb3,db4] ~ [f3,bb3,db4]@2 f3 [bb3,db4]@2 ~ [b3,d4]@2 ~ [f3,b3,d4]@2 f3 [b3,d4] ~, ~@7 f3@3 ~@6", // Bbm Bm Bdim Bm
  F: "[f4,ab4] ~ [c4,f4,ab4] ~@2 [c4,f4,ab4] ~ [c4,f4,ab4]@2 [c4,f4,ab4] ~ [c4,f4,ab4]@2 c4 [c4,f4,ab4] ~", // Fm
  G: "~@2 [c4,f4,ab4] ~@2 [c4,f4,ab4] ~ c4 [c4,f4,ab4]@2 ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~@2", // Fm
  H: "[c4,f4,ab4] ~ [c4,f4] [c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~ [c4,f4,ab4] ~ c4 [c4,f4,ab4] ~ c4 ~", // Fm F5 Fm
  I: "[c4,f4,ab4] ~@2 [c4,f4,ab4]!2 ~@2 [c4,f4,ab4] ~ [c4,f4,ab4] ~ c4 [c4,f4,ab4] ~ [c4,f4,ab4] ~", // Fm
  J: "[bb3,e4,g4] ~ [bb3,e4,g4] ~@2 [bb3,e4,g4] ~@2 [bb3,eb4,gb4]@3 ~ [a3,c4,f4]@3 ~", // Edim Ebm F
  K: "[db4,f4,bb4] ~ [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~ [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@2", // Bbm
  L: "~@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~@2 [ab3,c4,f4] ~ [ab3,c4,f4] ~", // Fm
  M: "~@2 [db4,f4] ~@2 [db4,f4] ~ [db4,f4] ~ [db4,f4] ~@2 [db4,f4] ~ [db4,f4] ~", // Db
  N: "~@2 [c4,e4] ~@2 [c4,e4] ~@2 [c4,e4,bb4] ~@2 [c4,e4,bb4] ~@2 [c4,e4,bb4] ~", // C C7
  O: "~@2 [c4,e4,bb4] ~@2 [c4,e4,bb4] ~@2 [c4,e4,bb4] ~@2 [c4,e4,bb4]@2 ~ [c4,e4,bb4] ~", // C7
  P: "[bb3,e4,g4] ~ [bb3,e4,g4] ~@2 [bb3,e4,g4] ~@2 [bb3,eb4,gb4]@3 ~ [c4,f4]@4", // Edim Ebm F5
  Q: "[eb4,gb4,a4] ~ [eb4,gb4,a4]@2 ~ [eb4,gb4,a4] ~ [eb4,gb4,a4] ~ [eb4,gb4,a4] ~@2 [eb4,gb4,a4] ~ [eb4,gb4,a4] ~", // Ebdim
  R: "[db4,f4,bb4] ~ [db4,f4,bb4]@2 ~ [db4,f4,bb4] ~ [db4,f4,bb4] ~ db4 [db4,f4,bb4]@2 ~@2 [db4,f4,bb4] ~", // Bbm
  S: "[b3,d4,f4] ~ [b3,d4,f4] ~@2 [b3,d4,f4] ~@2 [b3,d4,f4] ~ [b3,d4,f4] ~@3 [b3,d4,f4] ~", // Bdim
  T: "[bb3,e4,g4] ~ [bb3,e4,g4] ~@2 [bb3,e4,g4] ~ [bb3,e4,g4] ~ e4 [bb3,e4,g4]@2 ~@2 [bb3,e4,g4] ~", // Edim
  U: "bb2@2 [bb3,db4,f4] ~ bb2 [bb3,db4,f4] ~ bb2 b2 [b3,d4,f4] ~ b2 [b3,d4,f4]@2 b2@2", // Bbm Bdim
  V: "[c4,f4,ab4] ~ [c4,f4,ab4] ~@2 [c4,f4,ab4] ~@2 [c4,f4,ab4]@2 ~ [c4,f4,ab4] ~@2 [c4,f4,ab4] ~", // Fm
  W: "[b3,f4,ab4] ~ [b3,f4,ab4] ~@2 [b3,f4,ab4] ~@2 [bb3,e4,g4] ~ [bb3,e4,g4]@2 ~ [bb3,e4,g4] ~@2", // Fdim Edim
  X: "[f2,ab3,f4] ~@15", Y: "[bb3,e4,g4] ~ [bb3,e4,g4] ~@2 [bb3,e4,g4] ~@2 [bb3,eb4,gb4]@3 ~ [c4,eb4,f4]@3 ~",
  Z: "[f4,ab4] ~ [c4,f4,ab4]@2 ~ [c4,f4,ab4] ~ [c4,f4,ab4]@2 [c4,f4,ab4] ~ [c4,f4,ab4]@2 c4 [c4,f4,ab4] ~", // Fm
  AA: "bb2@2 [bb3,db4,f4] ~ bb2 [bb3,db4,f4] ~ bb2 b2 [d4,f4] b3 b2 [b3,d4,f4]@2 b2@2", // Bbm Dm Bdim
  AB: "~@2 [c4,f4,ab4] ~ c4 [c4,f4,ab4] ~@2 [c4,f4,ab4]@2 ~ [c4,f4,ab4]@2 ~ [c4,f4,ab4] ~", // Fm
  AC: "[db3,b3,f4,ab4] ~ [b3,f4,ab4] ~ db3 [b3,f4,ab4] ~ db3 c3 [c3,bb3,e4,g4] ~@2 [c3,bb3,e4,g4] ~ [c3,bb3,e4,g4] ~", // Db7 Fdim C7
  AD: "bb2@2 [bb3,db4,f4] ~ bb2 [bb3,db4,f4] ~ bb2 b2 [b3,d4,f4] ~ b2 [b3,d4,f4] ~ b2 ~", // Bbm Bdim
  AE: "~@2 [c4,f4,ab4] ~@2 [c4,f4,ab4] ~@2 [c4,f4,ab4] ~@2 [c4,f4,ab4]@2 ~ [c4,f4,ab4] ~", // Fm
  AF: "[b3,f4,ab4] ~ [b3,f4,ab4] ~@2 [b3,f4,ab4] ~@2 [bb3,e4,g4] ~ [bb3,e4,g4]@2 ~ [bb3,e4,g4]@2 ~", // Fdim Edim
  AG: "[ab3,c4,f4] ~@15", // Fm
})).s("gm_acoustic_guitar_nylon").gain(0.17).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~ A@3 B A@3 B A@9 B A@9 B A@3 B A@3 C A@9 B A@3 B A@9 B A@3 B C>".pickRestart({
  A: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x", B: "x ~@2 x!2 ~@2 x!2 ~@2 x!3 ~ x", C: "x",
})).gain(0.38)

// drums · snare
const snare = s("sd").struct("<~ A@3 B A@3 B A@9 B A@9 B A@3 B A@3 ~ A@9 B A@3 B A@9 B A@3 B ~>".pickRestart({
  A: "~@2 x ~ x!2 ~@2 x ~ x ~ x!2 ~@2", B: "~@2 x ~ x!2 ~@2 x ~ x ~ x ~ x ~",
})).gain(0.27)

// drums · low tom
const low_tom = s("lt").struct("<[~@7 x] ~@65>").gain(0.44)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@7 x] ~@65>").gain(0.38)

// drums · open hat
const open_hat = s("oh").struct("<~ A@3 B A@3 B A@9 B A@9 B A@3 B A@3 ~ A@9 B A@3 B A@9 B A@3 B ~>".pickRestart({
  A: "~@2 x ~ x!2 ~@2 x ~ x ~ x!2 ~@2", B: "~@2 x ~ x!2 ~@2 x ~ x ~ x!4",
})).gain(0.16)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~ A@3 ~ A@3 ~ A@9 ~ A@9 ~ A@3 ~ A@3 ~ A@9 ~ A@3 ~ A@9 ~ A@3 ~@2>".pickRestart({
  A: "~@11 x ~@4",
})).gain(0.11)

// drums · crash
const crash = s("cr").struct("<~ A ~@3 A ~@23 A ~@3 A ~@2 A ~@10 A ~@3 A ~@2 A ~@2 A ~@3 A ~@3 A>".pickRestart({
  A: "x",
})).gain(0.27)

// drums · tambourine
const tambourine = s("tb").struct("<~ [~ x ~ x ~ x ~ x]!35 ~ [~ x ~ x ~ x ~ x]!28 ~>").gain(0.27)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~ [~ x!3 ~ x!3 ~ x!3 ~ x!3]!35 ~ [~ x!3 ~ x!3 ~ x!3 ~ x!3]!28 ~>").gain(0.83)

// drums · claves
const claves = s("clave:2").struct("<~ [x ~ x ~@2 x ~ x ~ x ~@2 x ~ x ~]!35 ~ [x ~ x ~@2 x ~ x ~ x ~@2 x ~ x ~]!28 ~>")
  .gain(1.07)

stack(
  percussive_organ, trumpet, piano, bass, marimba, acoustic_guitar_nylon, kick, snare, low_tom, mid_tom, open_hat,
  open_hat_soft, crash, tambourine, cabasa, claves
)

More by Renzo Arbore