Strudelify
Raccontami di Te cover art

Raccontami di te

Raccontami di Te

Masini

KeyG majorTempo124 bpm
0:00/0:00
// Raccontami di Te — Masini
// 124 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 123 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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
const bass = note(`<
  ~@15 A@3 ~@4 B C D E B F G H B C D I B F G H J K L M J N O P J K O Q J N L R J K O M S T G H B F G H B T G U V W H X V
  Y E X V Z E AA AB AC H AD D AE M B AF AG AH AI D AE AH AJ D AG M AK D AE AH AL AM@2 ~@10 AN@5
>`.pickRestart({
  A: "[~@23 c2@24 d2@24 ~]/3", B: "g1", C: "b1", D: "c2", E: "d2", F: "e1", G: "c1", H: "d1", I: "d2@3 d1", J: "a#1",
  K: "d1@3 d1", L: "d#1", M: "f1", N: "g1@3 g1", O: "d#2", P: "f1!2", Q: "f1@12 f2@2 ~ f2@2 ~@4 c2@3", R: "f1 f2",
  S: "g2", T: "b0", U: "d1@11 ~ a1@12", V: "a1", W: "c#1", X: "e1@9 b1@3 e2@6 b1@5 ~", Y: "f#1", Z: "c#2",
  AA: "e2@3 e1", AB: "a1@12 b1@5 ~ e2@3 a2@3", AC: "f#2 f#1", AD: "~ e2, e1@23 ~", AE: "e1@3 e1",
  AF: "c1@14 ~ e1@3 g1@3 g#1@3", AG: "a1@3 a1", AH: "f2", AI: "g1!2", AJ: "g1@4 g2@3 a1", AK: "g1 g2", AL: "g1 d2 g2@2",
  AM: "[~ a1@25 ~@22]/2", AN: "[~@17 a1@85 ~@18]/5",
})).s("gm_electric_bass_finger").gain(0.49)

// chords · pad warm
const pad_warm = note("<A@2 ~@121>".pickRestart({
  A: "[~@23 [d4,g4,a4]@25]/2", // Dsus4
})).s("gm_pad_warm").gain(0.06)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@14 A@7 ~@12 B@4 C D@2 E F G H@2 I J@2 K L M N O P J@2 K Q R S ~@3 T U@2 V W@3 X Y Z@2 X AA AB AC AD Y AE@4 AF AG
  AH@2 AI AJ AK AL AM AN AO@2 AP AQ AR AS AT AU AO@2 AP AV AW ~@4 AX AY@2 AZ BA@8
