Strudelify

Questione di feeling (feat. Mina)

Mina

KeyB♭ majorTempo73 bpm
0:00/0:00
// Questione di feeling (feat. Mina) — Mina
// 73 bpm, 4/4, key A# major. 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 85 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(73/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("<~@2 A B C D E F G H ~@75>".pickRestart({
  A: "[bb3,eb4,g4]@7 ~ [c4,f4,a4]@7 ~", B: "~ bb4 [bb3,eb4]@2, d5 ~, ~ f4@3 ~@4",
  C: "g4@2 ~@6 a4@7 ~, ~ eb4 ~@2, ~@6 g4@9 ~", D: "~@2 bb3@4 ~@2 g3@7 ~, g4", E: "g5 bb4 eb5 g5 f5@2 c5 f5, c5@7 ~@9",
  F: "d5 f4 bb4 d5 [eb3,g4]@2 [d3,f4]@2, bb3 ~", G: "g4@2 bb3@2 eb4@2 g4@2 g4@4 gb4@3 ~, c3@8 [d3,c4,d4]@7 ~",
  H: "g4 bb3 d4 g4 g3@4, g2",
})).s("gm_piano").gain(0.39).pan(0.3)

// chords · piano · soft notes · F
const piano_soft = note("<~@3 [~ g4] [~@2 c4@4 ~@2 d4@7 ~] [~@3 c4 ~@4] [g4 [f4,a4]] ~@78>")
  .s("gm_piano").gain(0.26).pan(0.3)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@53 A@2 B C@3 ~ D@2 E@2 F@3 G@3 H@5 I@7 J@3>".pickRestart({
  A: "[~@8 ab3@16 f3@3 eb3@3 db3@2]/2", B: "bb2", C: "[[gb3,db4]@24 ~@8 ab3@15 ~, bb3@2 ~, ~ c4]/3",
  D: "[bb3@3 [eb3,c4], gb3@11 ~@5]/2", E: "[bb3@4 ab3@5 ~@7, [db3,f3]@9 ~@7]/2",
  F: "[[gb3,bb3,eb4]@3 [eb3,c4] [f3,bb3,db4]@2, ~ ab3]/3", G: "[~ f4@7 gb4@12 [c4,eb4,ab4]@4, ~ [db4,bb4]@19 ~@4]/3",
  H: "[db4@2 eb4 ~@5 gb4@6 [eb4,ab4]@2 ~@2 f4 ab4, f4@2 ~@3, ~@12 db4@43 ~@9 db4@16, ~@2 bb3@5 [ab3,c4]@3, ~@3 bb4@4 ~@3]/5", // Ab5 Ab
  I: "[~@2 eb4 ~ eb4@3 gb4@3 ~@10 gb4@6 [c4,bb4,eb5]@2, bb3@44 ab3@20 bb3@39 ~@9, ~@12 db4@28 c4@25 ~@7 db5@32 ~@8, ~@5 [eb4,ab4] [db4,f4]@4 eb4@4, ~@15 bb4@11 ~@2]/7", // Cm7 Ab5 Db
  J: "[c5@6 b4@5 bb4@26 ~@11, [ab3,db4,f4,eb5]@37 ~@11]/3", // Db
})).s("gm_string_ensemble_1").gain(0.19).pan(0.7)

// other · pad new age · Gm
const pad_new_age = note("<[~@15 [bb4,d5,g5]] [g4 ~@3] ~@83>").s("gm_pad_new_age").gain(0.12).pan(0.3)

// chords · epiano2
const epiano2 = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S I T U V I T W V X Y Z@3 AA AB I AC U V I T W V I AD U V I AD W V AE AF AG AH
  AE AI AJ AK AE AL AM AN AO AP AQ AR AE AS AJ AR AE AT AU AK AV AW AQ AX AE AY AZ BA@3
