Strudelify
KeyF♯ majorTempo65 bpm
0:00/0:00
// Du — Peter Maffay
// 65 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 83 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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 · brass section
const brass_section = note(`<
  ~@18 A B ~@2 C D E F G H ~@7 I ~@3 J@2 K@2 L ~@14 M N ~@7 O ~@2 P Q R S T U V W@2 X Y ~@2
>`.pickRestart({
  A: "~@12 [f#4,a4,d5]@5 ~ [g#4,b4,e5]@4 ~@2", B: "[e4,a4,c#5] ~@3",
  C: "~@10 [d#4,f#4,b4] ~ [d#4,f#4,b4]@6 [f#4,b4,d#5]@5 ~", D: "[g#4,b4,e5]@9 ~ [g#4,b4] ~ [g#4,b4,e5]@11 ~",
  E: "[a4,c#5,e5]@9 ~ [a4,c#5,e5] ~ [g#4,b4,e5]@8 ~ b4 b4@2", F: "[g#4,e5]@11 ~ [g#4,b4,e5]@11 ~",
  G: "[a4,c#5,e5]@8 ~@2 [a4,c#5,e5] ~ [b4,c#5,f#5]@8 ~ [b4,c#5,f#5]!2 ~", H: "[a#4,c#5,f#5]@6 f#5 ~ e5 ~ c#5@2 ~@12",
  I: "[f#4,a4,d5]@5 ~ [g#4,b4,e5]@6 [a4,c#5]@6 ~@6", // D E A
  J: "[[d#4,f#4,b4]@2 ~ [d#4,f#4,b4] [f#4,b4]@2 [f#4,b4,d#5]@3 ~ b4@2 [g#4,e5]@10 b4 ~ [g#4,e5]@11 ~ [a4,c#5,e5]@9 ~ [c#5,e5]@2, ~@4 d#4 ~@18 b4@13 ~@10 a4 ~]/2", // B B5 B C#m A C#m
  K: "[[g#4,b4,e5]@8 ~ b4 b4@2 [g#4,b4,e5]@8 ~ b4 ~@2 [g#4,e5]@10 ~@2 [a4,c#5,e5]@8 ~ [a4,c#5,e5]!2 ~, ~@11 b4@6 ~@7]/2", // E C#m A
  L: "[b4,c#5,f#5]@9 [b4,c#5,f#5]!2 ~ [a#4,c#5,f#5]@11 ~", // Bsus2 F#
  M: "[g#4,c5,d#5]@9 ~ [g#4,c5,d#5] ~ [c5,d#5]@9 ~ [g#4,c5,d#5] ~, ~@12 g#4@7 ~@5", // G# Cm G#
  N: "g#4@2 [f#5,g#5] ~ d#5 ~ c5@2 a#4@2 g#4@2 ~@12, g#5 ~@23", // F#sus2
  O: "[g#4,b4,e5] [a#4,c#5,f#5] [b4,d#5] ~, ~@12 c#5 ~@11", // E F# B
  P: "~@15 [f4,g#4,c#5]!2 ~ [f4,g#4,c#5] ~ [f4,g#4,c#5] ~ [f4,g#4,c#5] ~", // C#
  Q: "[g#4,c#5,f5]@5 ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [g#4,c#5,f5] ~ [a#4,c#5,f#5]@9 ~ c#5@2, ~@22 a#4 ~", // C# F#
  R: "[a#4,c#5,f#5] [b4,d#5]", S: "[a#4,c#5,f#5]@7 ~@2 c#5!2 ~ [a#4,c#5,f#5]@10 c#5@2",
  T: "[a#4,f#5]@12 [b4,d#5]@9 ~ d#5@2, ~@22 b4 ~", U: "[a#4,c#5,f#5]@8 ~ c#5!2 ~ [a#4,c#5,f#5]@9 ~ [a#4,c#5] ~",
  V: "[a#4,c#5,f#5]@12 [b4,d#5,f#5]@9 ~ [b4,f#5] ~, ~@11 d#5", // F# B B5
  W: "[[a#4,c#5,f#5]@8 ~ c#5 c#5@2 [a#4,c#5,f#5]@9 ~@3 [a#4,f#5]@11 ~ [b4,d#5,f#5]@10 b4 ~, ~@11 c#5@7 ~@6]/2", // F# D#m B
  X: "[g#4,c#5]@8 ~@2 c#5@2 f#5@2 [g#4,c#5,f#5]!3 ~ [g#4,c#5,f#5] ~ [g#4,c#5,f#5] ~ [g#4,c#5,f#5] ~, f#5@5 ~@7, ~@2 g#4 ~@3", // C#5 C#sus4
  Y: "[g#4,c#5]@6 b4@5 ~ [a#4,f#5]@10 ~@2, f5@11 ~@13", // C#5 D#m
})).s("gm_brass_section").gain(0.36).pan(0.3)

// other · distortion guitar
const distortion_guitar = note("<A B@2 C@2 D E B@2 F ~@73>".pickRestart({
  A: "~@2 f#3 b3", B: "[c#4@6 d#4 c#4]/2", C: "[d#4@6 e4 d#4]/2", D: "g#4@2 f#4@9 d#4",
  E: "g#4@2 f#4@4 e4@2 d#4@2 c#4 b3", F: "b3@3 ~",
})).s("gm_distortion_guitar").gain(0.48).pan(0.9)