>`.pickRestart({
  A: "[~@23 [d4,f#4]@12 e4@5 d5@7 [a3,d4,e4]@24 ~@12 f#4@11 ~@37 a4@11 g4@21 ~@5, ~@35 g4@12 ~@24 [d3,a3]@22 ~@2 d4@48 ~@25]/7", // D Asus4 D5
  B: "[~@11 d4@7 g4@5 c5@7 b4@10 ~@2 a4@11 g4@13 d4@24 g4@6]/4", C: "a4@11 ~", D: "[[a#3,a#4]@24 [c4,c5]@23 ~, f4]/2",
  E: "[g4,a#4,f5]@23 ~", F: "[a#3,a#4,f5] [f3,c4,c6]", G: "[d#4,d#6]@3 [d4,d6]",
  H: "[[c4,c6]@12 d4@6 c4@5 ~ [g3,d#4]@23 ~, ~@12 a#5@11 g5@22 ~@3]/2", I: "a#3 a3, f5@23 ~",
  J: "[~@4 f6 d#6 d6 d#6 [c4,f6]@8, f4, ~@12 a#3@13 ~@23]/2", K: "[g3,a#3,d#4]@23 ~", L: "a#3 a3, f3",
  M: "~@3 [f4,f6] [d#4,d#6] [d4,d6] [c4,c6] [a#3,a#5]", N: "[c4,c6]@17 ~@7, f4@23 ~", O: "d4@12 c4@11 ~, g4@23 ~",
  P: "a#3 a3, [f3,f4]", Q: "[f3,c4]", R: "[b3,d4]@11 ~", S: "[a3,d4]@23 ~", T: "~@11 g4@6 d5@6 d4, ~@11 d4@12 ~",
  U: "[~@17 g4@6 ~ d4@22 ~@2, [a3,e4]@23 a4@24 ~]/2", V: "~@11 d4@3 c4@3 b3@4 c4@3, [g3,b4]@23 ~",
  W: "[[f#3,a3,d4]@23 b4@12 c5@6 ~@6 g3 ~@6 f#3@10 d4@6 ~@2, ~@23 [g3,e4]@25 ~@24, ~@41 g4@13 a4@15 ~@3]/3", // D C
  X: "[a3,c#4,a4]", Y: "[b3,e4,b4]", Z: "[e4@12 d4@12 a3@12 [g#3,b4]@11 ~, a4@3 ~]/2", AA: "[b3,e4]",
  AB: "[a3,d4,f#4]@23 ~", AC: "[a3,a4]@12 [g#3,b4]@11 ~, e3", AD: "[a3,c#4], a4@7 ~",
  AE: "[e4@35 e4 ~@6 a4@5 d5@7 c#5@10 ~@2 b4@11 a4@13 e4@6, a4@37 ~@59, f#3@23 ~@73]/4", AF: "[d4,f#4,a4]@23 ~",
  AG: "a3@12 g#3@11 ~, [e4,b4]@7 ~", AH: "[[c4,c6]@24 [d4,d6]@23 ~, g4]/2", AI: "[a4,c5,g5]@23 ~",
  AJ: "[c4,g5,c6] [g3,d4,d6]", AK: "[f4,f6]@3 [e4,e6]", AL: "[d4,d6]@2 e4 d4, ~ c6", AM: "[a3,f4,a5]@23 ~",
  AN: "c4 b3, g5@23 ~", AO: "[~@4 g6 f6 e6 f6 [d4,g6]@8, g4, ~@12 c4@13 ~@23]/2", AP: "[a3,c4,f4]@23 ~",
  AQ: "c4 b3, g3", AR: "~@3 [g4,g6] [f4,f6] [e4,e6] [d4,d6] [c4,c6]", AS: "[d4,d6]@17 ~@7, g4@23 ~",
  AT: "e4@12 d4@11 ~, a4@23 ~", AU: "c4 b3, [g3,g4]", AV: "[g3,d4]", AW: "[e3,a3,c#4]@23 ~",
  AX: "~@5 [e3,g#3]@13 [f#3,a3]@6", AY: "[[e3,e4]@6 [f#3,d4,e4]@25 ~@17]/2", AZ: "~@3 a3@3 a3 e4, ~@3 e3@5",
  BA: "[~ d4@3 c#4@3 d4@3 [b3,e4]@24 ~@10 f#3@3 d4@3 ~ c#4@3 b3@3 a3@3 ~@13 g#3@16 [e3,a3,c#4]@86 ~@17, ~@10 e3 ~@24 d3@25 e3@29 ~@103, ~@35 a3@22 ~@3 b3@27 ~@105]/8", // E5 A
})).s("gm_string_ensemble_2").gain(0.33).pan(0.4)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@17 A@5 B@2 C D E F G H B@2 C D E F G H I J K L M N K O I J K L P N K O I J K Q G R S T U V W ~ G R S T X@2 Y Z AA AB
  AC AD AE@2 Y AF AG AB AC AH AI AJ AK AL AM AN AK AO AI AJ AK AL AP AN AK AO AI AJ AK AQ AR AS AT@3 AU@3 AV AW@8
>`.pickRestart({
  A: "[~@23 [g2,g3,b3]@24 [b1,b3,d4]@24 [c2,g3,d4]@24 g3@13 f#3@11 ~, ~@19 [d2,d4]@5]/5", // G Bm Csus2 D
  B: "[a3@36 f#3@6 g3@5 ~, d4]/2", C: "[e3,g3,d4]", D: "[b3,d4] [f#3,a3,d4]", E: "[d3,a3]", F: "[e3,g3]",
  G: "[g3,b3,d4]", H: "g3 f#3, d4", I: "a#3@11 ~", J: "[d3,c4]", K: "[d#3,a#3]", L: "a#3 a3, f3", M: "d#4@3 d4, a#3",
  N: "c4@12 d4@6 c4@5 ~, g3", O: "a#3@12 a3@11 ~, f3@23 ~", P: "[a#3,d4]", Q: "[f3,a3]", R: "[f#3,a3,d4]", S: "[g3,d4]",
  T: "g3 a3, d4", U: "c4@17 ~ b3@6, g3@23 ~", V: "a3@3 ~", W: "[g3,c4]@7 ~", X: "[e4, b3@3 ~]/2", Y: "[f#3,a3,e4]",
  Z: "[c#4,e4] [g#3,b3,e4]", AA: "[e3,a3]", AB: "[f#3,a3]", AC: "[a3,d4,f#4]", AD: "a3 g#3, e4",
  AE: "[b3@36 g#3@6 a3@5 ~, e4]/2", AF: "[a3,d4] [g#3,b3,e4]", AG: "[e3,b3]", AH: "a3 g#3, [e2,e4]", AI: "c4@11 ~",
  AJ: "[e3,d4]", AK: "[f3,c4]", AL: "c4 b3, g3", AM: "f4@3 e4, c4", AN: "d4@12 e4@6 d4@5 ~, a3",
  AO: "c4@12 b3@11 ~, g3@23 ~", AP: "[c4,e4]", AQ: "[g3,b3]", AR: "[a2,e3]", AS: "~ b3@12 ~ a3@10, ~ [c#2,e3]@23",
  AT: "[~@2 [d2,f#3,a3,e4]@25 ~@13 b3@12 [e3,a3]@20, ~@27 e3@25 ~@20, ~@27 a3@13 ~@32, ~@7 e2@6 ~@5]/3", // D A5
  AU: "[~@9 a2@3 e2@3 [f#3,d4,e4]@12 ~ a3@6 [g#3,b3]@2, ~@5 e3@25 d2@21 ~@21, ~@5 g#3@12 ~ a3@12 ~@42, ~@6 f#2@25 ~@41]/3", // D G#m
  AV: "~@3 [a2,e3,a3]@5", // A5
  AW: "[~@10 [c#2,e3,b3]@25 [d2,d3,a3]@25 ~@13 g#3@16 [a1,e3,a3,c#4,e4]@87 ~@16, ~@60 [e2,e3]@29 ~@103, ~@20 b3@9 ~@35]/8", // C#m7 D5 A E
})).s("gm_synth_strings_1").gain(0.23).pan(0.6)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@37 A B ~@14 C D E F G ~@24 H I ~ J K ~@3 L M ~@5 N O ~@2 P O Q R S ~@17
>`.pickRestart({
  A: "~ d2", B: "[a#2,f3]", C: "~@12 f3@3 f2@8 ~", D: "a#2", E: "d3@23 ~", F: "d#3@23 ~", G: "f2@23 ~",
  H: "a2@4 b2@2 e3 a3", I: "f#3 ~", J: "~@6 e3@5 ~ e2@10 ~@2", K: "[c3,g3]", L: "c3@5 e2 g2 g#2", M: "a2@11 ~",
  N: "g2@4 g3@3 a2", O: "c3", P: "~ g2", Q: "e2@23 ~", R: "f2", S: "g2",
})).s("gm_overdriven_guitar").gain(0.42)

// other · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@37 A ~@15 B ~@31 C ~@15 D ~@21>".pickRestart({
  A: "~@3 a3 ~@20", B: "~@3 f2 ~@20", C: "~@3 e2 ~@20", D: "~@3 g3 ~@20",
})).s("gm_overdriven_guitar").gain(0.06)

// chords · piano
const piano = note(`<
  ~ A@6 B@4 C@2 D@6 E@3 F G H I J K L M F G H I J K L M N O P Q R S T U N O P Q V S W U N O P X@2 Y Z AA AB AC AD AE AF
  AG AH AI AJ AK AL AM AN AO AP AQ AJ AK AR AM AS AO AP AQ AT AU AV AW AX AY AZ BA BB AU AV AW BC AY BD BA BB AU AV BE@2
  BF@3 BG@7 BH@6
