Strudelify

Schenk mir eine Sommerliebe

Borg Andy

KeyG majorTempo122 bpm
0:00/0:00
// Schenk mir eine Sommerliebe — Borg Andy
// 122 bpm, 4/4, key G 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; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(122/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.

// other · pad poly
const pad_poly = note("<~ A B C D E ~@8 F G H I@2 ~@2 J K ~@20 L M ~@6 F G H I@2 ~@2 J K ~@20 N O ~@25>".pickRestart({
  A: "~@4 g3 a3 b3 d4", B: "~@4 g5 a5 b5 d6", C: "~@4 d5 e5 f#5 a5", D: "~@4 e5 g5 a5 ~", E: "g5 ~",
  F: "~@2 b3 d4 g4 d4 b3 a3", G: "[c4,e4,g4]@3 ~@7 b3@4 g3@2, g3@5 ~@3", H: "[d4,f#4]@4 a3 ~ c4@4 b3@6, a3@3 ~@13",
  I: "[[c4,e4]@4 g3 ~@9 b3@18, g3@3 ~@29]/2", J: "~ a3 d4 a4 ~ a4 d5@2", K: "~@6 a5@9 ~", L: "~@4 d4 e4 g4 a4",
  M: "g4@9 ~@7", N: "~@7 a5", O: "d6@13 ~@3",
})).s("gm_pad_poly").gain(0.39).pan(0.7)

// bass · electric bass finger
const bass = note(`<
  ~ A B C D E F E G H I J K L M N O P Q R@2 S T E U V U W E X Y Q U V M Z M AA U AB M AC E AD E G H I J K L M N O P Q
  R@2 S T E U V U W E X Y Q U V M Z M AA U AA AE AF H AG AH E U V U W E X Y Q U V M Z AI AJ AK Y E U V U W E X AL
>`.pickRestart({
  A: "g1 ~ g1@2 b1@2 d2@2 g1 ~ g1@2 c2@2 d2@2", B: "g1 ~ g1@2 c2@2 d2@2 g1 ~ g1@2 a1@2 b1@2",
  C: "d1 ~ d1@2 f#1@2 a1@2 d1 ~ d1@2 f#1@2 a1@2", D: "c1 ~ c1@2 e1@2 g1@2 c1 ~ c1@2 a1@3 ~",
  E: "g1 ~ g1@2 d2@2 e2@2 g1 ~ g1@2 d2@2 e2@2", F: "g1 ~ g1@2 d2@2 e2@2 b1@2 a1@2 g1@2 a1@2",
  G: "g1 ~ g1@2 d2@2 e2 ~ g1 ~ g1@2 d2@2 e2@2", H: "a1 ~ a1@2 e1@2 g1@2 a1 ~ a1@2 e1@2 g1@2",
  I: "a1 ~ a1@2 e1@2 g1@2 a1 ~ a1@2 e1@2 g1 ~", J: "d2 ~ d2@2 a1@2 c2@2 d2 ~ d2@2 a1@2 c2@2",
  K: "d2 ~ d2@2 a1@2 c2@2 d2 ~ d2@2 a1@2 c2 ~", L: "g1 ~ g1@2 d2@2 e2 ~ g1 ~ g1@2 d2@2 e2 ~",
  M: "g1 ~ g1@2 d2@2 e2@2 g1 ~ g1@2 a1@2 b1 ~", N: "c2 ~ c2@2 g1@2 a1 ~ c2 ~ c2 ~ a1@2 c2 ~",
  O: "d2 ~ d2@2 a1@2 c2@2 d2 ~ d2@2 c2@2 d2 ~", P: "c2 ~ c2@2 g1@2 a1@2 c2 ~ c2@2 a1@2 g1 ~",
  Q: "g1 ~ g1@2 d2@2 e2@2 g1 ~ g1@2 d2@2 e2 ~", R: "c2 ~ c2@2 g1@2 a1 ~ c2 ~ c2@2 g1@2 a1 ~",
  S: "d2 ~ d2@2 a1@2 c2 ~ d2 ~ d2@2 a1@2 c2 ~", T: "d2 ~ d2@2 a1@2 c2 ~ d2 ~ d2@2 e2@2 d2 ~",
  U: "g1 ~ g1@2 d2@2 e2@2 g1 ~ g1@2 a1@2 b1@2", V: "c2 ~ c2@2 a1@2 g1 ~ c2 ~ c2@2 b1@2 a1@2",
  W: "c2 ~ c2@2 g1@2 a1@2 c2 ~ c2@2 b1@2 a1@2", X: "g1 ~ g1@2 d2@2 e2 ~ g1 ~ g1@2 a1@2 b1@2",
  Y: "d2 ~ d2@2 a1@2 b1@2 d2 ~ d2@2 b1@2 a1@2", Z: "c2 ~ c2@2 g1@2 a1 ~ c2 ~ c2@2 b1@2 a1 ~",
  AA: "d2 ~ d2@2 a1@2 c2 ~ d2 ~ d2@2 c2@2 b1 ~", AB: "c2 ~ c2@2 g1@2 a1@2 c2 ~ c2@2 b1@2 a1 ~",
  AC: "d2 ~ d2@2 a1@2 c2@2 d2 ~ d2@2 c2@2 b1 ~", AD: "g1 e1 d1 e1", AE: "e2 ~ e2@2 b1@2 d2@2 e2 ~ e2@2 b1@2 d2 ~",
  AF: "c2 ~ c2@2 g1@2 a1@2 c2 ~ c2@2 g1@2 c2@2", AG: "d2 ~ d2@2 a1@2 b1 ~ d2 ~ d2@2 a1@2 b1 ~",
  AH: "d2 ~ d2@2 a1@2 b1@2 d2@2 e2@2 d2@2 b1@2", AI: "g1 ~ g1@2 d2@2 e2 ~ g1 ~ g1@2 a1@2 b1 ~",
  AJ: "d2 ~ d2@2 a1@2 b1 ~ d2 ~ d2@2 b1@2 a1 ~", AK: "g1 ~ g1@2 b1@2 d2@2 g1 ~ g1@2 b1@2 e2@2",
  AL: "d2 ~ d2@2 a1@2 b1@2 d2 ~@7",
})).s("gm_electric_bass_finger").gain(0.4)

