Strudelify
La settima onda cover art

1994 · La Settima Onda

La settima onda

Nomadi

KeyE minorTempo141 bpm
0:00/0:00
// La settima onda — Nomadi
// 141 bpm, 4/4, key E 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: Full arrangement: all 162 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(141/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 B C D E F G H A B C D E F G I A B C D E F G H A B C D E F G I A B C D E F G H A B C D E F G H A B C D E F G H A B
  C D E F G H A B C D E F G I A B C D E F G H A B C D E F G H A B C D E F G H J@2 K@2 L@2 M@2 J@2 K@2 L@2 M@2 A B C D E
  F G H A B C D E F G H A B C D E F G I A B C D E F G H A B C D E F G I A B C D E F J@2 ~
>`.pickRestart({
  A: "a1@2 ~ a1 e1@2 g1@2", B: "a1@4 ~@2 a1 ~ a1@7 ~", C: "g1@2 ~ g1 e1@2 f#1@2", D: "g1@4 ~@2 g1 ~ g1@8",
  E: "e2@5 ~ e2@2 a1@4 b1@4", F: "e2@4 ~@2 e2 ~ e2@2 b1@2 e2@2 g1@2", G: "a1@5 ~ a1@2 e1@4 g1@4",
  H: "a1@4 ~@2 a1 ~ a1@2 d2@2 e2@2 a2@2", I: "a1@2 ~ a1 d2 e2 g2 e2", J: "a1/2", K: "g1/2", L: "e2/2", M: "[a1@31 ~]/2",
})).s("gm_fretless_bass").gain(0.41)

// other · accordion
const accordion = note(`<
  A B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 ~@31 J F@2 G@2 H@2 I@2 ~@31 J F@2 G@2 H@2 I@2 ~@31 J F@2 G@2 H@2 K@2 B@2 C@2 D@2 E@2
  F@2 G@2 H@2 L@2 F@2 G@2 H@2 I@2 ~
>`.pickRestart({
  A: "~@12 e4@3 [a4,b4]", B: "[c5@4 b4@2 c5@16 e4@2 a4@3 b4@2 c5@3]/2", C: "[b4@4 a4@2 b4@22 b3@3 [e4,f#4]]/2",
  D: "[g4@4 f#4@2 g4@14 e4@2 f#4@2 g4@2 a4@2 b4@2 c5 b4]/2", E: "[a4@24 ~@4 [a4,c5] [d5,e5] [f5,g5] [a5,b5]]/2",
  F: "[c6@4 a5@2 c6@16 e5@2 a5@3 b5@2 c6@3]/2", G: "[b5@4 a5@2 b5@22 b4@3 [e5,f#5]]/2",
  H: "[g5@4 f#5@2 g5@14 e5@2 f#5@2 g5@2 a5@2 b5@2 c6 b5]/2", I: "[a5@3 ~]/2", J: "~@12 [a4,c5] [d5,e5] [f5,g5] [a5,b5]",
  K: "[a5@24 ~@4 e4@3 [a4,b4]]/2", L: "[a5@24 ~@4 [a4,c5] [d5,e5] [f5,g5] [a5,b5]]/2",
})).s("gm_accordion").gain(0.41)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@32 A B C D E F G@2 ~@4 H I@3 ~@24 A B C D E F G@2 ~@4 H I@3 ~@28 H I@3 ~@4 H I@3 ~@34
>`.pickRestart({
  A: "~@10 c4 ~ c4 ~ c4@2", B: "c4@2 b3@2 a3 ~ c4@3 ~ c4 ~@5", C: "~@10 c4 ~ c4 ~ c4 ~",
  D: "c4@2 b3@2 a3 ~ b3@3 ~ b3@2 a3 ~ b3@2", E: "~@2 b3 ~@11 d4 ~", F: "d4@4 c4 ~ d4@3 ~ d4 ~@5",
  G: "[~@4 d4 ~ d4 ~ d4@2 e4@2 d4 ~ d4@4 c4@5 ~@9]/2", H: "~@12 g3 ~ g3@2", I: "[d4 ~ d4@26 d4 ~ d4@4 c4@6 ~@8]/3",
})).s("gm_distortion_guitar").gain(0.44)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@25 A@2 B@2 C@2 A@2 D@2 E@2 F@2 D@2 G@2 H@2 I@2 G@2 ~@16 A@2 B@2 C@2 A@2 D@2 E@2 F@2 D@2 G@2 H@2 I@2 G@2 ~@16 J@2 K@2
  L@2 J@4 K@2 M@2 J@4 K@2 M@2 J@4 K@2 M@2 J@4 K@2 M@2 J@4 K@2 M@2 J@4 K@2 M@2 J@2 ~
