Strudelify

Do You Believe in Us

Jon Secada

KeyE♭ majorTempo110 bpm
0:00/0:00
// Do You Believe in Us — Jon Secada
// 110 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/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(`<
  ~@7 A B C@2 D E F G H I J K L M L M N O P@2 Q R S@2 T U V W X Y Z C@2 D E F AA H AB J K L AC L M N O AD@2 AE R AF@2 AG
  U AH AI AJ Y Z AK@2 AL AM AN AO AP AQ AR AS AR AT AR AU AV AW AX@2 AY AZ BA@2 BB BC AX@2 AY AZ BA@2 BB BD AX@2 AY AZ
  BA@2 BB BD
>`.pickRestart({
  A: "eb2@4 ~@3 eb2@2 ~ eb2@3 ~ eb2 ~", B: "eb2@4 ~@3 eb2@2 ~ eb2@3 ~ eb2@2", C: "d1@2 ~ d1 ~@3 d1 ~@2 d1 ~@3 d1 ~",
  D: "bb1@2 ~ bb1 ~@3 bb1@2 ~ bb1@2 ~@2 bb1 ~", E: "eb1@2 ~ eb1 ~@3 eb1@2 ~ eb1@2 ~@2 eb1@2",
  F: "ab1@6 ~ ab1@2 ~ ab1 ~@3 ab1@2", G: "bb1 ~@2 bb1 ~@3 bb1@2 ~ bb1@2 ~@2 bb1@2", H: "ab1@6 ~ ab1 ~@2 ab1 ~@3 ab1@2",
  I: "bb1@2 ~ bb1@2 ~@2 bb1@2 ~ bb1@2 ~@2 bb1@2", J: "c2@3 c2!2 ~ bb1@7 ~ bb1 ~", K: "bb1@3 ab1@2 ~ ab1@9 ~",
  L: "c2@3 c2!2 ~ bb1@3 ~ bb1@3 ~ bb1@2", M: "bb1@3 ab1@2 ~ ab1@7 ~ ab1 ~", N: "bb1@6 ~ bb1@3 bb1 ~@3 bb1 ~",
  O: "bb1@3 bb1@2 ~ bb1@3 ~ bb1@3 ~ bb1@2", P: "[eb1@4 ~@4 eb1@2 f1@2 g1@2 bb1@5 ~ bb1 ~@2 bb1@2 ~ bb1@2 eb1@2 f1@2]/2",
  Q: "f1@3 ~ f1 ~@2 f1@2 ~ f1@4 g1@2", R: "ab1@3 ~ ab1 ~@2 bb1@6 ~ bb1@2",
  S: "[eb1@4 ~@4 eb1@2 f1@2 g1@2 bb1@8 ~ bb1@2 ~ bb1@3 ~ f1@2]/2", T: "f1@3 ~ f1 ~@2 f1 ~@2 f1@3 ~ g1@2",
  U: "ab1@3 ~ ab1 ~@2 bb1@9", V: "g1 ~ g1 ~@3 ab1@5 ~@5", W: "g1 ~ g1@2 ~@2 ab1@4 f2@2 ~@4",
  X: "g1 ~ g1 ~@3 ab1@5 ~ ab1@3 ~", Y: "eb1@6 ~ eb1@2 ~ eb1@2 ~@2 eb1 ~", Z: "eb1@6 ~ eb1@2 ~ eb1@2 ~@2 eb1@2",
  AA: "bb1@5 ~@2 bb1@2 ~ bb1@2 ~@2 bb1@2", AB: "bb1@6 ~ bb1@2 ~ bb1@2 ~@2 bb1@2",
  AC: "bb1@3 ab1@2 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1 ~",
  AD: "[eb1@4 ~@4 eb1@2 f1@2 g1@2 bb1@5 ~ bb1 ~@2 bb1@2 ~ bb1@2 g1@2 f1@2]/2", AE: "f1@3 ~ f1 ~@2 f1@2 ~ f1@4 ~@2",
  AF: "[eb1@4 ~@4 eb1@2 f1@2 g1@2 bb1@8 ~ bb1@2 ~ bb1@2 g1@2 f1@2]/2", AG: "f1@3 ~@4 f1 ~@2 f1@3 ~ g1@2",
  AH: "g1 ~ g1 ~@3 ab1@4 eb1!2 f1!2 eb1 f1", AI: "g1 ~ g1@2 ~@2 ab1@4 ~@6", AJ: "g1 ~ g1 ~@3 ab1@4 g1@2 eb1@4",
  AK: "eb1@2 ~ eb1 ~@3 eb1 ~@2 eb1 ~@3 eb1 ~", AL: "b1@2 ~ b1 ~@3 b1@2 ~ b1@2 ~@2 b1 ~",
  AM: "e1@2 ~ e1 ~@3 e1@2 ~ e1@2 ~@2 e1@2", AN: "a1 ~@2 a1 ~@3 a1@2 ~ a1 ~@3 a1@2",
  AO: "b1 ~@2 b1 ~@3 b1@2 ~ b1@2 ~@2 b1@2", AP: "a1@6 ~ a1 ~@2 a1 ~@3 a1@2", AQ: "b1@2 ~ b1@2 ~@2 b1@2 ~ b1@2 ~@2 b1@2",
  AR: "db2@3 db2!2 ~ b1@3 ~ b1@3 ~ b1@2", AS: "b1@3 a1@2 ~ a1@3 ~ a1@3 ~ a1@2", AT: "b1@3 a1@2 ~ a1@3 ~ a1@3 ~ a1 ~",
  AU: "b1@3 a1@2 ~ a1@7 ~ a1 ~", AV: "b1@6 ~ b1@3 b1 ~@3 b1 ~", AW: "b1@3 b1@2 ~ b1@3 ~ b1@3 ~ b1@2",
  AX: "[e1@4 ~@4 e1@2 gb1@2 ab1@2 b1@5 ~ b1 ~@2 b1@2 ~ b1@2 ab1@2 gb1@2]/2", AY: "gb1@3 ~ gb1 ~@2 gb1@2 ~ gb1@4 ab1@2",
  AZ: "a1@3 ~ a1 ~@2 b1@6 ~ b1@2", BA: "[e1@4 ~@4 e1@2 gb1@2 ab1@2 b1@8 ~ b1@2 ~ b1@2 ab1@2 gb1@2]/2",
  BB: "gb1@3 ~@4 gb1 ~@2 gb1@3 ~ ab1@2", BC: "a1@6 ~ b1@7 b1@2", BD: "a1@2 ~ a1 ~@3 b1@9",
})).s("gm_electric_bass_finger").gain(0.72)

// bass · slap bass 1
const bass_2 = note(`<
  ~@25 A ~@3 A ~@3 B C ~@19 A ~@3 A ~ D ~@2 E ~@19 F ~@3 F ~ G ~ F ~@3 F ~ G ~ F ~@3 F ~ G ~
