Strudelify

Non abbassare gli occhi

Matia Bazar

KeyG minorTempo116 bpm
0:00/0:00
// Non abbassare gli occhi — Matia Bazar
// 116 bpm, 4/4, key G minor. 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 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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("<~@42 A ~@4 B C@2 D E F G H ~@15 I J ~@4 K L ~@12 M N O ~@3 P Q ~@24>".pickRestart({
  A: "~@4 [gb4,gb5]@4 [e4,e5]@7 ~", B: "[c4,e4,g4]@9 ~@3 [e4,g4,d5]@4, c3@15 ~",
  C: "[[e4,g4,b4]@5 ~ [e4,g4,c5]@5 ~ [e3,b3,e4,g4]@11 ~@9, a3@11 ~@21]/2", D: "~ d5 b4 a4", E: "g4@4 ~ c4 d4 e4",
  F: "[b3,d4,g4]@5 ~ [c4,e4,a4]@5 ~@3 g5 a5", // G Am
  G: "[g5,b5] ~@2 [gb5,a5]@2 ~ e5@2 [b4,e5]@2 ~ [a4,d5]@2 ~ [a4,c5]@2, ~@6 g5 ~@9", H: "[g4,b4] ~", I: "~ e5 d5 c5",
  J: "a4 ~", K: "[g4,g5]@3 [f4,f5]@3 [c4,c5]@2", L: "[eb4,eb5]@6 [d4,d5]@9 ~", M: "g4@3 d5", N: "b4@5 ~ c5@6 d5@4",
  O: "e5@13 ~@3", P: "~ [ab4,ab5] [g4,g5] [eb4,eb5]", Q: "[bb3,bb4]@11 ~@5",
})).s("gm_piano").gain(0.48)

