Strudelify

A Banda

Alpert

KeyF majorTempo124 bpm
0:00/0:00
// A Banda — Alpert
// 124 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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 · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@6 A B A B A@2 C D E D F D G D H I J K L M N O P I J K L Q R S T@3 U I J K L Q R V W X Y X Z X Y AA AB AA AB AC AD AE
  AF AG AD AE AF AH
>`.pickRestart({
  A: "~@2 [f3,a3,db4,f4,a4] ~ a3 ~ [f3,a3,db4,f4,a4] ~@3 [f3,a3,db4,f4,a4] ~@3 [f3,a3,db4,f4,a4] ~", // Faug
  B: "~@2 [f3,a3,db4,f4,a4] ~@3 [f3,a3,db4,f4,a4] ~@3 [f3,a3,db4,f4,a4] ~@3 [f3,a3,db4,f4,a4] ~", // Faug
  C: "~@2 [f3,a3,db4,f4,a4] ~@3 [f3,a3,db4,f4,a4] ~@3 [g3,bb3,c4,e4]@2 ~@2 [g3,bb3,c4,e4] ~", // Faug C7
  D: "~@2 [g3,bb3,c4,e4]@2 ~@2 [g3,bb3,c4,e4] ~@3 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~", // C7 F
  E: "~@2 [a3,c4,gb4]@2 ~@2 [a3,c4,gb4] ~@3 [g3,bb3,d4]@2 ~@2 [g3,bb3,d4] ~", // Gbdim Gm
  F: "c4 ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~@3 [g3,bb3,c4,e4]@2 ~@2 [g3,bb3,c4,e4] ~", // F C7
  G: "~@2 [a3,c4,gb4]@2 ~@2 [a3,c4,gb4] ~@3 [g3,bb3,d4,f4]@2 ~@2 [g3,bb3,d4,f4] ~", // Gbdim Gm7
  H: "~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~@3 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~", // F
  I: "~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~@3 [g3,bb3,e4]@2 ~@2 [g3,bb3,e4] ~", // F Edim
  J: "~@2 [g3,bb3,e4]@2 ~@2 [g3,bb3,e4] ~@3 [a3,c4,eb4,f4]@2 ~@2 [a3,c4,eb4,f4] ~", // Edim F7
  K: "~@2 [a3,c4,eb4,f4]@2 ~@2 [a3,c4,eb4,f4] ~@3 [f3,bb3,d4]@2 ~@2 [f3,bb3,d4] ~", // F7 Bb
  L: "~@2 [f3,bb3,d4]@2 ~@2 [f3,bb3,d4] ~@3 [g3,db4,e4]@2 ~@2 [g3,db4,e4] ~", // Bb Dbdim
  M: "~@2 [g3,db4,e4]@2 ~@2 [g3,db4,e4] ~@3 [a3,d4,f4] ~@3 [a3,d4,f4] ~", // Dbdim Dm
  N: "~@2 [a3,d4,f4]@2 ~@2 [a3,d4,f4] ~@3 [f3,b3,d4,e4]@2 ~@2 [f3,b3,d4,e4] ~", // Dm Bdim
  O: "~@2 [f3,b3,d4]@2 ~@2 [f3,b3,d4] ~@3 [g3,bb3,e4]@2 ~@2 [g3,bb3,e4] ~", // Bdim Edim
  P: "[g3,bb3,e4] ~@9 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~", // Edim F
  Q: "~@2 [g3,db4,e4]@2 ~@2 [g3,db4,e4] ~@3 [a3,d4,f4]@3 ~ [a3,d4,f4] ~", // Dbdim Dm
  R: "~@2 [a3,c4,gb4]@4 [a3,c4] ~ g3 ~ [g3,bb3,d4]@3 ~ [g3,bb3,d4] ~", // Gbdim Am Gm
  S: "~@2 [g3,bb3,e4]@2 ~@2 [g3,bb3,e4] ~@3 [a3,db4,f4,a4] ~@3 [a3,db4,f4,a4] ~", // Edim Aaug
  T: "~@2 [a3,db4,f4,a4] ~@3 [a3,db4,f4,a4] ~@3 [a3,db4,f4,a4] ~@3 [a3,db4,f4,a4] ~", // Aaug
  U: "~@2 [a3,db4,f4,a4] ~@3 [a3,db4,f4,a4] ~@3 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~", // Aaug F
  V: "~@2 [g3,bb3,e4]@2 ~@2 [g3,bb3,e4] ~ [f3,a3]@2 ~@6", W: "~@10 [ab3,b3,db4,f4]@2 ~@2 [ab3,b3,db4,f4] ~",
  X: "~@2 [ab3,b3,db4,f4]@2 ~@2 [ab3,b3,db4,f4] ~@3 [bb3,db4,gb4]@2 ~@2 [bb3,db4,gb4] ~", // Db7 Gb
  Y: "~@2 [bb3,db4,g4]@2 ~@2 [bb3,db4,g4] ~@3 [ab3,b3,eb4,gb4]@2 ~@2 [ab3,b3,eb4,gb4] ~", // Gdim Abm7
  Z: "~@2 [bb3,db4,gb4]@2 ~@2 [bb3,db4,gb4] ~@3 [ab3,b3,db4,f4]@2 ~@2 [ab3,b3,db4,f4] ~", // Gb Db7
  AA: "~@2 [ab3,b3,db4,f4]@2 ~@2 [ab3,b3,db4,f4] ~@3 [bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~, ~@8 gb2@7 ~", // Db7 Gb
  AB: "~@2 [bb3,db4,g4]@3 ~ [bb3,db4,g4] ~@3 [ab3,b3,eb4,gb4]@2 ~@2 [ab3,b3,eb4,gb4] ~, eb2@3 ~@5", // Gdim Abm7
  AC: "~@2 [ab3,b3,db4,f4]@2 ~@2 [ab3,b3,db4,f4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~", // Db7 Gb Daug Gb Daug
  AD: "[gb3,bb3]@2 [d4,gb4,bb4] [gb3,bb3] [gb4,bb4] bb3 [gb3,d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~", // Gb Daug Gb Gbaug Gb Daug Gb Daug
  AE: "[gb3,bb3]@2 [d4,gb4,bb4] [gb3,bb3] [gb4,bb4] [gb3,bb3] [d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~", // Gb Daug Gb Daug Gb Daug Gb Daug
  AF: "[gb3,bb3]@2 [d4,gb4,bb4] [gb3,bb3] gb4 [bb3,d4] [gb3,d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~", // Gb Daug Gb Bb Gbaug Gb Daug Gb …
  AG: "[gb3,bb3]@2 [d4,gb4,bb4] [gb3,bb3] gb4 [gb3,bb3] [d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~ [gb3,bb3] ~ [d4,gb4,bb4] ~", // Gb Daug Gb Daug Gb Daug Gb Daug
  AH: "[gb3,bb3]@2 [d4,gb4,bb4] [gb3,bb3] gb4 [gb3,bb3] [d4,gb4,bb4] ~@9", // Gb Daug Gb Daug
})).s("gm_electric_guitar_jazz").gain(0.2).pan(0.6)

// other · trombone
const trombone = note(`<
  ~@12 A B C D E B F G H I J K L M N O H I J K L P Q R ~@3 S I J K L P Q T U V W X Y V W Z AA Z AA AB ~@8
