Strudelify

Indifferentemente

Mina

KeyA minorTempo83 bpm
0:00/0:00
// Indifferentemente — Mina
// 83 bpm, 4/4, key A 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 90 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(83/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 · acoustic bass
const bass = note(`<
  ~@20 A@8 B@2 C@6 D@4 ~@9 E@2 F G H I J K L M N O P Q R@2 S@2 ~@4 T U V W X@6 Y Z AA AB@6
>`.pickRestart({
  A: "[~@40 e1@65 ~ a1@16 ~@2 a1@6 c2@12 e2@12 a1@15 ~@3 a1@6 c2@12 e2@12 e1@15 ~@3 e1@6 b1@12 e2@12 e1@16 ~@2 e1@6 g#1@12 b1@12 b1@15 ~@3 b1@4 ~@2 b1@12 d2@12 e2@15 ~@3 e2@5 ~ e2@12 g#1@2]/8",
  B: "[~@10 a1@15 ~@3 a1@6 c2@12 e2@11 ~ a2@12 e2@10 ~@2 e2 ~ c#2 ~@3 a1@6 ~ e1]/2",
  C: "[~@5 c#2@5 d2@14 ~@4 d2@6 f2@12 a1@12 g1@15 ~@3 d2@6 g2@12 g1@12 c2@14 ~@4 g1@6 c2@11 ~ c2@12 d2@15 ~@3 d2@6 f2@12 d2@10 ~@2 a1@15 ~@4 a1@6 e2@12 a1@11 ~ a#1@37]/6",
  D: "[~@37 e1@72 ~@2 a1@73 ~@8]/4", E: "[~@21 e1@49 ~@2 a1@16 ~@2 a1@6]/2", F: "c2@4 e2@4 a1@5 ~ a1@2",
  G: "c2@4 e2@4 e1@5 ~ e1@2", H: "b1@6 e2@6 e1@8 ~ e1@3", I: "g#1@12 b1@12 b1@15 ~@3 b1@4 ~@2",
  J: "b1@12 d2@12 e2@15 ~@3 e2@5 ~", K: "e2@12 g#1@11 ~ a1@15 ~@3 a1@6", L: "c2@12 e2@11 ~ a2@12 e2@10 ~@2",
  M: "e2 ~ c#2 ~@3 a1@6 e1@6 c#2@6 d2@14 ~@4 d2@6", N: "f2@4 a1@4 g1@5 ~ d2@2", O: "g2@6 g1@6 c2@7 ~@2 g1@3",
  P: "c2@11 ~ c2@12 d2@15 ~@3 d2@6", Q: "f2@12 d2@10 ~@2 a1@15 ~@3 a1@6", R: "[e2@12 a1@10 ~@2 a#1@43 ~@29]/2",
  S: "[e1@3 ~]/2", T: "~ a1@8 ~@4 e1@9 ~@3 a1@10 ~@3 c2@10", U: "~@2 b1@9 ~@3 e1@12 ~ g#1@12 b1@9",
  V: "~@3 a1@10 ~@3 a1@12 c2@11 ~ d2@8", W: "~@4 e2@10 ~@3 e1@9 ~@3 g#1@9 ~@3 b1@7",
  X: "[~@6 a1@8 ~@4 e1@9 ~@3 a1@10 ~@3 c2@10 ~@2 e2@9 ~@3 e1@12 g#1@12 ~ b1@11 ~ a1@10 ~@2 a1@12 ~ c2@11 ~ d2@11 ~ e2@10 ~@8 b3 ~@2 b3 ~@2 b3 ~@3 b3 ~ b3 ~@2 b3 ~@3 b3@4 a3@4 g#3@3 ~ a1@10 ~@3 e1@9 ~@3 a1@10 ~@2 c2@10 ~@3 e2@9 ~@3 e1@12 g#1@12, ~@165 e1@10 ~@3 g#1@9 ~@3 b1@9 ~@3 a3@25 ~@61]/6",
  Y: "b1@11 ~@2 a1@10 ~@2 a1@12 c2@11", Z: "~@2 d2@11 ~ e2@10 ~@2 e1@10 ~@3 g#1@9",
  AA: "~@3 b1@9 ~@3 a1@8 ~@4 e1@9 ~@4 a1@8",
  AB: "[~@4 c2@10 ~@2 e2@9 ~@4 e1@12 g#1@12 b1@11 ~ a1@10 ~@3 a1@12 c2@11 ~ d2@11 ~@2 e2@10 ~@2 e1@10 ~@2 g#1@9 ~@4 b1@9 ~@3 a1@97 ~@27]/6",
})).s("gm_acoustic_bass").gain(0.37)

