Strudelify

Sono come tu mi vuoi

Mina

KeyE♭ minorTempo103 bpm
0:00/0:00
// Sono come tu mi vuoi — Mina
// 103 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 92 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(103/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 · fretless bass
const bass = note("<~ A@8 B@2 C@8 D@8 C@8 E@8 F@8 G@8 B@2 C@8 H@8 I@8 J@7>".pickRestart({
  A: "[~@11 bb1@5 ~ bb1@5 ~ eb2@6 ~@3 eb2 ~@2 eb2@6 bb2@2 ~ bb2@3 eb2@7 ~@2 eb2 ~@2 eb2@6 bb2@3 bb2@3 eb2@7 ~@2 eb2 ~@2 eb2@6 bb2@2 ~ bb2@3 eb2@7 ~@2 eb2 ~@2 eb2@6 bb2@2 ~ bb2@2 ~ eb1@6 ~@3 eb1 ~@2 eb1@9 bb1@3 eb1@6 ~@3 eb1 ~@2 eb1 ~@2 eb1@6 bb1@3 ab1@6 ~@3 ab1 ~@2 ab1@9 eb2@3 ab1]/8",
  B: "[~@8 ab1 ~@2 ab1@9 eb2@3 db2@6 ~@3 db2 ~@2 db2@9 ab1@3 db2]/2",
  C: "[~@8 db2 ~@2 db2@7 ~@2 db2@3 gb1@7 ~@2 gb1 ~@2 gb1@9 db2@3 gb1@7 ~@2 gb1 ~@2 gb1@7 ~@2 gb1@3 bb1@7 ~@2 bb1 ~@2 f2@6 bb1@6 eb1@9 bb1@3 eb1@5 ~ eb1@5 ~ ab1@7 ~@2 ab1 ~@2 ab1@6 eb2@2 ~ eb2@3 ab1@8 ~ ab1@2 ~ ab1@3 eb2@2 ~ eb2@6 ab1@7 ~@2 ab1@2 ~ ab1@3 eb2@2 ~ eb2@5 ~ ab1]/8",
  D: "[~@8 ab1 ~@2 ab1@5 ~ ab1@6 bb1@7 ~@2 bb1 ~@2 bb1@6 f2@6 bb1@7 ~@2 bb1 ~@2 bb1@5 ~ bb1@4 ~@2 eb1@6 ~@3 eb1 ~@2 eb1@9 bb1@3 eb1@6 ~@3 eb1 ~@2 eb1 ~@2 eb1@6 bb1@3 ab1@6 ~@3 ab1 ~@2 ab1@9 eb2@3 ab1@6 ~@3 ab1 ~@2 ab1@9 eb2@3 db2@6 ~@3 db2 ~@2 db2@9 ab1@3 db2]/8",
  E: "[~@8 ab1 ~@2 ab1@5 ~ ab1@6 ~@9 f2@2 ~ f2@3 f1@3 f2@3 ab1@3 bb1@9 bb2 ~@2 bb2 ~@2 f2@3 bb1@4 ~@2 eb2@6 ~@3 eb2 ~@2 eb2@9 bb1@3 eb2@6 ~@3 eb2 ~@2 eb2@9 bb1@2 ~ g1@9 d2 ~@2 d2 ~@2 d2@6 g1@2 ~ g1@7 ~@2 g1@3 d2@6 g1@6 c2@6 ~@3 c2 ~@2 c2@8 ~ g2@3 c2, ~@23 f1@12 ~@157]/8",
  F: "[~@8 c2 ~@2 c2@7 ~@2 c2@3 f2@7 ~@2 f2 ~@2 f2@8 ~ f2@3 bb1@8 ~ bb1@3 bb2@5 ~ bb1@4 ~@2 eb1@6 ~@3 eb1 ~@2 eb1@9 bb1@3 eb1@6 ~@3 eb1 ~@2 eb1 ~@2 eb1@6 bb1@3 ab1@6 ~@3 ab1 ~@2 ab1@9 eb2@3 ab1@6 ~@3 ab1 ~@2 ab1@9 eb2@3 db2@6 ~@3 db2 ~@2 db2@9 ab1@3 db2]/8",
  G: "[~@8 db2 ~@2 db2@7 ~@2 db2@3 gb1@7 ~@2 gb1 ~@2 gb1@3 gb2@2 ~ gb1 ~@2 gb1@3 bb1@7 ~@2 bb1 ~@2 bb1@5 ~ bb1@3 ~@3 eb2@6 ~@3 eb2 ~@2 eb2@7 ~@2 eb2 ~@2 b1@7 ~@2 b1 ~@2 b1@5 ~ bb1@4 ~@2 eb1@6 ~@3 eb1 ~@2 eb1@9 bb1@3 eb1@6 ~@3 eb1 ~@2 eb1 ~@2 eb1@6 bb1@3 ab1@6 ~@3 ab1 ~@2 ab1@9 eb2@3 ab1]/8",
  H: "[~@8 ab1 ~@2 ab1@5 ~ ab1@6 ~@9 f2@2 ~ f2@3 f1@3 f2@3 ab1@3 bb1@9 bb2 ~@2 bb2 ~@2 f2@3 bb1@4 ~@2 eb2@6 ~@3 eb2 ~@2 eb2@9 bb1@3 eb2@6 ~@3 eb2 ~@2 eb2@9 bb1@2 ~ g1@9 d2 ~@2 d2 ~@2 d2@6 g1@2 ~ g1@7 ~@2 g1@3 d2@6 g1@6 c2@6 ~@3 c2 ~@2 c2@8 ~ g2@3 c2, ~@23 f1@13 ~@156]/8",
  I: "[~@8 c2 ~@2 c2@7 ~@2 c2@3 f2@7 ~@2 f2 ~@2 f2@7 ~@2 f2@3 bb1@8 ~ bb1@3 bb2@5 ~ bb1@4 ~@2 eb1@6 ~@3 eb1 ~@2 eb1@9 bb1@3 eb1@6 ~@3 eb1 ~@2 eb1 ~@2 eb1@6 bb1@3 ab1@6 ~@3 ab1 ~@2 ab1@9 eb2@3 ab1@6 ~@3 ab1 ~@2 ab1@9 eb2@3 db2@6 ~@3 db2 ~@2 db2@9 ab1@3 db2]/8",
  J: "[~@8 db2 ~@2 db2@7 ~@2 db2@3 gb1@7 ~@2 gb1 ~@2 gb1@3 gb2@2 ~ gb1 ~@2 gb1@3 bb1@7 ~@2 bb1 ~@2 bb1@5 ~ bb1@3 ~@3 eb2@6 ~@3 eb2 ~@2 eb2 ~@2 eb2@5 ~ eb2@2 ~ bb1@6 ~@3 bb1 ~@2 bb1@5 ~ bb1@4 ~@2 eb2@6 ~@3 eb2 ~@2 eb2 ~@2 eb2@5 ~ eb2@2 ~ bb1@6 ~@3 bb1 ~@2 bb1@5 ~ bb1@4 ~@3]/7",
})).s("gm_fretless_bass").gain(0.55)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A@5 ~@11 B@3 ~ C@6 D@3 ~ E@3 F@3 G@8 H@7 I@3 J@8 K ~@3 L M@3 N@8 O@7 P@6
>`.pickRestart({
  A: "[~@23 [gb4,bb4,eb5]@94 ~@3]/5", // Ebm
  B: "[~@23 [b4,eb5,gb5,bb5]@11 ~ [b4,gb5]@11 ~ [gb4,ab4,b4]@23 ~@2, ~@35 eb5@35 ~@2]/3", // Bmaj7 B5 Abm7
  C: "[~@23 [gb4,bb4]@48 [ab4,b4]@47 ~ [f4,ab4,db5]@24 [b4,f5,ab5], ~@23 eb5@95 ~@26]/6", // Gb Abm Db Fdim
  D: "[~@23 [f5,ab5]@23 ~ [eb5,gb5]@23 ~@2, ~@23 [bb4,db5]@47 ~@2]/3", // Fm Ebm Bbm
  E: "[~@35 b4@35 ~ [b4,eb5,bb5], ~@23 [ab4,gb5]@48 ~]/3", // Bmaj7 Ab7
  F: "[~@11 [b4,gb5]@12 [ab4,b4,eb5]@23 ~ [b3,eb4]@24 [bb3,d4]]/3", // B5 Abm B Bb
  G: "[~@23 eb4@48 ~@24 bb3@24 [c4,eb4]@48 [eb4,ab4]@25, ~@23 g3@72 ~@97, ~@71 d4@47 ~@74]/8", // Cm Ab5
  H: "[~@11 [f4,ab4]@10 ~@2 [gb4,bb4]@48 [ab4,b4]@47 ~ [f4,ab4,db5]@24 [b4,f5,ab5]@23 ~ [db4,gb4], ~@23 eb5@95 ~@50]/7", // Fm Gb Abm Db Fdim Gb5
  I: "[~@8 bb3@15 [ab3,d4,f4]@23 ~ [bb3,eb4]@23 ~ [a3,eb4]]/3", // Ddim Eb5 Adim
  J: "[~@17 [ab3,d4]@4 ~@2 gb4@24 eb4@23 ~ [eb4,ab4]@47 ~ [f4,ab4]@47 ~ f4@18 gb4@3 f4@3 eb4, ~@23 bb4@47 ~@97 bb4@25]/8", // Abdim Ab5 Fm
  K: "~@4 gb4@7 ~", L: "~@23 [b4,eb5,gb5,bb5]",
  M: "[~@11 [b4,gb5]@11 ~ [gb4,ab4,b4]@23 ~ [b3,eb4]@24 [bb3,d4], ~@11 eb5@35 ~@26]/3", // B5 Abm7 B Bb
  N: "[~@23 eb4@47 ~@25 bb3@24 [c4,eb4]@48 [eb4,ab4]@25, ~@23 g3@72 ~@97, ~@71 d4@48 ~@73]/8", // Cm Ab5
  O: "[~@11 [f4,ab4]@11 ~ [gb4,bb4]@48 [ab4,b4]@47 ~ [f4,ab4,db5]@24 [b4,f5,ab5]@23 ~ [db4,gb4], ~@23 eb5@95 ~@50]/7", // Fm Gb Abm Db Fdim Gb5
  P: "[~@8 bb3@15 [ab3,d4,f4]@21 ~@12 gb4@13 ~@2 [f4,ab4,d5]@23 ~@10 gb4@13 ~@2 [d4,ab4]@11 ~ [d4,ab4]@2 ~ [d4,ab4]@4 ~@2 eb4@3 ~, ~@47 [bb4,eb5]@22 ~@26 [bb4,eb5]@22 ~@27]/6", // Ddim Eb5
})).s("gm_string_ensemble_2").gain(0.25)

// other · french horn
const french_horn = note("<~@5 A@8 B@4 ~@12 C@4 ~@23 D@4 E@7 ~@25>".pickRestart({
  A: "[~@23 [bb3,gb4]@47 ~ [b3,ab4]@48 [b3,f4]@47 ~ [db4,gb4]@25, ~@23 eb4@95 ~@74]/8", // Ebm E Bdim Gb5
  B: "[~@23 bb3@48 b3@12 bb3@5 ~@8]/4", C: "[~@23 bb3@48 b3@12 bb3@3 ~@10]/4",
  D: "[~@17 gb4 f4 ~ eb4 f4 ~ gb4@31 ~@2 eb4@3 f4@6 gb4@6 g4@12 ab4@12 ~]/4",
  E: "[~@17 f4 eb4 ~ db4 eb4 ~ f4@23 ~ f4@18 gb4@3 f4@3 eb4@21 ~@3 bb3@48 b3@12 bb3@3 ~@10]/7",
})).s("gm_french_horn").gain(0.33).pan(0.4)

// chords · trombone
const trombone = note("<~@29 A@6 B@3 C@8 ~@7 D@8 E@3 ~@5 B@3 C@8 ~@7 F@5>".pickRestart({
  A: "[~@23 [f3,bb3,d4]@23 ~ [gb3,bb3,eb4]@23 ~ [ab3,b3,eb4]@23 ~ [ab3,b3,eb4]@22 ~@2 [ab3,b3,eb4]@25]/6", // Bb Ebm Abm
  B: "[~@23 [ab3,bb3,eb4]@23 ~ [f3,ab3,bb3,d4]@22 ~@2 eb2]/3", // Absus2 Bb7
  C: "[~@5 [g3,bb3,eb4] ~@5 eb2 ~@2 [g3,bb3,eb4] ~@8 eb2@5 ~ [g3,bb3,eb4] ~@8 [g3,bb3,eb4] ~@8 g2@4 ~@2 [d3,g3,bb3] ~@8 [d3,g3,bb3] ~@8 g2@5 ~ [d3,g3,bb3] ~@8 [d3,g3,bb3] ~@8 c2@5 ~ [c3,eb3,g3] ~@8 [c3,eb3,g3] ~@8 c2@6 [c3,eb3,g3] ~@8 [c3,eb3,g3] ~@8 [c3,eb3,ab3]@35 ~ [d3,f3,ab3]@10 ~@3]/8", // Eb Gm Cm Ab Ddim
  D: "[~@23 [eb3,gb3]@42 [d3,f3]@3 ~@3 [eb3,gb3]@33 eb2 ~@2 eb2@6 [eb3,gb3]@6 ~@12 [eb3,ab3]@35 ~ [db3,f3]@21 db2 ~@2 db2, ~@119 ab2@47 ~@26]/8", // Ebm Dm Ebm Ab5 Db
  E: "[~@5 [db3,f3]@18 gb2@6 ~@18 gb2@22 ~@3, ~@29 [db3,gb3]@41 ~@2]/3", // Db Gb5
  F: "[~@23 eb2@12 ~@3 eb2@8 ~ [bb2,f3,ab3]@23 ~ eb2@12 ~@3 eb2@8 ~ bb2@6 [ab3,d4] ~@2 [bb2,ab3,d4] ~@2 [bb2,ab3,d4] ~@2 [bb2,ab3,d4]@3 ~@3 [eb2,bb3,eb4]@3 ~, ~@23 [gb3,bb3]@23 ~@25 [gb3,bb3]@24 ~@25]/5", // Bb7 Abdim Bb7 Eb5 Gb
})).s("gm_trombone").gain(0.71).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@5 A@4 B C@4 D@7 E@4 F@5 G@6 H I J@2 K@2 L@2 M N@4 O@3 P Q R S@5 T@4 U@6 H I J@2 K@2 L@2 M N@4 V@3 P W@4 X
>`.pickRestart({
  A: "[~@29 [bb3,eb4,gb4] ~@8 [bb3,eb4,gb4]@3 ~@6 eb3@6 [bb3,eb4,gb4] ~@8 [bb3,eb4,gb4]@3 bb3 ~@11 [ab3,b3,eb4]@2 ~@7 [ab3,b3,eb4]@3 ~@7, ~@23 eb3@8 ~@40 ab2@9 ~@16]/4", // Ebm Abm
  B: "~@5 [ab3,b3,eb4]@2 ~@7 [ab3,b3,eb4]@4 ~@2 ab3 ~@2 db3", // Abm
  C: "[~@5 [ab3,b3,f4]@2 ~@7 [b3,f4]@5 ~@10 [ab3,b3,f4] ~@8 [b3,f4]@5 ~ ab3@2 ~@7 [bb3,db4,gb4] ~@8 [bb3,db4,gb4]@3 ~@3 bb3 ~@8 [db4,gb4]@4 ~@2 bb3 ~@2 [db4,gb4]@6 bb3 ~@2 bb2, ~@2 db3@6 ~@6 ab3@3 ~@6 db3@8 ~@7 ab3@2 ~@7 gb2@21 ~@3 gb2@21 ~@4, ~@77 bb3 ~@8 bb3 ~@9]/4", // Fdim Bdim Fdim Bdim Gb Gb5
  D: "[~@2 ab3 ~@2 ab3@3 ~@3 ab3@2 ~ ab3@3 ~@3 ab3@3 ~@6 bb3@4 ~@2 bb3@2 ~@7 [bb3,eb4,gb4]@3 ~@3 ab3@2 ~ [b3,eb4]@6 ab3@2 ~@4 ab2@3 ab3@3 ~@3 ab3@2 ~ [b3,eb4]@6 ab3@2 ~@4 ab2@3 ~@6 ab3@2 ~ ab3@3 ~@3 ab3@2 ~ ab3@3 ab2@3 ab3@3 ~@3 ab3@2 ~@4 ab2@6 ~@6 [ab3,b3,eb4]@3 ~@6 [ab3,bb3,eb4]@5 ~ ab3@2 ~ [ab3,bb3,eb4]@4 ~@2 ab3@3 bb2, ~@5 [d4,f4]@7 ~@2 [d4,f4]@9 ~@6 [eb4,gb4]@8 ~ [bb3,eb4,gb4]@5 ~@10 ab3@3 ~@6 eb4@13 ~@11 eb4@13 ~@26 ab3@5 ~@4 [ab3,b3,eb4]@5 ~@29, ~@8 bb2@7 ~@2 bb2@6 eb2@16 ~@2 eb2@6 ab2@15 [ab3,b3]@5 ~ b3@6 ~@3 ab3@3 ~@6 [ab3,b3]@5 ~ [ab3,b3]@6 ~@3 [b3,eb4]@8 ~ [b3,eb4]@13 ~@2 [b3,eb4]@8 ~@35, ~@71 ab2@16 ~@8 ab2@8 ~ ab2@7 ~@8 ab2@7 ~@11 ab2@5 ~ bb2@21 ~@4]/7", // Ebm B Abm Absus2 Dm Ebm Abm B
  E: "[~@2 [ab3,db4,d4,gb4]@6 ~@3 bb2@3 ab3@3 bb2@3 ab3 ~@8 [bb3,eb4,gb4] ~@8 [bb3,eb4,gb4]@3 ~@12 [bb3,eb4,gb4] ~@8 [bb3,eb4,gb4]@3 bb3 ~@11 [ab3,b3,eb4]@2 ~@7 [ab3,b3,eb4]@3 ~@7, ~@14 [db4,d4,gb4]@7 ~@2 eb3@8 ~@16 eb3@18 ~@6 ab2@9 ~@16]/4", // Dbsus4 Ebm Abm Dmaj7
  F: "[~@5 [ab3,b3,eb4]@2 ~@7 [b3,eb4]@4 ~@2 ab3 ~@8 [ab3,b3,f4]@2 ~@7 [b3,f4]@5 ~@10 [ab3,b3,f4] ~@8 [b3,f4]@5 ~ ab3@2 ~@7 [bb3,db4,gb4] ~@8 [db4,gb4]@4 ~@2 bb3 ~@8 [db4,gb4]@4 ~@2 bb3 ~@2 [db4,gb4]@6 bb3 ~@2 bb2, ~@14 ab3@2 ~@7 db3@8 ~@7 ab3@3 ~@6 db3@20 ~@4 gb2@21 ~@3 gb2@21 ~@4, ~@62 ab3@2 ~@22 bb3 ~@14 bb3 ~@8 bb3 ~@9]/5", // Abm B Fdim Bdim Fdim Bdim Gb Gb5
  G: "[~@5 ab3@3 ~@3 ab3@2 ~ ab3@3 ~@3 ab3@3 ~@6 bb3@4 ~@2 bb3@2 ~@7 [bb3,eb4,gb4]@3 ~@3 ab3@2 ~ [b3,eb4]@6 ab3@2 ~@4 ab2@3 ab3@3 ~@3 ab3@2 ~ [b3,eb4]@6 ab3@2 ~@4 ab2@3 ~@6 ab3@2 ~ ab3@3 ~@3 ab3@2 ~ ab3@3 ab2@3 ab3@3 ~@3 ab3@2 ~@4 ab2@6 ~@6 [ab3,b3,eb4]@4, ~@5 [d4,f4]@7 ~@2 [d4,f4]@9 ~@6 [eb4,gb4]@8 ~ [bb3,eb4,gb4]@5 ~@10 ab3@3 ~@6 eb4@13 ~@11 eb4@13 ~@26 ab3@5 ~@4 [ab3,b3,eb4]@5 ~@5, ~@8 bb2@7 ~@2 bb2@6 eb2@16 ~@2 eb2@6 ab2@15 [ab3,b3]@5 ~ b3@6 ~@3 ab3@3 ~@6 [ab3,b3]@5 ~ [ab3,b3]@6 ~@3 [b3,eb4]@8 ~ [b3,eb4]@13 ~@2 [b3,eb4]@8 ~@11, ~@71 ab2@16 ~@8 ab2@8 ~ ab2@7 ~@8 ab2@7 ~@11 ab2@5 ~@2]/6", // Ebm B Abm Dm Ebm Abm B
  H: "~@5 eb4@8 ~ ab3@3 c4@3 ab3@2 ~@2, ~@5 ab3@6 ~@3 eb4@8 ~@2",
  I: "~@2 [ab3,d4] ~@2 [d4,f4]@6 ab3@2 ~ [d4,f4]@6 ab3 ~@3, ~@5 ab3@2 ~@7 ab3@2 ~@8", // Abdim Dm
  J: "~@5 [bb3,eb4,g4] ~@8 [bb3,eb4,g4] ~@9", K: "~@5 [d4,g4,bb4] ~@8 [d4,g4,bb4] ~@9",
  L: "~@5 [c4,eb4,g4] ~@8 [c4,eb4,g4] ~@9", M: "~@5 [c4,f4,ab4] ~@8 [c4,f4,ab4]@2 ~@8",
  N: "[~@5 [c4,f4,ab4] ~@8 [d4,f4]@6 ~@9 [bb3,eb4,gb4] ~@8 [bb3,eb4,gb4]@3 ~@12 [bb3,eb4,gb4] ~@8 [bb3,eb4,gb4]@3 bb3 ~@11 [ab3,b3,eb4]@2 ~@7 [ab3,b3,eb4]@3 ~@7, ~@14 ab3@4 ~@5 eb3@8 ~@16 eb3@18 ~@6 ab2@9 ~@16]/4", // Fm Dm Ebm Abm
  O: "[~@5 [ab3,b3,eb4]@2 ~@7 [b3,eb4]@4 ~@2 ab3 ~@8 [ab3,b3,f4]@2 ~@7 [b3,f4]@5 ~@10 [ab3,b3,f4] ~@8 [b3,f4]@5 ~ ab3@2 ~@2, ~@14 ab3 ~@8 db3@8 ~@7 ab3@3 ~@6 db3@20 ~@5, ~@31 ab3 ~@4]/3", // Abm B Fdim Bdim Fdim Bdim
  P: "~@5 [bb3,db4,gb4] ~@8 [bb3,db4,gb4]@5 ~ bb3 ~@3", // Gb
  Q: "~@5 [d4,f4]@4 ~@5 [d4,f4]@6 ab3 ~@3, ~@5 ab3@2 ~@7 ab3@3 ~@7", // Dm
  R: "~@5 eb4@5 ~ bb3@2 ~ [eb4,gb4]@6 bb3 ~@3, ~@5 bb3@2 ~@7 bb3@3 ~@7, ~@5 gb4 ~@18", // Ebm
  S: "[~@5 [eb4,gb4]@7 ~@2 [a3,eb4,gb4] ~@2 [ab3,d4,f4]@3 ~@9 [bb3,eb4,gb4] ~@8 [bb3,eb4,gb4]@3 ~@12 [bb3,eb4,gb4] ~@8 [bb3,eb4,gb4]@3 bb3 ~@11 [ab3,b3,eb4]@2 ~@7 [ab3,b3,eb4]@3 ~@12 [ab3,b3,eb4]@2 ~@7 [b3,eb4]@4 ~@2 ab3 ~@2 db3, ~@5 a3@3 ~@15 eb3@8 ~@16 eb3@18 ~@6 ab2@9 ~@15 ab2@21 ~@4, ~@110 ab3 ~@9]/5", // Ebm Ebdim Ddim Ebm Abm B
  T: "[~@5 [ab3,b3,f4]@2 ~@7 [b3,f4]@5 ~@10 [ab3,b3,f4] ~@8 [b3,f4]@5 ~ ab3@2 ~@7 [bb3,db4,gb4] ~@8 [db4,gb4]@4 ~@2 bb3 ~@8 [db4,gb4]@4 ~@2 bb3 ~@2 [db4,gb4]@6 bb3 ~@2 bb2, ~@14 ab3@3 ~@6 db3@20 ~@4 gb2@21 ~@3 gb2@21 ~@4, ~@38 ab3@2 ~@22 bb3 ~@14 bb3 ~@8 bb3 ~@9]/4", // Fdim Bdim Fdim Bdim Gb Gb5
  U: "[~@5 ab3@3 ~@3 ab3@2 ~ ab3@3 ~@3 ab3@3 ~@6 bb3@4 ~@2 bb3@2 ~@7 [bb3,eb4,gb4]@3 ~@3 ab3@2 ~ [b3,eb4]@6 ab3@2 ~@4 ab2@3 ab3@3 ~@3 ab3@2 ~ [b3,eb4]@6 ab3@2 ~@4 ab2@3 ~@6 ab3@2 ~ ab3@3 ~@3 ab3@2 ~ ab3@3 ab2@3 ab3@3 ~@3 ab3@2 ~@7 ab3@2 ~@7 [ab3,b3,eb4]@3 ~, ~@5 [d4,f4]@7 ~@2 [d4,f4]@9 ~@6 [eb4,gb4]@8 ~ [bb3,eb4,gb4]@5 ~@10 ab3@3 ~@6 eb4@13 ~@2 ab3@3 ~@6 eb4@13 ~@26 ab3@5 ~@4 [ab3,b3,eb4]@5 ~@5, ~@8 bb2@7 ~@2 bb2@6 eb2@16 ~@2 eb2@6 ab2@15 [ab3,b3]@5 ~@4 ab2@15 [ab3,b3]@5 ~ [ab3,b3]@6 ~@3 [b3,eb4]@8 ~ [b3,eb4]@13 ~@2 [b3,eb4]@8 ~@11, ~@95 ab2@8 ~ ab2@7 ~@8 ab2@7 ~@2 ab2@7 ~@2 ab2@5 ~@2]/6", // Ebm B Abm Dm Ebm Abm B
  V: "[~@5 [ab3,b3,eb4]@2 ~@7 [b3,eb4]@4 ~@2 ab3 ~@8 [ab3,b3,f4]@2 ~@7 [b3,f4]@5 ~@10 [ab3,b3,f4] ~@8 [b3,f4]@5 ~ ab3@2 ~@2, ~@14 ab3 ~@8 db3@10 ~@5 ab3@3 ~@6 db3@20 ~@5, ~@31 ab3 ~@4]/3", // Abm B Fdim Bdim Fdim Bdim
  W: "[~@5 [d4,f4]@4 ~@5 [d4,f4]@6 ab3 ~@2 eb3@6 [eb4,gb4,bb4] ~@8 [gb4,bb4]@5 ~ eb4 ~@2 bb2@6 [d4,f4,ab4]@2 ~@10 bb2@2 ~ d4 ~@2 eb3@6 [eb4,gb4,bb4] ~@8 [gb4,bb4]@5 ~ eb4 ~@3, ~@5 ab3@2 ~@7 ab3@3 ~@18 eb3@9 ~@15 bb2@5 ~@19 eb3@9 ~@4, ~@38 eb4@2 ~@22 [f4,ab4]@7 ~@27, ~@62 d4@5 ~@19 eb4@2 ~@8]/4", // Dm Ebm Gb Ddim Ebm Gb Fm
  X: "~@5 [f3,ab3,d4] ~@8 [f3,ab3,d4] ~@5 [gb3,bb3,eb4]@2 ~@2", // Ddim Ebm
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.7)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@6 A B C@2 D ~@4 E ~@3 F ~ G A B H@2 D ~@3 I E ~@3 F ~ J ~@7 K A B H@2 D ~@3 L ~ A B J ~ D ~@3 I E M@2 ~@3 J ~@7 K A
  B H@2 D ~@7
>`.pickRestart({
  A: "~@20 bb3 ~@3", B: "~@2 bb3 ~@17 bb3 ~@3", C: "[~@8 ab3 ~@14 ab2@7 ~@18]/2", D: "~@20 ab3 ~@3", E: "~ bb3 ~@10",
  F: "~@11 ab3@2 ~@11", G: "~@8 bb2 ~@15", H: "[~@8 ab3 ~@14 ab2@21 ~@4]/2", I: "~@2 ab3 ~@21", J: "~@8 ab3 ~@15",
  K: "~@8 c4 ~@11 ab3 ~@3", L: "~@8 gb4@3 ~@13", M: "[~@10 b3@3 ~@11]/2",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.7)

// chords · piano
const piano = note("<~ A@5 ~@29 B@2 C@8 D ~@5 E@5 ~@13 F@2 G@8 H ~@5 I@7>".pickRestart({
  A: "[~@29 gb3@2 ~ gb3@3 ~@3 gb3@3 ~@3 gb3@2 ~@7 eb3@3 ~@3 eb3@3 gb3@3 ~@9 eb3@3 gb3@3 ~@3 gb3@2 ~ gb3@3 ~@9 eb3@3 gb3@3 ~@3 gb3@2 ~ gb3@3 ~@3 gb3@2 ~@2, ~@23 eb2@21 ~@3 eb2@22 ~@2 eb2@21 ~@3 eb2@22 ~@3, ~@23 eb4@7 ~@2 eb4@8 ~@22 eb4@12 ~@18 gb3@7 ~@21, ~@23 gb3@5 ~@4 bb3@6 ~@3 bb3@5 ~@16 bb3@6 gb3@7 ~@2 [bb3,eb4]@7 ~@2 [bb3,eb4]@13 ~@2 [bb3,eb4]@8 ~ [bb3,eb4]@7 ~@3, ~@26 eb3@7 ~@2 eb3@11 ~ [gb3,eb4]@8 ~ [gb3,bb3,eb4]@5 ~@4 eb3@6 ~@9 eb3@7 ~@2 eb3@5 ~@10 eb3@7 ~@2 eb3@5 ~@2]/5", // Eb5 Ebm
  B: "[~@23 [f2,bb3]@9 ab3@3 ~@6 eb4@3 f2@2 ~@2, ~@23 eb4@15 ab3@8 ~@2, ~@35 f2@7 ~@6]/2", // Bb5
  C: "[~@29 [g3,bb3,eb4]@4 ~@5 [bb3,eb4]@5 ~@10 [bb3,eb4]@8 ~ g3@3 [eb2,eb3]@6 [bb3,d4]@6 g3 ~@2 g3@3 ~@3 g3@3 bb3@2 ~@10 [g3,bb3,d4]@8 ~ g3@3 g2@6 [g3,c4,eb4]@5 ~@4 c2 ~@5 c3@6 ~@3 [c2,c3]@6 ~@6 c2 ~@5 [g3,c4,eb4]@3 ~@9 eb4@6 ab3@2 ~@4 f2@3 eb4@3 bb2, ~@23 eb2@21 ~@3 eb2@16 ~@8 g2@11 ~ g2@9 g3@5 ~@28 g3@10 ~@5 [g3,c4,eb4]@8 ~ [g3,c4,eb4]@10 ~@14 ab3@4 ~@5 [ab3,eb4]@5 ~@5, ~@29 eb3@9 g3@3 ~@3 [bb3,eb4]@8 ~ eb3@9 [bb3,eb4]@8 ~ g3@5 ~@4 [bb3,d4]@7 ~@2 d4 ~@2 [bb3,d4]@8 ~@10 [bb3,d4]@8 ~@7 [c4,eb4]@13 ~@54, ~@95 g2@16 ~@8 c3@10 ~@2 c2@10 ~@17 c2@8 ~ f2@15 ~@10]/8", // Eb Eb5 Eb Bb Gm Cm C Cm …
  D: "~@2 ab3 ~@2 ab3@3 ~@9 bb2@3 bb3@2 ~@2, ~@5 eb4@6 bb3@7 ~@6, ~@8 bb2@6 d4@7 ~@3",
  E: "[~@23 gb4@6 bb3@2 ~@7 bb3@3 ~@3 bb3@3 ~@3 ab3 ~@8 ab3@2 ~@7 ab3@2 ~@7 eb3@2 ~ eb3@4 ~@2 gb3@3 eb3@2 ~ eb3@2 ~ b1@2 ~@4 [b2,gb3]@2 ~ b2@3 b1@3 b2@2 ~@4 [ab2,d3,f3] ~@3, ~@23 gb2@10 ~@2 gb2@5 ~ gb2@5 ~ bb2@6 ab3@5 ~@4 ab3@5 ~@10 bb3@7 ~@2 bb3@8 ~@10 gb3@6 ~@10, ~@23 bb3@5 ~@4 [bb3,db4,gb4]@5 ~ [db4,gb4]@7 ~@8 [d4,f4]@7 ~@2 [d4,f4]@8 ~@50, ~@56 bb2@6 ~@3 bb2@5 ~ eb2@15 ~@12 b1@7 ~@8 bb1@5 ~@2]/5", // B5 Ddim Gb Gb5 Dm
  F: "[~@23 [f2,bb3]@9 ab3@3 ~@9 f2@2 ~@2, ~@23 eb4@15 ab3@8 ~@2, ~@35 f2@6 eb4@5 ~@2]/2", // Bb5
  G: "[~@29 [g3,bb3,eb4]@4 ~@5 [bb3,eb4]@5 ~@10 [bb3,eb4]@8 ~ g3@3 ~@3 g3@2 ~ [bb3,d4]@6 g3 ~@2 g3@3 ~@3 g3@3 bb3@2 ~@10 [g3,bb3,d4]@8 ~ g3@3 g2@6 [g3,c4,eb4]@5 ~@4 c2 ~@5 c3@6 ~@3 [c2,c3]@6 ~@6 c2 ~@5 [g3,c4,eb4]@3 ~@9 eb4@6 ab3@2 ~@4 f2@3 eb4@3 bb2, ~@23 eb2@21 ~@3 eb2@16 ~@2 [eb2,eb3]@6 g2@11 ~ g2@9 g3@5 ~@28 g3@10 ~@5 [g3,c4,eb4]@8 ~ [g3,c4,eb4]@10 ~@14 ab3@4 ~@5 [ab3,eb4]@5 ~@5, ~@29 eb3@9 g3@3 ~@3 [bb3,eb4]@8 ~ eb3@9 [bb3,eb4]@8 ~ g3@5 ~@4 [bb3,d4]@7 ~@2 d4 ~@2 [bb3,d4]@8 ~@10 [bb3,d4]@8 ~@7 [c4,eb4]@13 ~@54, ~@95 g2@16 ~@8 c3@10 ~@2 c2@10 ~@17 c2@8 ~ f2@15 ~@10]/8", // Eb Eb5 Bb Gm Cm C Cm Eb …
  H: "~@2 ab3 ~@2 ab3@3 ~@9 bb2@4 ~@3, ~@5 eb4@6 bb3@7 ~@6, ~@8 bb2@6 d4@7 ~@3",
  I: "[~@23 gb4@6 bb3@2 ~@7 bb3@3 ~@3 bb3@3 ~@3 ab3 ~@8 ab3@2 ~ ab3@3 ~@3 ab3@2 ~@4 eb3 ~@2 eb3@3 ~@3 eb3@2 ~ eb3@3 eb2@3 eb3@2 ~@4 ab3 ~@2 ab3@3 ~@3 ab3@2 ~ ab3@3 bb2@3 ab3 ~@5 eb3 ~@2 eb3@3 ~@3 eb3@2 ~ eb3@3 eb2@3 eb3@2 ~@4 f3 ~@5 bb2 ~@2 [bb2,f3,ab3,d4] ~@2 [bb2,f3,ab3]@4 ~@2 [eb2,gb3,bb3,eb4]@2 ~@2, ~@23 gb2@10 ~@2 gb2@5 ~ gb2@5 ~ bb2@6 ab3@5 ~@19 bb3@6 ~@3 bb3@8 ~@31 bb3@6 ~@3 bb3@8 ~@7 [f3,ab3,d4]@5 ~@14, ~@23 bb3@5 ~@4 [bb3,db4,gb4]@5 ~ [db4,gb4]@7 ~@8 [d4,f4]@7 ~@2 [d4,f4]@8 ~@31 d4@8 ~ d4@7 ~@41 d4@2 ~@8, ~@56 bb2@6 ~@3 bb2@5 ~ eb2@6 ~@3 eb2@6 ~@9 bb2@7 ~@2 bb2@6 ~@9 eb2@6 ~@3 eb2@6 ~@9 bb2@6 ~@19]/7", // Bb7 Ebm Ddim Gb Gb5 Dm
})).s("gm_piano").gain(0.52).pan(0.4)

// chords · piano · soft notes
const piano_soft = note("<~@38 A@2 ~ B C ~ D ~@27 E@2 ~ B C ~ D F ~@12>".pickRestart({
  A: "[~@11 g3@2 ~@4 eb3@3 g3@7 ~@2 g3@4 ~@2 g3 ~@8 g3@2 ~@2]/2", B: "~ g3 ~@8 g3 ~", C: "~@17 g3@2 ~@5", D: "~@5 ab3",
  E: "[~@11 g3@2 ~@4 eb3@3 g3@7 ~@2 g3@4 ~@2 g3 ~@12]/2", F: "~@10 bb3 ~",
})).s("gm_piano").gain(0.26).pan(0.4)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@6 A@2 B@2 C@2 ~@80>".pickRestart({
  A: "[~@20 [f4,gb4,bb4]@12 eb4@9 ~@7]/2", B: "[~@8 [bb4,b4,eb5]@11 ~ ab4@11 ~ [eb4,ab4,b4]@11 ~@5]/2",
  C: "[~@8 [f4,ab4,b4]@10 ~@2 ab4@9 ~@19]/2", // Fdim
})).s("gm_electric_guitar_jazz").gain(0.2).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~ A B A B C B@15 D B@16 E@3 B E@4 B@9 F B@16 E@3 B E@4 B@11 G>".pickRestart({
  A: "~@11 x ~@11 x", B: "~@8 x ~@2 x ~@11 x", C: "~@17 x ~@5 x", D: "~@8 x ~@14 x", E: "~@8 x ~@2 x ~@8 x ~@2 x",
  F: "~@23 x", G: "~@17 x ~@2 x ~@3",
})).gain(0.52)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@6 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
>`.pickRestart({
  A: "~@17 x ~@6",
})).gain(0.07)