>`.pickRestart({
  A: "~@4 [d5,f5,g5,bb5]@4 [g4,bb4,d5,f5]@4 [f4,g4,bb4,d5]@3 ~, [g2,g3]", B: "[c3,bb3,eb4,g4] [f2,f3,c4,g4,a4]",
  C: "[bb2,c4,d4,f4]@2 ~ eb4, ~ [eb3,bb3,f4,g4]", D: "[c3,c4,eb4,g4]@2 [c4,d4] [c4,d4,gb4], ~ [d2,d3,g4]",
  E: "[g2,bb3,c4,d4,g4]", F: "[c3,bb3,eb4,g4] [f3,c4,g4,a4]", G: "[bb2,bb3,d4,f4] [eb3,bb3,f4,g4]",
  H: "[c3,c4,eb4,g4]@2 g4 gb4, ~ [d3,c4,d4]", I: "[g2,bb3,d4,g4]", J: "[c3,eb4,g4] [f3,c4,g4,a4], bb3@3 ~@5",
  K: "[bb2,d4,f4,a4] [eb3,bb3,f4,g4]", L: "[c3,bb3,f4,g4,bb4]@2 g4 gb4, ~ [d3,c4,d4]",
  M: "[g2,g3,c4,d4,g4] [c3,g3,bb3,d4,eb4]", N: "[f2,c4,f4,g4,a4] [bb2,c4,d4,f4]", O: "[eb3,bb3,f4,g4] [c3,c4,eb4,g4]",
  P: "g4@4 gb4@3 ~ [c3,bb3,eb4,g4]@8, [d3,c4,d4]@7 ~@9", Q: "[f3,f4,g4,c5] [bb2,f4,a4,c5]",
  R: "[eb3,g4,bb4,f5] [c3,c4,eb4,g4,bb4]", S: "[c4,d4,g4] [d2,c4,d4,gb4], d3", T: "[c3,bb3,eb4,g4]",
  U: "[bb3,eb4,g4] [a3,c4,f4], f2", V: "[bb2,f3,c4,d4,f4]", W: "[bb3,eb4,g4]@8 [a3,c4,f4]@7 ~, f2",
  X: "[c3,bb3,eb4,g4]@2 bb4 a4, ~ [f3,c4,f4]", Y: "[bb2,c4,d4,f4] [eb3,bb3,eb4,f4,g4]",
  Z: "[[c3,c4,eb4,g4]@2 g4 gb4 ~@4 [c3,eb5,g5,bb5]@2 [f3,c5,f5,a5]@2, ~ d4@4 ~, ~ d3 [g2,bb3,g4]@3 ~, ~@4 c4@3 ~@17]/3", // Cm Cm7 F Gm
  AA: "[bb2,c4,d4,f4]@2 [bb4,d5] [g4,bb4,d5], ~ [eb3,f5]", AB: "[c3,eb4,g4,bb4]@2 g4 gb4, ~ [d3,c4,d4]",
  AC: "[c3,eb4,g4]", AD: "[c3,bb3,d4,eb4,g4]", AE: "[bb2,bb3,db4,f4]", AF: "[eb2,eb3,db4,f4,gb4,ab4]",
  AG: "[bb3,db4,gb4] [eb4,ab4], ab2, ~@8 c4@5 ~@3", AH: "[db2,db3,ab3,db4,f4]", AI: "[eb2,eb3,db4,f4,gb4,ab4]@15 ~",
  AJ: "[bb3,db4,gb4] [c4,eb4,ab4], ab2", AK: "[db3,ab3,eb4,f4]", AL: "[eb3,bb3,db4,eb4,gb4]",
  AM: "[bb3,db4,gb4]@8 [c4,eb4,ab4]@7 ~, ab2", AN: "~@3 ab4, [db3,ab3,db4,eb4,f4]", AO: "~@3 bb4, [bb2,bb3,db4,f4]",
  AP: "~@3 bb4, [eb3,db4,f4,gb4,ab4]", AQ: "[db4,gb4,bb4] [c4,eb4,ab4], ab2", AR: "[db3,ab3,c4,f4]",
  AS: "[eb3,bb3,db4,gb4]", AT: "[eb3,bb3,db4,f4,gb4]", AU: "[gb3,bb3,db4] [ab3,c4,eb4], ab2", AV: "[bb2,db4,f4,bb4]",
  AW: "ab4@6 bb4@9 ~, [eb3,db4,f4,gb4]", AX: "~@5 ab4@3, [db3,ab3,eb4,f4]", AY: "~@3 db4@5, [eb3,f3,gb3,bb3]",
  AZ: "[gb3,db4] [ab3,c4,eb4], [ab2,bb3]", // Gb5 Ab Absus2
  BA: "[[ab3,bb3,c4,eb4]@6 [b3,db4,eb4,ab4]@5 [ab3,bb3,c4,f4]@32 ~@5, [db2,db3]@2 ~]/3", // Ab Abm Fm Db
})).s("gm_epiano2").gain(0.35).pan(0.9)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@2 A B C@2 D@3 E F@3 G@3 H I J@2 K@3 L M@3 N O P@3 Q R@5 L S@3 T@4 U V@3 W X@3 Y Z@3 AA ~@26
>`.pickRestart({
  A: "~@4 c3 d3 eb3 a3@3 g3 f3@5, ~@7 ab3 ~@8", B: "~@4 bb2 c3 d3 ~ g3@7 ~",
  C: "[~ c3 d3 eb3 d3@2 eb3 d3 ~ d3@5 [d3,eb3] d3@11 ~@6]/2", // Ebmaj7
  D: "[~@4 c4 d4@2 eb4 bb4 ~ a4@3 g4 f4 d4@3 a4 ~ a4!3 f4 a4 ~ g4 g4@6 c4@2 d4 eb4 d4 ~ d4@9]/3",
  E: "g4@5 ~@3, gb4 ~@15",
  F: "[g3@3 ~@2 f3!2 g3 g3@2 f3 f3@2 g3 g3@5 ~@2 f3!2 g3 g3@2 f3 f3@2 g3 g3@5 d3 g3@2 a3 bb3@2 a3 a3@4 g4@2]/3",
  G: "[g4@5 f4!2 g4 g4@2 f4 f4@2 g4 g4@7 f4!2 g4 g4@2 f4 f4@2 g4 g4@6 ~ d4 g4 a4 bb4@2 a4@3 d4 g4 a4]/3",
  H: "bb4@3 a4@2 g4@2 bb4@2 bb4@4 bb3 [bb3,b3] bb3", I: "bb3@2 a3 a3@2 g3 a3@3 f3@4 a3!3, ~@9 g3 ~@6",
  J: "[a3@2 g3 g3@2 f3 g3@6 ~ g3 a3 bb3@2 a3@3 ~ [g3,bb3] [a3,c4] [bb3,d4]@3 [a3,c4] [a3,c4]@2 [g3,bb3]@3]/2", // Gm Am Bb Am Gm
  K: "[[g3,bb3]@6 ~@2 [g3,bb3]@3 [f3,a3]@3 [eb3,g3]@9 ~ [g3,bb3]@3 [f3,a3]@3 [eb3,g3]@9 [c3,f3]@7 ~ f3]/3", // Gm F Eb Gm F Eb F5
  L: "g3 f3 d3 g3@2 f3@11",
  M: "[[g3,bb3]@8 [bb3,d4]@3 [a3,c4]@3 [g3,bb3]@10 [bb3,d4]@3 [a3,c4]@3 [g3,bb3]@9 [f3,a3]@8 f4]/3", // Gm Bb Am Gm Bb Am Gm F
  N: "g4 f4 d4 g4@2 ~@2 [c4,db4]@2 c4!2 c4@2 bb3 g3@2, ~@5 f4@11", O: "~@3 bb3!2 ~ bb3 bb3@2 a3@2 g3@2 f3 d3@2",
  P: "[~ a4!3 a4@2 f4 a4@2 g4@9 ~@3 c3 d3 eb3 d3 d3@5 ~ d3@8 ~@2 d5 ~ [c5,db5]@2 bb4@2 [f4,g4]]/3", // Dbmaj7 Fsus2
  Q: "g4@3 bb4 ~ bb4!3 ~ a4@4 d4 a4!2",
  R: "[a4!5 f4 a4 g4@11 ~@3 eb4@2 eb4 d4 ~ d4 d4@2 gb4@2 g4@8 ~ [g4,bb4] ~@2 [f4,a4] ~@2 [eb4,g4]@10 [g4,bb4]@3 [f4,a4]@2 ~ [eb4,g4]@9 [c4,f4]@7 ~ f3]/5", // Gm F Eb Gm F Eb F5
  S: "[[g4,bb4]@8 [g4,bb4]@3 [f4,a4]@3 [eb4,g4]@9 ~ [g4,bb4]@3 [f4,a4]@3 [eb4,g4]@9 [c4,f4]@7 ~ f4]/3", // Gm F Eb Gm F Eb F5
  T: "[g4 f4 d4 g4@2 ~@2 [db4,d4]@2 [c4,db4] c4 c4@2 bb3 g3@4 ~ [d4,bb4] [d4,bb4]@2 [c4,a4] [c4,a4]@3 [bb3,g4] [bb3,g4]@2 [a3,f4] [bb3,g4]@5 [d4,bb4] [d4,bb4]@2 [c4,a4] [c4,a4]@3 [bb3,g4] [bb3,g4]@2 [a3,f4] [bb3,g4]@4 ~ [d4,bb4] [d4,bb4]@2 [c4,a4] [c4,a4]@2 [bb3,g4] [a3,f4]@4 ~ f4, ~@5 f4@11 ~@48]/4", // Dmaj7 Dbmaj7 Gm F Eb Dm Eb Gm …
  U: "g4 f4 d4 g4@2 f4@11",
  V: "[~@3 [d4,bb4] [d4,bb4]@2 [c4,a4] [c4,a4]@3 [bb3,g4] [bb3,g4]@2 [a3,f4] [bb3,g4]@6 [d4,bb4] [d4,bb4]@2 [c4,a4] [c4,a4]@2 [bb3,g4] [bb3,g4]@2 [a3,f4] [bb3,g4]@5 [d4,bb4] [d4,bb4]@2 [c4,a4] [c4,a4]@2 [bb3,g4] [a3,f4]@5 ~]/3", // Gm F Eb Dm Eb Gm F Eb …
  W: "f3@2 ~ g3@2 ~ bb3@2 ~ c4@3 d4@2 ~@2",
  X: "[[db4,bb4]@8 [f4,db5]@3 [eb4,c5]@2 ~ [db4,bb4]@9 ~ [f4,db5]@3 [eb4,c5]@2 ~ [db4,bb4]@9 c4@7 ~ ab3, ~@39 ab4@5 ~@4]/3", // Gb Db Cm Gb Db Cm Gb
  Y: "bb3 ab3 f3 bb3@2 ab3@11",
  Z: "[[db4,bb4]@8 [f4,db5] ~@2 [eb4,c5] ~@2 [db4,bb4]@10 [f4,db5] ~@2 [eb4,c5] ~@2 [db4,bb4]@9 [c4,ab4]@7 ~ ab4]/3", // Gb Db Cm Gb Db Cm Gb Fm
  AA: "bb4 ab4 f4 bb4@2 ab4@11",
})).s("gm_electric_guitar_jazz").gain(0.46)