// other · trombone
const trombone = note("<~@67 A@3 B C D E F G H@2 I@4 J K@7>".pickRestart({
  A: "[~@45 e4@2 f4@2 ~ a4@2 ~ c5@2 e5 ~@2 g5@2 ~ e5@2 ~ c5@2 a4@2 ~@2 d5@7 c#5 c5 b4@3 ~ c5@2 ~ a4@2 b4@2 ~@2 g4@2 ~ a4@2 ~ f4@2 ~@2 g4@2 ~@2 d4@2 ~ e4@2 f4@2 ~ g4@2 ~@2 a4@2 ~ c5@2 ~ b4@3 a4@2 ~@2 g#4@2 ~@4 f4@7]/3",
  B: "~@2 e4@20 ~ c4@7 d4@18", C: "~ b3@32 ~@15", D: "~@17 c4@4 ~ d4@4 ~ e4@12 b3@2 ~@3 d4@4",
  E: "~@3 c4@4 d4@3 ~ e4@2 ~ g4@2 ~ a4@2 ~ b4@2 ~ d5@3 c5@2 ~@2 b4@3 ~ g4@3 ~ g4@4 ~ e4@3 ~@2, ~ c#4 ~@22",
  F: "e4@37 ~@11", G: "~@17 e4 ~ g4 ~ a4 ~ b4",
  H: "[~@2 c5@2 ~ d5@2 ~@2 d5 ~@10 d5 ~@3 f5 ~ e5 d5@2 c5@3 ~ b4@3 ~ a4@3 ~ f4@4 ~ e4@19 ~@6 b4@3 ~@3 b4@3 ~ g4@4 ~ e4@3 ~@2 c4@4 ~, ~@4 d#5 ~@43]/2",
  I: "[c4@8 ~@3 c4@2 d4 ~ e4@2 ~@2 g4@2 ~ b4@2 ~@2 g4@2 ~@2 e4@3 ~@2 c4@3 ~@2 d4@3 ~@2 d4@13 ~@15 e5@3 ~@3 e5@3 ~ c5@3 ~@2 c5@2 ~@2 a4@7 ~@2 f4@4 e4@16 ~ e4@2 d#4 ~ e4 ~ f4 g#4 ~@2 b4 ~ c5 d5 ~@2 b4@2 a4@2 ~ a4@2 g#4 f4@2 ~@2 d4@3 e4@23 ~ a4 ~@3 c5@4 a4 ~@4 g4@2, ~@131 a4@2 ~@4 c5@2 ~@3 g#4@2 ~@5 e4@2 ~@41]/4",
  J: "~@2 c5@3 ~@2 b4@3 ~ d5@26 ~@6 a3 ~ b3 d4 e4",
  K: "[~ g4 b4@2 d5@3 ~ c5@3 ~ b4@4 ~ g4@3 ~@2 g4@3 ~ e4@3 ~@2 e4@27 ~@11 f4@4 ~@2 e4@2 ~@3 a3@2 ~@4 e4@5 ~ d4@21 ~@16 c4@3 ~@2 f4@4 e4@13 ~@2 c4@3 ~@3 e4@5 d4@35 ~@9 c#4 ~@2 b3@4 ~ c4@2 ~@2 e4@3 ~ g4@2 ~@2 b4@3 ~@2 c5@2 ~@2 d5@5 c#5 ~@2 b4@58 ~@33, ~@207 d4@2 ~ c4@2 ~@32 c5@2 ~@90]/7",
})).s("gm_trombone").gain(0.72).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@11 A@4 B@8 C@6 D@7 E@2 F@8 G@6 H@4 I J K L@6 M ~@24>".pickRestart({
  A: "[~@33 c4@5 ~@5 c4@6 ~@7 e3@6 ~@12 g3@5 ~@25 e3@8 ~@29 a3@7 ~@6 a3@7 ~@26 b2@5, ~@17 a2@47 ~@4 e3@30 a#3@14 ~@5 f3@44 ~@8 d3@15 ~@8, ~@23 e3@30 ~@9 c#3@35 ~@15 d3@50 ~ g2@19 ~@10, ~@28 b3@10 e4@23 ~@24 g4@27 ~@11 d4@5 f4@33 ~@20 [b3,d4]@10 ~, ~@49 b3@14 ~@16 a#3@13 c#4@19 ~@6 a3@17 c#4@11 ~@3 c4@14 ~@13 g3@11 ~@6]/4", // Bm
  B: "[~@8 f4@7 ~ b3@7 ~@19 b3@7 ~@22 e3@5 ~@24 f3@7 ~@28 a#3@23 ~@9 [f2,g#3,b3,d4,f4]@8 [b3,d4,f4,g#4]@6 ~@3 b4@5 ~@2 b4@6 ~@20 f4@10 ~@3 a4@43 ~@8 [b3,d4,f4]@65 ~@18 [g3,a3,c4]@11 ~@2 [g3,a3,c4]@6 e3, ~@2 g3@21 c3@54 a#2@16 g#3@15 ~@2 g#4@48 ~@33 g#4@8 b4@27 ~@120 e3@9 ~ c4@2 e3@22 ~@4, ~@8 d4@15 ~@7 e3@33 g3@13 ~ f3@8 a#3@22 ~ a#3@18 d4@32 ~@25 [d4,f4,g#4]@6 ~@2 [b2,d5]@36 [a2,a3]@45 ~@6 e2@69 a3@17 ~@20, ~@36 g3@20 b3@20 ~@2 d3@30 ~ [a#2,f3]@47 ~@4 e2@47 g#4@19 ~@3 [e3,e4]@44 ~@6 e3@65 ~@2 a2@38, ~@49 e4@27 ~@2 [g#3,a#3] d4@28 ~@2 d4@8 f4@41 ~@33 f4@24 ~@13 c4@44 ~@8 g#3@66 g3@17 ~@21]/8", // Fdim Bdim Am7 Ddim Bm A A#5 E …
  C: "[~@11 [c4,e4]@8 ~@9 e4@11 ~@7 g3@10 ~@3 b3@8 ~@10 e4@12 ~@5 f4@6 ~@18 b3@5 ~@19 [e3,b3,d4,f4]@10 ~@2 [f3,a3]@9 ~@27 [a3,d4]@11 ~ [e3,g#3]@9 ~@27 [g#3,b3,d4]@10 ~@32 g3@6 [c4,e4]@2, ~@4 a2@51 ~@4 e3@41 e4@18 ~@7 [d4,e4]@17 ~@12 d4@15 ~@45 e3@16 ~@2 e3@16 ~@40, ~@10 a3@9 [c4,e4]@7 ~@2 c4@27 ~@3 g#3@5 ~@4 g#3@18 ~@4 g#3@18 e3@32 ~@15 b2@47 ~ e2@47 ~ a2@21 ~@3 a2@14, ~@22 a3@18 e4@16 ~@3 [d4,e4]@12 b3@22 ~ b3@21 g#3@6 ~@3 b3@15 ~@28 f3@16 ~ f3@17 ~@10 g#3@7 ~@2 [g#3,b3,d4]@17 ~@23 a3@6 ~@3 a3@8 ~@11, ~@76 d4@44 ~@4 g#3@10 ~@3 g#3@16 ~@11 a3@7 ~ [a3,d4]@16 ~@14 [b3,d4]@17 ~@44 [c4,e4]@21 ~@4]/6", // C Bdim F D5 E G#dim C Dsus2 …
  D: "[~@4 g3@5 ~ [a2,c#4]@9 ~@3 a2@6 ~@18 a3@12 ~@18 f4@5 ~ [c#4,f4]@7 a3@5 ~ a3@4 ~ a3@5 ~@19 g3@6 ~@6 g3@6 ~@7 g3@5 ~@37 g4@9 ~@8 a3@6 ~@6 a3@6 f4@6 ~@6 d4@10 ~@14 g3@6 ~@19 [c4,e4]@11 ~@2 d4@36, ~@9 a3@16 ~@3 a3@15 ~@25 a3@12 ~@2 a3@4 ~@30 d3@14 g4@11 ~ f4@11 ~@2 e4@16 ~@43 d4@12 d4@4 ~@21 e4@16 ~@69, ~@10 e4@23 ~@37 d4@11 ~@14 [c4,f4]@11 ~@11 b3@36 ~ [g3,b3]@10 ~@2 g3@16 ~@3 g3@16 ~@49 [g3,c4]@10 ~@21 a3@17 ~@38, ~@10 a4@17 ~@91 d4@36 ~@9 b3@7 ~@2 [b3,e4]@28 ~@32 b3@16 ~@11 c4@7 ~@2 [c4,e4]@17 ~@51, ~@19 c#4@13 ~@2 [a2,c#4,e4,g4]@24 d3@47 ~@2 g2@46 ~ c3@46 ~@2 d3@47 ~ a2@48 ~ [a#2,f3,a#3]@37]/7", // A C# C F5 G C5 E5 C …
  E: "[~@38 [f4,g#4]@21 ~@3 [f4,g#4,b4]@21 ~@13, ~@37 [e3,b3,d4]@23 ~ d4@22 ~@13]/2", // Fm Fdim E7
  F: "[~@61 e3@2 ~@5 a2@48 ~@48 a3@8 ~@6 a#3@5 ~@31 e3@6 ~@6 a3@6 ~@5 a3@7 ~@19 a3@7 ~@7 g3@6 ~@6 g3@6 ~@12 [b3,d4]@13 ~@40 g3@13 ~@7 f3@4, ~@15 a2@53 ~@54 a2@49 ~ c#3@37 ~@11 d3@21 ~@3 d3@27 b2@21 ~@3 g2@25 c3@14 ~@6 c3@32 ~@2 a#2@10, ~@19 e3@30 c4@46 ~@32 a3@24 c4@19 ~@25 g4@17 ~@20 f4@15 ~@9 f4@14 ~@52 b3@19 ~@5 b3@26 ~@12, ~@24 b3@14 a4@59 ~@33 b3@3 c4@6 b3@6 e4@25 ~@13 e4@13 ~@5 c#4@13 ~@18 d4@22 ~@47 d3@20 e3@9 ~@4 e3@38 ~@12, ~@28 c4@5 e4@11 b3@11 a3@39 ~@31 e3@33 b3@12 ~@19 a#3@15 ~@3 a#3@13 ~@30 a3@11 ~@22 [b3,d4]@21 ~@17 g3@37 ~@26]/8", // Bm
  G: "[~@10 f3@7 ~@18 [a#3,d4]@22 ~@50 g#3@9 ~@3 [a3,a4]@45 ~@3 [b3,d4,f4]@49 ~@9 e3@3 ~@6 e3@6 ~@18 e3@6 ~@9 e3@3 ~@6 e3@6, ~@3 [a#3,d4]@22 f3@32 ~@8 g#3@27 d4@8 b3@17 ~@47 e2@53 ~@71, ~@17 a#2@40 ~@2 e2@58 [a2,e3,c4]@48 e3@51 a2@20 ~@4 a2@20 ~@4 a2@19 ~@5, ~@71 d4@14 b4@31 ~@136 [a3,c4]@13 ~@11 [a3,c4]@10 ~@2, ~@78 e4@39 ~ e4@45 ~@3 g#3@50 ~@12 [a3,c4]@18 e3@10 ~@32]/6", // A# A Bdim A# Am
  H: "[[a2,a3,c4]@6 e3@6 ~@6 e3@5 ~ [e4,g#4]@9 ~@9 b3@6 ~@60 [e4,g#4]@10 ~@2 [a3,d4]@9 ~@9 f3@9 ~@9 [d4,f4]@12 ~@6 [b3,d4,e4,g#4]@18, ~@12 [a3,c4]@11 ~ e3@19 ~@5 e3@20 ~@4 e3@20 ~@4 e3@22 ~@2 f3@6 ~@3 f3@6 ~@15 f3@18 e3@13 ~@11, ~@24 b3@6 ~@3 b3@6 ~@15 b3@10 ~@2 b3@13 ~@2 b3@6 ~@3 b3@11 ~ b3@16 ~@14 a3@35 ~@25, ~@36 [e4,g#4]@17 ~@7 [e4,g#4]@22 ~@2 e4@20 ~@28 d4@22 ~@38, ~@42 g#4@5 ~@49]/4", // Am E D5 Dm E7 Am E
  I: "e3@6 [b3,d4,e4,g#4]@4 ~@8 [b3,d4,e4,g#4]@5 ~ a2@9 a3@3 ~@6 a3@5 ~, ~@36 [c4,e4,a4]@11 ~", // E7 Am
  J: "a2@6 a3@6 [c4,e4,a4]@5 ~ a3@5 ~ [a#3,e4]@9 ~@3 a#3@4 ~@2 a#3@4 ~@2, ~@24 g4@23 ~, ~@24 c#4@4 ~@5 c#4@15", // Am A#dim
  K: "~@6 c#4@5 ~ [a3,e4,g4]@11 ~ d3@9 ~@9 a3@6, a3@10 ~@23 a3@5 ~@10, ~@3 [d4,f4,a4]", // A7 Dm
  L: "[~@6 a3@6 ~@6 a3@5 ~@10 a3@3 ~@6 a3@6 ~@18 a3@4 ~@2 [b3,e4]@9 ~@9 g3@6 g4@6 ~@6 e4@11 ~@7 a3@6 ~@6 a3@6 f4@6 ~@6 d4@10 ~@2 [a2,b3,c4]@6 g3@2 ~@4 [b3,c4]@6 g3@3 ~@3 g3@4 ~@2 g3@3 ~@3 [g3,b3,c4]@10 ~@2 [f3,a#3,d4]@37 ~@35, d3@12 [d4,f4]@11 ~ g2@47 ~ c3@47 ~ d3@47 ~@10 a2@9 ~@3 a2@10 ~@2 a2@11 ~@3 a#2@36 ~@37, ~@36 [b3,d4]@34 ~@14 b3@35 ~@31 b3@16 ~@26 [c4,e4]@10 ~@86, ~@48 g4@11 ~ f4@11 ~@13 e4@22 ~@26 d4@12 d4@4 ~@140, ~@54 a3@10 ~@8 g3@6 ~@3 g3@7 ~@14 g3@17 ~@49 g3@3 ~@9 g3@4 ~@104]/6", // E5 Am Cmaj7 A# Dm Bm C
  M: "~ [f4,g#4]@20 ~@3 b4@20 ~@4, [e3,b3,d4]@22 d4@21 ~@5, ~@23 [f4,g#4]@20 ~@5", // Fm E7 Fm
})).s("gm_acoustic_guitar_steel").gain(0.34).pan(0.6)

