Strudelify

Lei balla sola

Fiorello

KeyF majorTempo120 bpm
0:00/0:00
// Lei balla sola — Fiorello
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: 360 stray notes after a silence of more than 6 bars (from bar 152) are dropped
// note: Full arrangement: all 142 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · "Bass  1"
const bass = note(`<
  ~@8 A B C D E F E G ~@8 H I J K L K L M N O P Q R S T U V ~@3 H I J K W X Y Z AA I J K L K L M AB O P Q R S T AC AD X
  Y Z AE X Y AF H I J K W AG Y Z AA I J K L K L K L K L K L K L K L K L K L K L K AH ~@33
>`.pickRestart({
  A: "~@4 f1@2 ~@2 f1@2 ~@2 d2!2 ~ d2", B: "d2 ~ d2 ~ bb1@2 ~@2 bb1 ~ bb1 ~ c2!2 ~ c2",
  C: "c2 ~ c2 ~ f1@2 ~ f1@2 ~ f1 ~ d2!2 ~ d2", D: "d2 ~ d2 ~ bb1@2 ~ bb1@2 ~ bb1 ~ c2!2 ~ c2",
  E: "c2 ~ c2 ~ f1@2 ~ f1 ~@2 f1 ~ d2!2 ~ d2", F: "d2 ~ d2 ~ bb1@2 ~ bb1 ~@2 bb1 ~ c2!2 ~ c2", G: "d2 ~ d2 ~@13",
  H: "~@4 f1@2 f2 ~ f2 ~ f1 d2 ~ d2 ~ f1", I: "d2@2 f1 c2 bb1@2 ~@2 bb1 ~ bb1 c2 ~ c2 ~ c2",
  J: "c2 ~ c2!2 f1@2 f2 ~ f2 ~ f1 d2 ~ d2 ~ d2", K: "d2 ~@2 c2 bb1@2 ~@2 bb1 ~ bb1 c2 ~ c2 ~ c2",
  L: "c2 ~ c2 ~ f1@2 f2 ~ f2 ~ f1 d2 ~ d2 ~ d2", M: "d2 ~@2 c2 ~@12", N: "~@4 a1@3 ~ a1 ~@2 a1 ~ a1 a1@2",
  O: "~ a1!2 ~ d2@2 ~@2 d2 ~@2 d2 ~ d2!2 ~, ~@4 e2 ~@11", P: "~ d2!2 ~ a1@2 ~@2 a1 ~@2 a1 ~ a1 a1@2",
  Q: "~ a1!2 ~ d2@2 ~@2 d2 ~ d2!2 ~ d2 d2@2", R: "~ d2 d2@2 bb1@2 ~@2 bb1 ~ bb1!2 ~ bb1 bb2 bb1",
  S: "~ bb1!4 ~ bb1 ~ bb2 ~ bb1!2 ~ bb1 bb1@2", T: "~ bb1 bb1@2 a1@3 ~ a1 ~ a1!2 ~ a1 a1@2",
  U: "~ a1!2 ~ c2 ~ c2@2 ~ c2!3 ~ c2 ~ c2", V: "e2 g2 c2 ~@13", W: "c2 ~ c2 ~ f1@3 ~ f2@2 f1 d2 ~ d2 ~ f1",
  X: "d2@2 c2 ~ bb1@2 ~@2 bb1 ~ bb1 c2 ~ c2 ~ c2", Y: "c2 ~ c2 ~ f1@2 ~@2 f2 ~ f1 d2 ~ d2 ~ f1",
  Z: "d2@2 f1 c2 bb1 ~@3 bb1 ~ bb1 c2 ~ c2 ~ c2", AA: "c2 ~ c2!2 f1@2 f2 ~ f2 ~ f1 d2 ~ d2 ~ f1",
  AB: "~@4 a1@2 ~@2 a1 ~@2 a1 ~ a1 a1@2", AC: "~ a1!2 ~@13", AD: "~@4 f1@3 ~ f2@2 f1 d2 ~ d2 ~ f1",
  AE: "c2 ~ c2!2 f1@3 ~ f2@2 f1 d2 ~ d2 ~ f1", AF: "d2@2 f1 c2 ~@12", AG: "d2 ~ c2 ~ bb1@2 ~@2 bb1 ~ bb1 c2 ~ c2 ~ c2",
  AH: "c2 ~ c2 ~ f2@2 ~@10",
})).s("gm_electric_bass_finger").gain(0.28)