// bass · synth bass 2
const bass = note(`<
  ~@10 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z L M N AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
  AS AT AM AN AO AP AQ AR AS AT AM AN AO AP AQ AR AS AT AM AN AO AP AQ AR AS AU@3
>`.pickRestart({
  A: "c2@6 ~ c2 f1@8", B: "bb1@6 ~ bb1 eb2@6 eb2 bb1", C: "c2@6 ~ c2 d2@5 d2@3", D: "g1@8 c2@6 ~ c2",
  E: "f1@8 bb1@6 ~ bb1", F: "eb2@5 bb1@3 c2@8", G: "d2@5 d1@2 ~ c2@6 ~ c2", H: "f2@8 bb1@6 ~ bb1",
  I: "eb2@3 bb1@3 eb1@2 c2@6 ~ c2", J: "d2@8 d2@7 ~", K: "g1 d1 f1 g1 ~@9 g1 bb1 g1", L: "c2 g1 bb1 c2 ~@10 c2 g1",
  M: "f1 c1 d1 f1 ~@10 f1 g1", N: "bb1 g1 bb1@5 ~ bb1@3 bb1@3 bb1 ~", O: "~@3 g1 ~@3 g1!2 ~@4 g1 bb1 g1",
  P: "c2 g1 bb1 c2 ~@3 c1!2 ~@5 f2 c2", Q: "f1 c1 d1 f1 ~@3 f1!2 ~@5 f1 g1", R: "bb1 g1 bb1@14",
  S: "c2@6 ~ c2 f1@5 ~ f1 g1", T: "bb1@6 ~ bb1 ~ bb3 eb3 bb2 eb2 g3@3, ~@4 eb1 ~@3", U: "c1@6 ~ c1 d1@8",
  V: "g1@4 ~ g1@3 g1@8", W: "c3 f2", X: "bb2@8 eb2@5 d2@3", Y: "c2 d2", Z: "g2@5 g1@10 g1",
  AA: "g1 d1 f1 g1 ~@3 g1 ~@5 g1 bb1 g1", AB: "c2 g1 bb1 c2 ~@3 c1 ~@6 c2 g1", AC: "f1 c1 d1 f1 ~@3 f1 ~@6 f1 g1",
  AD: "bb1 g1 bb1@6 ~ bb1@3 ~ bb1@2 ~", AE: "g1 d1 f1 g1@9 ~ g1 bb1 g1", AF: "c2 g1 bb1 c2@9 ~ c2 g1@2",
  AG: "f1 c1 d1 f1@11 f1 g1", AH: "bb1 g1 bb1@6 ~ bb1 bb2@2 bb2 bb2@2 ~", AI: "g1 d1 f1 g1@10 g1 bb1 g1",
  AJ: "c2@7 g1 c2 g1 c2@6", AK: "f1 c1 d1 f1@3 ~ f1@2 f1 f1@6", AL: "bb1@7 ~ bb1@3 bb1@3 bb1@2",
  AM: "bb1 ~ ab2 bb2 ~@2 bb1@10", AN: "eb2 ~ db3 eb3 ~@2 eb1@10", AO: "ab1@8 ab1@6 ab1 bb1", AP: "db2@9 ~ db2@4 eb2@2",
  AQ: "bb1@4 ~@2 ab2 bb2 bb1@6 bb1 db2", AR: "eb2 ~ db3 eb3 ~@2 eb2@2 eb1@5 ~ eb1 gb1",
  AS: "ab1@7 eb2 ab1 ~ ab1@4 ab2 ab1", AT: "db2@6 db1@6 db2@3 ~", AU: "[db2 db1@5 ~@2]/3",
})).s("gm_synth_bass_2").gain(0.48)