// bass · electric bass finger
const bass = note(`<
  ~@7 A B C D E F G H I J K L M N O P Q R S T U V W@2 X Y Z AA X AB AC AD AE AF AG AH AI AJ AK AL AM AN@2 AO AP AQ AR AS
  AT AU AV AW AT AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO AP BP BQ BR BS BT BU BV AP BP BQ BR BS BT BU BV V
  BW BX BY V BZ CA CB V BW BX BY V BZ CA CB V BW BX BY V BZ CA CB ~@4
>`.pickRestart({
  A: "~@10 db2 ~ db2@4", B: "gb1@12 ~@2 gb1 ~", C: "db2@15 ~", D: "ab1@11 ~ ab1@2 bb1@2", E: "b1@5 db2 eb2 gb2",
  F: "gb1@13 ~ gb1 ~", G: "db2@6 b1 bb1", H: "ab1@13 ~ bb1@2", I: "b1@7 db2", J: "eb2@13 ~ eb2@2", K: "bb1@15 ~",
  L: "b1@13 ~ b1@2", M: "c2@3 eb2@3 ab2@2", N: "gb2@11 ~ gb2@2 ~@2", O: "f2@11 ~ f2@3 ~", P: "eb2@11 ~ eb2@2 ~@2",
  Q: "db2@5 gb1 b1 bb1", R: "ab1@5 eb2 ab2 eb2", S: "gb2@5 ~ gb2 ~", T: "db2@11 ~ db2@2 b1@2",
  U: "bb1@3 f2 bb2 f2 bb1@2", V: "eb2@11 ~ eb2@2 bb1@2", W: "[b1@6 gb2@6 db3@2 b2@17 ~]/2", X: "gb2@11 ~ gb2@2 db2@2",
  Y: "eb2@7 ab1", Z: "bb1@5 b1 db2 eb2", AA: "db2@5 eb2 gb2 ab2", AB: "eb2@11 ~ eb2@2 ab1@2", AC: "bb1@11 ~ bb1@2 b1@2",
  AD: "db2", AE: "a1@10 e1 ~ a1@2 e1@2", AF: "gb1@11 ~ gb1@2 b1@2", AG: "db2@11 ~ db2@2 d2@2", AH: "e2 b1 e1@6",
  AI: "a1@5 e1 a1 e1", AJ: "gb1@6 gb2 b1", AK: "db2@13 ~ db2@2", AL: "e2@6 b1@2 e2 b1 ~ ab1 e1@4", AM: "c2@5 g1 c2 b1",
  AN: "[a1@11 ~ e1@15 ~ e1@2 f1@2]/2", AO: "g1@3 d2 g2 a2 d2@2", AP: "c2@11 ~ c2@2 g1@2", AQ: "a1@11 ~ a1@2 d1@2",
  AR: "e1@13 ~ e1@2", AS: "g1@7 ~", AT: "c2@13 ~ c2@2", AU: "g1@7 c2", AV: "d2@11 ~ d2@2 e2@2",
  AW: "f1@7 ~ f1@2 g1@2 a1@2 b1@2", AX: "g1@6 f2 e2", AY: "d1@7 e1", AZ: "f1", BA: "a1@13 ~ a1@2", BB: "e1@15 ~",
  BC: "f2@13 ~ f2 ~", BD: "gb2@6 d2@9 ~", BE: "c2@5 g1 c2@2", BF: "b1@11 ~ b1@4", BG: "a1@5 e1 a1@2",
  BH: "g1@5 c2 f2 e2", BI: "d2@5 a1 d2@2", BJ: "c2@10 d2@2 c2@3 ~", BK: "g1@6 g2 f2", BL: "e2@3 b2 e3 b2 e2@2",
  BM: "a1@7 e2", BN: "f2@12 f2@3 ~", BO: "f2@11 ~ f2@4", BP: "a1@7 d2", BQ: "e2@5 f1 g1 a1", BR: "g1@5 a1 c2 d2",
  BS: "c2@11 ~ c3@2 g2@2", BT: "a2@11 ~ a2@2 d2@2", BU: "e2@11 ~ e2@2 f2@2", BV: "g2", BW: "c2@7 f2",
  BX: "g2@5 ab1 bb1 c2", BY: "bb1@5 c2 eb2 f2", BZ: "c2@11 ~ c2@2 f1@2", CA: "g1@11 ~ g1@2 ab1@2", CB: "bb1",
})).s("gm_electric_bass_finger").gain(0.56)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@55 A B C D A B C D E F G H I J K L M N O P Q R@2 S T U V S T U V S T U V S T U V W X Y Z W X Y Z W X Y Z W X Y Z W X
  Y Z W X AA AB@4 ~
