Strudelify

Rendez-vous 2

Jean Michel Jarre

KeyC majorTempo135 bpm
0:00/0:00
// Rendez-vous 2 — Jean Michel Jarre
// 135 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 3 "synth strings 1" synth strings 1 (copy of ch 2 "synth strings 2" synth strings 2); ch 7 "Trombone" trombone (copy of ch 6 "strings, ensemble 1" string ensemble 1); ch 9 "synth voice" synth choir (copy of ch 8 "choir ahhs" choir aahs); ch 12 "bass & lead" lead 8 bass lead (copy of ch 11 "Synth Bass 1" synth bass 1)
// note: Full arrangement: all 294 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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 · synth strings 2
const synth_strings_2 = note(`<
  A B A B A B A B A B C D E F A B A B A B G H I J I J K L K M N O P A B A B A B C D E F A B A B A B G H I J I J K L K M
  N O P A B A B A B G H Q R S T U@2 V@4 W@8 X Y Z AA AB AC AD AE AF@2 AD AE AF@2 AG AH AI AJ AK AL AM AN AO@2 AD AE AF@2
  AD AE AF@2 AG AH AI AJ AK AL AM AN AO@2 A B A B A B C D E F A B A B A B G H I J I J K L K M N O P A B A B A B G H Q R
  S T U@2 AP@8 ~ AQ@2 AR@2 AQ@2 AR@2 AQ@2 AR@2 AQ@2 AS@4 AT@2 AU@2 AV@2 AW@2 AX@2 AY@2 AZ@2 BA@2 AZ@2 BA@2 AZ@2 BA@2
  AZ@2 BA@2 AZ@2 BB@8 ~@7 A B A B A B A B C D E F 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 BC@6
>`.pickRestart({
  A: "a#4 c4 g4 c4 a#4 c4 g4 c4", B: "g#4 c4 f4 c4 g#4 c4 f4 c4", C: "c#5 e4 a#4 e4 c#5 e4 a#4 e4",
  D: "c5 f4 g#4 f4 c5 f4 g#4 f4", E: "d5 f4 b4 f4 d5 f4 b4 f4", F: "e5 g4 c5 g4 e5@4", G: "g4 a#3 e4 a#3 g4 a#3 e4 a#3",
  H: "f4 a3 d4 a3 f4 a3 d4 a3", I: "e4 a3 e4 a3 e4 a3 e4 g4", J: "f4 a3 f4 a3 f4 a3 f4 g4",
  K: "[f#4,a4] d4 [f#4,a4] d4 [f#4,a4] d4 [f#4,a4] c5", L: "[g4,a#4] d4 [g4,a#4] d4 [g4,a#4] d4 [g4,a#4] c5",
  M: "[g4,a#4] d4 [g4,a#4] d4 [g4,a#4] d4 [g4,a#4] d4", N: "[f#4,b4] d#4 [f#4,b4] d#4 b4 d#4 [f#4,b4] d#4",
  O: "[g4,b4] e4 [g4,b4] e4 [g4,b4] e4 [g4,b4] e4", P: "g4 d4 g4 d4 g4 d4 g4 d4", Q: "[c4,e4]@3 [d4,f4]",
  R: "[f4,a4]@3 [e4,g4]", S: "[g4,a#4]@3 [f4,a4]", T: "[e4,g4]@3 [d4,f4]", U: "[c#4,e4]/2", V: "a3/4",
  W: "[~@16 a5@15 ~, e4@3 ~, ~ c#5@5 ~@2, ~ e5@2 ~, ~@3 g5@3 ~@2]/8", X: "[a3,c#4]!2 [a3,c#4]@4 [b3,d4]@2",
  Y: "[c#4,e4]!2 [c#4,e4]@4 [d4,f4]@2", Z: "[e4,g4]!2 [e4,g4]@4 [f4,a4]@2", AA: "[g4,a#4]!2 [g4,a#4]@4 [f4,a4]@2",
  AB: "[e4,g4]!2 [e4,g4]@4 [d4,f4]@2", AC: "[c#4,e4]!2 [c#4,e4]@6", AD: "a#4@2 f5@3 ~ a#4@2 e5@4 a#4@2 d5@2",
  AE: "c5@2 e5@3 ~ c5@2 f5@4 c5@2 g5@2", AF: "d5@2 f5@3 ~ d5@2 f5@4 d5@2 a5@2",
  AG: "e5@2 a#5@2 e5@3 ~ e5@2 a#5@2 e5@3 ~", AH: "d5@2 a5@2 d5@3 ~ d5@2 a5@2 d5@4",
  AI: "c#5@2 g5@2 c#5@3 ~ c#5@2 g5@2 c#5@4", AJ: "a#4@2 f5@2 a#4@3 ~ a#4@2 f5@2 a#4@4",
  AK: "[c#5,e5]!2 [c#5,e5]@4 [d5,f5]@2", AL: "[e5,g5]!2 [e5,g5]@4 [f5,a5]@2", AM: "[g5,a#5]!2 [g5,a#5]@4 [f5,a5]@2",
  AN: "[e5,g5]!2 [e5,g5]@4 [d5,f5]@2", AO: "[[c#5,e5]!2 [c#5,e5]@14]/2", AP: "a3/8", AQ: "c4/2", AR: "g#3/2",
  AS: "[g#3@23 ~ g#3@2 a#3@4 ~@2 c5@8 d5@8 d#5@8 d5@8, ~@15 c4@9 ~@8, ~ [d#4,g4]]/4", AT: "[d5 d#5 f5 d#5, [f4,a#4]]/2",
  AU: "[c5 d5 d#5 d5, [d#4,g#4]]/2", AV: "[d#4,g4,c5]/2", AW: "[c5!2 d5!2 d#5!2 d5!2, [c4,d#4], g4 ~]/2",
  AX: "[d5!2 d#5!2 f5!2 d#5!2, g#4, [g#3,c4] g#3]/2", AY: "[c5!2 d5!2 d#5!2 d5!2, [c4,d#4,g4]]/2",
  AZ: "[d5!2 d#5!2 f5!2 d#5!2, [c4,g#4], ~ g#3]/2", BA: "[c5!2 d5!2 d#5!2 d5!2, [d#4,g4], c4 ~]/2", BB: "[c4,c5]/8",
  BC: "[c4,e4,g4,c5]/6", // C
})).s("gm_synth_strings_2").gain(0.25).pan(0.2)