// chords · vibraphone
const vibraphone = note(`<
  ~@17 A B C@3 ~ D@3 ~ D@3 ~@4 E@3 ~ F@3 ~ G@3 ~ F@3 ~@5 H@3 ~ I@3 ~ H@3 ~ I@3 ~ H@3 ~ I@3 ~ H@3 ~@4
>`.pickRestart({
  A: "c5!2", B: "[c5,f5] [d5,g5]", C: "[[d5,a5] [d5,d6]@4 ~]/3",
  D: "[~ g4@2, ~ f4@4 ~, ~@11 g4@5 ~@32, ~@7 bb4@16 ~]/3",
  E: "[~ [bb3,d4,g4]@2, [eb4,f4,bb4]@2 ~, ~ a4@4 ~, ~ [d4,g4] ~@4, ~@3 gb4@8 ~]/3", // Gm Ebsus2 G5
  F: "[~ [d4,g4]@2, ~ c4@4 ~, ~@4 f4@3 [f4,bb4]@16 ~, ~@11 [d4,g4]@5 ~@32]/3", // G5 Bb5 G5
  G: "[~@7 [f4,bb4]@16 ~, ~ c4@4 ~, ~@4 f4@3 ~@17, ~@11 [d4,g4]@32 ~@5]/3", // Bb5 G5
  H: "[~ [f4,bb4]@2, ~ eb4@4 ~, ~@4 ab4@3 [ab4,db5]@16 ~, ~@11 [f4,bb4]@5 ~@32]/3", // Bb5 Db5 Bb5
  I: "[~@7 [ab4,db5]@16 ~, ~ eb4@4 ~, ~@4 ab4@3 ~@17, ~@11 [f4,bb4]@32 ~@5]/3", // Db5 Bb5
})).s("gm_vibraphone").gain(0.19).pan(0.8)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@20 A B@8 ~@7 C@8 D@8 E@8 F@16 G@7 ~@2>".pickRestart({
  A: "~@4 [bb3,d4,g4] [bb3,d4,g4]@11", // Gm
  B: "[~@4 [eb4,g4,c5] [eb4,g4,c5]@15 [f4,a4,c5] [f4,a4,c5]@15 [d4,f4,bb4] [d4,f4,bb4]@15 [bb3,d4,g4] [bb3,d4,g4]@15 [eb4,g4,c5] [eb4,g4,c5]@15 [f4,a4,c5] [f4,a4,c5]@15 [d4,f4,bb4] [d4,f4,bb4]@15 ~@12]/8", // Cm F Bb Gm Cm F Bb
  C: "[~@4 [eb4,g4,c5] [eb4,g4,c5]@14 ~ [f4,a4,c5] [f4,a4,c5]@13 ~@2 [d4,f4,bb4] [d4,f4,bb4]@13 ~@2 [bb3,d4,g4] [bb3,d4,g4]@13 ~@2 [eb4,g4,c5] [eb4,g4,c5]@13 ~@2 [f4,a4,c5] [f4,a4,c5]@13 ~@2 [d4,f4,bb4] [d4,f4,bb4]@13 ~@2 [bb3,d4,g4] [bb3,d4,g4]@11]/8", // Cm F Bb Gm Cm F Bb Gm
  D: "[~@4 [eb4,g4,c5] [eb4,g4,c5]@14 ~ [f4,a4,c5] [f4,a4,c5]@13 ~@2 [d4,f4,bb4] [d4,f4,bb4]@13 ~@2 [bb3,d4,g4] [bb3,d4,g4]@13 ~@2 [eb4,g4,c5] [eb4,g4,c5]@13 ~@2 [f4,a4,c5] [f4,a4,c5]@13 ~@2 [d4,f4,bb4] [d4,f4,bb4]@13 ~@14]/8", // Cm F Bb Gm Cm F Bb
  E: "[~@4 [gb4,bb4,eb5] [gb4,bb4,eb5]@14 ~ [ab4,c5,eb5] [ab4,c5,eb5]@14 ~ [f4,ab4,db5] [f4,ab4,db5]@14 ~ [bb3,db4,f4] [bb3,db4,f4]@14 ~ [gb4,bb4,eb5] [gb4,bb4,eb5]@14 ~ [ab4,c5,eb5] [ab4,c5,eb5]@14 ~ [f4,ab4,db5] [f4,ab4,db5]@14 ~@13]/8", // Ebm Ab Db Bbm Ebm Ab Db
  F: "[~@4 [gb4,bb4,eb5] [gb4,bb4,eb5]@14 ~ [ab4,c5,eb5] [ab4,c5,eb5]@14 ~ [f4,ab4,db5] [f4,ab4,db5]@14 ~ [bb3,db4,f4] [bb3,db4,f4]@14 ~ [gb4,bb4,eb5] [gb4,bb4,eb5]@14 ~ [ab4,c5,eb5] [ab4,c5,eb5]@14 ~ [f4,ab4,db5] [f4,ab4,db5]@14 ~ [bb3,db4,f4] [bb3,db4,f4]@11]/8", // Ebm Ab Db Bbm Ebm Ab Db Bbm
  G: "[~@4 [gb4,bb4,eb5] [gb4,bb4,eb5]@14 ~ [ab4,c5,eb5] [ab4,c5,eb5]@14 ~ [f4,ab4,db5] [f4,ab4,db5]@14 ~ [bb3,db4,f4] [bb3,db4,f4]@14 ~ [gb4,bb4,eb5] [gb4,bb4,eb5]@14 ~ [ab4,c5,eb5] [ab4,c5,eb5]@15 ~@12]/7", // Ebm Ab Db Bbm Ebm Ab
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.7)

