Strudelify
Where Have All the Cowboys Gone cover art

Where Have All The Cowboys Gone

Where Have All the Cowboys Gone

Paula Cole

KeyA majorTempo128 bpm
0:00/0:00
// Where Have All the Cowboys Gone — Paula Cole
// 128 bpm, 4/4, key A 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: duplicate parts dropped: ch 8 "Clean Guitar" electric guitar clean (copy of ch 7 "Jazz Guitar" electric guitar jazz); ch 11 "Slow Attack" pad bowed (copy of ch 7 "Jazz Guitar" electric guitar jazz)
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.

// chords · acoustic guitar steel · "Steel String"
const acoustic_guitar_steel = note(`<
  A B C D C E F G ~@13 H A B C B C E F I@5 ~@11 H A B C B C E J@6 K L M N O@8 ~@13 H A B C B C E F P@8 Q@8 R@5 S@6 T@2 U
  ~
>`.pickRestart({
  A: "[f#3,a3,c#4,f#4]@4 f#3@2 f#3@2 [f#3,a3,c#4,f#4]@2 [f#3,a3,c#4,f#4]@2 f#3 ~ [c#3,g#3,c#4,e4]@2, ~ [a3,c#4,f#4] ~@2", // F#m C#m F#m
  B: "g#3@2 g#3@2 g#3@2 g#3@2 [c#3,g#3,c#4,e4]@2 [c#3,g#3,c#4,e4]@2 g#3 ~ [f#3,a3,c#4,f#4]@2, [c#3,c#4,e4]!2 ~@2", // C#m F#m C#m
  C: "f#3@2 f#3@2 f#3@2 f#3@2 [f#3,a3,c#4,f#4]@2 [f#3,a3,c#4,f#4]@2 f#3 ~ [c#3,g#3,c#4,e4]@2, [a3,c#4,f#4]!2 ~@2", // F#m C#m F#m
  D: "g#3@2 g#3@2 g#3@2 g#3@2 [c#3,g#3,c#4,e4]@2 [c#3,g#3,c#4,e4]@2 f#3 ~ [f#3,a3,c#4,f#4]@2, [c#3,c#4,e4]!2 ~@2", // C#m F#m C#m
  E: "g#3@2 g#3@2 g#3@2 g#3@2 [c#3,g#3,c#4,e4]@2 [c#3,g#3,c#4,e4]@2 g#3 ~ [d3,f#3,a3,e4]@2, [c#3,c#4,e4]!2 ~@2", // C#m D C#m
  F: "f#3@2 f#3@2 f#3@2 f#3@2 [d3,f#3,a3,e4]@2 [d3,f#3,a3,e4]@2 f#3 ~ [e3,g#3,b3,e4]@2, [d3,a3,e4]!2 ~@2", // D E Dsus2
  G: "g#3@2 g#3@2 g#3@2 g#3@2 [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]@2 [e3,g#3,b3,e4] ~, [e3,b3,e4]!2 ~@2", // E E5
  H: "~@5 [g#3,c#4,e4]!3", // C#m
  I: "[[g#3,b3,e4,f#4]@4 ~@4 [g#3,b3,e4,f#4]@2 ~@2 e3@2 ~@10 [f#3,b3,d4,f#4]@2 ~@2 b2@2 ~@10 [g#3,c#4,e4,f#4]@2 ~@2 c#3@2 ~@10 [a3,d4,f#4]@2 ~@2 d3@2 ~@6 [g#3,b3,e4,f#4]@2 ~@2 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 [e3,g#3,b3,e4,f#4]@2 [e3,g#3,b3,e4,f#4] ~, e3@3 e3@3 ~ [f#3,b3,d4,f#4]@3 [f#3,b3,d4,f#4]@2 ~ [f#3,b3,d4,f#4]@2 [g#3,c#4,e4,f#4]@3 [g#3,c#4,e4,f#4]@2 ~ [g#3,c#4,e4,f#4]@2 [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 [g#3,b3,e4,f#4]@3 ~@6, ~@2 [g#3,b3,e4,f#4]@2 ~ [g#3,b3,e4,f#4]@2 ~ b2@3 b2@3 ~@2 c#3@3 c#3@3 ~@2 d3@3 d3@3 ~@2 e3@3 e3@3 ~@2]/5", // E Bm C#m D E Bm C#m D …
  J: "[f#3@2 f#3@2 f#3@2 f#3@2 [d3,f#3,a3,e4]@2 [d3,f#3,a3,e4]@2 f#3 ~ [g#3,b3,e4]@2 [g#3,b3,e4,f#4]@4 ~@4 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 e3 ~@11 [f#3,b3,d4,f#4]@2 ~@2 b2@2 ~@10 [g#3,c#4,e4,f#4]@2 ~@2 c#3@2 ~@10 [a3,d4,f#4]@2 ~@2 d3@2 ~@10 [g#3,b3,e4,f#4]@2 ~@2 e3@2 g#3 ~, [d3,a3,e4]@4 [d3,a3,e4]@4 ~@6 e3@8 e3@6 ~@2 [f#3,b3,d4,f#4]@6 [f#3,b3,d4,f#4]@4 ~@2 [f#3,b3,d4,f#4]@4 [g#3,c#4,e4,f#4]@6 [g#3,c#4,e4,f#4]@4 ~@2 [g#3,c#4,e4,f#4]@4 [a3,d4,f#4]@6 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 [g#3,b3,e4,f#4]@6 [g#3,b3,e4,f#4]@4 ~@2 [g#3,b3,e4,f#4]@5 ~, ~@10 [g#3,b3,e4,f#4]@2 ~@4 b2@3 b2@3 ~@2 c#3@3 c#3@3 ~@2 d3@3 d3@3 ~@2 e3@3 e3@3 ~@2]/6", // D E Bm C#m D E Dsus2 Bm …
  K: "[g3,b3,d4]@2 g3!2 [g3,b3,d4,f#4]@2 g3!2, ~ [b3,d4] ~ [b3,d4,f#4]", // G Gmaj7 Bm
  L: "[g3,b3,d4,f#4]@2 g3!2 [g3,b3,d4,f#4]@2 g3!2, ~ [b3,d4,f#4] ~ [b3,d4,f#4]", // Gmaj7 Bm
  M: "[g3,b3,d4,f#4]@3 g3 g3@2 g3@2 [g3,b3,d4,f#4]@4 g3@2 g3@2, ~ [b3,d4,f#4] ~ [b3,d4,f#4]", // Gmaj7 Bm
  N: "[g3,b3,d4,f#4]@4 g3@2 g3@2 [g3,b3,d4,f#4]@4 [g3,b3,d4,f#4]@2 ~ d4, ~@2 [b3,d4,f#4]@2 ~@3 [g3,b3,f#4]", // Gmaj7 Bm Gmaj7
  O: "[[f#3,b3,d4,f#4]@4 ~@4 [f#3,b3,d4,f#4]@2 ~@2 b2@2 ~@10 [g#3,c#4,e4,f#4]@2 ~@2 c#3@2 ~@10 [a3,d4,f#4]@2 ~@2 d3@2 ~@10 [g#3,b3,e4,f#4]@2 ~@2 e3@2 ~@10 [f#3,b3,d4,f#4]@2 ~@2 b2@2 ~@10 [g#3,c#4,e4,f#4]@2 ~@2 c#3@2 ~@10 [a3,d4,f#4]@2 ~@2 d3@2 ~@6 [g#3,b3,e4,f#4]@2 ~@2 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4] ~, b2@6 b2@6 ~@4 c#3@6 c#3@6 ~@4 d3@6 d3@6 ~@4 e3@6 e3@6 ~@2 [f#3,b3,d4,f#4]@6 [f#3,b3,d4,f#4]@4 ~@2 [f#3,b3,d4,f#4]@5 ~ c#3@6 c#3@6 ~@4 d3@6 d3@6 ~@4 e3@6 e3@9 ~, ~@2 [f#3,b3,d4,f#4]@2 ~ [f#3,b3,d4,f#4]@2 [g#3,c#4,e4,f#4]@3 [g#3,c#4,e4,f#4]@2 ~ [g#3,c#4,e4,f#4]@2 [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 [g#3,b3,e4,f#4]@3 [g#3,b3,e4,f#4]@2 ~ [g#3,b3,e4,f#4]@2 ~ b2@3 b2@3 ~ [g#3,c#4,e4,f#4]@3 [g#3,c#4,e4,f#4]@2 ~ [g#3,c#4,e4,f#4]@2 [a3,d4,f#4]@3 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 [g#3,b3,e4,f#4]@3 ~@6]/8", // Bm C#m D E Bm C#m D E …
  P: "[[g#3,b3,e4,f#4]@4 ~@4 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 e3 ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@4 ~@4 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 f#2 ~ [g#3,c#4,e4]@2 [g#3,c#4,e4]@4 ~@4 [g#3,c#4,e4]@2 [g#3,c#4,e4]@2 c#3 ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@4 ~@4 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 f#2 ~ [g#3,c#4,e4]@2 [g#3,c#4,e4]@4 ~@4 [g#3,c#4,e4]@2 [g#3,c#4,e4]@2 c#3 ~ [a3,c#4,f#4]@2 [a3,c#4,f#4]@4 ~@4 [a3,c#4,f#4]@2 [a3,c#4,f#4]@2 f#2 ~ [g#3,c#4,e4]@2 [g#3,c#4,e4]@4 ~@4 [g#3,c#4,e4]@2 ~@2 c#3@2 e4 e4@5 ~@4 [f#3,a3,e4]@2 [f#3,a3,e4]@2 d3 ~ [e3,g#3,b3,e4]@2, e3@3 e3@3 ~ f#2@4 f#2@3 ~ c#3@4 c#3@3 ~ f#2@4 f#2@3 ~ c#3@4 c#3@3 ~ f#2@4 f#2@3 ~ c#3@4 c#3@3 ~ d3@4 d3@3 ~@2, ~@4 [g#3,b3,e4,f#4]@4 ~@12 [a3,c#4,f#4]@4 ~@12 [g#3,c#4,e4]@4 ~@12 [a3,c#4,f#4]@4 ~@12 [g#3,c#4,e4]@4 ~@12 [a3,c#4,f#4]@4 ~@12 [g#3,c#4,e4]@4 ~@2 [g#3,c#4,e4]@4 d4@15 ~@3, ~@55 [f#3,a3]@3 [f#3,a3,e4]@2 ~@4]/8", // E F#m C#m F#m C#m F#m C#m F#m7 …
  Q: "[[g#3,b3,e4]@4 ~@4 [g#3,b3,e4]@2 [g#3,b3,e4]@2 e3 ~ [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 ~@4 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 b2 ~ [g#3,c#4,e4,f#4]@2 [g#3,c#4,e4,f#4]@4 ~@4 [g#3,c#4,e4,f#4]@2 ~@2 c#3@2 [a3,d4,f#4]@2 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@2 [a3,d4,f#4]@2 d3 ~ [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@4 ~@4 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 e3 ~ [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 ~@4 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 b2 ~ [g#3,c#4,e4,f#4]@2 [g#3,c#4,e4,f#4]@4 ~@4 [g#3,c#4,e4,f#4]@2 [g#3,c#4,e4,f#4]@2 c#3 ~ [a3,d4,f#4]@2 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@2 [a3,d4,f#4]@2 d3 ~ [e3,g#3,b3,e4,f#4]@2, ~@2 [g#3,b3,e4]@2 ~@6 [f#3,b3,d4,f#4]@2 ~@6 [g#3,c#4,e4,f#4]@2 ~ [g#3,c#4,e4,f#4]@2 ~@3 [a3,d4,f#4]@2 ~@6 [g#3,b3,e4,f#4]@2 ~@6 [f#3,b3,d4,f#4]@2 ~@6 [g#3,c#4,e4,f#4]@2 ~@6 [a3,d4,f#4]@2 ~@4, ~@3 e3@3 ~ b2@4 b2@3 ~ c#3@4 c#3@3 ~ d3@4 d3@3 ~ e3@4 e3@3 ~ b2@4 b2@3 ~ c#3@4 c#3@3 ~ d3@4 d3@3 ~@2]/8", // E Bm C#m D E Bm C#m D …
  R: "[[g#3,b3,e4,f#4]@4 ~@4 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 e3 ~ [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 ~@4 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 b2 ~ [g#3,c#4,e4,f#4]@2 [g#3,c#4,e4,f#4]@4 ~@4 [g#3,c#4,e4,f#4]@2 ~@2 c#3@2 [a3,d4,f#4]@2 [a3,d4,f#4]@4 ~@4 [a3,d4,f#4]@2 [a3,d4,f#4]@2 d3 ~ [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@4 ~@4 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 e3 ~ [b2,f#3,b3,d4,f#4]@2, ~@2 [g#3,b3,e4,f#4]@2 ~@6 [f#3,b3,d4,f#4]@2 ~@6 [g#3,c#4,e4,f#4]@2 ~ [g#3,c#4,e4,f#4]@2 ~@3 [a3,d4,f#4]@2 ~@6 [g#3,b3,e4,f#4]@2 ~@4, ~@3 e3@3 ~ b2@4 b2@3 ~ c#3@4 c#3@3 ~ d3@4 d3@3 ~ e3@4 e3@3 ~@2]/5", // E Bm C#m D E Bm E Bm …
  S: "[[f#3,b3,d4,f#4]@4 ~@4 [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@2 b2 ~ [g#3,c#4,e4,f#4]@2 [g#3,c#4,e4,f#4]@4 ~@4 [g#3,c#4,e4,f#4]@2 ~@2 c#3@2 [f#3,a3,d4]@2 [f#3,a3,d4,f#4]@4 ~@4 [f#3,a3,d4,e4,f#4]@2 ~@2 d3@2 [g#3,b3,e4,f#4] ~ [g#3,b3,e4,f#4]@4 ~@4 [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@2 e3 ~ [f#3,b3,d4,f#4]@2 [f#3,b3,d4,f#4]@4 ~@4 [f#3,b3,d4,f#4]@2 ~@2 b2@2 [g#3,c#4,e4,f#4]@2 [g#3,c#4,e4,f#4]@4 ~@4 [g#3,c#4,e4,f#4]@2 [g#3,c#4,e4,f#4]@2 c#3 ~ [d3,f#3,a3,d4,f#4]@2, b2@3 b2@3 ~ c#3@4 c#3@3 ~ d3@4 d3@3 ~ e3@4 e3@3 ~ b2@4 b2@3 ~ c#3@4 c#3@3 ~@2, ~@4 [f#3,b3,d4,f#4]@4 ~@12 [g#3,c#4,e4,f#4]@4 ~@2 [g#3,c#4,e4,f#4]@4 f#4 ~@5 [f#3,a3,d4,e4,f#4]@4 ~@2 [f#3,a3,d4,e4,f#4]@4 ~@6 [g#3,b3,e4,f#4]@4 ~@12 [f#3,b3,d4,f#4]@4 ~@2 [f#3,b3,d4,f#4]@4 ~@6 [g#3,c#4,e4,f#4]@4 ~@8]/6", // Bm C#m D E Bm C#m D Bm …
  T: "[[f#3,a3,d4,f#4]@4 ~@4 [f#3,a3,d4,e4,f#4]@2 [f#3,a3,d4,e4,f#4]@2 d3 ~ [g#3,b3,e4,f#4]@2 [g#3,b3,e4,f#4]@4 ~@4 [g#3,b3,e4,f#4]@2 ~@2 e3@4, d3@3 d3@3 ~ e3@4 e3@3 ~@2, ~@2 [f#3,a3,d4,e4,f#4]@2 ~@6 [g#3,b3,e4,f#4]@2 ~ [g#3,b3,e4,f#4]@3]/2", // D E D E
  U: "[f#3,a3,c#4,f#4]@13 ~@3", // F#m
})).s("gm_acoustic_guitar_steel").gain(0.22)