// chords · piano · "Piano 1"
const piano = note(`<
  ~@24 A B C D C E C F G H I J@5 K ~@3 A B C L M B C L M B C D C E C F G H I N@4 O@2 ~@7 A B C D M B C L M B C D C E C E
  C E C E C E C D C E C E C E C L P ~@33
>`.pickRestart({
  A: "~@4 [f2,a3,c4,f4]@3 ~ [a3,c4,f4] ~ f2 [d2,a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ d2", // F Dm7
  B: "[a3,c4,d4,f4]@2 [d2,e2] ~ bb2 ~ [f3,bb3,d4] ~ [f3,bb3,d4] ~ bb2 [c3,g3,c4,e4] ~ [g3,c4,e4] ~ c3", // Dm7 Dsus2 Bb C
  C: "[g3,c4,e4]@2 c3 ~ [f2,a3,c4,f4] ~@3 [a3,c4,f4]@2 f2 [d2,a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ d2", // C F Dm7
  D: "[a3,c4,d4,f4]@2 d2 ~ [bb2,f3,bb3]@2 ~@2 [bb2,f3,bb3,d4] ~ bb2 [c3,g3,c4,e4] ~ [g3,c4,e4] ~ c3, ~@4 d4 ~@11", // Dm7 Bb5 Bb C
  E: "[a3,c4,d4,f4]@2 d2 ~ [bb2,f3,bb3,d4]@2 ~@2 [bb2,f3,bb3,d4] ~ bb2 [c3,g3,c4,e4] ~ [g3,c4,e4] ~ c3", // Dm7 Bb C
  F: "[a3,c4,d4,f4]@2 d2 ~@13", G: "~@4 a2@2 [a3,c4,e4,g4]@2 a2 [a3,c4,e4,g4] ~ a2 [a3,c4,e4,g4]@2 a2 [a3,c4,e4,g4]",
  H: "~ a2 [a3,c4,e4,g4] a2 d2@2 [a3,c4,d4,f4] ~@2 [a3,c4,d4,f4] ~ d2 [a3,c4,d4,f4]@2 d2 [a3,c4,d4,f4]", // Am7 Dm7
  I: "~ d2 [a3,c4,d4,f4] d2 a2@2 [a3,c4,e4,g4]@2 ~ [a3,c4,e4,g4] ~ a2 [a3,c4,e4,g4]@3 [a3,c4,e4,g4]", // Dm7 Am7
  J: "[~ a2 [a3,c4,e4,g4] a2 d2@2 [a3,c4,d4,f4] ~@2 [a3,c4,d4,f4] ~ d2 [a3,c4,d4,f4]@2 d2 [a3,c4,d4,f4]@2 d2 [a3,c4,d4,f4] d2 bb2@2 [a3,d4,f4]@2 ~ [a3,d4,f4]@2 ~ [a3,d4,f4]@3 [a3,d4]@2 bb2 [a3,f4] [d4,f4] bb2@2 [a3,d4,f4]@2 bb2 [a3,d4,f4] ~ bb2 [a3,d4,f4]@2 bb2 [d4,f4] ~ bb2 [a3,d4,f4] bb2 a2@2 [a3,c4,e4,g4]@2 ~ [a3,c4,e4,g4]@2 a2 [a3,c4,e4,g4]@2 a2 [a3,c4,e4,g4]@2 a2 [a3,c4,e4,g4] a2 c2@2 [g3,bb3,c4,e4]@2 c2 [g3,bb3,c4,e4]@2 c2 [g3,bb3,c4,e4]@2 c2 [g3,bb3,c4,e4], ~@27 bb2@4 f4 ~@15 a3@2 ~@7 a2@2 ~@22]/5", // Am7 Dm7 Dm D5 Dm Am7 C7
  K: "~ c2 [g3,bb3,c4,e4] ~@13", // C7
  L: "[a3,c4,d4,f4]@2 d2 ~ [bb2,f3]@2 ~@2 [bb2,f3,bb3,d4] ~ bb2 [c3,g3,c4,e4] ~ [g3,c4,e4] ~ c3, ~@4 [bb3,d4] ~@11", // Dm7 Bb5 Bb C Bb
  M: "[g3,c4,e4]@2 c3 ~ [f2,a3,c4,f4]@3 ~ [a3,c4,f4] ~ f2 [d2,a3,c4,d4,f4] ~ [a3,c4,d4,f4] ~ d2", // C F Dm7
  N: "[~ a2 [a3,c4,e4,g4] a2 d2@2 [a3,c4,d4,f4] ~@2 [a3,c4,d4,f4] ~ d2 [a3,c4,d4,f4]@2 d2 [a3,c4,d4,f4]@2 d2 [a3,c4,d4,f4] d2 bb2@2 [a3,d4,f4]@2 ~ [a3,d4,f4]@2 ~ [a3,d4,f4]@3 [a3,d4]@2 bb2 [a3,f4] [d4,f4] bb2@2 [a3,d4,f4]@2 bb2 [a3,d4,f4] ~ bb2 [a3,d4,f4]@2 bb2 [d4,f4] ~ bb2 [a3,d4,f4] bb2 ~@12, ~@27 bb2@4 f4 ~@15 a3@2 ~@15]/4", // Am7 Dm7 Dm D5 Dm
  O: "[~@2 [c1,c2]@7 ~@7]/2", P: "[g3,c4,e4]@2 c3 ~ [f1,f2]@2 ~@10",
})).s("gm_piano").gain(0.23).pan(0.4)

