Strudelify

L'amour en fuite

Alain Souchon

KeyA majorTempo85 bpm
0:00/0:00
// L'amour en fuite — Alain Souchon
// 85 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(85/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 · electric bass finger
const bass = note(`<
  A@2 B C D E F G H I J K L M L N O P J Q R S R T U V W X Y M L N O P J Q Y M L N O P J Q R S R T U V W Z AA AB AC@2
  AD@2 AE AF L AG AH AI AJ AK AL AI AJ AK AL AI AJ AM AN ~@4
>`.pickRestart({
  A: "d3@2 ~ d3 d3@2 ~ d3 d3@4 ~@4", B: "a2@2 ~ a2 a2@3 ~ a2@4 ~@4", C: "a2@3 ~ a2 ~ a2 a2@3 a1@2 b1@2 c#2 ~",
  D: "d2@2 ~@2 d2@2 ~@2 e2@3 ~ e2@2 ~@2", E: "d2 e2 f2 g2 a2@2 a1 ~ a1@2 ~@2 e2@2 ~@2",
  F: "d2@3 ~ d2@2 ~@2 e2@3 ~ e2@2 ~@2", G: "d2 e2 f2 g2 a2@2 d2@2 d#2@3 ~ d2@3 ~",
  H: "g1@3 ~ g1@3 ~ d#2@2 d2@2 a1@2 f#1@2", I: "g1@3 ~ a#1@2 d2 ~ f2@3 ~ f2@3 ~", J: "e2@3 ~ e2@3 ~ a#1@3 ~ a#1@3 ~",
  K: "a1@3 ~ a1@3 ~ a2@2 g2@2 e2@2 a1@2", L: "d2@3 ~ d2@3 ~ e2@3 ~ e2@3 ~", M: "f2@3 ~ f2@3 ~ a1@3 ~ a1@2 ~@2",
  N: "f2@3 ~ f2@3 ~ d#2@3 ~ d2@3 ~", O: "g2@3 ~ g2@3 ~ d#2@2 d2@2 a1@2 f#1@2", P: "g1@3 ~ a#1@2 d2@2 f2@3 ~ f2@3 ~",
  Q: "a2@3 ~ a2@3 ~ a2@3 ~ g2@3 ~", R: "f#2@3 ~ f#2@3 ~ f#2@3 ~ f#2@3 ~", S: "g#2@3 ~ g#2@6 d2@2 c#2@2 g#2@2",
  T: "g#2@3 ~ g#2@3 ~ c#2@3 ~ c#2@3 ~", U: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~", V: "e2@3 ~ e2@3 ~ a1@3 ~ a1@3 ~",
  W: "a#1@3 ~ a#1@2 f2@2 a2@3 ~ f2@3 ~", X: "g2@3 ~ g2@3 ~ e2@2 a2 ~ a2 e2 a1 ~", Y: "d2@3 ~ d2@2 ~@2 e2@3 ~ e2@3 ~",
  Z: "g2@3 ~ g2@3 ~ d3@2 ~ d3 d3@2 ~ d3", AA: "d3@4 ~@4 d3@2 ~ d3 d3@2 ~ d3", AB: "d3@4 ~@4 a2@2 ~ a2 a2@3 ~",
  AC: "[a2@4 ~@4 a2@3 ~ a2 ~ a2 a2@3 a1@2 b1@2 c#2 ~ f#2@3 ~ f#2@3 ~]/2",
  AD: "[f#2@3 ~ f#2@3 ~ g#2@3 ~ g#2@6 d2@2 c#2@2 g#2@2 f#2@3 ~ f#2@3 ~]/2", AE: "f#2@3 ~ f#2@3 ~ g#2@3 ~ g#2@3 ~",
  AF: "c#2@3 ~ c#2@3 ~ d2@3 ~ d2@3 ~", AG: "a1@3 ~ a1@3 ~ a#1@3 ~ a#1@2 f2@2", AH: "a2@3 ~ f2@3 ~ g2@3 ~ g2@3 ~",
  AI: "d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~", AJ: "d2@3 ~ d2@2 ~@2 d2@3 ~ d2@2 ~@2", AK: "a2@3 ~ a2@2 ~@2 a2@3 ~ a2@3 ~",
  AL: "a2@3 ~ a2@3 ~ a2@2 e2@2 a2 e2 a1 ~", AM: "a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~", AN: "a2@3 ~@13",
})).s("gm_electric_bass_finger").gain(0.24).pan(0.4)