>`.pickRestart({
  A: "~@10 e3 ~ e3 ~ e3 ~", B: "e3@2 d3 ~ c3 ~ c4@4 a3 ~ a3 ~ g3 ~", C: "gb3@2 g3 ~ a3 ~ g3@2 ~@2 g3 ~ g3 ~ f3 ~",
  D: "e3@2 f3 ~ g3 ~ f3 ~@3 f3@2 f3 ~ f3 ~", E: "f3 ~ e3 ~ d3 ~ c3@4 e3@2 e3 ~ e3 ~",
  F: "gb3@2 g3 ~ a3 ~ g3 ~@3 g3 ~ g3 ~ f3 ~", G: "e3@2 f3 ~ g3 ~ f3@5 ~@5", H: "~@2 c3 ~ f3 ~ g3 ~ a3 ~ a3 ~ a3 ~ a3 ~",
  I: "a3 ~ g3 ~ f3 ~ a3@4 g3 ~ g3 ~ g3@2", J: "~@2 g3 ~ a3 ~ bb3 ~ c4 ~ c4 ~ c4 ~ c4 ~",
  K: "c4@2 bb3@2 a3@2 c4@4 bb3 ~ bb3 ~ bb3@2", L: "~@2 bb3 ~ c4 ~ bb3 ~ a3 ~ a3 ~ a3 ~ b3 ~",
  M: "db4@2 b3 ~ a3 ~ d4@4 c4@2 ~@2 c4 ~", N: "c4@2 bb3 ~ a3 ~ a3@3 ~ g3@3 ~ a3 ~", O: "g3 ~ f3@2 d3 ~ g3@3 ~ g3@6",
  P: "db4@4 a3@2 d4@4 c4 ~ c4 ~ a3 ~", Q: "gb3@2 g3 ~ a3 ~ g3@3 ~ g3 ~ g3 ~ f3 ~", R: "e3 ~ f3 ~ g3 ~ f3@10",
  S: "~@8 a3 ~ a3 ~ a3 ~ a3 ~", T: "e3@2 f3 ~ g3 ~ f3 ~@3 gb3@2 gb3 ~ gb3 ~",
  U: "gb3@2 f3 ~ eb3 ~ db3@3 ~ f3@2 f3 ~ f3 ~", V: "f3@2 eb3 ~ db3 ~ db4@4 bb3 ~ bb3 ~ ab3 ~",
  W: "g3@2 ab3 ~ bb3 ~ ab3 ~@3 ab3 ~ ab3 ~ gb3 ~", X: "f3@2 gb3 ~ ab3 ~ gb3@3 ~ gb3@2 gb3 ~ gb3 ~",
  Y: "gb3@2 f3 ~ eb3 ~ db3@2 ~@2 f3@2 f3 ~ f3 ~", Z: "f3@2 gb3 ~ ab3 ~ gb3@3 ~ bb3 ~ bb3 ~ ab3 ~",
  AA: "g3@2 ab3 ~ bb3 ~ ab3@2 ~@2 ab3 ~ ab3 ~ gb3 ~", AB: "f3@2 gb3 ~ ab3 ~ gb3@3 ~@7",
})).s("gm_trombone").gain(0.55).pan(0.6)

// other · string ensemble 1
const string_ensemble_1 = note("<~@28 A@7 ~@4 A@7 ~@5 B@7 C@3 ~@6>".pickRestart({
  A: "[~ c6@4 eb6@2 d6@2 db6@2 d6@2 ~]/7", B: "[~ db6@4 b5@2 bb5@2 b5@2 bb5@2 b5]/7", C: "[~ bb5@4 ~]/3",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.7)

// other · trumpet
const trumpet = note("<~@28 A B@2 C@2 ~ D E F G ~ A B@2 C@2 ~ H I ~@11 J K L M J K L M ~>".pickRestart({
  A: "~@8 c5 ~ c5 ~ c5 ~ c5 ~", B: "[c5@2 bb4@2 a4@2 c5@4 bb4 ~ bb4 ~ bb4@5 ~ c5 ~ d5 ~ eb5 ~ eb5 ~ eb5 ~ eb5 ~]/2",
  C: "[eb5@2 d5@2 c5@2 eb5@4 d5 ~ d5 ~ d5@6 ~@12]/2", D: "~@10 bb4@2 bb4 ~ bb4 ~",
  E: "bb4 ~ bb4 ~ bb4 ~ a4 ~ f4 ~ a4 ~ f4 ~ a4 db4", F: "f4 a4 ~@2 c4 ~@3 f4 ~ a4 ~ f4 ~ a4 db4",
  G: "f4 a4 ~@2 c4 ~@11", H: "~@10 bb4 ~ bb4 ~ bb4 ~", I: "bb4 ~ bb4 ~ bb4 ~ a4 ~@9", J: "~@8 db4 ~ bb4 ~ d4 ~ bb4 ~",
  K: "db4 bb4@3 db4 ~@3 db4 ~ bb4 ~ d4 ~ bb4 ~", L: "db4 bb4@2 ~ d4 ~@3 gb4 ~ bb4 ~ d4 ~ bb4 ~",
  M: "gb4 bb4@2 ~ db4 ~@11",
})).s("gm_trumpet").gain(0.38).pan(0.4)

// bass · tuba
const bass = note("<~@4 A@8 B ~@22 C A@3 B ~@6 D E F G H I F G J K J K L M N M O M N M P>".pickRestart({
  A: "f2 ~@3 c2 ~@3 f2 ~@3 c2 ~@3", B: "f2 ~@3 c2 ~@11", C: "~@8 f2 ~@3 c2 ~@3", D: "~@8 f2 ~ gb2 ~ gb2 ~ gb2 ~",
  E: "gb2 ~ f2 ~ eb2 ~ db2 ~@3 f2@2 ~@2 f2 ~", F: "f2 ~ eb2 ~ db2 ~ db3@3 ~ bb2 ~ bb2 ~ ab2 ~",
  G: "g2 ~ ab2 ~ bb2 ~ ab2@3 ~ ab2 ~ ab2 ~ gb2 ~", H: "f2@2 gb2 ~ ab2 ~ gb2@3 ~ gb2 ~ gb2 ~ gb2 ~",
  I: "gb2@2 f2 ~ eb2 ~ db2@2 ~@2 f2@2 ~@2 f2 ~", J: "f2@2 gb2 ~ ab2 ~ gb2@3 ~ bb2 ~ bb2 ~ ab2 ~",
  K: "g2 ~ ab2 ~ bb2 ~ ab2 ~@3 ab2 ~ ab2 ~ gb2 ~", L: "f2@2 gb2 ~ ab2 ~ gb2@2 gb2 ~@3 db2@2 ~@2",
  M: "gb2 ~ db2 ~ gb2 ~ db2 ~", N: "gb2@2 ~@2 db2 ~@3 gb2@2 ~@2 db2@2 ~@2", O: "gb2@2 ~@2 db2@2 ~@2 gb2 ~@3 db2@2 ~@2",
  P: "gb2 ~ db2 ~@5",
})).s("gm_tuba").gain(0.52).pan(0.3)

// bass · acoustic bass
const bass_2 = note(`<
  ~@4 A B C@5 D E F G H I J K L M N O P Q R S T U N O P Q V W X Y Z AA AB N O P Q V W AC AD AE AF AG AH AE AF AG AF AG
  AF AI AJ AK AJ@3 AK AJ AL
