Strudelify

L'auto corre lontano (ma io corro da te)

Nomadi

KeyD minorTempo182 bpm
0:00/0:00
// L'auto corre lontano (ma io corro da te) — Nomadi
// 182 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(182/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 · electric bass finger
const bass = note(`<
  A B C@2 A B C D@2 E F G H I J K L M N O P Q@2 R S T U V W X Y Z AA AB AC AD@2 AE@2 AD@2 AF@2 AG AH G AI AJ AK O L AL
  AM P AN AO@2 AP AQ AR AS AT AU AV AW AX AY AZ AY AD@2 AE@2 AD@2 AE@2 AG AH G AI AJ AK O L AL AM P AN AO@2 AP AQ AR AS
  AT AU AV AW AX AY AZ AY AD@2 AE@2 AD@2 BA@2 BB BC BD BE BB BC BD BE BB BC BD BE BB BC BD BF BG@2
>`.pickRestart({
  A: "bb2@2 a2@3 ~ f2@4 d2 ~ c2@3 ~", B: "e2@11 ~ c3@3 ~", C: "c3@10 ~@2 c3@3 ~", D: "[c3@14 c3 ~]/2",
  E: "bb1@10 ~@2 bb1 ~@3", F: "bb1@7 ~", G: "a1@9 ~@3 a1 ~@3", H: "a1@12 a1 ~@3", I: "c2@5 ~ c2 ~",
  J: "c2@7 ~ g1@2 ~@2 c2 ~@3", K: "d2@9 ~@3 d2@2 ~@2", L: "a1@10 ~@2 a1 ~@3", M: "g1@5 ~ g1 ~",
  N: "g1@6 ~@2 g1@3 ~ c2@3 ~", O: "d2@10 ~@2 d2 ~@3", P: "d2@9 ~@3 d2 ~@3", Q: "[d2@26 ~@2 d3@3 ~]/2",
  R: "c3@8 ~@4 c3@3 ~", S: "c3@3 ~ c3@3 ~ g2@2 ~@2 g2@3 ~", T: "c3@9 ~@3 c3@3 ~", U: "c3@3 ~ c3@3 ~ g2@3 ~ c3@2 ~@2",
  V: "b2@9 ~@3 b2@3 ~", W: "b2@2 ~@2 b2@4 ~@4 b2@3 ~", X: "bb2@8 ~@4 bb2@3 ~", Y: "bb2@3 ~ bb2@4 ~@4 bb2@3 ~",
  Z: "a2@9 ~@3 a2 ~ a2 ~", AA: "a2@3 ~ a2@2 ~@2 gb2@3 ~ a2@3 ~", AB: "a1@8 ~@4 a1 ~ a1 ~",
  AC: "a1@3 ~ a1@3 ~@5 a1@2 ~@2", AD: "[bb1@29 ~@3]/2", AE: "[c2@15 ~]/2", AF: "[c2@26 ~@2 c3@3 ~]/2",
  AG: "bb1@12 f2 ~ f2 ~", AH: "bb2@2 a2 ~ a2 ~ f2 ~ f2@2 d2 ~ bb1@4", AI: "a1 ~@3 a1@5 ~@3 a1 ~@3",
  AJ: "c2@10 ~@2 c2 ~@3", AK: "c2@2 g1 ~ c2@6 g1 ~ c2@2 ~@2", AL: "g1@9 ~@3 g1 ~@3", AM: "g1@7 ~ g1@2 a1 ~ g1@2 ~@2",
  AN: "d2@4 a1@2 b1@2 d2@2 b1 ~ d2@2 b1 ~", AO: "[d2@15 ~]/2", AP: "c3@10 ~@2 c3 ~@3",
  AQ: "c3@4 g2@2 a2@2 c3@2 a2@2 g2@3 ~", AR: "c3 ~@3 c3@7 ~ c3 ~ g2 ~", AS: "c3@2 g2 ~ c3@3 ~ g2@2 a2 ~ c3 ~@3",
  AT: "b2@10 ~@2 b2@3 ~", AU: "b2 ~@3 b2@4 ~@4 b2@3 ~", AV: "bb2@5 ~ bb2@2", AW: "~@4 bb2@4 ~@4 bb2@3 ~",
  AX: "a2 ~@3 a2@6 ~@2 a2@2 gb2 ~", AY: "a2@2 gb2 ~ a2@3 ~ a2@2 gb2 ~ a2@2 gb2 ~", AZ: "a2@2 ~@2 a2@8 a2@2 gb2 ~",
  BA: "[c2@21 ~ c3@4 g2 ~ c2@2 g2 ~]/2", BB: "bb2 ~@3 bb2@7 ~ bb2 ~@3", BC: "bb2@2 f2 g2 bb2 g2 bb2 g2",
  BD: "c3 ~@3 c3@4 ~@4 g2@2 a2@2", BE: "c3 a2 g2 c2 g2 a2 c3 c2", BF: "c3 a2 g2 c2 g2 a2 c3@2", BG: "[f2@7 ~]/2",
})).s("gm_electric_bass_finger").gain(0.6)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~ A@2 B@4 C@2 ~@15 D@3 E@8 F@6 G@2 ~@16 H@3 I J@2 K@8 ~@4 L@2 M@2 N@2 O P Q@2 R@4 S@4 T@2 U@2 ~ V W@2 X@8 ~ Y Z@2 AA@2
  AB@4 Z@2 ~ AC AD@2 AE@2
