Strudelify

Sous les jupes des filles

Alain Souchon

KeyC majorTempo144 bpm
0:00/0:00
// Sous les jupes des filles — Alain Souchon
// 144 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 8 "GuitBas8" named as a guitar, played on electric guitar clean (its slap bass 2 patch is not one); ch 9 "GuitSat9" named as a guitar, played on electric guitar clean (its lead 8 bass lead patch is not one); ch 11 "GuitBa11" named as a guitar, played on electric guitar clean (its synth bass 2 patch is not one)
// note: duplicate parts dropped: ch 8 "GuitBas8" electric guitar clean (copy of ch 7 "GuitSat7" distortion guitar); ch 9 "GuitSat9" electric guitar clean (copy of ch 11 "GuitBa11" electric guitar clean)
// note: Full arrangement: all 137 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(144/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 · dulcimer · "Santur 1"
const dulcimer = note(`<
  ~ A B C D E F G H I J K L M N O P I J Q L M N O P R S T U V W X Y R S T U V W X Z I J K L M N O P I J K L M N O P R S
  T U V W X AA R S AB AC AD AE AF Z I J K L M N O P I J K L M N O P R S T U V W X AA R S T U V W X Z I J K L M N O P I J
  K L M N O P I J K L M N O P I J K L M N O AG
>`.pickRestart({
  A: "[e5,a5,c6] ~@3 [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~@3 [e5,a5,c6] ~ [e5,a5,c6] ~", // Am
  B: "[e5,a5,c6] ~@3 [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~", // Am
  C: "[d5,g5,b5] ~@3 [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~@3 [d5,g5,b5] ~ [d5,g5,b5] ~", // G
  D: "[d5,g5,b5] ~@3 [g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~", // G
  E: "[c5,f5,a5] ~@3 [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~@3 [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  F: "[c5,f5,a5] ~@5 [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  G: "[c5,f5,a5] ~ [c5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~@3 [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  H: "[c5,e5,g5] ~ [e5,g5] ~ [c5,e5,g5] ~ [e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~", // C Em C Em C
  I: "[e5,a5,c6] ~@3 [a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [a5,c6] ~ [e5,a5,c6] ~", // Am
  J: "[e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~ [a5,c6] ~ [e5,a5,c6] ~ [e5,a5,c6] ~", // Am
  K: "[d5,g5,b5] ~ g5 ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~@3 g5 ~ g5 ~", // G
  L: "[d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~", // G
  M: "[c5,f5,a5] ~ f5 ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  N: "[c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~@3 [f5,a5] ~ [c5,f5,a5] ~", // F
  O: "[c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ f5 ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  P: "[c5,e5,g5] ~ [e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~", // C Em C Em C
  Q: "[d5,g5,b5] ~ [c#5,f#5,a#5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~ [d5,g5,b5] ~@3 g5 ~ g5 ~", // G F# G
  R: "[g#4,c5,f5] ~ c5 ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~ c5 ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~", // Fm
  S: "[g#4,c5,f5] ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~ c5 ~ [g#4,c5,f5] ~ [g#4,c5,f5] ~", // Fm
  T: "[b4,d5,f5,g5] ~@3 d5 ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~@3 [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~", // G7
  U: "[b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~", // G7
  V: "[b4,d5,f5,g5] ~@3 [d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [d5,g5] ~ [d5,f5,g5] ~ [b4,d5,f5,g5] ~", // G7 G5 G7
  W: "[b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [f5,g5] ~ [d5,f5,g5] ~ [b4,d5,f5,g5] ~", // G7 Fsus2 G7
  X: "[b4,d5,f5,g5] ~@3 [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~@3 [b4,d5,f5,g5] ~ [b4,d5,f5,g5] ~", // G7
  Y: "[c5,d#5,g5] ~ [d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~", // Cm D# Cm
  Z: "[c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~ [c5,e5,a5] ~", // Cm Am
  AA: "[b4,c5,d#5,g5] ~ [d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~ [c5,d#5,g5] ~", // Cm D# Cm
  AB: "[b4,d5,f5] ~@3 d5 ~ [b4,d5,f5] ~ [b4,d5,f5] ~@3 [b4,d5,f5] ~ [b4,d5,f5] ~", // Bdim
  AC: "[b4,d5,f5] ~ [a#4,c#5,e5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~", // Bdim A#dim Bdim
  AD: "[b4,d5,f5] ~@3 [d5,f5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~ d5 ~ [d5,f5] ~ [b4,d5,f5] ~", // Bdim Dm Bdim Dm Bdim
  AE: "[b4,d5,f5] ~ [a#4,c#5,e5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~ f5 ~ [d5,f5] ~ [b4,d5,f5] ~", // Bdim A#dim Bdim Dm Bdim
  AF: "[b4,d5,f5] ~@3 [b4,d5,f5] ~ [b4,d5,f5] ~ [b4,d5,f5] ~@3 [b4,d5,f5] ~ [b4,d5,f5] ~", // Bdim
  AG: "[c5,e5,g5] ~ [e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [e5,g5] ~ [c5,e5,g5] ~@3", // C Em C Em C
})).s("gm_dulcimer").gain(0.07).pan(0.7)

// chords · dulcimer · "Santur 1" · soft notes
const dulcimer_soft = note(`<
  ~@9 A B C ~ D E F G A B C ~ D E F G H ~ I ~ J ~@2 K H ~ I ~ J ~@3 A B C ~ D E F G A B C ~ D E F G H ~ I ~ J ~@2 K H ~
  L ~ J ~@3 A B C ~ D E F G A B C ~ D E F G H ~ I ~ J ~@2 K H ~ I ~ J ~@3 A B C ~ D E F G A B C ~ D E F G A B C ~ D E F
  G A B C ~ D E F G
>`.pickRestart({
  A: "~@2 [a5,c6] ~ e5 ~@7 e5 ~@3", B: "~@10 e5 ~@5", C: "~@12 [d5,b5] ~ [d5,b5] ~", D: "~@2 a5 ~@13", E: "~@12 c5 ~@3",
  F: "~@10 a5 ~@5", G: "~@2 c5 ~@7 c5 ~@5", H: "~@2 [g#4,f5] ~@7 f5 ~@5", I: "~@4 [b4,f5,g5] ~@11",
  J: "~@4 b4 ~@7 b4 ~@3", K: "~@2 c5 ~@13", L: "~@4 [b4,f5] ~@11",
})).s("gm_dulcimer").gain(0.05).pan(0.7)

// bass · fretless bass · "Basse  2"
const bass = note(`<
  ~ A B C D E ~ F G H B C D E ~ F G I B C D E ~ F G J K L ~ M N O P Q R S ~ T U V W H B C D E ~ F G H B C D E ~ F G Q K
  X ~ M N O P Q R S ~ T U V W Y B C D E ~ F G H B C D E ~ F G Q K X ~ M N O P Q R S ~ T U V W H B C D E ~ Z G Y B C D E
  ~ F G H B C D E ~ F G AA B C D E ~ F AB
>`.pickRestart({
  A: "a1 ~ a1 ~ a1@2 a1@2 e2@3 ~ a1@4", B: "~@14 a1 ~", C: "b1 ~ b1 ~ b1@2 b1@2 d2@3 ~ g1@3 ~", D: "~@6 d#1 e1",
  E: "e1@2 f1@2 f1@2 c2@2 ~@4 f1@3 ~", F: "f1@2 f1@2 f1@2 f1@2 c2@2 ~@2 c2@3 ~", G: "~@8 c2@2 g1@2 e1 ~ g1@2",
  H: "a1 ~ a1 ~ a1@2 a1@2 e2@2 ~@2 a1@3 ~", I: "a1 ~ a1 ~ a1@2 a1@2 e2@2 ~@2 a1@4",
  J: "f1@2 c2@2 f1 ~ f1@2 f1@2 ~@2 f1@3 ~", K: "~@6 c2 ~", L: "~@2 b1 ~ g1@2 g1@2 d2@2 ~@2 g1@3 ~, ~@4 c2 ~@11",
  M: "~@2 g1@2 g1@2 g1@2 d2@2 ~@2 g1@3 ~", N: "~@5 d2 g1!2", O: "g1 ~ g1 ~ b1 ~ b1 ~", P: "c2@4 ~ g1 d#1 g1",
  Q: "f1@2 c2@2 f1@2 f1@2 f1@2 ~@2 f1@3 ~", R: "~@7 g1", S: "b1@2 b1 ~ b1 ~ b1@2 d2@2 ~@2 g1@2 ~@2",
  T: "g1 ~ g1 ~ g1@2 g1 ~ d2@2 ~@2 d2@2 ~@2", U: "g1@2 ~@2 g1@7 ~@5", V: "g1@6 g1@2 b1 ~@3 b1@3 ~", W: "c2@7 ~ a1@8",
  X: "~@2 b1 ~ g1@2 g1@2 d2@2 ~@2 g1@3 ~", Y: "a1 ~ a1 ~ a1@2 a1@2 e2@2 ~@2 a1@2 ~@2", Z: "f1!4 c2 ~ c2 ~",
  AA: "a1 ~ a1 ~ a1@2 a1@2 e2@3 ~ a1@3 ~", AB: "~@8 c2@2 g1@2 e1 ~@3",
})).s("gm_fretless_bass").gain(0.33)

// chords · electric guitar muted · "E guit 3"
const electric_guitar_muted = note(`<
  ~ A@2 B C D@3 E A@2 B C F D@2 G A@2 B C F D@2 G H I J@5 K H I J@5 L A@2 M C D@3 G A@2 B C D@3 G H I J@5 K H I J@5 L
  A@2 B C F D@2 G A@2 B C F D@2 G H I J@5 K H I J@5 L A@2 B C F D@2 G A@2 B C F D@2 G A@2 B C F D@2 G A@2 B C F D@2 G
>`.pickRestart({
  A: "~@4 [a2,e3,a3,c4,e4,a4] ~@7 [a2,e3,a3,c4,e4,a4] ~@3", B: "~@4 [g2,d3,g3,b3,d4,g4] ~@7 [d3,g3,b3,d4,g4] ~@3",
  C: "~@4 [d3,g3,b3,d4,g4] ~@7 [g3,b3,d4,g4] ~@3", D: "~@4 [c3,f3,a3,c4,f4] ~@7 [c3,f3,a3,c4,f4] ~@3",
  E: "~@4 [e3,g3,c4,e4] ~@7 [e3,g3,c4,e4] ~@3", F: "~@4 [f2,c3,f3,a3,c4,f4] ~@7 [c3,f3,a3,c4,f4] ~@3",
  G: "~@4 [c3,g3,c4,e4,g4] ~@7 [g3,c4,e4,g4] ~@3", H: "~@4 [f3,c4,f4,g#4,c5] ~@7 [f3,c4,f4,g#4,c5] ~@3",
  I: "~@4 [c4,f4,g#4,c5] ~@7 [f3,c4,f4,g#4,c5] ~@3", J: "~@4 [g3,b3,d4,g4,b4] ~@7 [g3,b3,d4,g4,b4] ~@3",
  K: "~@4 [c3,g3,c4,d#4,g4,c5] ~@7 [c3,g3,c4,d#4,g4,c5] ~@3", L: "~@4 [c3,g3,c4,d#4,g4,c5] ~@7 [e3,a3,c4,e4,a4] ~@3",
  M: "~@4 [d3,g3,b3,d4,g4] ~@7 [d3,g3,b3,d4,g4] ~@3", // G
})).s("gm_electric_guitar_muted").gain(0.21).pan(0.3)

// chords · rock organ · "Orgue  5"
const rock_organ = note(`<
  A B C D E F G H I J K L M N O N P J K L M N O N P Q R S T U V W X Y Z AA@2 AB@2 AC AD J K L AE AF O N AG J K L M N O N
  P Q R S T U V W AH Y Z AA@2 AB@2 AC AI J K L AJ AK O N AL J K L M N O N AM Q R S T U V W AN Y Z AA@2 AB@2 AC AI J K L
  AJ AK O N AL J K L M N O N AO AP K L M N O N AQ AR K L M N O N AS
>`.pickRestart({
  A: "~@2 c6 ~ a5@2 ~@2 d5@2 ~@2 c5@2 ~@2, ~@4 g#5 ~@3 e5 ~@7", B: "~@2 a3 ~ [a4,c5,e5]@2 ~@4 a3 ~ [a4,c5,e5]@2 ~@2",
  C: "~@2 a3 ~ [a4,c5,e5]@2 a3 ~ e3 ~ e3 ~ [a4,c5,e5]@2 ~@2", D: "~@2 g3 ~ [g4,b4,d5]@2 ~@4 g3 ~ [g4,b4,d5]@2 ~@2",
  E: "~@2 g3 ~ [g4,b4,d5]@2 g3 ~ d3 ~ d3 ~ [g4,b4,d5]@2 ~@2", F: "~@2 f3 ~ [f4,a4,c5]@3 ~@3 f3 ~ [f4,a4,c5]@2 ~@2",
  G: "~@2 f3 ~ [f4,a4,c5]@2 f3 ~ c3 ~ c3 ~ [f4,a4,c5]@2 ~@2", H: "~@2 f3 ~ [f4,a4,c5]@2 ~@4 c3 ~ [f4,a4,c5]@2 ~@2",
  I: "~@2 c3 ~ [c4,e4,g4]@3 ~@3 c3 ~ [c4,e4,g4]@3 ~", J: "~@2 a3 ~ [e4,a4,c5]@3 ~@3 a3 ~ [e4,a4,c5]@3 ~",
  K: "~@2 a3 ~ [e4,a4,c5]@2 a3 ~ e4 ~ a3 ~ [e4,a4,c5]@3 ~", L: "~@2 g3 ~ [d4,g4,b4]@3 ~@3 g3 ~ [d4,g4,b4]@3 ~",
  M: "~@2 g3 ~ [d4,g4,b4]@2 g3 ~ d4 ~ g3 ~ [d4,g4,b4]@2 ~@2", N: "~@2 f3 ~ [f4,a4,c5]@3 ~@3 f3 ~ [f4,a4,c5]@3 ~",
  O: "~@2 f3 ~ [f4,a4,c5]@2 f3 ~ f4 ~ f3 ~ [f4,a4,c5]@3 ~", P: "~@2 g3 ~ [c4,e4,g4]@3 ~@3 g3 ~ [c4,e4,g4]@3 ~",
  Q: "f3 ~ f3@2 [f4,g#4,c5]@3 ~ f3 ~ f3 ~ [f4,g#4,c5]@3 ~", R: "f3 ~ f3 ~ [f4,g#4,c5]@2 f3 ~ f4 ~ f3 ~ [f4,g#4,c5]@3 ~",
  S: "~@2 g3 ~ [d4,g4,b4]@2 g3@2 ~@2 g3 ~ [d4,g4,b4]@2 g3 ~", T: "~@2 g3 ~ [d4,g4,b4]@2 g3 ~ d4@2 g3 ~ [g4,b4]@2 d4 ~",
  U: "~@2 g3 ~ g4@2 d4 ~@3 g3 ~ [g4,b4]@2 d4 ~, ~@4 b4 ~@11", // G
  V: "~@2 g3 ~ [g4,b4]@2 g3 ~ d4 ~ g3 ~ g4@2 d4 ~, ~@12 b4 ~@3", W: "~@2 g3 ~ [g4,b4]@2 d4 ~@3 g3 ~ [g4,b4]@2 d4 ~",
  X: "~@4 g5 ~@3 g5@2 ~@2 c5@2 g4@2, ~@5 d#5@2 ~", Y: "~@2 c4 ~ [g#4,c5]@2 f4 ~ c4 ~ f4@2 g#4@2 ~@2, ~@12 c5 ~@3",
  Z: "~@2 c4 ~ [g#4,c5]@2 f4@2 c4@2 f4@2 g#4@2 f4 ~, ~@12 c5 ~@3", // G#
  AA: "~@2 g3 ~ [f4,b4]@2 d4 ~ g3 ~ d4 ~ [f4,b4]@2 d4 ~", // Fdim
  AB: "~@2 g3 ~ [f4,b4]@2 d4 ~ g3 ~ d4 ~ f4@2 d4 ~, ~@12 b4 ~@3", // Fdim
  AC: "~@2 g3 ~ f4@2 d4 ~ g3 ~ d4 ~ [f4,b4]@2 d4 ~, ~@4 b4 ~@11", // Fdim
  AD: "~@4 [d#4,g4,c5] ~@3 [a4,a5]@8, ~@8 [g#4,g#5] ~@7", AE: "~@2 g3 ~ [d4,g4,b4]@2 ~@2 d5@2 b4@2 g4@2 e4@2",
  AF: "f4@2 f3 ~ [f4,a4,c5]@3 ~@3 [f3,g3] ~ [f4,a4,c5]@3 ~", AG: "~@2 c5@2 c6 ~ c5 ~ c6@2 g5@2 e5@2 c5@2",
  AH: "~@2 g5@2 c6 ~ g5 ~ c6@2 g5@2 d#5@2 c5@2", AI: "~@4 [d#4,g4,c5] ~@3 [a3,a4,a5]@8, ~@8 [g3,g#4,g#5] ~@7",
  AJ: "~@2 g3 ~ [d4,g4,b4]@2 ~@2 d5@2 b4@2 g4@2 e4@2, ~@12 a4 ~@3", // G
  AK: "f4@2 f3 ~ [f4,a4,c5]@3 ~@3 f3 ~ [f4,a4,c5]@3 ~", AL: "~@2 g3 ~ [e4,g4]@2 c4 ~@3 g3 ~ [e4,a4]@4, ~@12 g4 ~@3",
  AM: "~@2 g3 ~ e4@2 c4 ~@3 g3 ~ e4@2 c4 ~, ~@4 g4 ~@7 g4 ~@3",
  AN: "~@2 c4@2 [d#4,g4,c5] ~@4 g5@2 ~@2 c5@2 ~, ~@4 c6 ~ d#5 ~", // Cm
  AO: "~@2 g3 ~ e4@2 c4 ~ a6@2 c7@2 [g4,a6] ~ c4 ~, ~@4 g4 ~@3 g#6 ~ g3 ~ e4@2 ~@2", // Gsus2
  AP: "g#6 ~ a3 ~ [e4,a4,c5,g6]@3 ~@3 a3 ~ [e4,a4,c5]@3 ~, a6 ~@3", // Am7 Am
  AQ: "[a#6,b6] ~ g3 ~ e4@2 c4 ~@3 g3 ~ [e4,a6]@2 c7@2, c7@3 ~, ~@4 g4 ~@7 [g4,g#6] ~ c4 ~", // Bmaj7 A5 G#maj7
  AR: "a6@2 a3 ~ [e4,a4,c5]@3 ~@3 a3 ~ [e4,a4,c5]@3 ~, g#6 ~@15", // Am
  AS: "~@2 g3 ~ e4@2 c4 ~@3 g3 ~ e4@2 ~@2, ~@4 g4 ~@7 g4 ~@3",
})).s("gm_rock_organ").gain(0.14).pan(0.1)

// other · percussive organ · "Orgue  6"
const percussive_organ = note("<A ~@31 B ~@15 C ~@15 D ~@31 E ~@7 F ~@15 G H ~@6 I J ~@7>".pickRestart({
  A: "~@2 c7 ~ a6@2 ~@2 d6@2 ~@2 c6@2 ~@2, ~@4 g#6 ~@3 e6 ~@7", B: "~@4 c6 ~@3 a#5@2 g5@2 d#5@2 c5@2",
  C: "~@2 c5@2 [g#5,c6] ~ c5 ~ c6@2 g5@2 e5@2 c5 ~", D: "~@2 g5@2 c6 ~ g5 ~ c6@2 g5@2 d#5@2 c5@2",
  E: "~@4 c6 g5 d#5 c5", F: "~@4 c6 ~@2 g#5 a5@7 ~", G: "~@8 a6@2 c7@2 a6 ~@3, ~@8 g#6 ~@7", H: "a6@2 g6 ~@5, g#6 ~@15",
  I: "[a#6,b6] ~@11 a6@2 c7@2, c7@12 g#6 ~@3", J: "a6@3 ~@13, g#6 ~@15",
})).s("gm_percussive_organ").gain(0.12).pan(0.9)

// other · distortion guitar · "GuitSat7"
const distortion_guitar = note(`<
  ~ A@2 B@6 ~@15 C@3 ~@5 D@3 ~ E@3 ~ F ~@7 G H ~@6 I@5 J@4 K@2 ~ L M@2 ~ N@2 ~@3 O@2 ~@2 P@2 Q@2 R@6 ~@5 S@2 ~@6 T U@2
  ~@5 V W@2 ~@5 X Y Z@2 AA AB AC AD AE AF AG AH@2 AI@4
>`.pickRestart({
  A: "[g4@27 ~ a4@2 e4@2]/2",
  B: "[g4@2 g4@2 e4@19 ~@3 [a4,d5]@2 a4 ~ c5@12 [a4,d5]@2 ~@2 g4@11 ~@5 g4@2 a4@2 g4 ~ [g4,c5]@2 ~@2 [d#4,f#4]@2 [d4,g4]@2 [c4,g4]@2 [d4,f4]@4 [d4,g4]@2 [e4,g4]@2 [d4,g4]@2 [d4,g4]@2 [c4,g4]@2 [c4,g4]@3 ~, ~@44 c5@13 ~@5 c5@5 ~@29]/6", // D5 C5 D#m G5 C5 Dm G5 Em …
  C: "[~@5 c4 f4 e4@14 ~@3]/3", D: "[~@4 c5@2 ~@2 a#4@3 ~ c5@2 a#4@25 ~@9, ~ d#5@2 ~@21]/3", E: "[~@8 g4@27 ~@13]/3",
  F: "~ b4@3", G: "~@2 d4@8 d4@2 c4 ~ d4@2", H: "c4@5 ~@3",
  I: "[~@10 c4@2 f4@2 f4@21 ~ f4@2 g4 ~ g4@6 g#4@20 ~@8 c5@4 g4@2]/5",
  J: "[d4@11 ~ c4@2 b3@12 b4@4 c#5@11 ~ d5@2 ~ [c#5,d5] ~@10 d5@4 b4@2 g4@2, ~@47 c5@14 ~@3]/4", K: "[c5@25 ~@7]/2",
  L: "~@8 b4@3 ~ b4@2 g4 ~", M: "[f4@11 ~@5]/2", N: "[~@2 b4@6 c5@17 ~@7]/2",
  O: "[[f2,c3]@28 [f2,c3,f3] ~@3, f3@17 ~@15]/2", P: "[[a2,e3,a3,c4]@31 ~]/2", Q: "[b3@2 ~ b3@13, [g2,d3,g3]@31 ~]/2",
  R: "[[c3,f3]@4 ~@3 f4@17 ~@5 c4 f4 e4@14 ~@3, c4@7 ~@5, f2 a3@3 ~@4, f4 f3@5 ~@6, ~@8 c3@49 ~@39]/6", // F5
  S: "[~@2 b4@2 c5 ~ c5 ~ c5@2 d#5@2 c5@2 d#5@17 ~]/2", T: "~ g#4", U: "[d#4@23 ~@9]/2",
  V: "~@2 [g4,c5,e5]@2 ~@2 d4@4 g4 ~ e4@2 g4 ~", W: "[a4@29 ~@3]/2", X: "~@8 d4@7 c4", Y: "a3 ~@7",
  Z: "[~@10 d4@8 ~ c4@5 ~@8]/2", AA: "~@2 c4@3 ~ c4@8 ~@2", AB: "~@2 g4@5 ~ a4@4 e4@2 d4 ~", AC: "c4@2 d4@2 c4@9 ~@3",
  AD: "~@2 e4 c4 d4@2 g3@2", AE: "e4@2 c4@2 g3@2 c4@2 g3@2 e4@4 c4 ~, ~@5 g4 ~@2", AF: "g4@4 a4@7 ~@5",
  AG: "~@4 d5@5 ~ d5@5 ~", AH: "[d5@5 ~ d5@4 c5 ~ a4@13 ~@5 g4@2]/2",
  AI: "[a4 ~ c5@2 c5@2 d5@2 c5@2 a4@2 g4@2 a4@6 a4@3 ~@7 g4@6 a4@2 g4@2 d#4@2 c4 ~ g4@2 d4@17 ~]/4",
})).s("gm_distortion_guitar").gain(0.18)

// chords · electric guitar clean · "GuitBa11"
const electric_guitar_clean = note("<~@121 A B C B D B E F C B C B D B E G>".pickRestart({
  A: "~@2 [d3,g3]@5 ~ [e3,a3]@2 ~@4 [e3,a3] ~", B: "~@4 [e3,a3] ~@3 [d3,g3]@2 [e3,a3]@2 ~@4",
  C: "~@2 [g3,c4]@5 ~ [e3,a3]@2 ~@4 [e3,a3] ~", D: "~ [g3,c4]@3 [e3,a3] ~@2 [e3,a3]",
  E: "~@2 [g3,c4]@5 ~ [e3,a3]@2 ~@2 [g3,c4]@2 ~@2", F: "d3@2 g3 ~ g3@2 ~@2 d3@2 d3@2 g3@2 e3@2",
  G: "d3@2 g3 ~ g3@2 ~@2 d3@2 d3@2 g3@2 ~@2",
})).s("gm_electric_guitar_clean").gain(0.12).pan(0.7)

// chords · synth brass 1 · "Sbrass12"
const synth_brass_1 = note(`<
  ~@25 A@2 B C B C D E A@2 B C B C D F ~@16 A@2 B C B C D E A@2 B C B C D F ~@16 A@2 B C B C D E A@2 B C B C D F ~@32
>`.pickRestart({
  A: "~@4 [g#3,c4,f4]@2 ~@2 [f4,g#4]@2 ~@2 [c4,f4] ~@3, ~@8 c4 ~@3 g#3@2 ~@2", // Fm F5
  B: "~@2 [g3,b3] ~ [b3,d4,g4] ~ [f3,g3,b3] ~, ~@4 f3 ~@11", C: "~@4 [f3,g3] ~@3 g4@2 d4@2 b3@2 g3@2, ~@2 b3 ~@5",
  D: "[d4,b4]@8 [g4,d5]@7 ~", E: "[c5,d#5] ~@15", F: "[c5,d#5]@3 ~@5",
})).s("gm_synth_brass_1").gain(0.14).pan(0.3)

// other · string ensemble 1 · "Cordes13"
const string_ensemble_1 = note(`<
  ~@28 A ~@2 B C ~@3 D@2 E B F G@2 H@2 I@2 J K G@2 H@2 I@2 J K ~@3 A ~@2 B C ~@3 D@2 L B F ~@19 A ~@2 B C ~@3 D@2 L B F
  M N@3 O@2 P@2 Q@2 R S T@2 U V ~@16
>`.pickRestart({
  A: "~@8 g4@2 d4@2 ~ g3@2 ~, ~@6 b3 ~", B: "[d4,b4] [g4,d5]", C: "[c5,d#5] ~@15",
  D: "[~@8 g4@2 d4@2 b3@2 ~ f3@3 ~@14, ~@7 g3 ~@8]/2", E: "~@4 g4 d4 b3 g3", F: "[c5,d#5]@7 ~@9",
  G: "[a3@13 e3 a3 c4]/2", H: "[b3@2 g3@2 f3@2 ~@6 d4 b3 g3 e3, ~@12 d3@15 ~@5]/2",
  I: "[f3@6 a3@17 ~@3 g3@2 ~ c3@2 ~, ~@14 f3 ~]/2", J: "f4@2 a4 ~ [a3,c4]@4, ~@6 f4@9 ~", K: "[g3,e4]@7 ~",
  L: "~@4 g4 d4 b3 g3, ~@14 f3 ~", M: "a4@2 ~@2 e4 ~@3 a4@2 ~@2 a3@2 ~@2",
  N: "[a4@2 ~@2 c4@2 ~@2 a4@2 ~ c4@3 ~ g4@2 ~@3 d4@2 ~@2 g4 ~@3 d4 ~ d4@7 ~@2 b4@2 a4@2 g4@4 ~, ~@5 e4 ~ a4 ~@5 g4@4 ~@7]/3",
  O: "[f4@4 ~@4 [f4,a4]@2 ~@2 [f4,a4] ~ [f4,a4]@9 ~ a4@2 g4@2 f4@4]/2", // F
  P: "[a4 ~@2 [f4,c5]@8 a4 b4 ~@2 [g4,e5]@13 ~@4]/2", // F5 C
  Q: "[a4@2 ~ e4@2 ~@3 a4@2 ~@2 a3@2 ~ a4@2 ~@3 e4@2 ~@2 a4@2 e4@2 ~ a4@2 ~, ~@14 a3 ~]/2",
  R: "g4@2 ~@2 g3@2 ~@4 g4@2 ~ g3@2 ~, ~@6 b3 ~", S: "d4@8 b4@2 a4@2 g4@3 f4",
  T: "[~@4 a3 ~@3 [c4,a4] ~@3 [c4,a4] ~ [c4,a4]@9 ~ a4@2 g4@2 f4@2 ~@2]/2", U: "[a4,f5] ~@3 [c5,f5]@7 ~ [a4,f5] ~@3",
  V: "[c5,e5]@13 ~@3", // C
})).s("gm_string_ensemble_1").gain(0.19).pan(0.6)

// chords · clarinet · "Clarin14"
const clarinet = note("<~@75 A@2 B@2 C D E@2 F@2 G H I J ~@48>".pickRestart({
// … 45 more lines

More by Alain Souchon