Strudelify

L'amore con l'amore si paga

Fiorella Mannoia

KeyB♭ majorTempo128 bpm
0:00/0:00
// L'amore con l'amore si paga — Fiorella Mannoia
// 128 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 140 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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 · electric guitar muted
const electric_guitar_muted = note("<~@103 A B@2 C A C D C E@3 C A C D C E@3 C A C D C F@2 ~@11>".pickRestart({
  A: "~@6 c3 ~ d3 ~ d3 ~ f3@4", B: "[~@6 f3 ~ g3 ~ g3 ~ bb3 ~ a3@5 ~@3 c4 ~ bb3 ~ bb3 ~ bb3@2 c4@2]/2",
  C: "~@6 f3 ~ g3 ~ g3 ~ bb3 ~ a3@2", D: "~@6 c4 ~ bb3 ~ bb3 ~ bb3@2 c4@2",
  E: "[~@6 c4 ~ bb3 ~ bb3 ~ bb3@2 c4@4 ~@4 f3 ~ g3 ~ g3 ~ bb3 ~ a3@5 ~@3 c4 ~ bb3 ~ bb3 ~ bb3@2 c4@2]/3",
  F: "[~@6 c4 ~ bb3 ~ bb3 ~ bb3@2 c4@4 ~@14]/2",
})).s("gm_electric_guitar_muted").gain(0.34).pan(0.3)