>`.pickRestart({
  A: "[~@2 c6@21 ~ d6@8]/2", B: "[g5@30 ~ a5@6 c6@15 d6@4 a5@4 c6@4]/4", C: "[g5@7 ~]/2", D: "[d6@31 e6@17, c4]/3",
  E: "[d6@32 ~@40 [gb5,gb6]@4 [d5,d6]@4 g5@3 ~ gb5@4 [d4,d5,d6]@4 [d4,a5]@4 [d4,a5]@32, d4@87 ~@5 a4@35 ~, ~@32 g6@48 g6 ~@2 gb6@4 ~@41]/8", // Gb D D5
  F: "[~ e6 f6, d6]/6", G: "[g6@29 ~@3]/2", H: "[d6@7 ~@2 e6@24 ~@15]/3", I: "b4@6 c5@5 b4@4 ~",
  J: "[g4@6 ~@2 d5@7 ~ g5@8 a5@8, ~@7 d4@25]/2", K: "[~@32 a5@33 ~@63, d6]/8", L: "[a4@31 ~]/2",
  M: "[~@16 g5@8 f5@7 ~, c5]/2", N: "c6/2", O: "f5@15 ~", P: "c6@15 ~", Q: "[c6@2 b5@13 ~]/2",
  R: "[[gb4,a4]@63 ~, d4@23 ~@9]/4", S: "[e6@23 ~ d6@4 ~@5 g5@30 ~, ~@28 e6@35 ~]/4",
  T: "[d6@20 b5@2 c6@2 d6@5 d5@3]/2", U: "[~ g5@30 ~]/2", V: "[gb5,gb6] [g5,g6] [gb5,gb6] [d5,d6]",
  W: "[[a4,a5]@31 ~]/2", X: "[d6@127 ~]/8", Y: "d6@8 g6@7 ~", Z: "e6/2", AA: "[f6@24 a6@7 ~]/2", AB: "[e6@7 f6]/4",
  AC: "d6@8 a6@7 ~", AD: "[e6@24 a6@7 ~]/2", AE: "[f6@7 ~]/2",
})).s("gm_string_ensemble_1").gain(0.37).pan(0.7)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A@8 ~@10 B@4 ~ C@3 D@4 E@4 ~@8 F@4 G@4 H@2 I@4 ~ J@3 ~@20 K@2 L M N@2 O@3 ~ P@4 Q@4 ~@12 R@2 S@2 R@2 S@2 R@2 S@2 R@2
  S@2 T@2
>`.pickRestart({
  A: "[[e3,a3,e4]@31 ~ [f3,g3,f4]@32, ~@31 bb3@31 ~@2]/4", B: "[d3,a3,d4,a4]/4", C: "[c4,e4]/3", D: "[b3 bb3, d4]/4",
  E: "[~@8 d4@3 ~ a3@2 ~ d4@4 ~ a3@3 d4@3 ~ a3@3 ~ d4@32 ~]/4",
  F: "[[f4,a4]@28 [e4,g4]@3 ~ [c4,c5]@32, d4 ~, e4 ~@30 f4@32 ~]/4", // F Em C
  G: "[[bb3,f4]@31 ~@17 [c4,e4]@16, d4@3 ~, ~@31 f4@16 ~@17, ~ a3]/4", H: "[[g3,b3,d4]@15 ~]/2",
  I: "[[a3,d4,gb4,a4]@61 ~@3]/4", J: "[d4@4 ~ e4@3 ~ e4@24 ~@15]/3", K: "[d4@7 ~]/2", L: "f4@7 ~", M: "g4@7 ~",
  N: "[g4@31 ~]/2", O: "[d3@23 ~]/3", P: "[[g3,c4,e4]@63 ~]/4", Q: "[~ [g3,d4]@62 ~]/4", R: "[bb3,d4,f4]/2",
  S: "[c4,e4,g4]/2", T: "[[c4,f4,a4]@7 ~]/2",
})).s("gm_string_ensemble_2").gain(0.18).pan(0.3)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@77 A@2 B@2 ~@6 C@3 ~@5 D@4 ~@30>".pickRestart({
  A: "f4/2", B: "[e4@15 f4@16 ~]/2", C: "[d4@23 ~]/3", D: "[~ b3@30 bb3@32 ~]/4",
})).s("gm_string_ensemble_2").gain(0.09).pan(0.3)