// other · synth brass 1
const synth_brass_1 = note("<~ A B C D ~@8 E@2 ~@35 E@2 ~@55>".pickRestart({
  A: "g3 a3 b3 d4 ~@4", B: "g5 a5 b5 d6 ~@4", C: "d5 e5 f#5 a5 ~@4", D: "c5 d5 e5 g5 ~@4",
  E: "[[c4,e4]@4 [b3,d4]@3 ~ [b3,d4]@2 [a#3,c#4]@4 [b3,d4]@6 b4@2 d5@2 g5@2 d5@2 ~@4]/2", // C Bm A#m Bm
})).s("gm_synth_brass_1").gain(0.33)

// other · synth brass 1 · soft notes
const synth_brass_1_soft = note("<~@14 [~@12 b4@2 d5 ~] ~@36 [~@12 b4@2 d5 ~] ~@55>").s("gm_synth_brass_1").gain(0.19)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~ A@2 B C D E ~@3 F@2 ~@2 G H I J@2 K@2 ~@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 R@2 T@3 ~@3 F@2 ~@2 G H I J@2 K@2 ~@2 L@2
  M@2 N@2 O@2 P@2 Q@2 R@2 U@2 V W X Y Z AA L@2 M@2 N@2 O@2 P@2 Q@2 R@2 AB@2 AC L@2 M@2 N@2 O@2