// chords · rock organ
const rock_organ = note(`<
  ~@56 A@2 B@2 C@2 D@2 E F G H ~@4 E F G H ~@4 I@2 J@2 K@2 L@2 M@4 N@2 O@2 ~@32 P Q R S@8 T
>`.pickRestart({
  A: "[[g4,d5]@3 [bb4,eb5]@4 [a4,f5]@9]/2", B: "[[g4,d5]@3 [bb4,eb5]@4 [c5,f5]@9]/2",
  C: "[[g4,d5]@3 [bb4,eb5]@4 ~@5 a5@4, bb5@3 ~, ~@7 [c5,f5]@9]/2", // G5 Eb5 F5
  D: "[[g4,d5]@3 [bb4,eb5]@4 f5@5 f5@4, g5@3 ~, ~@7 c5@9]/2", E: "[bb4,d5,f5]", F: "[c5,eb5,gb5] [c5,f5,a5]",
  G: "[bb4,d5,g5]", H: "[c5,e5,g5]", I: "[eb5,ab5,bb5]/2", J: "[d5,g5,bb5]/2", K: "[eb5,gb5,bb5]/2", L: "[d5,f5,bb5]/2",
  M: "[eb5,ab5,bb5]/4", N: "[[bb4,d5,g5]@3 [bb4,eb5,g5]@4 [a4,c5,f5]@9]/2",
  O: "[[bb4,d5,g5]@3 [bb4,eb5,g5]@4 [a4,c5,f5]@3 [a4,c5,f5] ~@5]/2", P: "~@2 [g5,bb5] ~@3 g5 ~, ~@12 bb5 ~@3",
  Q: "~@4 [g5,bb5] ~@7 g5@2 ~@2, ~@12 bb5 ~@3", R: "~@4 g5@2 ~@6 [g5,bb5] ~@3, ~@4 bb5 ~@11",
  S: "~@4 [g5,bb5] ~@7 [g5,bb5] ~@3", T: "~@4 [g5,bb5] ~@11",
})).s("gm_rock_organ").gain(0.34).pan(0.7)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@33 A@2 B ~@20 C@2 D@2 C@4 ~@16 E@4 F@4 G@2 H@2 I@2 J K ~@16 L@2 ~@2 M@2 N@2 ~ O ~@6 P@2 N@2 ~ O ~@6
>`.pickRestart({
  A: "[~@3 eb4@3 gb4@2]/2", B: "db4@2 db4@13 ~", C: "d5/2", D: "[d5@3 f5]/2", E: "[bb3@11 d4@3 f4@5 bb3@9 d4@2 f4@2]/4",
  F: "[bb4@11 [d4,d5]@3 [f4,f5]@5 [bb3,bb4]@8 [d4,d5]!2 [c4,c5]!2 [bb3,bb4]]/4", G: "[bb3,bb4]/2",
  H: "[[f4,f5]@3 [g4,g5]@3 [bb4,bb5]@10]/2", I: "[bb5@18 bb5@8 bb5 a5 f5@2 g5@2]/2", J: "d5@2 c5 d5 f5 d5 c5 d5",
  K: "a4 c5 f4 ~@5", L: "[g4@6 f4 g4]/2", M: "[d4@6 f4 g4]/2", N: "[d4@3 ~]/2", O: "~@2 f4 ~", P: "[d4@6 f4 ~]/2",
})).s("gm_overdriven_guitar").gain(0.54)

// other · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@114 A@2 ~@3 B C@2 A@2 D@2 E@2 ~ F ~ G C@2 A@2 D@2 H@2>".pickRestart({
  A: "[d4@3 c4]/2", B: "~ f4", C: "[d4@6 ~ g4]/2", D: "[d4@6 f4 g4]/2", E: "[d4@3 f4]/2", F: "~@3 g4", G: "~ c4",
  H: "[d4@21 ~@11]/2",
})).s("gm_overdriven_guitar").gain(0.34)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@29 A@4 B@2 C D E@2 F@2 G@2 H@2 ~@4 I@2 J@2 E@2 K@2 L M L M L M L ~@76
>`.pickRestart({
  A: "[~@2 bb3 ~ db4 ~ bb3 ~ f4 ~ bb3 ~ db4@15 ~@5]/2", B: "[~@2 bb3 ~ db4 ~ bb3 ~ f4 ~ bb3 ~ db4@12 bb3@8]/2",
  C: "f3 f3@6 ~", D: "~@4 c4 ~ bb3 ~ db4 ~ bb3 ~ c4@2 bb3 ~",
  E: "[c4 ~ bb3 ~ c4 ~ bb3 ~ db4 ~ bb3 ~ c4@2 db4@5 ~ c4 ~ bb3 ~ db4 ~ bb3 ~ c4 ~ bb3 ~]/2",
  F: "[c4 ~ bb3 ~ c4 ~ bb3 ~ db4 ~ bb3 ~ c4@2 db4@4 ~@2 c4 ~ bb3 ~ db4 ~ bb3 ~ c4@2 bb3 ~]/2",
  G: "[bb3 ~ bb3 ~ c4 ~ bb3 ~ db4 ~ bb3 ~ c4@2 db4@5 ~ c4 ~ bb3 ~ db4 ~ bb3 ~ c4 ~ bb3 ~]/2",
  H: "[bb3 ~ bb3 ~ c4 ~ bb3 ~ db4 ~ bb3 ~ c4@2 db4@4 ~@14]/2", I: "[~@2 bb3 ~ db4 ~ bb3 ~ f4 ~ bb3 ~ db4@12 ~@8]/2",
  J: "[~@2 bb3 ~ db4 ~ bb3 ~ f4 ~ bb3 ~@9 c4 ~ bb3 ~ db4 ~ bb3 ~ c4@2 bb3 ~, ~@3 db4@3 ~@2]/2",
  K: "[c4 ~ bb3 ~ c4 ~ bb3 ~ db4 ~ bb3 ~ c4@2 ~@2 g3 ~ g3 ~ bb3@2 g3 ~ g3 ~ g3 ~ bb3@2 g3 ~, ~@7 db4@2 ~@7]/2",
  L: "g3 ~ a3 ~ bb3 ~ a3 ~ a3 ~ g3 ~ bb3@4", M: "g3 ~ g3 ~ bb3@2 g3 ~ g3 ~ g3 ~ bb3@2 g3 ~",
})).s("gm_electric_guitar_jazz").gain(0.54).pan(0.3)