// other · french horn
const french_horn = note(`<
  ~@24 A@3 ~@8 B@2 C@6 ~@5 D E F G@2 H@4 ~@12 I@2 J@2 K@2 L@2 ~ M N@2 O@2 P Q O@2 R@4 ~@16 S@2 L@2 ~ T U@3 V W@3 X Y@3 Z
  L@2 AA@2
>`.pickRestart({
  A: "[d4@3 ~ e4@5 ~@3 g3@28 ~@8]/3", B: "[d4@31 ~]/2", C: "[d4@15 ~]/2", D: "~ f4@15, bb3", E: "~ [a3,f4]@15",
  F: "~ a3@15, e4@7 ~", G: "[[g3,d4]@31 ~]/2", H: "[a3@59 ~@5, gb4@55 ~@9]/4", I: "[f4@31 ~]/2", J: "[g4@31 ~]/2",
  K: "[a4@31 ~]/2", L: "g4/2", M: "a4@8 g4@7 ~", N: "[c5@31 ~]/2", O: "[g4@15 ~]/2", P: "f4@15 ~", Q: "~ g4@13 ~@2",
  R: "[a4@15 ~]/4", S: "f4/2", T: "d4@8 g4@7 ~", U: "[e4@35 ~@5 d4@7 ~]/3", V: "f4@10 ~ g4@4 ~", W: "[e4@17 ~@7]/3",
  X: "d4@8 a4@7 ~", Y: "[g4@9 ~ d4@2]/3", Z: "f4@5 ~ a4@2", AA: "[f4@7 ~]/2",
})).s("gm_french_horn").gain(0.53).pan(0.3)

// chords · synth brass 2
const synth_brass_2 = note(`<
  ~@24 A@3 B@4 C@2 D@2 ~@19 E F@2 ~@10 G H I@2 J@2 I@2 K@2 ~@2 L@2 M@2 N O P@2 Q@4 ~@6 R@2 S@2 T@2 ~@4 U@4 ~ V W@2 X@2
  W@2 Y@2 W@2 X@2 Z@2 AA@2
>`.pickRestart({
  A: "[c4,e4]/3", B: "[b3 bb3, d4]/4", C: "[a3, d4 ~@31]/2", D: "b3/2", E: "~@4 a3 ~ b3 ~ d4 ~ b3 ~ d4 b3 ~@2",
  F: "[d4@7 ~]/2", G: "~@4 d4 ~@5 d4 ~@5", H: "d4 ~@5 d4 ~@5 d4 ~@3", I: "[bb2@15 ~]/2", J: "[c3@15 ~]/2", K: "c3/2",
  L: "[g4@8 ~ f4@23]/2", M: "[bb3,d4]/2", N: "[a3,c4,f4]@15 ~", O: "[g3,c4,e4]@13 ~@3", P: "[[g3,b3,d4]@15 ~]/2",
  Q: "[~@20 a3 ~ b3 ~ d4 ~ b3 ~ d4 b3 ~@2 d4@28 ~@4, d3@15 ~]/4", R: "[[bb2,d4,g4]@15 ~]/2", S: "[a2,d4,gb4]/2",
  T: "[[a2,g3,b3], d4 ~@31]/2", U: "[bb3,d4]/4", V: "[bb2,d3]@15 ~", W: "[[c3,e3]@31 ~]/2", X: "[[bb2,d3]@15 ~]/2",
  Y: "[~ [bb2,d3]@30 ~]/2", Z: "[c3,e3]/2", AA: "[c3,f3]/2",
})).s("gm_synth_brass_2").gain(0.28).pan(0.2)

// other · flute
const flute = note("<~@35 A B C D E F G@2 ~@26 A B C D E F G@2 ~@26 A B C D E F G@2 ~@18>".pickRestart({
  A: "d6 ~@2 d6 ~@2 d6 ~ d6 ~@3 d6 ~ d6 ~", B: "~@2 d6 ~ d6@2 ~@2 d6 ~ d6 ~ d6 ~ d6 ~",
  C: "d6 ~ d6 ~@3 d6 ~ d6 ~@3 d6 ~ d6 ~", D: "~@2 d6 ~ d6 ~@3 e6@2 f6@2 e6@2 c6@2",
  E: "d6@2 d6@2 ~@2 d6 ~ d6 ~@3 d6 ~ d6 ~", F: "~@2 d6 ~ d6 ~@3 d6 ~ d6 ~ d6 ~ d6 ~", G: "[d6@31 ~]/2",
})).s("gm_flute").gain(0).pan(0.2)