// drums · snare
const snare = s("sd").struct("<~@2 A@19 B A@15 C B@3 C B@4 A@9 D A@7 E A@7 C B@3 C B@4 A@7 F A B A G>".pickRestart({
  A: "~@5 x ~@8 x ~@5 x ~@3", B: "~@5 x ~@8 x ~@9", C: "~@2 x!2 ~ x ~@3 x ~@14", D: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@9",
  E: "~@5 x ~@3 x ~ x!2 ~@11", F: "~@2 x!2 ~ x ~@18", G: "~@5 x ~@3 x ~ x ~@12",
})).gain(0.59)

// drums · low tom
const low_tom = s("lt").struct("<~ A ~@19 B ~@15 C ~@3 C ~@13 B ~@7 D ~@7 C ~@3 C ~@11 E ~ F ~ G>".pickRestart({
  A: "~@15 x ~ x ~@6", B: "~@9 x!2 ~", C: "~@15 x ~ x!2 ~ x ~@3", D: "~@17 x ~@6", E: "~@9 x ~@4 x!2 ~ x!2 ~ x ~@3",
  F: "~@3 x", G: "~@7 x ~@4",
})).gain(0.52)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@37 A ~@3 A ~@29 A ~@3 A ~@16>".pickRestart({
  A: "~@7 x ~@4",
})).gain(0.26)

