Strudelify
Y'a d'la rumba dans l'air cover art

Jamais Content

Y'a d'la rumba dans l'air

Alain Souchon

KeyE♭ majorTempo117 bpm
0:00/0:00
// Y'a d'la rumba dans l'air — Alain Souchon
// 117 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: ch 5 "Strings" named as a string part, played on string ensemble 1 (its pad metallic patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(117/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 · acoustic guitar steel · "Guit Acc"
const acoustic_guitar_steel = note(`<
  A@2 B C D@2 E@2 ~ F@2 G@2 H I J K F@2 G@2 H I J L M N O P Q R S T U V W X Y Z AA@3 F@2 G@2 H I J K F@2 G@2 H I J L M N
  O P Q R S T U V W X Y Z AA@3 F@2 G@2 H I J K F@2 G@2 H I AB AC@2 ~
>`.pickRestart({
  A: "[~@9 [c4,eb4]@2 [c4,eb4]@2 [c4,eb4]@3, eb3, ~@2 c4@6 ab3@23 ~, ~@2 eb4@3 c4@2 g4@9, ~@6 g4@5 ~ eb4@4 ~@16]/2", // Cm
  B: "~@5 d4 ~ [d4,f4], g3@11 ~ g3@4, ~ bb3@5 ~@2, ~@2 d4@3 ~@3, ~@3 g4@5", // Dm
  C: "[c4,e4]@2 [c4,e4]@2 [c4,e4]@4 ~@2 [c4,e4]@5 ~", D: "[~@4 eb4@2 g4@4 eb4@4 g4@17 ~, f3@31 ~, ~@2 c4@29 ~]/2",
  E: "[~@5 d4@2 ~ gb4@8, f3@15 [f3,bb3,d4]@17, ~@2 bb3@13 ~@17, ~@4 d4@5 ~@23, ~@3 g4@4 ~@9]/2", // Bb
  F: "[g2,eb3,g3] ~ [eb4,g4]@4 [eb4,g4]@2 [g2,eb3,g3]@2 [g3,bb3,eb4,g4] ~@3 eb3 ~, ~ bb3@3 ~@4, ~ eb3 ~@6", // Cm Eb Cm Eb
  G: "[g2,eb3,g3] ~ [eb4,g4]@4 [eb4,g4]@2 [g2,eb3,g3]@2 [g3,c4,eb4,g4] ~@3 eb3 ~, ~ c4@3 ~@4, ~ eb3 ~@6", // Cm Eb Cm
  H: "[f3,ab3] ~ [f4,ab4]@4 [f4,ab4]@2 [f3,ab3]@2 [ab3,c4,f4,ab4] ~@3 f3 ~, ~ c4@3 ~@4, ~ f3 ~@6", // Fm
  I: "[f3,ab3] ~ [d4,ab4]@4 [d4,ab4]@2 [f3,ab3]@2 [ab3,bb3,d4,ab4] ~@3 f3 ~, ~ bb3@3 ~@4, ~ f3 ~@6", // Fm Ddim Fm Bb7
  J: "[g2,eb3,g3] ~ [d4,g4]@4 [d4,g4]@2 [g2,eb3,g3]@2 [g3,bb3,d4,g4] ~@3 eb3 ~, ~ bb3@3 ~@4, ~ eb3 ~@6", // Cm G5 Cm Gm
  K: "~ [d4,g4,bb4]@14 ~, [bb2,eb3,bb3]", // Gm Eb5
  L: "[g2,eb3,g3] ~ [db4,g4]@4 [db4,g4]@2 [g2,eb3,g3]@2 [g3,bb3,db4,g4]@2 [g3,bb3,db4,g4]@2 [g3,bb3,db4,g4]@2, ~ bb3@3 ~@4, ~ eb3 ~@6", // Cm Dbdim Cm Gdim
  M: "~ [c4,f4,ab4]@2 ~@2 [c4,f4,ab4]!3, ab3!2, ~@3 [c4,f4]@2 ~@3", // Fm F5
  N: "f3 ~@3 f3 bb3 [bb3,d4,f4]@2, f2, bb2@3 bb3@2 ~@3, ~ bb3@2 [d4,f4]@3 ~@2, ~@2 f3@2 ~ [bb2,f3]@3", // Bb Dm Bb5
  O: "[eb3,g3] g3 ~@4 d4 [g3,d4], g2, ~ bb3@2 [bb3,d4,g4]@3 [bb3,g4]@2, ~@2 [eb3,g3]@3 eb3@3, ~@5 g3@2 ~", // Eb G5 Gm Eb
  P: "c4@2 [c4,eb4] [g3,eb4,g4]@2 ~ [eb4,g4]!2, [c3,g3,g4]@3 [c3,c4]@3 [c3,g3,c4]@2, d4 ~@7", // Cm Eb C5 C C5
  Q: "[c4,f4] [c4,f4]@2 f4 ~ f3 [c4,f4]!2, f2, c3@2 f4 ~, [f3,ab3]@3 [ab3,c4]@3 [f3,ab3]@2, ~@3 f3@2 c3@3", // F5 Fm Ab Fm
  R: "[f4,bb4] ~ [bb3,eb4,f4] [f4,bb4] ~ d4 [d4,f4,bb4]!2, f3@3 [f3,d4]@2 bb2@3, [bb3,eb4] ~@2 bb3, ~ bb4@2 ~ bb4@2 ~@2", // Bb5 Bbsus4 Bb5 Bb Dm Eb5
  S: "[eb3,g3,bb3,eb4,g4] [g3,bb3,eb4,g4]@2 [g3,g4] ~@2 [eb4,g4] [g3,eb4,g4], ~ eb3@3 g4@2 ~@2, ~@3 [bb3,eb4]@3 bb3@2, ~@5 eb3@3, ~@5 g3@2 ~", // Eb G Eb Cm Eb5
  T: "[eb3,g3,bb3,db4,g4] [g3,bb3,db4,g4]@2 [g3,g4] ~@2 [db4,g4] [g3,db4,g4], ~ eb3@3 g4@2 ~@2, ~@3 [bb3,db4]@3 bb3@2, ~@5 eb3@3, ~@5 g3@2 ~", // Eb7 Gdim G Dbdim Gdim Bbm
  U: "~ [b3,eb4,ab4]@2 ~@2 [b3,eb4,ab4]!3, ab3!2, ~@3 [b3,eb4]@2 ~@3", // Abm B
  V: "f3 ~@3 f3 ab3 [ab3,db4,f4]@2, ab2, db3@3 ab3@2 ~@3, ~ ab3@2 [db4,f4]@3 ~@2, ~@2 f3@2 ~ [db3,f3]@3", // Db
  W: "[f3,bb3] bb3 ~@4 f4 [bb3,f4], bb2, ~ db4@2 [db4,f4,ab4]@3 [db4,ab4]@2, ~@2 [f3,bb3]@3 f3@3, ~@5 bb3@2 ~", // Bb5 Db Db5 Bb5
  X: "bb3@2 [bb3,eb4] [g3,eb4,g4]@2 ~ [eb4,g4]!2, [eb3,g3,g4]@3 [eb3,bb3]@3 [eb3,g3,bb3]@2, d4 ~@7", // Eb5 Cm Eb Eb5 Eb
  Y: "~@2 ab4 ~@3 b4 bb4, b3!2, ~ eb4@4 eb4@3, ~@3 ab4@2 ~@3", Z: "~@2 b4!2 ~@3 ab4, b3 ab3, ~@2 eb4@7 ~ b3@6, ~@3 eb4",
  AA: "[~@8 bb4@6 ~@2 [bb3,gb4,bb4]@31 ~, ab3@8 ~@7 [gb3,d4]@32 ~, ~ bb3@6 ~@17, ~@2 eb4@5 ~@17, ~@2 ab4@3 ~@11]/3", // Ebm D
  AB: "[g2,eb3,g3] ~ [d4,g4]@4 ~ g4@2 [g2,eb3,g3]@2 [g3,bb3,d4,g4] ~@4, ~ bb3@3 ~@4, ~ eb3 ~ d4 ~@4", // Cm G5 Cm Gm
  AC: "[~ eb3 ~@2 [g3,bb3]@21 ~@7, ~@3 [bb2,eb3]@22 ~@7, ~@4 eb4@19 ~@9]/2", // Gm Eb5
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.2)

// chords · acoustic guitar steel · "Guit Acc" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@3 A ~@5 B@2 C@2 D E F ~ B@2 C@2 D E F G H I ~ J ~ K ~@2 H L ~ M ~@5 B@2 C@2 D E F ~ B@2 C@2 D E F G H I ~ J ~ K ~@2
  H L ~ M ~@5 B@2 C@2 D E F ~ B@2 C@2 D E N O ~@2
>`.pickRestart({
  A: "~@4 [c4,e4] ~@3", B: "[bb3,eb4] ~@11 [g2,eb3] ~ bb2 ~", C: "[c4,eb4] ~@11 [g2,eb3] ~ bb2 ~",
  D: "[c4,f4] ~@11 f3 ~@3", E: "[bb3,d4] ~@11 f3 ~@3", F: "[bb3,d4] ~@11 [g2,eb3] ~ bb2 ~", G: "[bb3,db4] ~@15",
  H: "~@3 ab4@2 ~@3", I: "~@2 d4 ~ bb2 ~@3", J: "~ eb4 ~@3 [g3,eb4,g4] ~@2, ~@3 g2@5",
  K: "~@2 f4@2 ~@4 f4@2 ~ f3@3 f3@2, ~@7 bb3@3 f4@2 ~@4, ~@11 bb3 ~@4", L: "~@2 db4 ~ db3 ~@3",
  M: "~ eb4 ~@3 [g3,eb4,g4] ~@2, ~@3 bb2@5", N: "[bb3,d4] ~@12 [g2,eb3] ~@2", O: "~ bb2 ~@14",
})).s("gm_acoustic_guitar_steel").gain(0.14).pan(0.2)

// bass · electric bass finger · "Basse"
const bass = note(`<
  A B C D E@2 F@3 G H I J K L M N G O I P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ@2 G H I J K L M N G O I P Q
  R S T AK AL W X Y Z AM AB AC AN AO AP AG AH AQ AJ@2 G H I J K L M N G O I P Q R AR@4
>`.pickRestart({
  A: "ab2", B: "ab1@15 ~", C: "g2@15 ~", D: "c2@7 ~", E: "[f1@29 ~@3]/2", F: "[bb1@47 ~]/3",
  G: "eb2@7 ~ bb1@3 ~ bb1@3 ~", H: "eb2@7 ~ a2@4 eb2@3 ~", I: "c2@6 ~@2 gb2@3 ~ gb2@3 ~", J: "c2@6 ~@2 b2@3 ~ g2@3 ~",
  K: "f2@3 ~ b2@2 f2 ~", L: "bb1@7 ~ e2@3 ~ e2@3 ~", M: "eb2@7 ~ eb3@3 ~ bb2@3 ~", N: "eb2", O: "eb2@7 ~ a2@4 bb1@3 ~",
  P: "c2@6 ~@2 gb2@3 ~ c2@3 ~", Q: "f2@6 ~@2 bb2@4 f2@3 ~", R: "bb1@6 ~@2 eb2@3 ~ e2@3 ~",
  S: "eb2@6 ~@2 bb1@3 ~ bb1@3 ~", T: "eb2@6 ~@2 eb3@3 ~ eb2@3 ~", U: "f2@5 ~ f3@6 ab1@2 a1@2",
  V: "bb1@9 ~ bb2@2 ~@2 f2@2", W: "eb2@4 ~@2 eb3 ~ d3@2 eb3@2 bb2@2 g2@2", X: "c2@5 ~ g2 ~@3 g2@3 ~ c2@2",
  Y: "f2@2 f2 ~@3 f2@2 f2@2 f2@4 c2@2", Z: "bb1@2 bb1 ~@3 bb1@2 bb1@2 bb1@4 bb1@2",
  AA: "eb2@5 ~ eb2 ~ eb3@2 c3 ~ bb2@2 c3@2", AB: "eb2 eb3 f3 gb3 g3 eb2 bb1 a1", AC: "ab1@5 ~ eb2@6 ~@2 ab1 ~",
  AD: "db2@5 ~ c3@8 b2@2", AE: "bb2@4 ~@2 f2@6 bb1 ~ f2@2", AF: "eb2@2 ~ eb3 d3@2 bb2 eb2", AG: "ab2 eb2",
  AH: "ab1@6 ~@2 eb2@7 ~", AI: "bb1@15 ~", AJ: "[bb2@15 ~]/2", AK: "f2@2 ~ f3@3 ab1 a1",
  AL: "bb1@5 ~ bb2@2 ~@2 bb2@3 ~ f2 ~", AM: "eb2@5 ~ eb2@2 ~@2 eb3 ~ d3@2 eb3@2", AN: "db2@5 ~ c3@6 db3@2 b2@2",
  AO: "bb2@5 ~ f2@6 bb1 ~ f2@2", AP: "eb2@2 ~ eb2@2 eb3 db3 eb3", AQ: "bb1@7 ~ f2@7 ~",
  AR: "[eb2@7 ~ bb1@3 ~@2 bb1@5 ~@2 eb1@40 ~@4]/4",
})).s("gm_electric_bass_finger").gain(0.58)

// chords · piano
const piano = note(`<
  A@2 B@2 C@2 D@2 ~ E F G H@3 I J K L M N@2 O P Q ~@17 R S T U@3 V ~ W X Y Z@2 AA@2 Q ~@17 AB@2 AC@3 AD@2 AE AF AG@2 ~@4
  AH AI@2
>`.pickRestart({
  A: "[~@15 f3, eb6@11 c5@2 c4 c5@2, [ab2,eb5,g5,c6] [ab2,c6], ~@2 g3@5 g3 [c5,eb5,g5]@2 g3@6, ~@3 c4@8 [g4,eb5,g5]@5]/2", // Abmaj7 Ab Cm
  B: "[bb3@3 ~@11 c3@2, [g2,c5,f5]@8 [g2,e3,bb4,c5,f5]@2 g5 c6 bb3 bb5@3, f3@5 f3@11, f4 f4@3, ~@3 bb3@5 [c3,bb3] e5@7]/2", // Csus4 C7
  C: "[~@3 [f3,ab3], c4@22 [c4,eb4]@9 ~, [f2,eb3]@14 g4@11 ~@7, [ab3,g4]@3 ab3@5 bb2@8, ~@2 ab4 g4@2 ab4@3 ~ ab4@3 ~@4]/2", // Fm Cm F7 Abmaj7
  D: "[~@17 [d5,gb5]@15, [f2,eb5]@14 ab4@17 ~, ab4@10 c3@6 [bb2,f3,ab3,b4]@15 ~, c5@8 ab3@4 c5@5 ~@15, ~ g5@16 ~@15]/2", // D F7 Fdim
  E: "~@5 bb2 [c3,d3,bb5,c6,d6] ~ [d3,d6]@3 [bb2,bb5]@3 [c3,c6]@2, ~@7 [eb3,eb6]@2 ~@7", F: "~ g5@8 ~@7, g2 ~",
  G: "~@6 [g2,ab2,g5,ab5] [c3,c6]@2 [bb2,bb5]@2 [g2,g5]@3 [f2,f5]@2, ~@7 [bb2,bb5] ~@8", // Abmaj7 C Bb G F Bb
  H: "[[g2,g5]@3 [c2,c5]@3 [eb2,eb5]@9 [eb5,f5,g5] ~@20 [ab3,c4,eb4,ab4]@2 ab3@4 ~@3 f5@3, ~@15 f2@15 f5@2 bb2@11 ab3@4 ~, ~@8 ab5@9 f3@7, ~@17 c3@21 [d4,ab4]@10, ~@19 ab3@2 [eb4,ab4] c4@2 ab3@4 bb5@10 ~@4 eb5@6]/3", // G C Eb Ab Ddim Ab5
  I: "~@2 [bb3,d4,g4] ~@4 d4, [eb2,g5]@3 bb3, ~ bb2@7, ~@3 g4@5, ~@3 [bb3,d4]@2 g3@3", J: "[eb2,bb2,eb3,g3,c4]@13 ~@3",
  K: "~@7 eb3 [f3,eb6,f6] [g3,g6]@2 [f3,f6]@3 [g3,g6]@2", // F7 G F G
  L: "[eb3,eb6]@3 [f3,f6]@2 ~ d3@2 [eb3,eb6]@2 ~ c3@5, ~@5 d6@3 ~@2 c6@6", // Eb F Eb
  M: "~@7 [c3,d3,c6] [eb3,eb6]@3 [d3,d6]@2 [c3,c6]@3, ~@8 d6 ~@7", // Csus2 Eb D C
  N: "[[bb2,bb5]@2 ~ c6@2 [c3,c6]@3 [g2,g5]@3 [bb2,bb5]@3 [f2,f5]@6 ~@12, ~ c3 ~@14]/2", // Bb C G Bb F
  O: "[bb2,b2,bb5,b5] ~@2 [bb2,bb5]@3 [c3,c6]@2 [bb2,bb5]@3 [c3,c6]@3 [bb2,bb5]@2, [c3,c6]@3 ~@3 [b2,b5] ~@9", // Bmaj7 Bb C Bb C Bb C B
  P: "~ eb2@9 [bb2,bb5] [c3,c6]@3 [bb2,bb5]@2, eb5@10 ~ [b2,b5] ~@4", Q: "[db3,db6]@3 ~",
  R: "~@7 [db3,d3,db6,d6] [eb3,eb6]@3 [d3,d6]@3 [bb2,bb5]@2", S: "~ [c3,c6]@3 [g2,g5]@8 ~@4",
  T: "~@8 [bb2,b2,bb5,b5] [c3,c6]@2 [bb2,bb5]@3 [g2,g5]@2", // Bmaj7 C Bb G
  U: "[~ [f2,f5]@3 [g2,g5]@3 [c2,c5]@4 [eb2,eb5]@9 [f2,gb2,f5,gb5] [g2,g5]@2 [g2,g5]@4 [f2,f5]@8 [bb2,b2,bb5] [c3,c6]@2 ~ [c3,c6]@3 [bb2,bb5]@3 [f2,f5]@3, ~@36 b5 ~@11]/3", // F G C Eb Gbmaj7 G F Bmaj7 …
  V: "[g2,g5]@3 ~", W: "~@6 [ab3,a3,ab6,a6] ~@2 g6@2 [f3,f6]@2 ~ eb6@2, ~@7 [bb3,bb6]@2 ~@7, ~@8 g3@3 ~@2 eb3@3",
  X: "[f3,f6]@2 ~ g6@3 [d3,d6]@10, ~@2 g3@3 ~@11", Y: "~@6 [f3,f6] [g3,g6]@3 [f3,f6]@3 [eb3,eb6]@3, ~@7 [gb3,gb6] ~@8",
  Z: "[[f3,f6]@3 [c3,c6]@2 [eb3,eb6]@3 [bb2,bb5]@3 [c3,c6]@3 [g2,g5]@4 [bb2,bb5]@3 [f2,f5]@7 ~@4]/2", // F C Eb Bb C G Bb F
  AA: "[[bb2,b2,bb5,b5] [c3,c6]@3 [bb2,bb5]@6 [b2,b5] [c3,c6]@3 [bb2,bb5]@3 [eb2,eb5]@9 [bb2,bb5]@3 [c3,c6]@3]/2", // Bmaj7 C Bb B C Bb Eb Bb …
  AB: "[~@6 [ab3,ab6] [bb3,bb6]@5 [g3,g6]@2 [c4,c7]@6 [g3,g6]@2 [bb3,bb6]@9 ~, ~@7 [a3,a6] ~@24]/2", // Ab Bb G C G Bb A
  AC: "[~@6 [db3,d3,db6] [eb3,eb6]@5 [c3,c6]@2 [g3,g6]@4 [f3,f6]@3 [eb3,eb6]@3 [c3,c6]@4 [eb3,eb6]@2 [c3,c6]@6 ~@12, ~@7 d6 ~@40]/3", // Dmaj7 Eb C G F Eb C Eb …
  AD: "[[f3,gb3,f6,gb6] ~ [bb3,bb6]@2 ~ [g3,g6]@7 [f3,f6]@2 [g3,g6]@18, g6 ~@15, ~ g3@2 ~@29]/2", // Gbmaj7 Bb G F G
  AE: "~@8 [db3,d3,db6,d6] ~@2 [d3,d6]@2 [bb2,bb5]@3, ~@8 [eb3,eb6]@3 ~@5", AF: "[c3,c6]@4 [g2,g5]@2 [c3,c6]@9 ~",
  AG: "[~@8 [bb2,bb5]@2 [c3,c6]@2 [g2,g5]@2 [f2,f5]@4 [g2,g5]@2 [eb2,eb5]@4 [f2,f5]@2 ~ [c2,c5]@5]/2", // Bb C G F G Eb F C
  AH: "~@7 [bb3,bb6] [b3,b6] c7@3 [g3,g6]@4, ~@2 c4 ~", // Bb B G
  AI: "[[bb3,bb6]@4 f3@5 [gb3,f6,gb6] [g3,g6]@11 ~@11, ~ f6 ~@6]/2", // Bb Gbmaj7 G
})).s("gm_piano").gain(0.41).pan(0.7)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@25 A B C D E@3 F G@2 C H I J C ~@53>".pickRestart({
  A: "c6", B: "eb5@6 d5@9 ~", C: "bb5", D: "d5@3 c5@5", E: "[ab5@15 c5@6 ~ bb4@9 g5@8 ~ d5@2 f5@2 eb5@2 d5@2]/3",
  F: "~ f5@2 c6@2 a5@2 ~@2 db6@2 f6@2 eb6@2 ~, db5 ~@3 bb5 ~@3", G: "[b5@3 db6@2 bb5@2 ab5]/2", H: "f6@4 eb6@7 g5@5",
  I: "ab5@3 bb5", J: "db6 b5@2 f5",
})).s("gm_string_ensemble_1").gain(0.54)

// other · electric guitar clean · "Guit Ele"
const electric_guitar_clean = note("<~@31 A@3 B C ~ D E F G ~@23 A@3 B C ~ D E F H@2 ~@18>".pickRestart({
  A: "[bb2 bb2@9 c3 ~ bb2 ~ c3@14 eb3 ~ f3@16 ~@2, ~@11 c3@2 ~@35]/3", B: "~@8 ab3 ab3@7", C: "ab3 ab3@15",
  D: "ab3 ab3@7 g3@7 ~", E: "gb3@8 f3@7 ~", F: "f3 f3@14 gb3", G: "gb3",
  H: "[gb3@2 gb3@2 gb3@2 ~ gb3@2 ~ gb3@10 ~@12]/2",
})).s("gm_electric_guitar_clean").gain(0.57).pan(0.1)

// chords · electric guitar jazz · "JazzGuit"
const electric_guitar_jazz = note(`<
  ~@24 A@3 B C D E ~ F G H I J K L@3 ~@16 A@3 B C D E ~ F G H I J K L@3 ~@19
>`.pickRestart({
  A: "[~ g5@2 eb5 ~ ab4 ~ eb5@13 ~@2 ab5@2, ~@2 a5 ~@5 bb4@31 ~ d5@8, ~@3 g4@7 ~@2]/3", B: "~ d5@3",
  C: "~@4 g5 gb5 ~ eb5, ~@2 bb5@3 ~ f5@2", D: "[gb4,eb5]@11 ~ [g4,eb5]@4", E: "[f4,d5]@15 ~",
  F: "~@6 eb5@2 bb4@2 ~ g4@2 f4@2 ~, ~ g5@3 ~ ab4@3", G: "~@12 [ab4,b4]@3 ~, [ab4,b4]@11 ~@5, ~@6 [eb5,gb5]@9 ~",
  H: "[ab4,b4]@6 gb5@5 f5@4 ~, ~@3 db5@5", I: "[db5,f5]@5 ~ a4@5 bb4@5, ~@3 db5@5", J: "~@3 eb5@3 bb4@2",
  K: "ab4@7 ~ bb4@8", L: "[b4@15 f4@4 bb4@29]/3",
})).s("gm_electric_guitar_jazz").gain(0.35).pan(1)

// chords · electric guitar muted · "MuteGuit"
const electric_guitar_muted = note(`<
  ~@9 A@2 B@2 C D E@2 A@2 B@2 C D F G ~@17 A@2 B@2 C D E@2 A@2 B@2 C D F G ~@17 A@2 B@2 C D E@2 A@2 B@2 C D H ~@3
>`.pickRestart({
  A: "~@4 [bb4,eb5] ~@5 [bb4,eb5] ~@5", B: "~@4 [g4,c5] ~@5 [g4,c5] ~@5", C: "~@4 [ab4,eb5] ~@5 [ab4,eb5] ~@5",
  D: "~@4 [ab4,d5] ~@5 [ab4,d5] ~@5", E: "[~@4 [g4,bb4,d5] ~@5 [g4,d5] ~@5 [g4,c5]@16, ~@15 eb4@16 ~]/2",
  F: "~@4 [g4,d5] ~@5 [g4,d5] ~@5", G: "~@4 [g4,db5] ~@5 [f4,db5] ~@5", H: "~@4 [g4,d5] ~@6 [g4,d5] ~@4",
})).s("gm_electric_guitar_muted").gain(0.3).pan(0.9)

// chords · piano
const piano_2 = note(`<
  ~@17 A B C D E F@2 G ~@17 A B C D E H@3 A B C D E F@2 G ~@17 A B C D E H@3 A B C D E I@2 ~@3
>`.pickRestart({
  A: "~@7 bb2, eb2, ~@2 bb2@5 ~, ~@3 [g3,d4,g4,bb4,d5]@5", B: "~@7 bb2, eb2, ~@2 bb2@5 ~, ~@3 [g3,c4,d4,g4,c5]@5",
  C: "~@7 g2, c2, ~@2 g2@5 ~, ~@3 [eb3,c4,eb4,g4,c5]@5", D: "~@7 g2, c2, ~@4 g2@9 ~@3, ~@3 [eb3,c4,eb4,g4,c5]@5",
  E: "~@7 c3, f2, ~ c3@2 ~, ~@3 [ab3,c4,eb4,ab4,c5]@5", // Ab
  F: "[~@6 [ab3,c4,d4,g4,c5]@8 ~@6 bb2@2 bb4@4 ~@3 g4@3, bb2@7 bb2@3 ~ [g3,eb4,d5]@5, ~@2 f3@5 ~ eb2@8, ~@22 g4@7 ~@3, ~@13 bb4@3]/2", // Abmaj7 Ebmaj7
  G: "~@2 bb2 f3@2 eb3@3, [eb2,db4,f4,ab4,db5]", // Db
  H: "[~@6 [ab3,c4,d4,g4,c5]@8 ~@6 bb2@2 ~@10 [g4,c5]@13 ~@3, bb2@14 bb2@6 ~@2 [g3,eb4,g4,bb4,d5]@9 [g3,c4,eb4]@13 ~@4, ~@2 f3@5 ~ eb2@14 ~@2, ~@7 bb2@4 ~]/3", // Abmaj7 C5 Ebmaj7 Cm
  I: "[~@6 [ab3,c4,d4,g4,c5]@8 ~@2 eb2@9 ~@7, bb2@7 bb2@3 ~@6, ~@2 f3@5 ~@9]/2", // Abmaj7
})).s("gm_piano").gain(0.4).pan(0.2)

// drums · bongos
const bongos = s("bongo:4").struct(`<
  A B ~ C ~ D@2 ~@2 A@7 ~ A@20 ~@5 A@7 ~ A@7 E A@8 ~ A@3 C ~ E ~@2 A@7 ~ A@6 F ~@3
>`.pickRestart({
  A: "~@5 x ~@2", B: "~ x ~@3 x ~@2", C: "~ x ~@2", D: "~@2 x ~@2 x ~@2", E: "~@3 x", F: "~@13 x ~@2",
})).gain(0.91)

// drums · congas
const congas = s("conga:13").struct(`<
  A B C D E F G ~@2 H@3 I H@2 I ~ H@3 I H@3 I H@3 I H@3 I H@3 I J@2 ~@3 H@3 I H@2 I ~ H@3 I H@7 I H@3 I H@3 I G K L ~@2
  H@3 I H@2 I ~ H@3 I H@2 M ~@3
>`.pickRestart({
  A: "~ x!2 ~ x ~@3", B: "x ~ x!2 ~@4", C: "~ x!5 ~@2", D: "x!2 ~ x!3 ~@2", E: "~@2 x!2 ~ x ~@2", F: "~ x ~ x ~@4",
  G: "~ x ~@6", H: "~@2 x!2 ~@4", I: "~ x!3 ~@4", J: "~ x ~ x", K: "~@5 x!2 ~", L: "~ x ~@2", M: "~@4 x ~@2 x ~@8",
})).gain(1.43)

// drums · congas
const congas_2 = s("conga:18").struct(`<
  A B C@4 A ~@2 D C@6 ~ D C@19 ~@4 E D C@6 ~ D C@6 F C@8 G C@3 H ~@3 E D C@6 E D C@5 I J K ~
>`.pickRestart({
  A: "~@3 x ~@2 x!2", B: "~@4 x ~ x!2", C: "~@6 x!2", D: "x ~@5 x!2", E: "~@3 x", F: "~@8 x!4 ~@2 x ~", G: "x ~@3 x!4",
  H: "~@5 x!3", I: "~@9 x ~ x ~@4", J: "~ x ~@2 x!2 ~@10", K: "x!3 ~@13",
})).gain(1.43)

// drums · congas · soft notes
const congas_soft = s("conga:18").struct("<~@90 [~@6 x!10] [~@3 x!13] [x!2 ~@14]>").gain(0.48)

// drums · ht
const ht = s("ht").struct("<~@16 [~@3 x] ~@32 [~@3 x] ~@43>").gain(0.45)

// drums · mt
const mt = s("mt").struct("<~@7 A B ~@31 A B ~@31 A B ~@18>".pickRestart({
  A: "~@15 x", B: "x",
})).gain(0.4)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@9 A@7 B A@7 C A@12 ~@5 A@6 C B A@15 C A@4 ~@5 A@6 C B A@6 D ~@3>".pickRestart({
  A: "~ x!2 ~@2 x!2 ~", B: "x", C: "~ x!2 ~ x!2 ~ x", D: "~@2 x ~ x ~@6 x ~@2 x ~",
})).gain(1.51)
// … 26 more lines

More by Alain Souchon