// bass · electric bass pick · "Bass"
const bass = note(`<
  A B C D A B E F ~@10 G H I J A B C B C B K L M D K N ~@8 O P Q R C B C B C B K L M D K L S T U T V D K W X D E Y ~@10
  G H I Z C D C D A B K L C B C B C B K L AA B K L M B K L M B K L M B E L M B K L AB ~
>`.pickRestart({
  A: "f#1@5 ~ f#1 ~ f#1@4 ~@4", B: "c#2@4 ~@2 c#2 ~ c#2@4 ~@4", C: "f#1@4 ~@2 f#1 ~ f#1@4 ~@4",
  D: "c#2@5 ~ c#2 ~ c#2@4 ~@4", E: "d2@5 ~ d2 ~ d2@4 ~@4", F: "e2@4 ~@2 e2 ~ e2@8", G: "g1", H: "a1", I: "b1",
  J: "c#2@7 ~", K: "d2@4 ~@2 d2 ~ d2@4 ~@4", L: "e2@4 ~@2 e2 ~ e2@4 ~@4", M: "b1@4 ~@2 b1 ~ b1@4 ~@4",
  N: "e2@4 ~@2 e2 ~ e2@5 ~@3", O: "g1@7 ~", P: "a1@7 ~", Q: "b1@7 ~", R: "c#2@15 ~", S: "g1@5 ~ g1 ~ g1@4 ~@4",
  T: "g1@5 ~ g1 ~ g1@5 ~@3", U: "g1@4 ~@2 g1 ~ g1@6 ~@2", V: "b1@4 ~@2 b1 ~ b1@5 ~@3", W: "e2@5 ~ e2 ~ e2@4 ~@4",
  X: "b1@5 ~ b1 ~ b1@4 ~@4", Y: "e2@4 ~@2 e2 ~ e2@7 ~", Z: "c#2", AA: "b1@3 ~ b1@2 ~@2", AB: "f#2@11 ~@5",
})).s("gm_electric_bass_pick").gain(0.26)

