Strudelify

Le Bistrot

Brassens Georges

KeyF majorTempo130 bpm
0:00/0:00
// Le Bistrot — Brassens Georges
// 130 bpm, 3/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 110 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/3)

// 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 · acoustic bass · "basse"
const bass = note(`<
  A B A C D E F G D H I D J E K L J H I D A H M G D N I A D E M O A N I A P H F Q A E I A P R K O A H I P@2 N M G P N I
  D A E K L P E I A ~@8 S@6 T@2 U V W@2 X Y Z@8 AA@2 ~@10
>`.pickRestart({
  A: "d2", B: "a2@10 ~ a2", C: "a1@15 ~ d2@7 ~", D: "d2@13 a2@11", E: "c2@7 g2", F: "bb2@13 f2@3 ~@5 bb1@3",
  G: "a1@7 e2", H: "c3@13 g2@3 ~@5 c2@3", I: "bb1@2 a1", J: "d3@13 a2@3 ~@5 d2@3", K: "bb1", L: "a1", M: "bb1@7 f2",
  N: "c2", O: "a1@13 e2@11", P: "d2@7 a2", Q: "a2@13 e2@3 ~@5 a1@3", R: "c2@13 g2@11",
  S: "[~@7 d2@21 a2@3 c2@13 g2@11 bb1@23 a1@13 e2@11 d2@23 c3@13 g2@3 ~@3]/6", T: "[~ c2 bb1@8 a1@4 d2@10]/2",
  U: "~ a2@2 d2@21", V: "a2 c2@7", W: "[~@2 bb1@21 f2@3 a1@20 e2@2]/2", X: "~ d2@21 a2@2", Y: "~ c2@23",
  Z: "[bb1@16 a1@7 d2@13 a2@11 d2@23 c2@21 g2@3 bb1@23 ~ a1@23 d2@21 a2@2 c2@21 g2@3 bb1@4]/8",
  AA: "[~@11 a1@8 d2@23 ~@6]/2",
})).s("gm_acoustic_bass").gain(0.39)

// chords · epiano1 · "rhodes"
const epiano1 = note(`<
  A@4 B C D E@2 F G H I@3 J K F L M@2 ~@31 B N@2 O P@2 Q@2 ~@24 R S T U V@2 W@2 ~@18
>`.pickRestart({
  A: "[[f3,d4,a4]@45 ~ [f3,a3,d4]@46 ~@4]/4", B: "[f3,d4,a4]@7 ~", C: "[e3,g3,c4]", D: "[bb3,d4,f4,bb4]",
  E: "[[g3,db4,f4,bb4]@21 ~ [f3,d4,a4]@23 ~@3]/2", F: "[e3,c4,g4]", G: "[bb3,d4,f4,bb4]@13 ~ [g3,bb3,db4,f4]@7 ~@3",
  H: "[f3,a3,d4]", I: "[[f3,d4,a4]@21 ~ [e3,c4,g4]@23 ~ [bb3,d4,f4,bb4]@23 ~@3]/3", J: "~@5 [g3,db4,e4,bb4]@19",
  K: "[f3,d4,a4]", L: "[bb3,d4,f4,bb4]@13 ~ [g3,db4,f4,bb4]@7 ~@3", M: "[[f3,d4,a4]@21 ~ [f3,a3,d4]@23 ~@3]/2",
  N: "[[e3,c4,g4]@21 ~ [bb3,d4,f4,bb4]@23 ~@3]/2", O: "[g3,bb3,db4,f4]", P: "[[f3,d4,a4]@21 ~ [e3,g3,c4]@23 ~@3]/2",
  Q: "[[bb3,d4,f4,bb4]@13 ~ [g3,db4,f4,bb4]@7 ~ [f3,d4,a4]@23 ~@3]/2", R: "~ [f3,d4,a4]@7", S: "~ [e3,c4,g4]@7",
  T: "[bb3,d4,f4,bb4]@23 ~", U: "~ [g3,bb3,db4,f4]@11", V: "[~ [f3,d4,a4]@21 [e3,g3,c4]@23 ~@3]/2",
  W: "[[bb3,d4,f4,bb4]@13 ~ [g3,db4,f4,bb4]@6 ~ [f3,d4,a4]@23 ~@4]/2", // Bb Gm7b5 Dm
})).s("gm_epiano1").gain(0.35).pan(0.9)