// chords · synth strings 2
const synth_strings_2_2 = note(`<
  A B A B A B A B A B C D E F ~@19 A B A B A B C D E F ~@87 A B A B A B C D E F ~@19 A B A B A B ~@88 C D E F A B A B A
  B A B A B A B A B A B A B A B A ~@16
>`.pickRestart({
  A: "[c3,e3]", B: "[c3,f3]", C: "[c3,a#3,c#4]", D: "[c#3,g#3,c4]", E: "[d3,g3] g2", F: "[c3,c4]",
})).s("gm_synth_strings_2").gain(0.13)

// other · synth strings 2
const synth_strings_2_3 = note(`<
  ~@14 A B A B A B C D C D ~@19 A B A B A B C D C D ~@9 A B A B A B C D E F G H I@8 ~@12 D A B@2 D A B@2 J K L M N ~@5 D
  A B@2 D A B@2 J K L M N O@5 P ~@9 A B A B A B C D C D ~@15 C D E F G H Q@8 ~@78 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 R@7
>`.pickRestart({
  A: "e4", B: "f4", C: "c#4", D: "d4", E: "a2@3 g2", F: "f2@3 e3", G: "d3@3 c3", H: "a#2@3 a#2", I: "a2/8", J: "g4 a#4",
  K: "f4!2", L: "g4!2", M: "d4!2", N: "a4", O: "a3/5", P: "a#3", Q: "[a2,e3]/8", R: "e4/7",
})).s("gm_synth_strings_2").gain(0.25)