>`.pickRestart({
  A: "c3@3 ~@5 [g3,c4,e4]@5 ~ [g3,c4,e4]@2, ~ c3@3", B: "g2@3 ~@5 [g3,b3,d4]@5 ~ [g3,b3,d4] ~, ~@4 g2@11 ~",
  C: "[d3,a3]@3 ~ [d3,a3]@3 ~ [a3,c4,f4]@5 ~ [a3,c4,f4]@2, ~ d3", // D5 F
  D: "[f2,c3]@3 ~@5 [a3,c4,f4]@4 [f2,c3]@2 [a3,c4,f4]@2, ~@4 [f2,c3]@7 ~@5", // F5 F F5 F F5
  E: "[a2,e3]@3 ~@5 [a3,c4,e4]@4 [a2,e3]@2 [a3,c4,e4]@2, ~@4 [a2,e3]@7 ~@5", // A5 Am A5 Am A5
  F: "[b2,e3]@3 ~@5 [g3,b3,e4]@4 ~@2 [g3,b3,e4]@2, ~@4 [b2,e3]@7 ~ [b2,e3]@4", // E5 Em E5
  G: "[f2,c3]@3 ~@5 [a3,c4,f4]@5 ~ [a3,c4,f4] ~, ~ [f2,c3]@3", // F5 F F5
  H: "[a2,d3]@3 ~@3 a3 ~ [a3,d4]@4 ~@2 [a3,d4]@2, [a3,d4,gb4]@6 ~@2 gb4@7 ~, ~@4 [a2,d3]@7 ~ [a2,d3]@4", // D5 D D5
  I: "c3@3 ~@5 [g3,c4,e4]@4 ~@2 [g3,c4,e4]@2, ~@4 c3@7 ~ c3@4", // C
  J: "b2@3 ~@5 [g3,b3,e4]@4 b2@2 [g3,b3,e4]@2, ~@4 b2@7 ~@5", // Em
  K: "a2@3 ~@5 [g3,c4,e4]@4 a2@2 [g3,c4,e4]@2, ~@4 a2@7 ~@5", // C
  L: "g2@3 ~@5 [g3,c4]@4 g2@2 [g3,c4] ~, ~@4 g2@7 ~@5, ~@8 e4@7 ~", // C5
  M: "d3@3 ~@5 [a3,c4,f4]@4 d3@2 [a3,c4,f4]@2, ~@4 d3@7 ~@5", // F
  N: "c3@3 ~@5 [a3,c4,f4]@4 c3@2 [a3,c4,f4] ~, ~@4 c3@7 ~@5", // F
  O: "g2@2 ~@6 [g3,b3,d4]@4 g2@2 [g3,b3,d4] ~, ~@4 g2@7 ~@5", // G
  P: "e3@3 ~@3 b3 ~ [b3,e4]@4 e3@2 [b3,e4] ~, ~@4 e3@7 ~@5, ~@8 ab4@7 ~", // E5
  Q: "a2@3 ~@5 [c4,e4,a4]@4 a2@2 [c4,e4] ~, ~@4 a2@7 ~@5", R: "[~ eb4@22 ~@9, [f3,ab3,c4]@23 ~@9]/2",
  S: "[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,c4,e4]@5 ~ [g3,c4,e4]@2", // C5 C
  T: "c4@6 g3 ~ [g3,c4]@5 ~ g3@2, g3@4 ~@4 e4@7 ~, ~@13 c4@2 ~", // C5
  U: "d4@6 b3 ~ [b3,d4]@5 ~ [b3,d4]@2, b3@5 ~@3 g4@6 ~@2", V: "b3@5 ~ b3 ~ [d4,g4]@6 b3@2, ~@8 b3@5 ~@3",
  W: "[bb3,eb4]@3 ~ [bb3,eb4]@3 ~ [bb3,eb4,g4]@5 ~ [bb3,eb4,g4]@2", // Eb5 Eb
  X: "eb4@6 bb3 ~ [bb3,eb4]@5 ~ [bb3,eb4]@2, bb3@2 ~@2 g4@3 ~", // Eb5
  Y: "d4@4 ~@2 d4 ~ [d4,f4]@5 ~ [d4,f4]@2, f4@7 ~ bb4@6 ~@2, g3@3 ~ g3@7 ~@5", // Dm
  Z: "d4@5 ~ d4 ~ [f4,bb4]@6 d4@2, ~@8 d4@5 ~@3", AA: "f4@6 d4 ~ [d4,f4]@5 ~ [d4,f4]@2, d4@5 ~@3 bb4@6 ~@2",
  AB: "[d4@5 ~@2 d4 ~ d4@6 d4@2 ~@2 eb4@31 ~@14, ~@9 [f4,bb4]@8 [eb3,g3]@33 ~@14, ~@9 bb3@16 ~@7]/4", // Bb5 Eb
})).s("gm_acoustic_guitar_steel").gain(0.28)

// chords · synth strings 1
const synth_strings_1 = note(`<
  A@16 B C D E F@2 G H I J K L M N ~ O P Q@2 O P Q@2 R S T@2 ~ S T@2 U V@2 W U X Y W ~@23 Z AA AB@2 Z AA AB@2 Z AA AB@2
  Z AA AB AC AD AE AF@2 AD AE AF@2 AD AE AF@2 AD AE AF@2 AD AE AF@2 AD AE AF AG@2 ~@3
