Strudelify
Ti vorrei cover art

Collezione

Ti vorrei

Masini

KeyD minorTempo115 bpm
0:00/0:00
// Ti vorrei — Masini
// 115 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 117 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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 · string ensemble 1 · "tappeto"
const string_ensemble_1 = note(`<
  ~@10 A B@2 ~ C ~ D E@4 F G H I J@2 K@2 F L M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 V@2 W@2 X Y@2 Z@2 AA AB AC AD AE@2 AF@2
  AA AG AH@2 AI@2 AJ@2 AA AB AK@2 AL@2 AM@2 AN@2 AO@2 AP@2 AQ@2 AR AS@2 AT@2 AU AV AW@2 AX AY@7 AX AY@7 ~@2
>`.pickRestart({
  A: "[a3,g4]@15 ~", B: "[a3@7 ~]/2", C: "[bb3,d4]@13 ~@3", D: "[c4,f4]@7 ~ [e4,g4]@8",
  E: "[f4@16 g4@14 ~ [f4,a4]@31 ~@2, [a3,c4]@15 ~@17]/4", F: "[bb3,d4,f4]@15 ~", G: "[bb3,d4]@15 ~", H: "f4",
  I: "g4@15 ~", J: "[a3,c4]/2", K: "[[a3,d4]@31 ~]/2", L: "[bb3,d4,g4]", M: "[f4@8 ~@3 f4@5, c4]/2",
  N: "[[a3,c4,f4]@31 ~]/2", O: "[[a3,d4,f4]@31 ~]/2", P: "[[bb3,d4,f4]@15 ~ bb3@14 ~@2, ~@15 d4@15 ~@2]/2",
  Q: "[g4@7 f4@7 ~ [a3,f4]@16 ~, c4@15 ~@17]/2", R: "[[eb4,g4,bb4]@31 ~]/2", S: "[[c4,eb4,g4,bb4]@15 ~]/2",
  T: "[[ab3,c4,eb4,g4]@14 ~ [c4,f4,ab4]@16 ~]/2", U: "[[c4,f4,a4]@31 ~]/2", V: "[c5@15 ~ d5@16, [d4,f4,a4]]/2",
  W: "[f4 g4, [d4,bb4,d5]@31 ~]/2", X: "[c4,d4] ~@3 c4@12, [f4,g4,c5]", Y: "[g4@8 a4@7 ~, [g3,b3,d4]@29 ~@3]/2",
  Z: "[[g4,b4]@31 ~]/2", AA: "[c4,e4,g4]@15 ~", AB: "[c4,e4]@15 ~", AC: "g4", AD: "a4@15 ~", AE: "[b3,d4]/2",
  AF: "[[b3,e4]@31 ~]/2", AG: "[c4,e4,a4]", AH: "[g4@8 ~@3 g4@5, d4]/2", AI: "[[b3,d4,g4]@31 ~]/2",
  AJ: "[[b3,e4,g4]@31 ~]/2", AK: "[a4@8 g4@7 [b3,g4]@16 ~, d4@15 ~@17]/2", AL: "[[f4,a4,c5]@31 ~]/2",
  AM: "[[d4,f4,a4,c5]@15 ~]/2", AN: "[[bb3,d4,f4,a4]@14 ~ [d4,g4,bb4]@16 ~]/2", AO: "[[d4,g4,b4]@31 ~]/2",
  AP: "[d5@15 ~ e5@16, [e4,g4,b4]]/2", AQ: "[g4 a4, [e4,c5,e5]@31 ~]/2", AR: "[d4,e4] ~@3 d4@12, [g4,a4,d5]",
  AS: "[[a3,db4,e4], a4 ~@31]/2", AT: "[[a3,db4,gb4,a4]@31 ~]/2", AU: "[a3,d4,gb4,a4]", AV: "[b3,d4,gb4]",
  AW: "[a4@3 b4, [b3,e4]]/2", AX: "[a3,db4,e4,a4]@15 ~",
  AY: "[[a3,db4,gb4]@15 [a3,d4,gb4]@16 [b3,d4,gb4]@6 ~ [b3,e4]@9 ~ [a3,db4]@15 ~ gb4@16 a3@15 b3@6 [b3,e4,a4]@10 ~, a4@31 ~@7 a4@63 ~@11, ~@47 e4@16 [a3,db4]@16 ~ [d4,gb4]@22 ~@10, ~@95 c4 ~@16]/7", // Gbm D Bm E5 A Esus4 A D
})).s("gm_string_ensemble_1").gain(0.25)

