Strudelify

Leaving on a Jet Plane

Peter, Paul & Mary

KeyG majorTempo118 bpm
0:00/0:00
// Leaving on a Jet Plane — Peter, Paul & Mary
// 117.8 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 5 "STRINGS" named as a string part, played on string ensemble 1 (its acoustic guitar steel patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 120 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(117.8/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 · fretless bass · "BASS"
const bass = note(`<
  A@3 B C B A B D E F B A B A G H@2 F G F G F G H I F G F G F G H I H I F G F G F G H I F G F G F G H I F G F G F G H I
  F G F G F G H I H I F G F G F G H I F G F G F G H I F G F G F G H I F G F G F G H I F G F G F G@2 H@2 I H I H F@2 J@2
  ~
>`.pickRestart({
  A: "g1@9 ~ g1@2 d1@9 ~ d1@2", B: "c1@9 ~ c1@2 g1@9 ~ g1@2", C: "g1@9 ~ g1@2 ~@6 g1@6, ~@3 d1@2 ~",
  D: "d1@9 ~ d1@2 ~@6 d1@6, ~@3 a1@2 ~", E: "d1@9 ~ d1@2 a1@9 ~ a1@2", F: "g1 d2", G: "c1 g1", H: "d1 a1",
  I: "d1@12 a1@11 ~", J: "[~@24 g1@3 ~ g1@2 d1@6 g1@12, g1@7 ~@17, ~@6 d1@7 ~@11]/2",
})).s("gm_fretless_bass").gain(0.48)

// chords · piano
const piano = note(`<
  ~ A@2 B A B A B C@2 A B A B A B C@2 A B A B A B D@2 A B A B A B D@4 A B A B A B E@2 A B A B A B D@2 A B A B A B D@2 A
  B A B A B D@4 A B A B A B D@2 A B A B A B E@2 A B A B A B D@2 A B A B A B D@2 A B A B A B@2 C D@4 C A@2 F@2 ~
>`.pickRestart({
  A: "[g3,b3,d4]", B: "[g3,c4,e4]", C: "[a3,d4,f#4]", D: "[a3,d4,f#4]/2", E: "[f#3,a3,d4]/2", F: "[[g3,b3,d4]@7 ~]/2",
})).s("gm_piano").gain(0.4)

