Strudelify

Ho Difeso Il Mio Amore

Nomadi

KeyE minorTempo52 bpm
0:00/0:00
// Ho Difeso Il Mio Amore — Nomadi
// 52 bpm, 12/8, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/2 at bar 1, 12/8 at bar 1) are rendered on a constant 12/8 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 37 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(52/6)

// 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 · "basso"
const bass = note("<~ 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 AA AB AC AD AE AF AG AH@2>".pickRestart({
  A: "~@21 e2@7 ~@2 e2 ~", B: "d2@8 ~ d2 ~ e2@8 e2 ~ d2@8 ~ d2 ~", C: "e2@8 ~ e2 ~ d2@7 ~ d2 ~ c2@8 ~ c2 ~",
  D: "g2@8 ~ g2 ~ f2@8 f2 ~ e2@7 ~@2 b1 ~", E: "e2@8 ~ e2 ~ d2@7 ~ d2 ~ e2@8 ~ e2 ~",
  F: "d2@8 ~ d2 ~ c2@8 c2 ~ g2@8 ~ g2 ~", G: "f2@8 ~ f2 ~ e2@6 ~@2 b2 ~ a2@5 a2@3 ~ a2 ~, ~@9 e2 ~@6",
  H: "a1@7 a2@2 g2@2 c2@5 c2@3 c2 ~ c2@7 c2@2 b1@2", I: "e2@8 ~ e2 ~ d2@8 d2 ~ e2@8 ~ e2 ~",
  J: "d2@8 ~ d2 ~ e2@5 e3 ~ b2 ~ g2 d2@7 ~@2 d2 ~", K: "e2@5 e3 ~ b2 ~ g2 ~ d2@7 ~ d2 ~ c2@5 ~ c3 g2 ~ e2 ~",
  L: "g2@7 ~@2 g2 ~ f2@8 f2 ~ e2@7 ~@2 b1 ~", M: "e2@5 e3 ~ b2 ~ g2 ~ d2@8 ~ d2 e2@5 ~ e3 b2 ~ g2 ~",
  N: "d2@7 ~@2 d2 ~ c2@7 ~ c2 ~ g2@8 ~ g2 ~", O: "f2@8 ~ f2 ~ e2@5 e3 ~ b2 g2 ~ a2@5 ~ a1 ~@2 a1 ~",
  P: "a1@7 e2@2 a2 ~ c2@5 c3 ~@3 c2 c2@6 ~@2 c3 b2 ~", Q: "e2@5 e2 ~@3 e2 ~ d2@8 ~ d2 e2@8 ~ e2 ~",
  R: "d2@8 ~ d2 ~ e2@5 e3 ~ b2 g2 ~ e2@7 ~@4", S: "~@5 b2 ~ b2 ~ b2 ~ e2@5 e3 ~ b2 g2 ~ d2@5 d3 ~ a2 ~ f2 ~",
  T: "c2@5 c3 ~ g2 ~ e2 ~ b2@4 ~ b2 ~ a2 ~ b2 e2@7 ~@2 e2 ~", U: "c2@6 ~ c2 ~ d2 ~ e2@6 ~ e2 ~ d2 c2@6 ~@2 c2 d2 ~",
  V: "a2@6 ~ b2 ~ c3 ~ b2@6 ~ b2 ~ a2 a2@7 b2 ~ c3 ~", W: "b2@5 b2 ~ b2 ~ b2 ~ e2@5 e3 ~ b2 ~ g2 d2@8 ~ d2 ~",
  X: "e2@5 e3 ~ b2 ~ g2 ~ d2@8 d2 ~ c2@8 ~ c2 ~", Y: "g2@8 ~ g2 ~ f2@8 f2 ~ e2@5 ~ e3 b2 ~ g2 ~",
  Z: "e2!2 ~ e2 ~ e2 ~ e2 ~ e2 ~ d2!2 ~ d2 ~ d2 ~ d2!2 ~ e2 ~ e2 ~ e2 ~ e2!2 ~ e2 ~",
  AA: "d2 ~ d2!2 ~ d2 ~ d2 ~ d2 ~ c2!2 ~ c2 ~ c2 ~ c2!2 ~ g2 ~ g2 ~ g2 ~ g2!2 ~ g2 ~",
  AB: "f2 ~ f2!2 ~ f2 ~ f2 ~ f2 ~ e2!2 ~ e2 ~ e2 ~ e2!2 ~ a2@5 ~ a2@3 a2 ~",
  AC: "a2@4 ~ a2 g2 a2@2 b2 ~ c2@5 c2@3 ~ c2 c2@6 ~ c2 ~ c2 ~",
  AD: "e2 ~ e2!2 ~ e2 ~ e2 ~ e2 ~ d2!2 ~ d2 ~ d2 ~ d2!2 ~ [e2,f#2] ~ e2 ~ e2 ~ e2!2 ~ e2 ~", // Esus2
  AE: "d2 ~ d2!2 ~ d2 ~ d2 ~ d2 ~ e2 ~ e2!2 ~ e2!2 ~ e2 ~ e2!2 ~ e2!4 ~ e2!2 ~",
  AF: "a2@4 ~ a2@3 ~ a2 ~ a2@5 a2 g2 f2 [a2,b2] ~ c2@5 ~ c2@3 c2 ~, ~@21 d2 ~@10", // Asus2
  AG: "c2@6 ~ c2 ~ c2 ~ e2@2 e2!2 ~ e2 ~ e2!2 ~ d2 ~ [d2,e2] ~ d2 ~ d2!2 ~ d2 ~", // Dsus2
  AH: "[e2 ~ e2!2 ~ e2 ~ e2 ~ e2 ~ d2!2 ~ d2 ~ d2 ~ d2 ~ d2 e2@19 ~@24]/2",
})).s("gm_acoustic_bass").gain(0.41)