// other · timpani
const timpani = note(`<
  ~@9 A B C ~@6 D E F E G H ~ I ~@9 J K L M N H O H P Q ~@13 R S ~@7 T U V W X Y Z AA AB AA AB AC AD AE ~@2
>`.pickRestart({
  A: "~@11 f#3", B: "b2@11 ~@11 f#3@2", C: "b2 ~@2", D: "~@12 d3 ~@5 e3 ~@5",
  E: "a2 ~@2 a2!2 ~ a2 ~@5 a2 ~@2 a2!2 ~ a2 ~@5", F: "e3 ~@2 e3!2 ~ e3 ~@5 e3 ~@2 e3!2 ~ e3 ~@5",
  G: "b2 ~@2 b2!2 ~ b2 ~@5 b2 ~@2 b2!2 ~ b2 ~ b2 ~ b2 ~", H: "e3 ~@23", I: "~@10 b2 ~ e3 ~@11",
  J: "d3 ~@5 e3 ~@5 a2 ~@2 a2!2 ~ a2 ~@5", K: "a2 ~@2 a2!2 ~ a2 ~@5 e3 ~@2 e3!2 ~ e3 ~@5",
  L: "e3 ~@2 e3!2 ~ e3 ~@5 a2 ~@2 a2!2 ~ a2 ~@5", M: "a2 ~@2 a2!2 ~ a2 ~@5 b2 ~@2 b2!2 ~ b2 ~@5",
  N: "b2 ~@2 b2!2 ~ b2 ~ b2 ~ b2 ~@11 b2 ~", O: "~@12 e3 ~@9 b2 ~", P: "~@22 f#2 ~", Q: "g#2 ~@23",
  R: "~@4 g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~ g#2 ~",
  S: "g#3 ~ f#3 ~ d#3 ~ c3 ~ a#2 ~ g#2 ~ c#3 ~@11", T: "e3 ~@5 f#3 ~@5 b2 ~@2 b2!2 ~ b2 ~@5",
  U: "b2 ~@2 b2!2 ~ b2 ~@5 f#2 ~@2 f#2!2 ~ f#2 ~@5", V: "f#2 ~@2 f#2!2 ~ f#2 ~@5 b2 ~@2 b2!2 ~ b2 ~@5",
  W: "b2 ~@2 b2!2 ~ b2 ~@5 c#3 ~@2 c#3!2 ~ c#3 ~@3 c#3 ~", X: "c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ c#3 ~ f#2 ~@9 c#3 ~",
  Y: "f#2 ~@5", Z: "~@12 f#3@5 ~@5 c#3 ~", AA: "f#3 ~@3", AB: "~@12 f#3 ~@9 c#3 ~", AC: "f#3@5 ~@19",
  AD: "~@13 c#3 ~ c#3!7 ~ c#3", AE: "c#3!12 f#2 ~@11",
})).s("gm_timpani").gain(0.42).pan(0.8)

// other · timpani · soft notes
const timpani_soft = note("<~@58 [g#2 ~ g#2 ~@21] ~@20 [c#3!13 ~ c#3 ~@7 c#3 ~] ~@3>")
  .s("gm_timpani").gain(0.18).pan(0.8)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@18 A@2 B C D E F G H I ~@2 J K L@2 M N O P Q R@2 S@2 T ~@9 U@3 V W X Y ~ Z AA@2 AB AC AD AE AF AG AH@5 AI@4 AJ@3 ~