>`.pickRestart({
  A: "~@4 eb2 ~ eb2!2 ~@8", B: "~@12 eb2 f2 ab2 bb2", C: "~@12 bb2!2 ab2 f2", D: "~@4 f2 ~ f2 ~@9",
  E: "~@10 eb3 ~ g1 ab1 eb3@2", F: "~@4 e2 ~ e2!2 ~@8", G: "~@4 gb2 ~ gb2 ~@9",
})).s("gm_slap_bass_1").gain(0.72)

// chords · piano
const piano = note(`<
  A@3 B C D E F@2 G@2 H@3 I J K L M N O L P Q@2 R@2 S T U@2 V W X Y Z AA AB G@2 AC@3 I J AD L M N O L P Q@2 R@2 S T U@2
  V W X Y Z AA AB AE@2 AF@3 AG@3 AH AI AJ AK AH AL AM@2 AN@2 AO AP AQ@2 AR AS AN@2 AO AP AQ@2 AR AS AN@2 AO AP AQ@2 AR
  AS
>`.pickRestart({
  A: "[g4 ab4 ~@2 eb4 g4 ~@5 d5 ab5 g5 f5 ~@5 ab4 c5 ~ eb5, [bb3,eb4]@3 bb3@5 bb3@8 ab3@8, ~@2 bb4@2 ~@2 eb4@2 ~@2 bb4@6 ~@2 eb5@5 ~, ~@7 f5@2 f5@3 ~@3 f5@2 g5@2 eb4@5, ~@11 ab4]/3", // Eb5
  B: "ab5@2 g5 ~ g5@2 f5 ~@3 eb5@2 c5@2 f4@2, ab3 [bb3,f5]", C: "g4 ab4 bb4 ~@2 ab4 g4 f4, eb3, ~@3 bb3@5, ~@2 eb4 ~",
  D: "~@2 bb4 ~ g4 ~ f4@2, bb3, ~ f4@3 ~ bb4@3, ~@3 d5@5", E: "[c5,eb5,ab5]@3 ~ ab4@4 g4@2 ab4@2 bb4@4, ab3@15 ~",
  F: "[[bb3,eb4,g4]@31 ~]/2", // Eb
  G: "[[f3,a3,c4,e4]@9 ~ f3 a3 ~ [f3,a3,c4,e4] ~ [f3,a3,c4,e4]@11 f3 a3 ~ [f3,a3,c4,e4] ~@2]/2", // Fmaj7
  H: "[[ab3,c4,eb4,f4]@8 ~@2 [ab3,c4,eb4,f4] ~@2 [ab3,c4,eb4,f4] ~ [eb3,g3,bb3,d4]@15 [g3,ab3,c4,eb4]@11 ~ g3 ab3 ~ [g3,ab3,c4,eb4] ~@2]/3", // Fm7 Ebmaj7 Abmaj7
  I: "[f3,bb3,d4]@13 ~ [g3,c4,eb4]@2", J: "[g3,c4,eb4]@7 [bb3,d4], ~@14 f3 ~", K: "bb3 ~ bb3@13 ~, [f3,d4,f4]@15 ~",
  L: "[g3,bb3,eb4]@2 ~ [g3,bb3,eb4] ~@2 [f3,bb3,d4]@5 ~ [f3,bb3,d4]@3 ~", // Eb Bb
  M: "[f3,bb3,d4]@3 [eb3,ab3,c4] ~@2 [eb3,ab3,c4]@5 ~ c4 ab3 eb3 eb4", // Bb Ab
  N: "[g3,bb3,eb4]@2 ~ [g3,bb3,eb4] ~@2 [f3,bb3,d4]@6 [f3,bb3,d4]@3 ~", // Eb Bb
  O: "[f3,bb3,d4]@3 [eb3,ab3,c4] ~@2 [eb3,ab3,c4]@8 ~@2", // Bb Ab
  P: "[f3,bb3,d4]@3 [eb3,ab3,c4] ~@2 [eb3,ab3,c4]@5 ~ [eb3,ab3,c4]@3 ~", Q: "[f3,bb3,d4]@15 ~",
  R: "[[bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@3 ~ [bb3,d4,f4]@8 ~@2 [bb3,d4,g4]@4 [bb3,d4,f4]@3 ~]/2", // Eb Bb Gm Bb
  S: "[ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@7 ~ [ab3,c4,eb4]@3 ~", // Ab
  T: "[ab3,c4,eb4]@5 ~ [ab3,c4,eb4] ~ [bb3,d4,f4]@4 [bb3,d4,f4]@3 ~", // Ab Bb
  U: "[[bb3,eb4,g4]@4 [bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@2 [bb3,f4]@2 eb4 ~ [bb3,d4,f4]@7 ~ [bb3,d4,f4] ~ [bb3,d4,g4]@4 [bb3,d4,f4]@4]/2", // Eb Bb5 Bb Gm Bb
  V: "[ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@4 [c4,eb4]@2 ~@2 eb4@3 ~, ~@8 ab3 ~ ab3@5 ~", W: "[ab3,c4,eb4]@7 ~ [bb3,d4,f4]@7 ~",
  X: "[f3,bb3,d4] ~ [f3,bb3,d4] ~@3 [g3,c4,eb4]@6 bb3@2 g3 ~", // Bb Cm
  Y: "[f3,bb3,d4] ~ [f3,bb3,d4] ~@3 [g3,c4,eb4]@3 ~ eb4@2 c4@2 g3 ~", // Bb Cm
  Z: "[f3,bb3,d4] ~ [f3,bb3,d4] ~@3 [g3,c4,eb4]@6 bb3@2 g3@2", AA: "[g3,bb3,eb4]@5 ~ g3 ~@3 eb4 ~@3 bb3 ~",
  AB: "~@6 [g3,bb3,eb4] ~@3 g3 ~ bb3 ~ eb4 ~", // Eb
  AC: "[[ab3,c4,eb4,f4]@8 ~@2 [ab3,c4,eb4,f4] ~@2 [ab3,c4,eb4,f4] ~@2 bb5@11 ~@3 [g3,ab3,c4,eb4]@11 ~ g3 ab3 ~ [g3,ab3,c4,eb4] ~@2, ~@14 f6@13 ~@21, ~@5 [eb3,g3,bb3,d4]@5 ~@6, ~@5 [c6,d6]@4 ~@7]/3", // Fm7 Abmaj7 Ebmaj7 Csus2
  AD: "[f3,bb3,d4,f4]@15 ~", // Bb
  AE: "[[gb3,bb3,db4,f4]@9 ~ gb3 bb3 ~ [gb3,bb3,db4,f4] ~ [gb3,bb3,db4,f4]@11 gb3 bb3 ~ [gb3,bb3,db4,f4] ~@2]/2", // Gbmaj7
  AF: "[[a3,db4,e4,gb4]@8 ~@2 [a3,db4,e4,gb4] ~@2 [a3,db4,e4,gb4] ~@2 b5@11 ~@3 [ab3,a3,db4,e4]@11 ~@2 a3 ~ [ab3,a3,db4,e4] ~@2, ~@14 gb6@13 ~@21, ~@15 [e3,ab3,b3,eb4]@15 ~@12 ab3@2 ~@4, ~@5 [db6,eb6]@4 ~@7]/3", // Gbm7 Amaj7 Emaj7 Dbsus2
  AG: "[[gb3,b3,eb4]@13 ~ [ab3,db4,e4]@16 [gb3,b3,eb4,gb4]@18]/3", // B Dbm B
  AH: "[ab3,b3,e4]@2 ~ [ab3,b3,e4] ~@2 [gb3,b3,eb4]@5 ~ [gb3,b3,eb4]@3 ~", // E B
  AI: "[gb3,b3,eb4]@3 [e3,a3,db4] ~@2 [e3,a3,db4]@5 ~ db4 a3 e3 e4", // B A
  AJ: "[ab3,b3,e4]@2 ~ [ab3,b3,e4] ~@2 [gb3,b3,eb4]@6 [gb3,b3,eb4]@3 ~", // E B
  AK: "[gb3,b3,eb4]@3 [e3,a3,db4] ~@2 [e3,a3,db4]@8 ~@2", // B A
  AL: "[gb3,b3,eb4]@3 [e3,a3,db4] ~@2 [e3,a3,db4]@5 ~ [e3,a3,db4]@3 ~", AM: "[gb3,b3,eb4]@15 ~",
  AN: "[[b3,e4,ab4]@3 ~ [b3,e4,ab4]@4 ~@2 [b3,e4,ab4]@3 ~ [b3,eb4,gb4]@8 ~@2 [b3,eb4,ab4]@4 [b3,eb4,gb4]@3 ~]/2", // E B Abm B
  AO: "[a3,db4,e4]@3 ~ [a3,db4,e4]@7 ~ [a3,db4,e4]@3 ~", // A
  AP: "[a3,db4,e4]@5 ~ [a3,db4,e4] ~ [b3,eb4,gb4]@4 [b3,eb4,gb4]@3 ~", // A B
  AQ: "[[b3,e4,ab4]@4 [b3,e4,ab4]@3 ~ [b3,e4,ab4]@2 [b3,gb4]@2 e4 ~ [b3,eb4,gb4]@7 ~ [b3,eb4,gb4] ~ [b3,eb4,ab4]@4 [b3,eb4,gb4]@4]/2", // E B5 B Abm B
  AR: "[a3,db4,e4]@3 ~ [a3,db4,e4]@4 [db4,e4]@2 ~@2 e4@3 ~, ~@8 a3 ~ a3@5 ~", AS: "[a3,db4,e4]@7 ~ [b3,eb4,gb4]@7 ~",
})).s("gm_piano").gain(0.64).pan(0.6)

// chords · synth strings 2
const synth_strings_2 = note(`<
  A@2 B@4 C D@2 ~@8 E@2 F@4 G@2 H@2 I@2 H@2 I@2 J@2 K@3 ~@8 E@2 F@4 G@2 H@2 I@2 H@2 I@2 J@2 K@3 ~@8 L@2 M@4 N@2 O@2 P@2
  O@2 P@2 O@2 P@2 O@2 P@2 O@2 P@2 O@2 P@2
