Strudelify

Que c'est triste Venise

Charles Aznavour

KeyC♯ minorTempo74 bpm
0:00/0:00
// Que c'est triste Venise — Charles Aznavour
// 74 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 49 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(74/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 · string ensemble 1
const string_ensemble_1 = note("<A@5 ~@6 B C@8 D@2 E@4 F@2 G@8 H@4 I@7 J@2>".pickRestart({
  A: "[~@18 g5@15 ~ f#5@16 [c5,e5]@16 [d5,f#5]@16 [c5,e5]@16 [d5,f#5]@16 [c5,e5]@16 [g4,b4,d5]@16 ~@14, ~@18 [b4,d5]@31 ~ a4@80 ~@30]/5", // C D C D C G Bm
  B: "~@18 [c4,e4]@10 ~ [d4,f#4]@2 [e4,g4]", // C D Em
  C: "[~@2 [f#4,a4]@16 [d4,g4,b4]@32 [f4,a4,c5]@16 [e4,g#4,b4]@16 [c4,e4,a4]@32 [d#4,g4]@16 f#4@11 e4@2 [f#4,a4]@3 [d4,b4]@32 [c4,e4,g4,c5]@32 [e4,g4]@16 f#4@16 ~@8 g4@3 a4@2 f#4, ~@50 d4@33 ~@31 c4@33 ~@79 d4@30, ~@114 a4@29 ~@67 [a4,c5]@33 ~@13, ~@130 d4@3 ~@8 g4@5 g4@26 ~@70 g3@14]/8", // F#m G F E Am D# F#m G …
  D: "[~@2 g4@3 b4@2 d5@2 ~ [a#4,d#5]@8 g#5@19 c6@2 c#6@3 c6@3 a#5 g#5 g5 ~ f5 g5@14]/2", // D#5
  E: "[~@5 g5@2 c6@3 a#5@2 ~ [g5,g#5] ~ [d#5,f5] ~@2 f5@23 d#5@8 ~@21 f5@4 ~@7 f6@22 g#5@3 c#6@3 g5 g#5 g5 ~@2 g5@14, ~@49 d#6@22 ~@5 a#5@5 ~@32 f5@2 ~@13, ~@67 d#5@5 ~@2 g5@4 ~ c#6@4 ~@45]/4", // G#maj7 D#sus2
  F: "[~@5 a#4@2 c#5@3 g5@3 f5 g5 f5 ~ e5 f5@32 [c#4,f4,c#5,f5]@10 ~ [d#4,g4,d#5,g5]@2 [f4,g#4,f5,g#5]]/2", // C# D# Fm
  G: "[~@2 [g5,a#5]@8 [g#5,c6]@7 ~ [d#4,g#4,c5]@32 [f#4,a#4,c#5]@16 [f4,a4,c5]@16 [c#4,f4,a#4]@32 [e4,g#4]@16 g4@11 [f4,g#4]@2 [g4,a#4]@3 [d#4,c5]@32 [c#4,f4,g#4,c#5]@32 [f4,g#4]@16 g4@16 ~@8 g#4@3 a#4@2 g4, ~@2 [g4,a#4]@16 ~@32 d#4@33 ~@31 c#4@33 ~@95 g#3@14, ~@114 a#4@29 ~@3 g#4@3 ~@61 [a#4,c#5]@33 ~@13, ~@130 d#4@3 ~@93 d#4@30]/8", // Gm G# F# F A#m E Fm Gm …
  H: "[~@2 g#4@3 c5@2 d#5@2 ~ [b4,e5]@8 a5@18 c#6@3 d6@3 c#6@3 b5 ~ g#5 ~ f#5 g#5@18 b5@3 c#6@3 b5@3 a5 g#5 f#5 e5@2 f#5@23 ~ e5@7 ~ e5@7 ~ d5@6, ~@18 c#5@96 ~@7 d6@7, ~@18 e4@63 ~ [f#4,a4]@32 [f#4,a4,b4]@14, ~@18 a4@32 ~@63 e6@9 ~@6, ~@46 a5@2 ~ g#4@33 ~@46]/4", // E5 F#m B7
  I: "[~ c#5@7 ~@2 c#5@4 ~ b5@3 c#6@23 b5@8 ~ a#5@15 g5@9 f#5@8 b4@16 a4@16 c#6@8 b5@7 ~ [c#5,b5]@8 [b4,a5]@7 ~ [a4,a5]@16 [g#4,g#5]@16 [f#4,a4,f#5]@16 [g#4,g#5]@16 [e4,a4,f#5]@14, ~ c#6@13 b4@4 c#5@64 d5@47 ~@17 c#5@32 c#5@46, ~@18 [e4,a4]@31 ~ [e4,f#4,a#4]@32 f#4@31 ~ e4@63 ~@47, ~@41 d6@12 ~@4 g#4@16 ~@39, ~@57 b4@9 ~@46]/7", // C#7 B7 A G# F#m G# F#m7 A5 …
  J: "[~ [g#4,g#5]@8 [a2,c#4,e4,a4]@16 ~@7]/2", // G# A
})).s("gm_string_ensemble_1").gain(0.12).pan(0.1)

