Strudelify

Uno dei tanti

LIGABUE

KeyA majorTempo113 bpm
0:00/0:00
// Uno dei tanti — LIGABUE
// 113 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(113/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(`<
  ~@9 A B C D E F G H I J K L M J G N O P Q@2 R S T U O P Q@2 R S T U I J K L M J G N O P Q@2 R S T U O P Q@2 R S T U I
  J K L M J G V O P Q@2 R S T U I J K L M J G N O P Q@2 R S T U O P Q@2 R S T U I J K L M J G N O P Q@2 R S T U W@4
>`.pickRestart({
  A: "a1@5 ~ a1 ~ a1@7 ~", B: "a1@4 ~@2 a1 ~ a1@3 ~ b1@4", C: "c#2@5 ~ c#2 ~ c#2@6 ~@2", D: "c#2@5 ~ c#2 ~ c#2@4 c#2@4",
  E: "d2@5 ~ a1 ~ d2@6 ~@2", F: "d2@4 ~@2 d2 ~ d2@4 c#2@4", G: "b1@5 ~ b1 ~ b1@7 ~", H: "b1@5 ~ b1 ~ b1@4 b1 ~ b1@2",
  I: "d2@4 ~@2 d2 ~ d2@7 ~", J: "c#2@5 ~ c#2 ~ c#2@7 ~", K: "e1@5 ~ e1 ~ e1@6 ~@2", L: "e1@6 ~ e1 c#2@2 e2@2 c#2@4",
  M: "d2@5 ~ d2 ~ d2@3 ~ d2@3 ~", N: "b1@5 ~ b1 ~ b1@4 b1@2 b1@2", O: "a1@5 ~ a1 ~ a1@4 a1@3 ~",
  P: "a1@5 ~ a1 ~ a1@3 ~ a1@4", Q: "c#2@5 ~ c#2 ~ c#2@3 ~ c#2@3 ~", R: "d2@5 ~ d2 ~ d2@4 d2@3 ~",
  S: "d2@5 ~ d2 ~ d2@4 c#2@3 ~", T: "b1@5 ~ b1 ~ b1@4 b1@3 ~", U: "b1@5 ~ b1 ~ b1@3 ~ b1@4",
  V: "b1 ~ b1@2 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2", W: "[a1@49 ~@15]/4",
})).s("gm_electric_bass_finger").gain(0.56)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@9 A@4 B@2 C@2 D E@2 F G H I@2 A@4 B@2 C@2 A@4 B@2 C@2 D E@2 F G H I@2 A@4 B@2 C@2 A@4 B@2 C@2 D E@2 F G H I@2 A@4
  B@2 C@2 D E@2 F G H I@2 A@4 B@2 C@2 A@4 B@2 C@2 D E@2 F G H I@2 J@6 K@2 L@3 ~
>`.pickRestart({
  A: "~@2 a3@2 ~@2 a3@3 ~ a3@2 ~@2 a3@2, b3@3 c#4, ~ e3@3",
  B: "[~@2 d4@2 ~@2 d4@3 ~ d4@2 ~@2 d4@2 ~@2 d4@2 ~@2 d4@3 ~ d4@2 e4@3 ~, e4@12 f#4@4 e4@11 ~@5, ~@4 a3@15 ~ a3@11 ~]/2",
  C: "[~@2 b3@2 ~@2 b3@3 ~ b3@2 ~@2 b3@2 c#4@2 b3@2 ~@2 b3@3 ~@3 c#4@3 ~, c#4@3 d#4@4 ~, ~@4 f#3@12 ~@4 f#3@11 ~, ~@26 b3@5 ~]/2",
  D: "a3@2 b3 a3@3 b3 a3", E: "[b3@2 a3@2 e3@2 a3@4 e3@2 ~@2 c#4@4 ~@4 a3@3 ~ g#3@5 ~, ~@6 a3@3 b3@7]/2",
  F: "a3 g#3 ~ a3@2 g#3 e3@2, ~@2 e3@3 ~@3", G: "~@6 a3 d4, d3@7 ~, ~ a3@4 e4@3, ~@6 d4@7 ~@3",
  H: "~@3 c#4@5, c#3@13 ~@3, ~@2 g#3@11 ~@3",
  I: "[~@5 f#3@2 ~@7 f#3@2, b2, ~@2 f#3@7 ~@5 e4@6 b3@5 ~ b3@6, ~@6 b3@12 f#3@9 ~@5, ~@11 d#4@5]/2",
  J: "b4 a4 e4 b4 a4 e4 c#5 e4", K: "b4 a4 f#4 b4 a4 f#4 c#5 f#4", L: "a3/3",
})).s("gm_electric_guitar_clean").gain(0.31).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@9 A B C@2 D E F@2 G H I@2 J K L M A B C@2 D E F@2 A B C@2 D E F@2 G H I@2 J K L M A B C@2 D E F@2 A B C@2 D E F@2 G
  H I@2 J K L M A B C@2 D E F@2 G H I@2 J K L M A B N@2 D E F@2 A B C@2 D E F@2 G H I@2 J K L M A B C@2 D E F@2 ~@4