// chords · piano
const piano = note("<~@20 A B C D E F G H A F I J E F G K ~@24 L M N O P B G Q ~@23 R@3 S@3 T@2 U ~@10>".pickRestart({
  A: "~@5 [f3,a3,d4]@18 ~", B: "[e3,c4,g4]@5 g3@3 ~@5 [e3,c4,g4]@2 ~ g3@3 ~@5",
  C: "~@5 [bb3,d4,f4,bb4]@3 ~@8 [bb3,d4,f4,bb4]@4 ~@4, bb2@9 ~@4 bb2@6 ~@5", // Bb
  D: "~@5 [g3,bb3,db4,f4]@3 ~@8 [g3,bb3,db4,f4]@4 ~@4, a2@9 ~@4 a2@6 ~@5", E: "~@5 [f3,d4,a4]@18 ~",
  F: "~@5 [e3,c4,g4]@3 ~@8 [e3,c4,g4]@4 ~@4, c3@9 ~@4 c3@6 ~@5", G: "[bb3,d4,f4,bb4]@13 ~ [db4,e4,g4,a4]@10",
  H: "[f3,d4,a4]@5 a3@3 ~@5 [f3,d4,a4]@2 ~ a3@3 ~@5", I: "[bb3,d4,f4,bb4]@11 ~@3 [bb3,d4,f4,bb4]@3 ~@7",
  J: "~@5 [g3,db4,f4,bb4]@3 ~@8 [g3,db4,f4,bb4]@4 ~@4, a2@9 ~@4 a2@6 ~@5", K: "[f3,d4,a4]@11 ~@3 [f3,d4,a4]@3 ~@7",
  L: "~@5 [f3,d4,a4]@3 ~@8 [f3,d4,a4]@4 ~@4, d3@9 ~@4 d3@6 ~@5", // Dm
  M: "~@5 [e3,g3,c4]@3 ~@8 [e3,g3,c4]@4 ~@4, c3@9 ~@4 c3@6 ~@5", N: "~@5 [bb3,d4,f4,bb4]@18 ~",
  O: "[g3,db4,f4,bb4]@11 ~@3 [g3,db4,f4,bb4]@3 ~@7", P: "~@5 [f3,a3,d4]@3 ~@8 [f3,a3,d4]@4 ~@4, d3@9 ~@4 d3@6 ~@5",
  Q: "~@5 [f3,a3,d4]@3 ~@8 [f3,a3,d4]@3 ~@5", // Dm
  R: "[~@28 [f3,d4,a4]@3 ~@7 [f3,d4,a4]@4 ~@10 [e3,g3,c4]@3 ~@7 [e3,g3,c4]@4 ~@6, ~@23 d3@9 ~@4 d3@6 ~@4 c3@9 ~@4 c3@6 ~@7]/3", // Dm C
  S: "[~@3 [bb3,d4,f4,bb4]@17 ~ [g3,db4,f4,bb4]@11 ~@3 [g3,db4,f4,bb4]@3 ~@12 [f3,a3,d4]@3 ~@7 [f3,a3,d4]@4 ~@4 [e3,c4,g4]@4, ~@45 d3@9 ~@4 d3@6 ~@8]/3", // Bb Gm7b5 Dm C
  T: "[~ g3@3 ~@5 [e3,c4,g4]@2 ~ g3@3 ~@5 [bb3,d4,f4,bb4]@13 [db4,e4,g4,a4]@10 ~@5]/2", // C Bb A7
  U: "[f3,a3,d4]@3 ~@8 [f3,a3,d4]@3 ~@10", // Dm
})).s("gm_piano").gain(0.32).pan(0.3)