// chords · pad warm · "tappetto"
const pad_warm = note("<~ A B C@3 D E@3 F G@3 H I@3 J ~ K L@3 M N O P@2 Q@2 A R@5>".pickRestart({
  A: "[g3,b3,e4]@10 [f#3,a3,d4]@11 [g3,b3,e4]@11", B: "[f#3,a3,d4]@11 [g3,b3,e4]@10 [f#3,a3,d4]@11",
  C: "[[g3,b3,e4]@11 [f#3,a3,d4]@10 [c4,e4]@11 [b3,d4]@11 [f3,a3,c4]@10 [e3,g3]@11 [g3,e4]@10 [f#3,a3,d4]@11 [g3,b3,e4]@11, ~@21 g3@22 ~@10 b3@22 ~@21]/3", // Em D C Bm F Em C D …
  D: "[f#3,a3,d4]@10 ~ f4 ~@9 [b3,d4]@11, ~@5 g3@11, ~@10 [c4,e4]@11 ~@11", // D Bm C
  E: "[[f3,a3,c4]@10 ~ e3@10 [c#4,e4]@20 ~@23 [b3,e4]@10 [f#3,a3,d4]@11 [g3,b3,e4]@11, ~@10 [g3,b3]@11 a3@21 g4@21 ~@33, ~@43 [c4,e4]@22 ~@31, ~@16 g3@9 ~@7]/3", // F C#m E5 D Em G C
  F: "[f#3,a3,d4]@10 [g3,b3,e4]@11 ~@2 f#3@9, ~@21 [a3,d4]@11", // D Em D5
  G: "[[g3,b3,e4]@10 [f#3,a3,d4]@11 [c4,e4]@11 [b3,d4]@10 ~@3 d4 ~@7 [e3,g3]@11 [g3,e4]@10 [f#3,a3,d4]@11 [g3,b3,e4]@11, ~@21 g3@21 [f3,a3,c4]@11 b3@22 ~@21]/3", // Em D C Bm Em C D Em …
  H: "[f#3,a3,d4]@10 [c4,e4]@11 [b3,d4]@11, ~@10 g3@21 ~", // D C Bm
  I: "[[f3,a3,c4]@10 [e3,b3,e4]@11 [a3,c#4,e4]@21 ~ g3@21 [g3,b3]@11 [f#3,a3,d4]@10 [g3,b3,e4]@11, ~@14 e4@11 ~@7, ~@21 c4@10 ~@17]/3", // F E5 A G D Em
  J: "[f#3,a3,d4]@11 [g3,b3,e4]@21", K: "~@10 [g3,b3,e4]@11 [f#3,a3,d4]@11",
  L: "[[e3,g3,c4]@10 [d#3,f#3]@11 e4@11 [e3,c4]@10 [b3,e4]@11 c4@10 ~ [a3,c#4]@10 ~ b3@10 [e3,a3,c#4]@11, ~@10 b3@21 ~@22 e3@20 ~ [d#3,f#3]@10 ~@12, ~@21 g3@43 ~@32]/3", // C D#m C E5 A D#m
  M: "[d#3,f#3,b3]@11 [g3,b3,e4]@10 [f#3,a3,d4]@11", N: "[g3,b3,e4]@10 [f#3,a3,d4]@11 [e3,g3,c4]@11",
  O: "[d3,g3,b3]@10 [f3,a3,c4]@11 [e3,g3,b3]@11", // G F Em
  P: "[[g3,b3,e4]@10 [f#3,a3,d4]@11 [g3,e4]@11 [f#3,a3,d4]@10 [e3,c4]@11 [d3,b3]@11, ~@21 b3@13 ~@8 g3@21 ~]/2", // Em D C D C G
  Q: "[[f3,a3,c4]@10 [g3,b3]@11 [a3,c#4]@20 ~ [g3,c4,e4]@21 ~, ~@5 e3@16 ~@11]/2", // F G A C
  R: "[[f#3,a3,d4]@10 [g3,b3]@22 ~ [a3,c#4]@20 c4@21 ~ b3@10 [f#3,a3,d4]@10 [g3,b3,e4]@11 [f#3,a3,d4]@11 [e3,g3,b3]@22 ~@21, ~@10 e3@43 [g3,e4]@32 ~@75]/5", // D G A D Em D Em C
})).s("gm_pad_warm").gain(0.28)