>`.pickRestart({
  A: "[[gb2,gb3,bb3] [db2,f3] ab2 [b2,gb3], db4 [b3,eb4], ~ ab3@2 ~]/4", B: "[eb2,gb3,bb3,eb4]", C: "[bb2,bb3,db4,f4]",
  D: "[b2,gb3,b3,eb4]", E: "[c3,c4,eb4,ab4]", F: "[[gb2,gb4] [f2,f4], [bb3,db4]]/2", G: "[eb2,bb3,db4,gb4]",
  H: "[db2,bb3,db4,gb4]", I: "[ab2,b3,eb4,ab4]", J: "[gb2,b3,eb4,gb4]", K: "[db3,ab3,db4,f4]", L: "[bb2,bb3,d4,f4]",
  M: "[eb3,bb3,eb4,gb4]", N: "[b2,b3,d4,gb4,b4]", O: "[gb3,bb3,db4]", P: "[ab3,db4,f4]@5 ~ [bb3,eb4,gb4]@10",
  Q: "[ab3,db4,f4]", R: "[db4,e4,a4]", S: "[b3,ab4]@5 ~ [db4,a4]@10, e4", T: "[db4 b3, [e4,ab4]]/2", U: "[c3,g3,c4,e4]",
  V: "[[g3,b3,d4]@5 ~ [a3,c4,e4]@6 [e2,g3,b3,e4]@20, a2@3 ~@5]/2", W: "[g2,g3,b3,d4]", X: "[a2,a3,c4,e4]",
  Y: "[e2,g3,b3,e4]", Z: "[c4,g4]", AA: "[d4,b4]@5 ~ [e4,c5]@10", AB: "[d4,b4]", AC: "[d4,b4] ~", AD: "[eb4,bb4]",
  AE: "[f4,d5]@5 ~ [g4,eb5]@10", AF: "[f4,d5]", AG: "[[f4,d5]@9 ~@7]/2",
})).s("gm_synth_strings_1").gain(0.42)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@31 A@4 B@4 C@4 D@4 E@4 F@3 G ~@12 H I@3 J@2 K L M N@2 O@4 P@4 O@4 Q@4 R@2 S@2 T U V@2 W X Y@2 W X Z@2 W X Y@2 W X
  AA@6
>`.pickRestart({
  A: "[[gb2,gb3,bb3]@16 [ab3,f4]@6 [bb3,gb4]@10 bb2@16 ~@4 eb4@4 f4@3 ~ ab4@4, db4@63 ~, ~ eb2 ab3@2, ~@8 f4@5 ~@3, ~@3 db3]/4", // Gb Db Ebm
  B: "[gb4@6 ab4@2 [ab3,f4]@3 gb4@3 ab4@2 [bb2,bb4]@8 [db3,ab4]@8, db4@63 ~, [gb2,gb3,bb3] eb2 ~@2, ~@11 bb3@5 ab3@16]/4", // Db Bb Db5 Gb
  C: "[[a2,db4,a4]@8 [b3,ab4]@3 a4@5 db3@8 [e2,b3]@8, e4, ~ gb2 ab4@2, ~@11 db4@13 ~@8]/4", // A E E5
  D: "[[a2,db4,a4]@8 [b3,ab4]@3 a4@5 [db3,db5]@8 [e2,b3,e5]@8, e4, ~ gb2 ~@2, ~@11 db4@13 ~@8]/4", // A E Db E5
  E: "[g5@6 d6@2 [g3,b5]@3 [a3,c6]@3 [g3,b3]@10 ~@2 d6@2 b5@2 a5@2, c4@7 e6@6 ~@3, g3 ~@2 [g3,d4]]/4", // G Am G G5
  F: "[g5@12 d6@4 b5@6 c6@7 ~ g5 a5 b5@3 a5@2 g5@2 ~ e5@3 d5@2 c5@2 ~, c4@2 [e3,b3], g3@16 a3@17 ~@15]/3", // E5
  G: "[g3,d4,g4,b4]", H: "c3", I: "[~@2 d4 ~ [a2,a3]@4 ~ e5 d5 c5, b2 ~ [g2,g4], ~ g3@3 c5@5 ~@3, ~@3 e4@5 ~@4]/3",
  J: "[d3@4 ~ a4 e5 f5, d4, a4@19 ~@13, ~ c3]/2", K: "[g2,d4,g4,g5]",
  L: "ab4@3 ~@3 b4@2, [e2,e4], ab5@8 e5@7 ~, ~@3 a4@3 ~@2", M: "[a2,a3,c4,a4]",
  N: "[g5@3 f5@3 c5@2 eb5@3 d5@5, [ab3,c4]]/2", // Ab
  O: "[[c3,c4,e4]@16 [d4,b4]@6 [e4,c5]@10 e3@16 ~@4 a4@4 b4@3 ~ d5@4, g4@63 ~, ~ a2 d4@2, ~@8 b4@5 ~@3, ~@3 g3]/4", // C G C
  P: "[c5@6 d5@2 [d4,b4]@3 c5@3 d5@2 [e3,e5]@8 [g3,d5]@8, g4@63 ~, [c3,c4,e4]@15 ~ a2@16 ~@32, ~@11 e4@5 d4@16]/4", // G E G5 C
  Q: "[c5@6 d5@2 [d4,b4]@3 c5@3 d5@2 [e3,e5]@8 [g3,d5]@4 ~@4, g4@7 ~, [c3,c4,e4]@15 ~ a2@16 ~@32, ~@11 e4@5 d4@12 ~@4]/4", // G E G5 C
  R: "[[eb3,bb3,eb4,g4]@4 ~@2 g5 eb5, bb5@5 ab5 ~@2, ~ [c3,bb3], ~@8 [d4,f4]@3 [eb4,g4]@5]/2", // Eb C7 Dm Eb
  S: "[g2@8 ~@4 c5@2 bb4 ab4, [bb3,d4,f4], bb4@3 ~, ~ bb2]/2", T: "bb4 eb5 bb5 c6, [eb3,bb3,eb4,g4]",
  U: "[d4,f4,bb5]@3 ab5@2 g5@2 eb5, [c3,bb3], ~@3 [eb4,g4]@5", V: "[g2 bb2, [bb3,d4,f4,bb4]]/2",
  W: "bb5@3 f5, [eb3,g3,g4]", X: "[bb3,f4,d5]@3 [c4,g4,eb5]@5, c3", Y: "[[g2,g5] [bb2,f5], [bb3,f4]]/2",
  Z: "[g2@4 ~ c5 bb4@2, [bb3,f4], d5@5 ~@3, ~ bb2]/2", // Bb5
  AA: "[g2@16 ~@4 c5@4 ~ bb4@9 [eb2,bb3,eb4,bb4]@53 ~@9, [bb3,f4]@17 ~@31, d5@5 ~@19, ~@16 bb2@17 ~@63]/6", // Eb5 Bb5
})).s("gm_string_ensemble_1").gain(0.28)