// chords · acoustic guitar nylon · "GUITAR"
const acoustic_guitar_nylon = note(`<
  ~ A B C D E A C F G H E D I A C F@2 A E B E H C F J H I B I H C K@4 H E H E H I F J H I A E A E F J A E D C H C K@2 A
  I B C H I K@4 H E B C A C F J D E B C D C F J A I A I B I F J H C D E B I F J A E D C D C E L F J F J G A B M N ~
>`.pickRestart({
  A: "~@6 b3@2 ~@3 b3, g2, b4@5 b4@7, ~@2 b3@4 ~@2 b3@3 ~, ~ d4@2 d4",
  B: "~@8 b4 b4@3, [b3,d5], ~ g4@2 g4@3, ~@3 b4@5 ~@4", C: "~@11 g3, c3@5 ~ e3@6, ~@4 e4@9 ~@5 e4@6, ~@3 g3@5 g3@3 ~",
  D: "~@11 b4, [g2,b4] d2, ~ b3@2 b3, ~@2 g4", E: "~@11 g4, [c3,g4] g2, ~ g3@2 g3, ~@2 e4",
  F: "~@6 a3@2 ~@3 a3, d3, a4@5 a4@7, ~@2 a3@4 ~@2 a3@3 ~, ~ d4@2 d4",
  G: "~@11 a3, d3@5 ~ f#3@6, ~@4 f#4@9 ~@5 f#4@6, ~@3 a3@5 a3@3 ~",
  H: "~@11 b3, g2@5 ~ g3@6, ~@4 g4@9 ~@5 g4@6, ~@3 b3@5 b3@3 ~",
  I: "~@6 g3@2 ~@3 g3, c3, g4@5 g4@7, ~@2 g3@4 ~@2 g3@3 ~, ~ c4@2 c4",
  J: "~@6 a3@2 ~@3 a3, d3@11 ~, a4@5 a4@6 ~, ~@2 a3@4 ~@2 a3@3 ~, ~ d4@2 d4",
  K: "[~@23 a4, [d3,a4]@6 a2@11 a4@6 ~, ~@3 a3@6 a3@5 f#4@4 ~@2 f#4@4, ~@4 f#4@2 d3@3 a2@3, ~@11 a4@4 a3@3 ~@3 a3@3]/2", // D5
  L: "~@11 a4, [d3,a4] a2, ~ a3@2 a3, ~@2 f#4", M: "~@5 b3 ~@5 b3, [g2,b4]!2, ~@2 b3@3 ~@3 b3@3 ~, ~ g4 ~ g4",
  N: "b3!2 [g2,b3,g4,b4]@2, [g2,g4,b4] ~", // G
})).s("gm_acoustic_guitar_nylon").gain(0.31).pan(0.4)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@2 B@7 C@8 D@6 E@8 F@3 G H@6 E@24 F@3 G H@6 E@32 I J@2 G K G K L@2 M N O ~
>`.pickRestart({
  A: "[g2,b3,g4,b4]@3 ~ [b3,g4,b4]@2 [g2,b3,g4,b4]@2 ~@2 [b3,g4,b4]@2 [g2,b3,g4,b4]@2 ~@2 [b3,g4,b4]@2 [g2,b3,g4,b4]@2 ~@2 [b3,g4,b4]@2", // G Em G Em G Em G Em
  B: "[[g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 ~ [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4], ~@11 [b3,b4]@13 ~@11 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12, ~@23 [g3,e4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4,g4]@13]/7", // G Em G Em G Em G C …
  C: "[[d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 ~ [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4], ~@11 [a3,f#4,a4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4,g4]@13, ~@23 [b3,b4]@13 ~@11 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12]/8", // D G Em G Em G Em G …
  D: "[[d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [a3,f#4,a4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4]@13, ~@23 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12]/6", // D G Em G Em G Em G …
  E: "[[c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 ~ [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [g3,e4,g4]@24 [a3,f#4,a4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4]@13, ~@47 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12]/8", // C D G Em G Em G Em …
  F: "[[c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 ~ [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4], ~@11 [g3,e4,g4]@24 ~]/3", // C D C
  G: "[d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4]", // D
  H: "[[d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [a3,f#4,a4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4]@13, ~@23 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12]/6", // D G Em G Em G Em G …
  I: "[c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4]", // C
  J: "[[c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 ~ [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4], ~@11 [g3,e4,g4]@13]/2", // C D C
  K: "[d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4]", // D
  L: "[[d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [a3,f#4,a4]@13]/2", // D G Em G Em G Em G …
  M: "[g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4]", // G Em G Em G Em G Em
  N: "~ b4@3 [g4,b4]@2 [g2,b3,g4,b4]@4 [b3,g4,b4]@2 [b3,g4,b4]@4 [g2,b3,g4,b4]@2 [b3,g4,b4]@3 ~ [g2,g4,b4]@2, [g2,b3,g4]@4 ~@17 b3@2 ~", // G Em G Em G
  O: "~ b4@20 ~@3, [g2,b3,g4]@11 ~", // G
})).s("gm_string_ensemble_1").gain(0.26).pan(0.7)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<A@2 B@7 C@16 D@8 E F D@32 E F D@32 G@7 H@2 F E F E I@2 A J ~@2>".pickRestart({
  A: "~@2 g2 ~@2 g2 ~@2 g2 ~@2 g2",
  B: "[~@2 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 d3 ~@2 d3 ~@2 d3 ~@2 d3, ~@11 g2@13 ~@11 g2@13 ~@11 g2@13 ~@12, ~@23 c3@13 ~@11 c3@13 ~@11 c3@13]/7",
  C: "[~@2 d3 ~@2 d3 ~@2 d3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 d3 ~@2 d3 ~@2 d3 ~@2 d3, ~@11 d3@13 ~@11 c3@13 ~@11 c3@13 ~@11 c3@13, ~@23 g2@13 ~@11 g2@13 ~@11 g2@13 ~@12]/8",
  D: "[a4@2 d3 d3@2 d3 d3@2 d3 d3@2 ~@3 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 d3 ~@2 d3 ~@2 d3 ~@2 d3, ~@11 d3@13 ~@11 c3@13 ~@11 c3@13 ~@11 c3@13, ~@23 g2@13 ~@11 g2@13 ~@11 g2@13 ~@12]/8",
  E: "a4@2 d3 d3@2 d3 d3@2 d3 d3@2 d3", F: "~@2 d3 ~@2 d3 ~@2 d3 ~@2 d3",
  G: "[a4@2 d3 d3@2 d3 d3@2 d3 d3@2 ~@3 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@2 c3, ~@11 d3@13 ~@11 c3@13 ~@11 c3@13 ~@12, ~@23 g2@13 ~@11 g2@13 ~@11 g2@13]/7",
  H: "[~@2 c3 ~@2 c3 ~@2 c3 ~@5 d3 ~@2 d3 ~@2 d3 ~@2 d3, ~@11 c3@13]/2",
  I: "[~@2 d3 ~@2 d3 ~@2 d3 ~@5 g2 ~@2 g2 ~@2 g2 ~@2 g2, ~@11 d3@13]/2", J: "~@4 [g2,b3]@2 ~@4 g2@2 g2@4 ~@2 g2@3 ~@3",
})).s("gm_string_ensemble_1").gain(0.13).pan(0.7)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  ~@17 A@6 B@8 C@3 D E ~@15 F@6 B@8 C@3 D G@6 B@32 H I@2 D J D J K@2 L M N ~
>`.pickRestart({
  A: "[~@9 [d3,a3,f#4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [a3,f#4,a4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4]@13, ~@23 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12]/6", // D G Em G Em G Em G …
  B: "[[c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 ~ [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [g3,e4,g4]@24 [a3,f#4,a4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4]@13, ~@47 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12]/8", // C D G Em G Em G Em …
  C: "[[c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 ~ [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4], ~@11 [g3,e4,g4]@24 ~]/3", // C D C
  D: "[d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4]", // D
  E: "[d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@6", // D
  F: "[~@9 [a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [a3,f#4,a4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4]@13, ~@23 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12]/6", // D G Em G Em G Em G …
  G: "[[d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 g4 [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 g4 [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [a3,f#4,a4]@13 ~@11 [g3,e4]@13 ~@11 [g3,e4]@13, ~@23 [b3,b4]@13 ~@11 [b3,b4]@13 ~@12]/6", // D G Em G Em G Em G …
  H: "[c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4]", // C
  I: "[[c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 [g3,e4,g4] [c3,g3,e4,g4]@2 ~ [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4], ~@11 [g3,e4,g4]@13]/2", // C D C
  J: "[d3,a3,f#4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4] [a3,f#4,a4]@2 [a3,f#4,a4]", // D
  K: "[[d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 [a3,f#4,a4] [d3,a3,f#4,a4]@2 ~ [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4], ~@11 [a3,f#4,a4]@13]/2", // D G Em G Em G Em G …
  L: "[g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4] [g2,b3,g4,b4]@2 [b3,g4,b4]", // G Em G Em G Em G Em
  M: "~ b4@3 [g4,b4]@2 [g2,b3,g4,b4]@4 [b3,g4,b4]@2 [b3,g4,b4]@4 [g2,b3,g4,b4]@2 [b3,g4,b4]@3 ~ [g2,g4,b4]@2, [g2,b3,g4]@4 ~@17 b3@2 ~", // G Em G Em G
  N: "~ b4@20 ~@3, [g2,b3,g4]@11 ~", // G
})).s("gm_string_ensemble_1").gain(0.08)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft_2 = note(`<
  ~@17 A@8 B@8 C D E ~@15 F@8 B@8 C D B@32 G@7 H@2 D C D C I@2 J K ~@2
>`.pickRestart({
  A: "[~@14 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 d3 ~@2 d3 ~@2 d3 ~@2 d3, ~@11 d3@13 ~@11 c3@13 ~@11 c3@13 ~@11 c3@13, ~@23 g2@13 ~@11 g2@13 ~@11 g2@13 ~@12]/8",
  B: "[a4@2 d3 d3@2 d3 d3@2 d3 d3@2 ~@3 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 d3 ~@2 d3 ~@2 d3 ~@2 d3, ~@11 d3@13 ~@11 c3@13 ~@11 c3@13 ~@11 c3@13, ~@23 g2@13 ~@11 g2@13 ~@11 g2@13 ~@12]/8",
  C: "a4@2 d3 d3@2 d3 d3@2 d3 d3@2 d3", D: "~@2 d3 ~@2 d3 ~@2 d3 ~@2 d3", E: "a4@2 d3 d3@2 d3 d3@6",
  F: "[~@9 d3@2 ~@3 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 d3 ~@2 d3 ~@2 d3 ~@2 d3, ~@11 d3@13 ~@11 c3@13 ~@11 c3@13 ~@11 c3@13, ~@23 g2@13 ~@11 g2@13 ~@11 g2@13 ~@12]/8",
  G: "[a4@2 d3 d3@2 d3 d3@2 d3 d3@2 ~@3 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@5 g2 ~@2 g2 ~@2 g2 ~@5 c3 ~@2 c3 ~@2 c3 ~@2 c3, ~@11 d3@13 ~@11 c3@13 ~@11 c3@13 ~@12, ~@23 g2@13 ~@11 g2@13 ~@11 g2@13]/7",
  H: "[~@2 c3 ~@2 c3 ~@2 c3 ~@5 d3 ~@2 d3 ~@2 d3 ~@2 d3, ~@11 c3@13]/2",
  I: "[~@2 d3 ~@2 d3 ~@2 d3 ~@5 g2 ~@2 g2 ~@2 g2 ~@2 g2, ~@11 d3@13]/2", J: "~@2 g2 ~@2 g2 ~@2 g2 ~@2 g2",
  K: "~@4 [g2,b3]@2 ~@4 g2@2 g2@4 ~@2 g2@3 ~@3", // G
})).s("gm_string_ensemble_1").gain(0.04)

// drums · tambourine
const tambourine = s("tb").struct("<~ A@11 B A@2 B@3 ~@99 B C ~>".pickRestart({
  A: "~ x", B: "~@2 x!2", C: "x!3 ~",
})).gain(0.48)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@12 [~@2 x] ~@2 [~@2 x]!3 ~@99 [~@2 x] [~ x ~@4] ~>").gain(0.32)

// drums · congas
const congas = s("conga:13").struct("<~ [~ x]!14 [~@6 x ~@2 x!2 ~]!3 [~ x]!100 [~ x ~@2] ~>").gain(1.54)

// drums · congas
const congas_2 = s("conga:18").struct(`<
  ~
  [x ~ x!2 ~ x ~@2 x!2 ~ x]!14
  [x ~ x!2 ~ x ~@2 x ~@2 x]!3
  [x ~ x!2 ~ x ~@2 x!2 ~ x]!100
  [x ~ x ~@2 x!2 ~@5]
  ~
>`).gain(1.54)

stack(
  bass, piano, acoustic_guitar_nylon, string_ensemble_1, string_ensemble_1_soft, string_ensemble_1_2,
  string_ensemble_1_soft_2, tambourine, tambourine_soft, congas, congas_2
)

More by Peter, Paul & Mary