Strudelify

La Solitudine

Laura Pausini

KeyD♭ majorTempo130 bpm
0:00/0:00
// La Solitudine — Pausini laura
// 130 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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 · "A.PIANO 1"
const piano = note(`<
  A B C D E F G H A B C D E F G H A B C D E F G I J@2 K@2 L M N@2 O@2 P@2 L M Q@2 R@4 S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z@2
  AA@2 AB AC AD AE AF AG AH AI AJ AK AD AE AF AG AH AI AJ AL AM AN AO AP AM AN AO AQ AD AE AF AR AH AS AJ AK AD AT AF AU
  AH AV AJ AW AD AE AF AX@4 AY@4 AZ@4 BA@8
>`.pickRestart({
  A: "bb4@6 bb4@5 ~ bb4@4", B: "c5@15 ~", C: "a4@3 bb4@3 d4@2", D: "a4@5 ~ bb4@5 ~ d4@4", E: "f4@5 ~ f4@5 ~ f4@4",
  F: "g4@15 ~", G: "c5@6 d5@5 ~ g4@4", H: "c5@6 d5@5 ~ f4@4", I: "c5@3 ~ d5@2 eb5@4 g4@6",
  J: "[f5@4 bb4@2 f5@4 bb4@4 f5@6 bb4@2 c5@4 f5@5 ~]/2", K: "[f5@2 bb4 f5@2 bb4@2 f5@3 d5 eb5@2 f5@3]/2",
  L: "f5@4 bb4@2 f5@4 bb4@4 f5 ~", M: "f5@3 ~ bb4@2 c5@4 d5@6", N: "[bb4@2 eb5 bb4@2 eb5@2 bb4@3 d5 eb5@2 f5@3]/2",
  O: "[bb4@5 ~ d5@4 bb4@4 c5@6 bb4@2 c5@4 f5@5 ~]/2", P: "[bb4@2 bb4 f5@2 bb4@2 c5@3 d5 eb5@2 f5@3]/2",
  Q: "[eb5@2 d5 eb5@2 d5@2 eb5@3 d5 eb5@2 f5@3]/2", R: "[f5@2 f4 ~ bb4@2 f5@4 bb4@3 ~ c5@5 ~ d5@2 eb5@4 f5@5 ~]/2",
  S: "[f5@2 f4 ~ bb4@2 f5@4 bb4@3 ~ c5@5 ~ d5@2 eb5@4 f5@6]/2",
  T: "[f5@2 f4 ~ bb4@2 f5@4 bb4@3 ~@3 [ab3,bb4,db5,gb5]@8 ~@8, ~@7 ab2@5 ~@4, ~@15 [eb3,ab4]@9 ~@8]/2", // Gb Ab5
  U: "[[db3,ab3,db4,f4]@29 ~@3]/2", V: "[[bb2,ab3,db4,f4]@15 ~]/2", W: "[[bb3,db4]@14 bb3 db4, [gb2,ab3,f4]@31 ~]/2",
  X: "[[bb2,ab3,bb3,db4,eb4]@31 ~]/2", Y: "[[db3,ab3,db4]@28 f4@3 ~, f4@27 ~@5]/2",
  Z: "[ab3@28 ab3@3 ~, [bb2,db4,f4]@15 ~]/2", AA: "[[gb2,ab3,bb3,db4,f4]@31 ~]/2", AB: "[ab2,gb3,bb3,db4,eb4]@15 ~",
  AC: "[ab2,ab3,db4,eb4,gb4]@15 ~", AD: "[db3,ab3,db4,f4]@15 ~", AE: "[c3,ab3,c4,eb4,f4]@15 ~",
  AF: "[bb2,ab3,db4,f4]@15 ~", AG: "[ab2,ab3,db4,eb4,f4]@15 ~", AH: "[gb2,bb3,db4,f4]@15 ~",
  AI: "[ab3,db4,eb4]@11 ~ [db4,eb4,ab4]@4, f2@15 ~", AJ: "[eb2,gb3,bb3,db4,gb4]@15 ~", AK: "[ab2,db4,eb4,gb4,bb4]",
  AL: "[ab2,ab3,db4,eb4,ab4]", AM: "[gb2,gb3,bb3,db4]@15 ~", AN: "[f2,ab3,bb3,eb4]@15 ~", AO: "[eb2,gb3,bb3,db4]",
  AP: "[f2,ab3,eb4,ab4]@9 ~ [f2,ab3,db4,ab4]@6", AQ: "[ab2,ab3,bb3,db4,eb4,gb4]@15 ~",
  AR: "[ab3,db4,eb4,f4]@7 ~ [ab3,eb4,f4]@8, ab2@15 ~", AS: "[ab3,db4,eb4]@7 ~ [db4,eb4,ab4]@8, f2@15 ~",
  AT: "[ab3,c4,eb4,f4]@7 ~ [ab3,c4,eb4,f4]@7 ~, c3@15 ~", AU: "[ab3,db4,eb4,f4]@7 ~ [ab3,db4,eb4]@8, ab2@15 ~",
  AV: "[ab3,db4,eb4]@7 ~ [db4,eb4,ab4]@7 ~, f2@15 ~", AW: "[ab3,db4,eb4,gb4]@15 ~, ab2 ~@15",
  AX: "[[ab3,db4,eb4,f4]@7 ~ [ab3,eb4,f4]@8 [gb2,bb3,db4,f4]@15 ~ [ab3,db4,eb4]@7 ~ [db4,eb4,ab4]@8 [eb2,gb3,bb3,db4,gb4]@15 ~, ab2, ~@32 f2@15 ~@17]/4", // Db Fm7 Gbmaj7 Absus4 Dbsus2 Ebm7
  AY: "[[db4,eb4,gb4,bb4]@16 [db3,ab3,db4,f4]@15 ~ [ab3,c4,eb4,f4]@7 ~ [ab3,c4,eb4,f4]@7 ~ [bb2,ab3,db4,f4]@15 ~, ab2, ~@32 c3@15 ~@17]/4", // Ebm7 Db Fm7 Bbm7
  AZ: "[[ab3,db4,eb4,f4]@7 ~ [ab3,db4,eb4]@8 [gb2,bb3,db4,f4]@15 ~ [ab3,db4,eb4]@7 ~ [db4,eb4,ab4]@7 ~ [eb2,gb3,bb3,db4,gb4]@15 ~, ab2, ~@32 f2@15 ~@17]/4", // Db Absus4 Gbmaj7 Absus4 Dbsus2 Ebm7
  BA: "[[ab3,db4,eb4,ab4]@16 [ab4,ab5]@4 [db3,db5] ~ gb3@2 ~@2 [ab4,ab5]@5 ~ [db4,ab4,ab5]@4 [db4,db5]@2 [db4,db5]@9 ~ [eb3,db4,ab4,ab5]@6 [gb4,gb5]@6 [f4,f5]@3 ~ [gb4,gb5]@5 ~ [f4,f5]@4 [db4,db5]@6 [db3,f3]@6 f3@2 db3@2 [db3,gb3,bb3]@5 ~ [db3,f3,ab3]@30 ~@2, ab2, ~@16 gb2@15 ~@97, ~@10 db4 [db4,db5]@2 ~@51, ~@24 ab3@7 ~ [ab3,bb3,f4]@16 ~@6 bb3@9 ~ [gb3,ab3,bb3]@15 ~ [ab3,db4,db5]@9 ~@39]/8", // Absus4 Ab Db Ab Db5 Db Dbsus2 Gb …
})).s("gm_piano").gain(0.25)

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

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@40 A B ~ C D E F@2 G@2 B H I@4 J@2 B H G@2 K@2 L M H M N O K@2 E M P Q@4 R S T@2 U S T@2 V W@2 X@2 Y@2 Z@2 W@2 AA@2
  Y@2 AB@2 W@2 X@2 Y@2 Z@2 W@2 AA@2 Y@2 AC@5 ~@4