>`.pickRestart({
  A: "[~@12 [d4,f#4,a4]@5 ~ [g#4,b4]@5 ~ [a4,c#5]@4 [e4,a4,c#5] ~ [e4,a4,c#5] ~@5 [e4,a4,c#5]@3 ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~@5, ~@9 e4@5 ~@10]/2", // D G#m A
  B: "[e4,g#4,b4]@6 [e4,g#4,b4] ~@5 [e4,g#4,b4]@5 ~ [e4,g#4,b4] ~@5", // E
  C: "[e4,a4,c#5]@5 ~ [e4,a4,c#5] ~@5 [e4,a4,c#5]@5 ~ [e4,a4] ~@5, ~@9 c#5 ~@2", // A A5
  D: "d#5@6 ~@3 f#5@2 ~, f#4, b4@5 ~ [b4,d#5]@5 ~", E: "e5@19 ~ d#5@2 e5@2, [e4,g#4]@11 ~",
  F: "[f#4,c#5,f#5]@4 ~@4 c#5@2 a4 ~ [g#4,b4]@4 ~@2 b5@2 g#5@2 f#5@2, a4@2 ~ e4@2 ~, ~@4 e5@13 ~@7", // F#5 G#m
  G: "~@10 d#5 e5, g#4@23 ~, e5@5 ~, ~ b4@7", H: "f#5@4 e5@4 c#5@2 a4@2 [f#4,b4,c#5,f#5]@11 ~, a4@7 ~@17",
  I: "[c#5,f#5] ~ [e4,e5] ~ [c#4,c#5] ~ [a#3,a#4] ~ g#4@2 [f#3,f#4] ~@13, f#4@2 ~@6 g#3 ~@15", J: "~@10 e4 d#4",
  K: "c#4 d#4", L: "[c#4@12 e4@4 d#4@13 ~ f#4@2 b4@2 ~@2 f#4@12, ~@17 d#5@7]/2", M: "[a#4,c#5] [d#4,b4]",
  N: "[d4,f#4,a4]@6 [e4,g#4,b4]@5 ~ [e4,a4,c#5]@5 ~ [e4,a4,c#5] ~@5", // D E A
  O: "[e4,a4,c#5]@5 ~ [e4,a4,c#5] ~@5 [e4,g#4,b4]@6 [e4,g#4,b4] ~@5", // A E
  P: "[e4,g#4,b4]@5 ~ [e4,g#4,b4] ~@5 [e4,a4,c#5]@6 [e4,a4,c#5] ~@5", // E A
  Q: "[e4,a4,c#5]@5 ~ [e4,a4,c#5] ~@11 [d#4,f#4,b4]@4 ~@2", // A B
  R: "[d#5@3 f#5@3 [e4,e5]@10 d#5 e5 f#5@2 e5@2 c#5 a4, [f#4,b4]@11 ~ g#4@23 ~ a4@8 ~@4, ~@12 f#5 ~@35]/2", // E B5
  S: "[[b4,e5]@5 ~ b5@2 g#5@2 f#5@2 e5@20 d#5@2 e5@2 [f#4,f#5]@4 e5@4 c#5@2 a4 ~, g#4@17 ~@7, ~@6 b4@11 ~@7]/2", // E5 F#
  T: "[f#4,b4,c#5,f#5]@11 ~ f#4@2 [e4,e5] ~ [c#4,c#5] ~ a#4@2 g#4@2 [f#3,f#4] ~, ~@12 f#5 ~@5 a#3 ~ g#3 ~@3", // F#sus4 E C# F#
  U: "[~@4 e4@8 [c4,d#4]@11 ~ [c#4,g#4]@12 [c4,d#4,f#4,a4]@12 [c#4,e4]@4 ~@2 [c#4,c#5]@6 ~@3 d#4@9, g#3@19 ~@5, ~@2 c#4@10 ~@12 e4@10 ~@14 g#4@23 ~, ~@27 e4@2 ~ [f#4,c5]@5 ~]/3", // Cm C#5 Cdim C#m C# F#dim
  V: "~@2 d#4@5 ~@11 f#4@5 ~, g#4@23 ~, [c#5,e5] [c5,d#5]", W: "f#5@18 e5@5 ~, [f#4,a4,c#5]@23 ~",
  X: "[g#3,c5,d#5,g#5]@23 ~", // G#
  Y: "[g#3,g#5] ~ [f#3,f#5] ~ d#3@2 [c3,c5] ~ [a#2,a#4] ~ g#2@2 [c#4,f4,g#4,c#5]@3 ~@9, ~@4 d#5 ~@5 g#4 ~@13", // G# F# C A# C#
  Z: "~@3 c#4 f4 g#4 [f#4,a#4]@6", AA: "[[f4,g#4]@3 [c#4,f4]@3 [c4,g#4]@9 d#5 c5 a#4 c#5@3 f4 g#4 c#5]/2",
  AB: "c5 g#4 ~@2 g#4 c5 [a#4,f#5]@2 [g#4,f5]@2 c#5 g#4, ~@2 d#4@3 ~@7", // D#m C#
  AC: "f4@6 c#4@2 f4@2 g#4 ~ [a#4,f#5]@4 [g#4,f5]@8", AD: "g#4@5 ~ [f#4,c5]@6 ~@6 g#4@5 ~, d#5@11 ~ [c#4,f4,c#5]@11 ~",
  AE: "[e4,g#4,b4]@6 [f#4,a#4,c#5]@4 ~@2 [d#4,f#4,b4]@7 ~@5", // E F# B
  AF: "[d#4,f#4,b4]@6 ~@6 [c#4,f#4,a#4]@6 [c#4,f#4,a#4] ~@5", // B F#
  AG: "[c#4,f#4,a#4]@6 [c#4,f#4,a#4] ~@5 [d#4,f#4,b4]@7 ~@5", // F# B
  AH: "[[d#4,f#4,b4]@6 [d#4,f#4,b4] ~@5 [f4,g#4]@14 ~@4 [f4,g#4,f5]@5 ~ f#5@19 ~ f5@2 f#5@2 g#5@4 ~@4 d#5@2 b4 ~ [a#4,f#5]@6 [c#5,c#6]@2 [a#4,a#5]@2 [g#4,g#5]@2 ~@20 f5@2 f#5@2 g#5@4 ~@4 d#5@2 b4@2, ~@12 c#5@23 ~ f#4@34 ~ f#4@7 ~@6 f#4@35 ~, ~@36 a#4@22 ~@2 b4@8 ~@22 a#4@16 ~@2 b4@7 ~@5, ~@64 f#5@7 ~@13 f#5@20 ~@8 f#5@8]/5", // B Fm D#m C# A# G#
  AI: "[~ f#4@4 ~ [c#5,c#6]@2 [a#4,a#5]@2 [g#4,g#5]@2 ~@7 a#4@17 b4@12 a#4@6 [c#5,c#6]@2 [a#4,a#5]@2 [g#4,g#5]@2 ~@3 f#4@33, a#4 ~ [f#4,f#5]@7 ~@7, c#5 ~@7 c#5@10 d#5@7 ~@5 [c#5,a#5]@12 ~@6]/4", // C# A# G# C# A# G# F#
  AJ: "[f#5@8 ~@2 b4 ~ [f#4,c#5,a#5,f#6]@6 ~@6, c#6 ~, g#4@17 ~@19, ~@12 f5@5 ~@19]/3", // F#
})).s("gm_string_ensemble_1").gain(0.38).pan(0.8)

// chords · piano
const piano = note(`<
  ~ A B C D@2 E F@2 G H I J K L M N O P Q R S T U V U W X Y Z AA AB AC AD AE AF AG AH AI AJ AK U AL AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE BF@3 BG BH BI BJ BK BL BM BN BO BN BO BN BP BQ BR BS@3