// other · string ensemble 1 · "strings, ensemble 1"
const string_ensemble_1 = note(`<
  ~@14 A@2 B C D E F G H I H J K L M N O P Q ~@8 R S T U V W V X F G H I H J K L M N O P Q ~@8 Y Z AA AB AC@4 AD@8 ~@8
  AE AF AG AH AI AF AG@2 AJ AK AL AM AN@6 AE AF AO AG AI AF AO AG AJ AK AL AM AN@6 ~@10 A@2 B C D E F G H I H J K L M N
  O P Q ~@8 Y Z AA AB AP@5 ~@28 AQ@2 ~@24 AR@2 ~ AR@2 ~ AR@2 ~ AR@2 ~ AR@2 ~ AR@2 ~ AR@2 ~ AR@2 ~@2 R AS A@2 B C B AT AU
  C B AV AW AX AY@2 B C AW AX AZ BA AY BB BC@2 AT AU C BD AW AX AY BE@6
>`.pickRestart({
  A: "[c2@8 ~@4 c2 ~ c2@18]/2", B: "~@2 f2 g2 g#2 ~ g2 g#2", C: "a#2 ~ c2@6", D: "~@2 f2 g2 g#2 ~ f2 e2",
  E: "g2@3 ~ c#2@2 c2@2 c2@8", F: "~ a#1 e2 f2 g2@4", G: "~ a1 d2 e2 f2@4", H: "a2", I: "d2 e2 f2 g2",
  J: "d2 e2 f2 g2 e2 f2 g2 a2", K: "d2@4 a2 c3 d3@2", L: "c3@3 a#2 a2@2 g2@2", M: "d3@3 d#3 c3@3 d3",
  N: "a#2 d3 a2 d3 g2@4", O: "b2@3 d#2 f#2@2 d#2@2", P: "e2 f#2 g2@2", Q: "d2@3 f#2 g2@2 g2@2", R: "g2 g#2 a#2 b2",
  S: "c3", T: "~@4 e2 f2 g2 a2", U: "f2 g2 g#2 a#2 c2@4", V: "~@2 e2 f2 g2@2 f2 g2", W: "g#2 c2@3", X: "g#2@2 c#2 c2@5",
  Y: "a2@3 g2", Z: "f2@3 e3", AA: "d3@3 c3", AB: "a#2@3 a#2", AC: "a2/4",
  AD: "[~@2 a2 ~@3 a3@2, e3@3 [a2,e3]@5, ~ a#3@5 ~@2]/8", AE: "[a2,f3]", AF: "[c3,g3]", AG: "[d3,a3]", AH: "[a2,a3]",
  AI: "[d3,f3]", AJ: "c#3 g3", AK: "d3 a3", AL: "a#3 e3", AM: "f3 a#2", AN: "[~ a3@5, a2]/6", AO: "d3@5 c3 a#2 a2, a3",
  AP: "[a2@17 ~@3]/5", AQ: "c2/2", AR: "[c1@7 ~]/2", AS: "c3 c2", AT: "a#2 ~ c#2 c2@5",
  AU: "~@2 c2 ~ g#2 ~ g2 g#2, ~@3 c2@5", AV: "a#2@3 ~ c#2@2 c2@2 c2@8", AW: "~ c2 f2 g2 g#2 g2 g#2 a#2",
  AX: "c3@3 ~ c2@2 c2@10", AY: "~@2 c2 c2@5", AZ: "~@4 g2@2 ~ a#2@8 ~, ~@3 g#2 ~@4", BA: "g#2@2 c2 c2@5",
  BB: "~@2 g2@2 g#2@2 a#2@2 c3@2 c3@5 ~", BC: "[c2@5 ~ c2 c2@3 f2 g2 g#2 ~ g2 g#2]/2", BD: "c2", BE: "[~@2 c2 c2@45]/6",
})).s("gm_string_ensemble_1").gain(0.48).pan(0.3)

// bass · synth bass 1
const bass = note("<~@181 A@6 B@8 C@2 D@7 E@7 B@16 F@5 ~@62>".pickRestart({
  A: "[~@4 d#2 d2@2 c2@13 b1 a#1@2 g#1@13 d#2 d2@2 c2@9]/6",
  B: "[~@4 b1 a#1@2 g#1@13 d#2 d2@2 c2@13 b1 a#1@2 g#1@13 d#2 d2@2 c2@9]/8", C: "[~@4 b1 a#1@2 g#1@9]/2",
  D: "[~@8 g#1@2 a#1@4 c2@26 g1@2 g#1@4 a#1@26 f1@2 g1@4 g#1@26 g1@2 f1@3 ~@3]/7",
  E: "[c1@12 d#2 d2@2 c2@13 b1 a#1@2 g#1@13 d#2 d2@2 c2@9]/7", F: "[~@4 b1 a#1@2 g#1@13 d#2 d2@2 c2@17]/5",
})).s("gm_synth_bass_1").gain(0.6)