// chords · string ensemble 1 · "tappeto" · soft notes
const string_ensemble_1_soft = note(`<
  ~ A@8 B@2 C@2 D E@2 F ~ G@3 ~ H@3 I@4 ~@2 J@2 ~@5 K L@2 ~@14 M@3 ~ N@3 O@4 ~@2 P@2 ~@5 Q R@2 ~@39
>`.pickRestart({
  A: "[f4@16 ~ g4@31 ~@15 c4@16 d4@16 ~@16 g4@15 ~@2, [a3,c4]@63 a3@48 ~@17, ~@48 f4@79 ~, ~@95 c4@31 ~@2]/8", // Am
  B: "[[a3,f4]@15 ~@17, c4@15 ~]/2", C: "[[c4,f4]@7 ~]/2", D: "[bb3,d4,f4]@15 ~",
  E: "[g3@6 ~@2 g3@7 ~, ~@15 [c4,f4]@16 ~]/2", F: "a3@7 ~ c4@7 ~", G: "[~@5 c4@10 ~]/3",
  H: "[g4@15 ~ g3@30 ~@2, ~@15 c4@31 ~@2]/3", I: "[f4@31 ~]/2", J: "[~@8 g4@3 ~@5, g3]/2", K: "g4@15 ~, f4 ~@15",
  L: "[~@8 g3@7 c4@16 ~]/2", M: "[~@5 d4@10 ~]/3", N: "[a4@15 ~ a3@30 ~@2, ~@15 d4@31 ~@2]/3", O: "[g4@31 ~]/2",
  P: "[~@8 a4@3 ~@5, a3]/2", Q: "a4@15 ~, g4 ~@15", R: "[~@8 a3@7 d4@16 ~]/2",
})).s("gm_string_ensemble_1").gain(0.12)

// bass · fretless bass · "bass"
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q R K L S T U V I J K L M N O W X Y@3 Z AA@8 AB@2 AC@8 AD AE AF@8 AG@5 AH@3 AI AJ@8
  AK@4 AL@5 AM@8 AN AO AP AQ@6 AR@5 AS ~@2