>`.pickRestart({
  A: "[[eb4,g4] [d4,f4], bb3]/2", B: "[~@2 g4 [d4,f4] [eb4,g4]@2 [d4,f4]@2, [ab3,c4,eb4]@3 bb3@5]/4", C: "[ab3,c4,eb4]",
  D: "[bb3,eb4,g4]/2", E: "[[g4,eb5]@6 [f4,d5]@13 [eb4,ab4,c5]@13, bb4@19 ~@13]/2",
  F: "[[g4,eb5]@6 [f4,d5]@13 [eb4,ab4,c5]@13, bb4@5 ~@3]/2", G: "[f4,bb4,d5]/2", H: "[[eb5,g5]@7 [d5,f5]@9, bb4]/2",
  I: "[[ab4,c5,eb5]@3 [bb4,d5,f5]]/2", J: "[f4,bb4,d5]@3 [g4,c5,eb5]@5",
  K: "[[f4,bb4,d5]@3 c5@5 bb4@16, ~ [g4,eb5]@7]/3", L: "[[ab4,e5]@6 [gb4,eb5]@13 [e4,a4,db5]@13, b4@19 ~@13]/2",
  M: "[[ab4,e5]@6 [gb4,eb5]@13 [e4,a4,db5]@13, b4@5 ~@3]/2", N: "[gb4,b4,eb5]/2", O: "[[e5,ab5]@7 [eb5,gb5]@9, b4]/2",
  P: "[[a4,db5,e5]@3 [b4,eb5,gb5]]/2", // A B
})).s("gm_synth_strings_2").gain(0.24)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@4 A@2 B C ~@15 D@2 ~@13 E@2 F@2 G H I@2 ~@6 D@2 ~@13 J@2 K@6 ~ L ~ M ~ M ~ N ~@24
>`.pickRestart({
  A: "bb5 ~@3 bb5 ~@3 bb5 ~@3 bb5 ~@3", B: "ab5 ~@3 ab5 ~@3 ab5 ~@3 ab5 ~@3", C: "g5 ~@15",
  D: "[bb4,bb5]!2 ~ [bb4,bb5]!2 ~ [bb4,bb5]!4 ~ [bb4,bb5]!2 ~@3", E: "d4@2 e4@2 f4 g4@2 a4",
  F: "[eb4@7 g4@5 bb4 ab4 g4 eb4]/2", G: "eb4", H: "f4@4 bb4 ab4 g4 eb4", I: "[eb4@6 g4 f4@9]/2", J: "f4/2",
  K: "[gb4@14 ab4@10 b4@2 a4@2 ab4@2 e4@16 gb4@10 b4@2 a4@2 ab4@2 e4@14 a4@2 gb4@17 ~]/6",
  L: "~@10 [e3,e4]!2 ~@2 [e3,e4]!2", M: "~@10 [e4,e5]!2 ~@2 [e4,e5]!2",
  N: "[b3,b4]!2 ~ [b3,b4]!2 ~ [b3,b4]!2 [b3,b4,b5]!2 ~ [b3,b4,b5]!2 ~ [b3,b4,b5]!2", // B
})).s("gm_string_ensemble_1").gain(0.72).pan(0.8)