// other · electric guitar muted · "Rain"
const electric_guitar_muted = note("<~@16 A B C D E B C D F ~@117>".pickRestart({
  A: "~@6 f4!2 ~ f4!2 ~@2 f4 ~@2", B: "f4!3 ~@3 f4!5 ~@2 f4 ~ f4", C: "~ f4!3 ~@2 f4!2 ~ f4!2 ~@3 f4 ~",
  D: "f4!3 ~@3 f4!2 ~ f4!2 ~@2 e4!3", E: "e4!2 ~ e4 ~@2 f4!2 ~ f4!2 ~@2 f4 ~@2", F: "e4!2 ~ e4 ~@12",
})).s("gm_electric_guitar_muted").gain(0.18).pan(0.7)

// other · electric guitar muted · "Rain" · soft notes
const electric_guitar_muted_2 = note("<~@17 [~@12 f4 ~@3] [f4 ~@15] ~@2 [~@12 f4 ~@3] [f4 ~@15] ~@119>")
  .s("gm_electric_guitar_muted").gain(0.13).pan(0.7)

// chords · string ensemble 1 · "Strings1"
const string_ensemble_1 = note(`<
  ~@12 A@4 ~@3 B@2 ~@6 C ~@8 D@4 E@5 ~@2 C ~@7 C ~@8 F@2 G@2 H@8 ~@3 C ~@7 C ~@54
>`.pickRestart({
  A: "[~@4 [c4,f4,a4]@16 [d4,bb4]@7 ~ [e4,c5]@7 ~@5 f4@11 ~@13, ~@36 [c4,a4]@15 ~@13]/4", // F Gm C F
  B: "[~@8 [f5,a5,bb5,c6]@11 ~@13]/2", C: "~@9 [f5,a5,bb5,c6]@7", D: "[~@4 [a5,d6]@32 [a5,c6]@15 ~ [g4,bb4]@12]/4",
  E: "[~@4 c4@7 ~ d4@7 ~ [bb3,d4,f4]@8 [c4,e4,g4]@8 c4@7 ~ d4@8 [bb3,d4,f4]@8 [c4,e4,g4]@7 ~@13, ~ [f4,a4]@4 ~@4 [f4,a4]@4 ~@7]/5", // Bb C Bb C F
  F: "[~ f6@7]/2", G: "[~ [e4,g4,a4,c5]@4 [c6,g6]@3]/2",
  H: "[~@4 c4@7 ~ d4@7 ~ [bb3,d4,f4]@8 [c4,e4,g4]@8 c4@7 ~ d4@8 [bb3,d4,f4]@8 [c4,e4,g4]@7 ~ c4@7 ~ d4@7 ~ [bb3,d4,f4]@8 [c4,e4,g4]@8 c4@7 ~ d4@8 [bb3,d4,f4]@8 [c4,e4,g4]@4, ~ [f4,a4]@4 ~@4 [f4,a4]@4 ~@4 [f4,a4]@4 ~@4 [f4,a4]@4 ~@3]/8", // Bb C Bb C Bb C Bb C …
})).s("gm_string_ensemble_1").gain(0.14).pan(0.3)