// other · string ensemble 2
const string_ensemble_2 = note("<A@6 B@4 ~@30 C@2 D@4 ~@29 E@8 F G@6>".pickRestart({
  A: "[~@31 a4@35 c5@13 b4@35 d#5@13 [c5,e5]@12 c5@12 ~@12 d4@12 ~ c#4@48 g4@24 d5@13 g4@27, ~@139 a4@25 ~@11 a4@49 ~@64, ~@151 f4@25 ~@112]/6", // C
  B: "[~ d5@22 g4@15 f4@24 c5@15 f4@17 [e3,c4,g4]@58 ~@40]/4", C: "[~@60 e4@7 d4@6 c#4@14 a#4@9, ~@25 a4@48 ~@23]/2",
  D: "[~@2 a4@13 g4@11 ~@14 c5@11 a4@13 c5@13 b4@26 d4@24 ~@20 b3@7 a3@12 g3@14 ~@12, ~@26 f4@38 ~@63 c4@19 ~@46, ~@32 e4@13 ~@3]/4",
  E: "[~@10 e4@31 c4@12 d4@37 f4@12 e4@36 c4@14 d4@37 f4@12 ~@5 e4@32 c4@11 d4@38 f4@12 e4@36 c4@13 d4@36]/8",
  F: "~ f4@12 e4@35", G: "[~@3 c4@12 d4@37 f4@12 e4@36 c4@13 d4@37 f4@13 ~@5 e4@94 ~@26]/6",
})).s("gm_string_ensemble_2").gain(0.34).pan(0.7)