// other · timpani
const timpani = note("<~@20 [~@10 c#1!5 ~ c#1!2 d#1 ~@13] ~@15 [~@10 d1!5 ~ d1!2 ~@14] ~@12>")
  .s("gm_timpani").gain(0.36).pan(0.3)

// chords · trumpet
const trumpet = note("<~@28 A@2 B@3 ~@16>".pickRestart({
  A: "[~@18 [g#2,d#3,g3,g#3,c4,d#4]@31 ~ [g#2,d#3,f#3,a#3,c#4,d#4]@14]/2", // G#maj7 D#m7
  B: "[~@2 [d#3,f3,a3,c4,d#4]@15 ~ [a#2,f3,a#3,c#4,f4]@31 ~ [g#3,e4,g#4]@15 ~ [d#3,g3,d#4,g4]@16 ~@14, ~@25 [a#3,c#4]@16 ~@7]/3", // F7 A#m C#m D# A#m
})).s("gm_trumpet").gain(0.29).pan(0.6)

// chords · slap bass 2
const slap_bass_2 = note(`<
  A B C@2 D E F G H I J K L M N O P Q R P S T U V W X Y Z AA AB AC AD AE AF AG AE AH AI AJ AK AL AM AN AO AP AQ AR ~@2
>`.pickRestart({
  A: "~@26 [b4,d5,g5] ~@5", B: "~@10 [b4,d5,f#5] ~@15 [a4,c5,e5] ~@5", C: "~@10 [a4,d5,f#5] ~@15 [a4,c5,e5] ~@5",
  D: "~@10 [b4,d5,g5] ~@15 [d4,g4,b4] ~@5", E: "~@10 [d4,g4,b4] ~@15 [f#4,g4,b4,d5] ~@5",
  F: "~@10 [f#4,g4,b4,d5] ~@15 [e4,g4,b4] ~@5", G: "~@10 [f#4,g4,d5]@2 ~@14 [f#4,a4,c5,d5] ~@5, ~@10 b4 ~@21",
  H: "~@10 [f#4,a4,c5,d5] ~@15 [e4,g4,a4,c5] ~@5", I: "~@10 [e4,g4,a4,c5] ~@15 [f#4,a4,c5,d5] ~@5",
  J: "~@10 [f#4,a4,c5,d5] ~@15 [e4,a4,c#5] ~@5", K: "~@10 [e4,a4,c#5] ~@15 [e4,a4,c5] ~@5",
  L: "~@10 [f#4,a4,c5,d5] ~@15 [d4,g4,b4] ~@5", M: "~@10 [d4,g4,b4] ~@15 [d4,f4,b4] ~@5",
  N: "~@10 [e4,g#4,b4,d5] ~@15 [e4,g4,a4,c5] ~@5", O: "~@10 [e4,g4,a4,c5] ~@15 [d#4,g4,a4,c5] ~@5",
  P: "~@10 [d4,f#4,a4,c5] ~@15 [d4,g4,b4] ~@5", Q: "~@10 [d4,g4,b4] ~@15 [g4,a4,c5,e5] ~@5",
  R: "~@10 [g4,a4,c5,e5] ~@15 [e4,g4,a4,c5] ~@5", S: "~@26 [d#4,g#4,c5] ~@5",
  T: "~@10 [d#4,g#4,c5] ~@15 [g4,g#4,c5,d#5] ~@5", U: "~@10 [g4,g#4,c5,d#5] ~@15 [f4,g#4,c5] ~@5",
  V: "~@10 [g4,g#4,d#5]@2 ~@14 [g4,a#4,c#5,d#5] ~@5, ~@10 c5 ~@21", // G#maj7 D#7
  W: "~@10 [g4,a#4,c#5,d#5] ~@15 [f4,g#4,a#4,c#5] ~@5", X: "~@10 [f4,g#4,a#4,c#5] ~@15 [g4,a#4,c#5,d#5] ~@5",
  Y: "~@10 [g4,a#4,c#5,d#5] ~@15 [f4,a#4,d5] ~@5", Z: "~@10 [f4,a#4,d5] ~@15 [f4,a#4,c#5] ~@5",
  AA: "~@10 [g4,a#4,c#5,d#5] ~@15 [d#4,g#4,c5] ~@5", AB: "~@10 [d#4,g#4,c5] ~@15 [d#4,f#4,c5] ~@5",
  AC: "~@10 [f4,a4,c5,d#5] ~@15 [f4,g#4,a#4,c#5] ~@5", AD: "~@10 [f4,g#4,a#4,c#5] ~@15 [f4,g#4,a#4,c#5] ~@5",
  AE: "~@10 [d#4,g4,a#4,c#5] ~@15 [d#4,g#4,c5] ~@5", AF: "~@10 [d#4,g#4,c5] ~@15 [g#4,a#4,c#5,f5] ~@5",
  AG: "~@10 [g#4,a#4,c#5,f5] ~@15 [f4,g#4,a#4,c#5] ~@5", AH: "~@26 [e4,a4,c#5] ~@5",
  AI: "~@10 [e4,a4,c#5] ~@15 [e4,g#4,c#5] ~@5", AJ: "~@10 [e4,g#4,c#5] ~@15 [e4,a4,c#5] ~@5",
  AK: "~@10 [e4,a4,c#5] ~@15 [f#4,b4,d5] ~@5", AL: "~@10 [f#4,a4,d5] ~@15 [a4,c#5,e5] ~@5",
  AM: "~@10 [a4,c#5,e5] ~@15 [a#4,c#5,e5,f#5] ~@5", AN: "~@10 [a#4,c#5,e5,f#5] ~@15 [b4,d5,f#5] ~@5",
  AO: "~@10 [a4,b4,d5,f#5] ~@15 [g#4,b4,e5] ~@5", AP: "~@10 [g#4,b4,d5] ~@15 [a4,c#5,e5] ~@5",
  AQ: "~@10 [g#4,c#5,e5] ~@15 [a4,c#5,e5] ~@5", AR: "~@10 [g#4,c#5,e5] ~@21",
})).s("gm_slap_bass_2").gain(0.28).pan(0.6)

