Strudelify
Ricordarti cover art

1995 · Lungo Le Vie Del Vento

Ricordarti

Nomadi

KeyC majorTempo135 bpm
0:00/0:00
// Ricordarti — Nomadi
// 135 bpm, 4/4, key C 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 130 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger
const bass = note(`<
  ~@2 A B C D E F G@2 H B C I J K L M N O P Q R S T U V O R S T U P Q R S W@2 X Y Z AA A B AB I AC AD AE AF AG AH AB AI
  AJ AK AL AM AN AO AP B AQ I J AR L@2 AG B AQ I J AS AT AU Z AA A B AB I AC AV AW AF AX I AY AZ AP BA AL BB AN BC AP B
  BD I BE AR L@2 AP B BD I J AS AT AP@2 B BD I BF AR L@2 AP B BD I BF AS BG@3 ~
>`.pickRestart({
  A: "c2@5 ~ c2@2 c2@4 e2@2 g2@2", B: "c2@3 c2!2 g1 c2 c#2", C: "d2@3 d2!3 g1 a1", D: "d2@5 ~ d2 ~ d2@2 a1@2 d2@2 c2@2",
  E: "g1@5 ~ g1@2 g1@2 g1@2 c#2@2 d2@2", F: "g1@5 ~ g1@2 g1@2 g1@2 g1@2 g1@2", G: "c2@3 c2!3 e2 g2",
  H: "c2@6 c2 ~ c2@4 e2@2 g2@2", I: "d2@5 ~ d2 ~ d2@2 a1@2 d2@2 a1@2", J: "g1@5 ~ g1@4 g1@2 c#2@2 d2@2",
  K: "g1@3 g1 g2 g1 f1 g1", L: "c2@3 c2!3 f#2 g2", M: "c2@5 ~ c2 ~ c2@2 c2@2 c2@2 c2@2", N: "a1@2 a1!4 d2 e2",
  O: "a1!6 g1 a1", P: "c2!6 e2 g2", Q: "c2!5 g1 c2 c#2", R: "d2!6 g#2 a2", S: "d2!5 a1 d2 a1", T: "g1!6 c2 d2",
  U: "g1!6 f#1 g1", V: "a1!7 e1", W: "g1!8", X: "a1!6 d#2 e2", Y: "a1@2 a1@2 a1@2 e1@2 e1@2 g1@2 g1@3 ~",
  Z: "a1@5 ~ a1@2 a1@4 d2@2 e2@2", AA: "a1@6 a1 ~ a1@4 a1@2 g1@2", AB: "d2@3 d2@2 d2 g#2 a2",
  AC: "g1@6 g1 ~ g1@4 c2@2 d2@2", AD: "g1!7 g#1", AE: "a1@5 ~ a1@2 a2@2 a1@2 d2@2 e2@2", AF: "a1@3 a1@2 a1 g1 a1",
  AG: "c2@5 ~ c2@4 c2@2 e2@2 g2@2", AH: "c2@3 c2@2 g1 c2 c#2", AI: "d2@5 ~ d2@2 d2@2 a1@2 d2@2 d#2@2",
  AJ: "e2@3 e2@2 e2 a#2 b2", AK: "e2@3 e2@2 e2 b1 e2", AL: "f2@3 f2@4 c2", AM: "f2@3 c2@2 f2 c2 a1",
  AN: "g1@5 ~ g1@6 c#2@2 d2@2", AO: "g1@5 ~ g1@6 g1@2 a1@2", AP: "c2@3 c2@2 c2 f#2 g2", AQ: "d2@3 d2!3 g2 a2",
  AR: "g1@3 g1!3 f#1 g1", AS: "g1@3 g2@2 g1 f#1 g1", AT: "c2@5 ~ c2@2 c2@2 c2@2 f#2@2 g2@2",
  AU: "c2@5 ~ c2@2 c2@2 g1@2 c2@2 g1@2", AV: "g1!6 a1 c2", AW: "a1@3 a1@2 a1 d2 e2", AX: "d2@3 d2!3 g#2 a2",
  AY: "g1@3 g1@2 g1 c2 d2", AZ: "g1@3 g1@2 g1 f#1 g1", BA: "c2@3 c2@2 c2 g1 c2", BB: "f2@3 c2@2 f2 f#2 g2",
  BC: "g1@5 ~ g1@6 d2@2 g1@2", BD: "d2@3 d2@2 d2 g2 a2", BE: "g1@3 g2@2 g1 c#2 d2",
  BF: "g1@4 g2 ~ g1@4 g1@2 c#2@2 d2@2", BG: "[c2@47 ~]/3",
})).s("gm_electric_bass_finger").gain(0.56)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@38 A B C@2 D E F@2 G H C@2 I E F@2 J K L M N O P E Q F R H E I@2 E S T U H I V ~@20 W E X F H@2 Y E@2 Z AA AB AC AD
  Y AE AF E AG F G AH AI@2 P E AG F AJ AK AL@3 ~