// other · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@43 A@2 B@4 ~@41>".pickRestart({
  A: "[~@29 g4@50 ~@17]/2", B: "[~@36 [f4,a#4]@67 [e4,b4]@62 ~@27]/4",
})).s("gm_string_ensemble_2").gain(0.21).pan(0.7)

// chords · string ensemble 2
const string_ensemble_2_2 = note("<A@5 B@5 ~@80>".pickRestart({
  A: "[~@31 [e3,a3,c4]@47 [d#3,f#3,b3]@48 [d3,f3,c4]@49 ~ c#3@12 e3@11 ~ g3@3 f3@3 e3@3 d3@4 c#3@11 [c3,a#3]@16, ~@88 b3@25 ~@7]/5", // Am B Dm7 C7
  B: "[~@3 d3@3 d#3@3 c3@24 b2@20 a2@3 b2@30 [a#2,g#3]@55 e2@59 ~@40, ~@33 [d3,a3]@55 ~@152]/5", // A#7 D5
})).s("gm_string_ensemble_2").gain(0.4).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2_3 = note("<A@3 B@7 ~@31 C D@7 ~@22 E F G H I J K L@2 M N O@8>".pickRestart({
  A: "[~@42 c4@23 ~ a4@13 f#4@10 ~@2 f#4@17 b4@19 a4@10 ~ f4@6, ~@31 e4@49 ~@64]/3",
  B: "[~@7 d4@13 a3@12 [b3,e4]@48 [c4,d#4]@50 ~@13 g4@27 ~@13 [c#4,g#4]@56 [g#3,d4]@57 ~@40, ~@130 d4@53 ~@153]/7", // E5 Cm C#5 G#dim
  C: "~@7 a3@5",
  D: "[~ c#4@26 ~@8 a3@41 ~@90 g3@12 ~@14 f3@57 ~ e3@46 ~@40, ~@27 d4@101 b3@52 a#3@72 ~@84, ~@76 g3@76 e4@30 ~@67 b3@49 ~@38]/7",
  E: "~@19 [a3,c4,g4,c5,e5]@25 ~@4", F: "~@21 [b3,d4,g#4,d5,f5]@25 ~@2", G: "~@11 [a3,e4,g4,c5,e5]@13",
  H: "~@23 [g#3,b3,d4,g#4,b4,d5,f5]@25", I: "~ [e3,g3,c4]@7", J: "~@5 [f3,g#3,b3]@43", K: "~@5 [e3,c4]@43, ~ g3@11",
  L: "[~@7 [f3,g#3,b3]@50 ~ [e3,g3,c4]@38]/2", M: "~@5 [f3,g#3,b3]@19", N: "~@5 [e3,c4]@19, ~@3 g3@13",
  O: "[~@12 [f3,b3]@49 [e3,g3,c4]@49 ~ b3@47 ~ [e3,c4]@49 [f3,g#3,b3]@50 ~@2 [e3,g3,c4]@98 ~@26, ~@11 g#3@50 ~@49 [f3,g#3]@48 g3@51 ~@175]/8", // Fdim C Fdim C Fm
})).s("gm_string_ensemble_2").gain(0.26).pan(0.6)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@11 A@6 B@6 ~@17 C@7 D@2 E@2 ~@20 F G H I J@2 K@4 L M N O P Q R@2 ~>".pickRestart({
  A: "[~@33 c4@5 ~@5 c4@6 ~@7 e3@6 ~@12 g3@5 ~@19 a#3@14 ~@29 a3@7 ~@6 a3@7 ~@39 f4@7 ~ b3@7 ~@19 b3@7 ~@22 e3@5 ~@3 d4@14 g#3@3, ~@17 a2@47 ~@4 e3@30 ~@19 f3@44 ~@8 d3@15 ~@3 b2@27 ~ c3@33 ~@22 d3@8 ~@10, ~@23 e3@30 ~@9 c#3@35 ~@15 d3@50 ~ g2@19 ~@59 e4@27 ~@20, ~@38 e4@23 ~@24 g4@27 ~@11 d4@5 f4@33 ~@20 [b3,d4]@10 ~@9 d4@15 ~@13 g3@17 ~@3 b3@20 ~@20, ~@49 b3@14 ~@16 a#3@13 c#4@19 ~@6 a3@17 c#4@11 ~@3 c4@14 ~@13 g3@11 ~@8 g3@21 ~@7 e3@27 ~@6 g3@13 ~@2 [g#3,a#3]@5 ~@13]/6", // Bm G#sus2
  B: "[~@4 f3@7 ~@19 d4@32 ~@9 [d4,f4]@6 ~@2 [d4,f4]@6 ~@3 b4@5 ~@2 b4@6 ~@2 b4@27 ~@2 c4@44 ~@9 [b3,d4]@66 ~@37, ~@6 a#3@12 ~@74 g#3@33 ~@19, ~@13 f3@21 ~@30 e2@53 ~@14 [a2,a3]@45 ~@6 e2@69 ~@37, ~@13 d4@8 f4@41 ~@226, ~@14 g#4@30 ~@43 g#4@6 ~@2 g#4@12 ~@181]/6", // Dm Bm A
  C: "[~@49 e4@18 ~@9 c#3@37 ~@23 f4@12 d3@16 ~@23 [b3,d4]@12 ~@27 b3@19 ~@33 a#2@23 ~@35, ~@26 a2@49 ~@49 d3@21 ~@30 b2@21 ~@28 c3@14 ~@98, ~@136 d4@22 ~@67 g3@37 ~@74]/7", // Bm
  D: "[~@37 b4@31 ~@28, ~@11 e2@58 ~@27]/2", E: "[~@23 [d4,f4]@49 ~@24, ~@20 e2@53 ~@23, ~@11 g#3@25 ~@12]/2",
  F: "~ [g3,c4,e4]@4 ~@2 [g3,c4,e4]@2 ~@10 [g3,c4,e4]@20 ~@5 [b3,d4,f4,g#4,b4]@4", // C Bdim
  G: "~@2 [b3,d4,f4,g#4,b4]@4 ~@2 [b3,d4,f4,g#4,b4]@2 ~@11 [b3,d4,f4,g#4,b4]@2 ~@10 [d4,f4,g#4,b4,d5]@2 ~@13", // Bdim Ddim
  H: "~@3 [g3,c4,e4]@4 ~@2 [g3,c4,e4]@2 ~@11 [g3,c4,e4]@2 ~@10 [e4,g4,c5,e5]@14", // C
  I: "~@17 [d4,f4,g#4,d5]@5 ~@13 [d4,g#4,c5]@3 [d4,g#4,c5]@2 ~@4 [d4,g#4,c5]@2 ~@2", // Ddim Dm7b5
  J: "[~@6 [g3,c4,e4]@13 ~@5 [g3,c4,e4]@15 ~@4 b3@6 c4@4 ~@8 [d4,g#4,c5]@2 ~@10 [d4,g#4,c5]@15 ~@4 [d4,g#4,c5]@4, ~@43 [g3,e4]@10 ~@43]/2", // C Dm7b5 C
  K: "[~@2 [d4,f4,g#4]@2 ~@4 [c4,e4,g4,b4]@13 ~@5 [c4,e4,g4,b4]@8 ~@11 [c4,e4,g4,b4]@6 [c4,e4,g4,a4] ~@11 [d4,g#4,c5]@2 ~@11 [d4,g#4,c5]@16 ~@2 [g#4,c5,f5]@6 e5@2 ~@4 [g3,c4,e4]@33 ~@4 [g3,c4,e4]@9 ~@4 [e4,g#4,c5]@36]/4", // Ddim Cmaj7 Am7 Dm7b5 Fm C Eaug
  L: "~@4 [e4,g#4,c5] ~@8 [g3,c4,e4]@26 ~@4 [c4,e4,a4] ~@4", // Eaug C Am
  M: "~@5 [c4,e4,a4] ~@8 [e4,g#4,c5]@8 ~ [e4,g#4,c5] ~@8 [e4,g#4,c5]@16", N: "~@15 [g3,c4,e4]@22 ~@3 [c4,e4,g4]@8",
  O: "~@7 [e4,g4,d5] ~@8 [e4,g#4,c5]@22 ~@9 [c4,e4,g#4]", P: "~@8 [g#4,c5] ~@8 [a3,c4,e4,g4]@23 ~@8",
  Q: "[g3,c4,e4]@7 ~@2 [g3,c4,e4] ~@9 [e4,g#4,c5]@18 ~@6 [c4,e4,g#4]@5", // C Eaug Caug
  R: "[~@4 [g#4,c5] ~@6 [g#4,c5]@9 a3@14 ~@14 g4@35 ~@13, ~@20 e4@27 ~@49, ~@38 g3@35 ~@23]/2", // G#
})).s("gm_electric_guitar_jazz").gain(0.15).pan(0.2)

