Strudelify

Je me suis fait tout petit

Brassens Georges

KeyB minorTempo106 bpm
0:00/0:00
// Je me suis fait tout petit — Brassens Georges
// 106 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): AcGuitar1.
setcpm(106/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · acoustic bass · "Basse2"
const bass = note(`<
  A B C D A B E F A G A G A H G I J G F K L M G N A G F A O P Q R O P S T O G A G A H G I J G F K L M G N A G F A O P Q
  R O P S T O G A G A H G I J G F K L M G N A G F A O P Q R O P S T O G A G A H G I J G F K L M G N A G F A O P Q R O P
  S T O G A G U ~@2
>`.pickRestart({
  A: "b1@4 ~@4 f#2@3 ~@5", B: "c#2@4 ~@4 f#2@3 ~@5", C: "b1@4 ~@4 a1@3 ~@5", D: "d2 d3 c#3 f#2", E: "b1@4 ~@4 d2@3 ~@5",
  F: "g2@4 ~@4 f#2@3 ~@5", G: "e2@4 ~@4 f#2@3 ~@5", H: "e2@4 ~@4 b2@3 ~@5", I: "b2 ~ b1 f#2", J: "b2@4 ~@4 b1@3 ~@5",
  K: "b2 f#2 b2 b1", L: "b2@4 ~@4 f#2@3 ~@5", M: "b1@4 ~@4 e2@3 ~@5", N: "b1@4 ~@4 b1@3 ~ f#2@3 ~",
  O: "b1@4 f#2@3 ~ b1@3 ~ f#2@3 ~", P: "c#2@4 g#2@3 ~ f#2@3 ~ f#2@3 ~", Q: "b1@4 f#2@3 ~ a1@3 ~ a1@3 ~",
  R: "d2@4 a2@3 ~ f#2@3 ~ f#2@3 ~", S: "b1@4 f#2@3 ~ d2@3 ~ d2@3 ~", T: "g2@4 d3@3 ~ f#2@3 ~ f#2@3 ~", U: "b2 f#2 b1@2",
})).s("gm_acoustic_bass").gain(0.3)

// chords · acoustic guitar nylon · "AcGuitar1"
const acoustic_guitar_nylon = note(`<
  ~ A B A ~ A C A ~ A ~ A ~@2 A ~@2 A@2 ~@2 D A ~@2 A ~@3 A B A ~ A C A ~ A ~ A ~@2 A ~@2 A@2 ~@2 D A ~@2 A ~@3 A B A ~
  A C A ~ A ~ A ~@2 A ~@2 A@2 ~@2 D A ~@2 A ~@3 A B A ~ A C A ~ A ~ A ~@2 A ~@2 A@2 ~@2 D A ~@2 A ~@3 A B A ~ A C A ~ A
  ~ A ~@3
>`.pickRestart({
  A: "~@2 f#3 ~", B: "~@2 a3 ~", C: "~@2 d3 ~", D: "~@2 e3 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.21)

// chords · acoustic guitar steel · "StelGuit3"
const acoustic_guitar_steel = note(`<
  A B C D A B E F A G A G A H G A@2 G F A@2 I G A@2 G J A@2 B C D A B E F A G A G A H G A@2 G F A@2 I G A@2 G J A@2 B C
  D A B E F A G A G A H G A@2 G F A@2 I G A@2 G J A@2 B C D A B E F A G A G A H G A@2 G F A@2 I G A@2 G J A@2 B C D A B
  E F A G A G K ~@2
>`.pickRestart({
  A: "b2@3 ~ f#2@2 [f#3,b3,d4]@2 b2@2 [f#3,b3,d4]@2 f#2@2 [f#3,b3,d4]@2", // Bm
  B: "c#3@3 ~ g#2@2 [g#3,c#4,f4]@2 c#3 ~ [a#3,c#4,f#4]@2 c#3@2 [a#3,c#4,f#4]@2", // C# F#
  C: "b2@3 ~ f#2@2 [f#3,b3,d4]@2 b2 ~ [c#3,a3,e4]@2 e2@2 [c#3,a3,e4]@2", // Bm A
  D: "d2@3 ~ a2@2 [d3,f#3,a4]@2 d2 ~ [a#3,c#4,f#4]@2 c#3@2 [a#3,c#4,f#4]@2", // D F#
  E: "b2@3 ~ f#2@2 [f#3,b3,d4]@2 b2 ~ [d3,f#3,a4]@2 a2@2 [d3,f#3,a4]@2", // Bm D
  F: "g2@3 ~ d3@2 [d3,g3,b3]@2 g2 ~ [a#3,c#4,f#4]@2 c#3@2 [a#3,c#4,f#4]@2", // G F#
  G: "e2@3 ~ b2@2 [g3,b3,e4]@2 e2 ~ [a#3,c#4,f#4]@2 c#3@2 [a#3,c#4,f#4]@2", // Em F#
  H: "e2@3 ~ b2@2 [g3,b3,e4]@2 e2@2 [g3,b3,e4]@2 b2@2 [g3,b3,e4]@2", // Em
  I: "b2@3 ~ f#2@2 [f#3,b3,d#4]@2 b2 ~ [g3,b3,e4]@2 b2@2 [g3,b3,e4]@2", // B Em
  J: "f#2@3 ~ c#3@2 [a#3,c#4,f#4]@2 f#2 ~ [a#3,c#4,f#4]@2 c#3@2 [a#3,c#4,f#4]@2", K: "b2@3 ~@5 [f#2,b2,f#3,b3,d4]@8",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.7)

// chords · acoustic guitar steel · "StelGuit3" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B A C A B A D A E A E A E@2 A@2 E D A@2 F E A@2 E G A@2 B A C A B A D A E A E A E@2 A@2 E D A@2 F E A@2 E G A@2 B A
  C A B A D A E A E A E@2 A@2 E D A@2 F E A@2 E G A@2 B A C A B A D A E A E A E@2 A@2 E D A@2 F E A@2 E G A@2 B A C A B
  A D A E A E A ~@2
>`.pickRestart({
  A: "~ [f#3,b3,d4] ~@6", B: "~ [g#3,c#4,f4] ~@6", C: "~ [d3,f#3,a4] ~@6", D: "~ [d3,g3,b3] ~@6", E: "~ [g3,b3,e4] ~@6",
  F: "~ [f#3,b3,d#4] ~@6", G: "~ [a#3,c#4,f#4] ~@6",
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.7)

// chords · acoustic guitar steel · "RythGuit5"
const acoustic_guitar_steel_3 = note(`<
  ~@12 A B C A@2 C D A@2 E C A@2 C D A@2 F G H A F I D A ~@3 A B C A@2 C D A@2 E C A@2 C D A@2 F G H A F I D A ~@3 A B C
  A@2 C D A@2 E C A@2 C D A@2 F G H A F I D A ~@3 A B C A@2 C D A@2 E C A@2 C D A@2 F G H A F I D A ~@6
>`.pickRestart({
  A: "~@4 [f#3,b3,d4]@4 ~@2 [f#3,b3,d4] ~@3 [f#3,b3,d4]@2", B: "~@4 [e3,g3,b3]@4 ~@2 [e3,g3,b3] ~@3 [e3,g3,b3]@2",
  C: "~@4 [c#3,g3,b3]@4 ~@2 [e3,a#3,c#4] ~@3 [e3,a#3,c#4]@2", D: "~@4 [d3,b3,f4]@4 ~@2 [e3,a#3,c#4] ~@3 [e3,a#3,c#4]@2",
  E: "~@4 [f#3,a3,d#4]@4 ~@2 [e3,g3,b3] ~@3 [e3,g3,b3]@2", F: "~@4 [g#3,b3,f4]@4 ~@2 [e3,a#3,c#4] ~@3 [e3,a#3,c#4]@2",
  G: "~@4 [f#3,b3,d4]@4 ~@2 [c#3,e4,g4] ~@3 [c#3,e4,g4]@2", H: "~@4 [f#3,d4,a4]@4 ~@2 [e3,a#3,c#4] ~@3 [e3,a#3,c#4]@2",
  I: "~@4 [f#3,b3,d4]@4 ~@2 [f#3,d4,a4] ~@3 [f#3,d4,a4]@2", // Bm D
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.7)

// chords · acoustic guitar steel · "RythGuit5" · soft notes
const acoustic_guitar_steel_4 = note(`<
  ~@12 A B C A@2 C D A@2 E C A@2 C D A@2 F G H A F I D A ~@3 A B C A@2 C D A@2 E C A@2 C D A@2 F G H A F I D A ~@3 A B C
  A@2 C D A@2 E C A@2 C D A@2 F G H A F I D A ~@3 A B C A@2 C D A@2 E C A@2 C D A@2 F G H A F I D A ~@6
>`.pickRestart({
  A: "b2@5 ~@3 b2@6 ~@2", B: "e2@5 ~@3 e2@6 ~@2", C: "e2@5 ~@3 f#2@6 ~@2", D: "g2@5 ~@3 f#2@6 ~@2",
  E: "b2@5 ~@3 e2@6 ~@2", F: "c#3@5 ~@3 f#2@6 ~@2", G: "b2@5 ~@3 a2@6 ~@2", H: "d2@5 ~@3 f#2@6 ~@2",
  I: "b2@5 ~@3 d2@6 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.7)

// other · acoustic guitar steel · "GuitarCh6"
const acoustic_guitar_steel_5 = note(`<
  A B C D E F G H I J I K L ~@24 J I K L ~@24 J I K L ~@24 J I K L ~@24 M I N O ~@2
>`.pickRestart({
  A: "b3@3 d4 [d4,f#4]@2 b4 d5@4 d5 c#5 b4 ~ b4, ~@12 a#4@3 ~", // D
  B: "c#5@3 ~ [c#4,f4,g#4]@2 a#4@2 ~@2 f#4@2 [e4,g#4]@2 a#4@2", // C# E
  C: "c#5@4 [d4,f#4,b4]@2 c#5 b4 a3@4 [c#4,e4,a4] g#4 ~ g4", D: "f#4@3 ~",
  E: "b3@3 d4 [d4,f#4]@2 b4 d5@3 ~ d5 c#5 b4 ~ b4, ~@12 a#4@3 ~", F: "c#5@4 [c#4,f4,g#4]@2 a#4@2 ~@2 b3@2 d4 ~ f#4 ~",
  G: "b4@3 ~ d5@4 a4@4 [a3,d4,f#4]@3 ~", H: "d4@6 e4 d4 c#4@5 ~ d4 c#4", I: "b3 ~",
  J: "~@5 e4 f4 f#4 g4 f#4 ~ e4 d4 c#4 ~ a#3", K: "~@5 e5 f5 f#5 g5 f#5 ~ e5 d5 c#5 ~ a#4", L: "b4@7 ~@9",
  M: "~@5 e4 f4 f#4 g4 f#4 e4 ~ d4 c#4 a#3 ~", N: "~@5 e5 f5 f#5 g5 f#5 e5 ~ d5 c#5 a#4 ~",
  O: "[d4,f#4,b4] [c#4,e4,f#4] [b3,d4,f#4,b4]@2", // Bm F#7 Bm
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.7)

// drums · kick
const kick = s("bd").struct("<[x!2]!124 x ~@2>").gain(0.32)

// drums · rim
const rim = s("rim").struct("<[~@3 x]!124 ~@3>").gain(0.32)

// drums · clap
const clap = s("cp").struct("<~@11 A ~@15 B ~@3 C ~@23 B ~@3 C ~@23 B ~@3 C ~@23 B ~@3 C ~@11>".pickRestart({
  A: "~@12 x ~ x!2", B: "~@9 x ~@3 x!3", C: "~@14 x!2",
})).gain(0.29)

// drums · hihat
const hihat = s("hh").struct("<[x!3 ~ x!4]!124 x ~@2>").gain(0.29)

// drums · open hat
const open_hat = s("oh").struct("<[~@3 x ~@4]!124 ~@3>").gain(0.19)

// drums · ride
const ride = s("rd").struct("<~@28 A ~@3 A ~@23 A ~@3 A ~@23 A ~@3 A ~@23 A ~@3 A ~@7 B ~@2>".pickRestart({
  A: "x", B: "x!3 ~",
})).gain(0.29)

// drums · tambourine
const tambourine = s("tb").struct("<[~@3 x]!124 ~@3>").gain(0.32)

stack(
  bass, acoustic_guitar_nylon, acoustic_guitar_steel, acoustic_guitar_steel_2, acoustic_guitar_steel_3,
  acoustic_guitar_steel_4, acoustic_guitar_steel_5, kick, rim, clap, hihat, open_hat, ride, tambourine
)

More by Brassens Georges