Strudelify
Leggero cover art

Buon compleanno Elvis

Leggero

LIGABUE

KeyC majorTempo80 bpm
0:00/0:00
// Leggero — LIGABUE
// 80 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 86 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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.

// chords · acoustic guitar steel · "Track 2"
const acoustic_guitar_steel = note(`<
  A B C D E F G H@3 I J K L M N@2 O P@2 Q R S T U V@2 W X Y Z@3 AA AB@3 AC AD@2 AE@2 AF@2 AG AH AI AJ AK AL AM AN AO AP
  AQ AR ~@30
>`.pickRestart({
  A: "~@2 c4@7 ~@3 g3@6 [g3,b3]@24 ~@3 g3@3, e3@9 e3@9 d3@4 ~@20 e3@6, ~ g3@11 ~@36", // G
  B: "[e3,b3]@8 ~@6 g3@4 [f3,a3]@13 ~@5 [f3,a3]@3 ~@3 c4@6, g3@4 d3@2 ~@7 f3@2 ~, ~@3 e3@3 c4@3 ~@3 d4@4", // E5 F
  C: "~ c4@8 ~@3 [g3,c4]@6 ~@27 g3@3, g3@3 e3@3 [d3,g3,b3]@10, ~@7 e3", // C5 G
  D: "[e3,g3]@8 g3@3 ~ [d3,g3]@6 [f3,a3]@12 ~@12 c4@6, ~@4 e3@5 c4@4 ~@5 f3@6, ~@37 [a3,d4]@11", // Em G5 F D5
  E: "~@11 [e3,g3]@6 ~ b3@18 b3@6 ~@2 b3@4, [e3,g3]@11 ~@6 g3@31, ~@2 c4@15 d3@25 d3@6", // Em
  F: "[e3,g3,b3]@8 b3@3 [e3,g3]@6 ~ [f3,a3,c4]@9 a3@3 a3@3 ~@9 c4@3 c4@2 ~, ~@5 c4@2 ~, ~@36 [f3,d4]@11 ~, ~@37 a3@11", // Em F Dm
  G: "[g3,c4,e4]@9 g3@3 [c4,e4]@6 d4@18 ~@6 g3@5 ~, ~@18 [g3,b3]@25 ~@5, ~@3 d4", // C G
  H: "[[g3,b3,e4]@9 ~@3 e4@5 ~@10 a3@4 f4@6 c4@5 e4@5 ~@12 c4@6 ~ d4@17 ~@9 e4@3 ~ [e4,g4]@9 ~@3 g4@5 ~@13 [f4,a4]@6 [f4,a4]@6 e4@3 [g3,c4]@3, ~@9 g3@8 a3@10 ~@10 [a3,f4]@11 [c4,e4]@12 ~@6 b3@23 b3@6 b3@9 ~ b3@9 [f4,a4]@12 ~@12 f4@6, ~@18 [c4,f4]@13 ~@16 g3@8 ~ g3@10 g3@30 ~@48, ~@84 d4@12 ~@11 e4@6 c4@9 c4@8 ~@14]/3", // Em F C5 Dm C F F5
  I: "[c4,e4]@11 [c4,e4]@6 d4@19 d4@6 ~@6, g3 ~@16 b3@31, ~@17 g3@23 ~@8", // C
  J: "[e4,g4]@12 [e4,g4]@6 [c4,f4,a4]@9 [f4,a4]@3 [c4,f4,a4]@2 ~ [c4,a4]@3 [c4,f4,a4]@5 ~@3 a3@3 ~, b3@8 ~@24 f4@3 ~@6 c4@6 ~, ~@7 [e4,f4,a4]", // Em F Fmaj7
  K: "g3 ~@7 g3@4 [g3,e4]@6 d4@18 ~@9 g4@3, [c4,e4]@6 c4 ~@2 [g3,b3]@15, ~@3 d4, ~@7 e4", // C G
  L: "g4@8 g4@3 ~@3 [a3,c4]@3 ~ [a3,c4,f4]@9 ~@3 [c4,f4]@7 ~@5 e4@6, [b3,e4]@11 g4@6 ~@31, ~@12 [b3,e4]@6 ~@9 a3@10 [a3,c4,f4]@11", // Am F F5 E5 F
  M: "[c4,e4]@3 ~ [c4,e4]@2 d4@6 ~@2 b3@2, g3 ~@8 g3@5 ~@4 [g3,b3]@24 ~@6, ~@37 d4@11", // C G
  N: "[~@12 g3@5 ~@2 f4@23 ~@2 g3@3 ~@9 g3@4 [c4,e4]@6 d4@18 ~@9 g4@3, e4@18 c4@29 g3@9 ~@10 g3@30, ~@5 b3@12 b3@2 ~@23 f4@6 [c4,e4]@12 ~@6 b3@23 b3@7, ~@7 d4, ~@15 e4]/2", // C
  O: "[b3,e4,g4]@9 ~@3 [b3,e4]@6 [c4,f4,a4]@9 ~@3 f4@2 ~ a4@3 ~ a4@5 ~@3 a3@3, ~@9 g4@5 ~@13 a4@5 f4@4 f4@6 [e4,f4,a4]@6, ~@29 c4@7 c4@3 ~@9", // Em E5 F Fmaj7
  P: "[[c4,e4]@9 ~@3 [c4,e4]@6 ~ d4@17 ~@6 [g3,b3]@5 ~@14 e4@5 ~ f4@8 ~@3 f4@6 f4@5 ~ f4@6, ~@9 g3@9 [g3,b3]@23 ~@6 [g3,b3]@10 g3@9 ~@30, ~@12 d4@4 a3@6 [a3,c4]@3 a3@3 ~@4, ~@8 e4@2 b3 ~@3 c4@2]/2", // C G Am
  Q: "~ e4@13 ~@4 e4@9 ~@4 [a3,c4]@5 [a3,c4,e4]@6 ~@2 e4@3 ~, [a3,c4]@18 [a3,c4]@13 ~@11 a3@5 ~, ~@9 e4@3 ~@4", // Am
  R: "[g3,b3,d4]@9 ~@4 [g3,b3]@4 ~ d4@9 ~@3 d4@6 [g3,b3]@6 [g3,b3]@6, ~@10 d4@7 [g3,b3]@10 g3@9 d4@12", // G
  S: "[g3,b3,e4]@9 ~@3 e4@5 ~ [b3,e4]@12 e4@6 ~@6 g3@6, ~@9 g3@8 g3@9 ~@10 [g3,b3]@6 ~@6, ~@37 e4@11", // Em E5 G
  T: "[f3,a3,c4]@6 ~@6 [f3,a3,c4]@6 [f3,a3,c4]@6 [f3,a3,c4]@6 [f3,a3,c4]@6 [f3,a3,c4]@6 [f3,a3,c4]@5 ~", // F
  U: "[g3,c4,e4]@3 [b3,d4,g4]@5", V: "[[b3,e4,g4]@17 ~ a4@29 [g3,c4,e4]@17 ~ [b3,d4,g4]@30 ~, ~@17 [c4,f4]@30 ~@49]/2",
  W: "~@2 g4@15 ~ a4@19 [c4,f4,a4]@5 [c4,f4,a4]@6, [b3,e4]@17 [c4,f4]@20 ~@11", // F E5 F5
  X: "~ e4@10 g3@7 [b3,d4,g4]@30, c4@3 ~@5, ~ g3 ~@46", // G
  Y: "[b3,e4,g4]@11 [e4,g4]@6 ~ a4@10 ~@3 [c4,f4]@5 [c4,f4,a4]@6 [c4,f4,a4]@6, ~@17 [c4,f4]@13 ~@18", // Em F5 F F5
  Z: "[~@11 g3@6 [b3,d4,g4]@29 ~ [b3,e4,g4]@12 [b3,e4]@6 [c4,f4,a4]@30 [g3,c4]@10 e3@3 [e3,g3,c4]@6 b3@18 b3@6 ~@3 [g3,b3]@3, [g3,c4]@11 ~@103 [d3,g3]@30, ~ e4@17 ~@120 e3@6]/3", // G Em E5 F C5 C G C5 …
  AA: "b3@7 b3@5 ~@2 b3@4 [f3,a3,c4]@11 f3@3 [f3,a3]@4 [f3,d4]@6 ~@2 f3@4, [e3,g3]@3 ~@3 a3@2, ~@2 d3 ~@4 [c4,d4]", // F Dm Em Csus2
  AB: "[[g3,c4,e4]@9 ~@3 [c4,e4]@6 [g3,b3]@29 ~ [b3,e4]@17 f4@10 a3@5 ~@3 a3 ~@12 e4@8 ~@3 [c4,e4]@5 ~@2 d4@18 ~@9 g4@3, ~@9 g3@9 d4@46 ~ c4@17 ~@32 b3@30, ~@47 g3@17 ~@31 [g3,c4]@9 g3@5 ~@23 d4@12, ~@23 e4]/3", // C G E5 C C5
  AC: "~@12 g4@5 ~ a4@9 ~@3 f4@6 [c4,f4,a4]@6 [c4,e4,f4,a4]@6, [b3,e4]@8 b3@9 [c4,f4]@13 ~@18, ~ g4@10 e4@7 ~@9 a4@9 ~@12", // F Fmaj7 E5 F5
  AD: "[[c4,e4]@9 ~@3 [c4,e4]@6 ~ d4@8 ~@15 [g3,b3]@5 ~ [b3,e4]@10 ~@2 e4@6 [a3,c4,f4]@9 a3@3 [a3,c4,f4]@6 ~@6 e4@6, ~@9 g3@5 ~@4 [g3,b3]@23 ~@6 g3@10 ~ [g3,b3]@9 ~@17 [a3,c4,f4]@11 ~, ~@35 d4@13 ~@48]/2", // C G E5 F G F
  AE: "[[g3,c4,e4]@10 ~@3 [c4,e4]@6 d4@18 ~@7 g4@3 ~ g4@8 ~@3 [e4,g4]@7 [c4,f4,a4]@9 ~@2 [f4,a4]@7 [c4,f4,a4]@5 ~ [e4,f4,a4]@6, ~@10 g3@9 [g3,b3]@28 b3@8 ~ b3@6 ~@13 c4@9 ~@5 c4@7, ~@37 d4@11 ~@48, ~@41 e4@6 e4@12 ~@37]/2", // C Em F Fmaj7 G
  AF: "[[c4,e4]@9 ~@6 g3@3 ~ d4@17 ~@6 b3@5 ~ [b3,e4]@12 ~ e4@5 [a3,c4,f4]@9 [c4,f4]@3 [a3,c4]@4 ~@3 [a3,c4]@5 [a3,c4,e4]@6, ~@9 g3@6 ~@3 [g3,b3]@24 ~@5 g3@10 ~@39, ~@12 [c4,e4]@6 ~@18 d4@12 ~@12 b3@5 ~@13 f4@7 f4@11]/2", // C E5 F F5 Am G C
  AG: "~@2 g3@7 ~@3 c4@3 g3@4 [b3,d4,g4]@9 ~@2 [b3,d4]@6 ~ g4@5 g4@5 ~, [c4,e4]@9 g3@6 ~@22 [b3,d4]@11, ~@12 e4@6 ~@10 g4@9 ~@11", // G Bm C Bm
  AH: "[b3,e4,g4]@9 [b3,e4]@3 [b3,e4]@2 b3@4 [c4,f4,a4]@9 ~@3 [c4,f4]@6 [c4,a4]@6 [c4,e4,a4]@6, ~@12 g4@7 ~@8 a4@9 f4@12", // Em E5 F F5 F Am
  AI: "g4@8 g4@4 [c4,e4]@6 [b3,d4,g4]@10 ~@2 [b3,d4]@6 g4@6 g4@5 ~, [c4,e4]@12 ~@16 g4@8 [b3,d4]@11 ~", // C G Bm C Bm
  AJ: "[g3,b3,e4]@5 ~@4 [g3,b3,e4]@5 ~@3 [g3,b3,e4]@6 ~ [a3,c4,f4]@24", AK: "~ e4@17 [d4,g4]@30, c4@3 ~@5",
  AL: "~ g4@16 [f4,a4]@15 f4@5 ~@5 [e4,g4]@6, e4@17 ~@20 [f4,a4]@11", // F Em F
  AM: "[c4,e4]@4 ~@2 d4@6 d4@2 ~ d4, ~@18 g4@11 ~@13 g4@6", AN: "[e4,g4]@11 e4@6 ~ f4@18 c4@12, ~@18 a4@11 ~@19",
  AO: "a3@12 a3@5 ~ e4@9 e4@8 ~ [c4,e4]@6 ~@2 c4@3 ~, [c4,e4]@17 [a3,c4]@12 ~@6 a3@7 e4@6", // C Am
  AP: "[g3,b3,d4]@8 ~@5 d4@5 [g3,b3,d4]@8 ~@3 [g3,b3]@7 ~@2 b3@4 ~@2 b3@4, ~@8 d4@5 ~@13 d4@10 ~@6 d4@6, ~@11 g3@7 ~@18 [g3,d4]@8 ~@4", // G G5
  AQ: "~@6 e4@4 ~@2 [b3,e4]@5 ~ [e3,g3,b3,e4]@10 ~@2 [e3,g3,b3]@5 ~@7 [b3,e4]@6, b3@10 ~@25 [b3,e4]@6 ~@7, e4@6 ~@22 e4@7 ~@13, ~ [e3,g3]@4 [e3,g3]@4 ~@9 [e3,g3]@6", // E5 Em E5 Em
  AR: "[f3,a3,c4,e4]@6 [f3,a3,c4,e4]@6 [f3,a3,c4,e4]@6 [f3,a3,c4,e4]@6 [f3,a3,c4,e4]@6 [f3,a3,c4,e4]@6 [f3,a3,c4,e4]@6 [f3,a3,c4,e4]@5 ~", // Fmaj7
})).s("gm_acoustic_guitar_steel").gain(0.4)