>`.pickRestart({
  A: "f2@3 ~ c2@2 ~@2 f2@3 ~ c2@3 ~", B: "f2@3 ~ c2@3 ~ f2@3 ~ c2@2 ~@2", C: "f2@3 ~ c2@3 ~ f2@3 ~ c2@3 ~",
  D: "f2@3 ~ c2@3 ~ f2@2 ~@2 c2@2 ~@2", E: "f2@2 ~@2 c2@2 ~@2 g2@3 ~ c2@3 ~", F: "g2@2 ~@2 c2@3 ~ f2@3 ~ c2@3 ~",
  G: "d2@2 ~@2 a1@3 ~ g2@3 ~ d2@3 ~", H: "c2@3 ~ g2@3 ~ f2@4 c2@4", I: "f2 c2 g2 c2", J: "g2 c2 f2 c2",
  K: "d2@4 a1@3 ~ g2@4 d2@3 ~", L: "c2 g2 f2 c2", M: "f2@4 c2@3 ~ f2@4 c2@3 ~", N: "f2@4 c2@3 ~ c2@4 g2@4",
  O: "c2@4 g2@3 ~ f2@4 c2@4", P: "f2@4 c2@3 ~ bb1@4 f2@4", Q: "bb1 f2 a1 e2", R: "a1@8 d2@3 ~ a1@4",
  S: "d2@3 ~ a1@4 g1@4 d2@4", T: "g2 g1 c2 g1", U: "c2@6 ~@2 f2@4 c2@3 ~", V: "a1@8 d2@3 ~ a1@3 ~",
  W: "d2@4 a1@3 ~ g2@3 ~ d2@3 ~", X: "c2@3 ~ g1@3 ~ f2@3 ~ c2@2 ~@2", Y: "f2@3 ~ c2@3 ~ f2@2 ~@2 c2@3 ~",
  Z: "f2@3 ~ c2@2 ~@2 f2 ~@3 c2@2 ~@2", AA: "f2 ~ c2 ~ f2 ~ c2 ~", AB: "f2@2 ~@2 c2@2 ~@2 f2@4 c2@3 ~",
  AC: "c2@3 ~ g1@3 ~ f2@2 ~@6", AD: "~@2 ab2 db2", AE: "ab2 db2 gb2 db2", AF: "eb2@4 bb1@3 ~ ab2@4 eb2@3 ~",
  AG: "db2 ab2 gb2 db2", AH: "gb2@4 db2@3 ~ ab2@4 db2@4", AI: "db2@2 ab2@2 gb2 ~ db2 ~", AJ: "gb2 ~ db2 ~ gb2 ~ db2 ~",
  AK: "gb2@3 ~ db2@2 ~@2 gb2@2 ~@2 db2@2 ~@2", AL: "gb2 ~ db2 ~@5",
})).s("gm_acoustic_bass").gain(0.4)

// chords · marimba
const marimba = note(`<
  ~@20 A B C D E F G H I J K L M N O P ~@3 Q J K L M N O P R S T U V S T W X W X Y ~@8