>`.pickRestart({
  A: "[[d3,g3,b3]@31 ~]/2", B: "[d3,f#3,a3]@15 ~", C: "~@4 c4 g3 e3 ~, c3@15 ~, e3@3 ~, g3@5 ~@3",
  D: "d3@9 ~ d3@2 c3@4, [g3,b3]", E: "[b2,g3,b3]@15 ~",
  F: "[[a4,c5]@2 ~@2 [b4,d5]@2 [a4,c5]@3 ~ [g4,b4]@3 ~ [f#4,a4]@4 ~@14]/2", G: "~@2 b3 d4 g4 d4 b3 a3",
  H: "g3@5 b3@2 g3", I: "a3@3 c4@2 b3@3", J: "[g3@7 b3@9]/2", K: "[~ c5, c4@31 ~]/2",
  L: "[d5@4 ~@2 e5@2 d5@4 c5 ~ c5@4 b4@4 a4@4 g4@5 ~]/2", M: "[e5@5 ~ e5@2 d5@4 c5@2 d5@6 ~@10 d5@2]/2",
  N: "[e5@5 ~ e5@2 d5@4 c5@2 d5@4 b4@6 ~@6 b4@2]/2", O: "[d5@2 ~ d5 c5@2 b4 a4@5 ~@4]/2",
  P: "[d5@5 ~ e5@2 d5@4 c5 ~ c5@4 b4@4 a4@4 g4@6]/2", Q: "[g5@5 ~ g5@2 f#5@4 e5@2 d5@9 ~@7 g4@2]/2",
  R: "[g5@2 ~ g5 f#5@2 e5 d5@2 b4@2 ~@4 g4]/2", S: "[c5@4 ~@2 d5@2 b4@4 a4@2 g4@7 ~@11]/2",
  T: "[c5@3 ~ d5@2 b4@4 ~@2 a4@2 ~@8 [d5,d6]@2 [c5,c6]@2 [b4,b5]@2 [c5,c6]@2 [b4,b5]@14 ~@4, ~@7 g4@15 ~@2]/3", // D C B C B
  U: "[c5@4 ~@2 d5@2 b4@4 a4@2 g4@7 ~@5 [b4,b5]@2 [c5,c6]@2 [b4,b5]@2]/2", // B C B
  V: "[a4,a5]@9 ~ [a4,a5]@2 [g4,g5]@2 [f#4,f#5]@2", W: "e5, e4@3 ~", X: "e5", Y: "e5@3 g5", Z: "a5@13 ~ a5@2",
  AA: "d6@3 ~", AB: "[c5@4 ~@2 d5@2 b4@4 a4@2 g4@7 ~@3 [g4,g5]@2 [a4,a5]@2 [b4,b5]@2 [g4,g5]@2]/2", AC: "[d5,d6]@15 ~",
})).s("gm_string_ensemble_1").gain(0.28).pan(0.8)

// other · electric guitar clean
const electric_guitar_clean = note("<~@18 A@2 ~@35 A@2 ~@20 B C D ~@27>".pickRestart({
  A: "[~@2 e4 d4 g4 d4 b3 d4@3 ~@6]/2", B: "~@2 b3 ~@3 e4 ~@3 g4 ~@5", C: "~@2 c4 ~@3 e4 ~@3 g4 ~@5",
  D: "~@2 a3 ~@3 c4 ~@3 e4 ~@5",
})).s("gm_electric_guitar_clean").gain(0.47).pan(0.9)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@2 B C D@2 E@2 F@2 G@2 H@2 I J K L M N O@2 P Q R S T U V W@2 X R Y Z AA AB AC AD AA AB AC AD AE AF F@2 G@2 H@2 I J K
  L M N O@2 P Q R S T U V AG@2 X R Y Z AA AB AC AD AH AI AJ AK AL@2 Q R S T U V AM@2 X R Y Z AA AB AC AD AN Q R S T U V
  AO@2
>`.pickRestart({
  A: "[~@8 [d4,g4,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4]!3, ~@15 g3@3 ~@14]/2", // G
  B: "~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4]!2 ~", C: "[a3,d4,f#4,a4]!2 ~ [a3,d4,f#4,a4] ~ [a3,d4,f#4,a4]!3",
  D: "[[g3,c4,e4,g4]@2 [g3,c4,e4,g4] ~@3 [g3,c4,e4,g4]@2 ~@2 [g3,c4,e4,g4]@2 [g3,c4,e4,g4]@2 ~@2 [d4,g4,b4]@2 [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2 [g3,d4,g4,b4]@2 [g3,d4,g4,b4]@2, ~@15 g3@3 ~@14]/2", // C G
  E: "[~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4]!2 ~ [d4,g4,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4], ~@15 g3@3 ~@14]/2", // G
  F: "[[g3,d4,g4,b4]!2 ~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~@2 [c4,e4,a4] [a3,c4,e4,a4] ~ [a3,c4,e4,a4] ~ [a3,c4,e4,a4] ~ [a3,c4,e4,a4], ~@7 [g3,d4,g4,b4] ~@8, ~@15 a3@3 ~@14]/2", // G Am G
  G: "[~ a4 [a3,c4,e4,a4]@2 ~@2 [a3,c4,e4,a4]@2 ~@2 [a3,c4,e4,a4]@2 ~@5 a4 [a3,d4,f#4,a4]@2 ~@2 [a3,d4,f#4,a4]@2 ~@2 [a3,d4,f#4,a4]@2 ~@2 [a3,d4,f#4,a4]@2, [a3,c4,e4] ~@6 [a3,c4,e4,a4] f#4 ~@7, ~@15 [a3,d4]@2 ~@15]/2", // Am D Am D5
  H: "[[a3,d4,f#4,a4]!2 ~ [a3,d4,f#4,a4] ~ [a3,d4,f#4,a4] ~@2 [d4,g4,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~ [g3,d4,g4,b4], ~@7 [a3,d4,f#4,a4] ~@8, ~@15 g3@3 ~@14]/2", // D G D
  I: "[g3,d4,g4,b4]@2 [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2 ~@3 g3, ~@7 [g3,d4,g4,b4]", // G
  J: "~ c5 [g3,c4,e4,c5]@2 ~@2 [g3,c4,e4,c5]@2 ~@2 [g3,c4,e4,c5]@2 ~@2 [g3,c4,e4,c5]@2, [c4,e4] ~@7", // C
  K: "[a3,d4,f#4,a4]!2 ~ [a3,d4,f#4,a4] ~ [a3,d4,f#4,a4] ~ [a3,d4,f#4,a4]", // D
  L: "[g3,c4,e4,c5]!2 ~ [g3,c4,e4,c5] ~ [g3,c4,e4,c5] ~ [g3,c4,e4,c5]", // C
  M: "[g3,d4,g4,b4]@2 [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2 ~@3 g3, ~@7 [g3,g4,b4]", // G
  N: "[c4,e4,c5]@2 [g3,c4,e4,c5]!2 ~ [g3,c4,e4,c5] ~ [g3,c4,e4,c5]", // C
  O: "[[g3,c4,e4,c5]@2 [g3,c4,e4,c5]@2 ~@2 [g3,c4,e4,c5]@2 ~@2 [g3,c4,e4,c5]@2 ~@5 a4@3 [a3,d4,f#4,a4]@2 [a3,d4,f#4,a4]@2 ~ a4 [a3,d4,f#4,a4]@2 [a3,d4,f#4,a4]@2 [a3,d4,f#4,a4]@2, ~@7 [g3,c4,e4,c5] [d4,f#4]@2 ~@6, ~@15 a3@5 ~@4 [a3,d4,f#4]@2 ~@6]/2", // C D C D
  P: "[a3,d4,f#4,a4]!8", Q: "[d3,g3,d4,g4,b4] [g3,d4,g4,b4]!4 [d3,g3,d4,g4,b4]!3, ~ d3@2 d3@2 ~@3",
  R: "[d3,g3,d4,g4,b4]!8", S: "[c3,e3,g3,c4,e4,c5]!6 [c3,e3,g3,c4,e4]!2, ~@3 c5",
  T: "[d4,g4]!2 [d3,g3,d4,g4]!2 [d3,g3,d4,g4,b4]!4, [d3,g3,b4] b4 ~@2", // G5 G
  U: "[c3,e3,g3,c4,e4,c5]@2 [c3,e3,g3,c4,e4,c5]!4 [e3,g3,c4] [d3,g3,d4], ~@3 [e4,c5]", // C G5 C
  V: "[d3,g3,d4,g4]!2 [d3,g3,d4]!2 [d3,g3,d4,g4,b4]!2 [g3,d4,g4]!2, b4 [g4,b4] ~ [d3,b4]", // G5 G G5 G
  W: "[[d3,g3,d4,g4,b4]!2 [d3,g3,d4,g4]!5 [a3,d4,f#4] [a3,d4,f#4] [a2,d3,a3,d4,f#4] [a2,d3,a3,d4,f#4,a4]!4 [a2,d3,a3,d4] [a2,d3,a3,d4,f#4], ~ b4!3 a4 ~@2 a4, ~@14 [a2,d3]@4 ~@10 f#4 ~@3]/2", // G G5 D D5 D D5
  X: "[d3,g3]!2 [d3,g3,d4,g4,b4]!3 [g3,d4,g4,b4]!2 [d3,g3,d4,g4,b4], [d4,g4,b4]@2 ~@3 d3@2 ~", // G5 G
  Y: "[c3,e3,g3,c4,e4,c5]@2 [c3,e3,g3,c4,e4,c5]!4 [e3,g3,c4,e4,c5] [d3,g3,d4,g4,b4]", // C G
  Z: "d3!2 [d3,g3,d4,g4] [g3,d4,g4] [g3,d4,g4,b4] [d3,g3,d4,g4,b4] [d3,g3,d4,g4]!2, [g3,d4,g4,b4] b4 ~ b4, ~@3 d3@2 ~@3", // G5 G G5 G
  AA: "[g3,c4,e4,c5]@2 [g3,c4,e4,c5] [e3,g3,c4,e4,c5]!2 [c3,e3,g3,c4,e4,c5]!2 [d3,g3,d4,g4,b4], e3@3 c3@2 ~@3", // C G
  AB: "[d3,g3,d4,g4,b4]!4 [d3,g3,d4]!2 [d3,g3,d4,g4,b4]!2, ~@2 [g4,b4] ~", // G G5 G
  AC: "[d3,a3,d4,f#4,a4]@2 [a2,d3,a3,d4,f#4,a4] [d3,a3,d4,f#4,a4]!2 [a2,d3,a3,d4,f#4,a4] [a2,d3,a3,d4] [d3,g3,d4], ~@3 a2@2 ~ [f#4,a4]@2", // D D5 G5 F#m
  AD: "[d3,g3,d4,g4,b4]!2 [d3,g3,d4,g4]!2 [d3,g3,d4,g4,b4]!4, ~ b4 ~@2", // G G5 G
  AE: "[d3,g3,d4,g4,b4]@2 [d3,g3,d4,g4,b4]@2 [d3,g3,d4,g4]@2 [d3,g3,d4,g4]@2 [d3,g3,d4,g4,b4]@2 [d3,g3,d4,g4,b4]@2 [d3,g3,d4,g4,b4]@2 ~ g3, ~@2 b4@2 ~@3 [d3,g3,d4,g4,b4]", // G G5 G
  AF: "[d4,g4,b4] ~ [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2 ~@2 [g3,d4,g4,b4]@2", // G
  AG: "[[d3,g3,d4,g4,b4]!2 [d3,g3,d4,g4]!5 [a3,d4,f#4] [a3,d4,f#4] [a2,d3,a3,d4,f#4] [a2,d3,a3,d4,f#4,a4]!4 [a2,d3,a3,d4,f#4]!2, ~ b4!3 a4 ~@2 a4, ~@7 [a2,d3]@2 ~@7]/2", // G G5 D D5
  AH: "[d3,a3,d4,f#4,a4]@2 [d3,a3,d4,f#4,a4] [d3,a3,d4,f#4,a4]@2 [d3,a3,d4,f#4,a4]!3", // D
  AI: "[e3,b3,e4,g4,b4]@2 [e3,b3,e4,g4,b4]@2 [e3,b3,e4,g4,b4]@2 [e3,b3,e4,g4,b4]@4 [e3,b3,e4,g4,b4]@2 ~ b4 [e3,b3,e4,g4,b4]@2, ~@6 [e3,b3,e4,g4] ~", // Em
  AJ: "[e3,g3,c4,e4,c5]!3 [e3,g3,c4,e4]!2 [e3,g3,c4,e4,c5]!3, ~@3 c5@2 ~@3", // C
  AK: "[e3,a3,c4,e4,a4]!3 [e3,a3,c4,e4,a4]@2 [e3,a3,c4,e4,a4]!3", AL: "[d3,a3,d4,f#4,a4]!8",
  AM: "[[d3,g3,d4,g4,b4]!2 [d3,g3,d4,g4]!4 [d3,g3,d4] [a3,d4,f#4] [a3,d4,f#4] [a2,d3,a3,d4,f#4] [a2,d3,a3,d4,f#4,a4]!4 [a2,d3,a3,d4,f#4]!2, ~ b4!3 a4 ~@2 a4, ~@12 g4 ~ [a2,d3]@4 ~@14]/2", // G G5 D D5
  AN: "[a3,d4,f#4] [a2,d3,a3,d4,f#4] [a2,d3,a3,d4,f#4,a4]!4 [a2,d3,a3,d4] [a2,d3,a3,d4,f#4], a4 ~@2 a4, ~@12 f#4 ~@3", // D D5 D
  AO: "[[d3,g3,d4,g4,b4]!2 [d3,g3,d4,g4]!5 [a3,d4,f#4] ~@8, ~ b4!3 ~@4, ~@7 [a2,d3]@2 ~@7]/2", // G G5 D D5
})).s("gm_acoustic_guitar_steel").gain(0.08).pan(0.9)