>`.pickRestart({
  A: "[e3,a3,c4,e4]@4 [e3,a3,c4,e4]@2 [e3,a3,c4,e4]@3 ~ [e3,a3,c4,e4]@2 [e3,a3,c4,e4] ~ [e3,a3,c4,e4]@2", // Am
  B: "[e3,a3,c4,e4]@2 [e3,a3,c4,e4]!4 [e3,a3,c4,e4]@2", // Am
  C: "[e3,a3,c4,e4]@2 [e3,a3,c4,e4] [e3,a3,c4,e4]@2 [e3,a3,c4,e4] [e3,a3,c4,e4]@2", // Am
  D: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [g3,c4] ~ [e3,g3,c4]@2, ~@3 e4, ~@6 e3 ~", // C C5 C
  E: "[e3,g3,c4,e4]@2 [e3,g3,c4,e4] [e3,g3,c4,e4]@2 [e3,g3,c4,e4] [e3,g3,c4,e4]@2", // C
  F: "[d3,a3,d4,f4]@2 [d3,a3,d4,f4] [d3,a3,d4,f4]@2 [d3,a3,d4,f4] [d3,a3,d4,f4]@2", // Dm
  G: "[d3,g3,b3,g4]@4 [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@4 [d3,g3,b3,g4]@2 [d3,g3] ~ [d3,g3]@2, ~@3 [b3,g4]", // G G5 Em
  H: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4] [d3,g3,b3,g4]@2 [d3,g3,b3,g4] [d3,g3,b3,g4]@2", // G
  I: "[e3,g3,c4,e4]@2 [e3,g3,c4,e4] [e3,g3,c4,e4]@2 [e3,g3,c4,e4]!3", // C
  J: "[e3,g#3,b3,e4]@2 [e3,g#3,b3,e4] [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]!3", // E
  K: "[e3,g#3,b3,e4]@2 [e3,g#3,b3,e4] [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4] [e3,g#3,b3,e4]@2", // E
  L: "[f3,a3,c4,f4]@4 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4] ~ [f3,a3,c4,f4]@2", // F
  M: "[f3,a3,c4,f4]@2 [f3,a3,c4,f4] [f3,a3,c4,f4]@2 [f3,a3,c4,f4] [f3,a3,c4,f4]@2", // F
  N: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]!4 ~@2", O: "~ [g3,b3,g4] [d3,g3,b3,g4] [d3,g3,b3] ~@4, d3 ~@3",
  P: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [e3,g3,c4,e4]@2", // C
  Q: "[d3,a3,d4,f4]@2 [d3,a3,d4,f4]!6", R: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4] [d3,g3,b3,g4]@2 [d3,g3,b3,g4]!3",
  S: "[d3,a3,d4,f4]@2 [d3,a3,d4,f4] a3 [d3,a3] [d3,a3,d4,f4]!3, ~@3 [d4,f4]@2 ~@3, ~@6 d3 ~@9", // Dm D5 Dm
  T: "[d3,a3,d4,f4]@2 [d3,a3,d4,f4] [d3,a3,d4,f4]@2 [d3,a3,d4,f4]!2 [d3,g3,b3,g4]", // Dm G
  U: "[d3,g3,b3,g4]@4 [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@4 [d3,g3,b3,g4]@2 [b3,g4] ~ [g3,b3,g4]@2, ~@3 d3, ~@6 g3 ~", // G Em G
  V: "[e3,g3,c4,e4]@2 [e3,g3,c4,e4]!4 [e3,g3]@2", // C Em
  W: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4]@3 ~ [e3,g3,c4]@2 [e3,g3,c4,e4]@4, ~@3 e4@3 ~@2", // C
  X: "[d3,a3,d4,f4]@4 [d3,a3,d4,f4] ~ a3@2 [d3,a3]@2 [d3,a3,d4,f4]@2 [d3,a3,d4,f4] ~ [d3,a3,d4,f4]@2, ~@3 [d4,f4]@2 ~@3, ~@6 d3 ~@9", // Dm D5 Dm
  Y: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~ [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4] ~ [e3,g3,c4,e4]@2", // C
  Z: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4] ~ [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4", // C
  AA: "[d3,a3,d4,f4]@4 [d3,a3,d4,f4] ~ [d3,a3,d4]@3 ~ [d3,a3,d4]@2 [d3,a3,d4] ~ [d3,a3,d4]@2, ~@3 f4@3 f4@2", // Dm D5
  AB: "[d3,a3,d4,f4]@4 [d3,a3,d4,f4] ~ [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4,f4]@4, ~@3 f4@3 ~@2", // Dm D5 Dm
  AC: "[d3,g3,b3,g4]@4 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@4 [d3,g3,b3,g4]@2 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@2", // G
  AD: "[d3,g3,b3,g4]@4 [d3,g3,b3,g4] ~ [d3,g3,b3,g4]@4 [d3,g3,b3,g4]@2 [d3,g3,b3,g4]@4", // G
  AE: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4] ~@3", // C
  AF: "~@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [g3,c4] ~ [e3,g3,c4]@2, ~@3 e4, ~@6 e3 ~", // C C5 C
  AG: "[d3,a3,d4,f4]@4 [d3,a3,d4,f4] ~ [d3,a3,d4,f4]@4 [d3,a3,d4,f4]@2 d3@2 [d3,a3]@2, ~@3 [d4,f4], ~@12 a3 ~@3", // Dm D5 Dm
  AH: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4]!4 [d3,g3,b3,g4]@2", // G
  AI: "[e3,g3,c4,e4]@4 [e3,g3,c4,e4]@2 [e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4]@2 [e3,g3]@2 [e3,g3]@2, ~@3 [c4,e4]", // C Em C
  AJ: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4] [d3,g3,b3,g4]@2 [d3,g3,b3,g4] [g3,b3,g4] d3, ~@12 d3 ~@3", // G
  AK: "[d3,g3,b3,g4]@2 [d3,g3,b3,g4] [g3,b3,g4] [d3,g3] [d3,g3,b3,g4] [d3,g3,b3,g4]@2, ~@6 d3 ~@9", // G G5 G
  AL: "[e3,g3,c4,e4]/3", // C
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.2)

// other · soprano sax
const soprano_sax = note(`<
  ~@26 A@2 B@2 ~@4 C@3 ~ D@2 ~@3 E F ~@2 G H I ~@5 J K ~@27 L@2 ~ M N ~ O P ~@19 Q R S T@2 U@2 V@2 W X Y Z@5 ~@2