>`.pickRestart({
  A: "[~@23 [g2,a3,d4,g4,a4]@23 ~@19 d5@6 [c2,d4,e4,g4]@24 g4@12 a4@12 ~@18 b4@6 [e2,d4,a4], ~@47 [b2,b3,d4,f#4]@24 ~@24 [d2,d4]@24 [g2,d4,g4]@23 ~@2, ~@119 c5@12 b3@11 ~@2, ~@125 d3@13 ~@6]/6", // Gsus2 C Dsus2 Bm D G5
  B: "[~@11 [g3,b3]@6 [a3,f#4]@6 ~@18 g4@6 ~@12 f#4@11 ~@19 d4@6 [b2,d5], ~@5 b2@16 ~@2 [g3,c4,d4,e4]@24 ~@24 d4@18 ~@7, ~@11 g4@12 c2@22 ~@2 [d2,a3,d4]@24 [g2,a4]@23 ~@2, ~@77 d3@18 ~, ~@83 b3@12 ~]/4", // G D Bm C D5 Gsus2
  C: "[~@5 f#3@6 ~@6 d5@6 g3@15 ~@3 g3@6 [d2,d4,g4], ~@11 [g3,b3,d4,g4]@12 [c2,c4,d4,e4]@23 ~@2]/2", // G5 G C
  D: "[~@11 [f#3,a3,a4]@10 ~@20 b4@6 ~@12 [b3,e4,g4]@6 [a3,d4,f#4]@5 ~@13 a3@12 ~@12 f#4@11 ~ [g3,a3,b3,d4]@11 ~ [g3,a3,b3,d4]@12 [b2,a3,b3,d4], ~@5 d3@12 ~@4 g3@2 c5@18 ~@103, ~@22 g4@13 b3@12 [d4,f#4,a4]@12 ~@12 [g3,c4,d4,e4]@22 ~@51, ~@22 d4@7 d3@16 ~@8 b2@17 ~@49 [g2,d3]@24 ~, ~@23 g2@24 e2@23 ~ c2@24 [d2,a3,d4,g4]@24 ~@25]/6", // F#m Em D G Bm7 D C G5 …
  E: "[~@11 [a3,b3,d4]@11 ~ [e3,g3,a3,d4]@11 ~ [e3,g3,a3,d4]@11 ~ [d3,g3,a3,d4]@12 ~ [f#3,a3,d4]@12, ~@23 c2@24 d2@24 ~]/3", // Bm7 Em7 Dsus4 D
  F: "[g3,a3,b3,d4]@11 ~ [g3,a3,b3,d4]@12, [g2,d3]", G: "[a3,b3,d4]@11 ~ [a3,b3,d4]@11 ~, b2@23 ~",
  H: "[e3,g3,a3,d4]@11 ~ [e3,g3,a3,d4]@11 ~", I: "d3 [f#3,a3,d4]", J: "[d3,g3,a3,b3]!2",
  K: "[e3,g3,b3]@11 ~ [g3,b3,e4]@12", L: "[g3,b3,d4]@12 [g3,b3,d4]@11 ~, c2", M: "[g3,a3,d4]@11 ~ [f#3,a3,d4]@12",
  N: "[a#3,c4,d4,f4]@11 ~ [a#3,c4,d4,f4]@12, [a#2,f3]", O: "[c4,d4,f4]@11 ~ [c4,d4,f4]@11 ~, d3@23 ~",
  P: "[g3,a#3,c4,f4]@11 ~ [g3,a#3,c4,f4]@11 ~", Q: "[f3,a#3,f4] [a3,c4,f4]",
  R: "[f3,a#3,c4,d#4]@12 d#4@6 d4@5 ~, ~ [f3,a#3,c4]", S: "[d3,g3,c4] [d3,g3,a#3], g2@23 ~",
  T: "[g3,a#3,f4]@12 [g3,a#3,d#4]@11 ~, d#2", U: "[a#3,c4,f4]@11 ~ [a3,c4,f4]@12",
  V: "[f3,a#3,c4,d4]@12 d4@6 d4@5 ~, ~ [f3,a#3,c4]", W: "[a#3,d4]@12 [g3,a#3,c4]@11 ~, g4",
  X: "[[f3,a3,f4]@22 ~@2 [g2,b4]@23 ~, ~@11 d4@12 ~, ~@23 g4@23 ~@2]/2", // F G
  Y: "[d4,f#4,a4]@11 ~ d4@6 d4@5 ~, b2@23 ~, ~@12 [f#4,a4]@11 ~", Z: "c4@12 c4@11 ~, [g3,d4,e4]@23 ~",
  AA: "~@6 [f#3,a3,a4]@5 ~, d2@7 ~, [d4,g4] ~, ~ d3@2 ~", AB: "~@3 b4, g2, c5@3 ~, g4 g3, [g3,d4]@3 d3@8 ~",
  AC: "~@12 [b3,e4,g4]@6 [a3,d4,f#4]@5 ~, e2@23 ~, [d4,f#4,a4] ~, ~@6 b2@17 ~", AD: "~ a3, c2, [g3,c4,d4,e4]@11 ~",
  AE: "~@12 f#4@11 ~, [d2,a3,d4,g4]", AF: "[g3,b3,d4]@11 ~ [g3,b3,d4]@11 ~", AG: "[b3,d4,f#4]@10 ~@2 [b3,d4,f#4]@11 ~",
  AH: "[d4,e4,g4]@5 ~ [d4,e4,g4]@5 ~", AI: "[d4,g4]@9 ~@3 [f#4,a4]@11 ~",
  AJ: "[a3,b3,c#4,e4]@11 ~ [a3,b3,c#4,e4]@12, [a2,e3]", AK: "[b3,c#4,e4]@11 ~ [b3,c#4,e4]@11 ~, c#3@23 ~",
  AL: "[f#3,a3,b3,e4]@11 ~ [f#3,a3,b3,d4]@11 ~", AM: "e3 [g#3,b3,e4]", AN: "[e3,a3,c#4]!2",
  AO: "[f#3,a3,c#4]@11 ~ [a3,c#4,f#4]@12", AP: "[a3,d4,f#4]@12 [a3,d4,f#4]@11 ~, d2",
  AQ: "[a3,b3,e4]@11 ~ [g#3,b3,e4]@12", AR: "[f#3,a3,b3,e4]@11 ~ [f#3,a3,b3,e4]@11 ~", AS: "[e3,a3,b3,c#4]!2",
  AT: "[c4,d4,e4,g4]@11 ~ [g4,c5,e5]@12, [c3,g3]", AU: "[d4,e4,g4]@11 ~ [d4,e4,g4]@11 ~, e3@23 ~",
  AV: "[a3,c4,d4,g4]@11 ~ [a3,c4,d4,g4]@11 ~", AW: "[g3,c4,g4] [b3,d4,g4]",
  AX: "[g3,c4,d4,f4]@12 f4@6 e4@5 ~, ~ [g3,c4,d4]", AY: "[e3,a3,d4] [e3,a3,c4], a2@23 ~",
  AZ: "[a3,c4,g4]@12 [a3,c4,f4]@11 ~, f2", BA: "[c4,d4,g4]@11 ~ [b3,d4,g4]@12",
  BB: "[c4,d4,e4,g4]@11 ~ [c4,d4,e4,g4]@12, [c3,g3]", BC: "[g3,c4,d4,e4]@12 e4@6 e4@5 ~, ~ [g3,c4,d4]",
  BD: "[a4,c5,e5]@12 [a3,c4,d4]@11 ~", BE: "[c4@12 b3@11 ~@2 [a3,c#5]@23, [g3,g4]@23 e4@25, ~ a4]/2",
  BF: "[~@8 g#3@6 e4 ~@5 e5@6 ~ [a3,d4,e4,f#4]@24 ~@13 b4@8, ~@2 c#3@25 ~@25 e2@20, ~@2 e5@17 ~@39 e3@13 ~, ~ [e4,b4]@6 [a3,c#4,a4]@6 ~@13 [e4,a4]@6 ~@4]/3", // D E5 A A5
  BG: "[~@23 c#5@6 ~@13 [c#4,f#4,a4]@6 [b3,e4,g#4]@6 ~ [d2,a3,d4,e4,f#4]@25 a3@12 [b3,g#4]@12 ~ [b3,c#4,e4]@11 ~@2 [a3,b3,c#4,e4]@12 [b3,c#4,e4]@12 ~ [b3,c#4,e4]@12 [d2,f#3,a3,b3,e4]@13, ~@3 a3@2 d5@19 ~@144, ~@4 a4@13 c#4@12 ~ [e4,g#4,b4]@12 ~@126, ~@4 e4@7 e3@17 ~@8 c#3@18 ~@51 [a2,e3]@25 c#3@24 ~@14, ~@5 a2@25 f#2@24 ~@26 [e2,e4,a4]@25 ~@63]/7", // F#m E D E C#m7 A C#m7 Bm7 …
  BH: "[[f#3,a3,b3,e4]@12 [e3,a3,b3,e4]@14 ~ [g#3,b3,e4]@13 ~@3 e4@80 ~@21, ~@12 e2@28 e3@85 ~@19, ~@41 a1@84 ~@19, ~@7 [a3,c#4]@14 ~@3]/6", // F#m7 Esus4 E A
})).s("gm_piano").gain(0.46)

// other · tubular bells
const tubular_bells = note("<~@38 A ~@7 B ~@7 B ~@39 C ~@7 C ~@20>".pickRestart({
  A: "d5 ~@23", B: "f4 ~@11", C: "g4 ~@11",
})).s("gm_tubular_bells").gain(0.4).pan(0.4)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@30 A@2 B C ~@89>".pickRestart({
  A: "[~@7 d3, ~ d3@3 e4@2 ~@2, ~@12 d4@17 ~ d4@15 ~@3, ~@18 a3@9 ~@9 g3@11 ~]/2", B: "~@3 g3, ~@2 e3@3 ~@3, ~ d4",
  C: "a3@5 ~ [a3,d4]@6, d4 ~@23", // D5
})).s("gm_electric_guitar_clean").gain(0.29)

// drums · kick
const kick = s("bd").struct(`<
  ~@22 A@15 B A C A@3 C A B A C A@3 C A D A C A@11 C A B A@3 C A@3 C A@3 C A@2 E F A C A@3 C A B A C A@3 C A G A C H A
  ~@17