>`.pickRestart({
  A: "f1 ~ f1@2 ~@2 f1@2 ~@2 f1 ~@3 f1 ~", B: "f1@2 f1@3 ~ f1@3 ~ f1 ~ a1@2 c2@2",
  C: "d2 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2 ~", D: "d2 ~ d2@2 ~@2 d2@3 ~ d2@2 ~@2 d2@2",
  E: "bb1 ~ bb1@3 ~ bb1@3 ~ bb1@2 bb1 ~ a1@2", F: "g1@2 g1@3 ~ g1@3 ~ g1 ~ d2 f2 g2@2",
  G: "f1 ~ f1@2 ~@2 f1@2 ~@2 f1@2 f1@3 ~", H: "c2 ~ c2@3 ~ c2@4 c2@2 c2@4", I: "f2 ~ f2@3 ~ f2 ~ f2 ~ f2@4 f2 ~",
  J: "f2 ~ f2@3 ~ f2 ~ f2 ~ f2@3 ~ f2@2", K: "d2 ~ d2@3 ~ d2 ~ d2 ~ d2@3 ~ d2 ~",
  L: "d2 ~ d2@3 ~ d2 ~ d2 ~ d2@3 ~ d2@2", M: "bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1@3 ~ a1@2",
  N: "g1 ~ g1@2 ~@2 g1 ~ g1 ~ g1@3 ~ g1@2", O: "c2 ~ c2@3 ~ c2 ~ c2 ~ c2@3 ~ c2@2",
  P: "f2 ~ f2@3 ~ f2@3 ~ c2 ~ c2 ~ c2@2", Q: "f2 ~ f2@2 ~@2 f2@2 f2@2 f2 ~@3 f2 ~",
  R: "f2@2 f2@3 ~ f2@3 ~ f2 ~ a2@2 c3@2", S: "bb1 ~ bb1@2 ~@2 bb1 ~ bb1 ~ bb1@3 ~ bb1@2",
  T: "g1 ~ g1@3 ~ g1 ~ g1 ~ g1@2 d2 f2 g2@2", U: "c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2@3 ~ c2 ~",
  V: "c2 ~ c2@3 ~ c2 ~ c2@2 g1 ~ c2 d2 c2@2", W: "c2 ~ c2@3 ~ c2 ~ c2@2 g1@2 c2@3 ~", X: "f2 f2@2 f2!2 f2@2 f2",
  Y: "[f2 f2@2 f2!2 ~@3 d2 d2@2 d2!2 d2@2 d2 d2 d2@2 d2!2 d2@2 d2, ~@5 f2@2 f2@17, ~ c2@3]/3",
  Z: "bb1 bb1@2 bb1!2 bb1@2 bb1",
  AA: "[g1@2 g1@4 g1@2 g1@2 ~@6 c2@2 c2@4 c2@2 c2@2 c2@4 ~@2 f2@2 f2@4 f2@2 f2@2 ~@6 eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ eb2 ~ c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 ~@2 ab2 ~ ab2 ~ ab2 ~ ab2 ~ ab2 ~ ab2 ~ ab2 ~ ab2 ~, ~@10 g1@3 d2@32 d2@83, ~@6 c2@2 ~@7 c2@7 c2@18 ~@15 c2@9, ~@7 g1@57, ~@7 f2@9 ~@5 f2@2 f2@41]/8",
  AB: "[f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 ~ g2 ~@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2, ~@3 f2 ~@4, ~@7 c2@9]/2",
  AC: "[f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 ~@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 ~@2 g2 ~ g2@2 ~@2 g2@2 g2@2 g2 ~@3 g2 ~ g2@2 g2@3 ~ g2@3 ~ g2 ~ b2@2 d3@2, ~@7 f2@57, ~@23 d2@41, ~@47 c2@17]/8",
  AD: "e2 ~ e2@3 ~ e2 ~ e2 ~ e2@3 ~ e2 ~", AE: "e2 ~ e2@3 ~ e2 ~ e2 ~ e2@3 ~ e2@2",
  AF: "[c2@2 c2@4 c2@2 c2@2 c2@4 ~@2 a1 ~ a1@3 ~ a1 ~ a1 ~ a1@2 e2 g2 a2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 ~@2 a1 ~@2 e2 ~@2 g2 ~ g2@3 ~ g2 ~ g2 ~ g2@4 g2 ~ g2 ~ g2@3 ~ g2 ~ g2 ~ g2@3 ~ g2@2 e2 ~ e2@3 ~ e2 ~ e2 ~ e2@3 ~ e2 ~ e2 ~ e2@3 ~ e2 ~ e2 ~ e2@3 ~ e2@2, ~@7 c2@57, ~@28 d2@2 d2 d2@33]/8",
  AG: "[c2@2 c2@4 c2@2 c2@2 ~@4 b1@2 a1 ~ a1@2 ~@2 a1 ~ a1 ~ a1@3 ~ a1@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 d2@2 d2@4 d2@2 ~@2 a1@2 ~@4 g2@2 g2@4 g2@2 g2@2 g2@4 g2@2, ~ c2@7, ~@14 d2 d2@5]/5",
  AH: "[g2 g2@2 g2!2 ~@3 e2 e2@2 e2!2 e2@2 e2 e2 e2@2 e2!2 e2@2 e2, ~@5 g2@2 g2@17, ~ d2@3]/3",
  AI: "c2 c2@2 c2!2 c2@2 c2",
  AJ: "[a1@2 a1@4 a1@2 a1@2 ~@6 d2@2 d2@4 d2@2 d2@2 d2@4 ~@2 g2@2 g2@4 g2@2 g2@2 ~@6 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~@2 bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~, ~@10 a1@3 e2@32 e2@83, ~@6 d2@2 ~@7 d2@7 d2@18 ~@15 d2@9, ~@7 a1@57, ~@7 g2@9 ~@5 g2@2 g2@41]/8",
  AK: "[g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 ~ a2 ~@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2, ~@3 g2 ~@12, ~@7 d2@25]/4",
  AL: "[e2!7 ~ c2!8 a1!7 ~ d2!7 ~@2 a1!7, ~@7 e2@33, ~@23 a1@10 ~@7, ~@31 d2@9]/5",
  AM: "[a1@2 a1@2 a1@2 a1@2 a1@2 ~@2 db2@2 ~@2 gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2 ~ gb2@2 ~@4 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 ~@2 b1 ~ b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e3 ~ b2@2 e3 ~ b2 e3 a2 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@2, ~@5 a1@59, ~@14 e2@30 e2@36 ~@25 e2@4 e2@19, ~@31 d2@33]/8",
  AN: "gb2 ~ gb2@3 ~ gb2@3 ~ gb2@3 ~ gb2@2", AO: "d2 d2@2 d2@2 d2@2 d2", AP: "e2 e2@2 e2@2 e2@2 e2",
  AQ: "[a2 ~ a2@3 ~ a2@3 ~@3 a2@2 ~@2 gb2 ~ gb2@3 ~ gb2@3 ~ gb2@3 ~ gb2@2 d2@2 d2@4 d2@4 ~ a2 d3@2 ~@2 e2@2 e2@4 e2@4 e2@2 e2 ~@3 a2 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@2 gb2 ~ gb2@3 ~ gb2@3 ~ gb2@3 ~ gb2@2, ~@5 a1@2 a1@41, ~@21 d2@2 d2@25, ~@61 e2@35]/6",
  AR: "[d2@2 d2@4 d2@4 d2@4 ~@2 e2@2 e2@4 e2@4 e2@4 ~@2 a2 ~ a2@3 ~ a2@3 ~@3 a2@2 a1@2 gb2 ~ gb2@3 ~ gb2@3 ~ gb2@3 ~ gb2@2 d2@2 d2@4 d2@4 ~ a2 d3@2 d2@2, ~@7 d2@25 ~@5 d2@2 ~, ~@3 e2@5, ~@21 a1@2 ~@17]/5",
  AS: "e2@2 e2@4 e2@4 e2@2 e2 e2@3",
})).s("gm_fretless_bass").gain(0.33)

// chords · acoustic guitar nylon · "acguitar"
const acoustic_guitar_nylon = note("<~@29 A B@2 ~@22 C@2 D@6 ~@4 E F@2 ~@48>".pickRestart({
  A: "~@2 d4@2 ~@2 a3@7 ~ f3@2, bb3@7 ~@9, ~@2 f4@5 ~",
  B: "[~ d4 ~ a3@3 ~@2 [c4,f4]@8, bb3@12 ~@3 g3@16 ~, ~ f4@2 ~@5]/2", // F5
  C: "[g3!2 [g3,b3,d4,a4] g3@2 ~@2 g3@2 ~@4 g3 ~ g4, [b3,d4,a4]@2 ~ [d4,g4]@4 [d4,a4]@3 [d4,a4]@6, ~@3 b3@3 b3@4 b3@2 g4@3 ~, ~@5 g3@2 ~@2 g3@2 g3@2 ~ [g3,b3,gb4]@2, ~@6 b3 ~]/2", // G Bm7 G5 D5 Gmaj7
  D: "[[g3,b3,d4,gb4]@4 b3 ~ g3@4 ~@18 b3@5 ~@11 g4@4 ~@12 g4@3 ~@9 d4@2 ~@2 a3@2 a3@2 ~@4 a3@2 [a3,d4,g4]@4 [d4,gb4]@2 e4@2 d4 ~, ~@4 gb4@10 gb4@6 e4@2 gb4@11 ~@5 g4@6 ~@4 g4@6 g4@6 ~@8 g4@6 ~@22, ~@6 d4@27 ~@3 c4@6 c4@10 c4@6 c4@6 [d4,g4]@4 d4@4 ~@2 [d4,g4]@4 [d4,g4]@5 ~@13, ~@6 b3@6 b3@6 b3@8 g3@7 ~@30 a3@3 a3@4 a3@6 ~@4 a3@4 ~@6 a3@5 ~, ~@10 g3@6 g3@8 e4@9 ~@49 [d4,gb4]@5 ~@9]/6", // Gmaj7 Dsus4 D G5 D
  E: "~@2 e4@2 ~@2 b3@7 ~ g3@2, c4@7 ~@9, ~@2 g4@5 ~",
  F: "[~ e4 ~ b3@3 ~@2 [d4,g4]@8, c4@12 ~@3 a3@16 ~, ~ g4@2 ~@5]/2", // G5
})).s("gm_acoustic_guitar_nylon").gain(0.24).pan(0.6)

// chords · electric guitar clean · "elguitar"
const electric_guitar_clean = note(`<
  ~ A@2 B@4 C@2 ~@7 D@3 ~@2 E@3 ~@6 F@3 ~ G@4 ~ H I J@2 K@2 L@2 ~@11 M ~@8 N@2 O ~ P@4 ~ Q R S@4 T@2 ~@7 U@2 V@3 W X@3 Y
  Z@3 AA AB@3 Y Z@3 AA AC@4