// chords · electric guitar jazz · soft notes
const electric_guitar_jazz_2 = note("<~@11 A ~ B ~@2 C@7 ~@17 D@4 E@6 ~@40>".pickRestart({
  A: "~@28 b3@11 ~@9", B: "~ e3 ~@4",
  C: "[~@29 f3@8 a#3@15 ~@9 a#2@26 a#3@23 ~@9 [f2,g#3,b3]@8 [b3,g#4]@6 ~@2 [d4,f4]@6 ~@28 f4@10 ~@3 a4@43 ~@8 f4@64 ~@39, ~@29 a#2@30 ~@84 [b2,d5]@36 ~@2 [e3,e4]@44 ~@6 e3@67 ~@38, ~@143 f4@24 ~@169, ~@159 g#4@19 ~@158]/7", // Fdim E Dm Bm E
  D: "[~@43 b3@12 ~@13 a3@9 ~@5 a#3@5 ~@31 e3@6 ~@6 a3@8 ~@3 a3@8 ~@18 a3@7 ~@7 g3@8 ~@3, ~@29 e3@14 ~@149, ~@31 a3@18 ~@44 a#3@15 ~@3 a#3@13 ~@30 a3@11 ~@27, ~@34 b3@5 ~@23 b3@12 ~@25 g4@17 ~@44 f4@14 ~@18, ~@37 c4@12 ~@6 c4@14 ~@18 e4@13 ~@5 c#4@13 ~@74]/4",
  E: "[~ g3@6 ~@6 d3@6 d4@13 ~ e3@9 ~@30 g3@13 ~@21 f3@7 ~@18 [a#3,d4]@22 ~@50 g#3@9 ~@3 [a3,a4]@45 ~@28, ~@7 g2@12 ~@27 e3@12 b3@26 ~@15 [a#3,d4]@22 f3@32 ~@8 g#3@42 ~@10 [a2,c4]@48 ~@27, ~@52 c3@20 ~@20 f3@11 ~@10 a#2@40 ~@14 d4@21 d4@24 ~@76, ~@58 e4@13 ~@25, ~@196 b3@17 ~@75]/6", // A# A A# Am
})).s("gm_electric_guitar_jazz").gain(0.09).pan(0.2)