>`.pickRestart({
  A: "~ a#3 c#4 f#4 c#4 a#3 ~ a#3 c#4 f#4 c#4 a#3, f#3@5 ~ f#3@5 ~",
  B: "~ a#3 c#4 f#4 c#4 a#3 ~ a#3 c#4 f#4 c#4 a#3, f#3@7 ~@5 f#3@10 ~@2",
  C: "~@2 b3 ~ b3 f#3 ~@2 b3 ~ b3 f#3, d#3@3 d#4@2 ~@2 f#3@3 ~@2, ~ f#3@3 ~@2 d#3@3 d#4@2 ~",
  D: "[~@2 b3 d#4 b3 f#3 ~ g#3 b3 ~ f#3 ~@3 b3 ~ b3 f#3 ~@2 b3 d#4 b3 f#3, d#3@9 ~@3 e3@4 ~@2 d#3@4 ~@2 d#3@6 d#4@5 ~@3 f#3@6 ~@4, ~@2 f#3@6 ~@14 b3@4 f#3@5 ~@5 d#3@4 ~@8]/2",
  E: "~@2 f#3@2 b3@2 d#4@2 b3@2 f#3@2 ~@2 f#3@2 b3@2 d#4@2 b3@2 f#3 ~, d#3@9 ~@3 d#3@8 ~@4",
  F: "~ a#3 c#4 f#4 c#4 a#3 ~ a#3 c#4 f#4 c#4 a#3, f#3@10 ~@2 f#3@9 ~@3",
  G: "~ f#3 b3 d#4 b3 f#3 ~ f#3 b3 d#4 b3 f#3, d#3 ~ d#3 ~",
  H: "~ f#3 b3 d#4 b3 f#3 b3 f#3 d#3 ~ d#3 b2, d#3@6 ~@3 f#3@2 ~",
  I: "~@2 b3 d#4 b3 f#3 ~@2 a#3 c#4 a#3 f#3, d#3@4 ~@8 c#3@7 ~@5, ~@2 f#3@6 ~@6 f#3@5 ~@5",
  J: "~ f#3 b3 d#4 b3 f#3 ~@2 b3 d#4 b3 f#3, d#3@5 ~ d#3@6, ~@14 f#3@5 ~@5",
  K: "~@4 b3@2 e4@2 b3@2 g#3@2 ~@4 b3@2 d#4@2 b3@2 f#3 ~, e3@3 ~@3 d#3@4 ~@2, ~@2 g#3@6 ~@6 f#3@5 ~@5",
  L: "~ a#3 c#4 f#4 c#4 a#3 f#4 c#4 a#3 c#4 a#3 f#3, f#3@5 ~",
  M: "~@4 b3@2 d#4@2 b3@2 f#3 ~@3 a#3@2 c#4@2 f#4@2 c#4@2 a#3 ~, d#3 ~@5, ~ f#3@3 ~@2 f#3@5 ~",
  N: "e3 ~@2 f#4 d#4 b3 d#3 ~ b3 d#4 b3 f#3, ~ f#3@2 ~@4 f#3@3 ~@2, ~ b3 ~@4",
  O: "d#3@2 ~@2 b3@2 d#4@2 b3@2 f#3 ~@3 a#3@2 c#4@2 f#4@2 c#4@2 a#3 ~, ~@2 f#3@7 ~@3 f#3@11 ~",
  P: "d#3@2 ~@2 b3@2 d#4@2 b3@2 f#3 ~ [d3,d4]@5 ~ [e3,b3]@5 ~, ~@2 f#3@6 ~@4 [f#3,a3]@3 ~@3 [g#3,e4]@3 ~@3", // D E5 F#m C#m
  Q: "[e3,a3,c#4]@2 ~ [e3,a3,c#4]!2 ~ [e3,a3,c#4]@2 ~@4 [e3,a3,c#4]@2 ~ [e3,a3,c#4]!2 ~ [e3,a3,c#4]@2 ~@4", // A
  R: "[e3,g#3,b3]@2 ~ [e3,g#3,b3]!2 ~ [e3,g#3,b3]@2 ~@4 [e3,g#3,b3]@2 ~ [e3,g#3,b3]!2 ~ [e3,g#3,b3]@3 ~@3", // E
  S: "[e3,a3,c#4]@2 ~ [e3,a3,c#4]!2 ~ [e3,a3,c#4]@3 ~ a#3 ~ [e3,a3,c#4]@2 ~ [e3,a3,c#4]!2 ~ [e3,a3,c#4]@3 ~@3", // A
  T: "[f#3,b3,d#4]@2 ~ [f#3,b3,d#4]!2 ~ [f#3,b3,d#4]@4 ~@2 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]!2 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~", // B
  U: "[g#3,b3,e4]@2 ~ [g#3,b3,e4]!2 ~ [g#3,b3,e4]@5 ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]!2 ~ [g#3,b3,e4]@5 ~", // E
  V: "[a3,c#4,e4]@2 ~ [a3,c#4,e4]!2 ~ [a3,c#4,e4]@5 ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]!2 ~ [g#3,b3,e4]@5 ~", // A E
  W: "[a3,c#4,e4]@2 ~ [a3,c#4,e4]!2 ~ [a3,c#4,e4]@4 ~@2 [f#3,b3,c#4,f#4]@2 ~ [f#3,b3,c#4,f#4]!2 ~ [f#3,b3,c#4,f#4]@5 ~", // A F#sus4
  X: "[f#3,a#3,c#4,f#4]@2 ~ [f#3,a#3,c#4,f#4]!2 ~ [f#3,a#3,c#4,f#4]@5 ~ d#3@2 ~@2 b3@2 d#4@2 b3@2 f#3@2, ~@7 f#3@3 ~@2", // F#
  Y: "~@2 f#3 ~ a#3 f#3 ~@2 f#3 ~ b3 f#3, ~ c#3@2 c#4@3 ~ d#3@4 ~, ~@3 d#4",
  Z: "~@4 f#3 d#3 ~@2 b3 ~ b3 g#3, d#3@4 ~@2 e3@5 ~, ~@2 f#3@4 d#4@6 ~@6 e4@5 ~, ~@4 b3@4 ~@6 g#3@5 ~@5",
  AA: "~@5 f#3 ~ f#3 a#3 f#4 c#4 a#3, ~ d#3@4 ~ c#3@3 ~@3, ~ f#3 b3 ~@3, ~ d#4 ~@2",
  AB: "c#4 a#3 f#3 ~ f#3 c#3 ~@2 b3 d#4 b3 f#3, ~@3 a#3@2 ~ d#3@3 ~@3, ~@7 f#3@3 ~@2",
  AC: "~@2 a#3 c#4 a#3 f#3 ~ e3 f#3 ~ b3 f#3, c#3@7 ~@17, ~ f#3@3 ~@5 d#4@3",
  AD: "~@2 b3 ~ b3 f#3 ~@2 b3 d#4 b3 d#4, d#3@10 ~@2 d#3@11 ~, ~ f#3@3 ~@3 f#3@3 ~@2, ~ d#4 ~@2",
  AE: "~@2 a#3@2 c#4@2 f#4@2 c#4@2 a#3 ~@5 b3@2 d#4@2 b3@2 f#3 ~, f#3@9 ~@3 d#3@10 ~@2, ~@7 f#3@3 ~@2",
  AF: "[f#3,a3,d4]@4 ~@2 [e3,g#3,b3,e4]@4 ~@2 [a3,c#4] ~@2 [e3,a3,c#4]!2 ~ [e3,a3,c#4]@3 ~@3, d3@3 ~@3 e3 ~@5", // D E A
  AG: "[e3,a3,c#4]@2 ~ [e3,a3,c#4]!2 ~ [e3,a3,c#4]@5 ~ [e3,g#3,b3]@2 ~ [e3,g#3,b3]!2 ~ [e3,g#3,b3]@5 ~", // A E
  AH: "[e3,g#3,b3]@2 ~ [e3,g#3,b3]!2 ~ [e3,g#3,b3]@4 ~@2 [e3,a3,c#4]@2 ~ [e3,a3,c#4]!2 ~ [e3,a3,c#4]@4 ~@2", // E A
  AI: "[e3,a3,c#4]@2 ~ [e3,a3,c#4]!2 ~ [e3,a3,c#4]@4 ~@2 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]!2 ~ [f#3,b3,d#4]@5 ~", // A B
  AJ: "[f#3,b3,d#4]@2 ~ [f#3,b3,d#4]!2 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]!2 ~ [g#3,b3,e4]@5 ~", // B E
  AK: "[g#3,b3,e4]@2 ~ [g#3,b3,e4]!2 ~ [g#3,b3,e4]@5 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]!2 ~ [a3,c#4,e4]@5 ~", // E A
  AL: "[g#3,b3,e4]@2 ~ [g#3,b3,e4]!2 ~ [g#3,b3,e4]@5 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]!2 ~ [a3,c#4,e4]@2 [a3,c#4,e4] ~ [a3,c#4,e4] ~", // E A
  AM: "[f#3,b3,c#4,f#4]@2 ~ [f#3,b3,c#4,f#4]!2 ~ [f#3,b3,c#4,f#4] ~ [f#3,b3,c#4,f#4] ~ [f#3,b3,c#4,f#4] ~ [f#3,a#3,c#4,f#4]@2 ~ [f#3,a#3,c#4,f#4]!2 ~ [f#3,a#3,c#4,f#4] ~ [f#3,a#3,c#4,f#4] ~ [f#3,a#3,c#4,f#4]@2", // F#sus4 F#
  AN: "~@2 c4@5 ~ g#3 c4 ~ d#3, d#3@13 ~ d#3@7 ~@3, ~ g#3@6 ~@3 g#3@2",
  AO: "c3 ~ g#3 c4 ~ d#3 c3 ~ g#3 c4 g#3 d#3, ~@2 d#3@5 ~ g#3@4 ~@2 d#3@6 ~@4",
  AP: "~@2 c#4 ~@2 g#3 ~@2 c#4 ~@2 g#3, f3@5 ~ f3@5 ~, ~@2 g#3@6 c#4@5 ~ g#3@6 c#4@4, ~@6 f4@7 ~@5 f4@6",
  AQ: "~@4 c#4@2 ~@2 c#4@2 g#3@2 ~@4 c#4@2 ~@2 c#4@2 g#3 ~, f3@5 ~ f3@5 ~, ~ g#3@3 ~@3 g#3@3 ~@2, ~@3 f4@2 ~@4 f4@2 ~",
  AR: "~@2 d#4 ~ d#4 c4 ~ c4 d#4 ~ g#3 d#3, g#3@5 ~ g#3@3 ~@3, ~ c4@3 ~@5 c4@2 ~, ~@3 g#4@4 ~@5",
  AS: "~@2 c#4 f4 c#4 g#3 ~@2 c#4 f4 c#4 g#3, f3@7 ~@5 f3@7 ~@5, ~ g#3@3 ~@3 g#3@3 ~@2",
  AT: "~@2 c#4 f4 c#4 g#3 ~@2 c#4 f4 c#4 g#3, f3@5 ~@7 f3@5 ~@7, ~ g#3@3 ~@3 g#3@2 ~@3",
  AU: "~ g#3 c#4 f4 c#4 g#3 c#4 g#3 f3 ~ f3 c#3, f3@5 ~@13 g#3@4 ~@2",
  AV: "d#3 ~@3 c4@2 ~@2 c4@2 g#3 ~@5 d#4@2 ~@2 d#4@2 c4@2, ~@2 g#3@6 ~@4 g#3@9 ~@3, ~@3 d#4@3 ~ c4@3 ~@2, ~@9 g#4@2 ~",
  AW: "c#3 ~@3 c#4 g#3 c3 ~@2 c4 d#4 c4, ~@2 e3@7 ~@5 d#3@4 ~@6, ~@4 g#3@4 ~@8 g#3@5 ~@3, ~@3 e4@2 ~@7",
  AX: "c#4 ~ e4 ~ g#4 e4 ~@4 g#3@2, ~ g#4@2 c#4@2 ~ a4@6, ~@14 f#4@9 ~, ~@16 d#4@7 ~, ~@18 c4@5 ~",
  AY: "~ c#4 e4 c#5 g#4 e4 ~@3 d#4 c4 d#4, ~@7 c5@4 ~, ~@16 g#4@7 ~",
  AZ: "~ e4 g#4 c#5 e4 c#5 ~ c5 d#5 g#5 d#5 c5, c#4@6 ~@4 g#4 ~ g#4@4 ~@8",
  BA: "c#5@2 a4@2 f#4@2 a4@2 f#4@2 c#4@2 ~@8 c#4@2 f#4 ~, ~@6 f#4@2 f#3@3 ~, ~@14 c#4@4 a3@5 ~",
  BB: "~@4 c4@2 d#4@2 c4@2 g#3 ~ g#4@2 d#4@2 c4@2 g#3@2 d#3@2 g#3@2, d#3@13 ~@11, ~ g#3@3 ~@8",
  BC: "[g#4,g#5] ~ [f#4,f#5] ~ [d#4,d#5] ~ [c4,c5] ~ [a#3,a#4] ~ [g#3,g#4]@2 ~@4 c#4@2 ~@2 c#4@2 [f3,g#3]@2, ~@4 f3@3 ~, ~@7 g#3@3 ~@2, ~@9 f4@2 ~", // G# F# D# C A# G# Fm
  BD: "~@2 c4 d#4 c4 g#3 ~@2 c#4 ~ c#4 g#3, d#3@4 ~@2 f3@5 ~, ~ g#3@3 ~@3 g#3@3 ~@2, ~@9 f4@2 ~",
  BE: "c#4 g#3 f3 ~ f3 c#3 ~@2 c#4 ~ c#4 a#3, ~@6 g#3@5 ~ f#3@10 ~@2, ~@7 a#3@3 ~@2, ~@3 f#4",
  BF: "[~@2 c#4 ~ c#4 g#3 ~@3 g#4 d#4 c4 d#4 c4 g#3 c4 g#3 d#3 ~@2 c#4 ~ c#4 ~@3 c4 g#3 c4 g#3 f#4 c#4 ~@3 f3, f3@9 ~@3 d#3@4 ~@20 f3@4 ~@8 d#3@10 ~@10 g#3@4, ~ g#3@3 ~@3 g#3@6 ~@6 g#3@3 ~ g#3@2 ~@8 c#4@2 ~, ~@3 f4@2 ~@3 c4@2 ~@11 f4@2 ~@2 d#4@2 ~@5 f4@3 ~]/3",
  BG: "c#4 ~ f3 c#3 ~@4 g#3 ~@2 c#4, ~ g#3@3 f3@2 f4@4 g#3@2, ~@5 g#3@2 c#4@2 f3@2 ~",
  BH: "d#4@2 c4@2 g#3@2 ~@4 c4@2 ~@4 c#4@2 ~@2 c#4@2 g#3 ~, ~@6 d#3@4 ~@2 f3@11 ~, ~@4 g#3@2 ~ g#3@3 ~@2, ~@9 f4@2 ~",
  BI: "[e3,g#3,b3,e4]@5 ~ [f#3,a#3,c#4,f#4]@4 ~@2 [b3,d#4,f#4]@2 ~ [b3,d#4,f#4]!2 ~ [b3,d#4,f#4] ~@5", // E F# B
  BJ: "[f#3,b3,d#4]@2 ~ [f#3,b3,d#4]!2 ~ [f#3,b3,d#4]@2 ~@4 [f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]!2 ~ [f#3,a#3,c#4]@3 ~@3", // B F#
  BK: "[f#3,a#3,c#4]@2 ~ [f#3,a#3,c#4]!2 ~ [f#3,a#3,c#4]@4 ~@2 [f#3,b3,d#4]@2 ~ [f#3,b3,d#4]!2 ~ [f#3,b3,d#4]@3 ~@3", // F# B
  BL: "[f#3,b3,d#4]@2 ~ [f#3,b3,d#4]!2 ~ [f#3,b3,d#4]@4 ~@2 [g#3,c#4,f4]@2 ~ [g#3,c#4,f4]!2 ~ [g#3,c#4,f4]@5 ~", // B C#
  BM: "[g#3,c#4,f4]@2 ~ [g#3,c#4,f4]!2 ~ [g#3,c#4,f4] ~ [g#3,c#4,f4] ~ [g#3,c#4,f4] ~ [a#3,c#4,f#4]@2 ~ [a#3,c#4,f#4]!2 ~ [a#3,c#4,f#4]@5 ~", // C# F#
  BN: "[a#3,c#4,f#4]@2 ~ [a#3,c#4,f#4]!2 ~ [a#3,c#4,f#4]@5 ~ [b3,d#4,f#4]@2 ~ [b3,d#4,f#4]!2 ~ [b3,d#4,f#4]@5 ~", // F# B
  BO: "[a#3,c#4,f#4]@2 ~ [a#3,c#4,f#4]!2 ~ [a#3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@2 ~ [a#3,c#4,f#4]!2 ~ [a#3,c#4,f#4]@5 ~", // F#
  BP: "[a#3,c#4,f#4]@2 ~ [a#3,c#4,f#4]!2 ~ [a#3,c#4,f#4]@5 ~ [a#3,c#4,f#4]@2 ~ [a#3,c#4,f#4]!2 ~ [a#3,c#4,f#4]@4 ~@2", // F#
  BQ: "[a#3,c#4,f#4]@2 ~ [a#3,c#4,f#4]!2 ~ [a#3,c#4,f#4]@4 ~@2 [b3,d#4,f#4]@2 ~ [b3,d#4,f#4]!2 ~ [b3,d#4,f#4]@4 ~@2", // F# B
  BR: "[g#3,c#4,f#4]@2 ~ [g#3,c#4,f#4]!2 ~ [g#3,c#4,f#4]@5 ~ [g#3,c#4,f#4]@2 ~ [g#3,c#4,f#4]!2 ~ [g#3,c#4,f#4]@4 g#3 ~, c#2@23 ~", // C#sus4
  BS: "[~@6 b3@5 ~ [a#3,c#4]@18 ~@3 g#2@2 ~@3 f#3@14 ~@20, [g#3,c#4,f4]@5 ~ f#4@6 ~@3 f#2@9 ~@12, c#2@8 ~@4 f#1@39 ~@21, ~@35 a#2@17 ~@20, ~@12 c#3@5 ~@7]/3", // A#m C#
})).s("gm_piano").gain(0.29).pan(0.7)

// chords · synth strings 2
const synth_strings_2 = note(`<
  ~ A@2 B@8 C D E@2 F G@2 H I@2 J K L M@2 N@4 O@5 P@6 Q@3 R@8 S T U V@2 W X@4 Y@5 Z@7 AA@5 AB@3 ~