>`.pickRestart({
  A: "~@8 f4 [c4,f4]!7", B: "[c4,a4] c4 [c4,a4]!3 c4 [c4,a4] a4 c5 [e4,c5] e4 ~ [e4,bb4] ~ e5 g4",
  C: "e5 g4 c5@2 b4 ~ bb4 ~ a4 [c4,a4] c4 [c4,a4]!2 a4 [c4,a4]!2", // F
  D: "c4 [c4,a4]!2 a4 [c4,bb4] ~ c5 ~ d5 [f4,d5]!2 f4 [f4,d5]!3 d5", // F C7 Dm
  E: "[f4,d5]!5 f4 d5 ~ e4 db4 [db4,e4] ~ [d4,f4] ~ [e4,g4]@2", // Dm Dbm Dm Em
  F: "~@2 [d4,f4] ~@2 db4@2 ~ [f4,a4]@3 [e4,g4]@2 ~ a4@2, ~@4 e4@2 ~@8 f4 ~", // Dm F Em
  G: "f4 a4 f4 [f4,a4] ~@4 [g4,b4] ~ [a4,c5]@2 [a4,db5] ~ d5 [b4,d5]", // F G Am A Bm
  H: "b4 [b4,d5]!4 d5 [b4,d5] ~ [c5,e5] ~ e5@2 [d5,f5] ~ g5 [e5,g5], ~@10 c5 ~@5", // Bm C Dm Em
  I: "[e5,g5] ~ [c5,e5] ~ [a4,c5] ~ [g4,bb4] ~ a4 c4 a4 [c4,a4] c4 [c4,a4]!2 a4", // Em C Am Gm F
  J: "[c4,a4] c4 [c4,a4] a4 [c4,a4]!3 ~ g4 [g4,c5] c5 g4 [e4,bb4]@2 ~@2", // F C5 Edim
  K: "g4@2 [c4,g4]!3 g4 [c4,g4] ~ c5 [eb4,c5] eb4 [eb4,c5] c5 [eb4,c5]!3, c4 ~@15", // C5 Cm
  L: "[eb4,c5]!2 eb4 [eb4,c5]!2 c5 ~@2 [c4,c5]@2 [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4]@2", // Cm C Bb
  M: "~@8 [db4,e4] ~ [db4,e4] ~ [d4,f4] ~ [e4,g4] ~", // Dbm Dm Em
  N: "[e4,g4] e4 [d4,f4] ~ [db4,e4]@3 ~ [f4,a4]@2 ~ [e4,g4]@2 ~ a4 gb4", // Em Dm Dbm F Em
  O: "[gb4,a4]!2 a4 [gb4,a4]!4 ~ bb4@2 g4 [g4,bb4] bb4 [g4,bb4]!2 ~, ~@8 g4 ~@7", // Gbm Gm
  P: "[g4,bb4] ~ [g4,bb4] ~ [g4,bb4] ~ [f4,a4] ~@9", Q: "~@8 a4 c4 a4 [c4,a4] c4 [c4,a4]!2 a4",
  R: "~@10 [b3,f4,ab4]@2 ~@2 [b3,f4,ab4] ~", S: "~@2 [b3,f4,ab4]@2 ~@2 [b3,ab4] ~@3 [db4,gb4,bb4]@2 ~@2 [db4,gb4] ~",
  T: "[db4,g4,bb4]@2 ~@2 [db4,g4,bb4] ~@5 [eb4,ab4] ~@3 [b3,eb4,ab4] ~, ~@5 b3 ~@2", // Gdim Ab5 Abm
  U: "~@2 [db4,f4,ab4]@2 ~@2 [db4,f4,ab4] ~@3 [db4,gb4,bb4]@2 ~@2 [db4,gb4,bb4] ~", // Db Gb
  V: "~@2 [db4,bb4] ~ [db4,gb4,bb4] ~@5 [b3,f4,ab4]@2 ~@2 [b3,f4,ab4] ~", // Gb Fdim
  W: "~@2 [db4,f4,ab4]@2 ~@2 [db4,f4,ab4] ~@3 [db4,gb4,bb4]@3 ~ [db4,gb4,bb4] ~", // Db Gb
  X: "db4 ~ [db4,g4,bb4]@3 ~ [db4,g4,bb4] ~@3 [eb4,ab4] ~@3 [b3,eb4,ab4] ~, ~@5 b3 ~@2", // Gdim Ab5 Abm
  Y: "~@2 [db4,f4,ab4]@2 ~@2 [db4,f4,ab4] ~@9", // Db
})).s("gm_marimba").gain(0.27)

// drums · rim
const rim = s("rim").struct("<~@47 [~@3 x ~@4] ~@19>").gain(0.27)

// drums · kick
const kick = s("bd").struct("<[x!4]!46 [x!2 ~@2] [x ~ x!2] [x!4]!18 [x!2 ~@2]>").gain(0.37)

// drums · snare
const snare = s("sd").struct(`<
  [x ~ x!3 ~ x!3 ~ x!6]!11
  [x ~ x!3 ~ x!3 ~ x!3 ~ x!2]
  [x ~ x!7 ~ x!3 ~ x!2]!34
  [x ~ x!7 ~@5 x ~]
  [~@4 x ~@3 x ~ x!3 ~ x!2]
  [x ~ x!7 ~ x!3 ~ x!2]!18
  [x ~ x!5 ~@9]