// chords · piano
const piano = note("<A@6 B@6 C@2 D@3 E F G@3 H@6 I@2 J@3 K L M@3 N@7 O@2 P@2>".pickRestart({
  A: "[~@23 b3@3 d4@3 b3@2 g3@3 ~@5 b3@3 d4@3 b3@2 f#3@3 ~@5 c4@2 ~ e4@3 c4@2 a3@2 ~@6 c4@2 ~ d4@3 c4@2 a3@2 ~@4 e3@2 a3@3 c4@3 a3@2 e3@2 ~@4 f#3@2 a3@3 c4@3 a3@2 f#3@3 ~@3 e3@2 g3@3 b3@3 g3@2 e3@2 ~@4 g3@2 b3@3 d4@3 [b3,g4]@2 [g3,b4]@3 [d3,d5]@3 ~@2 b3@3 d4@3 b3@2 g3@2 ~@6 b3@3 d4@3 b3@2 g3 ~@2 d3@3 ~@2 b3@3 d4@3 b3@2 f#3, ~@18 d3@16 d3@15 ~ e3@16 d3@16 c3@16 d3@13 ~@3 d3@12 ~@4 d3@15 ~@17 d3@16 ~@14, ~@21 g3@5 ~@11 f#3@5 ~@11 a3@5 ~@11 a3@5 ~@75 g3@5 ~@11 g3@5 ~@11 f#3@5 ~@6]/6", // Em G D
  B: "[~@2 d3@3 ~@2 b3@3 ~@3 b3@2 f#3@2 ~ b2@3 ~@2 g3@3 b3@3 ~@2 e3@2 ~ d3@3 ~@2 b3@3 ~@3 b3@2 g3 ~@7 c4@3 ~@5 f#3@3 d3@3 ~@2 c4@3 ~@3 c4@2 f#3 ~@2 e3@3 ~@2 c4@3 e4@3 c4@2 a3@3 e3@3 ~@2 c4@3 e4@3 c4@2 a3 ~@5 a3@2 c4@3 d4@3 c4@2 a3@3 f#3@3 ~@2 c4@3 d4@3 c4@2 a3 ~@7 c#4@3 e4@3 ~@2 a3@2 ~@6 c#4@2 ~@6 a3 ~@7 a3@2 ~@4 a3@2 e3, ~@5 f#3@5 d4@5 ~@6 e3@5 ~@3 g3@4 ~@4 g3@5 d4@5 ~@3 d3@16 ~@3 f#3@5 ~@11 a3@4 ~@12 a3@4 ~@9 f#3@6 ~@13 a3@4 ~@9 [a2,e3]@14 ~@2 a2@15 ~ [a2,c3]@12 ~@2, ~@53 f#3@5 d4@5 ~@11 d4@6 ~@77 c#4@5 ~@3 a3@5 e4@5 ~@11 c4@6, ~@61 c4@4 ~@84 a3@5 ~@8 e3@11 c#4@4 ~@4 e3@7 ~@4]/6", // A5 Am
  C: "[~@7 a3@3 d4@3 a3@2 f#3 ~@2 [d3,g3,b3]@25 ~@7 [d3,a3,b3,d4,f4]@14, ~@2 [a2,d3]@14 ~@2 g2@29 ~@17, ~ f#3@4 ~@27]/2", // G Bm7b5 D5
  D: "[~@2 [e3,e4]@13 ~@19 a1@13 ~@3 [g3,d#4]@15 ~ [f#3,d4]@14 ~@2 [d3,g3,b3]@14, ~@2 [g#3,b3]@10 ~@6 [e3,g3,a3,c4]@26 ~@6 [a3,c4]@31 ~@15]/3", // E Cm D G G#m Am7 Am
  E: "~@2 [d3,g3]@11 ~@5 [c3,e3,g3,c4]@14", F: "~ [c3,e3,g3,c4]@5 ~@3 [e3,g3,a3,c4]@7",
  G: "[~@2 [d3,f#3,a3,c4]@16 [d3,g3,b3]@23 ~ [a#2,d#3,g3]@7 ~ d#3@3 ~@2 c4@3 d#4@3 c4@2 g#3@2 ~ d#3@3 ~@2 c4@3 d#4@3 c4@2 g#3 ~@2 d#3@3 ~@2 c4@3 d#4@3 c4@2 g3, ~@25 g#5@4 ~@19, ~@53 g#3@5 ~@11 g#3@5 ~@11 g3@5 ~@6]/3", // D7 G D#
  H: "[~@2 d#3@3 ~@2 c4@3 ~@3 c4@2 g3@2 ~ c3@3 ~@2 g#3@3 c4@3 ~@2 f3@2 ~ d#3@3 ~@2 c4@3 ~@3 c4@2 g#3 ~@7 c#4@3 ~@5 g3@3 d#3@3 ~@2 c#4@3 ~@3 c#4@2 g3 ~@2 f3@3 ~@2 c#4@3 f4@3 c#4@2 a#3@3 f3@3 ~@2 c#4@3 f4@3 c#4@2 a#3 ~@5 a#3@2 c#4@3 d#4@3 c#4@2 a#3@3 g3@3 ~@2 c#4@3 d#4@3 c#4@2 a#3 ~@7 d4@3 f4@3 ~@2 a#3@2 ~@6 d4@2 ~@6 a#3 ~@7 a#3@2 ~@4 a#3@2 f3, ~@5 g3@5 d#4@5 ~@6 f3@5 ~@3 g#3@4 ~@4 g#3@5 d#4@5 ~@3 d#3@7 ~@4 c#4@4 ~@4 g3@5 ~@11 a#3@4 ~@12 a#3@4 ~@9 g3@6 ~@13 a#3@4 ~@9 [a#2,f3]@14 ~@2 a#2@15 ~ [a#2,c#3]@12 ~@2, ~@53 g3@5 d#4@5 ~@11 d#4@6 ~@69 a#3@5 ~@3 d4@5 f3@11 d4@4 ~@4 f3@7 ~@4, ~@165 a#3@5 f4@5 ~@11 c#4@6]/6", // A#5 A#m
  I: "[~@7 a#3@3 d#4@3 a#3@2 g3 ~@2 [d#3,g#3,c4]@25 ~@7 [d#3,a#3,c4,d#4,f#4]@14, ~@2 [a#2,d#3]@14 ~@2 g#2@29 ~@17, ~ g3@4 ~@27]/2", // G# Cm7b5 D#5
  J: "[~@2 [f3,f4]@13 ~@19 a#1@13 ~@3 [g#3,e4]@15 ~ [g3,d#4]@16 [d#3,g#3,c4]@14, ~@2 [a3,c4]@10 ~@6 [f3,g#3,a#3,c#4]@26 ~@6 [a#3,c#4]@31 ~@15]/3", // F C#m Cm G# Am A#m7 A#m
  K: "~@2 [d#3,g#3]@11 ~@5 [c#3,f3,g#3,c#4]@14", L: "~ [c#3,f3,g#3,c#4]@5 ~@3 [f3,g#3,a#3,c#4]@7",
  M: "[~@2 [d#3,g3,a#3,c#4]@16 [d#3,g#3,c4]@23 ~ [b2,e3,g#3]@7 ~ e3@3 ~@2 c#4@3 e4@3 c#4@2 a3@3 e3@3 ~@2 c#4@3 e4@3 c#4@2 a3@3 e3@3 ~@2 c#4@3 e4@3 c#4@2 g#3, ~@53 a3@5 f#4 ~@10 a3@5 ~@11 g#3@5 ~@6]/3", // D#7 G# E
  N: "[~@2 e3@3 ~@2 c#4@3 e4@3 ~@2 g#3@2 ~ e3@3 ~@2 c#4@2 ~ e4@3 c#4@2 a3@3 e3@3 ~@2 c#4@3 e4@3 c#4@2 a3@3 f#3@3 ~@2 d4@3 e4@3 ~@2 b3@3 f#3@3 ~@2 d4@2 ~ e4@3 ~@2 b3@2 ~ e3@3 ~@2 c#4@3 e4@3 c#4@2 a3@3 e3@3 ~@2 c#4@2 ~ e4@3 c#4@2 a3@2 ~@6 c#4@2 ~ e4@3 ~@2 a#3@3 ~@8 a#3@3 ~@2 a#3@2 ~@6 d4@3 e4@3 ~@2 b3@2 ~ f#3@3 ~@2 d4@3 e4@3 ~@2 b3 ~@2 [e2,e3]@14 ~@2 [e2,e3,b3]@12 ~@4 [a2,a3,c#4]@14, ~@5 g#3@4 ~@4 c#4@4 ~@4 a3@5 ~@11 a3@5 ~@11 b3@5 ~@3 d4@5 ~@3 b3@5 ~@3 d4@4 ~@4 a3@5 ~@11 a3@5 ~@8 f#3@12 ~@4 f#3@5 c#4@6 f#3@5 f#3@5 ~@27 g#3@27 ~@19, ~@117 a#3@5 ~@3 c#4@5 ~@3 f#4@5 ~@11 b3@5 ~@3 d4@4 ~@4 b3@4 ~@4 d4@4 ~@17 e4@15 ~@15]/7", // E E5 A
  O: "[~@2 [g#2,e3,g#3,e4]@15 ~ [f#2,a3,f#4]@15 ~ [g#2,g#3,e4]@16 [a2,a3,c#4,e4]@14, ~@2 c#4@47 ~@15]/2", // C#m F#m C#m A
  P: "[~@2 [g#2,g#3,c#4,e4]@16 [a2,c#3,e3,a3,c#4]@27 ~@19]/2", // C#m A
})).s("gm_piano").gain(0.39)