// other · taiko drum
const taiko_drum = note("<~@22 A@13 ~@15 B@13 ~@8 C D E F G H I J K L M N O P Q R S ~@2>".pickRestart({
  A: "~@5 d#3 ~@18", B: "~@12 d#3 ~@11", C: "~ a#3@2 ~@45", D: "~ a#3 ~@22", E: "~@3 a#3@2 ~@43", F: "~@2 a#3 ~@21",
  G: "~@3 a#3 ~@20", H: "~@7 a#3@2 ~@39", I: "~@4 a#3 ~@19", J: "~@9 a#3@2 ~@37", K: "~@5 a#3 ~@18", L: "~@6 a#3 ~@17",
  M: "~@13 a#3@2 ~@33", N: "~@7 a#3 ~@16", O: "~@15 a#3@2 ~@31", P: "~@8 a#3 ~@15", Q: "~@17 a#3@2 ~@29",
  R: "~@19 a#3@2 ~@27", S: "~@10 a#3 ~@13",
})).s("gm_taiko_drum").gain(0.31).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~@22 A@12 B ~@15 C D@12 E ~@7 F G H I J K L M N O P Q R S T U V ~@2>".pickRestart({
  A: "~@5 x ~@8 x ~@2 x ~@6", B: "~@10 x ~@18 x ~@5 x ~@12", C: "~@4 x ~@2 x", D: "x ~@3 x ~@2 x", E: "x",
  F: "~ x ~@17 x ~@5 x ~@18 x ~@3", G: "~@2 x ~@18 x ~@5 x ~@17 x ~@2", H: "~@3 x ~@18 x ~@5 x ~@17 x ~",
  I: "~@4 x ~@18 x ~@5 x ~@17 x", J: "~ x ~@2 x!2 ~@2", K: "~ x ~@5 x ~@17 x ~@5 x ~@16",
  L: "~@2 x ~@5 x ~@17 x ~@6 x ~@14", M: "~@3 x ~@5 x ~@18 x ~@5 x ~@13", N: "~@4 x ~@5 x ~@18 x ~@5 x ~@12",
  O: "~@5 x ~@6 x ~@17 x ~@5 x ~@11", P: "~@7 x ~@5 x ~@17 x ~@5 x ~@10", Q: "~@8 x ~@5 x ~@17 x ~@6 x ~@8",
  R: "~@9 x ~@5 x ~@18 x ~@5 x ~@7", S: "~@10 x ~@5 x ~@18 x ~@5 x ~@6", T: "~@11 x ~@5 x ~@18 x ~@5 x ~@5",
  U: "~@13 x ~@5 x ~@17 x ~@5 x ~@4", V: "~@7 x ~@2 x ~@13",
})).gain(0.37)