>`.pickRestart({
  A: "[~@6 g4@21 ~@5, f3@27 ~@5, ~ c4@13 ~@2, ~ d4@6 ~]/2",
  B: "[~@6 [a3,f4]@18 ~@7 [bb3,d4,f4]@19 ~@14, f3@3 ~@5, ~ c4@11 ~@20, ~ d4@5 ~@10]/4", // Dm Bb
  C: "[~@6 [bb3,f4]@7 ~@3 [c4,f4]@15 ~, f3@15 [c3,g3]@16 ~, ~ c4@6 ~@9, ~@2 d4@5 ~@9]/2", // Bb5 F5 C5
  D: "[~ [a3,c4,f4]@2 [a3,c4,f4] [bb3,c4,f4]!2 [a3,c4,f4]@16 ~@2]/3", // F Bbsus2 F
  E: "[~@2 [bb2,f3] [bb2,f3,bb3]@16 ~@5, ~ [c4,f4]@8 ~@3]/3", // Bb5 F5
  F: "[~@42 f4@5 ~, ~@15 c3@18 ~ c3@13 ~, ~@16 g3@31 ~, ~@16 [f3,c4]@19 f3 f4@2 bb3@9 ~, ~@35 bb3 c4@11 ~]/3", // F5
  G: "[~@4 g4@15 ~@3 a3@10, ~@2 c3@16 ~@3 c4@11, ~@3 f2@16 [d2,f3,e4,f4]@13]/4", // Dm
  H: "~@3 c3@2 ~ f4@2, ~@3 c4@5, ~@3 f4@3 ~@2, ~@3 g3 ~ c3@3", I: "c4@6 [c4,g4]@9 ~, [f2,f4]@15 ~",
  J: "[eb3@6 ~@5 bb3@5, bb3@11 ~@5, g3@9 ~@7, eb4@7 eb4@9, f3@5 ~ eb3@4 eb3@6]/2",
  K: "[[c4,g4]@7 c4@9, [c3,bb3,eb4]]/2", L: "[[ab2,ab3,c4,eb4,g4]@7 ab4@6 ab4@2 ~, ~@7 [eb4,f4]@8 ~, ~@7 c4@4 ~@5]/2",
  M: "~@4 [c3,g3,d4]@2 [c3,g3] ~@9, ~ g4@3, ~@3 c4@5", N: "[~@16 [g3,a3,d4]@13 ~@3, ~@15 d3@14 ~@3]/2",
  O: "~@10 g4@5 ~, ~@2 d3@13 ~, ~@3 g3@3 c4@9 ~, ~@3 c4 g4@6 ~@6, ~@4 d4@11 ~",
  P: "[~@4 a4@15 ~@3 b3@10, ~@2 d3@16 ~@3 d4@11, ~@3 g2@16 [e2,g3,gb4,g4]@13]/4", // Em
  Q: "~@3 d3@2 ~ g4@2, ~@3 d4@5, ~@3 g4@3 ~@2, ~@3 a3 ~ d3@3", R: "d4@6 [d4,a4]@9 ~, [g2,g4]@15 ~",
  S: "[f3@6 ~ f4@9 [d4,a4]@7 d4@9, [a3,c4] [d3,c4,f4], f4@7 ~@25, g3@5 ~ f3@16 ~@10]/4", // D5 Am Dm7
  T: "[[bb2,bb3,d4,f4,a4]@7 bb4@6 bb4@2 ~, ~@7 [f4,g4]@8 ~, ~@7 d4@4 ~@5]/2", // Bbmaj7 Fsus2
  U: "[[a2,a3,db4,e4,a4] ~@5 [a3,db4,a4]@8 [e3,a3]@6 ~@2 a3@3 ~ a3@2 a3@2 a3@2, ~ a3@2 ~@4 [db4,e4,a4]@4 [db4,e4,a4]@3 [db4,e4,a4]@2, ~@4 e3@10 ~@6 e3@5 e3@7]/2", // A A5 A
  V: "[~@6 [a3,db4] ~@11 d4 ~@4 gb4, db3@5 db3@2 a3@3 db3@5 gb4@4 gb4@3 db4@2, ~ a3@5 ab4@6 ab4@4 ~@4 a3@4, ~@3 gb4@4 gb4@7 db4@2 ~@3 d4@5, ~@7 db4@5 db4 a3@3 d3@5 d3@3]/3", // A
  W: "b3 b3@2 b3@3 [b3,gb4]@2, b2, gb4@3 ~, d4@3 [d4,b4]@5", // B5 G
  X: "[~@14 a4@5 ~ e4@2 ~@4 b3@2 b3@2 b3@2 ~@4 [a3,db4,e4,a4]@2 a3@4 ~@4 a3@2, e3@10 e3@2 e3@4 ~@5 a3@2 ~, ~@3 a4@4 ~@3 a4@4 ~@10, ~@10 b3@9 b3@3 b3@4 ~@12 [db4,a4]@6 [db4,a4]@4, ~@12 e4@8 ~@2 e4@6 [e4,a4]@7 ~@3 e4@10]/3", // A Gbm A5
  Y: "[gb3,a3,db4,ab4]@3 a3@2 ~@2 ab4, ~@3 [gb3,gb4]@5, ~@3 db4@3 db4@2, ~@5 a3@3", // Gbm Gb
  Z: "[d4@4 ~@12 b3@2 ~@10 b4@3 ~@3 a3@2 ~@2 a3@2 a3 ~@3 a4@4, d3@10 d3@4 gb4@17 [db4,e4]@6 ~ db4@4 db4@6, gb4@6 gb4@6 e4@4 ~@2 b3@13 a3@3 ~@14, a3@2 ~@2 d4@12 d4@4 d4@2 b4@4 d4@6 [a4,b4]@5 ~ a4@6 ~@4, ~@2 a3@2 b2@4 ~ a2@3]/3", // Dbm Asus2
  AA: "[gb3,a3,db4,gb4]@3 a3@2 ~@2 a3, ~@3 [gb3,db4]@5, ~@3 gb4@3 gb4@2, ~@5 a3@2 ~", // Gbm Gb5
  AB: "[a3 ~@5 e4 ~@8 a4@3 [a3,db4,e4,a4] a3@2 ~@2 a3, gb4@7 gb4@12 [db4,a4]@2 a3 [db4,a4]@2, ~ a3@2 e4@3 ~@5 a4@3 d4@10, ~@4 d3@11 ~@9 b2@24, ~@10 a3@5 ~@11 a3@10 ~@2 e4@10]/3", // A Gbm
  AC: "[a3 ~@5 e4 ~@8 a4@16 ~, gb4@7 gb4@16 ~@9, ~ a3@2 e4@3 ~@5 a4@3 d4@16 ~@2, ~@4 d3@11 ~@9 b2@32 ~@8, ~@10 a3@5 ~@11 a3@32 ~@6]/4",
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.4)

// chords · electric guitar clean · "elguitar" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@32 A ~ B@3 ~@2 C D E@2 F@2 ~ G ~@22 H ~ I@3 ~@2 J K L@4 ~ M ~@6 N ~ O ~ P Q ~ R ~@3 Q ~ S ~ P T ~@2 Q ~ S ~ P T ~@2
>`.pickRestart({
  A: "~@8 f3@7 ~", B: "[~ a3@16 ~@7]/3", C: "~@2 g3!2", D: "~@4 f3@11 ~", E: "[~@9 g3@7, ~@5 f3@11]/2",
  F: "[~@7 g4@9]/2", G: "~@3 c4@4 ~", H: "~@8 g3@7 ~", I: "[~ b3@16 ~@7]/3", J: "~@2 a3!2", K: "~@4 g3@11 ~",
  L: "[~@5 g3@16 ~@2 a4@9]/4", M: "~@3 d4@4 ~", N: "~@15 a3", O: "~@3 a3@3 ~@10", P: "~@3 a3@2 ~@3", Q: "~ a3@3 ~@4",
  R: "~@2 b3 ~ e4@8 ~@4, ~@3 b3@7 ~@6", S: "~@9 a3@5 a3@2", T: "~ d4@2 ~, b2 ~, ~ a3@4 ~@3",
})).s("gm_electric_guitar_clean").gain(0.12).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~ [x!2]!114 ~@2>").gain(0.28)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~ [~@3 x ~@4]!114 ~@2>").gain(0.14)