// chords · rock organ
const rock_organ = note("<~@54 A B@4 C D@2 E F G H I J@2 K@2 L@2 M N O P@2 ~@44>".pickRestart({
  A: "~@13 [b2,c3] [d3,e3,f3] [g3,a3,b3]", // Cmaj7 Dm G
  B: "[[c5,g5]@8 b4@8 ~@8 c5@4 a5 c6 g5 f5, g4@4 [a4,f5]@3 ~, [c4,d4] ~@15 d5@32 ~@8 ab5 ~@3 gb5 ~@3]/4", // C5 Dm Csus2
  C: "[c5,e5,g5]", D: "[[g4,b4]@16 [a4,f5]@12 ~ [a4,b4] [c4,d4,e4,f4,g4] ~, d5@29 ~@3]/2",
  E: "~@4 [c5,f5,a5]!2 ~ f4 [c5,f5,a5]!2 ~ f4 [c5,f5]@2 a5 [a4,b4], ~@12 c6 ~@3", F: "[e5,a5,c6], c5 ~@15",
  G: "[e5,g5,b5]", H: "[c5,f5,a5]", I: "[d5,gb5,a5]@14 [g4,a4,b4,f5] ~", J: "[c5 b4, [g4,e5]]/2",
  K: "[[a4,c5] [g4,b4], e5]/2", L: "[d5 c5, [a4,f5]]/2", M: "[b4,d5,g5]", N: "[b4,e5,ab5]", O: "[c5,e5,a5]",
  P: "[f4,c5]/2", // F5
})).s("gm_rock_organ").gain(0.16)