>`.pickRestart({
  A: "[c4,e4,a4]/2", B: "[b3,d4,g4]/2", C: "[b3,e4,g4]/2", D: "[e4,a4,c5]/2", E: "[d4,g4,b4]/2", F: "[e4,g4,b4]/2",
  G: "[a4,c5,e5]/2", H: "[g4,b4,d5]/2", I: "[g4,b4,e5]/2", J: "[c5,e5,a5]/2", K: "[b4,d5,g5]/2", L: "[b4,e5,g5]/2",
  M: "[e5,g5,b5]/2", // Em
})).s("gm_string_ensemble_2").gain(0.27).pan(0.6)

// other · alto sax
const alto_sax = note("<~@128 A@2 B C D E@3 F@2 G@2 H@2 I J K@2 L M N@3 O@3 P@2 Q@2 R S@2 ~>".pickRestart({
  A: "[~@4 e4@2 g4@2 a4@2 c5 ~ d5 d#5 d5@4 c5 d5@2 d5@2 c5 d5@2 c5 d5 c5 d5 e5 g5, ~@21 c5 ~@10]/2",
  B: "a5@2 a5@7 c6@3 b5 g5 ~ d5", C: "b5@6 g5 a5 e5 g5 d5 g5 e5@4", D: "d5@2 c5@4 d5 ~@3 b4@2 d5@2 e5@2",
  E: "[g5@6 e5 d5 e5@2 d5 b4 d5@6 b4 ~ a4@2 b4 ~ g4@2 e4@2 g4@2 a4@8 b4 ~ c5 b4 d5@2 c5@2 b4 ~]/3",
  F: "[a4@2 g4 ~ a4@2 e4@2 d4@2 c4@2 d4@2 e4@4 g4 ~ a4@2 c5 ~ a4@2 c5 a4 d5@2 c5@2]/2",
  G: "[a4@2 c5@2 d5@2 e5@6 c5 a4 b4@6 g4@2 e4@4 g4 ~ e4 g4 a4 ~]/2",
  H: "[a4@2 g4 ~ a4 g4 e4@2 ~@2 d4 e4 a4@2 g4@7 ~ e4 g4 a4 g4 b4@4 a4 g4]/2", I: "e4@3 d5@6 c5 b4 a4 b4 c5 b4 g4",
  J: "a4@6 ~@3 a4 b4 a4 c5 a4 d5 a4", K: "[e5@2 g5@5 ~ e5 g5 a5 ~ g5 e5@5 d5 c5 ~@5 c5 d5 c5 e5@2 d5 c5]/2",
  L: "~ e5 d5 c5 e5 d5 c5 e5 d5 c5 e5@2 g5 ~ e5@2", M: "d5@7 ~ d5 [d5,d#5] c5 e5@5",
  N: "[d5 c5 b4 a4 b4 c5 a4 b4 g4 a4 e4@3 d4 e4 g4@5 ~@4 e4 g4 a4 ~ a4 g4 b4@6 a4 g4 ~@3 d5@7]/3",
  O: "[c5@5 ~ b4 c5 d5 b4 ~ g4 ~ a4@7 ~ a4 c5 ~ d5 c5 e5@3 g5 ~ a5@5 g5 e5 ~@5 a5@3 g5 e5]/3",
  P: "[g5 e5 ~@3 d5@2 e5 g5 ~ g5 ~ e5@2 d5@5 c5 ~ b4 c5 d5 b4@3 g4 ~ e4 g4@2]/2",
  Q: "[~@5 g3 a3 b3 c4 d4 ~ e4 ~ g4 ~ e4@5 ~ e4 g4 ~ a4@2 b4 ~@3 e4@2]/2", R: "g4@2 a4@2 b4 c5 ~ d5 ~ b4@4 ~ g4 e4",
  S: "[a4@7 ~]/2",
})).s("gm_alto_sax").gain(0.49)

// other · viola
const viola = note("<~@49 A@2 B@2 C@2 D@2 ~@32 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 E@2 F@2 G@2 H@2 ~@49>".pickRestart({
  A: "[c5@4 a4@2 c5@16 e4@2 a4@2 b4@3 c5@3]/2", B: "[b4@2 a4 b4@11 b3@2]/2",
  C: "[g4@4 f#4@2 g4@14 e4@2 f#4@2 g4@2 a4@2 b4@2 c5 b4]/2", D: "[a4@3 ~]/2", E: "[e5@5 a4 b4 c5]/2",
  F: "[d5@5 d4 g4 a4]/2", G: "[b4@5 e4 a4 b4]/2", H: "[c5@15 ~]/2",
})).s("gm_viola").gain(0.37).pan(0.3)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  ~@41 A B C D E F G@2 ~@32 A B C D E F G@2 ~@24 A B C D E F G@2 A B C D E F G@2 ~@33
>`.pickRestart({
  A: "~ e3 c3 b2", B: "a2", C: "~ d3 b2 a2", D: "g2", E: "~ b2 g2 f#2", F: "e2", G: "[a2@27 ~@5]/2",
})).s("gm_electric_guitar_clean").gain(0.44).pan(0.4)