>`.pickRestart({
  A: "[f#4,a#4,c#5]/2", B: "[[f#4,d#5]@36 [g#4,e5]@5 ~ d#5@54 [a#4,c#5]@46 ~@2 [b4,d#5]@48, b4@47 ~@49, ~@7 f#4@25]/8",
  C: "~ c#5, ~@6 a#4@5 ~", D: "[b4,d#5]@11 ~", E: "[[g#4,e5]@11 ~ d#5@12 [a#4,c#5]@23 ~, b4 ~, ~@12 f#4@35 ~]/2",
  F: "[b4,d#5]@12 [a#4,c#5]@11 ~, f#4@11 ~", G: "[[g#4,b4,e5] d#5@8 [a#4,c#5]@3, ~@4 f#4@43 ~, ~@2 b4@15 ~@7]/2",
  H: "[f#4,b4,d#5]@5 ~ [f#4,a4,d5]@3 [g#4,b4,e5]@3", I: "[[a4,c#5] [g#4,b4], e5@47 ~]/2", J: "[a4,c#5,e5]@11 ~",
  K: "[b4,d#5,f#5]@23 ~", L: "[b4,e5,g#5]@23 ~", M: "[[c#5,e5]@12 [b4,e5,g#5]@35 ~, a5@5 ~@19]/2",
  N: "[[c#5,e5,a5]@11 ~ b4@12 a#4@12 [b4,d#5]@12 [a#4,c#5]@12 [b4,d#5]@23 ~ [g#4,b4,e5]@11 ~, ~@6 [f#4,c#5,f#5]@12 f#4@23 ~@7]/4", // A B A#m B E F#5
  O: "[[b4,d#5]@12 c#5@24 d#5@12 [a#4,c#5]@11 ~ [g#4,e5]@4 d#5@32 c#5@12 [f#4,b4,d#5]@11 ~, f#4@35 ~ f#4@23 ~@5 f#4@43 ~@13, ~@12 a#4@22 ~@2 b4@10 ~@14 b4@35 ~ a#4@10 ~@14]/5", // B A#m C#m B
  P: "[[f#4,a4,d5]@6 [g#4,b4,e5]@6 [a4,c#5]@24 [g#4,b4]@23 ~ [a4,c#5,e5]@23 ~ [b4,d#5,f#5]@23 ~ [b4,e5,g#5]@23 ~ [c#5,e5,a5]@10 ~@2, ~@12 e5@47 ~@85]/6", // D E A G#m A B E A
  Q: "[[b4,e5,g#5]@35 ~ [a4,c#5,e5,a5]@10 ~@2 b4@12 a#4@11 ~, ~@46 f#4@25 ~, ~@48 [c#5,f#5]@23 ~]/3", // E A F#5
  R: "[[c5,d#5]@24 f5@24 [c5,d#5]@12 ~@24 g#5@11 ~, g#4@89 ~@7, ~@24 c#5@23 ~@13 f5@36, ~@60 c#5@35 ~]/8", // Cm
  S: "[c5,d#5,g#5]@23 ~", T: "[c#5,e5]@11 ~ [c5,d#5,f#5]@12, g#5@23 ~", U: "[c#5,e5,g#5] [g#4,c5,d#5,f#5,a5]",
  V: "[[c#5,e5]@11 ~ [c5,d#5,f#5]@12 [c#5,e5]@11 ~ [c5,d#5]@12, g#5, ~@12 f#5@3 ~]/2", W: "[a4,c#5,f#5,a5]@23 ~",
  X: "[[g#4,c5,d#5,g#5]@36 [c#5,f5]@11 ~ [c5,d#5]@12 [c#5,f5]@23 ~ [a#4,c#5,f#5]@11 ~, ~@18 g#4@23 ~@7]/4", // G# C# Cm C# F#
  Y: "[f5@12 [c5,d#5]@23 ~ [c#5,f5]@12 [c5,d#5]@11 ~ [a#4,f#5]@3 ~ f5@32 [c5,d#5]@12 [g#4,c#5,f5]@11 ~, g#4@35 ~ g#4@23 ~@5 g#4@43 ~@13, c#5@5 ~@25 c#5@17 ~@13]/5", // Cm C# Cm D#m Cm C#
  Z: "[[g#4,b4,e5]@6 [a#4,c#5,f#5]@6 [b4,d#5,f#5]@24 [a#4,c#5,f#5]@24 [b4,d#5,f#5]@23 ~ [g#4,c#5,f5]@23 ~ [a#4,c#5]@24 [b4,d#5]@12 [a#4,c#5]@24, ~@9 f#5@5]/7", // E F# B F# B C# A#m B …
  AA: "[~@12 [b4,d#5]@12 [a#4,c#5]@36 [b4,d#5]@12 [a#4,c#5]@35 ~ [b4,d#5,f#5] [b4,d#5,f#5]@10 ~, ~@12 f#5@47 ~ f#5@47 ~@13]/5", // B A#m B A#m B
  AB: "[f#5@8 ~@22 b4@5 ~ [a#4,f#5]@33 ~@3, g#4@17 ~ c#4@13 ~@5, c#5@5 ~@7, ~@24 [c#4,f5]@11 f#3@32 ~@5]/3", // D#m C#
})).s("gm_synth_strings_2").gain(0.35).pan(0.3)

// bass · fretless bass
const bass = note(`<
  ~ A B C D C E F G H I J K L M N O N P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AQ
// … 140 more lines

More by Peter Maffay