// bass · clavinet
const bass_2 = note(`<
  ~@20 A B C ~ A B C ~@9 D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AA AB AC AD AE AF AG AH
  AA AB AC AD AE AF AI ~@3
>`.pickRestart({
  A: "~@5 g1!2 g2 g1 d2 g2 ~@5", B: "~ c2!2 c3 c2!3 ~@2 c2!2 ~@3 c2 g1", C: "f1 c1 d1 f1 ~@2 f1 ~ f2 f1 c2 f2 ~@2 f1!2",
  D: "~@2 c2 g2 c3 c2 ~@3 c2 g2 c3 c2 ~@3", E: "f1 ~ c2 f2 f1 ~@3 c2 f2 f1 ~ f1@2 c2 f2",
  F: "bb1 ~@2 f2 bb2 bb1 ~@3 f2 bb2 ~ bb1 ~ f2 bb2", G: "g1 ~@2 d2 g2 ~@2 g1 ~ d2 g2 ~@3 g1 g2",
  H: "c2 ~@2 g2 c3 c2 ~@2 g2 c3 c2 ~@3 c2 g2", I: "f1 ~@2 c2 f2 ~@3 f1 ~ c2 f2 f1 ~ c2 f2",
  J: "bb1 ~@2 f2 ~ bb2 bb1 ~ f2 ~@2 bb2 bb1 f2 bb2 ~", K: "~ g1 d2 g2 ~ g1 ~ g1!2 d2 g2 ~@2 d2 g2 ~",
  L: "c2@3 g2 ~ c3 c2!2 g2 c3 ~@4 c2 g2", M: "f2 ~ f1 c2 f2 f1 ~@4 c2 ~ f2 f1 c2 f2",
  N: "bb1 f2 bb2 ~@2 f2 bb2 bb1 ~@2 bb1 f2 bb2 bb1 ~@2", O: "g1 d2 g2 ~ g1 ~@2 d2 g2 ~ g1@2 d2 g2 ~ g1",
  P: "c2 ~ g2 ~ c3 c2 g2 ~@3 c3 ~ c2 g2 c3 ~", Q: "~ f1 c2 ~ f2 c2 ~ f2 f1 c2 f2 ~ f2@2 f1 c2",
  R: "bb1 ~ f2 ~ bb2 bb1 f2 ~@3 bb2 bb1 ~ f2 bb2 ~", S: "bb1 ~ f2 ~ bb2 bb1 ~@3 f2 bb2 ~ bb1 ~ f2 bb2",
  T: "eb2 ~@2 bb2 eb3 eb2 ~@2 bb2 ~@2 eb3 eb2 ~ bb2 eb3", U: "ab2 ~@2 eb2 ~ ab2 ab1 ~ eb2 ~ ab2 ~@3 ab1 eb2",
  V: "db2 ~@2 ab2 db3 ~ db2 ~ ab2 db3 ~ db2 ab2 ~ db3 ab2", W: "~@2 f2 ~ bb2 bb1 ~ f2 bb2 ~@2 bb1 f2 bb2 bb1 ~",
  X: "eb2 ~ bb2 ~ eb3 ~@2 eb2 bb2 ~ eb3 ~ bb2 ~ eb3 eb2", Y: "ab2 ~@2 eb2 ab2 ab1 eb2 ~ ab2 ~@3 ab1 ~ eb2 ab2",
  Z: "db2 ~@3 ab2 db3 ~ db2 ab2 ~ db3 ~ db2 ~ ab2 db3", AA: "~ bb1 f2 bb2 ~ bb1 ~ bb1!2 f2 bb2 ~@2 f2 bb2 ~",
  AB: "eb2@3 bb2 ~ eb3 eb2!2 bb2 eb3 ~@4 eb2 bb2", AC: "ab2 ~ ab1 eb2 ab2 ab1 ~@4 eb2 ~ ab2 ab1 eb2 ab2",
  AD: "db2 ab2 db3 ~@2 ab2 db3 db2 ~@2 db2 ab2 db3 db2 ~@2", AE: "bb1 f2 bb2 ~ bb1 ~@2 f2 bb2 ~ bb1@2 f2 bb2 ~ bb1",
  AF: "eb2 ~ bb2 ~ eb3 eb2 bb2 ~@3 eb3 ~ eb2 bb2 eb3 ~", AG: "~ ab1 eb2 ~ ab2 eb2 ~ ab2 ab1 eb2 ab2 ~ ab2@2 ab1 eb2",
  AH: "db2 ~ ab2 ~ db3 db2 ab2 ~@3 db3 db2 ~ ab2 db3 ~", AI: "~ ab1 eb2 ~ ab2 eb2 ~ ab2 ab1 eb2 ab2 ~ ab2@2 ab1 ~",
})).s("gm_clavinet").gain(0.36).pan(0.6)

