Strudelify

Fugitive

The Ventures

KeyB♭ minorTempo128 bpm
0:00/0:00
// Fugitive — The Ventures
// 128 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 71 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(128/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 pick · "Bass"
const bass = note(`<
  A B C B C B C B D E F B G H@3 I@8 J@3 ~ K@2 L@2 M@2 N@2 O@3 P Q R S T U@3 V W X Y Z V AA V@2 AB AC AD AE AF AG P AH@2
  Q P AH@2 AI ~
>`.pickRestart({
  A: "~@13 bb1@3", B: "~ db2@2 bb1@2 eb2@4 db2@2 bb1@2 ~@2 bb1", C: "~@2 db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@10",
  D: "~@2 db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@3 ~ eb2@6", E: "~@2 gb2@4 eb2@4 ab2@8 gb2@4 eb2@3 ~@5 eb2@2",
  F: "~@2 gb2@3 ~ eb2@3 ~ ab2@8 gb2@4 eb2@3 ~ bb1@6", G: "~@2 db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@3 ~ f2@6",
  H: "[~@2 ab2@4 f2@4 bb2@8 ab2@4 f2@2 ~@2 e2@10 ~@3 eb2@10 ~@3 db2@7 ~@2 bb1@8 db2@4 bb1@4 eb2@8 db2@4 bb1@4 ~@3]/3",
  I: "[~ bb1@3 ~ db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@3 ~ eb2@8 bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2 f2@7 ~ c2@6 ~@2 f2@7 ~ c2@6 ~@2 eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2 gb2@7 ~ db2@6 ~@2 gb2@7 ~ db2@6 ~@2 gb2@3]/8",
  J: "[~@5 db2@6 ~@2 gb2@7 ~ db2@5 ~@3 bb2@7 ~ f2@7 ~ bb2@7 ~ f2@6 ~@2 bb2@7 ~ f2@6 ~@2 bb2@7 ~ f2@7 ~ eb2@3]/3",
  K: "[~@29 bb1@8 db2@4 bb1@4 eb2@8 db2@4 bb1@4 ~@3]/2",
  L: "[~ bb1@3 ~ db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@12 db2@4 bb1@4 eb2@8 db2@4 bb1@4 ~@3]/2",
  M: "[~ bb1@3 ~ db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@3 ~ eb2@8 gb2@4 eb2@4 ab2@8 gb2@4 eb2@4 ~@3]/2",
  N: "[~ eb2@3 ~ gb2@3 ~ eb2@3 ~ ab2@8 gb2@4 eb2@3 ~ bb1@8 db2@4 bb1@4 eb2@8 db2@4 bb1@4 ~@3]/2",
  O: "[~ bb1@3 ~ db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@2 ~@2 f2@8 ab2@4 f2@4 bb2@8 ab2@4 f2@3 ~ e2@11 ~@2 eb2@12 ~ db2@7 ~@2]/3",
  P: "bb1@2 db2 bb1 eb2@2 db2 bb1", Q: "~@4 bb1@3 ~ db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@3 ~",
  R: "eb2@8 bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2", S: "eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@7 ~", T: "f2@7 ~ c2@6 ~@2 f2@7 ~ c2@6 ~@2",
  U: "eb2@7 ~ bb1@6 ~@2 eb2@7 ~ bb1@6 ~@2", V: "gb2@7 ~ db2@6 ~@2 gb2@7 ~ db2@6 ~@2",
  W: "gb2@7 ~ db2@7 ~ gb2@7 ~ db2@5 ~@3", X: "bb2@7 ~ f2@7 ~ bb2@7 ~ f2@7 ~", Y: "bb2@7 ~ f2@6 ~@2 bb2@7 ~ f2@5 ~@3",
  Z: "gb2@8 db2@7 ~ gb2@7 ~ db2@6 ~@2", AA: "ab2@7 ~ eb2@6 ~@2 ab2@7 ~ eb2@6 ~@2",
  AB: "gb2@7 ~ db2@6 ~@2 gb2@7 ~ db2@5 ~@3", AC: "a2@7 ~ e2@6 ~@2 a2@7 ~ e2@6 ~@2",
  AD: "a2@7 ~ e2@6 ~@2 a2@7 ~ e2@5 ~@3", AE: "db3@7 ~ ab2@6 ~@2 db3@7 ~ ab2@6 ~@2", AF: "db3@3 ~@29",
  AG: "~@24 ab2@7 ~", AH: "[~@4 bb1@3 ~ db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@12 db2@4 bb1@4 eb2@8 db2@4 bb1@4]/2",
  AI: "~@4 bb1@3 ~ db2@3 ~ bb1@3 ~ eb2@8 db2@4 bb1@4",
})).s("gm_electric_bass_pick").gain(0.4).pan(0.1)