// other · pad new age · "fantasia"
const pad_new_age = note("<~@243 A B C B C B C B C B D E ~@39>".pickRestart({
  A: "~@6 g6 ~", B: "g#6 c6 f6 c6 g#6 c6 f6 c6", C: "a#6 c6 g6 c6 a#6 c6 g6 c6", D: "c#7 e6 a#6 e6 c#7 e6 a#6 e6",
  E: "c7 f6 g#6 f6 c7 f6 g#6 f6",
})).s("gm_pad_new_age").gain(0.19)

// other · pad new age · "fantasia" · soft notes
const pad_new_age_soft = note("<~@237 A B A B A B C ~@50>".pickRestart({
  A: "a#6 c6 g6 c6 a#6 c6 g6 c6", B: "g#6 c6 f6 c6 g#6 c6 f6 c6", C: "a#6 c6 g6 c6 a#6 c6 ~ c6",
})).s("gm_pad_new_age").gain(0.06)

// chords · tinkle bell
const tinkle_bell = note("<~@129 A B C D E F G B C D H I J ~@17 A B C D E F G B C D H I J ~@122>".pickRestart({
  A: "[f#6,c7] d#7 d#6 ~ [g#6,e7] e6 d#7 c#7 e7 f6 [g#6,d#7] d#6 ~ [f6,a6] [c#7,e7] e6, ~@3 a6 ~@4", // F#dim C#m G#5 F C#m
  B: "[a6,c7,e7] g6 [d#6,e7] [g6,c#7] ~ [c7,e7] g6 [e6,d#7] a6 [e6,d7] ~ g#6 e7 [f#6,d7] a6 [d6,f#6,e7]", // Am Emaj7 Gdim C Emaj7 E7 D
  C: "[d#6,a6,c#7] e7 [f#6,d7] [e6,c#7] g#6 [d#6,d#7] c7 g6 d#7 [e6,a6] ~ [f6,c#7] a6 [e6,d7,e7] ~ [f#6,a6]", // D#m7b5 D C#m D# A5 C# E7 F#m
  D: "[a6,d#7] [f6,e7] ~ [d#6,g#6,c7] ~ [f6,e7] d7 b6 [e6,d#7] [f6,c7] ~ [e6,d#7] g#6 c7 [d6,e7] [e6,g6,a6]", // Adim Fmaj7 G# Fmaj7 Emaj7 F5 Emaj7 Dsus2 …
  E: "[b6,d7] d7 f#6 [d6,c7] e6 a6 [d#6,g6,d7] ~ c#7 a6 d#6 [f#6,c7] ~ [d6,c#7] a6 [f6,g#6,c#7]", // Bm D7 D#maj7 F#dim Dmaj7 C#
  F: "e6 b6 ~ [a6,d7] e6 ~ [d6,g#6,d#7] g6 c7 d6 [e6,d7] g6 d#6 c7 [f6,a6] [g#6,b6,d7]", // D5 G# E7 F G#dim
  G: "[e6,f#6] [c7,d#7] d#6 ~ [g#6,e7] e6 d#7 c#7 e7 f6 [g#6,d#7] d#6 ~ [f6,a6] [c#7,e7] e6, ~@3 a6 ~@4", // Esus2 Cm C#m G#5 F C#m
  H: "[b6,d7] d7 f#6 [d6,c7] e6 a6 [d#6,g6,d7] ~ c#7 a6 d#6 [f#6,c7] ~ [d6,c#7] a6 [f6,c#7]", // Bm D7 D#maj7 F#dim Dmaj7 C#
  I: "g6 b6 ~ [a6,d7] e6 ~ [d6,g#6,d#7] g6 c7 d6 [e6,d7] g6 d#6 c7 [f6,a6] d7", J: "g#6 ~@15",
})).s("gm_tinkle_bell").gain(0.16)