>`.pickRestart({
  A: "~@2 [e3,a3,b3] [e3,a3,b3,e4]@2 [e3,a3]!2 [a2,e3,a3,b3,e4], ~@2 a2@3 [a2,b3,e4]@2 ~, ~@4 e4 ~@11", // Esus4 A5 Asus2
  B: "~ e4 [a2,e3,a3,b3,e4]@2 ~ e4 e3@2 e3@2 [a2,e3,a3,b3,e4]@2 [a2,e3,a3,b3,e4] ~ [a2,e3,a3,b3,e4]@2, [a2,e3,a3,b3] ~ [a2,e3,a3,b3] [a2,a3,b3,e4]@2 ~@3", // Asus2
  C: "[~@2 [a2,e3,a3] [a2,e3,a3,b3]@2 [a2,e3,a3,b3,e4]!2 e3 e3 [a2,e3,a3,b3,e4] [a2,e3,a3,b3] [e3,a3,b3] [e3,a3,b3,e4] [a2,e3,a3,b3,e4]!3, ~@4 e4@5 ~@11 e4@4 ~@8, ~@4 b3 ~@9 [a2,a3,b3,e4]@4 ~@4 a2@4 ~@6]/2", // A5 Asus2 Esus4 Asus2
  D: "~@4 [a2,d3,a3,d4,e4] ~ [a2,d3,a3,d4,e4]@4 [a2,d3,a3,d4,e4]@2 [a2,d3,a3,d4,e4]@2 [a2,d3,a3,d4,e4]@2", // Asus4
  E: "[a2,d3,a3,d4,e4]@2 [a2,d3,a3,d4,e4]@2 [a2,d3,a3,d4,e4]@2 [d3,a3,d4,e4]@4 [d3,a3,d4,e4]@2 [d4,e4] ~ [d4,e4]@2, ~@3 a2@3 [a2,d3,a3]@2", // Asus4 Dsus2 D5
  F: "[~@4 [f#2,b2,f#3,b3,d#4,f#4]@2 [f#2,b2,f#3,b3,d#4,f#4]@4 ~ f#2 [f#2,b2,f#3,b3,d#4,f#4]@2 [f#3,b3,d#4,f#4]@4 [f#3,b3,d#4,f#4]@2 [f#2,b2,f#3,b3,d#4]@2 [f#2,b2,f#3,b3,d#4]@4 [f#2,b2,f#3,b3,d#4,f#4]@2 [f#3,b3,d#4]@2 [f#3,b3,d#4,f#4]@2, ~@10 [b2,f#3,b3,d#4,f#4]@2 ~@2 [f#2,b2]@6 f#4@5 ~@3 [f#2,b2]@4, ~@28 f#4 ~@3]/2", // B B5
  G: "[d3,a3,d4,e4]@2 [d3,a3,d4,e4] [d3,a3,d4,e4]@2 [d3,a3,d4,e4]!2 [e3,a3,b3,e4]", // Dsus2 Esus4
  H: "[e3,a3,b3,e4]@2 [e3,a3,b3,e4] [e3,a3,b3,e4]@2 [e3,a3,b3,e4]!2 [b2,e3,g#3,b3,e4]", // Esus4 E
  I: "[[e3,g#3,b3,e4]@4 [e3,g#3,b3,e4]@2 [b2,e3,g#3,b3,e4]@4 [b2,e3,g#3,b3,e4]@2 ~ e4 [b2,e3,g#3,b3,e4]@4 [b2,e3,g#3,b3,e4]@2 [b2,e3,g#3,b3,e4]@2 [b2,e3,g#3,b3,e4]@4 [b2,e3,g#3,b3,e4]@2 [e3,g#3,b3]@2 [d3,a3,d4,e4]@2, b2@3 ~@3 [b2,e3,g#3,b3] ~@7 b2@2, ~@28 e4 ~@3]/2", // E Dsus2 E
  J: "[d3,a3,d4,e4]@2 [d3,a3,d4,e4] [d3,a3,d4,e4]@2 [d3,a3,d4,e4]!2 [e3,a3,d4,e4]", // Dsus2
  K: "[e3,a3,b3,e4]@2 [e3,a3,b3,e4] [e3,a3,b3,e4]@2 [e3,a3,b3,e4]!2 [f#3,b3,e4]", // Esus4 Esus2
  L: "[f#3,b3,d#4,f#4]@2 [f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@2 [b2,f#3,b3,d#4,f#4] [f#3,b3,d#4] [f#3,b3,d#4,f#4], b2@3 ~@3 b2@2, ~@12 f#4 ~@3", // B
  M: "[f#3,b3] [f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@2 [b2,f#3,b3,d#4,f#4] [b2,f#3,b3,d#4,f#4]@2, b2 ~@3, [d#4,f#4] ~@15", // B5 B D#m
  N: "[~@2 [e3,g#3] [e3,g#3,c#4]@2 [e3,g#3,c#4,e4]!2 e3 e3 [e3,g#3,c#4,e4] [e3,g#3,c#4]!2 [e3,g#3,c#4,e4]!4, ~@4 e4@5 ~@11 e4@4 ~@8, ~@4 c#4 ~@9 [g#3,c#4,e4]@4 ~@14]/2", // E C#m
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  A@2 B@2 C@2 D@2 E@5 F@4 ~@7 G@5 H I@7 F@4 ~@7 G@5 H I@7 F@4 ~@7 G@5 F@4 ~@7 G@5 H I@7 F@4 ~@7 G@5 J@7 ~
>`.pickRestart({
  A: "[~@26 [a2,e3]@3 ~@2 g#3, ~@15 a2@11 ~@4 [a2,e3]@2, ~@8 e3@5 ~@3, ~@22 b3@9 ~]/2", // A5
  B: "[[a2,g#3]@2 [a2,e3,g#3]@2 [a2,e3,g#3]@2 [a2,e3,a3]@3 ~@3 e2@2 e2 ~@11 c#4@3 ~@3, ~@10 [a2,e3,b3]@5 c#3@14 ~@3, ~@16 g#3@11 ~@5, ~@16 c#4@6 e4@9 ~, ~@17 g#4@14 ~]/2", // Amaj7 A5 Asus2
  C: "[[c#3,c#4] ~ [c#3,g#3,c#4]@2 [c#3,c#4]@2 ~@10 d4@6 d4@10, ~@6 [c#3,g#3,c#4]@9 [d3,a3]@17, ~@5 e4@3 f#4@8, ~@14 a2@17 ~]/2", // C# C#5 C# C#5 D5
  D: "[~@2 a3@2 [a2,d3] ~ c#4@4 b3@2 ~@4 b3@6 c#4@4 b3@4 f#3@2, ~@6 [a2,d3]@9 f#3@14 ~@3, ~@6 a3@6 ~@3 b2@16 ~]/2", // D5
  E: "[[a2,f#3]@2 [b2,f#3]@2 ~@12 [a3,b3,e4]@31 ~ [b3,e4]@31 [a2,d3], ~@4 [b2,f#3]@11 [a2,e3]@32 ~@33, ~@5 c#4@3 ~@32, ~@14 e2@32 ~ [e2,a2,e3,a3]@32 ~]/5", // D B5 Asus2 E5 D5 B5 A5
  F: "[[a3,d4,e4]@15 ~ [d#4,f#4]@16, ~@15 f#2@17, ~@31 [b2,f#3,b3]@33]/4", // Asus4 D#m B5
  G: "[~@16 [a3,b3,e4]@31 ~ [b3,e4]@31 [a2,d3], ~@14 e2@32 ~ [e2,a2,e3,a3]@32 ~, ~@15 [a2,e3]@32 ~@33]/5", // Asus2 E5 D5 A5
  H: "[a3,d4,e4]", // Asus4
  I: "[~@48 [a3,b3,e4]@31 ~ [b3,e4]@31 [a2,d3], ~@14 f#2@33 [a2,e3]@32 ~@33, ~@15 [b2,f#3,b3]@33 ~@64, ~ [d#4,f#4]@2 ~@4, ~@46 e2@32 ~ [e2,a2,e3,a3]@32 ~]/7", // Asus2 E5 D5 A5 B5 D#m A5
  J: "[[a3,d4,e4]@15 ~@17 [a3,b3,e4]@24, ~@30 f#2@33 [a2,e3]@48 ~, ~@31 [b2,f#3,b3]@33 ~@48, ~@2 [d#4,f#4]@2 ~@3, ~@31 e2@24 ~]/7", // Asus4 Asus2 A5 B5 D#m
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.2)

// chords · acoustic guitar steel · soft notes · C#5 Dmaj7 A
const acoustic_guitar_steel_3 = note(`<
  ~@2
  [e3 ~@7]
  [~@12 g#3 ~ [c#3,g#3,c#4]@2]
  [g#3 ~@3 g#3@2 ~@10]
  ~
  [[a2,d3,a3,c#4]@2 [a2,d3,c#4]@2 [a3,c#4] ~@7 a3@4]
  [~@7 a2]
  ~@117
>`).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.2)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@17 A B C@2 A B D@2 ~@14 E F A B C@2 A B D@2 G@2 ~@14 A B C@2 A B D@2 ~@6 E F H I J K L M@3 N@2 O@2 P@2 Q@2 R@2 ~@4 E
  F ~@8 S@5 T U@2 V@3 ~