// bass · electric bass finger
const bass = note(`<
  ~@16 A@2 B@2 A@2 C@2 B@4 D@8 E@4 F G F G H I H I J G J G K G K G L@8 M N O P Q R S T M N O P Q R S T U V W X Y Z AA AB
  U V U V A@2 AC@2 A@2 B@2 A@2 C@2 A@2 B@2 A@2 C@2 A@2 B@2 A@2 C@2 A@2 B@2 A@2 C@2 A@2 B@2 A@2 B@2 A@2 AD@2
>`.pickRestart({
  A: "[g1@2 ~ eb2@3 ~ f2@7 d2 f2]/2", B: "[g1@2 ~ eb2@3 ~ f2@6 ~ f1@2]/2", C: "[g1@2 ~ eb2@3 ~ f2@6 f2 d2@2]/2",
  D: "[bb1@4 ~@2 ab1@6 ~@2 gb1@9 ~ gb1 ~ gb1 ~ gb1@4]/2", E: "[bb1@4 ~@2 db2@6 ~@2 gb1@9 ~ gb1 ~ gb1 ~ gb1@4]/2",
  F: "bb1@2 ~ ab1@3 ~ gb1", G: "gb1@8 gb1 ~ gb1 ~ gb1@4", H: "bb1@4 ~@2 ab1@7 ~@3", I: "gb1!2 gb1@2 ~@4",
  J: "bb1@2 ~ ab1@4 gb1", K: "bb1@2 ~ db2@3 ~ gb1", L: "[g2@4 ~@2 eb2@6 ~@2 f2@9 ~ f2 ~ f2 ~ eb2@4]/2", M: "bb1",
  N: "f2 f1", O: "g1@6 g1 bb1", P: "c2@7 d2", Q: "eb2@3 eb2@3 d2@2", R: "c2@3 c2@4 d2", S: "eb2@3 eb2@5",
  T: "f2 f3 f3@2", U: "ab1@5 ~ ab1@3 ~ ab1 ~ ab1@3 ~", V: "ab1@5 ~ ab1 ~ ab1@8", W: "g1@5 ~ g1@3 ~ g1 ~ g1@3 ~",
  X: "g1@5 ~ g1 ~ g1@8", Y: "gb1@5 ~ gb1@3 ~ gb1 ~ gb1@3 ~", Z: "gb1@5 ~ gb1 ~ gb1@8", AA: "d2@5 ~ d2@3 ~ d2 ~ d2@3 ~",
  AB: "d2@5 ~ d2 ~ d2@8", AC: "[g1@2 ~ eb2@3 ~ f2@3 f2 ~@5]/2", AD: "[g1@2 ~ eb2@3 ~ f2@2 f2!2 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.61)

// chords · distortion guitar
const distortion_guitar = note("<~@27 A@7 B@8 C@3 D@2 E@7 F@2 ~@7 G@2 H I@2 J@4 K H I@2 J@4 ~@2 L@3 ~@55>".pickRestart({
  A: "[~@16 [f4,bb4]@4 ~@2 [c4,eb4,ab4]@6 ~@2 [gb4,ab4,db5]@17 ~ [f4,bb4]@4 ~@2 [c4,eb4,ab4]@6 ~@2 [gb4,ab4,db5]@17 ~ [f4,bb4]@4 ~@2 [c4,eb4,ab4]@6 ~@2 [gb4,ab4,db5]@17 db4, ~@15 db4@5 ~@9 db4@17 ~ db4@5 ~@9 db4@17 ~ db4@5 ~@9 db4@17 ~@2]/7", // Bb5 Ab Gbsus2 Bb5 Ab Gbsus2 Bb5 Ab …
  B: "[[f4,bb4]@4 ~@2 [c4,eb4,ab4]@6 ~@2 [gb4,ab4,db5]@17 ~ [f4,bb4]@4 ~@2 [f4,ab4,db5]@6 ~@2 [gb4,ab4,db5]@6 [gb4,ab4,db5]@4 [gb4,ab4,db5]@2 [gb4,ab4,db5]@2 [gb4,ab4,db5]@2 ~@2 [f4,bb4]@4 ~@2 [f4,ab4,db5]@6 ~@2 [gb4,ab4,db5]@6 [gb4,ab4,db5]@4 [gb4,ab4,db5]@2 [gb4,ab4,db5]@2 [gb4,ab4,db5]@2 ~@2 [f4,bb4]@4 ~@2 [c4,eb4,ab4]@6 ~@2 [gb4,ab4,db5]@17 db4, ~@13 db4@17 ~ db4@5 ~@9 db4@17 [gb4,ab4,db5]@2 ~@30 [gb4,ab4,db5]@2 ~@32, ~@63 db4@5 ~@9 db4@18 db4@5 ~@9 db4@17 ~@2]/8", // Bb5 Ab Gbsus2 Bb5 Db Gbsus2 Bb5 Db …
  C: "[[f4,bb4]@4 ~@2 [c4,eb4,ab4]@6 ~@2 [gb4,ab4,db5]@17 ~ [f4,bb4]@4 ~@2 [c4,eb4,ab4]@8 ~@2, ~@13 db4@17 ~ db4@5 ~@12]/3", // Bb5 Ab Gbsus2 Bb5 Ab
  D: "[[gb4,ab4,db5]@2 [gb4,ab4,db5]@2 [gb4,ab4,db5]@11 ~ [f4,bb4]@4 ~@2 [c4,eb4,ab4]@8 ~@2, db4@15 db4@5 ~@12]/2", // Gbsus2 Bb5 Ab
  E: "[[gb4,ab4,db5]@2 [gb4,ab4,db5]@2 [gb4,ab4,db5]@11 ~ [f4,bb4]@4 ~@2 [c4,eb4,ab4]@9 ~ [gb4,ab4,db5]@15 ~ [f4,bb4]@4 ~@2 [c4,eb4,ab4]@9 ~ [gb4,ab4,db5]@15 ~ [f4,bb4]@4 ~@2 [f4,ab4,db5]@9 ~ [gb4,ab4,db5]@4 [gb4,ab4,db5]@4 [gb4,ab4,db5]@2 [gb4,ab4,db5]@2 [gb4,ab4,db5]@2 ~ db4, db4@15 db4@5 ~@11 db4@15 ~ db4@5 ~@11 db4@15 ~ db4@5 ~@11 db4@15 [gb4,ab4,db5]@2]/7", // Gbsus2 Bb5 Ab Gbsus2 Bb5 Ab Gbsus2 Bb5 …
  F: "[[f4,bb4]@2 ~ [f4,ab4,db5]@4 ~ [gb4,ab4,db5]@2 [gb4,ab4,db5]@2 [gb4,ab4,db5]!4, ~@15 db4@16 ~]/2", // Bb5 Db Gbsus2
  G: "[~ [f4,bb4], ~@15 bb3@16 ~]/2", H: "[eb4,gb4,bb4] [c4,f4,a4]",
  I: "[[d4,g4,bb4]@15 ~ [e4,g4,bb4]@16, ~@15 c4@17]/2", // Gm Edim
  J: "[~@45 eb4@2 ~ [f4,c5]@16, bb3@10 bb3@6 c4@10 c4@6 bb3@10 bb3@5 c4@16 ~, ~@2 eb4@12 eb4@4 eb4@12 eb4@4 eb4@11 ~@19, ~ bb4@2 bb4@2 bb4@2 bb4@2 bb4@2 bb4 ~@4]/4", // F5
  K: "[bb3,f4,bb4]@15 ~", L: "[~@4 d4@2 f4@5 bb3@9 ~@4]/3",
})).s("gm_distortion_guitar").gain(0.34).pan(0.3)

// chords · piano
const piano = note(`<
  A@2 B@2 C@2 D@2 A@20 E@4 F@2 G@2 H@4 F@2 G@2 I J I J K L K L M L M L N@8 O P Q R S T S U O P Q R S T S U V@2 W@2 X@2
  Y@2 Z@2 AA@2 A@2 AB@2 A@4 B@2 A@2 AC@8 A@4 B@2 A@2 AC@8 A@4 AC@6 AD@2
>`.pickRestart({
  A: "[[g2,d3,g3,bb3]@3 [eb2,eb3,g3,bb3]@4 [f2,f3,a3,bb3]@9]/2", // Gm Eb Bbmaj7
  B: "[[g2,d3,g3,bb3]@6 [eb2,eb3,g3,bb3]@8 ~@16 g3 a3, ~@7 [f2,f3,a3,bb3]@9]/2", // Gm Eb Bbmaj7
  C: "[[g2,d3,g3]@6 [eb2,eb3,g3]@8 ~@16 g3 a3, bb3@7 [f2,f3,a3,bb3]@9]/2", // G5 Eb Bbmaj7
  D: "[[g2,d3,g3]@3 [eb2,eb3,g3]@4 [f2,f3,a3,bb3]@9, bb3@7 ~@9]/2", // G5 Eb Bbmaj7
  E: "[[bb2,f3,bb3]@3 [ab2,eb3,ab3]@4 [gb2,gb3,db4]@8 ~]/2", F: "[[bb2,f3,bb3]@6 [ab2,eb3,ab3]@8 [gb2,gb3,db4]@17 ~]/2",
  G: "[[f3,bb3]@3 [ab2,eb3,ab3]@4 [gb2,gb3,db4]@8 ~, bb2 ~@7]/2", // Bb5 Ab5 Gb5
  H: "[[bb2,f3,bb3]@3 [db3,f3,ab3]@4 [gb2,gb3,db4]@8 ~]/2", I: "[bb2,f3,bb3]@6 [ab2,eb3,ab3]@9 ~",
  J: "[gb2,gb3,db4]!2 [gb2,gb3,db4]@2 ~@4", K: "[bb2,f3,bb3]@3 [ab2,eb3,ab3]@5", L: "[gb2,gb3,db4]",
  M: "[bb2,f3,bb3]@3 [db3,f3,ab3]@5", N: "[[d3,g3,bb3]@6 [eb3,g3,bb3]@8 [c3,f3,a3]@17 ~]/2", O: "[bb4,d5,bb5]",
  P: "[c5,eb5,gb5,bb5] [f4,a4,c5]", Q: "[g4,bb4,d5]", R: "[e4,g4,c5]", S: "[eb4,g4,bb4]", T: "[eb4,g4,c5]",
  U: "[f4,a4,c5]", V: "[[eb4,ab4,bb4]@3 [eb4,ab4,bb4]@13]/2", W: "[d4@2 d4 [d4,g4,bb4]@13, [g4,bb4]@3 ~@13]/2",
  X: "[~ bb4 ~@4 db5@10, [eb4,eb5] [ab4,ab5]@6 ~]/2", Y: "[[d4,f4,bb4]@3 [bb4,d5]@8 [bb4,f5]@5, ~@3 f4@7 ~@6]/2",
  Z: "[[eb4,ab4,bb4]@3 ~@6 eb5@7, ~@3 [eb4,ab4,bb4]@13]/2", AA: "[[eb4,ab4]@3 [eb4,ab4]@3 [eb4,ab4,eb5]@10]/2",
  AB: "[[g2,d3,g3,bb3]@3 [eb2,eb3,g3,bb3]@4 [f2,f3,a3,bb3]@3 [f2,f3,a3] ~@5]/2", // Gm Eb Bbmaj7 F
  AC: "[~@20 [f4,c5]@5 ~@7, [g2,d3,g3,bb3]@3 [eb2,eb3,g3,bb3]@4 [f2,f3,a3,bb3]@9, ~@4 [g4,d5]@5 ~@3 [g4,d5]@5 ~@15]/2", // F5 Gm Eb Bbmaj7 G5
  AD: "[~@10 [f4,c5] ~@5, [g2,d3,g3,bb3]@3 [eb2,eb3,g3,bb3]@4 [f2,f3,a3,bb3]@4 ~@5, ~@4 [g4,d5]@5 ~@3 [g4,d5]@5 ~@15]/2", // F5 Gm Eb Bbmaj7 G5
})).s("gm_piano").gain(0.48).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@4 B@4 A@4 B@4 A@4 B@8 C@8 D@4 C@4 E F E F G H G H I H I H J@8 K L M N O P O Q K L M N O P O Q R@2 S@2 T@2 U@2 R@4
  A@2 V@2 A@4 B@4 A@4 B@4 A@4 B@4 A@4 B@4 A@10 V@2
>`.pickRestart({
  A: "[[bb3,d4,g4]!3 bb3!2 [bb3,eb4,g4]!2 [bb3,c4,f4,g4]@2 [bb3,c4,f4,g4]!7, ~@3 [eb4,g4]@2 ~@11]/2", // Gm Eb Bbsus2 Eb
  B: "[[bb3,d4,g4]!3 [bb3,eb4,g4]@2 [bb3,eb4,g4]!2 [bb3,c4,f4,g4]@2 [bb3,c4,f4,g4]!7]/2", // Gm Eb Bbsus2
  C: "[[db4,f4,bb4]!3 c4!2 [c4,eb4,ab4]!2 [bb3,db4,gb4,bb4]@2 [bb3,db4,gb4,bb4]!7, ~@3 [eb4,ab4]@2 ~@11]/2", // Bbm Ab Gb Ab5
  D: "[[db4,f4,bb4]!3 db4!2 [db4,f4,ab4]!2 [bb3,db4,gb4,bb4]@2 [bb3,db4,gb4,bb4]!7, ~@3 [f4,ab4]@2 ~@11]/2", // Bbm Db Gb Fm
  E: "[db4,f4,bb4]!3 c4!2 [c4,eb4,ab4] [c4,eb4,ab4]@2, ~@3 [eb4,ab4]@2 ~@3", // Bbm Ab Ab5
  F: "[bb3,db4,gb4,bb4]!2 [bb3,db4,gb4,bb4]@6", // Gb
  G: "[db4,f4,bb4]!3 c4!2 [c4,eb4,ab4]!2 [bb3,db4,gb4,bb4], ~@3 [eb4,ab4]@2 ~@3", H: "[bb3,db4,gb4,bb4]!8",
  I: "[db4,f4,bb4]!3 db4!2 [db4,f4,ab4]!2 [bb3,db4,gb4,bb4], ~@3 [f4,ab4]@2 ~@3", // Bbm Db Gb Fm
  J: "[[bb3,d4,g4]!3 bb3!2 [bb3,eb4,g4]!2 [f3,bb3,c4,f4]@2 [f3,bb3,c4,f4]!7, ~@3 [eb4,g4]@2 ~@11]/2", // Gm Eb Fsus4 Eb
  K: "[bb3,d4,f4,bb4]", L: "[c4,eb4,gb4,bb4] [c4,eb4,f4,a4]", M: "[bb3,d4,g4,bb4]", N: "[c4,e4,g4,bb4]",
  O: "[bb3,eb4,g4]!3 bb3!2 [bb3,eb4,g4]!3, ~@3 [eb4,g4]@2 ~@3", P: "[c4,eb4,g4]@2 [c4,eb4,g4]!6",
  Q: "[c4,f4,a4]@2 [c4,f4,a4]!6", R: "[ab3,c4,eb4,ab4]!8", S: "[bb3,d4,f4,g4]!8", T: "[db4,eb4,gb4,bb4]!8",
  U: "[bb3,d4,f4,bb4]!8", // Bb
  V: "[[bb3,d4,g4]!3 bb3!2 [bb3,eb4,g4]!2 [bb3,c4,f4,g4]@2 [bb3,c4,f4,g4]!2 ~@5, ~@3 [eb4,g4]@2 ~@11]/2", // Gm Eb Bbsus2 Eb
})).s("gm_acoustic_guitar_steel").gain(0.34).pan(0.6)

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

// drums · snare
const snare = s("sd").struct("<~@16 A@11 B A@27 C A@7 D E@4 A@3 F A@7 F A@11 G A@3 F A@43 F>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@6 x!2 ~@3", C: "~@2 x!6", D: "~ x!2 ~@5", E: "~ x", F: "~ x ~@2", G: "~@2 x ~ x!4",
})).gain(0.71)

// drums · low tom
const low_tom = s("lt").struct("<~@55 A ~@7 B ~@3 C ~@3 C ~@7 C ~@60>".pickRestart({
  A: "~@3 x!5", B: "~@6 x!2", C: "~@7 x",
})).gain(0.55)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<[~ x ~ x ~ x ~ x]!15 [~ x ~ x ~ x ~@2] ~@124>").gain(0.24)

// drums · mid tom
const mid_tom = s("mt").struct("<~@27 A ~@35 B ~@3 C ~@3 C ~@7 D ~@11 E ~@2 F G ~@44>".pickRestart({
  A: "~ x", B: "~@3 x!3 ~@2", C: "~@5 x!2 ~", D: "~@4 x!3 ~", E: "~@4 x!4", F: "~@7 x", G: "x!2 ~@6",
})).gain(0.63)

// drums · open hat
const open_hat = s("oh").struct("<~@15 A ~@11 B ~@27 C ~@7 C ~@27 C ~@48>".pickRestart({
  A: "~@6 x!2", B: "~@3 x ~@4", C: "~ x ~@2",
})).gain(0.39)

// drums · high tom
const high_tom = s("ht").struct("<~@79 [~@3 x ~@4] ~@60>").gain(0.71)

// drums · crash
const crash = s("cr").struct(`<
  ~@16 A ~@11 A ~@7 A ~@3 A ~@5 A B ~@4 A ~@3 A ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@7 A
  ~@3 A ~@3 A ~@3 A ~@3 A ~@3
>`.pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.47)

// drums · ride bell
const ride_bell = s("rd").struct("<~@64 A B@3 A B@3 A B@3 A B@2 C ~@60>".pickRestart({
  A: "~ x!3", B: "x!4", C: "x!2 ~@2",
})).gain(0.39)

stack(
  electric_guitar_muted, rock_organ, overdriven_guitar, overdriven_guitar_soft, electric_guitar_jazz, bass,
  distortion_guitar, piano, acoustic_guitar_steel, kick, snare, low_tom, hihat, hihat_soft, mid_tom, open_hat, high_tom,
  crash, ride_bell
)

More by Fiorella Mannoia