Strudelify
Bijuteria cover art

Sonhos, Amores e Sucessos

Bijuteria

Bruno

KeyA minorTempo71 bpm
0:00/0:00
// Bijuteria — Bruno
// 71 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 6 acoustic guitar nylon (copy of ch 5 acoustic guitar nylon)
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 32 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(71/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(`<
  ~@10 A B C D E F A G C H D I E J A G C K D I E L A G M N O P M N O A C H D I E J A G C H D I E J A G C K D I E L A G M
  N O P M N O A M N O P M N Q@2 ~@3
>`.pickRestart({
  A: "a1@5 ~ a1 ~ a1@7 ~", B: "g1@5 ~ g1 ~ g1@7 ~", C: "d2@5 ~ d2 ~ d2@7 ~", D: "c2@5 ~ c2 ~ c2@7 ~",
  E: "b1@5 ~ b1 ~ b1@7 ~", F: "e1@5 ~ e1 ~ e1@7 ~", G: "a1@5 ~ a1 ~ b1@3 ~ c#2@3 ~", H: "g1@5 ~ g1 ~ g1@8",
  I: "f1@5 ~ f1 ~ f1@8", J: "e2@5 ~ e2@2 e1@5 ~ e1 ~", K: "g1@5 ~ g1@2 b1@7 ~", L: "e1@5 ~ e1@2 e2@4 e1@3 ~",
  M: "d2@6 d2 ~ g1@5 ~ g1 ~", N: "c2@5 ~ c2 ~ f1@5 ~ f1 ~", O: "b1@5 ~ b1 ~ e2@5 ~ e2 ~",
  P: "a1@5 ~ a1 ~ a1@3 ~ b1@2 c#2@2", Q: "[b1@5 ~ b1 ~ e1@23 ~]/2",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D E F G H I J K L M@2 N O@2 P Q R S T U V W X Y Z AA AB AC AD W AE AF AG AH AI AF AJ AK AL Q R S T U V W X Q R S
  T U V W X Y Z AA AB AC AD W AE AF AG AH AI AF AJ AK AL AF AG AH AI AF AJ AM@2 AN AO@2
>`.pickRestart({
  A: "[c4,e4,a4]@4 [c4,e4,a4]@3 ~ [b3,e4,a4]@4 [b3,e4,a4]@3 ~, a2@7 ~ a2@7 ~", // Am Esus4
  B: "[c4,e4,a4]@4 [c4,e4,a4]@3 ~ [a2,b3,e4,a4]@7 ~, a2@7 ~@9", // Am Asus2
  C: "[c4,e4,a4]@4 c4 ~ c4@2 [c4,e4,a4]@4 c4 ~ c4 ~, a2@7 ~ a2@8, ~ [e4,a4] ~ [e4,a4]", // Am A5
  D: "[c4,e4,a4]@4 c4 ~ c4@2 c4@2 c4@2 [e4,a4]@2 c4 ~, g2@7 ~ g2@8, ~@4 [e4,a4]@4 [e4,a4]@4 c4 ~@3", // Am A5
  E: "[d4,f4,a4]@4 d4 ~ d4@2 d4@2 d4 ~ [f4,a4]@2 d4@2, d3@7 ~ d3@8, ~@4 [f4,a4]@4 [f4,a4]@4 d4 ~@3", // Dm F
  F: "d4@2 d4@2 d4@2 d4 ~ d4@2 d4@2 [d4,f4,a4]@2 d4 ~, c3@7 ~ c3@8, [f4,a4]!3 ~", // Dm F
  G: "[d4,f4,a4]@2 d4 ~ d4 ~ d4 ~ [d4,f4,a4]@2 d4 ~ [d4,f4,a4]@2 ~@2, b2@8 b2@7 ~, ~ [f4,a4] ~@2", // Dm F
  H: "[b3,e4,g#4]@4 b3 ~ b3 ~ b3@2 b3@2 b3 ~ b3 ~, e2@7 ~ e2@8, ~ [e4,g#4]!3", // E
  I: "[c4,e4,a4]@4 c4@2 c4 ~ c4@2 c4 ~ [e4,a4]@2 c4 ~, a2@7 ~ a2@8, ~@4 [e4,a4]@4 [e4,a4]@4 c4 ~@3", // Am A5
  J: "d4 ~ d4@2 [d4,f4,a4]@2 d4 ~ [f#2,a3,d4,f#4]@3 ~ [g#2,b3,e4,g#4]@2 ~@2, d3 ~, [f4,a4] ~@3", // Dm D E F
  K: "[c4,e4,a4]@3 ~ c4@2 ~@3 [c4,e4,a4]@2 ~ [c4,e4,a4]@3 ~, c3@15 ~, [e3,a3]@6 c4@3 ~@7, ~@4 [e4,a4]@5 ~@7, ~@7 [e3,a3]@8 ~", // Am A5
  L: "[c4,e4,a4]@4 [c4,e4,a4]@2 ~@3 [c4,e4,a4]@2 ~ [c4,e4,a4]@3 ~, a3, [c3,e3]@3 [c4,e4,a4] ~@4, ~@7 [c3,e3]@7 ~@2", // Am C Am C
  M: "[d4,f4,a4]@4 [d4,f4,a4]@2 ~@3 [d4,f4,a4]@3 [d4,f4,a4]@3 ~, [d3,f3,a3]@3 [d4,f4,a4] ~@4, ~@7 [d3,f3,a3]@8 ~", // Dm
  N: "[d4,f4,a4]@4 [d4,f4,a4]@2 ~@3 [d4,f4,a4]@3 [d4,f4,a4]@3 ~, [d3,f3,a3]@3 [d4,f4,a4] ~@4, ~@7 [d3,f3,a3]@7 ~@2", // Dm
  O: "[[b3,e4,g#4]@4 [b3,e4,g#4]@2 ~@3 [b3,e4,g#4]@2 ~ [b3,e4,g#4]@3 ~ [c4,e4,a4]@3 ~ [c4,e4,a4]@2 ~@3 [c4,e4,a4]@2 ~ [c4,e4,a4]@3 ~, [b2,e3,g#3]@6 [b3,e4,g#4]@3 ~@13 [c4,e4,a4]@2 ~@8, ~@7 e3@16 ~@9, ~@7 [b2,g#3]@8 ~ [c3,a3]@7 [c3,e3,a3]@8 ~]/2", // E Am E Am E F Am
  P: "[a3,c#4,e4]@4 [a3,c#4,e4]@2 a3@2 [b3,d4]@3 ~ [c#4,e4]@2 ~@2, [a2,c#3,e3]@7 ~", // A Bm C#m A
  Q: "[d4,f4,a4]@4 a4@3 a4@2 [d4,f4,a4]@3 [d4,f4,a4]@3 ~, ~@4 [d4,f4]@5 ~@7", // Dm
  R: "[d4,g4,b4]@4 [d4,g4,b4]@3 [g4,b4]@2 [g4,b4]@3 [d4,g4,b4]@3 ~, ~@7 d4@4 ~@5", // G
  S: "[c4,e4,g4,b4]@4 [e4,g4,b4]@2 c4 [c4,e4,g4,b4]@2 [c4,e4,g4,b4]@3 [c4,e4,g4,b4]@2 ~@2, ~@4 c4 ~@11", // Cmaj7 Em Cmaj7
  T: "[c4,e4,f4,a4]@3 ~ [c4,e4,f4,a4]@2 c4 [c4,e4,f4,a4]@2 [c4,e4,f4,a4]@3 [c4,e4,f4,a4]@3 ~", // Fmaj7
  U: "[b3,d4,f4]@4 [b3,d4,f4]@3 [b3,d4,f4]@2 [b3,d4,f4]@2 ~ [b3,d4,f4]@3 ~", // Bdim
  V: "[b3,d4,e4,g#4]@3 ~ [d4,e4]@2 [b3,e4,g#4] [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@3 [b3,d4,e4,g#4]@3 ~, ~@4 [b3,g#4] ~@11", // E7 Dsus2 E E7 E
  W: "[c4,e4,a4]@3 ~ [c4,e4,a4]@3 [c4,e4,a4]@2 [c4,e4,a4]@3 [c4,e4,a4]@2 ~@2", // Am
  X: "[a3,c#4,e4]@4 [a3,c#4,e4]@2 [a3,c#4,e4] ~ [b3,d4]@3 ~ [c#4,e4]@3 ~", // A Bm C#m
  Y: "[d4,f4,a4]@3 ~ [d4,f4,a4]@3 [d4,f4,a4]@2 [d4,f4,a4]@2 ~ [d4,f4,a4]@2 d4 ~", // Dm
  Z: "[d4,g4,b4]@3 ~ [d4,g4,b4]@3 [d4,g4,b4]@2 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~@2", // G
  AA: "[c4,e4,g4,b4]@4 [c4,e4,g4]@2 b4 [c4,e4,g4,b4]@2 [c4,e4,g4,b4]@2 ~ [c4,e4,g4,b4]@2 ~@2, ~@4 b4 ~@11", // Cmaj7 C Cmaj7
  AB: "[c4,e4,f4,a4]@4 [c4,e4,f4,a4]@3 [c4,e4,f4,a4]@2 [c4,e4,f4,a4]@2 ~ [c4,e4,f4,a4]@3 ~", // Fmaj7
  AC: "[b3,d4,f4]@3 ~ [b3,d4,f4]@3 [b3,d4,f4]@2 [b3,d4,f4]@2 ~ [b3,d4]@3 ~, ~@12 f4 ~@3", // Bdim Bm
  AD: "[b3,d4,e4,g#4]@4 [b3,d4,e4,g#4]@2 ~ [d4,e4,g#4]@2 [d4,e4,g#4]@3 [b3,d4,e4,g#4]@3 ~, ~@7 b3@4 ~@5", // E7
  AE: "[a3,c#4,e4]@4 [a3,c#4,e4] ~ [a3,c#4]@2 [b3,d4]@3 ~ [c#4,e4]@2 ~@2", // A Bm C#m
  AF: "[d4,f4,a4]@3 ~ [d4,f4,a4]@2 d4 [d4,g4,b4]@2 [d4,g4,b4]@2 ~ [d4,g4,b4]@2 d4 ~", // Dm G
  AG: "[c4,e4,g4,b4]@4 [c4,e4,g4,b4]@2 c4 [c4,e4,f4,a4]@2 [c4,e4,f4,a4]@2 ~ [c4,e4,f4,a4]@3 ~", // Cmaj7 Fmaj7
  AH: "[b3,d4,f4]@4 [b3,d4,f4]@2 ~ [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@3 [b3,d4,e4,g#4]@2 b3 ~", // Bdim E7
  AI: "[c4,e4,a4]@3 ~ [c4,e4,a4]@3 ~ [c#4,e4,a4]@4 [c#4,e4,a4]@2 ~@2", // Am A
  AJ: "[c4,e4,g4,b4]@3 ~ [c4,e4,g4,b4]@2 c4 [c4,e4,f4,a4]@2 [c4,e4,f4,a4]@2 ~ [c4,e4,f4,a4]@2 c4 ~", // Cmaj7 Fmaj7
  AK: "[b3,d4,f4]@3 ~ [b3,d4,f4]@2 b3 [b3,d4,e4,g#4]@2 [b3,d4,e4,g#4]@2 ~ [b3,d4,e4,g#4]@3 ~", // Bdim E7
  AL: "[c4,e4,a4]@4 [c4,e4,a4]@2 c4 [a3,c#4,e4]@2 [a3,c#4,e4]@3 [a3,c#4,e4]@2 ~@2", // Am A
  AM: "[[b3,d4,f4]@3 ~ [b3,d4,f4]@2 b3 ~ [b2,d3,e3,b3,d4,e4,g#4]@21 ~@3]/2", // Bdim E7
  AN: "[a2,c4,e4,a4]@7 ~ [b2,b3,d4]@8, ~@4 f4@3 ~", AO: "[[e2,b3,d4,e4]@3 ~ [a2,a3,b3,c4,e4]@8 ~@4]/2",
})).s("gm_acoustic_guitar_steel").gain(0.4).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  A B C D E F G H I J K L M@3 N L O P@2 Q R S T L U M V W R S T L X Y Z AA AB Y AC AD AE P@2 Q R S T L U P@2 Q R S T L U
  M V W R S T L X Y AF AA AB Y AC AD AE Y Z AA AB Y AC AG@2 AH AI@2
>`.pickRestart({
  A: "[a3,c4,e4]@2 a3 ~ [b3,e4]@2 [a3,b3,e4] a3, ~ [c4,e4] ~@2, ~@3 a3@3 ~@2", // Am E5 Asus2 C
  B: "~@4 [c4,e4]@2 a3 ~ [a3,b3,e4]@7 ~, [c4,e4] ~@3, ~ a3@2 ~@5", // C Asus2 C
  C: "a3@2 ~@2 [c4,e4]@4 ~@4 [c4,e4]@3 ~, [c4,e4] ~ [c4,e4] ~, ~@2 a3@8 a3@5 ~", // C
  D: "[c4,e4]@2 ~@2 e4@2 e4 ~, a3@6 a3@9 ~, ~@2 e4@2 c4@3 ~", // C
  E: "[f3,a3,d4]@4 [f3,a3,d4]@4 d4@4 d4@3 ~, ~@8 [f3,a3]@7 ~", F: "[a3,d4]@4 [a3,d4]@4 [a3,d4]@7 ~, f3@15 ~",
  G: "d4@4 d4@4 [a3,d4]@4 [f3,a3,d4]@3 ~, f3@3 ~, a3 ~", H: "[g#3,b3]@2 [g#3,b3]@2 [g#3,b3]@2 [g#3,b3] ~, e3@7 ~",
  I: "[c4,e4]@2 [c4,e4]@2 e4@2 e4 ~, a3@4 [a3,c4]@3 ~", // C Am
  J: "[f3,a3,d4]@4 [f3,a3,d4]@2 ~@2 [d3,f#3,a3]@3 ~ [e3,g#3,b3]@2 ~@2", K: "a3@4 a3@3 ~ [c3,e3,a3]@7 ~, [c3,e3] ~",
  L: "[c3,e3,a3]@7 ~ [c3,e3,a3]@7 ~", M: "[d3,f3,a3]@7 ~ [d3,f3,a3]@7 ~", N: "[e3,g#3,b3]@6 ~@2 [e3,g#3,b3]@7 ~",
  O: "c#3@3 ~ d3@2 e3 ~, e3@3 ~, a3@3 ~@3 c#3@8 ~@2",
  P: "[[d3,f3,a3]@7 ~ a3@6 a3 ~ [g3,b3]@7 ~ [d3,g3,b3]@6 ~@2, ~@8 d3@15 ~@9, ~ f3 ~@2]/2", // Dm G
  Q: "[c3,e3,g3,b3]@7 ~ [c3,e3,g3,b3]@7 ~", R: "[c3,e3,f3,a3]@7 ~ [c3,e3,f3,a3]@6 ~@2",
  S: "[b2,d3,f3]@7 ~ [b2,d3,f3]@7 ~", T: "[b2,d3,e3]@7 ~ [b2,d3,e3,g#3]@6 ~@2",
  U: "e3@5 ~@3 a3@4 [e3,a3]@3 ~, a3@3 ~@3 e3@6 ~@4", V: "[d3,g3,b3]@7 ~ [d3,g3,b3]@5 ~@3",
  W: "[c3,e3,g3,b3]@8 [c3,e3,g3]@7 ~, c4@3 ~@5 b3@5 ~@3", X: "[e3,a3]@5 ~@3 a3@4 a3@2 ~@2, ~@3 e3@4 ~",
  Y: "[d3,f3,a3]@4 [d3,f3,a3]@3 ~ [d3,g3,b3]@4 [d3,g3,b3]@3 ~", // Dm G
  Z: "[c3,e3,g3,b3]@4 [c3,e3,g3,b3]@2 ~@2 [e3,f3,a3]@3 ~ [c3,e3,f3,a3]@2 c3 ~, ~@3 c3@3 ~@2", // Cmaj7 Fmaj7
  AA: "[b2,d3,f3]@4 [b2,d3]@4 [b2,d3,e3,g#3]@3 ~ [b2,d3,e3,g#3]@3 ~, ~@2 f3 ~@5", // Bdim Bm E7
  AB: "[c3,e3,a3]@4 [c3,e3,a3]@3 ~ [c#3,e3]@3 ~ [c#3,e3]@3 ~, ~@8 a3@7 ~", // Am C#m
  AC: "[c3,e3,g3,b3]@4 [c3,e3,g3,b3]@2 c3@2 [c3,e3,f3,a3]@3 ~ [c3,e3,f3,a3]@3 ~", // Cmaj7 Fmaj7
  AD: "[b2,d3,f3]@4 [b2,d3,f3]@3 ~ [b2,d3,g#3]@3 ~ [b2,d3,e3,g#3]@3 ~", // Bdim G#dim E7
  AE: "[c3,e3,a3]@4 [c3,e3,a3]@3 ~ [c#3,e3]@3 ~ [c#3,e3]@2 ~@2, ~@4 a2@3 ~", // Am C#m
  AF: "[c3,e3,g3,b3]@3 ~ [c3,e3,g3,b3]@2 ~@2 [e3,f3,a3]@3 ~ [c3,e3,f3,a3]@2 c3 ~, ~@3 c3@3 ~@2", // Cmaj7 Fmaj7
  AG: "[[b2,d3,f3]@4 [b2,d3,f3]@3 ~ [b2,d3,e3]@21 ~@3]/2", AH: "[c3,e3,a3]@3 ~ [b2,d3,f3]@3 ~",
  AI: "[[b2,d3,e3]@3 ~ a3@8 ~@4, ~@4 c3@7 ~@5]/2", // E7
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.3)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@10 A B@2 C@2 D@3 E@2 F@4 G@2 H I@3 J@3 K L M N O@2 P@3 E@2 F@4 G@2 E@2 F@4 G@2 H I@3 J@3 K L M N O@2 P@3 L M N O@2
  Q@3 ~@3
>`.pickRestart({
  A: "[c4,e4,a4]@15 ~", B: "[[c4,e4]@15 ~ [d4,f4]@15 ~, a4]/2", C: "[[f4,a4]@15 ~ [f4,a4]@16, d4@19 ~@13]/2",
  D: "[g#4@15 ~ c4@16 c#4@5 ~ a3@2 [b3,d4]@3 ~ [c#4,e4]@2 ~@2, e4@19 ~@19 c#4 ~@9, ~@8 a4@9 ~@7]/3", // Bm C#m
  E: "[[f4,a4]@15 ~ [g4,b4]@15 ~, d4@19 ~@13]/2", // F G
  F: "[[e4,g4,b4]@15 ~ [e4,a4]@15 ~ d4@15 ~ e4@8 [e4,g#4]@7 ~, c4@19 ~@13 b3@19 ~@13, ~@16 f4@30 ~@2 d4@15 ~]/4", // Em A5 E
  G: "[[c4,a4]@16 [a3,c#4]@5 ~ c#4@2 [b3,d4]@4 [c#4,e4]@3 ~, e4@19 ~@3 a3 ~@9]/2", H: "[f4,a4]!2, d4",
  I: "[[b3,d4]@15 ~ [c4,e4]@7 ~ [e4,b4]@7 ~ [e4,f4,a4]@16, g4@19 ~@5 c4@11 ~@13]/3", // Bm C E5 Fmaj7
  J: "[[d4,f4]@15 ~ [d4,g#4]@15 ~ [c4,a4]@15 ~, b3@19 ~@29, ~@16 e4@19 ~@13]/3", // Dm Ddim F
  K: "[a3,c#4,e4]@5 ~ a3@2 [b3,d4]@3 ~ [c#4,e4]@2 ~@2, ~@6 c#4 ~@9", L: "[f4,a4]@7 ~ [g4,b4]@7 ~, d4@15 ~",
  M: "[e4,g4,b4]@7 ~ [e4,f4,a4]@7 ~, c4", N: "[b3,d4,f4]@7 ~ [b3,d4,e4,g#4]@7 ~",
  O: "[[c4,e4,a4]@8 e4@7 ~ [d4,f4]@7 ~ [d4,g4,b4]@8, ~@8 a4@11 ~@13]/2", // Am Dm G
  P: "[[e4,g4,b4]@7 ~ [e4,a4]@7 ~ [b3,d4]@7 ~ b3@7 ~ [c4,a4]@8 ~@4 c#4@3 ~, c4@5 ~@11, ~@8 f4@16 e4@16 [e4,a4]@7 ~]/3", // Em A5 Bm F A5
  Q: "[[e4,g4,b4]@7 ~ [e4,a4]@7 ~ [b3,d4]@7 ~ [b3,d4,e4,g#4]@21 ~@3, c4@5 ~@11, ~ f4@2 ~@3]/3", // Em A5 Bm E7
})).s("gm_string_ensemble_2").gain(0.25)

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

// drums · rim
const rim = s("rim").struct("<~@10 [~ x ~ x]!8 [~ x ~@2]!15 ~@9 [~ x ~@2]!23 ~@20>").gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@18 A@15 B C@7 D A@23 B C@7 D C@6 E ~@4>".pickRestart({
  A: "~@3 x", B: "~@2 x ~@2 x ~@2", C: "~ x ~ x", D: "~@2 x ~@4 x", E: "~ x ~@2",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@33 A ~@7 B ~@23 A ~@7 B ~@11>".pickRestart({
  A: "~@7 x", B: "~@12 x!3 ~",
})).gain(0.5)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@9 A ~@27 A ~@31 A ~@7 A ~@7>".pickRestart({
  A: "~@7 x",
})).gain(0.3)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@10 A B A@2 C D E F B A E B A@3 G A@3 B H A@2 F I J I K A L A G B A E B A@3 G B A E B A@3 G A@3 B H A@2 F I J I K A L
  A G I J I K A L M ~@4
>`.pickRestart({
  A: "x!7 ~", B: "x!5 ~ x ~", C: "x!6 ~ x", D: "~ x!7", E: "x!8", F: "x!2 ~ x!2 ~ x ~", G: "x!4 ~ x ~@2",
  H: "x!5 ~ x!2", I: "x!3 ~ x!4", J: "x ~ x ~ x!4", K: "x!3 ~ x!2 ~@2", L: "x!6 ~@2", M: "x!4 ~@4",
})).gain(0.45)

// drums · mid tom
const mid_tom = s("mt").struct("<~@9 A ~@7 B ~@15 C ~@3 D ~@3 E ~@23 C ~@3 D ~@3 E ~@3 D ~@7>".pickRestart({
  A: "~@6 x!2", B: "~@3 x", C: "~@12 x!2 ~@2", D: "~@5 x!3", E: "~@5 x!2 ~",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@10 A B A@2 C D ~ E B A ~ B A@3 F A@3 B G A@2 E H I H J A K A F B A ~ B A@3 F B A ~ B A@3 F A@3 B G A@2 E H I H J A K
  A F H I H J A K ~@5
>`.pickRestart({
  A: "~@7 x", B: "~@5 x ~ x", C: "~@3 x", D: "x", E: "~@2 x ~@2 x ~ x", F: "~@4 x ~ x!2", G: "~@5 x ~@2",
  H: "~@3 x ~@4", I: "~ x ~ x ~@4", J: "~@3 x ~@2 x!2", K: "~@6 x!2",
})).gain(0.45)

// drums · high tom
const high_tom = s("ht").struct("<~@37 [~@5 x ~@2] ~@31 [~@5 x ~@2] ~@7 [~@5 x ~@2] ~@7>").gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@10 A@2 B C D@4 A E F G@4 D@8 H D@8 A E F G@4 D A E F G@4 D@8 H D@8 ~@11
>`.pickRestart({
  A: "x!4", B: "x!3 ~ x!3 ~", C: "~ x!7", D: "x!8", E: "~ x!2 ~@3 x!2", F: "x!5 ~ x!2", G: "x ~ x!6", H: "x!7 ~",
})).gain(0.25)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@10 A B C D ~@4 B E F G@4 ~@17 B E F G@4 ~ B E F G@4 ~@28>".pickRestart({
  A: "~@3 x ~ x ~ x", B: "~ x ~ x ~ x ~ x", C: "~@3 x ~@3 x", D: "x", E: "x ~@2 x!3 ~@2", F: "~@5 x ~@2", G: "~ x ~@6",
})).gain(0.15)

// drums · splash
const splash = s("cr").struct("<~@10 A ~@7 A ~@15 A ~@3 A ~@3 A ~@7 A ~@15 A ~@3 A ~@3 A ~@3 A ~ B ~@4>".pickRestart({
  A: "x", B: "~ x",
})).gain(0.5)

// drums · ride
const ride = s("rd").struct("<~@34 A@4 B A C D ~@24 A@4 B A C D A@4 B A E F ~@3>".pickRestart({
  A: "x!8", B: "x ~ x!6", C: "x!5 ~ x!2", D: "x!7 ~", E: "x ~ x ~ x ~ x ~@2 x!7", F: "x!2 ~@6",
})).gain(0.35)

stack(
  bass, acoustic_guitar_steel, acoustic_guitar_steel_2, string_ensemble_2, kick, rim, snare, low_tom, low_tom_soft,
  hihat, mid_tom, open_hat, high_tom, tambourine, tambourine_soft, splash, ride
)

More by Bruno