// bass · electric bass finger · soft notes
const bass_soft = note(`<
  ~@74
  [~@4 a2@3 ~ a2@2 e2@2 a2 e2 a1 ~]
  [d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~]
  [d2@3 ~ d2@2 ~@2 d2@3 ~ d2@2 ~@2]
  [a2@3 ~ a2@2 ~@2 a2@3 ~ a2@3 ~]
  [a2@3 ~ a2@3 ~ a2@2 ~@6]
>`).s("gm_electric_bass_finger").gain(0.08).pan(0.4)

// other · ocarina
const ocarina = note(`<
  A@2 B C ~@19 D E ~@9 F G@2 H I ~@3 J K ~@3 D E ~@2 L M N O ~@4 P@2 ~@2 A@2 B C A@2 B C A@2 C ~@5
>`.pickRestart({
  A: "[a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ c5 a#4 a4 a#4@4 ~@9 f4 g4 f4 a4]/2", B: "~@2 a4 ~ a4 ~ a4!2 ~@4 e4 f4 e4 a4",
  C: "~@2 a4 ~ a4 ~ a4!2 ~@8", D: "~@12 c#4 f4 f#4 g#4", E: "a4", F: "d4@2 g4 d4", G: "[e4 a4@2 ~]/2",
  H: "~@10 f4 g4 a4@2 ~@2", I: "a4 ~", J: "~ d4 g4 d4", K: "e4@7 ~", L: "~@8 a4 ~ a4 ~ a4 ~ a4 ~",
  M: "a4 ~ a4 ~ c5 a#4 a4 a#4@4 ~@5", N: "~@4 f4 g4 f4 a4 ~@2 a4 ~ a4 ~ a4!2", O: "~@4 e4 f4 e4 a4 ~@2 a4 ~ a4 ~ a4!2",
  P: "[~@4 c#4 f4 f#4 g#4 a4@16 ~@8]/2",
})).s("gm_ocarina").gain(0.36).pan(0.7)

// other · ocarina · soft notes
const ocarina_soft = note("<~@73 A B C@2 D ~>".pickRestart({
  A: "~@12 e4 f4 e4 a4", B: "~@2 a4 ~ a4 ~ a4!2 ~@8",
  C: "[a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ c5 a#4 a4 a#4@4 ~@9 f4 g4 f4 a4]/2", D: "~@2 a4 ~ a4 ~ a4!2 ~@4 e4 f4 e4 a4",
})).s("gm_ocarina").gain(0.13).pan(0.7)

// other · overdriven guitar
const overdriven_guitar = note(`<
  A@2 B C D E F G H I J K ~@6 L M ~ N@2 O P Q R S ~@14 T@2 ~ N@2 O P Q R U@3 V W ~ X Y Z@3 AA A@2 B C A@2 B C A@2 B AB
  ~@4
>`.pickRestart({
  A: "d3@15 ~", B: "e3@8 c#3@7 ~", C: "e3@4 c#4 e4 a#4 a4", D: "~@4 f4@5 ~@2 g4@5", E: "~@3 a4@3 d5@2 ~@3 g4@5",
  F: "~@3 f4@2 a4@3 ~@3 e4@2 g4@3", G: "~@3 a4@2 d5@3 f#4@3 a3@5", H: "~@2 g4 ~ a#4@4 g4@2 f#4@6",
  I: "~@2 g4@2 a#4@4 ~@2 f4@3 g4@3", J: "~@2 d4@6 ~@2 d4@3 a#4@3", K: "~@2 e4@6 a3@7 ~", L: "[a#2,d3]",
  M: "~ a3@14 ~, [c#3,e3]@15 ~", N: "[~@5 d3 c#3 g#3@3 ~@6]/2", O: "g#3 c#3", P: "d3", Q: "a3", R: "a#3 f3",
  S: "g3@8 a3@5 ~@3", T: "[[a#2,d3]@15 ~ [e3,a3]@15 ~, ~@15 c#3@16 ~]/2", U: "[g3@8 d3@15 ~ d3@15 ~ e3@8]/3",
  V: "c#3@7 ~ e3@8", W: "c#4 e4 a#4 a4 ~@4", X: "~ d3 c#3 g#3@3 ~@2", Y: "~ g#3", Z: "[c#3 d3@2 a3@2 a#3]/3",
  AA: "f3 g3", AB: "e3 ~",
})).s("gm_overdriven_guitar").gain(0.12).pan(0.6)