// other · alto sax
const alto_sax = note(`<
  ~@27 A ~ B ~ C ~@22 D E F ~ G H I J K ~@20 L M N@2 O P Q R S ~ T U@2 ~ V ~@3 W X@3 ~@2
>`.pickRestart({
  A: "~@6 g5 ~ g5@2 f5@2 eb5@3 ~", B: "~@6 g5@4 f5 eb5 f5@4", C: "~@2 ab5 ~ g5@2 f5@2 f5@2 eb5@2 eb5@3 ~",
  D: "eb5@2 g5@5 ~@7 f5 eb5", E: "f5@2 d5 c5 bb4@3 ~@9", F: "~ g5 f5 eb5 ~@4", G: "~@4 g5@6 f5 eb5 f5@2 d5 c5",
  H: "bb4 ~@3", I: "~@2 ab5@2 g5@2 f5 ~ f5@4 eb5@3 ~", J: "eb6@5 c6 bb5@2", K: "bb5@3 ~@5", L: "e5@2 ab5@12 gb5 e5",
  M: "gb5@2 eb5 db5 b4@3 ~@9", N: "[~@10 gb5@2 e5@2 ab5@7 ~@11]/2", O: "~@2 ab5 ~ ab5@10 gb5 e5", P: "gb5@3 ab5 ~@4",
  Q: "~@2 a5@2 ab5@2 gb5 ~ gb5@4 e5@3 ~", R: "e6@6 db6 b5", S: "b5@5 ~@3", T: "~@5 a5 ab5 gb5",
  U: "[gb5@2 e5@2 gb5@3 e5@7 ~@2]/2", V: "~ a5 ab5 gb5!2 e5 e5@2", W: "~@2 a5@2 ab5@2 gb5@2 gb5@2 e5@2 e5@3 ~",
  X: "[~@14 ab5@27 ~ ab5@2 gb5@2 e5@2]/3",
})).s("gm_alto_sax").gain(0.72)