// chords · trombone
const trombone = note(`<
  ~@35 A@2 B@2 C@2 D@2 ~@5 E F@2 G@2 H@4 ~@12 I@2 J@2 K@2 L@2 ~@20 K@2 M@4 ~@4 N@4 ~ O P@4 Q@4 R@4 S@2 T@2
>`.pickRestart({
  A: "[[bb2,bb3]@15 ~]/2", B: "[[c3,c4]@31 ~]/2", C: "[[bb2,bb3]@31 ~]/2", D: "[c3,bb3]/2", E: "bb2", F: "~ a2@15",
  G: "[g2@31 ~, f2 ~@31]/2", H: "[a2@59 ~@5]/4", I: "[bb2@15 ~]/2", J: "[c3@15 ~]/2", K: "[bb2@31 ~]/2", L: "c3/2",
  M: "[a2@63 ~]/4", N: "[bb2,bb3,d4]/4", O: "d4@8 g4@7 ~, [bb2,d3]@15 ~",
  P: "[[c3,e3]@31 ~@9 d4@7 ~ f4@10 ~ g4@4 ~, e4@35 ~@29, ~@16 [bb2,d3]@15 ~]/4", // C Bb
  Q: "[[c3,e3]@31 ~@17 d4@8 a4@7 ~, e4@33 [bb2,d3]@30 ~]/4", // C Bb
  R: "[[c3,e3]@31 ~@9 d4@8 f4@10 ~@2 a4@4, g4@9 ~@7, ~@16 [bb2,d3]@15 ~]/4", S: "[c3,e3,g4]/2", T: "[f2,c3,f4]/2",
})).s("gm_trombone").gain(0.72).pan(0.2)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~ A B A B A B C@2 D@2 E@2 F@3 ~@59 G H I@2 J@2 K@2 L M N O@3 ~@40>".pickRestart({
  A: "c5@3 f5", B: "g5@3 f5", C: "[c5@7 ~]/2", D: "a4/2", E: "g4/2", F: "[f4@11 ~@5]/3", G: "~@4 c3@4 f3@4 g3@3 ~",
  H: "bb3@3 ~ bb3 ~ a3@3 ~ a3 ~ g3@3 ~", I: "[a3@3 ~ c4@26 ~@2]/2",
  J: "[~@4 c3@4 f3@3 ~ g3 ~ bb3@5 ~ bb3 ~ a3@3 ~ a3 ~ f3@3 ~]/2", K: "[c3@29 ~@2 c3]/2", L: "f3@4 c4 ~@2 c4@7 c3@2",
  M: "c4@3 ~ c4 ~ c4@5 ~ c4@3 ~", N: "c4@3 ~@2 d4@10 ~", O: "[b3@3 ~@2 a3@3 g3@3 ~ a3@36]/3",
})).s("gm_electric_guitar_jazz").gain(0.55).pan(0.2)