>`.pickRestart({
  A: "d5", B: "c5", C: "~@15 gb5", D: "g5", E: "f5", F: "[bb5@3 ab5]/2", G: "f5/2", H: "db5", I: "[~@32 c5@31 ~, f5]/4",
  J: "db5/2", K: "gb5/2", L: "~ db5, f5", M: "eb5", N: "bb5, a5 ~@15", O: "ab5", P: "db5@7 eb5",
  Q: "[~ ab5 bb5@2 ab5@2 gb5@2, db5, ~@16 a5 ~@47]/4", R: "[eb5,ab5]", S: "[bb4,db5,bb5]",
  T: "[eb5 db6 [bb4,gb5]@2, [ab4,ab5] ~, ~ db5@3]/2", U: "eb5@5 db5@3, [ab4,ab5]", V: "[gb5,bb5,db6,gb6]",
  W: "[f6@5 gb6 f6 ~ c6@8, ab5, db6 ~, ~@7 eb6@9]/2", X: "[bb5@16 ab5@15 ~, [f5,db6]@31 ~]/2",
  Y: "[[f5,bb5] [f5,ab5], db6]/2", Z: "[[db5,bb5]@2 ~ db6, gb5, ~ [ab5,bb5]]/2", AA: "[bb5 [eb5,ab5], [f5,db6]@31 ~]/2",
  AB: "[bb5 [bb5,eb6], [gb5,db6]]/2", AC: "[bb5 [bb5,eb6] ~@3, db6@13 ~@3, gb5@2 ~@3]/5",
})).s("gm_percussive_organ").gain(0.25)

// chords · percussive organ · "ORGAN 2" · soft notes
const percussive_organ_soft = note("<~@40 A@4 B C D@2 ~@13 E ~@2 F@4 G@4 F@4 H I H I ~@47>".pickRestart({
  A: "[~@16 d5@8 d5@3 c5@3 bb4@2, f5@31 ~, ~@48 eb5 ~@15]/4", B: "d5", C: "c5", D: "[db5,gb5]/2", E: "bb5 ~",
  F: "ab4/4", G: "[gb4@2 ~ db6 gb4@4, db5, ~ ab4 ~@2]/4", H: "gb4", I: "ab4",
})).s("gm_percussive_organ").gain(0.15)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 C@2 G@2 E@2 B@2 C@2 D@2 H@2 I@2 J@2 K@2 L@2 I@2 M@2 K@2 H@2 I@2 J@2 N@2 O@2 P@2 Q@2 R@2 O@2
  S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 AA@2 AB@2 Y@2 X@2 AC AD X@2 AC AE AF@2 AG@2 X@2 Y@2 AH@2 AA@2 X@2 Y@2 AF@2 AG@2 X@2
  Y@2 AH@2 AA@2 X@2 Y@2 AI@2 AJ@2 AK@3
>`.pickRestart({
  A: "[f3,bb3,c4,d4]/2", B: "[a3@3 g3, [bb3,d4,f4]]/2", C: "[d4 c4, [eb3,bb3,g4]]/2", D: "[f3,bb3,c4,eb4,g4]/2",
  E: "[bb3,c4,d4,f4]/2", F: "[a3,bb3,d4,f4]/2", G: "[g3,a3,bb3,c4,d4,f4]/2",
  H: "[[bb3,f4]@15 ~ a3@16, [c4,d4], ~@15 f4@16 ~]/2", I: "[[g3,d4] [f3,d4], [bb3,f4]]/2",
  J: "[[eb3,d4,g4]@2 ~ f3, bb3, ~ [c4,f4]]/2", K: "[[g3,f4] [f3,g4], [bb3,eb4]]/2",
  L: "[[bb3,c4]@15 ~ a3@16, [d4,f4], ~@15 c4@16 ~]/2", M: "[[eb3,g3,d4]@2 ~ f3, bb3, ~ [c4,f4]]/2",
  N: "[ab3,bb3,db4,gb4]/2", O: "[ab3,db4,eb4,f4]/2", P: "[ab3,c4,db4,f4]/2", Q: "[ab3,bb3,db4,f4]/2",
  R: "[ab3,bb3,c4,db4,eb4,f4]/2", S: "[c4@3 bb3, [ab3,db4,f4]]/2", T: "[f4@3 eb4, [gb3,bb3,db4]]/2",
  U: "[ab3,bb3,db4,eb4,gb4]/2", V: "[[ab3,db4]@15 ~ c4@16, [eb4,f4], ~@15 ab3@16 ~]/2",
  W: "[[ab3,bb3,f4] [ab3,eb4,f4], db4]/2", X: "[[gb3,f4,bb4]@2 ~ ab3, db4, ~ [eb4,ab4]]/2",
  Y: "[[bb3,ab4] [ab3,bb4], [db4,gb4]]/2", Z: "[[eb4,db5]@15 ~ c5@16, [f4,ab4], ~@15 eb4@16 ~]/2",
  AA: "[[f4,bb4] [ab3,f4], [db4,ab4]]/2", AB: "[[gb3,bb3,f4]@2 ~ ab3, db4, ~ [eb4,ab4]]/2", AC: "[bb3,db4,eb4,gb4]",
  AD: "eb4@8 db4@7 ~, [ab3,f4,ab4]", AE: "[bb3,db4,gb4,bb4]", AF: "[[db4,ab4]@15 ~ c4@16, [eb4,f4], ~@15 ab4@16 ~]/2",
  AG: "[[bb3,f4] [ab3,eb4,f4], [db4,ab4]]/2", AH: "[[db4,eb4]@15 ~ c4@16, [f4,ab4], ~@15 eb4@16 ~]/2",
  AI: "[[gb3,bb3,f4]@15 ~ [f3,ab3]@16, db4, ~@15 bb3@16 ~]/2", AJ: "[[eb3,db4] [db4,eb4], [gb3,bb3]]/2",
  AK: "[[f3,ab3]@5 [gb3,bb3]@3 [f3,ab3]@16, db4]/3", // Fm Gb Fm
})).s("gm_pad_warm").gain(0.32)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@48 A B A B C B D E A F A B A B D G H ~ H I J K L@2 H ~ H I J K L@2 ~@8 H M H M J K L@2 H M H M J K L@2 H M H M J K
  L@2 H M H M J K L@2 ~@7