// chords · pad bowed · "Slow attack"
const pad_bowed = note(`<
  A B A C D B E@2 ~@10 F G H I J K L@2 M@2 N O P Q@2 R ~@8 S ~@3 T U@3 V@2 W X Y@4 ~@3 Z@2 AA AB@2 AC@2 AD AE ~@52
>`.pickRestart({
  A: "[c#4,f#4,a4]@3 ~", B: "[g#4,c#5,e5]@3 ~", C: "[g#4,c#5,e5]@11 ~@5", D: "[c#4,f#4,a4]@13 ~@3",
  E: "[[d4,f#4,a4]@13 ~@2 [b3,g#4]@12 ~@5]/2", F: "~@3 a3@2 d4@3, ~ g3@3", G: "c#4@13 ~@3", H: "b3@13 ~@3",
  I: "g#3@11 ~@5", J: "[c#4,f#4]@3 ~", K: "c#5@3 ~", L: "[[c#4,f#4,a4]@12 ~@3 c#5@13 ~@4]/2",
  M: "[~@15 [g#4,c#5,e5]@13 ~@4]/2", N: "[f#4,a4]@3 ~", O: "[b3,e4,g#4]@3 ~", P: "c#5",
  Q: "[~@4 f#4@3 ~, f#5@21 ~@11]/2", R: "g#4@11 ~@5", S: "[d5,a5]@11 ~@5", T: "[c#4,f#4,a4]@13 ~@3, g#4 ~@15",
  U: "[[g#4,c#5,e5]@13 ~@2 [c#4,f#4,a4]@13 ~@3 [g#4,c#5,e5]@13 ~@4]/3", // C#m F#m C#m
  V: "[[c#4,f#4,a4]@12 ~@3 [g#4,c#5,e5]@12 ~@5]/2", W: "[a3,e4]@3 ~", X: "[e4,b4]@11 ~@5",
  Y: "[~@7 c#5@9 f#5@8 f#4@21 ~@2 [b3,e4,g#4]@11 ~@6, ~@7 f#4@15 ~@42]/4", Z: "[~@8 [b3,d4]@7 ~, ~@15 f#4@14 ~@3]/2",
  AA: "[c#4,e4,g#4]@15 ~", AB: "[f#4@7 ~ f#4@7 ~, ~@15 [b3,e4]@14 ~@3]/2",
  AC: "[[d4,f#4]@15 ~ f#4@15 ~, ~@15 c#4@15 ~@2, ~@16 f#3@7 ~@9]/2", AD: "[a3,d4,f#4]@15 ~", AE: "[b3,e4,f#4]@7 ~",
})).s("gm_pad_bowed").gain(0.14).pan(1)