// other · marimba
const marimba = note("<~ A B A B A B C ~ D ~ E ~ F ~@43 G@4 ~@68>".pickRestart({
  A: "c5 ~@5 f5 ~", B: "g5 ~@5 f5 ~", C: "c5 ~@7", D: "a4 ~@15", E: "g4 ~@15", F: "f4 ~@15",
  G: "e7 d7 e7 d7 e7 d7 e7 d7 e7 d7 e7 d7 e7 d7 e7 d7",
})).s("gm_marimba").gain(0.15).pan(0.2)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A@8 B@2 C D E F G H I@2 J K@3 ~@11 L@7 M@2 ~@10 N@3 ~@12 L@7 M@2 ~@10 N@3 ~@13 O@8 ~@18
>`.pickRestart({
  A: "[~ [c4,e4]@27 ~@5 f4@28 ~@4 e4@24 ~@8 f4@27 ~@4, [f3,a3]@28 ~@2 f3@30 ~@2 f3@26 ~@7 [g3,bb3]@30 ~@3, ~@31 bb3@29 ~@3 a3@26 ~@39, ~@32 d4@28 ~@4 c4@25 ~@7 d4@28 ~@4]/8", // C F Gm
  B: "[~@4 f4@4 ~@4 f4@4 ~@4 f4@4 a4@4 f4@3 ~, d4@12 ~@4 d4@13 ~@3, ~@2 a4@3 ~@3]/2", C: "~ g4 ~ g4, c4@3 ~, ~ a4",
  D: "~@2 g4@2 a4@2 g4 ~, c4@15 ~", E: "~ f4 ~ f4, d5@3 ~, ~ bb4", F: "~@4 f4@4 bb4@4 f4@3 ~, d5",
  G: "~@2 f4@2 a4@2 f4 ~, d4@3 ~", H: "~@2 g4@2 a4@2 g4 ~, c4@3 ~",
  I: "[~ d4 g4 ~@2 d4 ~ d4, b4@6 d4@3 ~@3 g4@3 ~, ~@8 b4@7 ~]/2", J: "~@4 g4@2 ~@2 gb4@2 ~@2 d4@3 ~, d4@3 d4@2 g4@3",
  K: "[d4@5 ~@3 gb4@2 g4@2 ~@4 d4@31 ~, a3@3 ~@2 g4@3 ~@6 g4@10 ~@24, ~@6 d4@5 ~ d4@4 ~@32]/3",
  L: "[~@16 [bb3,d4,f4]@29 ~@3 [c4,e4,g4]@29 ~@3 [bb3,d4,f4]@29 ~@2 [c3,g3], ~@15 [bb2,f3]@31 ~ [c3,g3]@31 ~ [bb2,f3]@31 ~@2]/7", // Bb C Bb C5 Bb5 C5 Bb5
  M: "[[c4,e4,g4]@29 ~@3]/2", // C
  N: "[~@4 gb4@4 d4@3 ~ [a3,gb4]@8 ~@2 d4@2 gb4@2 g4@2 gb4@2 d4@2 [a3,gb4]@16, d3@11 ~@9 d3@28, g4 ~@7]/3", // D
  O: "[f4@29 ~@3 [c4,e4,g4]@29 ~@3 [bb3,d4,f4]@29 ~@3 [c4,e4,g4]@29 ~@3, ~@31 [c3,g3]@31 ~ [bb2,f3]@31 ~ [c3,g3]@31 ~@2]/8", // C Bb C C5 Bb5 C5
})).s("gm_acoustic_guitar_steel").gain(0.29)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~@23 A@4 B@2 C@2 D@2 E F G ~@7 H@2 I@4 J K L@2 M@2 N ~ A@4 O@2 P@2 D@2 E F Q@2 ~@6 R@2 S@4 T U V@2 W@2 N ~ X@4 Y@2 C@2
  D@2 Z F AA@2 ~@24
>`.pickRestart({
  A: "[~ e3@3 ~@3 [c3,e3,g3]@3 ~ [c3,e3,g3] ~ g3@5 [g3,c4]@4 [g3,c4]@2 ~@4 [g2,c3,e3]@4 [g2,c3,g3]@4 ~ g3 ~ c3 ~ e3@2 g3 [e3,g3]@4 [e3,g3,c4]@4 c3@2 [g3,c4,e4]@4 [g3,c4]@2 [c3,e3,g3,c4]@4, g2@3 [g2,c3,e3]@3 [g2,c3,e3,c4] ~@2 g2!2 g2@5, c3@4 c3@2 e4@15 ~ e4@4 e4@4 ~@6 c3@2 [g3,c4]@4 ~@10 e3@8 ~@4, ~ [g3,c4,e4]@5 c4@4 c4@7 ~@11 c4@10 e4@15 ~@5 e4@6, ~@5 e3@2 ~@17 g3@8 e3@8 c3@11 ~@3 c3@6 ~@4]/4", // C C5 C C5 Em C C5 C …
  B: "[[g2,b2,e3,g3]@2 g3 [g3,b3]@2 [g3,b3] [g3,b3]@3 g3 ~ [g3,b3] [b2,d3,b3]@2 ~ b3, [b3,g4]@3 g4@6 [b3,g4]@2 g4@2 ~@3, ~ [g2,b2]@2 g2@4 [g2,b2,d3,g3], ~@6 d3@6 g3 ~@3, ~@3 b2@2 b2 ~@2]/2", // Em G Bm Em G
  C: "[~@4 bb3@2 bb3@2 bb3@2 [bb3,d4]@2 [bb2,d3,bb3,d4]@4 d3@4 ~@2 bb2@2 ~@3 bb3 [bb3,d4]@2 [bb3,d4,g4]@2, d3@4 d3@2 ~@4 d3@3 d4 ~@2, d4@2 bb2@4 ~@2 [bb2,bb3,d4,g4]@3 ~ bb2@2 [bb2,d3]@2, [g2,bb2,bb3] g2@4 g2 g2@2, ~ g4@5 [d4,g4]@4 g4@4 ~@8 [bb3,d4,g4]@4 g4@4 ~@2]/2", // Bb Gm Bb Gm G5 Gm
  D: "[~ [a3,d4,gb4]@4 d4 a3@2 [d3,a3]@3 ~ [a3,d4]@6 a3@2 a3@2 [a3,d4,gb4]@2 d4@2 ~@4 d4@2, a2 a2@2 a2, ~ d3@7 ~@4 d3@8 d3@4 [d3,a3]@4 [d3,a3]@4, ~@6 gb4@11 ~@7 gb4 ~@7, ~@3 d4@3 ~@3 [d4,gb4]@2 ~@2 [d4,gb4]@2 ~]/2", // D D5 D D5 D
  E: "g3@4 g3@2 g3@2 g3@2 [g3,b3] ~ [b2,d3,g3,b3]@4, b2@5 ~@3, d3@2 d3 ~, [b3,g4]@3 g4@5, ~@3 b3@2 ~@3", // G Em
  F: "d3@2 g3 ~ [g2,b2,d3]@2 b3 g4, [g2,b2]@2 ~ [g2,b2,d3,g3], [b3,g4]@3 g4@4 ~, g3 ~ d3@2 ~@4, ~@3 [g3,b3]@3 ~@2", // G Em G
  G: "~ f4@15, [bb2,f3,bb3,d4]", // Bb
  H: "[~@4 [bb2,d3,a3]@2 ~@6 [a3,d4,f4]@5 ~@5 [a3,d4]@2 [a3,d4]@2 [a3,d4,f4]@2 d4@2 [d4,f4]@2, [bb2,a3]@4 ~@2 [a3,d4]@4 [a3,d4]@2 d3@3 ~@2 f4@7 f4 ~@7, ~ [d4,f4]@5 f4@5 f2@12 ~ [f2,bb2,d3]@4 [f2,bb2,d3,a3]@4, ~@7 bb2@5 bb2@12 ~@8, ~@9 [a3,d4] d3@2 ~@4]/2", // Bbmaj7 Dm D5 Dm Bbmaj7 D5 Dm Bb …
  I: "[[a3,c4,f4]@6 ~@4 [a3,c4,f4]@2 [c3,f3,c4]@3 ~ f3@4 ~@2 [c4,f4]@4 ~ a3 c4@2 c4@2 [f3,a3,d4,f4]@4 [bb3,d4]@2 [bb3,d4]@4 [bb3,d4]@2 [f3,bb3,d4,f4]@6 [bb2,bb3,f4]@4 ~ bb2 ~ f4 [d4,f4]@2 bb3@2 [d4,f4]@2, f2@15 f2@44 ~ [f2,bb2,f3]@4, d3@12 ~@4 [a3,c4,f4]@6 a3@2 ~@2 [c4,f4]@2 f4 ~@9 f4@6 ~@6 d4@2 ~@2 [bb3,d4]@2 d4@2 ~@6, bb2@4 c3@2 ~@2 c3@6 [c3,f3,a3]@2 c3@9 ~@3 [bb2,f3,bb3]@2 ~@2, ~@6 [a3,c4,f4]@4 ~@2 f4 ~@7 f3@8 ~@8 f3@8 ~@6 f3@6 ~@8]/4", // F F5 Dm Bb Bb5 Dm Bb5 F …
  J: "f2 d4@3 d4@2 [a3,d4,f4]@2 ~@6 [d4,f4]@2, [bb2,d3] [a2,d3]@2 [a2,d3], ~ [a3,f4]@5 ~@2 a3@8, ~@4 [d4,f4]@3 ~", // Dm Bb D5 Dm
  K: "a2@4 ~@2 [g3,c4,e4]@2 [c3,e3]@3 c3 ~@2 [c4,e4]@2, d3@4 g3 ~@3, [g3,c4,e4]@3 ~ [c4,e4]@3 ~, ~ c3 ~ [c3,e3,g3]", // C
  L: "[~@4 d3 ~ d3@2 ~@2 g3 [b3,g4] [b2,d3,g4]@2 ~ g4, g2@19 g2@12 ~, c3@6 g3@2 b3@3 b2@4 ~ [b2,d3]@4 [b2,d3]@4 ~@4 [b2,d3]@4, [e3,g3,b3]@4 d3@2 b3 b2@3 [d3,g3]@2 [g3,b3,g4]@6 [b3,g4]@4 ~@2 [g3,b3]@8, ~ g4@5 g4@6 ~@20]/2", // Em G Bm Em G5 G Em G
  M: "[a3@2 a3 [a3,d4,gb4]@2 [a2,d3,a3,d4] [d3,a3,d4,gb4]@3 d3!2 [a2,d3,a3,d4,gb4] [d3,d4]@2 d4 [a3,d4,gb4], [b2,d3]@5 ~ a2@2 ~ [a2,a3,d4,gb4]@2 ~ [a2,a3] ~ a2@2, [d4,gb4]@6 ~@18 gb4 ~@7, g2 ~@31]/2", // D D5 D Bm D A D
  N: "[a2,d3,a3,d4,gb4]", // D
  O: "[[g2,b2,e3,g3]@2 g3 [g3,b3]@2 [g3,b3] [g3,b3]@3 g3 ~ [g3,b3] g3 ~ [g2,b2,d3,g3]@2, [b3,g4]@3 g4@6 [b3,g4]@2 ~@2 g4@3, ~ [g2,b2]@2 g2@4 ~, ~@3 d3@3 ~@2, ~@12 b2@8 b2@4 [b2,d3,b3]@5 ~@3]/2", // Em G Em G Bm
  P: "[~@4 bb3@2 bb3@2 bb3@2 [bb3,d4]@2 [bb2,d3,bb3,d4]@4 d3@4 ~@2 bb2@2 ~@3 bb3 [bb3,d4]@2 [bb3,d4,g4]@2, d3@4 d3@2 ~@4 d3@3 d4 ~@2, d4@2 bb2@4 ~@2 [bb2,bb3,d4,g4]@3 ~ bb2@2 [bb2,d3]@2, [g2,bb2,bb3] g2@4 g2 g2@2, ~ g4@5 [d4,g4]@4 ~@12 [bb3,d4,g4]@4 g4@4 ~@2]/2", // Bb Gm Bb Gm G5 Gm
  Q: "[~ [bb3,d4]@31, [bb2,f3]]/2", // Bb Bb5
  R: "[~@2 [bb2,d3,a3] ~@3 [a3,d4,f4]@3 ~@2 [a3,d4]!2 [a3,d4,f4] d4 [d4,f4], a3@4 ~@2 [a3,d4]@4 [a3,d4]@2 d3@3 ~@3 [a3,d4]@4 ~@2 f4 ~@7, ~ [d4,f4]@5 f4@5 f2@12 ~ [f2,bb2,d3]@4 [f2,bb2,d3,a3]@4, ~@7 bb2@5 bb2@12 ~@8, ~@5 d3 ~@2]/2", // Bbmaj7 Dm D5 Dm D5 Dm Bb Bbmaj7
  S: "[[a3,c4,f4]@6 ~@4 [a3,c4,f4]@2 f4 ~@3 f3@4 ~@2 [c4,f4]@4 ~ a3 c4@2 c4@2 [f3,a3,d4,f4]@4 [bb3,d4]@2 [bb3,d4]@4 [bb3,d4]@2 [f3,bb3,d4,f4]@6 d4@2 d4@2 ~ bb2 ~ f4 [d4,f4]@2 bb3@2 [d4,f4]@2, f2@15 f2@44 ~ [f2,bb2,f3]@4, d3@12 ~@4 [a3,c4,f4]@6 a3@2 ~@2 c4@2 f4 ~@9 f4@6 ~@10 bb3@2 d4@2 ~@6, bb2@4 c3@2 [c3,f3,c4]@2 c3@6 [c3,f3,a3]@2 c3@9 [bb2,bb3,f4]@2 ~ [bb2,f3,bb3]@2 ~@2, ~@3 [a3,c4,f4]@2 ~@2 f4 ~@2 f3@4 ~@4 f3@4 ~@3 f3@3 ~@4]/4", // F F5 Dm Bb Dm Bb5 F F5 …
  T: "f2 d4@3 d4@2 [a3,f4]@2 ~@6 [d4,f4]@2, [bb2,d3] [a2,d3]@2 [a2,d3], ~ [a3,f4]@5 ~@2 a3@8, ~@4 [d4,f4]@3 ~", // Dm Bb D5 Dm
  U: "a2@2 ~ [g3,c4,e4] [c3,e3]@2 ~ [c4,e4], d3@4 g3 ~@3, [g3,c4,e4]@3 ~ [c4,e4]@3 ~, ~ c3 ~ [c3,e3,g3]", // C
  V: "[~@2 g3 ~ d3 ~ d3@2 ~@2 g3 [b3,g4] [b2,d3,g4]@2 ~ g4, g2@19 g2@12 ~, c3@6 g3@2 b3@3 b2@4 ~ [b2,d3]@4 [b2,d3]@4 ~@4 [b2,d3]@4, [e3,g3,b3]@4 d3@2 b3 b2@3 [d3,g3]@2 [g3,b3,g4]@6 [b3,g4]@4 ~@2 [g3,b3]@8, ~ g4@5 g4@6 ~@20]/2", // Em G Bm Em G5 G Em G
  W: "[a3@2 a3 [a3,d4,gb4]@2 [a2,d3,a3,d4] [d3,a3,d4,gb4]@3 d3!2 [a2,d3,a3,d4,gb4] [a2,a3] a3 d4 [a3,d4,gb4], [b2,d3]@5 ~ a2@2 ~ [a2,a3,d4,gb4]@2 ~ [d3,d4]@2 ~@2, [d4,gb4]@6 ~@18 gb4 ~@7, g2 ~@27 a2@4]/2", // D D5 D A D Bm D
  X: "[~ e3@3 ~@3 [c3,e3,g3]@3 ~ [c3,e3,g3] ~ g3@5 [g3,c4]@4 [g3,c4]@2 ~@4 [g2,c3,e3]@4 [g2,c3,g3]@4 ~ g3 ~ c3 ~ e3@2 g3 [e3,g3]@4 [e3,g3,c4]@4 c3@2 [g3,c4,e4]@4 [g3,c4]@2 [c3,e3,g3,c4]@4, g2@3 [g2,c3,e3]@3 [g2,c3,e3,c4] ~@2 g2!2 g2@5, c3@4 c3@2 e4@15 ~ e4@4 e4@4 ~@6 c3@2 [g3,c4]@4 ~@10 e3@8 ~@4, ~ [g3,c4,e4]@5 c4@4 c4@7 ~@11 c4@10 e4@15 ~@11, ~@5 e3@2 ~@17 g3@8 e3@8 c3@11 ~@3 c3@6 ~@4]/4", // C C5 C C5 Em C C5 C …
  Y: "[[g2,b2,e3,g3]@2 g3 [g3,b3]@2 g3 [g3,b3]@3 g3 ~ [g3,b3] [b2,d3,b3]@2 ~ b3, [b3,g4]@3 g4@6 [b3,g4]@2 g4@2 ~@3, ~ [g2,b2]@2 g2@4 [g2,b2,d3,g3], ~@6 d3@6 g3 ~@3, ~@3 b2@2 b2 ~@2]/2", // Em G Bm Em G
  Z: "g3@4 g3@2 g3@2 g3@2 [b2,g3] ~ [b2,d3,g3,b3]@4, b2@5 ~@3, d3@2 d3 ~, [b3,g4]@3 g4@5, ~@3 b3@2 ~@3", // Em G Em
  AA: "[~ [bb3,d4,f4]@31, [bb2,f3]]/2", // Bb Bb5
})).s("gm_acoustic_guitar_steel").gain(0.08).pan(0.8)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_3 = note(`<
  ~@24 A@2 ~ B C D ~@2 E F G H ~@7 I@2 J K ~ L@2 M N O P Q ~@3 A@2 ~ B R S ~@2 E F G T@2 ~@6 U@2 V W ~ X@2 Y ~ O P Z ~@3
  A@2 AA AB C D ~@2 E AC G ~@26
>`.pickRestart({
  A: "[~@7 e4@4 ~@2 c4@3]/2", B: "~ d3@2 ~", C: "~@2 g3 ~@2 g4@3, ~@5 g3 ~@2", D: "~@7 g4", E: "~@7 gb4",
  F: "~@10 b2 ~@5", G: "~ g3 ~@5 b3", H: "f2", I: "[d3@4 ~@2 d3@5 ~@4 d3@4 ~@13]/2", J: "~@7 f4, ~@3 a3",
  K: "~@4 a3 ~@2 f4", L: "[~@4 d4@2 f4@2 ~@5 d4 ~ bb3@2 ~@15]/2", M: "~@5 g3 ~@2", N: "~@2 g3 ~@5", O: "~ g3 ~ g3 ~@4",
  P: "~@5 gb4 ~@2", Q: "a2 ~@4 [a2,a3] d3@2, ~@9 gb4@3 a3@2 ~@2", R: "~@2 g3 g4@2 g3 ~ b3", S: "~@5 g4@2 g4",
  T: "[~ f4@31]/2", U: "[[bb2,d3]@4 ~@2 d3@5 ~@6 f4@7 ~@8, ~@15 d3@4 ~@13]/2", V: "~@3 a3", W: "~@4 a3 f4 ~ f4",
  X: "[~@6 [d4,f4]@2 ~@5 d4 ~ bb3@2 ~@5 d4@2 ~@8]/2", Y: "~@11 c3 ~@4, ~@5 g3 ~@2",
  Z: "a2 ~@4 a2 d3@2, ~@9 gb4@3 a3@2 ~@2", AA: "~@5 e4@3", AB: "~@5 b3 ~@2, ~ d3@2 ~", AC: "~@10 b3 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.04).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C B C B@2 ~ C@12 B ~ C@12 B ~ B ~ D ~ B E C@12 B ~ C@12 B ~ B ~ D ~ C F C@12 B G C@12 B ~ B ~ B ~ C F C@15 H B ~
>`.pickRestart({
  A: "~ x ~@10 x ~@3", B: "x", C: "x ~@2 x", D: "~ x ~@14", E: "~@3 x", F: "~@3 x ~@3 x", G: "~@4 x ~@2 x",
  H: "x ~ x!2",
})).gain(0.62)

// drums · snare
// … 34 more lines

More by Nomadi