// other · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@74 [~@4 c#4 e4 a#4 a4] [d3@15 ~]!2 [e3@8 c#3@7 ~] [e3@4 c#4 e4 ~@2]>")
  .s("gm_overdriven_guitar").gain(0.05).pan(0.6)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  A B C D E@3 F G H I J E K E L M N O P Q R Q S T U V W E K E L M N O P E K E L M N O P Q R Q S T U V X Y Z AA AB AC AD
  AE AF AG AH AI A B C D A B C D A B C AJ ~@4
>`.pickRestart({
  A: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
  B: "[a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~", // Gm
  C: "[a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // Asus4 A
  D: "[a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~ [a3,b3,c#4,e4,a4] ~", // Asus4 A
  E: "d4 ~ [d4,f4,a4] ~ d4 ~ [d4,f4,a4] ~ e4 ~ [e4,g4,a4] ~ e4 ~ [e4,g4,a4] ~", // Dm A7
  F: "d4 ~ [d4,f4,a4] ~ d4 ~ [d4,f4,a4] ~@3 [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2", // Dm D
  G: "g4 ~ [d4,g4,a#4] ~ d4 ~ [d4,g4,a#4] ~@3 [f#4,a4,c5] ~@3 [f#4,a4,c5] ~", // Gm F#dim
  H: "g4 ~ [d4,g4,a#4] ~@3 [g4,a#4] ~ f4 ~ [f4,g4,a#4] ~ f4 ~ [f4,g4,a#4] ~", // Gm Gm7
  I: "e4 ~ [e4,g4,a#4] ~ e4 ~ [e4,g4,a#4] ~ g4 ~ [e4,g4,a#4] ~ e4 ~ [e4,g4,a#4] ~", // Edim
  J: "a3 ~ [d4,e4,a4]@2 a3 ~ [d4,e4,a4]@2 a3 ~ [c#4,e4,a4]@2 a3 ~ [c#4,e4,a4]@2", // Dsus2 A
  K: "f4 ~ [d4,f4,a4] ~ d4 ~ [d4,f4,g4,a4] ~ e4 ~ [e4,g4,a4] ~ e4 ~ [e4,g4,a4] ~", // Dm A7
  L: "d4 ~ [d4,f4,a4] ~ d4 ~ [d4,f4,a4] ~ a4@2 [c4,d4,f#4]@2 d4@2 [c4,f#4,a4]@2", // Dm D7 F#dim
  M: "g4 ~ [d4,g4,a#4] ~ d4 ~ [d4,g4,a#4] ~ [f#4,a4,c5] ~ [d4,f#4,a4,c5] ~ d4@2 [c4,f#4,a4] ~", // Gm F#dim D7 F#dim
  N: "g4 ~ [d4,g4,a#4] ~ d4 ~ [d4,g4,a#4] ~ f4 ~ [f4,g4,a#4] ~ d4 ~ [d4,g4,a#4] ~", // Gm Gm7 Gm
  O: "e4 ~ [e4,g4,a#4] ~ [g4,a#4]@2 [e4,g4,a#4] ~ [e4,g4,a#4] ~ [e4,g4,a#4] ~ g4@2 [e4,g4,a#4] ~", // Edim Gm Edim
  P: "[c#4,e4,g4,a4] ~ [c#4,e4,g4,a4] ~ [c#4,e4,g4,a4] ~ [c#4,e4,g4,a4] ~ [c#4,e4,g4,a4] ~ [c#4,e4,g4,a4] ~ [c#4,e4,g4,a4] ~ [c#4,e4,g4,a4] ~", // A7
  Q: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,d#4] ~ [a3,c#4,d#4] ~ [a3,c#4,d#4] ~ [a3,c#4,d#4] ~", // A D#m7b5
  R: "[g#3,c#4,d#4] ~ [g#3,c#4,d#4] ~ [g#3,d#4] ~ [g#3,c#4,d#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~", // G#sus4 G#5 G#sus4 C#m
  S: "[g#3,c#4,d#4] ~ [g#3,c#4,d#4] ~ [f#3,b3,d4] ~ [e3,g#3,c4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~", // G#sus4 Bm Eaug C#m
  T: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // D
  U: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [c#4,e4] ~ [a3,c#4,e4] ~", // A C#m A
  V: "[a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // A# F
  W: "[a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,f4] ~ [a#3,d4,f4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4,a5] ~", // A# A#5 A# A
  X: "[a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,f4] ~ [a#3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // A# A#5 A# Dm
  Y: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~", // Dm Gm
  Z: "[a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~", // Gm Asus4
  AA: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~", // A Asus4
  AB: "[a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~ [a3,b3,c#4,e4,a4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // A
  AC: "[a3,c#4,d#4] ~ [a3,c#4,d#4] ~ [a3,c#4,d#4] ~ [a3,c#4,d#4] ~ [g#3,c#4,d#4] ~ [g#3,c#4,d#4] ~ [g#3,d#4] ~ [g#3,c#4,d#4] ~", // D#m7b5 G#sus4 G#5 G#sus4
  AD: "[e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // C#m A
  AE: "[a3,c#4,d#4] ~ [a3,c#4,d#4] ~ [a3,c#4,d#4] ~ [a3,c#4,d#4] ~ [g#3,c#4,d#4] ~ [g#3,c#4,d#4] ~ [f#3,b3,d4] ~ [e3,g#3,c4] ~", // D#m7b5 G#sus4 Bm Eaug
  AF: "[e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [e3,g#3,c#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~", // C#m D
  AG: "[a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,d4,f#4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // D A
  AH: "[a3,c#4,e4] ~ [a3,c#4,e4] ~ [c#4,e4] ~ [a3,c#4,e4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~", // A C#m A A#
  AI: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a#3,d4,f4] ~ [a#3,d4,f4] ~ [a#3,f4] ~ [a#3,d4,f4] ~", // F A# A#5 A#
  AJ: "[a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,c#4,e4,a4] ~@7", // Asus4 A
})).s("gm_electric_guitar_muted").gain(0.2).pan(0.4)

// chords · electric guitar muted · soft notes
const electric_guitar_muted_2 = note("<~@21 A ~@23 A ~@10 B ~@17 C D E F G>".pickRestart({
  A: "~@4 c#4 ~@11", B: "~@12 c#4 ~@3", C: "~@10 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~ [a3,b3,c#4,e4,a4] ~",
  D: "[a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Dm
  E: "[a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~ [a#3,d4,g4] ~", // Gm
  F: "[a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // Asus4 A
  G: "[a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,d4,e4,a4] ~ [a3,c#4,e4,a4] ~ [a3,e4,a4] ~@5", // Asus4 A A5
})).s("gm_electric_guitar_muted").gain(0.06).pan(0.4)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@11 A B C B D E F@2 G@2 ~@3 H I J@2 B C B D E F@2 K B C B D E F@2 G@2 ~@3 L M N@2 ~@2 O P ~@3 Q R S@2 T U V W T U V W
  T U V ~@5
>`.pickRestart({
  A: "~@8 a3@7 ~", B: "~@2 e4@4 d4 ~@3 d4@4 c#4 ~", C: "~@2 e4@4 d4 ~@3 f4@4 e4 ~", D: "~@2 e4@4 d4 ~@3 d#4@4 d4 ~",
  E: "~@2 a4@4 g4 ~@3 g4@4 f#4 ~", F: "[~ d4 g4 a4 a#4 ~@2 d4 f4 g4 f4 d4 c4 ~ d4@10 ~@8]/2",
  G: "[~ a4 c#5 d5 e5 ~@2 a4 b4 c#5 a4 ~ g4 a4 e4 f#4@6 ~@11]/2",
  H: "~ f#4 g4 f#4 [f#4,g4] e4 ~ d4 f#4 g4 ~ f#4 [f#4,g4] e4 d4 ~", I: "~ f#4 g4 f#4 [f#4,g4] e4 d4 c#4 ~ d4 e4 a3 ~@4",
  J: "[~@4 f5@14 ~@6 c#4 d4 e4 a3 ~@4]/2", K: "~ a3", L: "~ f#4 g4 f#4 g4 f#4 e4 d4 ~ f#4 g4 f#4 g4 f#4 e4 d4",
  M: "~ f#4 g4 f#4 g4 f#4 e4 d4 c#4 d4 e4 a3 ~@4", N: "[~@2 f5@7 ~@7]/2", O: "~@10 c#5 d5 e5 d5 c#5 a4",
  P: "b4 c#5 a4 ~@13", Q: "~@9 f#4 g4 f#4 [f#4,g4] e4 d4 ~",
  R: "~ [f#4,g4] ~ f#4 [f#4,g4] e4 d4 ~@2 f#4 g4 f#4 [f#4,g4] e4 d4 c#4", S: "[~ d4 e4 a3 ~@8 f5@14 ~@6]/2",
  T: "~ a4 f5 e5 f5 d5 a4 ~@2 a4 f5 e5 f5 d5 a4 ~", U: "~ a#4 f5 e5 f5 d5 a#4 ~@2 a#4 f5 e5 f5 d5 a#4 ~",
  V: "~ a4 e5 d5 e5 c#5 a4 ~@2 a4 e5 d5 e5 c#5 a4 ~", W: "~ a4 c#5 d5 e5 d5 c#5 a4 b4 c#5 a4 e4 [g4,a4] ~ e4 ~",
})).s("gm_string_ensemble_1").gain(0.26).pan(0.7)