// chords · acoustic guitar nylon · "guitare accords"
const acoustic_guitar_nylon = note(`<
  ~@4 A B C D E F G E H B C I H B J K H B C D H B G E@2 B C L A F J A E M C D A F G E N B O D A M G E H M C D H M J E N
  F P I H M J E ~@8 Q@3 R@2 S T@2 U V W X Y M Z AA AB AC AD AE AF AG@2 AH ~@10
>`.pickRestart({
  A: "~@6 [f3,d4]@3 ~@7 [f3,d4]@3 ~@5", B: "~@6 [e3,c4]@3 ~@7 [e3,c4]@3 ~@5", C: "~@6 [d3,bb3]@4 ~@6 [d3,bb3]@5 ~@3",
  D: "~@6 [db3,g3]@9 ~ [db3,g3]@4 ~@4", E: "~@6 [f3,d4]@9 ~ [f3,d4]@4 ~@4", F: "~@6 [e3,c4]@9 ~ [e3,c4]@4 ~@4",
  G: "[d3,bb3]@13 ~ g3@9 ~", H: "~@6 [f3,d4]@4 ~@6 [f3,d4]@5 ~@3", I: "~@8 [db3,g3]@3 ~@5 [db3,g3]@3 ~@5",
  J: "[d3,bb3]@15 ~@2 g3@7", K: "~@8 [f3,d4]@3 ~@5 [f3,d4]@3 ~@5", L: "~@6 [db3,g3]@3 ~@7 [db3,g3]@3 ~@5",
  M: "~@8 [e3,c4]@3 ~@5 [e3,c4]@3 ~@5", N: "~@6 [f3,d4]@2 ~@8 [f3,d4]@3 ~@5", O: "~@6 [d3,bb3]@3 ~@7 [d3,bb3]@3 ~@5",
  P: "~@6 [d3,bb3]@9 ~ [d3,bb3]@4 ~@4", // Gm
  Q: "[~@13 [f3,d4]@2 ~@8 [f3,d4]@3 ~@10 [e3,c4]@3 ~@8 [e3,c4]@3 ~@10 [d3,bb3]@3 ~@7 [d3,bb3]@2]/3", // Dm C Gm
  R: "[~@11 [db3,g3]@9 ~@2 [db3,g3]@4 ~@9 [f3,d4]@3 ~@7 [f3,d4]@3]/2", S: "~@13 [e3,c4]@3 ~@4 [e3,c4]@3 ~",
  T: "[~@4 [d3,bb3]@13 ~ g3@9 ~@6 [f3,d4]@9 ~ [f3,d4]@4 ~]/2", U: "~@9 [f3,d4]@4 ~@6 [f3,d4]@5",
  V: "~@10 [e3,c4]@3 ~@5 [e3,c4]@3 ~@3", W: "~@8 [d3,bb3]@4 ~@6 [d3,bb3]@5 ~", X: "~@7 [db3,g3]@9 ~ [db3,g3]@4 ~@3",
  Y: "~@6 [f3,d4]@4 ~@7 [f3,d4]@5 ~@2", Z: "[d3,bb3]@15 ~ g3@7 ~", AA: "~@5 [f3,d4]@9 ~ [f3,d4]@4 ~@5",
  AB: "~@5 [f3,d4]@2 ~@7 [f3,d4]@3 ~@7", AC: "~@4 [e3,c4]@9 ~ [e3,c4]@4 ~@6", AD: "~@3 [d3,bb3]@9 ~ [d3,bb3]@4 ~@7",
  AE: "~@5 [db3,g3]@3 ~@5 [db3,g3]@3 ~@8", AF: "~@2 [f3,d4]@4 ~@6 [f3,d4]@5 ~@7",
  AG: "[~@4 [e3,c4]@3 ~@5 [e3,c4]@3 ~@5 [d3,bb3]@15 ~ g3@7 ~@5]/2", AH: "~ [f3,d4]@9 ~ [f3,d4]@4 ~@9",
})).s("gm_acoustic_guitar_nylon").gain(0.28).pan(0.2)

// chords · acoustic guitar nylon · "guitare accords" · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@4 A B ~@4 C ~@2 B ~@3 B C ~@2 B ~@3 B C ~@2 B ~ D A ~ C A ~@4 A ~ C ~@2 B E ~ A ~ C ~@7 C ~@7 C ~@10 F G ~ H ~ I@2
  ~@6 J ~@7 K ~@11