>`).gain(0.27)

// drums · crash
const crash = s("cr").struct("<~@12 [~ x] ~@34 [x!2] ~@12 [~ x]!6 ~>").gain(0.27)

// drums · congas
const congas = s("conga:13").struct("<~@12 A B ~@33 A B ~@11 A C@5 B>".pickRestart({
  A: "~ x", B: "x", C: "x!2",
})).gain(1.32)

// drums · congas
const congas_2 = s("conga:18").struct("<~@12 [~@3 x] [~ x ~@2] ~@33 [~@3 x] [~ x ~@2] ~@18>").gain(1.32)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@2 A@9 B C D C@32 E F D C@12 D@5 G>".pickRestart({
  A: "~@2 x ~@2 x!3 ~ x!3 ~ x!3", B: "~@2 x ~@2 x!3 ~@2 x ~@2 x!3", C: "~ x!3 ~ x!3 ~@2 x ~@2 x!3",
  D: "~ x!3 ~ x!2 ~@3 x ~@2 x!3", E: "~ x!3 ~ x!3 ~@8", F: "~@10 x ~@2 x!3", G: "~ x!3 ~ x!2 ~@9",
})).gain(1.16)

// drums · cabasa · soft notes
const cabasa_soft = s("cabasa:4").struct(`<
  ~@2
  [~ x ~ x ~@12]!9
  [~ x ~ x ~@5 x ~ x ~@4]
  [~@9 x ~ x ~@4]!34
  ~
  [~@9 x ~ x ~@4]!19
  ~
>`).gain(0.7)

stack(
  electric_guitar_jazz, trombone, string_ensemble_1, trumpet, bass, bass_2, marimba, rim, kick, snare, crash, congas,
  congas_2, cabasa, cabasa_soft
)

More by Alpert