>`.pickRestart({
  A: "d3", B: "c#3@15 ~", C: "[e3@9 ~ g#3@4 e4@4 b3@4 g#3@8 ~@2]/2",
  D: "[[b2,f#3]@9 ~ [f#3,b3]@3 ~ [e3,a3]@4 [f#3,b3]@8 [f#3,b3]@5 ~]/2", E: "b2@4 c#3@3 ~ b2@3 ~ f#3@4",
  F: "e3@4 a3@11 ~", G: "[a3@3 ~]/2",
  H: "[g#3,g#4]@2 [a3,a4] ~ [a3,a4]@2 [g#3,g#4]@2 [a3,a4] ~ [a3,a4]@2 [g#3,g#4]@2 [a3,a4]@2", // G# A G# A G# A
  I: "[g#3,g#4]@2 [a3,a4] ~ [a3,a4]@2 [g#3,g#4]@2 [a3,a4] ~ [a3,a4]@2 g4 [c4,d4,e4,f4] [f3,g3,a3,b3] [b2,c3,d3,e3]", // G# A G# A Dm7 G7 Cmaj7
  J: "[e2,b2]@6 a4@2 g#4@2 e4@5 ~", K: "e4 d4 b3 e4 d4 b3 e4@8 ~@2",
  L: "[g#3,g#4]@2 [a3,a4] ~ [a3,a4]@2 [g#3,g#4]@4 [a3,a4]@4 [g#3,g#4]@2", // G# A G# A G#
  M: "[[g#3,g#4] [a3,a4]!2 [g#3,g#4]@2 [a3,a4]@2 b3@2 c#4 e4 c#4 g#4 e4@2 b3@2 c#4 e4 g#4@4 ~]/3", // G# A G# A
  N: "[e5@2 b4@4 a4@2 e4@6 e5@15 ~@3]/2", O: "[e5@2 b4@4 a4@2 e4@3 ~ f#5@2 a5@4 b5@4 a5@4 e5@5 ~]/2",
  P: "[e5@2 b4@4 a4@2 e4@6 e5@15 ~ e4@2]/2", Q: "[f#4@2 a4@4 b4@4 e4@3 ~ c#5@4 e4@2 c#5@2 a4@4 b4@5 ~]/2",
  R: "[c#5@11 ~@5]/2", S: "b4 a4 e4 b4 a4 e4 c#5 e4", T: "b4 a4 e4 c#5 a4 e4 c#5 a4", U: "b4 a4 f#4 b4 a4 f#4 c#5 f#4",
  V: "[e5@37 ~@11]/3",
})).s("gm_overdriven_guitar").gain(0.48)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@25 A@4 B@2 C@2 D@4 B@2 C@2 E@2 F@2 G H I@2 A@4 B@2 C@2 A@4 B@2 C@2 E@2 F@2 G H I@2 A@4 B@2 C@2 E@2 F@2 G H I@2 J@4
  B@2 C@2 A@4 B@2 C@2 E@2 F@2 G H I@2 A@4 B@2 C@2 K@3 ~
>`.pickRestart({
  A: "[[a2,c#4] [c#3,b3], [e3,a3]]/4", B: "[d3,a3,d4,e4]/2", C: "[[b2,f#3,b3,d#4]@31 ~]/2",
  D: "[[a2,a3,c#4] [c#3,g#3,c#4], e3]/4", E: "[f#4@3 ~@5 [g#3,c#4]@8, [a3,d4] ~, ~@3 e4@13]/2", F: "[g#3,b3,e4]/2",
  G: "[a3,e4,f#4]", H: "[g#3,c#4,e4]", I: "[[f#3,b3,d#4]@29 ~@3]/2", J: "[[a2,a3] [c#3,e3,g#3], c#4@63 ~]/4",
  K: "[[a2,e3,a3,c#4]@7 ~]/3", // A
})).s("gm_synth_strings_1").gain(0.32)