// other · electric guitar clean · "LeadGsub"
const electric_guitar_clean = note("<~@8 A ~@3 B ~@19 C ~@3 D ~@14 E F G H I J K@2 L M ~@10>".pickRestart({
  A: "~@11 db3@3 ~@2", B: "~@22 eb3@7 ~@3", C: "~@25 db3@6 ~", D: "~@25 eb3@7", E: "db4@31 ~",
  F: "gb4@15 ~ bb4@7 ~ ab4@4 bb4@4", G: "ab4@3 ab4", H: "db4@2 db4!2 f4@2 db4 b3", I: "db4@7 ~",
  J: "gb4@4 bb4@2 gb4 bb4", K: "[db5@12 ~@2 a4@7 ~@3 db5@4 ~@4]/2",
  L: "ab4@2 ~ db5 eb5 f5 eb5 db5 ab4@2 ~ db5 eb5 f5 eb5 db5, ~@2 f5@3 ~ f5@2 ~@2 f5@3 ~ f5@2", M: "ab4@5 ~@27",
})).s("gm_electric_guitar_clean").gain(0.5).pan(0.8)

// chords · acoustic guitar steel · "SideGuitar"
const acoustic_guitar_steel = note(`<
  A B@7 C D E B F G@2 H I J K L M@2 N O P Q R ~ S H@3 T U V H W X@2 Y@2 Z AA AB AC@2 AD AE AF AG AH AI AJ AK AE@2 AF AL
  AM AN AO ~ AP@8 ~
>`.pickRestart({
  A: "~@13 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]", // Bbm
  B: "[bb2,f3,bb3,db4,f4] [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!2 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!6 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]", // Bbm
  C: "[bb2,f3,bb3,db4,f4] [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!2 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!5 ~ [eb3,bb3,eb4,gb4]@2 [eb3,bb3,eb4,gb4,bb4]", // Bbm Ebm
  D: "[eb3,bb3,eb4,gb4,bb4] [eb3,bb3,eb4,gb4]@2 [eb3,bb3,eb4,gb4,bb4]!2 [eb3,bb3,eb4,gb4]@2 [eb3,bb3,eb4,gb4,bb4]!6 [eb3,bb3,eb4,gb4]@2 [eb3,bb3,eb4,gb4,bb4]", // Ebm
  E: "[eb3,bb3,eb4,gb4,bb4] [eb3,bb3,eb4,gb4]@2 [eb3,bb3,eb4,gb4,bb4]!2 [eb3,bb3,eb4,gb4]@2 [eb3,bb3,eb4,gb4,bb4]!5 ~ [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]", // Ebm Bbm
  F: "[bb2,f3,bb3,db4,f4] [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!2 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!5 ~ [f3,c4,f4,ab4]@2 [f3,c4,f4,ab4,c5]", // Bbm Fm
  G: "[[f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4]@4 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4]@4 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 ~@3 [ab3,b3,e4]@10 ~@3 eb4@11 ~@2 db4@8 [bb2,f3,bb3,db4]@3, ~@26 e3@10 ~@3 [eb3,bb3]@11 ~@2 [db3,f3,ab3]@8 ~@4]/2", // Fm E Bbm Eb5 Db
  H: "~ [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@4 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@4 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@3", // Bbm
  I: "~ [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@4 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@4 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 ~@2 [bb2,eb3,g3,bb3,eb4]@3", // Bbm Eb
  J: "~ [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@3", // Eb
  K: "~ [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@4 [bb2,eb3,g3,bb3,eb4]@2 ~@2 [c3,f3,a3,c4]@3", // Eb F
  L: "~ [c3,f3,a3,c4,f4]@2 [c3,f3,a3,c4,f4]@2 [c3,f3,a3,c4]@4 [c3,f3,a3,c4,f4]@2 [c3,f3,a3,c4,f4]@2 [c3,f3,a3,c4]@4 [c3,f3,a3,c4,f4]@2 [c3,f3,a3,c4,f4]@2 [c3,f3,a3,c4]@4 [c3,f3,a3,c4,f4]@2 ~@2 [bb2,eb3,g3,bb3]@3", // F Eb
  M: "~ [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3]@3", // Eb
  N: "~ [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3]@4 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3]@4 [bb2,eb3,g3,bb3,eb4]@2 ~@2 [db3,gb3,bb3,db4]@3", // Eb Gb
  O: "~ [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4]@4 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4]@4 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4]@4 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4]@3", // Gb
  P: "~ [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4]@4 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4]@4 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4]@4 [db3,gb3,bb3,db4,gb4]@3 ~ [f3,bb3,d4,f4]@3", // Gb Bb
  Q: "~ [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4]@3", // Bb
  R: "~ [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4]@4 [f3,bb3,d4,f4,bb4]@2 [f3,bb3,d4,f4,bb4]@2 ~@3", // Bb
  S: "~@29 [bb2,f3,bb3,db4]@3", // Bbm
  T: "~ [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@4 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@4 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 ~@2 [eb3,bb3,eb4,gb4]@3", // Bbm Ebm
  U: "~ [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4]@4 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4]@4 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4]@3", // Ebm
  V: "~ [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4]@4 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4]@4 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 [eb3,bb3,eb4,gb4,bb4]@2 ~@2 [bb2,f3,bb3,db4]@3", // Ebm Bbm
  W: "~ [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@4 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4]@4 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 [bb2,f3,bb3,db4,f4]@2 ~@2 [f3,c4,f4,ab4]@3", // Bbm Fm
  X: "[~ [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4]@4 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4]@4 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 [f3,c4,f4,ab4,c5]@2 ~@3 [ab3,b3,e4]@11 ~@2 [bb3,eb4]@12 ~ db4@7 ~, ~@29 e3@11 ~@2 eb3@12 ~ [db3,f3,ab3]@7 ~@2]/2", // Fm E Eb5 Db
  Y: "[bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!2 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!2 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!5 ~", // Bbm
  Z: "[bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]!2", // Eb
  AA: "[bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3,eb4]@2 [bb2,eb3,g3,bb3,eb4] ~", // Eb
  AB: "[c3,f3,a3,c4]@2 [c3,f3,a3,c4,f4]!2 [c3,f3,a3,c4]@2 [c3,f3,a3,c4,f4]!2 [c3,f3,a3,c4]@2 [c3,f3,a3,c4,f4]!2 [c3,f3,a3,c4]@2 [c3,f3,a3,c4,f4] ~", // F
  AC: "[bb2,eb3,g3,bb3]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3]@2 [bb2,eb3,g3,bb3,eb4]!2", // Eb
  AD: "[bb2,eb3,g3,bb3]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3]@2 [bb2,eb3,g3,bb3,eb4]!2 [bb2,eb3,g3,bb3]@2 [bb2,eb3,g3,bb3,eb4] ~", // Eb
  AE: "[db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4]!2", // Gb
  AF: "[db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4]@2 [db3,gb3,bb3,db4,gb4] ~", // Gb
  AG: "[f3,bb3,d4,f4]@2 [f3,bb3,d4,f4,bb4]!2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4,bb4]!2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4,bb4]!2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4,bb4]!2", // Bb
  AH: "[f3,bb3,d4,f4]@2 [f3,bb3,d4,f4,bb4]!2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4,bb4]!2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4,bb4]!2 [f3,bb3,d4,f4]@2 [f3,bb3,d4,f4] ~", // Bb
  AI: "[db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]!2", // Gb
  AJ: "[db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]!2 [db3,gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4] ~", // Gb
  AK: "[eb3,ab3,c4,eb4]@2 [eb3,ab3,c4,eb4,ab4]!2 [eb3,ab3,c4,eb4]@2 [eb3,ab3,c4,eb4,ab4]!2 [eb3,ab3,c4,eb4]@2 [eb3,ab3,c4,eb4,ab4]!2 [eb3,ab3,c4,eb4]@2 [eb3,ab3,c4,eb4,ab4] ~", // Ab
  AL: "[e3,a3,db4,e4]@2 [e3,a3,db4,e4,a4]!2 [e3,a3,db4,e4]@2 [e3,a3,db4,e4,a4]!2 [e3,a3,db4,e4]@2 [e3,a3,db4,e4,a4]!2 [e3,a3,db4,e4]@2 [e3,a3,db4,e4,a4]!2", // A
  AM: "[e3,a3,db4,e4]@2 [e3,a3,db4,e4,a4]!2 [e3,a3,db4,e4]@2 [e3,a3,db4,e4,a4]!2 [e3,a3,db4,e4]@2 [e3,a3,db4,e4,a4]!2 [e3,a3,db4,e4]@2 [e3,a3,db4,e4] ~", // A
  AN: "[ab3,db4,f4,ab4]@2 [ab3,db4,f4,ab4,db5]!2 [ab3,db4,f4,ab4]@2 [ab3,db4,f4,ab4,db5]!2 [ab3,db4,f4,ab4]@2 [ab3,db4,f4,ab4,db5]!2 [ab3,db4,f4,ab4]@2 [ab3,db4,f4,ab4,db5]!2", // Db
  AO: "[ab3,db4,f4,ab4] ~@7", // Db
  AP: "[bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!2 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!2 [bb2,f3,bb3,db4]@2 [bb2,f3,bb3,db4,f4]!6", // Bbm
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.1)

// other · woodblock · "Castanet"
const woodblock = note("<~@16 A B@9 C ~@14 D E@9 D E@8 F ~@10>".pickRestart({
  A: "~@29 g4 ~@2", B: "~ g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@2",
  C: "~ g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~@4",
  D: "~@4 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~",
  E: "g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~ g4 ~@3 g4 ~ g4 ~", F: "g4 ~@31",
})).s("gm_woodblock").gain(0.71).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  A B C B C B@3 C B C B C B D E F G@9 H ~ I E@3 F E F E F E J K L M@20 N K@3 L K@3 L ~
>`.pickRestart({
  A: "~@9 x ~@3 x ~@2", B: "~@3 x ~ x ~@5 x ~ x ~@2", C: "~@3 x ~ x ~ x ~ x ~ x ~ x ~@2", D: "~@7 x ~@12 x ~@8 x ~@2",
  E: "~@9 x ~@3 x ~@11 x ~@3 x ~@2", F: "~@9 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", G: "~@5 x ~@7 x ~@7 x ~@7 x ~@2",
  H: "~@5 x ~@7 x ~@7 x ~@10", I: "~@29 x ~@2", J: "~@10 x ~@12 x ~@8", K: "x ~@2 x!2 ~@2 x", L: "x ~@2 x!5", M: "x!4",
  N: "x ~ x!6",
})).gain(0.2).pan(1)

// drums · snare
const snare = s("sd").struct(`<
  A B C B C B C B C B C B C B D E F G H G H G H G H G I J K L M L M L M L M L N O P Q R Q R Q R Q R Q S Q R Q R Q R Q R
  Q S ~ T U T U T U T U ~
>`.pickRestart({
  A: "~@9 x ~@6", B: "~ x ~@7 x ~@6", C: "~ x ~@14", D: "~@5 x ~@2", E: "~@5 x ~@15 x ~@7 x ~ x",
  F: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x ~@4", G: "~ x ~@3 x ~@3 x ~@7 x ~@3 x ~@3 x ~@6",
  H: "~ x ~@3 x ~@3 x ~@15 x ~@6", I: "~ x ~@3 x ~@3 x ~@7 x ~@3 x ~@3 x ~@3 x ~ x", J: "~ x ~ x ~@28",
  K: "~@13 x ~ x ~ x ~ x ~ x ~@3 x ~@6", L: "~@5 x ~@15 x ~@10", M: "~@5 x ~@19 x ~@6", N: "~@23 x ~@8",
  O: "~@4 x ~@7 x ~ x!2", P: "x!13 ~ x!2", Q: "~ x!3 ~ x!3", R: "~ x!3 ~@3 x", S: "x!4 ~@12", T: "~ x ~ x",
  U: "~@2 x ~@4 x",
})).gain(0.22).pan(1)

// drums · hihat
const hihat = s("hh").struct("<~@60 [x!4]!2 ~@9>").gain(0.22).pan(1)

// drums · mid tom
const mid_tom = s("mt").struct("<~@2 A ~@3 A ~@3 A ~@16 B C ~@21 D ~@9 D E ~@3 F ~ F ~@3>".pickRestart({
  A: "~@11 x ~@4", B: "~@21 x ~@3 x ~@3 x ~@2", C: "~ x ~@3 x ~@3 x ~@22", D: "~@12 x!4",
  E: "x!5 ~ x ~ x ~ x ~ x ~ x ~", F: "~@12 x!2 ~@2",
})).gain(0.17).pan(1)

// drums · high tom
const high_tom = s("ht").struct(`<
  A B C B D B E B D B E B D B F G H I J I J I J I J I K L M N O N O N O N O N P Q R S T S T S T S T S U S T S T S T S T
  S V ~ Q W Q X Q X Q W ~
>`.pickRestart({
  A: "~@9 x ~@6", B: "~ x ~@7 x ~@6", C: "~ x ~@5 x ~ x ~@6", D: "~ x ~@5 x ~ x ~ x ~@4", E: "~ x ~@5 x!4 ~@5",
  F: "~@5 x ~@2", G: "~@5 x ~@15 x ~@7 x ~ x", H: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~@6",
  I: "~ x ~@3 x ~@3 x ~@7 x ~@3 x ~@3 x ~@6", J: "~ x ~@3 x ~@3 x ~@7 x ~ x ~ x ~@3 x ~@6",
  K: "~ x ~@3 x ~@3 x ~@7 x ~@3 x ~@3 x ~@3 x ~ x", L: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@9 x ~@2",
  M: "~ x ~@3 x ~@3 x ~@3 x ~ x ~ x ~ x ~ x ~@3 x ~@6", N: "~@5 x ~@15 x ~@10", O: "~@5 x ~@11 x ~ x ~ x ~ x ~@8",
  P: "~@23 x ~@8", Q: "~ x ~ x", R: "x!13 ~ x ~", S: "~ x!3 ~ x!3", T: "~@2 x ~ x ~ x ~ x!5 ~ x ~",
  U: "~@2 x ~ x!9 ~ x ~", V: "~@4 x!8 ~@4", W: "~@4 x ~@5 x!5 ~", X: "~@4 x ~@5 x!2 ~@2 x ~",
})).gain(0.2).pan(1)

// drums · crash
const crash = s("cr").struct(`<
  ~@13 A B ~ C ~@11 C ~@3 C ~ C ~@2 C D ~@2 E ~@9 E ~ E ~ E ~ E ~ E ~@2 E ~ E ~ E ~ E ~@2
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@7 x ~@24", C: "~@29 x ~@2", D: "~@10 x ~@12 x ~@8", E: "x",
})).gain(0.25).pan(1)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  A B C B C B C B C B C B C D E F G ~@12 F H F G F G F H I ~ J K ~@21 L K L K L K L K ~
>`.pickRestart({
  A: "~@13 x ~ x", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~@7 x ~ x", D: "~ x ~ x ~ x ~ x ~ x ~ x ~@4",
  E: "~@20 x ~@8 x ~@2", F: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", G: "~ x ~@3 x ~@3 x ~@3 x ~@18",
  H: "~ x ~@3 x ~@3 x ~@3 x ~@15 x ~@2", I: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@6", J: "x!8", K: "x!5 ~@3",
  L: "~ x!7",
})).gain(0.22).pan(1)

// drums · tambourine
const tambourine = s("tb").struct("<~@16 A B@9 C ~@14 D E@9 D E D E D E D E D ~@11>".pickRestart({
  A: "~@31 x", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  C: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@4", D: "~ x!15", E: "x!16",
})).gain(0.2).pan(1)

stack(
  bass, electric_guitar_clean, acoustic_guitar_steel, woodblock, kick, snare, hihat, mid_tom, high_tom, crash,
  ride_bell, tambourine
)

More by The Ventures