// chords · electric guitar jazz · "TenorSax"
const electric_guitar_jazz = note("<A@2 B@4 C@4 D@4 E@3 ~@125>".pickRestart({
  A: "[~@4 [c4,a4]@4 c4@2 c4@4 g4@11 ~ c4@2 bb4@2 a4@2, ~@14 f4 ~@17]/2", // F
  B: "[g4@2 f4 ~ a4@4 c4 ~ d4@8 ~@4 [bb3,d4,f4,bb4]!4 [bb3,d4,f4,bb4]@2 [c4,e4,g4,c5]!3 [c4,e4,g4,c5]@2 [c4,e4,g4,c5] [c4,e4,g4,c5]@2 ~@3 g4@3 e4@4 f4@6 f4@3 bb4@3 f4 ~ [c4,g4]@2 a4@2, ~@4 g4 ~@5 c4 ~@25 f3@14 ~@2 [bb3,d4]@7 ~ e4@4, ~@60 f4 ~@3]/4", // Bb C C5 Bb
  C: "[g4@2 f4 ~ c4@2 ~ c4@2 ~ c4 d4@8 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~ [c4,c5]@3 [e4,g4,c5]@2 ~ [e4,g4,c5] ~@4 g4@3 e4@4 f4@6 f4@3 bb4@3 f4 ~ [c4,g4]@2 a4@2, ~@4 [f3,a4]@5 ~ [d3,a3]@8 ~@2 bb3@3 ~@2 bb3@3 [e4,g4]@2 ~@3 c4@2 ~ f3@14 ~@2 [bb3,d4]@7 ~ e4@4, ~@60 f4 ~@3]/4", // Bb C C5 F D5 Em Bb
  D: "[g4@2 f4 ~ c4@2 ~ c4@2 ~ c4 d4@7 ~@2 [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~ [e4,g4,c5]@2 ~ [e4,g4,c5]@2 ~ [e4,g4,c5] ~@4 g4@3 e4@4 f4@6 f4@3 bb4@3 f4 ~ [c4,g4]@2 a4@2, ~@4 [f3,a4]@5 ~ [d3,a3]@8 ~@2 bb3@3 ~@2 bb3@3 c4@3 ~@2 c4@2 ~ f3@14 ~@2 [bb3,d4]@7 ~ e4@4, ~@60 f4 ~@3]/4", // Bb C C5 F D5 Bb
  E: "[g4@2 f4 ~ c4@2 ~ c4@2 ~ c4 d4@8 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~ [c4,c5]@3 [e4,g4,c5]@2 ~ [e4,g4,c5] ~@13, ~@4 [f3,a4]@5 ~ [d3,a3]@8 ~@2 bb3@3 ~@2 bb3@3 [e4,g4]@2 ~@3 c4@2 ~@13]/3", // Bb C F D5 Em
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.2)

// chords · pad warm · "WarmPad"
const pad_warm = note("<~@16 A@8 B@4 C@2 D@8 E F@5 B@4 G@8 C@2 D@8 E H@7 I@6 G@8 C@20 ~@34>".pickRestart({
  A: "[~@4 [f2,c4]@8 [d2,c4,d4]@8 [bb2,f3,bb3,c4,d4]@7 ~ [c3,g3,c4,e4]@8 [f2,c4,f4]@8 [d2,c4,d4]@8 [bb2,f3,bb3,c4,d4]@8 [c3,g3,c4,e4]@8 [f2,c4]@8 [d2,c4,d4]@8 [bb2,f3,bb3,c4,d4]@7 ~ [c3,g3,c4,e4]@8 [f2,c4,f4]@8 [d2,c4,d4]@8 [bb2,f3,bb3,c4,d4]@8 [c3,g3,c4,e4]@4, ~@4 [a3,f4]@15 ~@17 a3@15 ~@17 [a3,f4]@16 ~@16 a3@15 ~@13, ~@22 f4@3 ~@29 f4@3 ~@7]/8", // F5 D7 Bb C F5 D7 Bb C …
  B: "[~@4 f4@7 ~ [c4,f4]@8 ~ bb3@7 [c4,e4]@8 [c4,f4]@16 [bb3,d4]@8 [c4,e4]@4, ~@20 d4@7 ~@37]/4", // F5 C F5 Bb C
  C: "[~ [c4,f4]@4 [bb3,d4]@2 [c4,e4]]/2", // F5 Bb C
  D: "[~@4 [c4,f4]@16 [d4,f4,bb4]@7 ~ [e4,g4,c5]@6 ~@2 [c4,e4,g4,a4]@16 [c4,d4,f4,a4]@15 ~ [c4,e4,g4,a4]@15 ~ [d4,f4,a4]@15 ~ [f4,a4]@28]/8", // F5 Bb C Am7 Dm7 Am7 Dm F
  E: "~ [e4,g4]@3", // Em
  F: "[~@4 [e4,c5]@15 ~ c4@8 d4@8 [bb3,d4,f4]@8 [c4,e4]@7 ~ c4@8 d4@8 [bb3,d4,f4]@8 [c4,e4]@4, ~@20 f4@15 ~@17 f4@16 ~@12]/5", // C Bb C Bb C
  G: "[~@4 [c4,f4]@16 [bb3,d4]@7 ~ [c4,e4]@7 ~ [c4,f4]@16 [bb3,d4]@7 ~ [c4,e4]@7 ~ f4@7 ~ [c4,f4]@8 ~ bb3@7 [c4,e4]@8 [c4,f4]@16 [bb3,d4]@8 [c4,e4]@4, ~@84 d4@7 ~@37]/8", // F5 Bb C F5 Bb C F5 C …
  H: "[~@4 [e4,c5]@15 ~ c4@8 d4@8 [bb3,d4,f4]@8 [c4,e4]@7 ~ c4@8 d4@8 [bb3,d4,f4]@8 [c4,e4]@7 ~ c4@8 d4@8 [bb3,d4,f4]@8 [c4,e4]@4, ~@20 f4@15 ~@17 f4@16 ~@16 f4@15 ~@13]/7", // C Bb C Bb C Bb C
  I: "[~@4 c4@8 d4@8 [bb3,d4,f4]@8 [c4,e4]@7 ~ f4@7 ~ [c4,f4]@8 ~ bb3@7 [c4,e4]@8 [c4,f4]@16 [bb3,d4]@8 [c4,e4]@4, ~@4 f4@16 ~@32 d4@7 ~@37]/6", // Bb C F5 C F5 Bb C
})).s("gm_pad_warm").gain(0.12)

// chords · electric guitar jazz · "Jazz Gt."
const electric_guitar_jazz_2 = note(`<
  ~@31 A@2 ~@7 B@2 C@3 ~@6 A@2 ~@6 A@2 ~@7 B@2 D@4 C@3 ~@6 A@2 ~@22 E@2 ~@33
>`.pickRestart({
  A: "[~@6 [bb3,d4,f4,bb4]!4 [bb3,d4,f4,bb4]@2 [c4,e4,g4,c5]!3 [c4,e4,g4,c5]@2 [c4,e4,g4,c5] [c4,e4,g4,c5]@2 ~@12]/2", // Bb C
  B: "[~@7 g4@3 e4@4 f4@4 f4@2 f4@3 bb4@3 f4 ~ [c4,g4]@2 a4@2, ~@4 f3@14 ~@2 [bb3,d4]@7 ~ e4@4, ~@28 f4 ~@3]/2", // C5 Bb
  C: "[g4@2 f4 ~ c4@2 ~ c4@2 ~ c4 d4@8 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~ [c4,c5]@3 [e4,g4,c5]@2 ~ [e4,g4,c5] ~@13, ~@4 [f3,a4]@5 ~ [d3,a3]@8 ~@2 bb3@3 ~@2 bb3@3 [e4,g4]@2 ~@3 c4@2 ~@13]/3", // Bb C F D5 Em
  D: "[g4@2 f4 ~ c4@2 ~ c4@2 ~ c4 d4@8 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4]@2 ~ [d4,f4,bb4] ~ [e4,g4,c5]@2 ~ [e4,g4,c5]@2 ~ [e4,g4,c5] ~@4 g4@3 e4@4 f4@4 f4@2 f4@3 bb4@3 f4 ~ [c4,g4]@2 a4@2, ~@4 [f3,a4]@5 ~ [d3,a3]@8 ~@2 bb3@3 ~@2 bb3@3 c4@3 ~@2 c4@2 ~ f3@14 ~@2 [bb3,d4]@7 ~ e4@4, ~@60 f4 ~@3]/4", // Bb C C5 F D5 Bb
  E: "[~@6 [bb3,d4,f4,bb4]!4 [bb3,d4,f4,bb4]@2 [c4,e4,g4,c5]!3 [c4,e4,g4,c5]@2 [c4,e4,g4,c5] [c4,e4,g4,c5]@2 [f3,a4,c5,f5]@2 ~@10]/2", // Bb C F
})).s("gm_electric_guitar_jazz").gain(0.19).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~@4 A B@10 C D B@14 C D B@14 E ~@94>".pickRestart({
  A: "~ x!3", B: "x!4", C: "x ~@3 x ~@4 x ~@6", D: "~ x ~@2 x ~@3 x ~@3 x ~@3", E: "x",
})).gain(0.29)