// other · rock organ
const rock_organ = note("<~@41 A B C@2 A B D@2 ~@24 E@2 F@2 G@2 H@2 ~@24 A B C@2 A B I@2 ~@12>".pickRestart({
  A: "a5 d6@2 a5@2 d6@3", B: "g#5@2 c#6@4 b5@4 c#6@2 g#5@3 ~",
  C: "[~@2 e5 ~ e5@3 ~ e5 ~ e5@3 ~ e5@4 e5 ~ e5@4 e5 ~ e5@3 ~ e5@2]/2",
  D: "[~@2 f#4 ~ f#4@3 ~ f#4 ~ f#4@3 ~ b4@4 e5@4 d#5@4 b4@5 ~]/2", E: "a5/2", F: "c#6/2", G: "d6/2", H: "b5/2",
  I: "[~@2 f#4 ~ f#4@3 ~ f#4 ~ f#4@3 ~ b4@4 e5@3 ~ d#5@4 b4@5 ~]/2",
})).s("gm_rock_organ").gain(0.48).pan(0.7)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@16 A@2 B@7 ~@15 A@2 B@7 ~@15 A@2 B@7 ~@7 A@2 B@7 ~@15 A@2 B@7 C@7 D@4 ~
>`.pickRestart({
  A: "[~@16 a3@15 c#3, ~@15 [a2,d3]@16 ~]/2", // D5
  B: "[[e3,g#3]@14 ~@2 [e3,g#3]@31 ~ a3@15 ~@2 g#3@14 ~@2 b3@31, ~@14 e2@31 ~@19 e3@15 ~ f#3@32, ~@15 b2@31 ~ [a2,d3]@16 [g#2,c#3]@16 b2@33]/7", // E D5 C#5
  C: "[~@2 a3@4 ~@2 a3@4 ~@2 a3@4 ~@2 a3@4 ~@2 a3 ~@7 a3@4 ~@2 a3@4 ~@2 a3@4 ~@2 a3@4 ~@10 a3@4 ~@2 a3@4 ~@2 a3@4 ~@2 a3@4 ~@10 a3@4 ~@2 a3@4 ~@2 a3@2, e3@5 ~ e3@5 ~ e3@5 ~ e3@5 ~ e3@4 a3@6 ~@24 a3@7 ~@25 a3@7 ~@15, ~@30 e3@7 ~ e3@5 ~ e3@5 ~ e3@5 ~ e3@5 ~ e3@7 ~ e3@5 ~ e3@5 ~ e3@5 ~ e3@5 ~ e3@6 ~@2 f#3@6 f#3@4]/7",
  D: "[~@4 a3@4 ~@2 a3@4 ~@2 [e3,a3,c#4]@47 ~, ~@2 f#3@5 ~ f#3@5 ~ f#3@2 ~@48, ~@15 a2@48 ~]/4", // A
})).s("gm_distortion_guitar").gain(0.21).pan(0.6)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@48 [x!7 ~] ~@23 [x!7 ~] ~@52>").gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct("<~@48 [~@2 x!5 ~] ~@23 [~@2 x!5 ~] ~@15 [~@5 x!3] ~@36>").gain(0.32)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@48 [x!2 ~@6] ~@23 [x!2 ~@6] ~@52>").gain(0.16)

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

// drums · crash
const crash = s("cr").struct(`<
  ~@9 A ~@7 A@3 ~ A@3 ~ A ~@7 A ~@7 A@3 ~ A@3 ~ A ~@7 A ~@7 A@3 ~ A@3 ~ A ~@7 A ~ A ~ A@3 ~ A ~@3 A ~@3 A ~@7 A@3 ~ A@3
  ~ A ~ A ~@5 A ~@3
>`.pickRestart({
  A: "x",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct("<~@81 [x!8]!7 [x!5 ~@3] ~@24 [x!8]!8 ~@4>").gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@5
>`.pickRestart({
  A: "~@3 x",
})).gain(0.64)

stack(
  bass, electric_guitar_clean, acoustic_guitar_steel, acoustic_guitar_steel_2, acoustic_guitar_steel_3,
  overdriven_guitar, synth_strings_1, rock_organ, distortion_guitar, kick, snare, low_tom, mid_tom, mid_tom_soft,
  open_hat, crash, ride, tambourine
)

More by LIGABUE