// other · flute · "flauto"
const flute = note("<~@5 A@2 B ~ C D E F G@2 H ~@2 I J K L M N O P Q R@2 S ~@7>".pickRestart({
  A: "[e4@16 d4 e4 [f#4,g4] f#4 d4 e4@16 d4 e4 f#4 g4 [d4,f#4] c4@11 b4@11]/2", B: "a4@7 g4@2 a4@2 e4@10 ~@11",
  C: "e5@10 d5@11 e5@11", D: "d5@11 e4@16 [d4,e4] f#4 g4 f#4 d4", E: "e4@16 d4 e4 [f#4,g4] f#4 d4 c4@11",
  F: "b4@11 a4@10 e4@11", G: "[e5@16 [d5,e5] f#5 g5 f#5 d5 e5@16 d5 e5 f#5 g5 f#5 d5 c5@10 b4@11]/2",
  H: "a4@11 e4@12 ~@9", I: "~@15 b4",
  J: "e5@7 f#5@2 ~@2 e5 d5@6 ~ f#5@2 e5 d5 c5@5 d5@2 e5@2, ~@9 g5@2 ~@21, ~@5 f#5 ~@3 e5 ~@6",
  K: "d#5@9 b4@2 e5@7 ~ g5@2 a5 g5 f#5@5 g5@2 a5@2, ~@9 f#5 ~@6",
  L: "g5 e5@6 f#5@2 ~ f#5@11 b5@7 b5@2 a5@2, ~ f#5 ~@7 g5@2 ~@21",
  M: "[f#5,g5] e5@6 g5@2 ~ b5@7 ~@2 a5@2 g5 e5@8 g5@2, ~ g5 ~@7 a5@2 ~@7 b5@2 ~@2 f#5 ~@9", // Gmaj7
  N: "a5@7 b5@2 c6@2 b5@7 ~ b5@2 a5@7 b5@2 c6@2, ~@9 c6 ~@6", O: "b5@9 b4@2 e5@16 [d5,e5] f#5 g5 f#5 d5",
  P: "e5@16 [d5,e5] f#5 g5 f#5 d5 c5@11", Q: "b4@11 a4@10 e4@9 b3@2",
  R: "[e4@16 d4 [e4,f#4] g4 ~ d4 e4@16 d4 ~ [f#4,g4] f#4 d4 c4@11 b3@11, ~@19 f#4@2 ~@17 e4@2 ~@24]/2", // Esus2 Gmaj7
  S: "a3@5 e4@5 ~@6",
})).s("gm_flute").gain(0.37)