>`.pickRestart({
  A: "[~@11 e4@3 a4@4 b4@13 ~]/2", B: "[~@15 f4@2 e4@2 f4@4 e4@3 f4@6]/2",
  C: "[~@10 f4@2 a4@3 b4@3 d5@4 e5@3 ~ f5@8 g5@14]/3", D: "[e5@6 d5@2 ~@2 c5@2 d5@2 d#5 e5@3 ~ a4@4 ~ b4@7 ~]/2",
  E: "g5@2 [f5,f#5] e5@2 g5@2 g5@8 ~", F: "~@2 g5@3 e5@4 d5@5 ~@2", G: "e4@5 ~ e4@7 ~@3, ~@5 d4@2 ~@9", H: "~@7 g4",
  I: "a4@3 b4@9 ~@4", J: "~@4 b4@2 c5@4 c#5 d5@5", K: "c5@15 ~", L: "[~@11 e4@3 a4@4 b4@11 ~@3]/2",
  M: "~@5 a5 ~ g5 ~ a5@3 g5@2 e5@2", N: "d5 e5@2 d5@4 ~", O: "~@5 e5@2 d5", P: "~ c5 a4 g4@4 ~", Q: "~@2 g5@5 f5",
  R: "~ f5@3 ~ e5@11", S: "~@4 e5@7 f5@4 [d#5,e5]", T: "[d5@10 a4@10 ~ d5@5 [d5,e5] c5@2 ~ c5@2]/2",
  U: "[~@2 [c5,d5] b4@16 ~ b4@4 c5@3 ~ d5@4, ~@28 e5 ~@3]/2", // Csus2
  V: "[c5@5 ~ g4 a4 c5@2 d5@2 d5@2 c5@5 ~ g5@3 ~ g5@5 ~ g5 ~, ~@12 e5 ~@16 f5@2 ~]/2", W: "e5 f5@2 e5@11 ~@2",
  X: "~@4 e5@6 f5@3 ~ d5@2", Y: "~ d5 d#5@12 ~@2",
  Z: "[~@6 d5@3 d5@6 c5@3 d5 c5@3 b4@7 ~ b4@4 ~@2 b4@4 c5@4 d5@2 c5@21 ~@13]/5",
})).s("gm_soprano_sax").gain(0.56)

// other · pan flute
const pan_flute = note(`<
  A@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 F@2 ~@49 G B@2 C@2 D@2 F@2 ~@35 G B@2 C@2 D@2 E@2 B@2 C@2 D@2 ~@4