// chords · pad bowed · "Slow attack" · soft notes
const pad_bowed_soft = note("<~@6 A@2 ~@14 B C D@2 E ~ F ~ G@2 ~ H ~@9 I ~@22 J ~@55>".pickRestart({
  A: "[~@15 e4@12 ~@5]/2", B: "a4@3 ~", C: "[g#4,e5]@13 ~@3", D: "[~@15 [g#4,e5]@13 ~@4]/2", E: "[c#4,f#4,a4]@3 ~",
  F: "d4@3 ~", G: "f#4/2", H: "[b3,e4]@5 ~@3", I: "[a4,e5]@13 ~@3", J: "b3@15 ~",
})).s("gm_pad_bowed").gain(0.07).pan(1)

// chords · electric guitar jazz · "Jazz Guitar"
const electric_guitar_jazz = note(`<
  ~@4 A B C ~@11 D E F G H I J K J L@3 M N M O ~@8 D E F P@3 J Q@2 I R@3 F S T U@2 V W X Y Z AA AB AC AD AE ~@10 D E F
  AF AG AH J AI@2 AH AJ AK@2 AL AM AN AM AO AP AQ AR@2 AS AT@4 AU@2 AV AW AX@7 AY@2 AZ@2
>`.pickRestart({
  A: "[c#4,f#4,a4]", B: "~@5 a3@3", C: "f#3", D: "~@5 d4@3, ~ g3@3, ~@3 a3@5", E: "c#4", F: "b3", G: "g#3@15 ~",
  H: "~@5 a4@3, ~ c#4@3, ~@3 f#4@5", I: "~@3 e4@5, g#4", J: "~@5 a4@3, ~@3 c#4@5", K: "~@10 e4@5 ~, g#4, ~@6 c#4@9 ~",
  L: "[~@6 e4@4 ~@22 f#3@13 ~@3, g#4@16 f#4@29 ~@3, ~@5 c#4@16 ~@3]/3", M: "~@5 f#4@3, ~@3 c#4@5", N: "f#3@15 ~",
  O: "g#4@13 ~@3", P: "[~@26 a4@5 ~@7 e4@9 ~, g#3@9 ~@7, ~@10 c#4@12 c#4@25 ~, ~@14 f#4@13 ~@5 g#4@15 ~]/3",
  Q: "[~@6 c#4@5 ~@2 a4@3, g#4@11 ~@5, ~@3 e4@8 c#4@5]/2", R: "[~@2 a3, f#4@6 f#4@6 f#4@5 ~@7, ~ c#4@2 b3@2 c#4@3]/3",
  S: "d3@8 e3@7 ~", T: "e3@8 b2@7 ~", U: "[b2@3 [b3,d4]]/2", V: "[a3,c#4] [g3,b3]", W: "[f#3,a3] [e3,g3]",
  X: "~@3 f#4@5, d3@15 ~, ~@2 f#3@13 ~, ~ b3@3", Y: "~@10 e4@5 ~, e3@15 ~, ~@2 g#3@13 ~, ~@4 c#4@11 ~, ~@6 g#4@9 ~",
  Z: "~@6 a4@9 ~, a3@15 ~, ~@2 d4@13 ~, ~@4 e4@11 ~", AA: "~@5 a4@2 ~, b3@7 ~, ~ e4@6 ~, ~@2 f#4@5 ~, ~@6 b4@7 ~@3",
  AB: "~@3 d4, ~ b3@7, ~@3 b4@5, ~@5 f#4@3", AC: "~@12 g#4@3 ~, ~@4 c#4@11 ~, ~@10 c#5@5 ~",
  AD: "~@5 a4@2 ~, ~@3 a3@11 ~@2, ~@4 d4@9 ~@3, ~@3 e4@4 ~",
  AE: "~@10 b4@3 ~@3, g#3@13 ~@3, ~@2 b3@11 ~@3, ~@4 e4@9 ~@3, ~@6 f#4@7 ~@3", AF: "g#4@15 ~", AG: "~ [f#4,a4]",
  AH: "e4@2 ~@3 c#4@3, g#4, ~@3 e4@5", AI: "[~@3 c#4@3 g#3 f#3@5 [f#4,a4]@4, g#4@3 ~@5]/2", AJ: "f#4@15 ~",
  AK: "[~@5 f#4@2 f#4@6 [f#4,a4]@3, b3@13 ~@3, ~@2 e4@13 ~@17, ~@2 f#4@3 ~@11, ~@3 b4@10 ~@3]/2", // F#m
  AL: "~@3 e4, b4, e4@3 ~, ~@3 g#4@5", AM: "~@5 f#4@3, ~@3 [c#4,a4]@5", AN: "~@3 e4@4 ~, [c#4,g#4]@7 ~",
  AO: "~@10 b4@5 ~, [c#4,g#4]@15 ~, ~@6 e4@9 ~", AP: "~@10 e4@5 ~, ~@4 a3@11 ~, ~@6 d4@9 ~",
  AQ: "~@3 b4@5, b3, ~ e4@7, ~ f#4@3", AR: "[~@18 f#4@13 ~, a4@31 ~, f#4@9 ~@7, ~@6 c#5@25 ~, ~@12 c#4@19 ~]/2",
  AS: "~@5 a4@3, a3, ~ d4@3, ~@3 e4@5",
  AT: "[~@3 e4@3 ~@23 f#4@3, g#4@8 f#4@16 f#4@5 ~@3, ~@6 c#4@16 ~@5 c#4@5, ~ c#5]/4",
  AU: "[~@5 b3@2 ~@4 [f#4,a4]@5, g#4@11 ~@5, ~@3 e4@4 c#4@9]/2", AV: "[e4,g#4]@15 ~", AW: "[f#4,a4]",
  AX: "[e4@2 ~ e4@3 ~@39 f#4@2 ~@6 e4@2 f#4, g#4@12 f#4@14 f#4@8 f#4@8 f#4@8 f#4@8 f#4@8 f#4@8 f#4@6 ~@2 f#4@8 ~@4 g#4@8 g#4@9 ~, ~@20 c#5@10 c#5@8 c#5@8 c#5@8 c#5@8 b4@8 b4@25 ~@17, ~@78 a4@8 a4@9 ~@3 e4@8 ~@6]/7",
  AY: "[~@26 e4@5 ~, ~ d4@4 d4@11, ~@3 f#4@4 g#4@4 g#4@5, ~@9 e4@4 ~@3]/2",
  AZ: "[~@14 c#5@15 ~@3, c#4@29 ~@3, ~@4 f#4@25 ~@3, ~@6 g#4@23 ~@3, ~@10 a4@19 ~@3]/2",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.6)

// chords · acoustic guitar steel · "Steel String"
const acoustic_guitar_steel_2 = note("<~@17 A@5 ~@19 B@5 ~@33 C@5 ~@38>".pickRestart({
  A: "[~@16 f#4@13 ~@3 e4@14 ~@2 f#4@14 ~@2 [e4,g#4]@8 ~@8, ~@14 g3@15 ~@2 [a3,c#4]@15 f#3@16 ~@18, ~@15 [b3,d4]@14 ~@18 [b3,d4]@15 ~ c#4@9 ~@8]/5", // E A Bm
  B: "[~@16 [d4,f#4]@13 ~@3 [c#4,e4]@14 ~@2 [d4,f#4]@13 ~@3 g#4@9 ~@7, ~@15 [g3,b3]@14 ~ e3@15 ~ f#3@14 ~@2 g#3@11 ~@7, ~@31 a3@15 ~ b3@13 ~@3 [c#4,e4]@10 ~@7]/5", // D C#m D G C#m
  C: "[~@16 f#4@15 ~ [c#4,e4]@15 ~@17 [e4,g#4]@11 ~@5, ~@14 g3@16 ~ a3@16 ~ [d4,f#4]@15 c#4@12 ~@5, ~@15 [b3,d4]@16 ~@16 b3@15 g#3@12 ~@6]/5", // C#m E D Bm
})).s("gm_acoustic_guitar_steel").gain(0.25)

// chords · acoustic guitar steel · "Steel String" · soft notes
const acoustic_guitar_steel_3 = note("<~@18 A@2 B@2 ~@58 C@3 ~@39>".pickRestart({
  A: "[g4 ~@13 e3@16 ~@2]/2", B: "[~@7 g#3@5 ~@4]/2", C: "[~@15 e3@15 f#3@17 ~]/3",
})).s("gm_acoustic_guitar_steel").gain(0.15)

// chords · rock organ · "Organ 3"
const rock_organ = note(`<
  A@2 B@2 C@2 D E ~@10 F G H I@3 J@2 K@3 L@2 M D E ~@8 F N H O@3 P@4 Q R@4 S@8 T@4 U ~@10 V N H W@3 P@2 X@3 U J@4 Y@2 D
  Z@8 T@4 AA@8 U AB ~
>`.pickRestart({
  A: "[[f#5,a5]@16 [e5,g#5]@7 ~ [c#6,e6]@7 ~, c#5@22 ~@2 f6 ~@7]/2", // F#m E C#m
  B: "[[f#5,a5]@15 ~ [e5,g#5]@7 ~ [c#6,e6]@7 ~, c#5@23 ~@9]/2", C: "[[f#5,a5]@15 ~ g#5@16, c#5@15 ~, ~@8 e5@7 ~]/2",
  D: "[a4,d5,f#5]", E: "[b4,e5,g#5]@15 ~", F: "[g4,b4,d5]", G: "~ [a4,c#5]@15, e4, ~ d4 ~@14", H: "[f#4,b4,d5]",
  I: "[[e4,g#4]@2 [f#5,a5]@2 [e5,g#5] [c#6,e6], c#5@3 ~]/3", J: "[[f#5,a5]@2 [e5,g#5] [c#6,e6], c#5@3 ~]/2",
  K: "[[f#5,a5] [e5,g#5] [d5,f#5,a5], c#5@11 ~@5]/3", L: "[[e5,g#5] [d5,f#5], b4]/2", M: "[c#5,e5,g#5]",
  N: "[e4,a4,c#5]", O: "[[e4,g#4]@2 [f#5,a5]@2 [e5,g#5] [c#6,e6], c#5@5 ~]/3",
  P: "[[f#5,a5]@2 [e5,g#5] [c#6,e6], c#5@25 ~@7]/2", Q: "[d5,f#5,a5]",
  R: "[g#5 d5 [g#4,c#5] [a4,d5], b4 ~, e5@7 ~ f#5@24]/4", // C#5 D5
  S: "[[e5,g#5] ~@5 [g#4,c#5] [a4,d5], b4@3 ~, ~@16 d5@79 ~@33, ~ g4@4 ~@3, ~@3 f#5@5]/8", // E C#5 D5
  T: "[[e5,g#5] d5 [g#4,c#5] [a4,d5], b4 ~, ~ f#5@3]/4", U: "[b4,e5,g#5]", V: "[b4,d5], g4@7 ~",
  W: "[[e4,g#4]@2 [f#5,a5]@2 [e5,g#5] [c#6,e6], c#5@41 ~@7]/3", X: "[[f#5,a5] g#5 [d5,f#5,a5], c#5@11 ~@5, ~ e5@2]/3",
  Y: "[[f#5,a5] [e5,g#5], c#5]/2", // F#m E
  Z: "[[e5,g#5] d5 [g#4,c#5] [a4,d5] [e5,g#5] d5 [g#4,c#5] [a4,d5], b4 ~ b4 ~, ~@16 f#5@49 ~@15 f#5@48]/8", // E C#5 D5 E C#5 D5
  AA: "[[e5,g#5] d5 [g#4,c#5] [a4,d5] [e5,g#5] d5 [g#4,c#5] [a4,d5], b4@32 ~@32 b4@33 ~@31, ~@16 f#5@49 ~@15 f#5@48]/8", // E C#5 D5 E C#5 D5
  AB: "[a4,c#5,f#5]@7 ~@9", // F#m
})).s("gm_rock_organ").gain(0.06).pan(1)

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

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!120 ~@2>").gain(0.57)

// drums · hihat
const hihat = s("hh").struct("<[x!7 ~]!120 ~@2>").gain(0.43)

// drums · open hat
const open_hat = s("oh").struct("<[~@7 x]!120 ~@2>").gain(0.36)

// drums · shaker
const shaker = s("sh").struct("<[x!8]!120 ~@2>").gain(0.36)

stack(
  acoustic_guitar_steel, bass, pad_bowed, pad_bowed_soft, electric_guitar_jazz, acoustic_guitar_steel_2,
  acoustic_guitar_steel_3, rock_organ, kick, snare, hihat, open_hat, shaker
)

More by Paula Cole