// other · string ensemble 1
const string_ensemble_1_2 = note("<~@4 A@3 B@2 ~@67 C ~ D ~ D ~ E ~@24>".pickRestart({
  A: "[eb2@5 f2 g2 bb2@6 ab2 g2 ab2@9]/3", B: "eb2/2", C: "~@10 [e3,e4]!2 ~@2 [e3,e4]!2",
  D: "~@10 [e4,e5]!2 ~@2 [e4,e5]!2", E: "[b3,b4]!2 ~ [b3,b4]!2 ~ [b3,b4]!2 [b2,b3,b4]!2 ~ [b2,b3,b4]!2 ~ [b2,b3,b4]!2",
})).s("gm_string_ensemble_1").gain(0.8).pan(0.2)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@9 A@2 B C@2 D@3 ~@50 E@2 F G@2 H@3 ~@32>".pickRestart({
  A: "[~@6 e4@21 ~@5, ~@2 a3@25 ~@5, ~@4 c4@23 ~@5]/2", B: "~@2 eb4@2 c4@2 eb4@9 ~, f4@15 ~",
  C: "[~@3 g4@4 [g3,c4,eb4]@8 ~, ~ bb3@6 ~@9, ~@4 d4@9 ~@19]/2", // Cm
  D: "[[f3,bb3,d4]@13 ~ [g3,c4,eb4]@15 ~ [f3,bb3,d4]@17 ~]/3", E: "[~@6 f4@21 ~@5, ~@2 bb3@25 ~@5, ~@4 db4@23 ~@5]/2",
  F: "~@2 e4@2 db4@2 e4@9 ~, gb4@15 ~", G: "[~@3 ab4@4 [ab3,db4,e4]@8 ~, ~ b3@6 ~@9, ~@4 eb4@9 ~@19]/2",
  H: "[[gb3,b3,eb4]@13 ~ [ab3,db4,e4]@15 ~ [gb3,b3,eb4]@17 ~]/3", // B Dbm B
})).s("gm_acoustic_guitar_steel").gain(0.56).pan(0.1)

