Strudelify

couleur cafe

S.Gainsbourg

KeyF majorTempo120 bpm
0:00/0:00
// couleur cafe — S.Gainsbourg
// 120 bpm, 2/2, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 9 "Guitare Basse [Tablature]" electric bass pick (copy of ch 8 "Guitare basse" electric bass pick)
// note: Transcription provider: pdmx. https://musescore.com/score/5901666; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 70 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · flute · "Flûte"
const flute = note(`<
  ~@3 A B@2 ~ C D C D A B@2 ~@2 B@2 ~@2 E@2 F@2 G@2 H E@2 F@2 G@2 H ~@4 A B@2 ~ C D C D A B@2 ~@2 B@2 ~@2 E@2 F@2 G@2 H
  E@2 F@2 G@2 H I
>`.pickRestart({
  A: "~@6 f4 g4", B: "[a4@2 f4@2 bb4 a4@2 g4@2 ~@7]/2", C: "~ c5@2 bb4 a4@2 g4@2", D: "a4 ~@3", E: "[a4@3 c5@20 ~]/2",
  F: "[bb4@3 d5@20 ~]/2", G: "[c5@4 d5@4 c5@4 d5@4 c5@4 e5@15 ~@7 c5@6]/2", H: "a4@11 ~@13", I: "~@18 f4@3 ~ g4@2",
})).s("gm_flute").gain(0.3)

// other · alto sax · "Saxophone Alto"
const alto_sax = note(`<
  ~@3 A B@2 ~ C D C D A B@2 ~@2 B@2 ~@2 E@2 F@2 G@2 H E@2 F@2 G@2 H ~@4 I J@2 K@2 J@2 L@2 J@2 K@2 J@2 M@2 N@2 O@2 P@2 Q
  N@2 O@2 P@2 Q R
>`.pickRestart({
  A: "~@6 f4 g4", B: "[a4@2 f4@2 bb4 a4@2 g4@2 ~@7]/2", C: "~ c5@2 bb4 a4@2 g4@2", D: "a4 ~@3", E: "[a4 c5@7]/2",
  F: "[bb4 d5@7]/2", G: "[c5@2 d5@2 c5@2 d5@2 c5@2 e5@8 ~@3 c5@3]/2", H: "a4 ~", I: "~@6 a4 bb4",
  J: "[c5@2 a4@2 d5 c5@2 bb4@2 ~@7]/2", K: "[a4@2 f4@2 f4 f4@2 g4@2 ~@7]/2",
  L: "[a4 f4@2 f4@2 f4@2 f4@2 f4 g4@2 f4@2 a4 bb4]/2", M: "[a4 f4@2 f4@2 f4@2 f4@2 f4 g4@2 f4@2 ~@2]/2",
  N: "[f4 a4@7]/2", O: "[g4 bb4@7]/2", P: "[a4@2 bb4@2 a4@2 bb4@2 a4@2 c5@8 ~@3 a4@3]/2", Q: "f4 ~", R: "~@9 a4@2 bb4",
})).s("gm_alto_sax").gain(0.3)

// other · viola · "Alto"
const viola = note(`<
  ~@5 A B ~ C@2 ~@3 A B A B A B ~ D@2 E@2 F@2 G D@2 E@2 F@2 G ~@6 A B ~ C@2 ~@3 A B A B A B ~ D@2 E@2 F@2 G D@2 E@2 F@2
  G ~
>`.pickRestart({
  A: "~ c4@2 bb3 a3@2 g3@2", B: "a3 ~@3", C: "[a3@2 f3@2 bb3 a3@2 g3@2 ~@7]/2", D: "[a3 c4@7]/2", E: "[bb3 d4@7]/2",
  F: "[e4@2 f4@2 e4@2 f4@2 e4@2 g4@8 ~@3 e4@3]/2", G: "c4 ~",
})).s("gm_viola").gain(0.3)

// other · trombone
const trombone = note(`<
  ~@6 A@2 ~@2 B@2 ~@2 A@2 ~@2 B@2 C@2 D@2 E@2 F C@2 D@2 E@2 F ~@7 A@2 ~@2 B@2 ~@2 A@2 ~@2 B@2 C@2 D@2 E@2 F C@2 D@2 E@2
  F ~
>`.pickRestart({
  A: "[f3@2 c3@2 c3 c3@2 c3@2 ~@7]/2", B: "[f3 c3@2 c3@2 c3@2 c3@2 c3 d3@2 c3@2 ~@2]/2", C: "[c3 e3@7]/2",
  D: "[d3 f3@7]/2", E: "[e3@2 f3@2 e3@2 f3@2 e3@2 g3@8 ~@3 e3@3]/2", F: "c3 ~",
})).s("gm_trombone").gain(0.3)

// bass · electric bass pick · "Guitare basse"
const bass = note(`<
  A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C D@2 E@2 F@2 G D@2 E@2 F@2 H C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C D@2 E@2
  F@2 G D@2 E@2 F@2 I C
>`.pickRestart({
  A: "[f2@2 ~@2 c3@3 g2@3 ~@2 c3@2 c3@2]/2", B: "f2@4 c3 c3@2 c3", C: "g2 bb2 c3 ~", D: "[f2 a2@7]/2",
  E: "[g2 bb2@7]/2", F: "[a2@2 bb2@2 a2@2 bb2@2 a2@2 c3@8 ~@3 a2@3]/2", G: "f2 ~", H: "f2@2 ~@2 c3 c3@2 c3",
  I: "f2@3 ~@3 c3@2 c3@3 c3",
})).s("gm_electric_bass_pick").gain(0.3)

// chords · piano
const piano = note(`<
  A@2 B C D@2 B E F@2 G C D@2 B H D@2 B H I@2 J@2 K@2 L I@2 J@2 K@2 M H A@2 B C D@2 B E F@2 G C D@2 B H D@2 B H I@2 J@2
  K@2 L I@2 J@2 K@2 N O
>`.pickRestart({
  A: "[f3@2 ~@2 c4@3 g3@3 ~@2 c4@2 c4@2]/2", B: "f3@11 ~ c4@3 c4@6 c4@3", C: "g3@2 bb3@2 c4@2 f4 g4",
  D: "[[f3,a4]@2 f4@2 bb4 a4@2 g3@3 ~@2 c4@2 c4@2, ~@4 c4@3 g4@2 ~@7]/2", // F
  E: "~@3 bb4 [c4,a4]@2 g4@2, g3 bb3 ~@2, ~ c5@2 ~@5", // F
  F: "[[f3,a4]@2 ~@2 c4@3 ~@2 c5@2 bb4 [c4,a4]@2 [c4,g4]@2, ~@7 g3@3 ~@6]/2", G: "f3@11 ~ c4@3 c4@6 c4@3, a4 ~@3",
  H: "g3 bb3 c4 ~", I: "[[f3,a4]@3 [a3,c5]@20 ~]/2", J: "[[g3,bb4]@3 [bb3,d5]@20 ~]/2",
  K: "[[a3,c5]@4 [bb3,d5]@4 [a3,c5]@4 [bb3,d5]@4 [a3,c5]@4 [c4,e5]@15 ~@7 [a3,c5]@6]/2", L: "[f3,a4]@11 ~@13",
  M: "a4@11 ~ c4@3 c4@6 c4@3, f3 ~@3", N: "a4@11 ~@13, f3 ~@3", O: "~@18 f4@3 ~ g4@2",
})).s("gm_piano").gain(0.3)

stack(flute, alto_sax, viola, trombone, bass, piano)