// chords · harpsichord
const harpsichord = note("<~@23 A@2 ~@2 B@2 ~@9 C@2 ~@2 D@2 ~@2 E@2 ~@37>".pickRestart({
  A: "[~@8 [f4,bb4,d5]@3 [f4,bb4,d5]@3 [f4,bb4,d5]@18]/2", B: "[~@8 [f4,bb4,d5]@3 [f4,bb4,d5]@3 [f4,bb4,d5]@10 ~@8]/2",
  C: "[~@8 [f4,bb4,d5]@3 [f4,bb4,d5]@3 [f4,bb4,d5]@12 ~@6]/2", // Bb
  D: "[~@8 [f4,bb4,d5]@3 [f4,bb4,d5]@3 [f4,bb4,d5]@14 ~@4]/2", // Bb
  E: "[~@8 [f4,bb4,d5]@3 [f4,bb4,d5]@3 [f4,bb4,d5]@16 ~@2]/2", // Bb
})).s("gm_harpsichord").gain(0.36).pan(0.8)

// other · distortion guitar
const distortion_guitar = note("<~@66 A B@3 C D E ~ F G ~ H ~@7>".pickRestart({
  A: "~@13 [f4,bb4]@3", B: "[bb4@20 ab4 ~ f4 ~ eb4@2 db4 eb4@3 bb3 ab3@2 bb3 ~ f3 ~@12]/3",
  C: "~@9 [f4,bb4] f4 ab4 bb4 db5 eb5 ~", D: "db5 bb4 ab4 bb4@3 ab4 db5 ~ db5 bb4@5 ~",
  E: "~ eb4 ~ eb4 db4@2 bb3 ab3 ~ db4 bb3@6", F: "~@15 ab5", G: "ab5@7 ab5@9, f5 ~@6 f5 ~@8",
  H: "db5 eb5!2 db5@2 bb4 ~ ab4@2 bb4 ab4@3 bb4 ~@2",
})).s("gm_distortion_guitar").gain(0.36).pan(0.7)

// other · alto sax
const alto_sax = note("<~@69 A B ~@2 C@2 ~ D ~@8>".pickRestart({
  A: "~@4 bb4!2 ab4 f4 ~ eb4 db4 bb3 ~ ab3 bb3 ab3", B: "~@3 ab3 [c4,db4] [bb3,c4] [f3,ab3] [db3,eb3] ~@8",
  C: "[~ db5 ~ bb4 ab4@3 ~ [f4,ab4] f4 eb4@3 db4 bb3 ab3@3 bb3 db4 f4 [f4,ab4] eb4 db4 bb3@2 ab3 bb3 bb3@3 ~, ~@7 bb4@2 ~@23]/2", // Fm
  D: "~@3 f5 f5@3 [db5,eb5] ~ bb4@2 ab4 [eb4,f4] [bb3,db4] ~@2", // Dbsus2 Ebsus2 Bbm
})).s("gm_alto_sax").gain(0.64).pan(0.6)

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

// drums · snare
const snare = s("sd").struct("<~@10 A@17 B A@3 B A@3 B A@14 B C A@30 ~@3>".pickRestart({
// … 79 more lines

More by Mina