// other · piano
const piano = note("<~@158 A@2 ~@2>".pickRestart({
  A: "[~@14 c6@17 ~]/2",
})).s("gm_piano").gain(0.31)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@17 A@2 B@2 C@2 A@4 B@2 C@2 D@2 E@8 ~@16 A@2 B@2 C@2 A@4 B@2 C@2 D@2 E@8 ~@15 F@16 ~@46 G@3 ~
>`.pickRestart({
  A: "[[a2,e3,a3,c4,e4]@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@2]/2", // Am
  B: "[[g2,d3,g3,b3,d4]@4 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]!2 [g2,d3,g3,b3,d4]@4 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@2]/2", // G
  C: "[[e2,b2,g3,b3,e4]@4 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]!2 [e2,b2,g3,b3,e4]@4 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@2]/2", // Em
  D: "[[a2,e3,a3,c4,e4]@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@4 [a2,e3,a3,c4,e4]@2 ~ [a3,c4], ~@15 [a2,e3,a3,c4,e4]]/2", // Am
  E: "[e4 ~@3 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@4 a2@2 ~@2 d4@4 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]!2 [g2,d3,g3,b3,d4]@4 g2@2 ~@2 e4@4 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]!2 [e2,b2,g3,b3,e4]@4 e2@2 ~@2 e4@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@4 [e3,a3,c4,e4]@4, ~@28 [e3,a3,c4,e4]@3 [g3,b3]@5 ~@24 [d3,g3,b3,d4]@3 [g3,b3]@5 ~@26 [a2,e3]@6 ~@24 a2@2 ~@2, ~@30 [g2,d3]@6 ~@26 [e2,b2]@6 ~@24 [b2,g3,b3,e4]@3 [a3,c4]@5 ~@28]/8", // Am G Em Am G A5 G5 E5 …
  F: "[~@7 e4, ~@7 [a2,e3]@16 [g2,d3]@16 [e2,b2]@16 [a2,e3]@9, ~@15 [a3,c4]@32 [g3,b3]@32 [g3,b3]@32 [a3,c4]@17, ~ e4@2 d4@2 e4@2 ~]/8", // A5 G5 E5 A5 Am G Am
  G: "[~ e4@2, ~@7 [a2,e3]@16 ~, ~@15 [a3,c4]@32 ~]/3", // A5 Am
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.4)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@17 A B C D E F A B A B C D E F A B A B C D E F A B ~@16 A B C D E F A B A B C D E F A B A B C D E F A B ~@81
>`.pickRestart({
  A: "~@5 [a2,e3,a3,c4,e4] ~@2", B: "~ [a2,e3,a3,c4,e4] ~@6", C: "~@5 [g2,d3,g3,b3,d4] ~@2",
  D: "~ [g2,d3,g3,b3,d4] ~@6", E: "~@5 [e2,b2,g3,b3,e4] ~@2", F: "~ [e2,b2,g3,b3,e4] ~@6",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  A@8 B@8 C ~@23 D@8 E@8 C ~@23 D@8 E@8 C ~@15 D@8 F@8 E@8 B@16 G@7 ~@3
>`.pickRestart({
  A: "[~@8 e4@2 [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ a2 ~ d4@2 [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ g2 ~ e4@2 [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ e2 ~ e4@2 [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3,a3,c4,e4]!2, ~@14 [a2,e3]@6 ~@26 [g2,d3]@6 ~@26 [e2,b2]@6 ~@24 [b2,g3,b3,e4]@3 [a3,c4]@5 ~@12, ~@15 [a3,c4]@5 ~@24 [e3,a3,c4,e4]@3 [g3,b3]@5 ~@24 [d3,g3,b3,d4]@3 [g3,b3]@5 ~@26 [a2,e3]@6 ~@12]/8", // Am G Em Am A5 G5 E5 Em …
  B: "[~@2 [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3] ~ e4@2 [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ a2 ~ d4@2 [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ g2 ~ e4@2 [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ e2 ~ e4@2 [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3,a3,c4,e4]!2, ~@12 [a3,c4,e4]@3 [a3,c4]@5 ~@24 [e3,a3,c4,e4]@3 [g3,b3]@5 ~@24 [d3,g3,b3,d4]@3 [g3,b3]@5 ~@26 [a2,e3]@6 ~@12, ~@14 [a2,e3]@6 ~@26 [g2,d3]@6 ~@26 [e2,b2]@6 ~@24 [b2,g3,b3,e4]@3 [a3,c4]@5 ~@12]/8", // Am A5 Am G Em Am G A5 …
  C: "~@2 [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [e3,a3,c4,e4]@2, ~@6 a2 ~", // Am
  D: "[~@16 e4@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@4 a2@2 ~@2 d4@4 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]!2 [g2,d3,g3,b3,d4]@4 g2@2 ~@2 e4@4 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]!2 [e2,b2,g3,b3,e4]@4 e2@2 ~@2 e4@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@2, ~@14 [a2,e3]@6 ~@26 [g2,d3]@6 ~@26 [e2,b2]@6 ~@24 [b2,g3,b3,e4]@3 [a3,c4]@5 ~@12, ~@15 [a3,c4]@5 ~@24 [e3,a3,c4,e4]@3 [g3,b3]@5 ~@24 [d3,g3,b3,d4]@3 [g3,b3]@5 ~@26 [a2,e3]@6 ~@12]/8", // Am G Em Am A5 G5 E5 Em …
  E: "[~@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@4 [a2,e3]@2 ~@2 e4@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 a2@2 ~@2 d4@4 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 g2@2 ~@2 e4@4 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 e2@2 ~@2 e4@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@2, ~@12 [a3,c4,e4]@3 [a3,c4]@5 ~@24 [e3,a3,c4,e4]@3 [g3,b3]@5 ~@24 [d3,g3,b3,d4]@3 [g3,b3]@5 ~@26 [a2,e3]@6 ~@12, ~@14 [a2,e3]@6 ~@26 [g2,d3]@6 ~@26 [e2,b2]@6 ~@24 [b2,g3,b3,e4]@3 [a3,c4]@5 ~@12]/8", // Am A5 Am G Em Am G A5 …
  F: "[~@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@4 [a2,e3]@2 ~@2 e4@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]!2 [a2,e3,a3,c4,e4]@4 a2@2 ~@2 d4@4 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]@4 ~@2 [g2,d3,g3,b3,d4]@2 [g2,d3,g3,b3,d4]!2 [g2,d3,g3,b3,d4]@4 g2@2 ~@2 e4@4 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]@4 ~@2 [e2,b2,g3,b3,e4]@2 [e2,b2,g3,b3,e4]!2 [e2,b2,g3,b3,e4]@4 e2@2 ~@2 e4@4 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@4 ~@2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@2, ~@12 [a3,c4,e4]@3 [a3,c4]@5 ~@24 [e3,a3,c4,e4]@3 [g3,b3]@5 ~@24 [d3,g3,b3,d4]@3 [g3,b3]@5 ~@26 [a2,e3]@6 ~@12, ~@14 [a2,e3]@6 ~@26 [g2,d3]@6 ~@26 [e2,b2]@6 ~@24 [b2,g3,b3,e4]@3 [a3,c4]@5 ~@12]/8", // Am A5 Am G Em Am G A5 …
  G: "[~@2 [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3] ~ e4@2 [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ [a2,e3,a3,c4,e4] [a2,e3,a3,c4,e4]@2 ~ a2 ~ d4@2 [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ [g2,d3,g3,b3,d4] [g2,d3,g3,b3,d4]@2 ~ g2 ~ e4@2 [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ [e2,b2,g3,b3,e4] [e2,b2,g3,b3,e4]@2 ~ [b2,g3,b3,e4]@2, ~@12 [a3,c4,e4]@3 [a3,c4]@5 ~@24 [e3,a3,c4,e4]@3 [g3,b3]@5 ~@24 [d3,g3,b3,d4]@3 [g3,b3]@5 ~@28, ~@7 [a2,e3]@3 ~@13 [g2,d3]@3 ~@13 [e2,b2]@3 ~@12 e2 ~]/7", // Am A5 Am G Em Am G A5 …
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.2)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_4 = note(`<
  ~ A B C D E F A B A B C D E F A B ~@24 A G C H E I A G A B C D E F A B ~@24 A G C H E I A G A B C D E F A B ~@16 A G C
  H E I A G A G C H E I A G A B C D E F A B A B C D E F A B A B C D E F A B A B C D E F ~@3
>`.pickRestart({
  A: "~@5 [a2,e3,a3,c4,e4] ~@2", B: "~ [a2,e3,a3,c4,e4] ~@3 [a2,e3,a3,c4,e4] ~@2", C: "~@5 [g2,d3,g3,b3,d4] ~@2",
  D: "~ [g2,d3,g3,b3,d4] ~@3 [g2,d3,g3,b3,d4] ~@2", E: "~@5 [e2,b2,g3,b3,e4] ~@2",
  F: "~ [e2,b2,g3,b3,e4] ~@3 [e2,b2,g3,b3,e4] ~@2", G: "~ [a2,e3,a3,c4,e4] ~@6", H: "~ [g2,d3,g3,b3,d4] ~@6",
  I: "~ [e2,b2,g3,b3,e4] ~@6", // Em
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.2)

// chords · acoustic guitar steel
const acoustic_guitar_steel_5 = note(`<
  ~ A B C D E F A B A B C D E F A B ~@24 G@2 H@2 I@2 G@2 A B C D E F A B ~@24 G@2 H@2 I@2 G@2 A B C D E F A B ~@16 G@2
  H@2 I@2 G@4 H@2 I@2 G@2 A B C D E F A B A B C D E F A B A B C D E F A B G@2 H@2 I@2 ~@3
>`.pickRestart({
  A: "~ [c3,e3,a3]!3", B: "[c3,e3,a3]!4", C: "~ [b2,d3,g3]!3", D: "[b2,d3,g3]!4", E: "~ [b2,e3,g3]!3",
  F: "[b2,e3,g3]!4", G: "[c4,e4,a4]!8", H: "[b3,d4,g4]!8", I: "[e4,g4,b4]!8",
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@7 B A@7 B A@7 B A@15 C A@7 C A@7 D A@7 B A@15 C A@7 C A@7 D A@15 B A@7 C A@7 C A@7 D A@7 B A@7 D A@6 E ~@2
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x ~@4 x ~ x", D: "x ~@3 x!2 ~ x", E: "x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~ A@31 B A@39 B A@31 C A@7 D A@46 ~@3>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2", C: "~@2 x ~@2 x!3", D: "~ x!2 ~@2 x!2 ~",
})).gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~@97 [x!8]!16 ~@49>").gain(0.2)

// drums · hihat
const hihat = s("hh").struct("<~ [x!4]!96 ~@16 [x!4]!46 x ~@2>").gain(0.4)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~ [~ x ~ x ~ x ~ x]!96 ~@16 [~ x ~ x ~ x ~ x]!46 ~@3>").gain(0.2)

// drums · mid tom
const mid_tom = s("mt").struct("<~@40 A ~@7 A ~@31 A ~@7 A ~@31 A ~@7 A ~@33>".pickRestart({
  A: "~@8 x!2 ~@6",
})).gain(0.5)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 B C@7 B C@6 D A ~@7 A ~@7 A ~@7 A ~@7 A ~@7
  A ~@5 A ~@2
>`.pickRestart({
  A: "x", B: "x ~@2 x", C: "~@3 x", D: "~ x ~ x",
})).gain(0.35)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@56 A ~@39 A ~@39 A ~@15 A ~@9>".pickRestart({
  A: "~@7 x",
})).gain(0.2)

// drums · tambourine
const tambourine = s("tb").struct("<~@97 [x!8]!16 ~@46 [x!16] [x!4 ~@12] ~>").gain(0.2)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@160 [~@4 x!12] [x!16]>").gain(0.05)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct("<~ [~ x ~ x]!96 ~@16 [~ x ~ x]!46 ~@3>").gain(1.07)

stack(
  bass, accordion, distortion_guitar, string_ensemble_2, alto_sax, viola, electric_guitar_clean, piano,
  acoustic_guitar_steel, acoustic_guitar_steel_2, acoustic_guitar_steel_3, acoustic_guitar_steel_4,
  acoustic_guitar_steel_5, kick, snare, low_tom, hihat, hihat_soft, mid_tom, crash, crash_soft, tambourine,
  tambourine_soft, jingle_bells
)

More by Nomadi