>`.pickRestart({
  A: "~@7 d3 ~@4", B: "~@7 c3 ~@4", C: "~@17 db3@7", D: "~@7 a2 ~@4", E: "~@7 bb2 ~@4", F: "~@10 c3 ~", G: "~@10 bb2 ~",
  H: "~@19 d3@2 ~@3", I: "[~@21 db3@7 ~@20]/2", J: "~@16 db3@7 ~", K: "~@12 db3@7 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.17).pan(0.2)

// other · acoustic guitar nylon · "guitare solo"
const acoustic_guitar_nylon_3 = note(`<
  ~@3 A B C D E ~ F G H@2 I ~ J K L M N@2 ~@32 O P ~@2 Q R ~ S T U V W ~@2 X ~@17 Y Z ~@2 Q AA ~ AB@2 AC AD AE ~ AF@2
  ~@10
>`.pickRestart({
  A: "~@6 c4@2 ~ a3@4 ~ e3@3 g3@4 ~ f3@2", B: "e3@2 ~@3 e3@12 ~@7", C: "~@6 e4@3 bb3@5 e4@3 a4@3 ~@2 e4@2",
  D: "~ a4@5 c5@3 d5@3 ~@2 bb4@3 a4@5 g4@2", E: "~ f4@4 ~ g4@2 ~ f4@4 ~ d4@2 ~ e4@4 ~ g4@2",
  F: "~@5 d4@2 ~ g4@3 ~ d5@2 ~@8 e5@2, ~@11 bb4@3 ~@10", G: "~@22 c5 ~",
  H: "[~ a4@5 e4@2 g4@4 ~@2 gb4@2 ~ f4@4 ~@3 db4@3 ~@2 e4@2 ~@14 a4@2 ~, ~@11 a3@2 ~@11]/2",
  I: "g4@3 ~@2 f4@2 ~ e4@3 ~@3 g4@2 ~ a4@4 ~ bb4@2", J: "~@6 c4 ~@2 db4@2 e4@2 g4 ~@2 c5@5 ~ bb4 ~", K: "c5 ~@3",
  L: "~@11 a4", M: "~ c5@3 ~@2 a4@2 ~ g4@4 ~@11", N: "[~@17 c4@3 ~@3 g3@2 ~@23]/2", O: "~@8 c4@2 ~ a3",
  P: "~ bb3@3 ~@2 c4@3 bb3@3 ~@2 a3@2 ~@8", Q: "~@11 g4", R: "~ bb4@3 ~@2 a4@2 ~ f4@4 ~ d4@2 ~@8",
  S: "~@16 c4@4 ~ a3@3", T: "g3@6 ~@8 ab3@2 ~ a3@4 ~@3", U: "~@16 bb3@3 ~@3 c4@2", V: "~@8 eb4@2 ~ e4",
  W: "eb4@2 ~ e4 ~@8", X: "g4@14 f4@2 ~ d4@5 ~@2, gb4 ~@23", Y: "~@19 c4@4 ~",
  Z: "a3@2 ~ bb3@3 ~@2 c4@3 bb3@3 ~@2 a3@2 ~@6", AA: "bb4@3 ~@2 a4@2 ~@2 f4@4 ~ d4@2 ~@8",
  AB: "[~@14 c4@3 ~@3 a3@2 g3@6 ~@8 ab3@2 ~ a3@4 ~@5]/2", AC: "~@14 bb3@3 ~@2 c4@2 ~@3",
  AD: "~@13 eb4@4 ~@2 e4@2 eb4@3", AE: "~ e4 ~@10", AF: "[~@19 g4@14 f4@2 d4@5 ~@8, ~@19 gb4 ~@28]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.39).pan(0.7)

// other · acoustic guitar nylon · "guitare solo" · soft notes
const acoustic_guitar_nylon_4 = note("<~@4 A ~@13 B ~@42 C ~@5 D@2 ~@24 E ~@5 F ~@10>".pickRestart({
  A: "~ d3 ~@6", B: "~@7 f4 ~@4", C: "~@6 f3 ~@16 e3", D: "[~@23 a3@2 ~@23]/2", E: "~@4 f3 ~@16 e3 ~@2",
  F: "~@17 a3@2 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.22).pan(0.7)

// other · clarinet
const clarinet = note("<~@68 A B@3 C D@4 ~@22 E@2 F G H I J@2 K@3>".pickRestart({
  A: "f4@4 a4@3 ~ a4@3 ~ d5@3 ~ d5@6 ~@2",
  B: "[~@9 e5@4 e4@4 g4@5 c5@4 ~@8 d5@4 d4@4 f4@5 bb4@4 db4@4 e4@3 ~ e4@3 ~ g4@3 ~ g4@5]/3", C: "~@3 f5 f4 a4",
  D: "[f5@4 ~@9 c5@4 c4@4 e4@4 g4@4 ~@9 bb3@4 d4@4 e4@8 ~@9 f5@4 f4@4 a4@4 f5@4 ~@17]/4",
  E: "[~@19 f4@4 a4@3 ~ a4@3 ~ d5@3 ~@2 d5@6 ~@6]/2", F: "~@5 e5@4 e4@5 g4@4 c5@4 ~@2", G: "~@7 d5@4 d4@5 f4@4 bb4@4",
  H: "db4@4 ~ e4@3 ~ e4@3 ~ g4@3 ~@2 g4@6", I: "~@11 f5@4 f4@5 a4@4",
  J: "[f5@4 ~@9 c5@4 c4@4 ~ e4@4 g4@4 ~@9 bb3@4 d4@4 ~]/2", K: "[e4@9 ~@8 f5@5 f4@5 a4@5 f5@4 d5@23 ~@13]/3",
})).s("gm_clarinet").gain(0.4).pan(0.6)

// other · vibraphone · "vibra"
const vibraphone = note("<~@23 A B C D E F G H I J K L M ~@74>".pickRestart({
  A: "~ e5@4 ~ d5@2 ~ db5@3 ~@2 e5@3 g5@3 ~ bb5@3", B: "~@17 d6@2 a5@2 ~ c6@2",
  C: "bb5@5 ~ ab5@2 a5@3 ~@3 f5@2 ~ c5@4 ~ bb4@2", D: "~@17 g4@2 a4@2 c5@3", E: "~@6 c5@3 ~@5 e5@3 ~@5 d5@2",
  F: "~@17 a4@2 ~@5", G: "~@2 e4@3 ~ g4@2 ~ a4@3 ~@2 bb4@2 ~@2 a4@3 ~ g4@2", H: "~@7 c5",
  I: "~ db5@3 ~@2 e5@3 g5@3 ~@2 bb5@2 ~ a5@3 ~@4", J: "~ d5@3 ~@2 e5@2 ~@16",
  K: "~ a4@4 bb4@3 ~@2 a4@3 ~ g4@3 ~ e4@4 ~@2", L: "~@11 d4", M: "~@2 e4@3 ~ f4@3 ~@5 bb3@3 a3@5 g3@2",
})).s("gm_vibraphone").gain(0.32).pan(0.6)

// other · vibraphone · "vibra" · soft notes
const vibraphone_soft = note("<~@27 A ~@3 B ~ C ~ D ~@74>".pickRestart({
  A: "a4@5 ~@19", B: "~@11 e5", C: "~@11 c4", D: "~@10 d4@3 ~@11",
})).s("gm_vibraphone").gain(0.21).pan(0.6)

// chords · accordion · "accordeon accords"
const accordion = note("<~@36 A B C D E B F A ~@24 G H I@7 ~@22 J@4 K@4 L@3>".pickRestart({
  A: "f5 d5 ~, [d4,f4,a4]", B: "g4@3 g4@2 c5, [g3,c4,e4]", C: "d5 bb4 ~, [bb3,d4,f4]", D: "a4 g4 e4, [g3,a3,db4]",
  E: "~@2 d5, [a3,d4,f4,a4]", F: "~ [bb3,d4]@15 [e3,g3,a3,db4]@8, [f3,f4,bb4]@2 ~", G: "a4@4 a4@3 d5, [a3,d4,f4]",
  H: "~ e5@8 c5@9 ~@6, ~ [c4,e4,g4]@23", // C
  I: "[~@2 d5@8 bb4@9 ~@8 a4@8 g4@8 e4@8 ~ f5@8 d5@9 ~@8 e5@8 c5@9 ~@9 bb3@16 [e3,g3,a3,db4]@8 a4@12 a4@8 d5@4 ~@17, ~@2 [bb3,d4,f4]@25 [g3,a3,db4]@25 [d4,f4,a4]@25 [c4,e4,g4]@25 [f3,d4,f4]@16 ~@9 [a3,d4,f4]@25 ~@16]/7", // A7 Bb A7 Dm C Dm
  J: "[~@19 a4@12 a4@9 d5@4 e5@9 c5@9 ~@8 d5@9 bb4@9 ~@8, ~@19 [a3,d4,f4]@25 [c4,e4,g4]@26 [bb3,d4,f4]@26]/4", // Dm C Bb
  K: "[a4@9 g4@9 e4@8 f5@9 d5@9 ~@8 e5@9 c5@9 ~@9 [f3,bb3,d4,f4]@17, [g3,a3,db4]@13 [d4,f4,a4]@13 [c4,e4,g4]@13 ~@9]/4", // Bb A7 Dm C
  L: "[~ [g3,a3]@7 a4@14 a4@10 d5@29 ~@11, [e3,db4]@8 [a3,d4,f4]@53 ~@11]/3", // Gsus2 Dbm Dm
})).s("gm_accordion").gain(0.24).pan(0.3)

// chords · accordion · "accordeon accords" · soft notes
const accordion_soft = note("<~@36 A ~ B C ~@3 A ~@25 D E@5 ~@25 F@3 C G@3 ~@3>".pickRestart({
  A: "a3", B: "f3", C: "e3", D: "~ g3@23", E: "[~@2 f3@25 e3@25 a3@25 g3@25 ~@18]/5", F: "[~@10 g3@13 f3@13]/3",
  G: "[~ a3@13 g3@13 ~@9]/3",
})).s("gm_accordion").gain(0.05).pan(0.3)

// other · accordion · "accordeon solo"
const accordion_2 = note(`<
  A B C D ~@40 E F G H I ~ J K ~@8 L M N O P Q ~@10 R S T@2 U ~ V W X ~@7 Y Z AA AB AC AD ~@12
