0:00/0:00
// Je Suis un Voyou — Brassens Georges
// 95 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 75 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(95/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 nylon
const acoustic_guitar_nylon = note(`<
A B C D E D E D E F G H I J K L M N O P@3 Q R S T U H I J K L M N O P@3 Q R S T U H I J K L M N O P@3 Q R S T U H I J
K L M N O P@3 Q R S T V
>`.pickRestart({
A: "~@4 e4@2 f4@2 [c3,c4,e4,g4]@2 e4 ~ [c#3,a#3,a4]@2 e4 ~", // C F#
B: "[d3,g4]@2 f4@2 g4@2 f4 ~ [g2,g3,c4,e4]@2 ~@2 [g2,g3,b3,d4]@2 ~@2", // G5 C G
C: "[c2,g3,a#3,c4]@2 ~@3 [d4,f4,a#4] ~ [c4,e4,g4]", D: "~ [c4,f4,a4] ~ [c4,f4,a4] ~ [d4,g4,b4] ~ [d4,g4,b4]",
E: "~ [e4,g4,c5] ~ [e4,g4,c5] ~ [d4,f4,a#4] ~ [c4,e4,g4]", // C A# C
F: "~@2 [c4,f4,a4]@2 ~@2 [b3,d4,g4]@4 [a3,c4,f4]@2 [g3,b3,e4]@2 [f3,a3,d4] ~", // F G F Em Dm
G: "[e3,g3]!2 ~ [e3,g3] ~ [e3,g3] [c4,e4] [d4,f4], c4@5 ~@3", // Em C Dm
H: "c3 [g3,c4,e4] g2 [c3,g3,c4,e4] d3 [a3,d4,f4] a2 [d3,a3,d4,f4]", // C Dm
I: "g3 [b3,d4,g4] d3 [b3,d4,g4] c3 [c4,e4,g4] a#2 [a#3,d4,f4]", // G C A#
J: "a2 [a3,c#4,e4,g4] a2 [a3,c#4,e4,g4] d3 [a3,d4,f4] c3 [a3,d4,f4]", // A7 Dm
K: "d3 [a3,d4,f4] g2 [g3,b3,d4,f4] c3 [g3,c4,e4] g2 [g3,c4,e4]", // Dm G7 C
L: "c3 [g3,c4,e4] a2 [a3,c4,e4] d3 [a3,d4,f4] d3 [a3,d4,f4]", // C Am Dm
M: "g2 [b3,d4,f4,g4] d3 [b3,f4,g4] c3 [c4,e4,g4] g3 [c4,e4,g4]", // G7 C
N: "c3 [c4,e4,g4] g3 [c4,e4,g4] f3 [c4,f4,a4] d3 [d4,f4,a4]", O: "c3 [c4,e4,g4] g2 [b3,d4,f4,g4] c3 [c4,e4,g4] ~@2",
P: "[[c4,e4,a4] ~ [g4,b4] ~ [e4,a4] ~ [g4,b4] ~ [e4,a4] ~ [e2,b4] ~, ~@7 [b3,e4]@5 ~@3 [a3,c4]@5 ~@3 [b3,e4]@5 ~@3 [a3,c4]@5 ~@3 [e4,g4]@5 ~@4]/3", // Am G A5 G A5 E5 Am E5 …
Q: "[d3,c4,d4,f#4,a4]@2 [d3,c4,d4,f#4,a4]@2 [g2,b3,d4,g4]@3 ~", // D7 G
R: "c3 [g3,c4,e4] g2 [c3,g3,c4,e4] d3 [a3,d4,f4] a2 [a3,d4,f4]", // C Dm
S: "g2 [g3,b3,d4] g2 [g3,b3,d4] c3 [g3,c4,e4] a#2 [a#3,d4,f4]", // G C A#
T: "a2 [a3,c#4,e4,g4] a2 [a3,c#4,e4,g4] d3 [a3,d4,f4] d3 [a3,d4,f4]", // A7 Dm
U: "[c3,g3,c4,e4] ~ [g2,g3,b3,d4] ~ [c2,g3,c4,e4]@2 ~@2", V: "[c3,g3,c4,e4] ~ [g2,g3,b3,d4] ~ [c3,g3,c4,e4]@2 c2@2",
})).s("gm_acoustic_guitar_nylon").gain(0.46).pan(0.4)
// bass · acoustic bass
const bass = note(`<
~@2 A B C B C B C D E F G H I J K L M ~@8 F G H I J K L M ~@8 F G H I J K L M ~@8 F G H I J K L M ~@8
>`.pickRestart({
A: "~@8 g2@3 ~ c2@3 ~", B: "f2@3 ~ d2@3 ~ g2@3 ~ g2@3 ~", C: "c3@3 ~ c3@3 ~ g2@3 ~ c2@3 ~",
D: "f2@3 ~ d2@2 g2@4 ~@2 g2@3 ~", E: "c3@3 ~ g2@3 ~ c3@4 ~@4", F: "c3@3 ~ g2@3 ~ d3@3 ~ a2@3 ~",
G: "g2@3 ~ g2@3 ~ c3@3 ~ a#2@3 ~", H: "a2@3 ~ a2@3 ~ d3@3 ~ c3@3 ~", I: "g2@3 ~ g2@3 ~ c3@4 ~@4",
J: "c3@3 ~ a2@3 ~ d3@3 ~ f3@3 ~", K: "d3@3 ~ g2@3 ~ c3@3 ~ g2@3 ~", L: "c3@3 ~ g2@3 ~ f2@3 ~ d2@3 ~",
M: "c2@3 ~ g2@3 ~ c3@3 ~ c3@2 b2@2",
})).s("gm_acoustic_bass").gain(0.31).pan(0.4)
// chords · string ensemble 2
const string_ensemble_2 = note("<~@35 A@3 B C D E F ~@8 A@3 B C D E F ~@8 A@3 B C D E G>".pickRestart({
A: "[e4,a4,c5]@3 ~ [e4,g4,b4]@3 ~", B: "d4 f#4 f4 ~", C: "c5@3 e5 d5@2 a5@2", D: "g5@3 f5 e5@2 d5@2", E: "c#5 d5",
F: "g4 [b3,f4] [c4,e4] ~", G: "g4 [b3,f4] [e4,g4,c5] ~",
})).s("gm_string_ensemble_2").gain(0.15).pan(0.6)
// chords · synth brass 2
const synth_brass_2 = note("<~@43 A B C D E F G H ~@8 A B C D E F G H ~@8>".pickRestart({
A: "e4@2 ~ c4 f4@2 ~ b3", B: "f4 b3 c4 a#3", C: "c#4 e4 a4 ~ d4 a3 c4 ~", D: "g3@2 [d4,f4]@2 [c4,e4]@3 ~",
E: "[c4,e4]@2 a3@2 f4 ~ [d4,g4]@2", F: "[g3,f4]@6 g4@2 [c4,g4]@2 e4@2 g4@2 e4 ~", G: "[c4,e4]@3 a#3 [f4,a4]@2 ~@2",
H: "[c4,g4]@2 b3 ~ [c4,e4]@2 ~@2", // C5 C
})).s("gm_synth_brass_2").gain(0.2).pan(0.7)
// drums · kick
const kick = s("bd").struct("<A B A B@16 ~@8 B@8 ~@8 B@8 ~@8 B@8 ~@8>".pickRestart({
A: "~ x", B: "x!2",
})).gain(0.31)
// drums · rim
const rim = s("rim").struct("<~@19 x!8 ~@8 x!8 ~@8 x!8 ~@8 x!8>").gain(0.31)
// drums · hihat
const hihat = s("hh").struct("<A@19 B@8 A@8 B@8 A@8 B@8 A@8 B@7 C>".pickRestart({
A: "~ x ~ x ~ x ~ x", B: "x!4", C: "x!2 ~@2",
})).gain(0.31)
stack(acoustic_guitar_nylon, bass, string_ensemble_2, synth_brass_2, kick, rim, hihat)
More by Brassens Georges
Brave MargotC major · 125 bpmChanson pour l'AuvergnatE minor · 180 bpmDans l'eau de la claire FontaineA minor · 110 bpmJ'ai rendez-vous avec vousA major · 133 bpmLe Petit ChevalC major · 190 bpmLe temps ne fait rien a l'affaireA major · 130 bpmLes amoureux des bancs publicsC minor · 126 bpmLes Amours d'antanA major · 134.4 bpm
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.