>`.pickRestart({
  A: "[~@4 g6@25 ~ f6@2]/2", B: "[f6@4 e6@15 ~ e6@3 ~ e6@4 f6@4]/2", C: "[d6@19 ~ d6@3 ~ d6@6 c6@2]/2",
  D: "[c6@2 b5@7 ~ b5@2 c6@2 d6@2]/2", E: "[c6@19 ~ g6@3 ~ g6@6 f6 ~]/2", F: "[c6@15 ~]/2", G: "~@4 g6@3 ~ g6@6 f6 ~",
})).s("gm_pan_flute").gain(0.2).pan(0.3)

// chords · piano
const piano = note("<~@58 A@2 ~@70>".pickRestart({
  A: "[~@6 [a3,c4]@2 ~@2 g3 ~ [g3,b3] [a3,c4] [g3,b3]@2, ~@5 d3@5 ~ d3@5, ~@2 d4 ~, ~@8 b3@3 ~@5]/2", // Am G Am G
})).s("gm_piano").gain(0.56).pan(0.9)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~@18 A@2 B@2 C@2 D@2 A@2 C@2 D@2 B@2 C@2 D@2 A@2 ~@36 A@2 B@2 C@2 D@2 ~@46
>`.pickRestart({
  A: "[e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~", // A5
  B: "[c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~", // C5
  C: "[d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~", // D5
  D: "[d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~ [d3,g3] ~", // G5
})).s("gm_electric_guitar_muted").gain(0.48).pan(0.4)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@2 A@2 B@6 C@2 D@6 E@7 F@8 G@4 H@6 I@8 J@7 K@3 L@8 M@6 N@8 F@8 O@6 L@24 P@8 ~
>`.pickRestart({
  A: "[g3,c4,e4]/2", B: "[[a3,f4] b3 [c4,e4], d4@65 ~@31, ~@32 g4@57 ~@7]/6", C: "[c4,e4,g4]/2",
  D: "[[f4,a4]@32 b3@31 [c4,e4]@26 ~@7, d4@2 ~, ~@16 g4@29 ~@3]/6", // F C
  E: "[a3@31 g3@32 [a3,f4]@32 [b3,g4]@17, [c4,e4]@9 d4@7]/7", // Dm Em C
  F: "[~@15 [c4,e4]@32 f4@32 b3@32 [c4,e4]@17, ~@15 a3@64 g4@49, ~@47 d4@64 ~@17]/8", // C
  G: "[~@15 [a3,f4]@32 [b3,g4]@17, ~@15 d4@49]/4", H: "[~@15 a3@64 g3@17, ~@5 [c4,e4]@27]/6",
  I: "[~@16 a3@31 ~ g4@31 a3@33 g3@16, ~@15 d4@64 ~@49, ~@15 f4@32 b3@32 [c4,e4]@49]/8", // C
  J: "[~@15 [a3,d4,f4]@32 [b3,e4,g#4]@32 [c4,f4,a4]@32 ~]/7", K: "[[b3,d4,g4]@31 [g3,c4,e4]@17]/3",
  L: "[~@15 [a3,f4]@32 b3@32 ~@32 g3@17, ~@15 d4@64 [c4,e4]@49, ~@47 g4@64 ~@17]/8", // Dm C
  M: "[~@15 [a3,f4]@32 b3@32 [c4,e4]@17, ~@15 d4@64 ~@17, ~@47 g4@49]/6", // Dm C
  N: "[~@15 a3@32 g3@32 [a3,f4]@32 [b3,g4]@17, ~@15 [c4,e4]@64 d4@49]/8", // Dm Em C
  O: "[~@15 [c4,f4,a4]@32 [b3,d4,g4]@32 [g3,c4,e4]@17]/6", // F G C
  P: "[~@15 [a3,f4]@32 b3@32 [c4,e4]@46 ~@3, ~@15 d4@64 ~@49, ~@47 g4@77 ~@4]/8", // Dm C
})).s("gm_synth_strings_1").gain(0.4)

// chords · percussive organ
const percussive_organ = note(`<
  ~@2 A@2 B@2 C@2 A@4 B@2 C@2 D@2 ~@22 E@4 F@4 E@4 G@2 H@2 ~@4 I@2 J@4 I@4 K@4 I@2 L@4 M@4 N@4 O@4 P@2 Q@2 I@2 R@4 S@2
  I@2 R@4 I@4 K@4 I@4 K@4 I@2 ~@2