// drums · snare
const snare = s("sd").struct(`<
  ~@22 A B@4 C D B A@4 E ~@15 F G@5 H I J@5 K ~@7 L M N O P Q R S T U V W X Y Z AA AB ~@2
>`.pickRestart({
  A: "~@5 x ~@5 x ~@5 x ~@5 x", B: "~@10 x ~@8 x ~@2 x ~@11 x ~@11 x ~", C: "~@10 x ~@8 x ~@2 x ~@11 x ~@8 x ~@2 x ~",
  D: "~@10 x ~@8 x ~@2 x ~@11 x ~@5 x ~@5 x ~", E: "~@10 x ~@12 x ~@11 x ~@11 x", F: "~@2 x!2",
  G: "x ~@3 x ~@3 x ~@2 x!2 ~@3", H: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3", I: "x ~ x ~ x ~@3 x ~@2 x!2 ~@3", J: "x!4",
  K: "x!2 ~@2", L: "~ x ~@11 x ~@5 x ~@5 x ~@12 x ~@5 x ~@3", M: "~@2 x ~@11 x ~@6 x ~@5 x ~@11 x ~@5 x ~@2",
  N: "~@3 x ~@12 x ~@5 x ~@5 x ~@11 x ~@5 x ~", O: "~@4 x ~@12 x ~@5 x ~@5 x ~@11 x ~@5 x",
  P: "~@6 x ~@11 x ~@5 x ~@5 x ~@12 x ~@4", Q: "~ x ~@5 x ~@11 x ~@5 x ~@5 x ~@12 x ~@3",
  R: "~@2 x ~@5 x ~@11 x ~@5 x ~@6 x ~@11 x ~@2", S: "~@3 x ~@5 x ~@11 x ~@6 x ~@5 x ~@11 x ~",
  T: "~@4 x ~@5 x ~@12 x ~@5 x ~@5 x ~@11 x", U: "~@5 x ~@6 x ~@11 x ~@5 x ~@5 x ~@11",
  V: "x ~@6 x ~@5 x ~@11 x ~@5 x ~@5 x ~@10", W: "~@2 x ~@5 x ~@5 x ~@11 x ~@5 x ~@6 x ~@8",
  X: "~@3 x ~@5 x ~@5 x ~@11 x ~@6 x ~@5 x ~@7", Y: "~@4 x ~@5 x ~@5 x ~@12 x ~@5 x ~@5 x ~@6",
  Z: "~@5 x ~@5 x ~@5 x ~@12 x ~@5 x ~@5 x ~@5", AA: "~@6 x ~@6 x ~@5 x ~@11 x ~@5 x ~@5 x ~@4",
  AB: "~@4 x ~@2 x ~@2 x ~@13",
})).gain(0.31)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@23 A ~ A ~ A ~ A ~ A ~ A ~@18 B ~ B ~ B ~ B ~ B ~ B ~@8 C D E F G H I A J ~ K L M N O P Q ~@2
>`.pickRestart({
  A: "~@23 x", B: "~ x ~@2", C: "~@19 x ~@4", D: "~@13 x ~@2", E: "~@5 x", F: "~@41 x ~@6", G: "~@43 x ~@4",
  H: "~@11 x", I: "~@15 x", J: "~@47 x", K: "x", L: "~ x ~@22", M: "~ x ~@14", N: "~ x ~@10", O: "~@5 x ~@42",
  P: "~ x ~@6", Q: "~ x ~@4",
})).gain(0.19)

// drums · clap
const clap = s("cp").struct("<~@74 A ~@3 B ~@3 C ~@3 D ~@3>".pickRestart({
  A: "~@11 x ~@36", B: "~@5 x ~@10", C: "~@5 x ~@6", D: "~@25 x ~@22",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@74 A ~@3 B ~@4 C ~@3 D ~@2>".pickRestart({
  A: "~@41 x ~@6", B: "~@23 x", C: "~ x ~@14", D: "~ x ~@4",
})).gain(0.31)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@22 A@12 B ~@15 C D@12 ~@8 E F G ~ H I J ~ K L M N O P Q R ~@3>".pickRestart({
  A: "~@11 x ~@11 x", B: "~@23 x ~@24", C: "~@3 x", D: "~ x ~ x", E: "~@13 x ~@24 x ~@9", F: "~@14 x ~@24 x ~@8",
  G: "~@2 x ~@2 x", H: "~@18 x ~@24 x ~@4", I: "~@19 x ~@24 x ~@3", J: "~@20 x ~@24 x ~@2", K: "~@23 x ~@23 x",
  L: "~ x", M: "x ~@24 x ~@22", N: "~ x ~@22", O: "~@9 x ~@6", P: "~@4 x ~@24 x ~@18", Q: "~@5 x ~@24 x ~@17",
  R: "~ x ~@6",
})).gain(0.5)

// drums · mid tom
const mid_tom = s("mt").struct("<~@29 A ~@28 B ~@15 C ~@3 D ~@3 E ~@3 F ~@3>".pickRestart({
  A: "~@5 x", B: "~@5 x ~@42", C: "~@29 x ~@18", D: "~@17 x ~@6", E: "~@13 x ~@2", F: "~@43 x ~@4",
})).gain(0.37)

// drums · open hat
const open_hat = s("oh").struct("<~@34 A ~@28 B ~@10 C ~@3 D ~@4 E ~@3 F ~@2>".pickRestart({
  A: "~@47 x", B: "~ x ~@2", C: "~@41 x ~@6", D: "~@23 x", E: "~ x ~@14", F: "~@18 x!2 ~@28",
})).gain(0.31)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@87 [~@11 x ~ x!2 ~ x ~@31] ~@2>").gain(0.12)

// drums · high tom
const high_tom = s("ht").struct("<~@29 [~@7 x ~@4] ~@27 [~@7 x] ~@32>").gain(0.37)

// … 55 more lines

More by Mina