// other · music box
const music_box = note(`<
  ~@17 A ~@3 A ~@11 B C B ~@5 D ~ D ~@2 A ~@3 A ~@11 B C B ~@5 E ~ E ~@2 F ~@3 F ~@27
>`.pickRestart({
  A: "g6 ~ ab6 ~ bb6 ~ f6 ~@9", B: "d6 ~ bb5 ~ f5 ~ eb5 ~@9", C: "g5 ~ ab5 ~ bb5 ~ eb6 ~@9",
  D: "~@8 bb5 ~ ab5 ~ g5 ~ eb5 ~", E: "~@8 b5 ~ a5 ~ ab5 ~ e5 ~", F: "ab6 ~ a6 ~ b6 ~ gb6 ~@9",
})).s("gm_music_box").gain(0.72)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  ~@17 A B A B A B C@2 D E F G D E F G ~@13 A B A B A B C@2 D E F G D E F G ~@13 H I H I H I J@2 K L M N K L M N K L M N
  K L M N K L M N K L M N
>`.pickRestart({
  A: "~@3 [c4,eb4] ~@6 [bb3,d4] ~@5", B: "~@3 [ab3,c4] ~@6 [ab3,c4] ~@5", C: "~@3 [bb3,d4] ~@6 [bb3,d4] ~@5",
  D: "~@2 [bb3,eb4]!3 ~@5 bb3 ~ eb4 ~@3", E: "~@2 [bb3,d4]!3 ~@5 bb3 ~ d4 ~@3", F: "~@2 [ab3,c4]!3 ~@5 ab3 ~ c4 ~@3",
  G: "~@2 [ab3,c4]!3 ~@5 bb3 ~ d4 ~@3", H: "~@3 [db4,e4] ~@6 [b3,eb4] ~@5", I: "~@3 [a3,db4] ~@6 [a3,db4] ~@5",
  J: "~@3 [b3,eb4] ~@6 [b3,eb4] ~@5", K: "~@2 [b3,e4]!3 ~@5 b3 ~ e4 ~@3", L: "~@2 [b3,eb4]!3 ~@5 b3 ~ eb4 ~@3",
  M: "~@2 [a3,db4]!3 ~@5 a3 ~ db4 ~@3", N: "~@2 [a3,db4]!3 ~@5 b3 ~ eb4 ~@3",
})).s("gm_electric_guitar_muted").gain(0.48).pan(0.9)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note("<~@67 A@2 B C D@2 E@2 ~@32>".pickRestart({
  A: "[~ [db4,f4]@28 ~@3, [gb3,bb3]@29 ~@3]/2", B: "~ [e4,gb4]@14 ~, [a3,db4]@15 ~", C: "~ [e4,ab4]@15, [b3,eb4]",
  D: "[b3@6 ab3 gb3@9]/2", E: "[b3@10 db4@2 e4@2 gb4@4 b3@13 ~]/2",
})).s("gm_acoustic_guitar_steel").gain(0.64).pan(0.9)

// drums · kick
const kick = s("bd").struct("<~@7 [x ~@6 x ~@2 x ~@3 x ~]!100>").gain(0.72)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~@7 A B A B A B A B A B A B A B A B A B@13 C A B A B A B A B A B A B A B A B@14 A B A B A B A B A B A B A B A B@25
>`.pickRestart({
  A: "x ~ x!6", B: "x!8", C: "x!3 ~ x ~ x ~",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<~@37 [~@14 x!2] ~@15 [~@7 x] ~@12 [~@13 x!2 ~] ~@40>").gain(0.72)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@14 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@14 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@25
>`.pickRestart({
  A: "~ x ~@6",
// … 34 more lines

More by Jon Secada