// other · string ensemble 1 · "strings"
const string_ensemble_1 = note("<~@2 A@2 B C@2 D@2 E F@2 G H@2 I@2 J K ~@5 L M B N@2 O@3 P Q@2 R@2>".pickRestart({
  A: "[~@11 e5@15 d5 e5 f#5 g5 ~ e5@17 d5 e5 [f#5,g5] f#5 d5 c5@11, ~@15 f#5 ~@16, ~@31 d5 ~@32]/2", // Gmaj7
  B: "b4@7 c5@2 d5@2 a4@7 ~ a4@2 e4@9 b4@2, ~@9 g4 ~@6",
  C: "[e5@16 d5 e5 f#5 g5 d5 e5@16 d5 e5 f#5 [f#5,g5] ~ d5 c5@10 b4@7 c5@2 d5@2, ~@19 f#5@2 ~@43]/2", // Gmaj7
  D: "[a4@7 g4@2 a4@2 e4@10 ~@16 a5@5 ~@17 c6@5, ~@21 a4@21 ~@11 g5@11, ~@27 c#5@15 c5@22, ~@32 e5@11 ~@5 e5@16]/2",
  E: "b5@11 a5@10 b5@11", F: "[a5@11 e5@15 d5 e5 f#5 g5 f#5 e5@16 ~ [d5,e5] f#5 g5 f#5 d5 c5@11, ~@31 d5 ~@32]/2",
  G: "b4@7 c5@2 ~ a4@8 ~ a4@2 e4@9 b4@2, ~@9 d5@2 ~@7 g4@2 ~@12",
  H: "[e5@16 d5 e5 f#5 g5 d5 e5@16 d5 e5 f#5 [f#5,g5] d5 c5@11 b4@7 c5@2 d5@2, ~@19 f#5@2 ~@43]/2", // Gmaj7
  I: "[a4@7 ~ a4@2 e4@11 ~@16 a5@5 ~@16 c6@6, ~@7 g4@2 ~@12 a4@21 c5@22, ~@27 c#5@16 ~@10 g5@11, ~@32 e5@11 ~@5 e5@16]/2",
  J: "b5@10 a5@11 [e5,b5]@11", K: "[d5,a5]@10 [c5,e5]@21 ~", L: "~@9 b4@2 e5@15 d5 ~ f#5 g5 f#5 d5, ~@27 e5@2 ~@3",
  M: "e5@16 d5 [e5,f#5] g5 f#5 ~ c5@11, ~@10 d5 ~@5", // Esus2
  N: "[e5@15 d5 ~ [e5,f#5] g5 f#5 d5 e5@16 d5 e5 f#5 [f#5,g5] d5 c5@11 b4@7 c5@2 d5@2]/2", // Esus2 Gmaj7
  O: "[a4@7 g4@2 ~ e4@11 ~@16 a5@5 ~@17 c6@5 b5@10 [d5,a5]@11 [e5,b5]@11, ~@9 a4@2 ~@10 a4@20 ~@12 g5@10 ~@33, ~@27 c#5@15 c5@20 ~@34, ~@32 e5@11 ~@5 e5@27 ~@21]/3", // D5 E5
  P: "[d5,a5]@5 ~@11", // D5
  Q: "[~@16 a5@5 ~@16 c6@6 b5@10 a5@11, ~ a4@20 ~@11 g5@10 ~@22, ~@5 c#5@16 c5@21 ~@22, ~@10 e5@11 ~@5 e5@16 ~@22]/2",
  R: "[[e5,b5]@10 [d5,a5]@11 ~@16 e2@13 ~@14, ~@21 [b4,e5]@29 ~@14, ~@32 [e3,e4]@19 ~@13]/2", // E5 D5 E5 E
})).s("gm_string_ensemble_1").gain(0.32)