>`.pickRestart({
  A: "~@8 e4@2 ~ g4", B: "~ a4@3 ~ c5@3 ~ a4@3 ~@2 f4@3 e4@5 d4@2", C: "f4@11 ~@3 e4@3 d4@5 ~@2", D: "d4@7 ~@15 g3 ~",
  E: "c4@4 ~@6 c4@3 ~ a3@2 ~ c4@2 ~ e4@2 f4@2", F: "~ e4@5 a4@2 ~ c5@5 a4@2 ~ c5@4 ~@3",
  G: "~ bb4@4 ~ d4@2 ~ f4@4 ~ g4@2 ~ a4@3 ~@2 f4@2", H: "~ e4@3 ~@2 db4@2 ~ bb3@3 ~ g3@2 ~@2 a3@3 ~ bb3@2 ~",
  I: "a3@5 ~ d4@2 e4@4 ~@2 f4@3 ~@7", J: "~ bb4@3 ~@2 a4@2 ~ bb4@3 ~@2 c5@2 ~ db5@4 ~ a4@2",
  K: "c5@3 ~@5 b4@4 ~ c5@3 ~ a4@3 ~ f4@2 ~", L: "~@6 d4@2 ~ e4@3 ~ f4@2 ~@2 e4@3 ~ d4@2 ~",
  M: "~@2 e4@3 ~ d4@3 c4@4 ~ b3@2 ~ c4@4 ~@3", N: "~ d4@3 ~@2 bb3@2 ~@9 bb3@5 ~@2",
  O: "~ db4@3 ~ bb3@2 ~@2 a3@3 ~ g3@3 ~@6 a3@2", P: "~ b3@4 ~ bb3@2 ~@13 g3@2 ~", Q: "~ a3@4 ~ ab3@3 g3@4 ~ a3@2 ~@8",
  R: "~@8 c4@3 ~@6 c4@3 ~ a3@2 ~", S: "~ c4@2 e4@2 f4@2 e4@5 ~ a4@2 ~ c5@5 a4@2 ~",
  T: "[c5@4 ~@4 bb4@4 d4@2 ~ f4@4 ~ g4@2 ~ a4@3 ~@2 f4@2 e4@3 ~@2 db4@2 ~ bb3@3 ~@2 g3@2 ~ a3@2]/2",
  U: "~@3 bb3@2 ~ a3@5 d4@2 e4@4 ~@2 f4@3 ~@2", V: "~@5 bb4@3 ~@2 a4@2 ~ bb4@3 ~@2 c5@2 ~ db5@3",
  W: "~@2 a4@2 c5@3 ~@5 b4@3 ~@2 c5@2 ~ a4@3 ~", X: "f4 ~@11", Y: "~@4 d4@2 ~@2 e4@3 ~ f4@2 ~@2 e4@3 ~ d4@2 ~@2",
  Z: "e4@3 ~ d4@3 c4@4 ~ b3@2 ~ c4@4 ~@3 d4@2", AA: "~@3 bb3@2 ~@9 bb3@5 ~@3 db4@2",
  AB: "~@2 bb3@2 ~@2 a3@3 ~ g3@3 ~@6 a3@2 b3@3", AC: "~@2 bb3@2 ~@14 g3@2 ~ a3@3", AD: "~@2 ab3@3 g3@4 ~ a3@2 ~@12",
})).s("gm_accordion").gain(0.33).pan(0.2)

// other · accordion · "accordeon solo" · soft notes
const accordion_soft_2 = note("<~@44 A B ~@5 C ~@8 D ~ E ~ F ~@11 G ~ H ~@4 I ~@7 J@2 ~ K ~ L ~@13>".pickRestart({
  A: "~@2 a3 ~@5", B: "~@11 g4", C: "~@5 a4@2 ~@17", D: "e4 ~@5", E: "~@8 a3@5 ~ g3@2 ~@8", F: "~@9 a3@4 ~@11",
  G: "~@13 a3@3 ~@8", H: "~@5 g4@2 ~@17", I: "~@9 a4@2 ~@13", J: "[~@23 e4@4 ~@21]/2", K: "~@6 a3@5 g3@2 ~@11",
  L: "~@3 a3@2 ~@7",
})).s("gm_accordion").gain(0.19).pan(0.2)

// drums · kick
const kick = s("bd").struct(`<
  A B A@3 B A B A B A@3 C A C A C A@3 C A C A C A D A C A C A C A D A C A C A C A@3 B A B A B A@3 C A C A C A@3 C A C A
  C A D ~@8 E@2 F G H I J K L@2 M N O C P Q R S T U V W X L ~@10