// drums · hihat
const hihat = s("hh").struct("<A B ~@3 A C@15 D C@16 E@3 C E@4 C@8 F A C@16 E@3 C E@4 C@8 F A F ~>".pickRestart({
  A: "~@23 x", B: "~@5 x ~@18", C: "~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@5 x", D: "~@2 x ~@2 x ~@2 x ~@2 x ~@11 x",
  E: "~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x", F: "~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@6",
})).gain(0.46)

// drums · mid tom
const mid_tom = s("mt").struct("<~ A ~@19 B ~@15 C ~@3 C ~@13 B ~@7 A ~@7 C ~@3 C ~@11 D ~ E ~ B>".pickRestart({
  A: "~@7 x ~@2 x ~", B: "~@17 x ~@6", C: "~@8 x ~@2 x ~@12", D: "~@11 x ~@12", E: "~@5 x",
})).gain(0.52)

// drums · open hat
const open_hat = s("oh").struct("<~@6 A@15 B A@16 B@3 A B@4 A@9 C A@16 B@3 A B@4 A@7 ~ A D A E>".pickRestart({
  A: "~@7 x ~@2 x ~", B: "~@7 x ~@4", C: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@9",
  D: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@6", E: "~@2 x ~@2 x ~@2 x ~@15",
})).gain(0.46)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@19 B ~@15 B ~@3 B ~ B ~ B ~@8 B@2 ~@7 B ~@7 B ~@3 B ~ B ~ B ~@7 B@4 C
>`.pickRestart({
  A: "~@11 x ~@11 x", B: "~@23 x", C: "~@5 x",
})).gain(0.46)

// drums · ride
const ride = s("rd").struct(`<
  ~@2
  [~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x]!2
  [~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@5 x]
  [~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3]
  ~@86
>`).gain(0.52)

stack(
  bass, string_ensemble_2, french_horn, trombone, electric_guitar_clean, electric_guitar_clean_2, piano, piano_soft,
  electric_guitar_jazz, kick, kick_soft, snare, low_tom, low_tom_soft, hihat, mid_tom, open_hat, crash, ride
)

More by Mina