// chords · acoustic guitar steel · "guitar"
const acoustic_guitar_steel = note("<~ A@2 B C@2 D E@2 F G H I@2 J K@2 L M N@3 O P@2 Q R@2 S T@2 U@2 V@4>".pickRestart({
  A: "[~@9 [b3,e4]@2 ~@2 d4 ~@2 d4@2 ~@6 e4 g4 ~@4 [b3,e4]@2 ~@5 a3@2 f#4@2 [a3,d4]@2 ~@3 b3@5 ~@4 d4@6 ~ d4@2, e3@7 g4@5 a3@2 ~ a3@3 f#4@5 b3@2 ~ [b3,e4]@2 g4@6 a3@2 d4@3 ~@4 e4@10 ~ a3@10, ~ g3@9 ~ d3@8 d4@3 g3@10 ~ f#3@8 ~@2 e3@8 ~@2 d3@11, ~@2 b3@2 [b3,g4] b4@8 ~ f#4@2 a4@8 ~@3 b4@8 [d4,f#4]@2 a4@6 ~@9 b4@5 ~@7, ~@3 e4@6 ~@3 f#3@8 a3 e3@9 ~@2 d3@9 ~@4 g3@11 ~@8]/2", // E5 D5 E5 Em D
  B: "~@2 e4@6 ~ e4@2 ~ d4@6 ~ d4@2 ~@2 c4@6 ~ c4@2, e3@9 ~@2 [d3,a3]@10 c3@9 ~@2, ~ b3@10 ~@11 g3@8 ~@2", // D5
  C: "[~@2 g4@6 ~ g4@2 ~@2 f4@6 ~@20 e4@2 e4@2 ~ d4@6 ~ d4@2 ~@2 e4@6 ~ e4@2, g3@9 ~@2 f3@9 f4@2 b3@7 ~ b3@7 ~ b3@5 ~ a3@9 ~ b3@10, ~ d4@10 ~ c4@9 e3@7 ~ e3@8 e3@4 ~@2 d3@9 ~ e3@9 ~@2, ~@23 e4@8 ~ e4@7 ~@25]/2",
  D: "~@2 d4@6 ~ d4@2 ~ c4@6 ~ c4@2 ~@2 g4@6 ~ g4@2, d3@9 ~@2 [c3,g3]@9 ~@2 d4@10, ~ a3@10 ~@10 g3@9 ~@2", // C5
  E: "[~@2 f4@5 ~ f4@3 ~ e4@4 ~@2 e4@4 ~@15 e5@3 ~@11 c5@2 ~@7 g4@2 c5@2, f3@8 ~@3 [e3,b3]@5 e3@5 ~@4 e4@7 a3@9 ~@3 c3@18 ~@2, ~ c4@10 ~@6 b3@4 ~ a3@5 a4@7 e4@7 ~@5 g3@16 ~@2, ~@36 a4@6 ~@6 c4@7 c5@2 g4 c4@6, ~@50 g4@2 ~ e5@9 ~@2]/2", // E5
  F: "~@2 e4@6 ~ e4@2 ~ a3@7 ~ a3 ~@2 e4@6 ~ e4@2, e3@9 ~@2 d3@9 ~ e3@9 ~@2, ~ b3@10 ~ d4@6 ~ d4@3 b3@10",
  G: "~@2 d4@6 ~ d4@2 ~ e4@6 ~ e4@2 ~@2 d4@6 ~ d4@2, d3@9 ~@2 e3@9 ~ d3@9 ~@2, ~ a3@8 ~@3 b3@10 a3@9 ~",
  H: "~@2 e4@6 ~ e4@2 ~ d4@6 ~ d4@2 ~@2 c4@6 ~ c4@2, e3@9 ~@2 [d3,a3]@9 ~ c3@9 ~@2, ~ b3@10 ~@11 g3@8 ~@2", // D5
  I: "[~@2 g4@6 ~ g4@2 ~@2 f4@5 ~ f4@2 ~@2 e4@5 ~ [b3,e4] b3 ~@3 e4@6 ~ e4@2 ~ d4@6 ~@5 e4@7 e4@2, g3@9 ~@2 [f3,c4]@10 e3@6 ~ e3@4 e3@9 ~@2 [d3,a3]@9 ~ e3@9 ~@2, ~ d4@10 ~@11 b3@6 ~@3 e4@2 b3@8 ~@11 d4@2 b3@10]/2", // E5 F5 D5
  J: "~@2 d4@6 ~ d4@2 ~ g3@7 c4@2 ~@2 g4@6 ~ g4@2, d3@9 ~@2 c3@9 ~@2 d4@10, ~ a3@10 ~ c4@6 ~@3 g3@9 ~@2",
  K: "[~@2 f4@6 ~ f4@2 ~ e4@5 ~ b3 ~@11 e5@2 ~@9 e5 ~@6 c4@2 ~ g4@2 ~@2 c5@2 ~@3 c5@2 g4@2, f3@9 ~@2 [e3,b3]@6 e3@3 b3@2 ~ a3@11 e5@5 a4@3 ~@4 g3@16 ~@2, ~ c4@9 ~@9 e4@2 e4@15 a4 a3@3 c5@2 ~@8 e4@4 ~@3 [g4,a4]@2 c4@5, ~@27 a4@5 a5@9 ~ a5@4 ~@7 [c4,e5]@4 ~ e5@4 ~@2, ~@29 c5@9 e4@4 ~@2 c3@18 ~@2]/2", // E5 Gsus2 C
  L: "~@4 e4@5 e4@2 ~ d4@6 ~ d4@2 ~@2 e4@6 ~ e4@2, e3@9 ~@2 [d3,a3]@9 ~ e3@9 ~@2, ~ b3@4 ~@6 b3@5", // D5
  M: "~@2 d4@6 ~ d4@2 ~ e4@4 ~@16, d3@9 ~@2 [e3,b3]@5 ~@16, ~ a3@8 ~@23", // E5
  N: "[~@7 g4@2 b3 ~@9 a3@2 ~@20 b3@2 ~@3 g4 ~@4 b3 ~@3 a3 ~ f#4 ~@20 d#4 ~@2 d#4 ~@2 f#4 ~@4 g4 ~@3 b3 ~ b4, e3@10 ~ [d3,f#3]@9 ~ c3@8 g3@2 g4@3 f#3 d#4 f#3@3 d#4@4 ~ g3@8 ~@2 f#3@8 d4@3 e3@9 ~ b2@9 ~@4 e4@4 g4@3 ~, ~ g3@9 ~@2 a3@2 ~ a3@2 f#4@6 g3@2 e4 g3 g4@3 c4@3 d#3@8 ~@2 e3@9 ~ d3@10 ~ c3@8 g3@2 g4@2 ~ b3@3 f#4@3 [b3,d#4]@3 ~ b3@2 ~ b3 b4@4 ~, ~@2 b3 g4 b3 b4@7 ~@2 f#4@2 a4@8 c4@4 e4@6 b3@3 f#4@6 ~ b3@2 ~ b3 b4@6 ~@4 a3 a4@7 ~ c4@4 e4@5 f#3@2 ~ f#3@2 ~ f#3@2 ~@2 g3@8 e4@2, ~@3 e4@6 ~ e4@2 ~ d4@10 e3@9 b2@9 ~@4 e4@5 g4@2 [e4,g4]@3 ~ d4@4 f#4 a3@2 f#4@2 ~ g3 e4 g3 g4@4 c4@3 d#3@8 ~ e3@9 ~@2]/3", // D B Em
  O: "~@2 g3 ~@7 e4 ~ a3 ~ g4 ~@3 g4 b3 ~@3 g3 ~@5 g3 ~ g4, c3@10 ~@3 e4@5 ~@2 [e4,g4]@2 ~@2 c4@4 e4@3 ~, ~ e3@9 ~ e3@9 ~ c3@9 ~@2, ~@3 c4@4 e4@2 c4@2 ~ b3@2 ~ b3 b4@4 ~@5 e4 g3 g4@3 c4@2, ~@4 [g3,e4] g4@3 g3@2 ~@2 g3@8 ~@2 e3@8 ~@2", // Em C
  P: "[~@2 e3 c#4 ~@9 b3 c#4 b3 f#4@2 d#4 ~@2 d#4 ~@3 e3@2 ~@6 d#3@3 ~ d#4 ~ d#4 ~ d#4 f#4 ~@8 b3 ~@4 a3 ~ a3@2 ~@2 [a3,d4]@2, a2@8 e3@2 ~ d#3@6 ~@5 c#3@9 ~ b2@5 ~@2 b2@5 ~@2 g4@2 b4@6 ~@4 a4@6, ~ c#3@8 ~@2 b2@8 ~@2 a2@8 e3@2 ~@5 [f#3,b3]@3 ~@4 e3@9 ~ d3@9 ~@2, ~@3 a3@4 c#4@2 a3@2 ~ f#3@6 ~ b3@2 ~@2 a3@5 c#4@2 a3@3 ~@7 b3@2 ~@2 g3@8 e4@2 f#3@8 ~@2, ~@4 e3 e4@4 ~ e4@2 ~@8 f#4@2 ~ e3 c#4@2 ~ e4@4 e4@5 ~@2 f#4@2 ~@5 [b3,e4]@2 b3@3 g4@5 ~@2 [d4,f#4]@2 ~ f#4@4]/2", // D5 B5 E5 D
  Q: "~@3 e4 ~@5 [b3,e4]@2 ~@8 [a3,d4]@2 ~@9 [g3,c4]@2, e3@9 ~@2 d3@9 ~ c3@7 e4@4, ~ g3@8 ~@3 f#3@8 ~@2 e3@8 ~@2, ~@2 b3@2 [b3,g4]@3 g4@5 a3@2 f#4 a3 a4@6 ~@2 c4@6 ~@2, ~@5 b4@6 ~@2 d4@5 f#4@4 ~ g3@2 e4 g3 g4@5", // E5 D5 C5 Em
  R: "[a3 ~@2 g4 ~@5 g4@2 ~@2 e4 g4 ~ b4@2 ~ g4@2 ~@2 b3 e4 b3@2 e4 ~@6 b3 ~@6 e4@2 ~@3 f#4 d4 ~@3 [a3,d4]@2 ~@3 e4 ~@5 b4@2, g3@9 ~@2 f3@10 e3@7 ~ e3@2 ~ e3@9 ~@2 d3@9 ~ e3@9 ~@2, ~ b3@8 ~@2 a3@8 ~@3 g3@7 ~ g3@2 ~ g3@8 b3 ~@2 f#3@8 ~@2 g3@8 ~@2, ~@2 d4@2 b4@2 ~ b4@4 ~@7 a4@3 ~@14 e4@2 b4@6 ~@2 d4@2 ~ a4@6 ~@3 g4@2 b4 g4@4, ~@5 [d4,d5]@5 ~@2 c4@2 ~ c4@5 ~@8 [b3,e4]@3 b3@2 ~@3 b3@3 g4@4 ~ a3@2 ~ a3@3 f#4@4 ~ b3@2 ~ b3@5 ~]/2", // D5 D E5
  S: "~@9 d4@2 ~@13 g3 ~@5 b3@2, d3@7 f#4@4 ~@2 c4@2 ~@3 e4@4 ~ d3@2 ~ d3 b3 d3@4, ~ f#3@8 ~@2 [c3,e3]@9 ~ g2@8 g3@3, ~@2 d4@3 a4@5 ~@4 e4@2 g4@4 ~@5 b3@2 d4@4 ~, ~@2 a3 f#4 a3@5 ~@3 g3@2 ~ g3@3 ~@2 [g3,c4]@2 b2@9 ~", // C C5
  T: "[~@2 c3@2 ~@6 a3@4 ~@5 g4@2 ~@9 e3@2 ~@18 e4@2 ~ e4@9 ~@2, f2@8 c3@3 ~@7 [b3,e4]@2 ~@8 [a3,c#4]@7 ~@13 g3@2 ~@2 [g3,g4]@3 ~@9, ~ a2@8 ~@14 a2@8 ~@18 c4@5 ~@10, ~@4 f3@3 a3@2 f3@5 ~@2 e3@5 ~@4 c#3@6 ~@13 c3@11 ~@9, ~@4 a3 c3 c4@4 ~@7 g3@4 ~@6 e3@2 ~@17 e3@9 ~@9]/2", // E5 A G
  U: "[~@15 f#4 ~@9 g4 ~@15 f#4@2 ~@21, e3@8 e4@4 f#3@7 [d4,f#4]@4 b3@2 ~ b4@3 e4@4 f#3@7 d4@3 ~@21, ~ g3@9 ~ d3@9 ~ e3@9 g4@4 a3@2 [a3,f#4] a4@4 ~@23, ~@2 b3@2 [b3,g4] b4@4 g4@4 a3@2 ~ a4@4 a4@3 ~ e4@2 b3 g4 b3@3 b4@3 ~ d4@3 f#4 a3@4 ~@21, ~@3 e4@3 g4 b3@3 b4@3 ~ d4@2 a3 f#4 a3@4 g3@9 ~ d3@9 ~@23]/2", // D Em
  V: "[~@4 c#4 ~@4 e3@2 ~@3 c#4 ~@2 c#4 ~@6 c4 ~@4 d4 e4@2 ~@9 e4@2 ~@3 g4 ~@21 g4 ~@9 f#4 ~@2 f#4 ~@6 e4 ~@4 e4@7 ~@28, ~ a2@9 ~ a2@9 ~ c3@10 ~ c3@7 g3@3 ~@6 b4@3 ~ b4@4 d4@2 a3@2 f#4 [a3,d4]@4 g3@10 d3@8 [d4,f#4]@5 ~ g4 b3 g4 b3@8 ~@28, ~@2 c#3@9 ~ c#3@7 a3@3 ~ g3@2 ~ g3@5 ~@3 g3@2 [g3,e4]@2 e4@2 c4@3 ~ b3@2 ~ b3@2 ~ b3@3 ~ f#3@8 f#4@4 b3@2 ~ b4@3 e4@4 f#3@9 e3@15 ~@28, ~@3 e3@2 e4@8 a3@3 e4@4 c#4@2 ~@3 e4@2 g4@8 c4@2 g4@3 ~@5 e4@4 g4@2 [e4,g4]@4 a3@2 f#4@2 a4@4 a4@4 e4@2 b3 g4 b3@2 g4@3 a3@2 ~ a3@2 ~ a3@4 g3@14 ~@28, ~@4 a3@3 c#4@5 e3@2 ~ e3@2 ~ e3@3 ~ e3@10 ~ e3@7 ~@3 [e3,g3]@10 d3@10 ~ e3@10 b4@3 d4@3 a4@4 a4@3 b3@2 ~ b4@10 ~@28]/4", // D5 D C Em
})).s("gm_acoustic_guitar_steel").gain(0.24)

