Strudelify
Sogni di rock 'n' roll cover art

Su e giù da un palco

Sogni di rock 'n' roll

LIGABUE

KeyG majorTempo80 bpm
0:00/0:00
// Sogni di rock 'n' roll — LIGABUE
// 80 bpm, 6/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 111 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 30.
setcpm(80/3)

// 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(`<
  ~@16 A B C D E@2 F G H I J K L M N O P Q N R S T N O P Q N R S T F G H I J K L M F G H I J K L M F G H I J K L M U V W
  X Y@2 F G H I J K L Z M N O P Q N R S T N O P Q N R S T N O P Q N R S T AA@2
>`.pickRestart({
  A: "e1", B: "b1", C: "c2", D: "d2", E: "[c2@15 ~]/2", F: "g1@17 ~@3 g1@2 ~@2", G: "g1@12 c2@11 ~",
  H: "d2@17 ~@3 d2 ~@3", I: "d2 c2", J: "g1@15 ~@5 g1 ~@3", K: "c2@8 ~@2 c2 ~", L: "d2@12 ~@8 d2 ~@3",
  M: "d2@15 ~ d2@7 ~", N: "g1@8 ~@2 b1 ~", O: "c2@18 ~@2 f#1@3 ~", P: "g1@15 ~@5 b1 ~@3", Q: "c2@19 ~ a1@4",
  R: "c2@11 ~", S: "a1@13 ~@3 g#2@4 a2@3 ~", T: "d2@4 c2 a1", U: "e2 e3", V: "b1@3 b2@2 b1", W: "c2@4 ~ c2",
  X: "d2@19 ~@5", Y: "[c2@23 ~]/2", Z: "d2@15 ~@5 d2 ~@3", AA: "[g1@47 ~]/2",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@8 B@8 C D@8 E@5 F G@2 H I J@2 K@2 G@2 H I J@2 L M@2 N@2 O P Q R@8 S T@8 C U@5 V@3 W@6 F G@2 H I J@2 K@2 G@2 H I J@2
  L F G@2 H I J@2 X@2 ~
>`.pickRestart({
  A: "[[g3,b3,d4,g4]@10 ~@2 [d4,g4]@8 ~@4 [d4,g4]@9 ~@3 [e4,g4]@11 ~ [a3,d4,e4]@8 [a3,d4,e4]@4 [f#3,a3,d4,e4]@6 ~@2 [f#3,a3,d4,e4]@2 ~@2 [a3,d4,e4]@4 ~@4 [f#3,a3,d4,e4]@2 [f#3,a3,d4,e4]@2 [e3,g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ d4@8 d4@4 [b3,d4,g4]@4 ~@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4] ~ [g3,c4,e4]@6 [g3,c4,e4]@2 [g3,c4,e4]@4 ~@4 e2@4 [g3,c4,e4]@3 ~ [d4,e4]@5 ~ [d4,e4] ~ [d4,e4]@3 ~ [a3,d4,e4]@6 [a3,d4,e4]@2 [a3,d4,e4]@2 ~@2 [a3,d4,e4]@6 d4@2 [a3,d4,e4]@3 ~ [c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2, ~@11 [g3,b3]@9 g2@14 ~ [e2,c4]@12 [f#2,d3,f#3]@8 ~@16 [d2,d3]@6 ~@18 g2@23 ~ e2@14 ~@10 f#2@17 ~@7 f#2@10 ~@15, ~@23 [g3,b3]@10 ~ g3@13 ~@33 d3@6 ~@2 c3@7 b3@12 ~@5 g3@7 ~@13 [g3,c4,e4]@7 ~@4 d3@25 ~@11 c3@13, ~@96 g4@12 ~@35 a3@6 ~ a3@5 ~@11 [a3,d4,e4]@2 ~@11 g3@2 ~@11]/8", // G G5 Em Asus4 D Asus4 D C …
  B: "[[g3,b3,d4,g4]@8 [b3,d4,g4]@3 ~ [d4,g4]@6 [d4,g4]@2 ~@4 [d4,g4]@5 ~ [d4,g4]@2 d4@2 [b3,d4,g4] ~ [e4,g4]@11 ~ [a3,d4,e4]@8 [a3,d4,e4]@4 [f#3,a3,d4,e4]@6 ~@2 [f#3,a3,d4,e4]@2 ~@2 [a3,d4,e4]@4 ~@4 [f#3,a3,d4,e4]@2 [f#3,a3,d4,e4]@2 [e3,g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ d4@8 d4@4 [b3,d4,g4]@4 ~@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4] ~ [g3,c4,e4]@6 [g3,c4,e4]@2 [g3,c4,e4]@4 ~@4 e2@4 [g3,c4,e4]@3 ~ [d4,e4]@5 ~ [d4,e4] ~ [d4,e4]@3 ~ [a3,d4,e4]@6 [a3,d4,e4]@2 [a3,d4,e4]@2 ~@2 [a3,d4,e4]@6 d4@2 [a3,d4,e4]@4 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2, ~@11 [g3,b3]@6 ~ b3@4 [b3,d4,g4]@2 ~@6 b3@4 ~@46 d3@6 ~@2 c3@7 g2@23 ~ e2@14 ~@10 f#2@17 ~@7 f#2@10 ~@15, ~@23 g3@11 ~ [e2,g3,c4]@12 [f#2,d3,f#3]@8 ~@16 [d2,d3]@6 ~@19 g4@12 ~@35 a3@6 ~ a3@5 ~@11 [a3,d4,e4]@2 ~@24, ~@23 b3@6 ~@66 b3@12 ~@5 g3@7 ~@13 [g3,c4,e4]@7 ~@4 d3@25 ~@24]/8", // G G5 G Em Asus4 D Asus4 D …
  C: "d3@3 ~ d3@2 [g3,b3]@2 ~ [g3,b3]!2 [g3,b3,d4], e2, [g3,b3,d4]@4 d4@3 ~, ~@2 d3", // G
  D: "[[a3,d4,f#4]@5 ~ d4@2 [a3,d4,f#4]@4 [a3,d4]@2 d4@2 ~@4 d4@2 ~@2 [c4,e4]@11 ~ [g3,c4,e4]@4 ~@2 [c4,e4] ~ [c4,e4]@3 ~@13 [a3,d4,e4]@4 ~@2 [a3,d4,e4]@5 ~ [b3,e4]@46 ~@2 [b3,g4]@29 ~@7 [c4,e4]@8 ~@4 d4@24, b2@15 ~ [a3,d4,f#4]@6 [a3,d4,f#4]@2 ~@23 a3@12 ~@96 g3@9 ~@28, ~@18 b2@4 ~ e2@24 f#2@20 ~@52 [g2,d3]@29 ~@18 f#2@26, ~@23 c3@15 ~@2 c3@7 d3@8 ~ d3@7 ~ d3@6 ~ [c3,g3]@47 ~@36 c3@8 ~@5 [d3,a3]@25, ~@23 g3@12 ~@7 g3@5 ~ [d4,e4]@12 ~@132]/8", // D D5 C Asus4 E5 Em C D …
  E: "[~@12 e4@7 ~@5 [b3,g4]@23 ~@2 e4@16 ~@25 d3@3 ~@3 d4@23 ~, ~@10 c3@10 ~ g2@24 ~@25 f#2@23 f#2@20 ~@7, ~@11 [g3,c4]@9 ~@2 d3@23 ~@2 c3@18 ~@6 d3@15 ~@8 d3@15 ~@11, ~@23 g3@23 ~@2 [g3,c4]@18 ~@5 a3@23 ~ a3@25, ~@72 d4@23 ~@25]/5", // Em C5
  F: "[d4,g4]@2 ~@4 [d4,g4]@2 ~@3 b3, ~@4 g3@4 b3@5 ~@3 b3@4 g3@4, ~@3 [d4,g4]@2 g3@3 ~ [d4,g4]@3", // G5
  G: "[[c3,c4,e4]@2 ~@4 [c4,e4]@2 c3 c4 g3 ~ [d4,g4]@2 ~@4 [d4,g4]@2 ~@3 b3, ~@4 g3@4 c3@5 ~@9 c4@6 g3@4 b3@5 ~@3 b3@4 g3@4, ~@6 [c4,e4]@4 g3@7 ~ e4@5 ~@7 [d4,g4]@4 g3@6 ~@2 [d4,g4]@6]/2", // C G5 C G5
  H: "[c4,e4]@4 ~@8 [c4,e4]@4 ~@6 c4 ~, ~@4 c3@4 g3@5 ~@3 g3@4 c3@4, ~@3 [c4,e4]@2 c3@4 [c4,e4]@2 ~", // C
  I: "[d4,g4]@2 ~@4 [d4,g4]@2 ~@2 g3 b3, ~@4 g3@4 b3@5 ~@3 b3@4 ~@4, ~@6 [d4,g4]@4 g3@7 ~ [d4,g4]@6", // G5
  J: "[[c3,c4,e4]@2 ~@4 [c4,e4]@2 c3@2 [c4,e4] ~ [c4,e4]@2 a3 ~@2 a3 ~@2 a2 ~@2 [a2,e4], ~@4 g3@4 c3@6 ~@8 a2@7 ~@3 a2@5 ~@5 a3@5 ~, ~@6 [c4,e4]@4 g3@15 ~@5 [c4,e4]@5 ~ [c4,e4]@7 ~ c4@4]/2", // C A5 C
  K: "[[d3,e4,f#4]@2 a3 ~ a3 d3 [a3,e4,f#4] d3 [a3,e4,f#4] ~ [a3,e4,f#4] ~ [d4,g4]@2 ~@4 [d4,g4]@2 ~@3 b3, ~@6 [e4,f#4]@4 ~@8 d3@4 g3@5 ~ g3@4 b3@5 ~@3 b3@4 g3@4, ~@15 [d4,g4]@2 g3@3 ~ [d4,g4]@3]/2", // D F#m7 G5 Esus2 G5
  L: "[d3,e4,f#4]@2 a3 ~ a3 d3 [e4,f#4]@6, ~@6 [e4,f#4]@4 ~@2 a3@3 ~@9", // D Esus2
  M: "[[g3,d4,g4]@6 ~@6 [d4,g4]@4 ~@8 [d4,g4]@4 ~@2 [d4,g4]@4 b3 ~@3 b3@4 ~@2 a3@2 ~@2, ~@6 [d4,g4]@5 ~@7 [d4,g4]@4 b3@5 ~ b3@4 ~@4 [c4,g4]@5 ~ [c4,g4]@6, ~@8 b3@7 ~ b3@4 g3@6 ~@22]/2", // G5 C5
  N: "[[d4,f#4]@4 a3@2 [d4,f#4]@4 ~@2 [d4,f#4]@4 ~@2 [d4,f#4]@4 ~@2 [d4,f#4]@5 ~@3 a3@2 ~@2 [a3,d4,f#4]@6 ~@2 f#3@2 a3@2, ~@5 a3@2 ~ a3@2 ~ a3@4 [d4,f#4]@2 f#3@2 ~@2 [c4,f#4]@3]/2", // D Cdim
  O: "[g3,d4,g4]@2 ~ [d4,g4]@2 ~ [d4,g4]@2 b3 ~@2 b3, ~@4 b3@5 ~ b3@5 ~@3 [d4,g4]@6, ~@5 g3", // G5
  P: "[c4,g4]@4 ~@12 c4 ~ [c4,g4]@4 [c4,g4]@2, ~@4 g3@4 g3@4 [c4,g4]@5 ~@7, ~@6 [c4,g4]@4 c3@9 ~@5, ~@7 g3@3 ~@2", // C5
  Q: "~ a3@2 ~ a3@2 [d4,f#4]@2 a3 ~ a3 f#3, [d4,f#4]@4 ~@2 [d4,f#4]@5 ~ a3@3 ~@3 [d4,f#4]@5 ~", // D
  R: "[[d4,f#4]@4 a3 ~ a3@2 ~@2 a3 ~@3 f#3@4 ~@2 f#3@2 ~@2 [d4,g4]@8 [b3,d4,g4]@3 ~ [d4,g4]@6 [d4,g4]@2 ~@4 [d4,g4]@5 ~ [d4,g4]@2 d4@2 [b3,d4,g4] ~ [e4,g4]@11 ~ [a3,d4,e4]@8 [a3,d4,e4]@4 [f#3,a3,d4,e4]@6 ~@2 [f#3,a3,d4,e4]@2 ~@2 [a3,d4,e4]@4 ~@4 [f#3,a3,d4,e4]@2 [f#3,a3,d4,e4]@2 [e3,g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ d4@8 d4@4 [b3,d4,g4]@4 ~@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4] ~ [g3,c4,e4]@6 [g3,c4,e4]@2 [g3,c4,e4]@4 ~@4 e2@4 [g3,c4,e4]@3 ~ [d4,e4]@5 ~ [d4,e4] ~ [d4,e4]@3 ~ [a3,d4,e4]@6 [a3,d4,e4]@2 [a3,d4,e4]@2 [a3,d4,e4]@2, ~@6 [d4,f#4]@5 ~@31 b3@4 [b3,d4,g4]@2 ~@6 b3@4 ~@46 d3@6 ~@2 c3@7 g2@23 ~ e2@14 ~@10 f#2@17 ~@8, ~@8 f#3@4 [a3,e4,f#4]@5 ~ [a3,d4,f#4]@5 [g3,b3]@8 ~@4 [g3,b3]@6 ~@6 g3@11 ~ [e2,g3,c4]@12 [f#2,d3,f#3]@8 ~@16 [d2,d3]@6 ~@19 g4@12 ~@35 a3@6 ~ a3@5 ~@13, ~@47 b3@6 ~@66 b3@12 ~@5 g3@7 ~@13 [g3,c4,e4]@7 ~@4 d3@25]/8", // D G5 G G5 G Em Asus4 D …
  S: "[a3,d4,e4]!12", // Asus4
  T: "[[b3,d4,g4]@8 [b3,d4,g4]@3 ~ [d4,g4]@6 [d4,g4]@2 ~@4 [d4,g4]@5 ~ [d4,g4]@2 d4@2 [b3,d4,g4] ~ [e4,g4]@11 ~ [a3,d4,e4]@8 [a3,d4,e4]@4 [f#3,a3,d4,e4]@6 ~@2 [f#3,a3,d4,e4]@2 ~@2 [a3,d4,e4]@4 ~@4 [f#3,a3,d4,e4]@2 [f#3,a3,d4,e4]@2 [e3,g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ d4@8 d4@4 [b3,d4,g4]@4 ~@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4] ~ [g3,c4,e4]@6 [g3,c4,e4]@2 [g3,c4,e4]@4 ~@4 e2@4 [g3,c4,e4]@3 ~ [d4,e4]@5 ~ [d4,e4] ~ [d4,e4]@3 ~ [a3,d4,e4]@6 [a3,d4,e4]@2 [a3,d4,e4]@2 ~@2 [a3,d4,e4]@6 d4@2 [a3,d4,e4]@4 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2, ~@11 [g3,b3]@6 ~ b3@4 [b3,d4,g4]@2 ~@6 b3@4 ~@46 d3@6 ~@2 c3@7 g2@23 ~ e2@14 ~@10 f#2@17 ~@7 f#2@10 ~@15, ~@23 g3@11 ~ [e2,g3,c4]@12 [f#2,d3,f#3]@8 ~@16 [d2,d3]@6 ~@19 g4@12 ~@35 a3@6 ~ a3@5 ~@11 [a3,d4,e4]@2 ~@24, ~@23 b3@6 ~@66 b3@12 ~@5 g3@7 ~@13 [g3,c4,e4]@7 ~@4 d3@25 ~@24]/8", // G G5 G Em Asus4 D Asus4 D …
  U: "[[a3,d4,f#4]@5 ~ d4@2 [a3,d4,f#4]@4 [a3,d4]@2 d4@2 ~@4 d4@2 ~@2 [c4,e4]@11 ~ [g3,c4,e4]@4 ~@2 [c4,e4] ~ [c4,e4]@3 ~@13 [a3,d4,e4]@4 ~@2 [a3,d4,e4]@5 ~ [b3,e4]@46 ~@2, b2@15 ~ [a3,d4,f#4]@6 [a3,d4,f#4]@2 ~@23 a3@12 ~@61, ~@18 b2@4 ~ e2@24 f#2@20 ~@53, ~@23 c3@15 ~@2 c3@7 d3@8 ~ d3@7 ~ d3@6 ~ [c3,g3]@47 ~@2, ~@23 g3@12 ~@7 g3@5 ~ [d4,e4]@12 ~@60]/5", // D D5 C Asus4 E5 D C5 Dsus2
  V: "[[d4,g4]@8 [b3,d4,g4]@3 ~ [d4,g4]@6 [d4,g4]@2 ~@4 [d4,g4]@5 ~ [d4,g4]@2 d4@2 [b3,d4,g4] ~ [e4,g4]@11 ~ [a3,d4,e4]@8 [a3,d4,e4]@4 [f#3,a3,d4,e4]@6 ~@2 [f#3,a3,d4,e4]@2 ~ [d2,d3], ~@11 [g3,b3]@6 ~ b3@4 [b3,d4,g4]@2 ~@6 b3@4 ~@38, ~@23 g3@11 ~ [e2,g3,c4]@12 [f#2,d3,f#3]@8 ~@17, ~@23 b3@6 ~@43]/3", // G5 G G5 G Em Asus4 D G …
  W: "[[a3,d4,e4]@4 ~@4 [f#3,a3,d4,e4]@2 [f#3,a3,d4,e4]@2 [e3,g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ d4@8 d4@4 [b3,d4,g4]@4 ~@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4] ~ [g3,c4,e4]@6 [g3,c4,e4]@2 [g3,c4,e4]@4 ~@4 e2@4 [g3,c4,e4]@3 ~ [d4,e4]@5 ~ [d4,e4] ~ [d4,e4]@3 ~ [a3,d4,e4]@6 [a3,d4,e4]@2 [a3,d4,e4]@2 ~@2 [a3,d4,e4]@6 [d4,e4] ~ [d4,e4]@3 ~ [a3,d4,e4]@6 [a3,d4,e4]@2 [a3,d4,e4]@2 ~@2 [a3,d4,e4]@6 d4@2 [a3,d4,e4]@4 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2, ~@8 d3@6 ~@2 c3@7 g2@23 ~ e2@14 ~@10 f#2@17 ~@7 f#2@10 ~@14 f#2@10 ~@15, ~@23 b3@12 ~@5 g3@7 ~@13 [g3,c4,e4]@7 ~@4 d3@25 ~@48, ~@24 g4@12 ~@35 a3@6 ~ a3@5 ~@11 [a3,d4,e4]@2 ~@6 a3@5 ~@11 [a3,d4,e4]@2 ~@24]/6", // Asus4 D C G C Dsus2 Asus4 Dsus2 …
  X: "[[d3,e4,f#4]@2 a3 ~ a3 d3 [a3,e4,f#4] d3 [a3,e4,f#4] ~ [a3,e4,f#4] ~ g4@11 ~, ~@3 [e4,f#4]@2 ~@4 d3@2 g3@11 ~@2, ~@23 [b3,d4]@22 ~@3]/2", // D F#m7 Esus2 Bm
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.7)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@2 A B ~@4 C@2 A B ~@3 D ~ E ~ F ~@28 G ~ H ~@3 C@2 A B ~@4 C@2 A B ~@3 D ~ E ~ F ~@2 C@2 A B ~@4 D ~@26
>`.pickRestart({
  A: "~@8 d3@9 ~ [f#3,a3,d4,e4]@2 ~@2 [f#3,a3,d4,e4]@2", B: "~@2 [f#3,a3,d4,e4]!2 ~@8",
  C: "[~@10 [d4,g4] ~@5 g4 ~@7, ~@20 g2@9 ~@19]/2", D: "~@10 c3@13 ~", E: "~@3 [a3,f#4] ~@2 f#4 [a3,f#4] ~@4",
  F: "~@20 f#2@3 ~", G: "~@5 f#3", H: "~@9 b3 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.7)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@19 A@3 B@2 C D E F G@2 H@6 I@2 H@6 J@2 E K C L M K C ~ B@2 C D E F G@2 B@2 C D E F G@2 N O P Q@3 B@2 C D E F R@3 H@6
  I@2 H@6 J@2 H@6 I@2 S@2
>`.pickRestart({
  A: "[~ [e4,g4]@2, ~@23 [g3,b3]@49]/3", // Em G
  B: "[~@12 d4@4 d4@3 ~ d4@3 ~@13 c3@4 b2@3 ~ b2@4, ~@2 g3@9 ~ d4@11 ~, ~@4 a3@11 ~@9]/2",
  C: "~@12 d4@4 d4@3 ~ d4@3 ~, d3 ~, ~ f#3@5, ~@8 g3@15 ~", D: "d4@3 a2 c3 d3", E: "d3 [g2,d3]!2 [g3,d4,g4]!3",
  F: "g3@23 ~, d4@17 ~@7, g4@13 ~@11", G: "[d3@4 ~@8 d4@4 d4@3 ~ d4@26 ~@2, ~@4 f#3@41 ~@3, ~@4 g3@19 ~]/2",
  H: "[d4@2 d4 ~ d4 ~ d4@2 d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4@2 d4@2 ~@2 c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 b3 ~ b3 ~ b3 ~ b3@2 b3@2 g3@2, g3@9 ~ g3@10 ~@2 g3@9 ~@3 g3@11 ~@3, g4@4 ~@2 g4@5 ~ g4@5 ~ g4@5 ~ g4@5 ~ g4@5 ~ g4@5 ~ g4@4 ~@2]/2",
  I: "[c4@2 c4 ~ c4 ~ c4@2 c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4@2 c4@2 ~@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4 ~ d4 ~ d4 ~ d4@2 d4@2 a3@2, a3@9 ~ a3@10 ~@2 a3@9 ~@3 a3@11 ~@3, g4@4 ~@2 g4@5 ~ g4@5 ~ g4@5 ~ e4@5 ~ e4@5 ~ e4@5 ~ e4@4 ~@2]/2",
  J: "[c4@2 c4 ~ c4 ~ c4@2 c4 ~ c4 ~ c4 ~ c4 ~ c4 ~ c4@2 c4@2 ~@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d3@4 d3@4 d3@4, a3@9 ~ a3@10 ~@2 a3@9 ~@5 a3@9 ~@3, g4@4 ~@2 g4@5 ~ g4@5 ~ g4@5 ~ e4@5 ~ e4@5 ~@13]/2",
  K: "[g3,d4,g4]@12 c3@4 b2@3 ~ b2@4", L: "d4@5 a2 d3@3 a2@3", M: "[g2,d3]!3 [g3,d4,g4]!3",
  N: "~@5 d4, e3@11 ~ e3@10 ~@2, ~@4 g3@9 ~@3 g3@8, ~@8 d4@9 ~@7", O: "~@2 d4 f#3 ~ d4, f#3@7 ~@17, ~ g3@2 ~ g3@2",
  P: "~@4 g3 c4, e3@8 c4@9 ~@7, ~@2 g3@4 e3@5 ~",
  Q: "[~@8 c4@2 a3 ~ [b3,e4]@24, f#3@8 d4@13 ~@51, ~@4 a3@8 f#3@8 ~@3 [c3,g3]@48 ~]/3", // E5 C5
  R: "[d3@4 ~@8 d4@4 d4@3 ~ d4@14 ~@2 d4@4 d4@14 ~@6 d4@4 d4@8, ~@4 f#3@41 ~@27, ~@4 g3@19 ~@13]/3",
  S: "[[g3,d4,g4]!5 [g3,d4,g4]@7]/2", // G5
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.1)

// chords · banjo
const banjo = note(`<
  ~@30 A B A C A B D E A B A C A B D F ~@39 A B A C A B D E A B A C A B D F A B A C A B D E A G
>`.pickRestart({
  A: "~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4] ~ [d4,g4]", // G5
  B: "~@2 g4@3 ~ [d4,g4]@4 g4@2 ~@2 g4@3 ~ [d4,g4]@3 ~ [d4,g4]@2, d4@5 ~@7 d4@6 ~@6", // G5
  C: "~@2 g4@3 ~ [d4,g4]@2 ~@2 g4@2 ~@2 g4@3 ~ [d4,g4]@3 ~ [d4,g4]@2, d4@3 ~ d4@2 d4@3 ~@3", // G5
  D: "~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4] ~ [c4,e4]", // C
  E: "~@2 e4@3 ~ [d4,e4]@4 e4@2 ~@2 e4@3 ~ [d4,e4]@3 ~ [d4,e4]@2, d4@5 ~@7 d4@6 ~@6", // Dsus2
  F: "~@2 e4@3 ~ [d4,e4]@4 e4@2 ~@2 e4@3 ~@7, d4@5 ~@7 d4@6 ~@6", G: "~ [d4,g4] ~ [d4,g4] ~@8",
})).s("gm_banjo").gain(0.18).pan(0.9)

// chords · pad warm
const pad_warm = note(`<
  ~@22 A@2 B@3 C D@2 E C E C E C F G E C E C E C F G A@2 H@2 E C I@2 A@2 B@3 C D@2 A@2 B@3 C D@2 J K L M N@2 A@2 B@3 C
  D@2 ~ E C E C E C F G E C E C E C F G E C E C E C F G O@2
>`.pickRestart({
  A: "[[g2,d3,b3]@3 [c2,e3,c4]]/2", B: "[[d2,f#3,d4]@36 [e3,c4]@12 [d3,b3]@23 ~, ~@36 g2@35 ~]/3", C: "[c2,e3,c4]",
  D: "[d2,f#3,d4]/2", E: "[g2,d3,b3]", F: "[a2,e3,c4]@23 ~", G: "[d2,f#3,a3]", H: "[[d2,f#3,d4]@3 [c2,e3,c4]]/2",
  I: "[d4@23 ~ c4@24, [d2,f#3]]/2", J: "[e2,g3,b3]", K: "[b1,f#3,a3]", L: "[c2,g3,b3]", M: "[d2,f#3,d4]",
  N: "[[c2,e3,b3]@23 ~]/2", O: "[[g2,d3,b3]@23 ~]/2",
})).s("gm_pad_warm").gain(0.2).pan(0.4)

// other · distortion guitar
const distortion_guitar = note("<~@36 A ~@7 A ~@46 A ~@7 A ~@7 A ~@3>".pickRestart({
  A: "~@4 g2 a2",
})).s("gm_distortion_guitar").gain(0.48).pan(0.7)

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

// drums · snare
const snare = s("sd").struct("<~@22 A@7 B A@7 C A@7 D A@7 E A@20 ~@2 A@8 B A@15 F A@7 G ~@2>".pickRestart({
  A: "~ x", B: "~@2 x!2 ~@8", C: "~ x ~@4", D: "~@6 x ~ x!3 ~", E: "~@3 x!2 ~", F: "~@2 x!2", G: "x ~@2 x!2 ~@7",
})).gain(0.72)

// drums · low tom
const low_tom = s("lt").struct("<~@29 A ~@7 B ~@46 A ~@7 B ~@15 C ~@2>".pickRestart({
  A: "~@6 x ~@2 x!3", B: "~@11 x", C: "~@10 x!2",
})).gain(0.72)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@29 A ~@7 B ~@15 C ~@21 D ~@8 A ~@7 B ~@15 E ~@2>".pickRestart({
  A: "~@5 x ~@6", B: "~@5 x", C: "~@11 x", D: "~ x", E: "~@2 x!2",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@29 A ~@7 A ~@7 A ~@15 B ~@7 B ~@3 C ~@9 D A ~@7 A ~@7 E ~@10>".pickRestart({
  A: "x", B: "~@4 x!2", C: "~@5 x", D: "~ x", E: "x ~@8 x ~ x",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@29 A ~@7 B ~@15 C ~@21 A ~@8 A ~@7 D ~@18>".pickRestart({
  A: "~ x ~", B: "~@2 x!2", C: "~@5 x", D: "~@3 x",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@21 A B ~@7 B ~@2 C B ~ B A B ~@3 B ~ B D B ~@3 B ~ B D B ~@7 B ~@7 B ~@2 A B ~ B ~@7 E B ~@5 B A B ~@3 B ~ B ~ B ~@5
  B F B ~
>`.pickRestart({
  A: "~@21 x!3", B: "x", C: "~@11 x", D: "~ x", E: "~@22 x!2", F: "x ~@11 x ~@8 x!3",
})).gain(0.32)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@21 A ~@15 B ~@35 B ~@10 C ~@7 B ~@15 B ~@2>".pickRestart({
  A: "~@12 x!9 ~@3", B: "~@18 x!3 ~@3", C: "~@20 x!2 ~@2",
})).gain(0.08)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@30 A B C D A C A E A B C F A G H E A B C F A G I J ~@31 A B C@4 A K A B C F A G H L A B C@4 M N ~@2
>`.pickRestart({
  A: "~ x!5", B: "x ~ x ~ x ~ x!3 ~ x!2", C: "x!6", D: "x ~ x ~ x ~ x ~ x!3 ~", E: "~ x ~", F: "x ~ x ~ x ~ x ~ x!4",
  G: "x ~ x ~ x ~ x!3 ~ x ~", H: "~@2 x!4", I: "~@4 x ~ x ~ x ~ x!2", J: "x!3 ~@3", K: "~ x!2 ~@3",
  L: "~@2 x!3 ~ x!3 ~@3", M: "~@2 x ~ x ~ x ~ x!3 ~", N: "~@2 x ~ x!2 ~@6",
})).gain(0.48)

stack(
  bass, acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_clean, banjo, pad_warm, distortion_guitar, kick,
  snare, low_tom, hihat, mid_tom, open_hat, high_tom, crash, crash_soft, ride_bell
)

More by LIGABUE