// chords · rock organ · soft notes
const rock_organ_soft = note("<~@54 A ~@6 B C ~@3 D ~@9 E@2 ~@44>".pickRestart({
  A: "~@13 a2 ~@2", B: "~@13 c5 b3 a3", C: "~@14 [e4,f4] g4", D: "~@13 e5 c5 f4", E: "ab4/2",
})).s("gm_rock_organ").gain(0.1)

// chords · melodic tom · Em F
const melodic_tom = note(`<
  ~@30
  [~@6 a2 ~ a2 ~ g2 [e2,g2] e2 ~@3]
  ~@45
  [c3 ~ c3 ~@3 b2 ~ b2 ~@3 a2 ~ a2 ~]
  [f2 ~@5 [f2,a2] ~ [f2,a2] ~ [f2,a2] ~ [f2,a2] ~ [f2,a2] ~]
  ~@15
  [~@10 [c2,a2] ~ [c2,a2] ~ [c2,a2] ~]
  ~@28
>`).s("gm_melodic_tom").gain(0.48)

// chords · melodic tom · soft notes · F
const melodic_tom_soft = note("<~@77 [a2 ~ [f2,a2] ~ [f2,a2] ~@11] ~@44>").s("gm_melodic_tom").gain(0.24)

// chords · distortion guitar
const distortion_guitar = note("<~@93 A@2 B C D@2 E C F ~@7 A@2 B C G@2 B C H@5>".pickRestart({
  A: "[~ [bb3,eb4], ~@15 eb3@17]/2", B: "d4@3 eb4@5", C: "[d3,g3]",
  D: "[~@2 [f3,bb3]@3 ~@3 [f3,bb3]@7 ~ [bb3,eb4]@16, ~@15 eb3@17]/2", E: "d4@6 ab4@4 g4@4 eb4 ~",
  F: "~@2 [f3,bb3]@3 ~@3 [f3,bb3]@8", G: "[~ bb3@14 ~ [bb3,eb4]@16, f3@15 eb3@17]/2",
  H: "[~ bb3@16 ~ eb3@52 ~@10, f3@17 bb2@52 ~@11]/5",
})).s("gm_distortion_guitar").gain(0.4).pan(0.6)