// other · string ensemble 1 · soft notes · Gsus2
const string_ensemble_1_soft = note(`<
  ~@74
  [~ a4 c#5 d5 e5 d5 c#5 a4 b4 c#5 a4 e4 [g4,a4] ~ e4 ~]
  [~ a4 f5 e5 f5 d5 a4 ~@2 a4 f5 e5 f5 d5 a4 ~]
  [~ a#4 f5 e5 f5 d5 a#4 ~@2 a#4 f5 e5 f5 d5 a#4 ~]
  [~ a4 e5 d5 e5 c#5 a4 ~@2 a4 e5 d5 e5 c#5 a4 ~]
  [~ a4 c#5 d5 e5 d5 c#5 a4 b4 c#5 a4 e4 g4 ~@3]
>`).s("gm_string_ensemble_1").gain(0.09).pan(0.7)

// other · string ensemble 2
const string_ensemble_2 = note("<~@36 A@2 B C D ~@38>".pickRestart({
  A: "[~@4 a5@11 ~]/2", B: "a5", C: "a5 c6", D: "d6",
})).s("gm_string_ensemble_2").gain(0.14).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  A@3 B A@5 C A@13 D A@3 E A@19 D A@3 F G@3 H G@3 I G@3 A@3 B A@3 B A@3 B A@3 J
>`.pickRestart({
  A: "x ~@3 x ~@3 x ~@3 x ~@2 x", B: "x ~@3 x ~@3 x ~@3 x!2 ~@2", C: "x ~@3 x ~@3 x ~@2 x!2 ~@2 x",
  D: "x ~@3 x ~@3 x!3 ~ x!2 ~ x", E: "x ~@3 x ~@3 x ~ x ~ x ~@2 x", F: "x!4", G: "x ~@3 x ~@2 x!2 ~@3 x ~@3",
  H: "x ~@3 x!2 ~@2 x ~@3 x ~@3", I: "x!3 ~ x!2 ~ x!2 ~@3 x ~@3", J: "x!3 ~",
})).gain(0.25)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~ A B C ~@13 D ~ E ~@13 D ~ E ~@5 D ~ E ~@9 F G H ~@8 A B C ~ A B C ~ A B C ~@4
>`.pickRestart({
  A: "~@12 x!2 ~ x", B: "~@10 x!4 ~@2", C: "~@10 x ~@3 x!2", D: "~@8 x!3 ~ x!3 ~", E: "~@12 x!3 ~",
  F: "~@4 x!2 ~ x ~@8", G: "~@2 x!4 ~@10", H: "~@2 x ~@3 x!2 ~@8",
})).gain(0.19)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@76 [~@12 x!2 ~ x] [~@10 x!4 ~@2] [~@5 x ~@2]>").gain(0.03)

// drums · mid tom
const mid_tom = s("mt").struct("<~ A B C ~@49 D E F ~@8 A B C ~ A B C ~ A B C ~@4>".pickRestart({
  A: "~@4 x!2 ~@2", B: "~@8 x!2 ~@6", C: "x ~@3 x ~@3 x ~@3 x!2 ~@2", D: "x!2 ~@6", E: "x!2 ~@6 x ~@3 x ~@3",
  F: "x ~@3 x!2 ~@10",
})).gain(0.19)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@76 [~@4 x!2 ~@2] [~@8 x!2 ~@6] [x!3 ~]>").gain(0.03)

stack(
  bass, bass_soft, ocarina, ocarina_soft, overdriven_guitar, overdriven_guitar_soft, electric_guitar_muted,
  electric_guitar_muted_2, string_ensemble_1, string_ensemble_1_soft, string_ensemble_2, kick, low_tom, low_tom_soft,
  mid_tom, mid_tom_soft
)

More by Alain Souchon