// other · overdriven guitar · "overdrive gt"
const overdriven_guitar = note("<~@7 A@2 B C ~@4 D@2 E F ~@10 G@2 H I J@2 K@2>".pickRestart({
  A: "[~@19 [g4,a4,b4,c5,d5,e5] [a3,b3,c4,d4,e4,f4] [e2,c3,d3,e3,f3,g3] ~@21 [c3,c4]@19 ~@2, ~@21 [a2,a3]@19 ~@24]/2", // Cmaj7 Dm7 C A
  B: "[e3,e4]@10 ~ [d3,d4]@8 [d3,d4]@2 [e3,e4]@11", C: "~@9 [g3,a3,b3,c4] [a2,b2,c3,d3,e3,f3] e2 ~@20, [d3,d4]@11 ~@21",
  D: "[~@20 [e4,g4,b4,e5,g5,b5,e6] [e2,b2,e3,g3,b3] ~@21 [c3,c4]@19 ~@2, ~@21 [a2,a3]@19 ~@24]/2", // Em C A
  E: "[e3,e4]@10 ~ d3@8 ~ d3 [e3,e4]@10 ~, ~@5 d4@5 ~@6", F: "[d3,d4]@9 d3 ~ [e3,e4]@21",
  G: "[~@19 e6 [e4,b4,c5,e5,g5,b5] [e2,b2,e3,g3,b3] ~@21 c3@18 ~@3, ~@21 [a2,a3]@19 ~@2 c4@18 ~@4]/2", // Cmaj7 Em A
  H: "[e3,e4]@10 ~ [d3,d4]@10 ~ [e3,e4]@10", I: "[d3,d4]@10 ~@20 [a5,c#6] [e3,a3,c#4,e4,a4,c#5,e5], ~@11 [e2,e3]@21",
  J: "[[a2,a3]@18 ~@3 [c3,c4]@18 ~@4 [e3,e4]@10 [d3,d4]@9 ~@2, [e2,c#3] ~@63]/2", // A C E D C#m
  K: "[[e3,e4]@10 [d3,d4]@10 ~ [e3,e4]@24 ~@19]/2", // E D E
})).s("gm_overdriven_guitar").gain(0.24)