>`.pickRestart({
  A: "x", B: "x!2 ~@6", C: "x ~@2 x", D: "x ~@2 x ~@3 x", E: "x ~ x!2 ~@4", F: "x!2 ~@5 x", G: "x ~@2 x ~@4",
  H: "x ~@6 x",
})).gain(0.72)

// drums · rim
const rim = s("rim").struct("<~@22 [~ x]!15 ~@21 [~ x]!11 ~@54>").gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@37 A B@7 A B@11 C ~@11 A B@14 D C B@7 A B@11 ~@18>".pickRestart({
  A: "~ x ~@2", B: "~ x", C: "~ x ~ x", D: "~@4 x ~@2 x",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@22 A@3 B A@3 B A@3 B A@3 C D A@2 B A@2 E C F A@2 B D A@2 G D A@2 B D A@2 B A@3 B D A B C D A@6 G D A@5 G H D A@2 B
  A@2 E C F A@2 B D A@2 G D A@2 B ~@17
>`.pickRestart({
  A: "x!4", B: "x!3 ~", C: "x!2", D: "~ x!3", E: "x!2 ~@2", F: "~ x ~ x", G: "x!2 ~ x", H: "x ~@2 x",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@37 A ~@7 A ~@11 B ~@11 A ~@14 C B ~@7 A ~@11 D ~@17>".pickRestart({
  A: "~@4 x!3 ~", B: "~ x", C: "~@3 x", D: "~ x!2 ~",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@25 A ~@3 A ~@3 A ~@3 B ~@3 A ~@2 A@2 ~@3 A ~@11 A ~@3 A ~@2 A ~@20 A ~@2 A@2 ~@3 A ~@25
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x",
})).gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  ~@38 A ~@5 B C D ~@3 A ~@2 E A ~@3 A ~@7 A ~@3 A ~@6 B A ~@5 B F A ~@5 B C D ~@3 A ~@2 B A ~@20
>`.pickRestart({
  A: "x", B: "~ x", C: "~ x ~@2", D: "x!2", E: "~@4 x ~@2 x", F: "~@2 x ~@4 x",
})).gain(0.48)

// drums · ride
const ride = s("rd").struct("<~@47 A@3 B A@2 C B A@3 ~@37 A@3 B A@2 C B A@2 ~@18>".pickRestart({
  A: "x!4", B: "~ x!3", C: "x!2 ~@2",
})).gain(0.48)

// drums · triangle
const triangle = s("triangles:35").struct("<~@22 x ~@7 x ~@92>").gain(4.18)

stack(
  bass, pad_warm, string_ensemble_2, synth_strings_1, overdriven_guitar, overdriven_guitar_soft, piano, tubular_bells,
  electric_guitar_clean, kick, rim, snare, hihat, mid_tom, open_hat, crash, ride, triangle
)

More by Masini