// chords · pan flute
const pan_flute = note(`<
  A B C D A B C D A B C D A B C D A B E F G H I J K L M N O P ~@3 Q R ~@2 S T ~@83
>`.pickRestart({
  A: "~@2 gb4 ~ gb4 ~ gb4 ab4", B: "f4 ~ f4 ~ f4@2 ~@2 f4@2 ~@2 f4@2 gb4 ~", C: "~@2 ab4 ~ ab4 ~ ab4 bb4",
  D: "gb4 ~ gb4 ~ gb4@2 ~@2 gb4@2 ~@2 ab4@2 gb4@2", E: "~@2 gb4 ~ gb4 ~ gb4 eb4",
  F: "ab4 ~ ab4 ~ ab4@2 ~@2 ab4@2 ~@2 ab4@2 bb4@2", G: "~@4 [gb4,bb4]@2 ~@2 [gb4,bb4]@2 ~@2 [gb4,bb4] ~ [gb4,bb4]@2",
  H: "~@2 [f4,bb4] ~ [f4,bb4]@2 ~@2 [f4,bb4]@2 ~@2 bb4@2 [gb4,bb4] ~, ~@12 f4 ~@3", // Bb5 Gb
  I: "~@4 [gb4,bb4]@2 ~@2 [eb4,gb4,bb4]@2 ~@2 [eb4,gb4,bb4] ~ [eb4,gb4,bb4]@2, ~@4 eb4 ~@11", // Gb Ebm
  J: "~@2 [db4,gb4,bb4] ~ [db4,gb4,bb4]@2 ~@2 [db4,gb4,bb4]@2 ~@2 [gb4,bb4]@2 [db4,gb4,bb4] ~, ~@12 db4 ~@3", // Gb
  K: "~@4 [eb4,ab4,b4]@2 ~@2 [eb4,ab4,b4]@3 ~ [eb4,ab4,b4] ~ [eb4,ab4,b4]@2", // Abm
  L: "~@2 [eb4,gb4,b4] ~ [eb4,gb4,b4]@2 ~@2 [eb4,gb4,b4]@3 ~ [gb4,b4] ~ [eb4,gb4,b4] ~, ~@6 eb4 ~", // B B5 B
  M: "~@4 [db4,f4,ab4]@2 ~@2 [db4,f4,ab4]@2 ~@2 [db4,f4,ab4] ~ [d4,f4,bb4]@2", // Db Bb
  N: "~@2 [d4,f4,bb4] ~ [d4,f4,bb4]@2 ~@2 [d4,f4,bb4]@3 ~ [d4,f4,bb4]@3 ~", // Bb
  O: "~@4 [eb4,gb4,bb4]@2 ~@2 [eb4,gb4,bb4]@2 ~@2 [eb4,gb4,bb4] ~ [eb4,gb4,bb4] ~", P: "[d4,gb4,b4]",
  Q: "[f4,bb4]@2 ~@2 [f4,bb4]@2 ~@2 [f4,bb4]@3 ~ [f4,bb4]@2 ~@2", // Bb5
  R: "[f4,bb4]@3 ~ [f4,bb4] ~ [f4,bb4]@2 ~@2 [f4,bb4] ~ [f4,ab4]@2 ~@2", // Bb5 Fm
  S: "[f4,bb4]@2 ~@2 [f4,bb4]@2 ~@2 [f4,bb4]@2 ~@2 [f4,bb4]@3 ~", // Bb5
  T: "[f4,bb4]@3 ~ [f4,ab4] ~ [f4,ab4]@2 ~@2 [f4,ab4] ~ [f4,ab4]@2 ~@2", // Bb5 Fm
})).s("gm_pan_flute").gain(0.25)

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@27 A ~@2 B ~@11 C ~@3 D ~@3 E ~@3 C ~@7 F ~@3 A ~@10 G ~@7 A ~@3 C ~@3 H ~@22 I J ~@4
>`.pickRestart({
  A: "~@3 x", B: "~@10 x!2 ~@4", C: "~@3 x ~ x!2 ~", D: "~@6 x ~@4 x!2 ~@3", E: "~@3 x ~@2 x ~", F: "~@7 x",
  G: "~@4 x!2 ~ x", H: "~@6 x!2", I: "~ x", J: "~@11 x ~ x ~@2",
})).gain(0.53)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@77 [x!4 ~@4] ~@15 [~@5 x ~@2] ~@28>").gain(0.3)

// … 57 more lines

More by Matia Bazar