>`.pickRestart({
  A: "~@6 db4 ~@5 db4 ~@3", B: "~@4 db4 ~@5 db4 ~@5", C: "~@6 f4 ~@5 db4 ~@3", D: "~@6 eb4 ~@5 eb4 ~@3",
  E: "~@4 eb4 ~@5 db4@6, ~@5 eb4@2 ~", F: "~@2 ab3 ~ db4 ~@5 db4 ~@5", G: "~@4 eb4 ~@5 eb4 ~@5",
  H: "db4@4 ~@2 db4 ~@3 db4 ~@3 eb4 ~", I: "~@8 ab4@4 ab3@3 ~", J: "db4@4 ~@2 db4 ~@3 db4 ~@5",
  K: "ab3@6 db4 ~@3 ab3 ~@5", L: "gb3@6 db4 ~@3 db4 ~@5", M: "~@4 [f3,f4] ~ [gb3,gb4]@2 [ab3,ab4]@8",
})).s("gm_electric_guitar_muted").gain(0.4).pan(0.8)

// other · pad new age · "FANTASIA"
const pad_new_age = note("<~@24 A ~ A ~ A ~ A B A ~ A C A ~ A B ~@87>".pickRestart({
  A: "~@10 bb5 ~@3 c6 ~", B: "~@8 f6 ~@7", C: "~@8 bb5 ~@7",
})).s("gm_pad_new_age").gain(0.48)

// chords · orchestral harp · "HARP"
const orchestral_harp = note("<~ A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~@17 A ~ A ~ B ~@81>".pickRestart({
  A: "~@4 [bb4,f5] ~@5 [bb4,f5] ~@5", B: "~@4 [bb4,g5] ~@5 [bb4,g5] ~@5",
})).s("gm_orchestral_harp").gain(0.24).pan(0.8)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@82 A@6 B@8 C@8 B@8 D@3 E@7 F@5>".pickRestart({
  A: "[~@15 eb4@10 db4@6 bb4@16 eb5@5 ~ ab4@10 gb4@16 db5@17, ~@52 db5@3 ~@41]/6",
  B: "[f5@15 eb5@16 db5@32 bb5@16 ab5@16 gb5@16 ab5@16 ~]/8",
  C: "[f5@15 eb5@16 db5@14 eb5@2 f5@8 ab5@8 bb5@16 ab5@16 gb5@16 ab5@16 ~]/8", D: "[f5@15 eb5@16 db5@14 eb5@2 f5]/3",
  E: "[~@7 ab5@8 bb5@16 ab5@16 gb5@16 db5@48 ~]/7", F: "[ab5@5 gb5@7 f5@3 gb5@6 ~ f5@3 db5@6 db5@48 ~]/5",
})).s("gm_string_ensemble_2").gain(0.4).pan(0.3)

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

// drums · snare
const snare = s("sd").struct("<[~ x]!95 [~@4 x!2 ~@2] [~ x]!15 [~ x ~@2 x ~@3] [~ x]!8 ~@7>").gain(0.72)

// drums · hihat
const hihat = s("hh").struct(`<
  A B@2 C B@4 A B@7 A B@7 D E@7 D E@2 F E@4 A G B@6 D E@6 F E@7 H D E@6 I E@3 J E@3 K D E@2 L D E D M N E@6 O P E@6 H D
  Q E F E@3 H D E@2 J R E@2 S ~@7