// drums · snare
const snare = s("sd").struct("<A B@23 C B@15 D B@5 E B@14 F B@15 G B@5 E B@29 H I ~@2>".pickRestart({
  A: "~@11 x!2 ~@3", B: "~ x ~ x", C: "~@4 x ~@6 x!2 ~@3", D: "~@4 x ~@3 x ~ x ~ x!4", E: "~@4 x ~@4 x ~@2 x!3 ~",
  F: "~@4 x ~@4 x ~@6", G: "~@4 x ~@3 x!2 ~@2 x!2 ~@2", H: "~@4 x ~@7 x!2 ~@2", I: "~@4 x ~@4 x ~@2 x!2 ~@2",
})).gain(0.41)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@40 A ~@5 B ~@36 B ~@24 C ~@3 D E F ~@2>".pickRestart({
  A: "~@3 x ~@4", B: "~@7 x ~@2 x!2 ~@3 x", C: "~@15 x", D: "~@13 x ~ x", E: "~@10 x!2 ~@4", F: "~@7 x!2 ~@2 x ~@4",
})).gain(0.21)

// drums · hihat
const hihat = s("hh").struct("<~ A@39 B A@5 B A@14 C D A@14 B A@5 B A@22 E A@6 F A ~@2>".pickRestart({
  A: "x!8", B: "x!3 ~@5", C: "x!6 ~@2", D: "~ x!7", E: "x!4 ~@2 x!2", F: "x!2 ~@2 x!4",
})).gain(0.21)