>`.pickRestart({
  A: "[g4,c5,e5]/2", B: "[a4,d5,f5]/2", C: "[g4,b4,d5]/2", D: "[[g4,c5,e5]@29 ~@3]/2", E: "[a5 g5, [c6,e6]]/4",
  F: "[[a5,f6]@32 ~@12 f1@2 ~@3 d2@2 ~@10 [d4,e4] [f4,g4] ~, d6, ~ [b5,g6], ~@44 e1 ~ g1@2 c2@3 e2@2 a2@2 c3@2 f3@2 a3@2 ~@3, ~@47 [a1,b1]@3 ~@2 [f2,g2]@2 b2@2 [d3,e3]@2 g3@2 [b3,c4]@2 ~@2]/4", // Dm Dsus2 Fsus2 Em Asus2 Fsus2 Dsus2 Cmaj7
  G: "[a5,d6,f6]/2", H: "[g#5,b5,e6]/2", I: "[g5,c6,e6]/2", J: "[[a5,f6]@8 b5@3 a5 b5@4, d6, ~ g6]/4",
  K: "[[a5,f6] [b5,g6], d6]/4", L: "[a5 g5, [e5,c6]@63 ~]/4",
  M: "[[f5,a5]@32 ~@21 [f1,g1] [a1,b1] c2 [d2,e2] [f2,g2] a2 [b2,c3] [d3,e3] [f3,g3] ~@2, d6, ~ [g5,b5]]/4", // F Fsus2 Asus2 Dsus2 Fsus2 Cmaj7 Dsus2 Fsus2 …
  N: "[[c6,e6] [d6,f6], a5@63 ~]/4", O: "[[b5,d6] [c6,e6], g5@63 ~]/4", P: "[[a5,c6], f5@15 ~]/2", Q: "[g5,b5,d6]/2",
  R: "[[a5,f6]@8 b5@6 a5 b5, d6, ~ g6]/4", // Dm
  S: "[~@16 [f1,g1] ~@9 a3 [b3,c4] [d4,e4] [f4,g4] ~@2, [g5,c6,e6], ~@17 a1@2 d2@2 g2@2 c3@2 f3@2 ~@5, ~@9 [b1,c2] [e2,f2] [a2,b2] [d3,e3] g3 ~@2]/2", // Fsus2 Cmaj7 Dsus2 Fsus2 C Cmaj7 Fmaj7 Asus2 …
})).s("gm_percussive_organ").gain(0.16).pan(0.6)

// chords · percussive organ · soft notes
const percussive_organ_soft = note("<~@18 A@4 B@2 C@2 D@4 E@4 B@2 C@2 F@2 ~@43 G H ~@45>".pickRestart({
  A: "[a4 g4, [c5,e5]]/4", B: "[a4,d5,f5]/2", C: "[g4,b4,d5]/2", D: "[[c5,e5]@32 [d5,f5]@31 ~, a4@63 ~]/4",
  E: "[[b4,d5] [c5,e5], g4]/4", F: "[[a4,c5,e5]@31 ~]/2", G: "~@14 [a3,b3,c4] [d4,e4]", H: "f4 ~@15",
})).s("gm_percussive_organ").gain(0.08).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@2 A@8 B C@8 ~@21 D@2 E@2 F@2 G@8 H@6 I@2 J K L M N O N P Q J M R@2 O ~@7 S@5 T@8 U O Q J V M W O W O K J M@2 O@2 X O
  Y@2 Z@2 W O N O Q K AA@2 AB@3 ~
>`.pickRestart({
  A: "[[e3,g3,c4,e4]@31 ~@2 f4@30 ~ [b3,g4]@31 ~ e4@31 e3, ~@31 d3@31 ~ [d3,g3]@31 ~ [e3,g3,c4]@32 ~, ~@32 [a3,d4]@31 ~@65]/8", // C Em G5 C D5
  B: "[g3,c4,e4]", C: "[~@16 [d4,f4]@31 ~ [b3,g4]@31 ~ [c4,e4]@48, ~@15 [d3,a3]@31 ~ [d3,g3]@31 ~ [e3,g3]@49]/8",
  D: "[[e3,a3,c4,e4]@15 [e3,g3,c4,e4]]/2", E: "[[e3,g3,c4,e4]@31 ~]/2", F: "[[d3,a3,d4,f4]@31 ~]/2",
  G: "[[d3,g3,b3,g4]@31 ~ [c4,e4]@31 ~ [g3,c4,e4]@31 ~ f4@32, ~@31 [e3,a3]@32 e3@31 ~ [d3,a3,d4]@32 ~]/8", // G C A5 D5
  H: "[~ e4@30 ~ [c4,f4]@31 ~ [b3,g4]@31 ~, [e3,g#3,b3]@31 [f3,a3]@32 [d3,g3]@33]/6", // F5 Em E F G5
  I: "[[e3,g3,c4,e4]@22 [e3,g3,c4,e4]@9 ~]/2", J: "[d3,a3,d4,f4]", K: "[d3,a3,d4,f4]@5 [d3,a3,d4,f4]@3",
  L: "[d3,g3,b3,g4]@7 [d3,g3,b3,g4]", M: "[d3,g3,b3,g4]", N: "[e3,g3,c4,e4]@7 [e3,g3,c4,e4]", O: "[e3,g3,c4,e4]",
  P: "[e3,g3,c4,e4]@5 [e3,g3,c4,e4]@3", Q: "[d3,a3,d4,f4]@7 [d3,a3,d4,f4]",
  R: "[[d3,g3,b3,g4]@15 ~ c4@14 [e3,g3,c4]@2, ~@15 [e3,g3]@14 ~@3, ~ e4]/2", // G C Em
  S: "[~@16 [c4,e4]@31 ~ [d4,f4]@31 d3, ~@15 [e3,a3]@32 [d3,a3]@31 ~@2]/5", // C Dm A5 D5
  T: "[[g3,b3,g4]@31 ~ e4@31 ~ [c4,f4]@31 ~ [g3,b3,g4]@31 e3, ~@31 [e3,g3,c4]@32 [f3,a3]@32 d3@31 ~@2]/8", // G F5 G C F
  U: "[g3,c4,e4]@7 [e3,g3,c4,e4]", V: "[d3,g3,b3]@7 [d3,g3,b3], g4", W: "[e3,g3,c4]@7 [e3,g3,c4], e4",
  X: "[e3,g3,c4]@7 [e3,g3,c4,e4]", Y: "[[d3,a3,d4,f4]@11 [d3,a3,d4,f4]@5]/2", Z: "[[d3,g3,b3,g4]@11 [d3,g3,b3,g4]@5]/2",
  AA: "[[d3,g3,b3,g4]@15 ~ [g3,b3,g4]@15 ~, ~@15 d3@15 ~@2]/2", AB: "[e3,g3,c4,e4]/3",
})).s("gm_distortion_guitar").gain(0.11).pan(0.9)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@3 B A@3 C A@5 B A B A@7 C A@29 D A B@2 E A@3 B A@3 B A@13 B A C A@9 B@2 F A@3 B A@3 G A@3 B A@3 C A@3 B A@3 G
  A@3 B A@2 H ~@3
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x ~@2 x!3 ~ x", D: "x ~@2 x!3 ~@2", E: "x ~ x!2 ~ x ~ x",
  F: "x ~ x!3 ~@3", G: "x!2 ~ x!2 ~@2 x", H: "x",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct("<~@2 A@37 B A@15 C A@3 D A@7 B A@27 E A@7 B A@22 ~@4>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@2 x!2 ~", C: "~@4 x ~@7 x ~@2 x", D: "~ x ~@2 x ~ x ~", E: "~@2 x ~@5 x ~ x!4 ~@2",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A@16 B C@6 D C@11 D C D C@7 D C@7 D C@3 A@17 B C@6 D C@12 A@16 E A@5 E A@7 F ~@3
>`.pickRestart({
  A: "x!2", B: "~ x!3", C: "x!4", D: "x!3 ~", E: "~ x", F: "x",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@17 [~@5 x ~@2] ~@77 [~@7 x] ~@34>").gain(0.56)
// … 30 more lines

More by Nomadi