// drums · clap
const clap = s("cp").struct("<~@16 [~ x] [x!2]!14 x [~ x] [x!2]!14 x ~@94>").gain(0.22)

// drums · snare
const snare = s("sd").struct("<~@15 A B@8 C B@3 C B@2 D B@8 C B@6 E ~@94>".pickRestart({
  A: "~@6 x!3 ~@2 x!5", B: "x!2", C: "x ~ x!2 ~@4 x ~@7", D: "x ~@5 x!3 ~@2 x!5", E: "x",
})).gain(0.22)

// drums · hihat
const hihat = s("hh").struct("<~@16 A B@3 C B@3 C B@3 C B@2 D A B@3 C B@3 C B@3 C B@2 E ~@94>".pickRestart({
  A: "~@5 x ~@4 x ~@2 x ~@2", B: "~ x!2 ~ x!2 ~@4 x ~@2 x ~@2", C: "~ x!2 ~@2 x ~@4 x ~@2 x ~@2", D: "~ x!2 ~@13",
  E: "~ x ~@14",
})).gain(0.22)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@17 x!15 ~ x!15 ~@94>").gain(0.11)

// drums · mid tom
const mid_tom = s("mt").struct("<~@15 [~ x] ~@15 [~ x] ~@110>").gain(0.11)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@15
  [~ x!2 ~]
  [~ x ~@4 x ~@7 x ~]
  [~@3 x ~@3 x]!14
  [~ x!2 ~]
  [~ x ~@4 x ~@7 x ~]
  [~@3 x ~@3 x]!14
  ~@95