// drums · kick
const kick = s("bd").struct("<~ A@17 B ~ C A@11 D A@2 E ~>".pickRestart({
  A: "x ~@8 x ~ x ~@8 x!2 ~@8 x ~", B: "x ~@8 x ~ x ~@20", C: "~@9 x ~ x ~@8 x!2 ~@8 x ~",
  D: "x ~@10 x!4 ~ x!2 ~ x ~ x!2 ~ x!2 ~ x!4 ~", E: "x ~@8 x ~ x ~@8 x!2 ~@10",
})).gain(0.58)

// drums · snare
const snare = s("sd").struct("<~ A@17 B ~ C A@11 D A@2 E ~>".pickRestart({
  A: "~@5 x ~@10 x ~@10 x ~@4", B: "~@5 x ~@15 x ~@4 x!2 ~@4", C: "~@16 x ~@10 x ~@4", D: "~@5 x ~@26",
  E: "~@5 x ~@10 x ~@15",
})).gain(0.58)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@15
  [~@5 x ~@2]
  ~@16
  [~@12 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~]
  ~@2
  [~@9 x ~@6]
  ~
>`).gain(0.58)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@15
  [~@6 x ~@2 x ~@6]
  ~@16
  [~@13 x ~@5 x ~@4 x ~@4 x ~@2]
  ~@2
  [~@13 x ~@2 x ~@4 x ~@10]
  ~
>`).gain(0.58)