>`.pickRestart({
  A: "~ x!2 ~ x ~ x ~", B: "x!3 ~ x ~ x ~", C: "x!4", D: "~ x!7", E: "x!8", F: "x!7 ~", G: "~ x!3", H: "x!3 ~",
  I: "x ~ x ~ x ~@2 x", J: "x!4 ~@2 x!2", K: "x!4 ~@4", L: "x ~ x!2 ~ x ~@2", M: "~ x!3 ~@4", N: "~ x!3 ~ x!3",
  O: "x!3 ~ x ~@3", P: "~@2 x!6", Q: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", R: "x ~ x!6", S: "x!4 ~ x ~@2",
})).gain(0.4)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<A@3 B A C A@13 D A@4 ~@16 A@8 ~@79>".pickRestart({
  A: "~@3 x ~ x ~ x", B: "~@7 x", C: "~@5 x ~ x", D: "~@3 x ~@3 x",
})).gain(0.24)

// drums · low tom
const low_tom = s("lt").struct("<~@87 [~@7 x] ~@15 [~ x ~@6] ~@23>").gain(0.48)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~ A ~ A ~ A ~ A ~ A ~ A ~@7 C ~@7 D ~@7 D ~@3
  E ~@3 E ~@3 E ~@4 E ~@6 F ~@7 D ~@3 C ~@3 D ~@3 E G ~@2 H ~@7
>`.pickRestart({
  A: "~@3 x", B: "~@6 x!2", C: "~@7 x", D: "~@3 x ~@4", E: "~ x", F: "~@3 x ~@2 x ~", G: "~ x ~@6", H: "~@2 x!2",
})).gain(0.24)

// drums · high tom
const high_tom = s("ht").struct("<~@83 [~ x ~@6] ~@3 [~@5 x ~@2] ~@39>").gain(0.56)

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

// drums · crash · soft notes
const crash_soft = s("cr").struct("<A ~@2 B ~@12 A ~@7 A ~@7 A ~@87 A ~ C D E A ~>".pickRestart({
  A: "x", B: "~@5 x ~@2", C: "~@3 x", D: "x ~@2 x ~ x ~@2", E: "x ~@4 x ~@2",
})).gain(0.24)

// drums · ride
const ride = s("rd").struct("<~@3 A ~@3 B C ~@10 D ~@20 C E F G ~@78 H I J C ~>".pickRestart({
  A: "~ x ~ x ~ x ~@2", B: "~@14 x!2", C: "x", D: "~@5 x ~@2", E: "x!2 ~@6", F: "~@10 x!3 ~@3", G: "~ x ~@6",
  H: "x ~@2 x ~@2 x ~", I: "x ~@2 x ~ x ~@2", J: "x ~@4 x ~@2",
})).gain(0.4)
// … 21 more lines

More by Laura Pausini