// drums · kick
const kick = s("bd").struct(`<
  ~@14 A ~@2 B A ~@3 A ~@2 C A ~@3 A ~@2 A ~@3 A ~@5 A D A ~@2 E ~@2 A ~ A ~ A ~@3 A ~ C A ~@2 F A ~@3 A G@3 A ~@19 A@8
  B A@7 H A@9 ~ A@7 H A ~@3 B A ~@3 A ~ A ~ A ~@2 E ~@2 A ~ A ~ A ~@3 A ~ C A ~@2 F A ~@2 A G@4 A ~@10 I ~ I ~ I ~ I ~ I
  ~ I ~ J ~ I ~ I ~ I ~ I ~ A ~ I ~ I ~ I ~ I ~ I ~ I ~ J ~ I ~ I ~ I ~ I ~ I ~@26 K L A@9 ~ A@7 H A@11 ~ A@7
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~@13 x ~ x", D: "~@7 x", E: "~@3 x ~@4", F: "~@12 x ~@2 x", G: "x ~@2 x", H: "x ~@6 x",
  I: "~@6 x!2", J: "~@4 x!4", K: "x!4", L: "~ x",
})).gain(0.24)

// drums · rim
const rim = s("rim").struct("<~@199 [~@2 x!2 ~@4] ~@23 [~@2 x!2 ~@4] ~@70>").gain(0.19)

// drums · snare
const snare = s("sd").struct(`<
  ~@13 A B ~@3 B ~ C ~ B ~@2 D B ~@3 B C E B ~@2 F B ~@4 E B ~ B ~@2 G ~@2 B ~ B ~ B ~@3 B ~ D B ~@7 B H@3 B ~@18 I B@4
  J B@11 K I B@4 J B@11 K B ~@4 B ~ C ~ B E B ~ B ~@2 G ~@2 B ~ B ~ B ~@3 B ~ D B ~@6 B H@4 B ~@27 L ~@23 L ~@31 M N B@5
  J B@11 K O B@4 J B@13
>`.pickRestart({
  A: "~@4 x!3 ~", B: "x", C: "~@7 x", D: "~@8 x!5 ~ x ~", E: "~@8 x!2 ~ x!2 ~@3", F: "~@8 x ~@2 x ~@4",
  G: "~@2 x!2 ~@4", H: "x ~@2 x", I: "~@11 x!5", J: "x ~@5 x!2", K: "x ~@4 x!2 ~", L: "~@3 x", M: "x!2 ~@2",
  N: "~@4 x!2 ~ x ~@8", O: "~@8 x ~@3 x!3 ~",
})).gain(0.19)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@93 [~@4 x!7 ~@5] ~@17 [~@8 x!3 ~@5] ~@163 [~@9 x ~ x ~@4] ~@18>").gain(0.1)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@13 A ~@18 B ~@3 C ~@5 B ~@22 D E ~@5 F ~@21 E ~@6 G E ~ G ~@6 E@2 ~ H ~@4 G E ~ G ~@16 B ~@22 D E ~@5 F ~@12 G ~ G ~
  G ~ G ~ G ~ G ~ G@3 ~ G H G ~ G ~ E ~ G ~ G ~ G ~ G ~ G ~ G ~ G@3 ~ G H G ~ G ~ G ~ E ~@24 I F ~ E ~@6 G E ~ G ~@6 E@2
  ~ H ~@6 G E ~@4 J G ~
>`.pickRestart({
  A: "~@11 x ~@3 x", B: "~@15 x", C: "~@9 x ~@2 x ~@2 x", D: "~@12 x ~@2 x", E: "x", F: "~ x", G: "~@6 x!2", H: "~@7 x",
  I: "~@2 x!2", J: "~@3 x",
})).gain(0.22)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@15 A@2 ~@3 B A ~@6 C ~@2 D ~@2 D ~@12 E ~@10 A ~@72 A@2 ~@3 B A ~@17 A ~@7 A ~ A ~@15 F G H G H G H G H G H G H G H
  G H G H G H G H ~ F G H G H G H G H G H G H G H G H G H G H G H G H ~@64