// bass · acoustic bass
const bass = note("<A@5 B@2 C@7 D@7 E@2 F@7 G@8 H@6 I J K ~@2>".pickRestart({
  A: "[~@18 g2@12 ~ d2@2 ~ g1@12 ~ d2@3 a1@11 ~@2 e2@3 d1@11 ~@2 d2@3 a1@11 ~@2 d2@2 ~ d1@12 ~ d2@2 ~ g1@13 d2@2 ~ d1@11 d1@2 f#1@2 ~ g1@14]/5",
  B: "~@2 g1@12 ~ d1@3 g1@14",
  C: "[~@2 g1@8 ~@8 d1@12 ~ a1@3 d1@9 ~@2 c2@2 d2@2 ~ a1@12 ~ e1@2 ~ a1@13 c2@2 ~ d1@12 ~ d2@3 d1@10 ~ c2@2 d2@3 a1@12 ~ e2@3 a1@15 ~ a1@10 ~ c2@2 e2@3 d2@9 ~@2 e1@2 f#1@2 ~ g1@12 ~ d1@2 ~ g1@12 ~ g1@2 ~ d2@12 ~ a1]/7",
  D: "[~@2 e1@10 ~ g1@2 g#1@2 ~ a1@13 e1@3 a1@15 ~ c2@12 ~ g#1@3 d1@10 ~ e1@2 f#1@2 ~ g1@13 d2@3 g1@12 ~ g1@2 ~ c2@12 ~ g1@3 c2@9 ~@2 c2@2 b1@2 ~ a1@12 ~ a1@2 ~ d1@10 ~@3 d1@3 g1@11 ~@2 g1@2 ~ g1@7 ~ d#1@7 ~ g#1@8 ~@6]/7",
  E: "~@2 g#1@12 ~ d#1@3 g#1@14",
  F: "[~@2 g#1@8 ~@8 d#1@12 ~ a#1@3 d#1@9 ~@2 c#2@2 d#2@2 ~ a#1@12 ~ f1@2 ~ a#1@13 c#2@2 ~ d#1@12 ~ d#2@3 d#1@10 ~ c#2@2 d#2@3 a#1@12 ~ f2@3 a#1@15 ~ a#1@10 ~ c#2@2 f2@3 d#2@9 ~@2 f1@2 g1@2 ~ g#1@12 ~ d#1@2 ~ g#1@12 ~ g#1@2 ~ d#2@12 ~ a#1]/7",
  G: "[~@2 f1@10 ~ g#1@2 a1@2 ~ a#1@13 f1@3 a#1@15 ~ c#2@12 ~ a1@3 d#1@10 ~ f1@2 g1@2 ~ g#1@13 d#2@3 g#1@12 ~ g#1@2 ~ c#2@12 ~ g#1@3 c#2@9 ~@2 c#2@2 c2@2 ~ a#1@12 ~ a#1@2 ~ d#1@10 ~@3 d#1@3 g#1@11 ~@2 g#1@2 ~ g#1@7 ~ e1@7 ~ a1@12 ~ e1@2 ~ a1@12 ~ e1@2 ~ a1@9 ~@4 e1]/8",
  H: "[~@2 a1@10 ~ e1@2 f#1 ~@2 a1@11 ~@2 e1@2 ~ a1@12 ~ e1@2 ~ b1@8 d2@4 ~ e1@3 b1@8 d2@5 e1@3 a1@10 ~ e1 ~ f#1@2 ~ a1@9 ~@2 e1@2 f#1@2 ~ f#1@13 c#2@3 f#1@10 ~ c#2@2 f#1@2 ~ b1@9 ~@4 f#1@2 ~ b1@9 ~@4 f#1@2 ~ e1@14]/6",
  I: "~ e1@6 ~@2 a1@7", J: "~ a1@7 ~ a1@7", K: "~@2 a1@9 ~@21",
})).s("gm_acoustic_bass").gain(0.4)