// drums · open hat
const open_hat = s("oh").struct("<~@18 [~@27 x ~@4] ~@18>").gain(0.39)

// drums · high tom
const high_tom = s("ht").struct("<~@32 [~@11 x ~@4 x ~@4 x ~@5 x ~@4] ~@4>").gain(0.58)

// drums · crash
const crash = s("cr").struct("<~ A B ~ B A B C B A B ~@2 A B C B A B ~ B ~@3 B ~@2 A B C B D B D B D ~>".pickRestart({
  A: "x", B: "~@11 x ~@20", C: "~@21 x ~@10", D: "x ~@20 x ~@10",
})).gain(0.45)

// drums · ride
const ride = s("rd").struct("<A B C D E B C D E B C D F B C D E B G ~ H D I D C D F B C D E J G J E K ~>".pickRestart({
  A: "~@21 x ~ x ~ x ~ x!2 ~ x ~", B: "~@2 x ~ x!2 ~ x ~ x ~ x!2 ~ x ~ x ~ x!4 ~ x ~ x ~ x!2 ~ x ~",
  C: "x ~ x ~ x!2 ~ x!3 ~@2 x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x!4 ~",
  D: "x ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x ~ x ~ x!4 ~ x ~ x ~ x!2 ~ x ~",
  E: "x ~ x ~ x!2 ~ x!3 ~@2 x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x ~",
  F: "x ~ x ~ x!2 ~ x!3 ~ x!2 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x ~", G: "x ~ x ~ x!2 ~ x!3 ~@22",
  H: "~@7 x!3 ~@2 x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x!2 ~ x ~",
  I: "x ~ x ~ x!2 ~ x!3 ~ x!2 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x!4 ~",
  J: "~@2 x ~ x!2 ~ x ~ x ~ x!2 ~ x ~ x ~ x!3 ~@2 x ~ x ~ x!2 ~ x ~", K: "~@2 x ~ x!2 ~ x ~ x ~ x!2 ~ x ~ x ~ x!4 ~@10",
})).gain(0.45)

stack(
  bass, pad_warm, flute, string_ensemble_1, acoustic_guitar_steel, overdriven_guitar, kick, snare, low_tom, mid_tom,
  open_hat, high_tom, crash, ride
)

More by Nomadi