>`.pickRestart({
  A: "~@3 x", B: "~@5 x!2 ~", C: "~@2 x ~ x!2 ~@2", D: "~ x ~@2", E: "~@5 x ~@2", F: "~@6 x!2", G: "x!6 ~@2", H: "x!8",
})).gain(0.12)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@13 A ~@18 B ~@3 B ~@5 B ~@26 A ~@3 C ~@25 A ~ D ~@2 D ~@9 E ~@2 A ~ D ~@2 D ~@16 B ~@27 C ~@2 C ~@18 C ~@2 F ~@2 C
  ~@7 G ~@9 C ~@2 F H ~ C ~@7 G F H ~@33 A ~ D ~@2 D ~@9 E ~@2 A ~ A ~ D ~@4 A ~ D ~
>`.pickRestart({
  A: "~@7 x", B: "~@13 x ~@2", C: "~@5 x ~@2", D: "~@11 x ~ x ~ x", E: "~@3 x", F: "~@3 x ~@2 x!2", G: "~@4 x!2 ~@2",
  H: "~@6 x!2",
})).gain(0.24)

// drums · open hat
const open_hat = s("oh").struct("<~@28 A ~@2 A ~@40 B ~@96 B ~@124>".pickRestart({
  A: "~@3 x", B: "~ x",
})).gain(0.24)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@69 A ~@3 B ~@23 C ~ D ~ E ~@2 E ~@3 C ~@5 F C ~ D ~ E ~@2 E ~@3 C ~@40 B ~@2 B ~@20 G ~@3 B ~ H ~@5 I ~@11 G ~ E ~ B
  ~ H ~@5 I ~ E ~@26 J ~@4 C ~ D ~ E ~@2 E ~@3 C ~@5 F C ~ D ~ D ~ E ~@4 E ~ E ~
>`.pickRestart({
  A: "~@3 x", B: "~ x", C: "~@6 x!2", D: "~@5 x!2 ~", E: "~@4 x!2 ~@2", F: "~@5 x ~@2", G: "~@2 x!4 ~@2",
  H: "~@2 x!3 ~@3", I: "~@2 x!2 ~@4", J: "x",
})).gain(0.24)

// drums · crash
const crash = s("cr").struct(`<
  ~@14 A ~@2 B A ~@2 A@2 ~@3 A ~@3 A ~@2 A ~@3 A ~@5 A ~ A ~@2 C ~@2 A ~ A D A ~@2 B A ~@2 A ~@3 A ~@3 E@4 A ~@18 F A E
  A G A E@5 A E A E A E A@3 E A G A E@3 A E A E A E A E A@3 ~@2 B A ~@2 A@4 ~ A B A C ~@2 A ~ A H A ~@2 B A ~@2 A B ~@2
  A ~@2 A E@4 A ~@17 B ~@7 I A ~ A J ~ K A ~@8 B ~@3 A@3 ~ L A ~ A J ~ K ~ A@2 ~@25 M A@2 E A G A E@3 A E A E A E A E
  A@3 E A G A E@5 A E@2 N A E A@2
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~@3 x ~@2 x ~", D: "~@15 x", E: "x ~@2 x", F: "~@10 x!6", G: "x ~@5 x!2", H: "~@12 x!4",
  I: "~@5 x ~@2", J: "x!2", K: "~@6 x!2", L: "x ~@4 x ~@2", M: "~ x", N: "x ~@3 x!4",
})).gain(0.24)

// drums · crash · soft notes
const crash_soft = s("cr").struct(`<
  ~@24 A ~@6 B ~@3 C ~@2 D ~@2 C ~@2 D ~@4 D@2 ~ B ~ E ~@5 D ~ D@2 ~@2 D@2 ~ D ~@23 F ~@41 C ~@11 D ~@3 G ~@30 C ~ C ~ H
  ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~@3 C ~ C ~ H ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~ C ~@26 I ~@38
>`.pickRestart({
  A: "x", B: "~@7 x", C: "~@6 x!2", D: "~@3 x", E: "~@8 x!7 ~", F: "~@2 x!8 ~@6", G: "~@4 x!8 ~@4", H: "~@5 x!3",
  I: "x!4",
})).gain(0.07)

// … 48 more lines

More by Jean Michel Jarre