// chords · orchestral harp
const orchestral_harp = note("<~@20 A B C D E F G@2 ~@8 H ~@12>".pickRestart({
  A: "~@10 d#3 ~@7 [g5,c6,d#6,g#6]@8 ~@6, ~@6 f3 c4 [a#4,c5]@4 ~@4, ~@13 [g3,a#3]@2 g4@8 ~@9, ~@15 [d#4,f4]@2 [d#5,f5]@8 ~@7", // G#maj7 A#sus2 Gm D#sus2
  B: "~@9 [d#4,g#4,c5,d#5,g5]@3 ~@4, ~@17 c4@5 ~@10", C: "~@18 [f4,g#4,c5]@5 ~@9, ~@17 c4@4 ~@11, ~@9 f5@7",
  D: "~@19 [a#4,d#5]@7 ~@6, ~@17 d#3@9 ~@6, ~@18 [g3,c#4,d#4,g4]@9 ~@5", // D#5 D#7
  E: "~@19 a#5@8 ~@5, ~@17 a#3@11 ~@4, ~@9 [f4,a#4,c#5,f5]@5 ~@2", // A#m
  F: "~@19 d#5@9 ~@4, ~@17 [a#3,c#4]@9 ~@6, ~@18 [d#4,g4,a#4,c#5]@9 ~@5", // A#m D#7
  G: "[~@19 f5@16 ~@29, ~@17 a#3@9 ~@38, ~@9 [d4,f4,g#4,a#4]@4 ~@19, ~@19 d5@6 ~@39]/2", // A#7
  H: "~@10 e3 ~ f#3 [g#3,b3] c#4 [e4,f#4,g#4] [b4,c#5] [e5,f#5] [e5,g#5,a5,c#6] ~@13", // G#m E Bsus2 Esus2 Amaj7
})).s("gm_orchestral_harp").gain(0.21)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C@2 D ~@7 E F G ~ H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM ~
>`.pickRestart({
  A: "~@18 [d5,g5]!14", B: "[d5,g5]!2 [d5,f#5]!16 [c5,e5]!14", C: "[c5,e5]!2 [d5,f#5]!16 [c5,e5]!14",
  D: "[c5,e5]!2 [b4,d5]!16 ~@14", // C Bm
  E: "~@17 [d4,g4]@8 ~@7, ~@13 [g2,b2]@6 ~@13, ~@7 d3@2 ~@7, ~@15 g3@10 ~@7, ~@16 b3@9 ~@7", // G5 G
  F: "~@9 [d2,f2,a2,d3,f3]@7", G: "~ [g#2,b2,e3]@6 ~@2 [a1,e2,a2,c3,e3]@7, ~ e2@13 ~@18", H: "~@18 [b4,d5]!14",
  I: "[b4,d5]!28 [b4,c5,d5,e5] [c5,e5]!2 [d5,f#5]", // Bm Cmaj7 C D
  J: "[d5,f#5]!2 [e5,g5]!10 [e5,f#5,g5,a5] [f#5,a5]!3 [g5,b5]!2 [c6,e6]!14", K: "[c6,e6]!2 [d6,f#6]!16 ~@14",
  L: "~@18 [g#4,c5]!14", // G#
  M: "[g#4,c5]!4 [g#4,c5,d#5] [c5,d#5]!2 [c5,c#5,d#5,f5] [c#5,f5]!2 [c5,d#5]!2 [a#4,c5,c#5,d#5] [a#4,c#5] [g#4,c5] [g4,g#4,a#4,c5] [g4,a#4] [f4,g#4] [g4,a#4]!14", // G# Cm C#maj7 C# Cm Cm7 A#m G# …
  N: "[g4,a#4]!7 [g4,a#4,c5,d#5] [c5,d#5]!2 [a#4,c#5]!3 [g#4,c5] [g4,a#4] [f4,g4,g#4,a#4] [d#4,f4,g4,g#4] [d#4,g4] [f4,g#4]!14", // Gm Cm7 Cm A#m G# Gm Gm7 Fm7 …
  O: "[f4,g#4]!10 [d#4,g4]!22", P: "[d#4,g4] ~ [d#4,g4]!4 [f4,g#4]!4 [g4,a#4]!3 [a#4,c#5]!2 [c#5,f5]!3 [c#4,f4]!14",
  Q: "[c#4,f4]!18 [d#4,g4]!14", R: "[d#4,g4]!18 [d4,f4]!14", S: "[d4,f4]!18 [c#4,f4]!14",
  T: "[c#4,f4]!2 [c#4,d#4,f4,g4] [d#4,g4]!11 [f4,g#4]!4 [g#4,c5]!14, ~@13 [g#2,c3]@4 d#4@8 ~@7, ~@7 d#3@2 ~@7, ~@15 g#3@10 ~@7, ~@16 c4@9 ~@7", // C# D#7 D# Fm G#
  U: "[g#4,c5]!18 [c5,d#5]!14, ~@9 [d#2,f#2,a#2,d#3,f#3]@7", // G# Cm D#m
  V: "[c5,d#5]!2 [c5,f5]!16 [c#5,f5]!14, ~ f2@13 ~@4 [a#1,f2,a#2,c#3,f3]@14, ~ [a2,c3,f3]@6 ~@9", // Cm F5 C# A#m F
  W: "[c#5,f5]!18 [g#5,a#5]!8 [g5,a#5]!4 [f5,g5,g#5,a#5] [f5,g#5]", // C# G#sus2 Gm Gm7 Fm
  X: "[f5,g#5]!2 [d#5,f5,g5,g#5] [d#5,g5]!11 [c#5,f5]!4 [c5,d#5]!14", // Fm Fm7 D# C# Cm
  Y: "[c5,d#5]!28 [c5,c#5,d#5,f5] [c#5,f5]!2 [d#5,g5]", // Cm C#maj7 C# D#
  Z: "[d#5,g5]!2 [f5,g#5]!10 [f5,g5,g#5,a#5] [g5,a#5]!3 [g#5,c6]!2 [c#6,f6]!14", AA: "[c#6,f6]!2 [d#6,g6]!16 ~@14",
  AB: "~@18 [a4,c#5]!14", // A
  AC: "[a4,c#5]!4 [a4,c#5,e5] [c#5,e5]!2 [c#5,d5,e5,f#5] [d5,f#5]!2 [c#5,e5]!2 [b4,c#5,d5,e5] [b4,d5] [a4,c#5] [g#4,a4,b4,c#5] [g#4,b4] [f#4,a4] [g#4,b4]!14", // A C#m Dmaj7 D C#m C#m7 Bm A …
  AD: "[g#4,b4]!7 [g#4,b4,c#5,e5] [c#5,e5]!2 [b4,d5]!3 [a4,c#5] [g#4,b4] [f#4,g#4,a4,b4] [e4,f#4,g#4,a4] [e4,g#4] [f#4,a4]!14", // G#m C#m7 C#m Bm A G#m G#m7 F#m7 …
  AE: "[f#4,a4]!10 [e4,g#4]!8 [c#5,e5]!8 [b4,d5]!6", AF: "[b4,d5]!2 [a4,c#5]!13 [g#4,a4,b4,c#5] [g#4,b4]!2 [a4,c#5]!14",
  AG: "[a4,c#5]!10 [g4,b4]!8 [f#4,a#4]!14", AH: "[f#4,a#4]!2 [d4,e4,g4] [e4,g4]!7 [d4,f#4]!8 [b4,d5]!14",
  AI: "[b4,d5]!18 [e5,g#5]!14", AJ: "[e5,g#5]!18 [e5,a5]!14", AK: "[e5,a5]!2 [e5,g#5]!16 [f#5,a5]!14",
  AL: "[f#5,a5]!2 [e5,g#5]!16 [e5,a5]!14", AM: "[e5,a5]!2 [e5,g#5]!16 g#5 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.18)

// drums · kick
const kick = s("bd").struct(`<
  [~@18 x ~@12 x]
  [~@2 x ~@12 x ~@2 x ~@12 x]!19
  [~@2 x ~@15 x ~@12 x]
  [~@2 x ~@12 x ~@2 x ~@12 x]!15
  [~@2 x ~@15 x ~@12 x]
  [~@2 x ~@12 x ~@2 x ~@12 x]!10
  [~@2 x ~@12 x ~@2 x ~@13]
  ~