>`).gain(0.22)

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

// drums · ride
const ride = s("rd").struct("<~@4 [~ x!3] [x!4]!10 x ~@126>").gain(0.22)

// drums · tambourine
const tambourine = s("tb").struct("<~@16 A B@3 C B@3 C B@3 C B@2 D A B@3 C B@3 C B@3 C B@2 E ~@94>".pickRestart({
  A: "~@6 x!3 ~ x!6", B: "x ~ x ~ x ~ x!3 ~ x!6", C: "x ~ x ~@3 x!3 ~ x!6", D: "x!2 ~@6", E: "x",
})).gain(0.11)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@16
  [~@5 x ~@10]
  [~ x ~ x ~ x ~@10]!14
  [~ x ~ x ~@12]
  [~@5 x ~@10]
  [~ x ~ x ~ x ~@10]!14
  [~ x ~@14]
  ~@94
>`).gain(0.07)

// drums · bongos
const bongos = s("bongo:4").struct("<~@8 A B A B A B A ~ C D@14 E C D@14 E ~@94>".pickRestart({
  A: "~@9 x ~@3 x ~@2", B: "~@7 x ~ x ~@3 x ~@2", C: "~@7 x ~@7 x", D: "~ x ~@5 x ~@7 x", E: "~ x ~@14",
})).gain(0.66)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@8 A B C B C B C D E@15 ~ E@15 ~@95>".pickRestart({
  A: "~@5 x ~ x ~@8", B: "~ x ~ x ~ x ~@10", C: "~ x ~@3 x ~ x ~@8", D: "~ x ~ x ~@12", E: "~@11 x ~ x ~@2",
})).gain(0.66)

// drums · congas
const congas = s("conga:13").struct("<~@8 A B C B C B C ~ A@15 ~ A@15 ~@95>".pickRestart({
  A: "~@6 x!2", B: "~@3 x", C: "x!2 ~@4 x!2",
})).gain(0.69)

// drums · congas
const congas_2 = s("conga:18").struct("<~@8 A B A B A B A C ~ D@15 ~ D@14 ~@95>".pickRestart({
  A: "~@2 x!2 ~@4", B: "x!3 ~@4 x", C: "x!2 ~@6", D: "~ x ~@6",
})).gain(0.69)

// drums · congas
const congas_3 = s("conga:33").struct("<~@8 A@7 ~ B C@14 D B C@14 ~@20 D ~@2 E ~@45 F ~@25>".pickRestart({
  A: "~@5 x ~@2", B: "~@3 x ~@4", C: "~@3 x ~@2 x ~@9", D: "~@3 x ~@12", E: "~@5 x ~@10", F: "~ x",
})).gain(0.69)

// drums · triangle
const triangle = s("triangles:30").struct("<~@133 [~@7 x ~@8] ~@8>").gain(0.31)

stack(
  bass, piano, electric_guitar_muted, electric_guitar_muted_2, string_ensemble_1, electric_guitar_jazz, pad_warm,
// … 3 more lines

More by Fiorello