// chords · acoustic guitar steel · "Track 2" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B C@2 D E F G H I J K L M N O P Q ~ R S T U V ~@3 W X Y Z AA ~ AB ~ AC AD AE AF AG ~ AH AI AJ AK AL AM ~@2 AN AO AP
  AQ AR AS ~@31
>`.pickRestart({
  A: "~@4 c4@2 ~@9 b3", B: "~@8 b3@10 ~@13 [f3,a3]@5 ~@3 a3@3 ~@3 f3@3, ~@27 c4@10 ~@5 a3@6",
  C: "[~@45 b3@11 b3@4 b3@7 ~@11 [f3,a3]@6 ~@9 g3@3, ~@74 c4@9 ~@9 e3@3 ~]/2", D: "~@8 e3@3 ~@37",
  E: "~@11 b3@6 ~@10 f3@3 f3@2 ~ a3@4 ~@8 g3@2 ~, ~@8 f3 ~@3", F: "~@12 g3@6 ~@25 b3@5",
  G: "~@9 b3@8 ~@11 c4@3 [a3,c4]@6 ~@7 c4@4", H: "~@2 e4 ~@5", I: "~@9 e4@2 ~@23 c4@8 c4@3 e4@3, ~@7 a4",
  J: "~@8 g3@3 g3@6 ~@25 d4@6, ~@5 g3", K: "~@8 b3@6 b3@4 ~@9 c4@3 ~@18", L: "~@7 c4@2 ~@15", M: "~@14 f4@3 ~@31",
  N: "~@7 g3@2 ~@12 g3@3", O: "~@17 a3@2 ~@2 a3@7 a3@20", P: "~@5 g3 ~@10", Q: "~@14 g4@3 ~@22 c4@9",
  R: "~@7 c4@2 a3@3", S: "~@14 e4@4 ~@24 c4@5 ~", T: "~@10 [g3,b3]@3 ~@14 b3@9 ~@12",
  U: "~@3 b3@3 ~@3 [g3,b3]@3 ~@2 b3@2", V: "~ [f3,a3,c4] ~@6", W: "~@7 e4", X: "~@7 g3@4 ~ e4@7 ~@29",
  Y: "~@11 b3@6 ~@11 a4@8 ~@12", Z: "~@11 c4@6 ~@31", AA: "~@9 g4@8 ~@31",
  AB: "~@27 c4@2 ~ c4@2 c4@4 ~@12, ~@29 a3@3 ~@16", AC: "~@17 a3 ~@17 [c4,f4] ~@12", AD: "~@17 g3@31", AE: "~@5 c4 ~@2",
  AF: "~@14 g3@4 ~@9 d4@8 ~@13", AG: "~@9 c4 ~@6", AH: "~@7 b3@2 ~@15", AI: "~@7 g3",
  AJ: "~@9 g3@8 ~@10 a3@3 ~@4 [a3,c4]@3 ~@11", AK: "~@15 c4@4 ~@29", AL: "~@7 e4@2 ~@15", AM: "~@4 g4 [b3,g4] ~@10",
  AN: "~@29 a4@8 ~@11", AO: "~@12 e4@5 ~@12 g4@7 g4@6 ~@6, ~@11 c4@7 ~@30",
  AP: "~@9 g4@9 ~@13 c4@5 [f4,a4]@12, ~@29 a4@7 ~@12", AQ: "~@30 [a3,c4]@6 ~@8 a3@3 ~", AR: "~@11 b3@7 ~@26 g3@4",
  AS: "~@5 b3 ~@18",
})).s("gm_acoustic_guitar_steel").gain(0.24)

// chords · electric guitar jazz · "Track 4"
const electric_guitar_jazz = note("<~@24 A B C D E@2 F@2 ~@54>".pickRestart({
  A: "~ g4@16 ~ [d4,g4]@30, [c4,e4]@17 b3@31", B: "~@2 g4@15 ~ a4@30, ~ [b3,e4]@16 [c4,f4]@31",
  C: "[c4,e4,g4]@17 [b3,d4,g4]@31", D: "~ g4@16 ~ a4@30, [b3,e4]@17 [c4,f4]@31",
  E: "[~ g4@17 [b3,d4,g4]@29 ~ [e4,g4]@17 ~ a4@30, [c4,e4]@18 ~@29 b3@18 [c4,f4]@31]/2", // G Em C F5
  F: "[[c4,e4,g4]@16 ~ [d4,g4]@30 [b3,e4,g4]@17 ~ [c4,f4,a4]@31, ~@8 b3@15 ~@25]/2", // C G5 Em F
})).s("gm_electric_guitar_jazz").gain(0.32)

// chords · overdriven guitar · "Track 6"
const overdriven_guitar = note("<~@55 A B C D E D F D E G C D H D F D I G C D H D F D I G C D J@3>".pickRestart({
  A: "[a3,c4,f4]", B: "[c3,g3,c4,e4]@17 ~ [b3,d4]@24 [b3,d4,g4]@6, ~@17 g2@31, ~@17 g4@24 ~@7",
  C: "[e2,g3,b3,e4]@16 ~ [f2,a3,c4,f4]@25 [g2,b3,d4,g4]@6", // Em F G
  D: "[c3,g3,c4,e4]@17 ~ [b3,d4,g4]@24 [b3,d4,g4]@6, ~@17 g2@31", // C G
  E: "[e2,g3,b3,e4]@17 [f2,a3,c4,f4]@24 ~ [g2,b3,d4,g4]@6", F: "[e2,g3,b3,e4]@17 [f2,a3,c4,f4]@24 ~ [g2,b3,d4,g4]@5 ~",
  G: "[c3,g3,e4]@17 ~ [b3,d4]@24 [b3,d4,g4]@6, ~@17 g2@31, ~@17 g4@24 ~@7", // C Bm G
  H: "[e2,e3,g3,b3]@6 ~@3 [e2,e3,g3,b3]@8 ~ [e2,e3,g3,b3]@3 ~@3 [f2,f3]@18 g4@6, ~ [a3,c4]", // Em F Am
  I: "[e2,e3,g3,b3]@6 ~@3 [e2,e3,g3,b3]@3 ~@6 [e2,e3,g3,b3]@3 ~@21 g4@5 ~, ~@24 [f2,f3,a3,c4]@23 ~", // Em F
  J: "[[e2,e3,g3,b3]@6 ~@3 [e2,e3,g3,b3]@8 ~ [e2,e3,g3,b3]@3 ~@3 [a3,c4]@96 ~@24, ~@4 [f2,f3]@3 ~@17]/3", // Em Am F
})).s("gm_overdriven_guitar").gain(0.63)

// other · timpani · "Track 7"
const timpani = note("<~@55 [f2!16] ~@30>").s("gm_timpani").gain(0.44)

// bass · electric bass finger · "Track 8"
const bass = note("<~@55 A B C B D E D F G B C B H E D F H B C B H E D F H B C B H ~@2>".pickRestart({
  A: "f1!8", B: "c2@3 c2!2 ~ g1@8 e1 g1", C: "e1@3 e1 ~@2 f1@3 f1 f1@2 ~@2 g1 ~, ~@18 e1 ~@23 f1 ~@5",
  D: "e1@3 e1 e1@2 f1@3 f1@3 f1@2 g1 ~", E: "c2@3 c2!2 ~ g1@6 g1@2 e1 g1", F: "c2@3 c2!2 g1@7 g1@2 e1 g1",
  G: "e1@3 e1!2 ~ f1@3 f1@3 f1 ~ g1 ~", H: "e1@2 ~ e1 ~@2 e1 ~ f1@5 ~ g1@2",
})).s("gm_electric_bass_finger").gain(0.79)

// drums · kick
const kick = s("bd").struct("<~@56 A@11 B A@3 B C A@2 B A@3 B C A@2 B D ~>".pickRestart({
  A: "x ~@4 x ~@3 x ~@14", B: "x ~@2 x ~@2 x ~ x ~@7", C: "~@5 x ~@3 x ~@14", D: "x",
})).gain(0.79)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@55 [x!8] ~@30>").gain(0.47)

// drums · snare
const snare = s("sd").struct("<~@55 A B@3 C B@3 D B@2 C E B@2 F E B@3 E B@2 F E B@2 C E ~@2>".pickRestart({
  A: "x!16", B: "~ x ~ x", C: "~@4 x ~@4 x!4 ~@3", D: "~@4 x ~@4 x ~ x!2 ~@3", E: "x ~@2 x ~@2 x ~ x!5 ~@3",
  F: "~@4 x ~@3 x!2 ~ x!3 ~@2",
})).gain(0.79)

// drums · low tom
const low_tom = s("lt").struct("<~@59 A ~@3 B ~@2 B@2 ~@2 C B ~@3 B ~@2 C B ~@2 B@2 ~@2>".pickRestart({
  A: "~@14 x!2", B: "~@15 x", C: "~@10 x ~@3 x!2",
})).gain(0.79)

// drums · hihat
const hihat = s("hh").struct("<~@56 A@11 ~ A@3 ~ B A@2 ~ A@2 C ~ B A@2 ~ D ~>".pickRestart({
  A: "x ~@2 x ~ x ~@3 x ~ x!2 ~ x!2 ~ x ~@2 x!2 ~ x", B: "~@3 x ~ x ~@3 x ~ x!2 ~ x!2 ~ x ~@2 x!2 ~ x",
  C: "x ~@2 x ~ x ~@3 x ~ x!2 ~ x!2 ~ x ~@6", D: "x",
})).gain(0.47)

// drums · mid tom
const mid_tom = s("mt").struct("<~@59 A ~@3 B ~@2 B@2 ~@3 B ~@3 B ~@3 B ~@2 B@2 ~@2>".pickRestart({
  A: "~@12 x!2 ~@2", B: "~@11 x!4 ~",
})).gain(0.79)

// drums · crash
const crash = s("cr").struct("<~@56 A ~@3 A ~@2 A@2 ~@2 B A ~@2 B A ~@2 B A ~@2 B A ~@2 B A ~>".pickRestart({
  A: "x", B: "x ~@2 x ~@2 x ~ x ~@7",
})).gain(0.79)

// drums · ride
const ride = s("rd").struct("<~@56 A B A@3 B A@3 B A ~ A B A ~ C B A ~ A B@2 ~ C B A ~ D ~>".pickRestart({
  A: "x ~@4 x ~@3 x ~@5 x ~@5 x ~@2", B: "x ~@4 x ~@3 x ~@5 x ~@8", C: "~@5 x ~@3 x ~@5 x ~@5 x ~@2", D: "x",
})).gain(0.63)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@57 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@4>".pickRestart({
  A: "~@7 x",
})).gain(0.39)

// drums · tambourine
const tambourine = s("tb").struct("<~@56 A@11 ~ A@3 ~ A@3 ~ A@2 B ~ A@3 ~@3>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.79)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_jazz, overdriven_guitar, timpani, bass, kick,
  kick_soft, snare, low_tom, hihat, mid_tom, crash, ride, ride_soft, tambourine
)

More by LIGABUE