>`).gain(0.44)

// drums · rim
const rim = s("rim").struct("<[~@13 x ~@2] [~@5 x ~@7 x ~@2]!19 [~@5 x ~@10] ~@14 [~@13 x ~@2] [~@5 x ~@10] ~@12>")
  .gain(0.49)

// drums · snare
const snare = s("sd").struct("<A ~@19 B C@14 D B C@10 D ~>".pickRestart({
  A: "~@8 x!3 ~@21", B: "~@13 x ~@2", C: "~@5 x ~@7 x ~@2", D: "~@5 x ~@10",
})).gain(0.49)

// drums · hihat
const hihat = s("hh").struct("<A ~@3 B C D C D C D C D C D C D C D C E ~@14 B E ~@12>".pickRestart({
  A: "~@5 x ~@10", B: "~@18 x ~ x ~@2 x ~@2 x ~ x ~@2 x",
  C: "~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x",
  D: "~@2 x ~ x ~@2 x ~@2 x ~ x ~ x!2 ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x", E: "~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@16",
})).gain(0.22)

// drums · low tom
const low_tom = s("lt").struct("<[~@15 x ~@16] ~@46 [~@10 x ~ x ~@2 x ~@16] ~>").gain(0.33)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@3 x ~@4] ~@46 [~@2 x ~ x ~@2 x ~@24] ~>").gain(0.27)

// drums · crash
const crash = s("cr").struct("<~@20 [~@5 x ~@3 x ~@6] ~@15 [~@5 x ~@3 x ~@6] ~@10 [~@9 x ~@6] ~>").gain(0.33)

// drums · high tom
const high_tom = s("ht").struct("<[~@5 x ~@10] ~@45 [~@15 x] ~@2>").gain(0.33)

// drums · ride
const ride = s("rd").struct("<A B@3 C ~@15 A B D B D B D B D B D B D B D C A B D B D B D B D B D E ~>".pickRestart({
  A: "~@18 x ~ x ~@2 x ~@2 x ~ x ~@2 x", B: "~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x",
  C: "~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@16", D: "~@2 x ~ x ~@2 x ~@2 x ~ x ~ x!2 ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x",
  E: "~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@13",
})).gain(0.27)

// drums · tambourine
const tambourine = s("tb").struct("<~@47 [~@18 x!8 ~@6] ~>").gain(0.22)

stack(
  string_ensemble_1, timpani, trumpet, slap_bass_2, piano, bass, orchestral_harp, acoustic_guitar_steel, kick, rim,
  snare, hihat, low_tom, mid_tom, crash, high_tom, ride, tambourine
)

More by Charles Aznavour