// drums · low tom
const low_tom = s("lt").struct("<[~@4 x ~@2 x] ~@60 [~@15 x] ~@15 [~@5 x ~ x] ~@24 [~@13 x!3] ~@14>").gain(0.35)

// drums · open hat
const open_hat = s("oh").struct("<~@106 [~@9 x ~@2 x ~@3] ~@6 x ~@3>").gain(0.35)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@13 x ~@2] ~@60 [~@12 x!3 ~] ~@40 [~@11 x!2 ~@3] ~@14>").gain(0.35)

// drums · crash
const crash = s("cr").struct("<~@17 A ~@23 A ~@5 A ~@14 A ~@15 A ~@5 A ~@14 A ~@3 A ~@3 A ~@9>".pickRestart({
  A: "x",
})).gain(0.41)

// drums · high tom
const high_tom = s("ht").struct("<~@61 [~@13 x ~@2] ~@55>").gain(0.21)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@41 A B A C A@2 ~@31 A B A C A@2 ~@7 A@3 D A B A E F A@2 D A B A E F A@2 D A B A E ~@2
>`.pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x!2", C: "x ~ x ~ x ~ x ~ x ~ x ~ x!4", D: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
  E: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~", F: "~ x!7",
})).gain(0.28)

stack(
  string_ensemble_1, string_ensemble_1_soft, bass, acoustic_guitar_nylon, electric_guitar_clean,
  electric_guitar_clean_2, kick, kick_soft, snare, snare_soft, hihat, low_tom, open_hat, mid_tom, crash, high_tom,
  shaker
)

More by Masini