// other · glockenspiel
const glockenspiel = note(`<
  ~ A B C D E ~@4 F ~@12 G H I J I K L ~ G H M N O P Q ~ O P R S@2 ~@3 F ~@12 G H I J I K L ~ G H M N O P Q ~@5 T U G H
  I J I K L ~ G H M N O P Q ~@2 G H I J I K L ~
>`.pickRestart({
  A: "g4 ~ a4 ~ b4 ~ d5 ~@9", B: "g6 ~ a6 ~ b6 ~ d7 ~@9", C: "d6 ~ e6 ~ f#6 ~ a6 ~@9",
  D: "c6 ~ d6 ~ e6 ~ g6 ~ e6 ~ g6 ~ a6 ~@3", E: "g6 ~@15", F: "c7 ~@3 d7 ~ c7 ~@3 b6 ~@3 a6 ~",
  G: "d6 ~@5 e6 ~ d6 ~@3 c6 ~ c6 ~", H: "~@2 b5 ~@3 a5 ~@3 g5 ~@5", I: "e6 ~@5 e6 ~ d6 ~@3 c6 ~ d6 ~", J: "~@14 d6 ~",
  K: "~@2 b5 ~@11 b5 ~", L: "d6 ~@5 d6 ~ c6 ~@3 b5 ~ a5 ~", M: "g6@2 ~@4 g6 ~ f#6 ~@3 e6 ~ d6 ~", N: "~@14 g5 ~",
  O: "g6 ~@5 g6 ~ f#6 ~@3 e6 ~ d6 ~", P: "~@2 b5 ~@11 g5 ~", Q: "d6 ~@5 e6 ~ c6 ~@3 b5 ~ a5 ~",
  R: "d6 ~@3 e6 ~ c6 ~@5 b5 ~ a5 ~", S: "[~@3 d7 c7 b6 c7 d7@5 ~@4]/2", T: "~@7 a6", U: "d7@7 ~@9",
})).s("gm_glockenspiel").gain(0.22)

// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
  ~@2 A ~ B C D ~@4 E ~@6 F ~@2 G ~@5 H ~@5 H@3 ~ I ~ H ~ I J ~@5 E ~@6 F ~@2 G ~@5 H ~@5 H@3 ~ I ~ K ~@9 H ~@5 H@3 ~ I
  ~@6 H ~@2 L
>`.pickRestart({
  A: "~@14 [d4,g4,b4] ~", B: "~@14 [c4,e4,g4] ~", C: "~@2 a3 ~@3 a2@2, ~ d4, ~@6 a3 ~",
  D: "d4 ~ a3 ~@3 a3 g3, g2@7 ~ d4@7 ~, ~@3 a2", E: "~@2 c3 ~@5", F: "~@2 g3 a3@2 ~@3", G: "~ a3 ~@6", H: "~ g3@5 ~@2",
  I: "~ a3@5 ~@2", J: "~@3 b3 [a3,c4] ~ [a3,c4] ~", K: "~ d3@7", L: "~ d4 ~@2, d3@13 ~@3",
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.2)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_3 = note("<~@14 [~@4 g2 ~@3] ~@36 [~@4 g2 ~@3] ~@55>")
  .s("gm_electric_guitar_clean").gain(0.12).pan(0.2)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~@7 A B C D E F G H I J K L M N O P ~@21 A B C D E F G H I J K L M N O P ~@47
>`.pickRestart({
  A: "[g3,d4,g4,b4] ~ [g3,d4,g4,b4]!2 [g3,d4,g4] [d4,g4,b4] [g3,d4,g4,b4] [d4,g4,b4]", // G G5 G
  B: "[g3,d4,g4,b4] ~ [g3,d4,g4,b4] g4 ~@2 [g3,d4,g4,b4] [d4,g4,b4]", // G
  C: "[a3,c4,e4,a4] ~ [a3,c4,e4,a4] [c4,e4,a4] [a3,c4,e4] ~ [a3,c4,e4,a4] [e4,a4]", // Am A5
  D: "c4 ~ [a3,c4,e4,a4] [e4,a4]!2 ~ [a3,c4,e4,a4] ~", E: "f#4 ~ [a3,d4,f#4,a4]!2 ~@2 [a3,d4,f#4,a4] [f#4,a4]",
  F: "[a3,d4,f#4] ~ [a3,d4,f#4,a4]!2 f#4 ~ [a3,d4,f#4,a4] [d4,f#4,a4]", // D
  G: "[g3,d4,g4,b4] ~ [g3,d4,g4,b4] [g4,b4] [g3,d4,g4,b4] [g3,g4,b4] [g3,d4,g4,b4] [g3,d4]", // G G5
  H: "[d4,g4] [g4,b4] [g3,d4,g4,b4] ~ [g3,d4,g4,b4] ~ [g3,d4,g4] ~", // G5 G G5
  I: "[g3,c4,e4,c5] [c4,e4,c5] [g3,c4,e4,c5] [e4,c5] [c4,e4] [g3,c4] [g3,c4,e4,c5]!2", // C C5 C
  J: "f#4 ~ [a3,d4,f#4,a4] [a3,d4,f#4] [a3,d4,f#4,a4] ~ [a3,d4,f#4,a4]!2", // D
  K: "[g3,c4,e4,c5] [g3,c4,e4] [g3,c4,e4,c5] ~ e4 ~ [g3,c4,e4,c5]!2", // C
  L: "[d4,g4,b4] ~ [g3,d4,g4] ~ [g4,b4] ~ [g3,d4,g4,b4]!2", // G G5 G
  M: "[c4,e4,c5] [g3,c4,e4,c5]!2 [g3,c4] [c4,e4] ~ [g3,c4,e4,c5] ~", // C C5 C
  N: "[e4,c5] [g3,e4] [g3,c4,e4,c5]!2 e4 [g3,c4,e4,c5]!3", // C
  O: "[a3,d4,f#4] [a3,f#4,a4] [a3,d4,f#4,a4] [d4,f#4] [a3,d4,f#4]!2 [a3,d4,f#4,a4] [a3,f#4,a4]", // D
  P: "[a3,d4,f#4] [a3,f#4] [a3,d4,f#4,a4] [a3,f#4,a4] [a3,d4,f#4,a4] [a3,f#4] [a3,d4,f#4,a4]!2", // D
})).s("gm_acoustic_guitar_steel").gain(0.07).pan(0.2)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@7 A@2 B@2 C@2 D@2 E F G@2 H@2 I@2 ~@21 A@2 B@2 C@2 D@2 E F G@2 H@2 I@2 ~@37 J@2 K ~@7
>`.pickRestart({
  A: "[g3,b3,d4]/2", B: "[a3,c4,e4]/2", C: "[f#3,a3,c4,d4]/2", D: "[d4@5 c#4@2 d4@9, [g3,b3]]/2", E: "[c4,e4,g4]",
  F: "[a3,d4,f#4]", G: "[e4@3 d4@2 c4@2 [b3,d4]@9, g3, c4@5 ~@11]/2", H: "[g3,c4,e4]/2", I: "[a3,d4,f#4]/2",
  J: "[g4@16 f#4@15 ~, d4]/2", K: "g4, d4 ~@15",
})).s("gm_synth_strings_1").gain(0.23)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!105 [x!3 ~]>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<~ A@5 B A@7 B A@3 B A@3 C A@20 B A@23 C A@13 C A@7 C A@7 B C A@7 D>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2", C: "~ x ~@2", D: "~ x!2 ~",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@67 [~@7 x] ~@13 [~@7 x] ~@7 [~@7 x] ~@17>").gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~ [x!4]!105 [x!3 ~]>").gain(0.43)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~ A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B ~ A B A B ~ A B A B A B A B A B A B A B A B A@2 B A B A B A C
>`.pickRestart({
// … 64 more lines

More by Borg Andy