>`.pickRestart({
  A: "x", B: "x ~@6 x", C: "x ~@10 x", D: "x!2 ~", E: "~@7 x ~@16", F: "~@2 x!2 ~@8", G: "~ x ~@2", H: "~@3 x ~ x ~@18",
  I: "~@5 x ~@18", J: "~ x!2 ~@9", K: "~ x ~@4", L: "~ x ~@6", M: "x!2 ~@10", N: "~@2 x ~@20 x", O: "~ x ~@22",
  P: "x ~@22 x", Q: "~@23 x", R: "~@11 x", S: "~@10 x!2", T: "~@7 x", U: "~@19 x ~ x ~@2", V: "~@5 x",
  W: "~@17 x ~@2 x ~@3", X: "~@19 x ~@4",
})).gain(0.38)

// drums · rim
const rim = s("rim").struct(`<
  ~@13 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@11 A ~ A ~ A ~@3 A ~ A ~ A ~@19 B ~ C ~ A ~@3 D ~ E ~ F
  ~@12
>`.pickRestart({
  A: "~@2 x", B: "~@3 x", C: "~@17 x ~@6", D: "~@7 x ~@4", E: "~@13 x ~@10", F: "~ x",
})).gain(0.38)

// drums · snare
const snare = s("sd").struct(`<
// … 67 more lines

More by Brassens Georges