0:00/0:00
// Melanie — Brassens Georges
// 116 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 182 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): guitare 2.
setcpm(116/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.
// bass · acoustic bass · "basse"
const bass = note(`<
A B C D E D F G H D I J K L M N O P Q B H G R S C D F G T N U N V N W D Q B X Y X G Z AA X G AB AC AD L AE AF AG D A B
C D E D F G H D I J K L M N O P Q B H G R S C D F G T N U N V N W D Q B X Y X G Z AA X G AB AC AD L AE AF AG D A B C D
E D F G H D I J K L M N O P Q B H G R S C D F G T N U N V N W D Q B X Y X G Z AA X G AB AC AD L AE AF AG D Q B X Y X G
Z AA X G AB AC AD L AE AF AG D A AH
>`.pickRestart({
A: "c3 g2 c2 g1", B: "c2@2 g2@2 c2@2 a1 b1", C: "c2 g2 a1 e1", D: "g2 d2 c2 g1", E: "c2 g2 a1 e2", F: "c2 g2 a2 e2",
G: "g2 d2 c2 g2", H: "c2 g1 a1 e1", I: "a2@2 e2@2 a1!2 b1 c#2", J: "d2 a1 g1 d2", K: "a2 e2 a1 e1", L: "d2 a1 g2 d2",
M: "a1@2 e1@2 a1!2 b1 c#2", N: "d2 a2 g2 d2", O: "a1 e1 d2 a1", P: "g1 d2 c2 g2",
Q: "c3@4 b2@2 ~ a2 g2@2 f2@2 e2@2 d2 ~", R: "c3 g2 a1 e2", S: "g2 d2 c3 g2", T: "a1@2 e2@2 a2@2 b1 c#2",
U: "a2 e2 a1 e2", V: "a1@2 e1@2 a2@2 b1 c#2", W: "a1 e2 d2 a2", X: "c2 g1 a1 e2", Y: "g1 d2 c3 g2", Z: "c2 g1 a2 e2",
AA: "g1 d2 c2 g1", AB: "a1@2 e1@2 a1 d2@2 e2", AC: "d3 a2 g2 d2", AD: "a1 e2 a2 e2", AE: "a1@2 e2@2 a2 c#2 d2 e2",
AF: "d3 a2 g1 d2", AG: "a1 e2 d2 a1", AH: "c3@7 ~",
})).s("gm_acoustic_bass").gain(0.54)
// chords · acoustic guitar steel · "guitare 1"
const acoustic_guitar_steel = note(`<
A@2 B C B C B D B D E F G H E I J C A@2 B C B C B D B D E I G K E I J D A@2 B D B D B D B D E F G K E L J D A@2 B C B
C B D B D E F G H E I J C A@2 B C B C B D B D E I G K E I J D A@2 B D B D B D B D E F G K E L J D A@2 B C B C B D B D
E F G H E I J C A@2 B C B C B D B D E I G K E I J D A@2 B D B D B D B D E F G K E L J D A@2 B D B D B D B D E F G K E
L J D A ~
>`.pickRestart({
A: "c3@2 [e3,g3,c4] ~ g2@2 [e3,g3,c4] ~ c3@2 [e3,g3,c4] ~ g2@2 [e3,g3,c4] ~", // C
B: "c3@2 [e3,g3,c4] ~ g2@2 [e3,g3,c4] ~ a2@2 [e3,a3,c4] ~ e2@2 [e3,a3,c4] ~", // C Am
C: "g3@2 [f3,b3,d4] ~ d3@2 [f3,b3,d4] ~ c3@2 [e3,g3,c4] ~ g2@2 [e3,g3,c4] ~", // Bdim C
D: "g3@2 [d3,f3,b3] ~ d3@2 [d3,f3,b3] ~ c3@2 [e3,g3,c4] ~ g2@2 [e3,g3,c4] ~", // Bdim C
E: "a2@2 [e3,g3,c#4] ~ e2@2 [e3,g3,c#4] ~ a2@2 [e3,g3,c#4] ~ e2@2 [e3,g3,c#4] ~", // C#dim
F: "d3@2 [d3,f3,a3] ~ a2@2 [d3,f3,a3] ~ g3@2 [d3,g3,a#3] ~ d3@2 [d3,g3,a#3] ~", // Dm Gm
G: "a2@2 [e3,g3,c#4] ~ e2@2 [e3,g3,c#4] ~ a2@2 [e3,a3,c4] ~ e2@2 [e3,a3,c4] ~", // C#dim Am
H: "d3@2 [f#3,a3,c4] ~ a2@2 [f#3,a3,c4] ~ g3@2 [d3,f3,b3] ~ d3@2 [d3,f3,b3] ~", // F#dim Bdim
I: "d3@2 [d3,f3,a3] ~ a2@2 [d3,f3,a3] ~ g3@2 [g3,a#3,d4] ~ d3@2 [g3,a#3,d4] ~", // Dm Gm
J: "a2@2 [e3,g3,c#4] ~ e2@2 [e3,g3,c#4] ~ d3@2 [f#3,a3,c4] ~ a2@2 [f#3,a3,c4] ~", // C#dim F#dim
K: "d3@2 [f#3,a3,c4] ~ a2@2 [f#3,a3,c4] ~ g3@2 [f3,b3,d4] ~ d3@2 [f3,b3,d4] ~", // F#dim Bdim
L: "d3@2 [f3,a3,d4] ~ a2@2 [f3,a3,d4] ~ g3@2 [d3,g3,a#3] ~ d3@2 [d3,g3,a#3] ~", // Dm Gm
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.8)
// chords · acoustic guitar nylon · "guitare 2"
const acoustic_guitar_nylon = note(`<
A ~@17 A ~@17 A ~@17 A ~@17 A ~@17 A ~@17 A ~@17 A ~@17 A ~@17 A ~@17 A B
>`.pickRestart({
A: "[e3,g3] ~@7", B: "[c3,e3,g3,c4] ~@7",
})).s("gm_acoustic_guitar_nylon").gain(0.12).pan(0.2)
// other · acoustic guitar nylon · "guitare solo"
const acoustic_guitar_nylon_2 = note(`<
~@3 A ~ B@2 A ~ C D ~@2 E ~@6 F G H I J K L M N O P Q R S@2 T ~@2 F U H V W X L Y Z O P AA R S@2 T ~@3 AB ~ AC AD AE ~
C D ~@2 AF ~@6 F G H I J K L M N O P Q R S@2 T ~@2 F U H V W X L Y Z O P AA R S@2 T ~@3 AB ~ AC AD AE ~ C D ~@2 AF
~@60
>`.pickRestart({
A: "~@10 c5 ~ b4 ~ c5@2", B: "[~@10 g4!2 a4 ~ b4@5 ~@13]/2", C: "~@8 c5 ~ c5!3 ~ c5 ~", D: "a4 ~@3",
E: "a4 ~ a4!2 a4@2 a4@2 g4@2 e4 ~ d#4 ~ e4 ~", F: "c4@2 c4@2 g3@2 ~@2 c4@2 ~@2 e4@3 ~",
G: "d3@3 c4 ~ g4 ~@2 c4@2 ~@2 c4 ~@3", H: "e4 ~ e4!2 g3@3 ~ c4@3 ~ e4@2 ~ d#4", I: "d4@3 ~ c4 ~ g4 ~ c4@3 ~@5",
J: "e4 ~ e4!2 g3@3 ~ c4@3 ~ e4@2 e4@2", K: "d4@2 ~@3 g3 ~@2 c4@2 c4@2 c4@2 ~@2, ~@2 g4 ~@5",
L: "e4@3 ~ g4@3 ~ c5@3 ~ c5@2 c5!2", M: "g4@3 ~ d4@2 f4 ~ c4@3 ~@5", N: "c4@2 ~@2 d4 ~ e4@2 a4 ~ g4@2 a4@2 g4 ~",
O: "g4 ~ d4@2 c4 ~ d4 ~ g4 ~ g4!3 ~ g4@2", P: "e4@2 ~ a4!2 a4@2 ~ b4 ~ a4 ~ b4@2 e4 ~", Q: "d4 ~@3",
R: "a3@2 ~ c#4@2 ~ e4@2 a4 ~ g4 ~ e4@2 g4 ~",
S: "[f4 ~@3 g3 a3 ~ c4 g4 f4@2 ~ d4 f4 ~ e4@2 ~@2 a4!3 ~ e4@2 ~ g4 c4@5]/2", T: "~@2 g4 ~ c4@2 ~@2",
U: "d3@3 c4 ~ g4 ~@2 c4@2 c5@2 [c4,b4]@2 c5 ~", V: "d4@3 ~ c4 ~ g4 ~ c4@2 g3!2 a3 ~ b3 ~",
W: "c4@2 e4!2 g3@3 ~ c4@3 ~ e4@2 e4@2, e4 ~@15", X: "d4@2 ~@3 g3 ~@2 c4@2 [c4,c5]@2 [c4,b4]@2 c5@2, ~@2 g4 ~@5",
Y: "g4@3 ~ d4@2 f4 ~ c4@2 c5!3 ~ c5 ~, ~@8 c5 ~@7", Z: "a4@4 d4 ~ e4@2 a4 ~ g4@2 a4@2 g4 ~, c4 ~@7",
AA: "a4 ~ a4!2 a4@2 a4@2 g4@7 ~, d4 ~@3", AB: "~@10 c5@2 b4@2 c5 ~", AC: "~@10 g3!2 a3 ~ b3 ~", AD: "c4@3 ~@13",
AE: "~@5 c5 b4 c5", AF: "a4 ~ a4!2 a4@2 a4@2 g4@7 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.15)
// chords · tuba
const tuba = note("<~@164 A B C D C D E D F G H I F G J B K ~>".pickRestart({
A: "c3 [g3,c4,e4] g2 [g3,c4,e4] a2 [e3,a3,c4] e2 [e3,a3,c4]", // C Am
B: "g3 [f3,b3,d4] d3 [f3,b3,d4] c3 [g3,c4,e4] g2 [g3,c4,e4]", // Bdim C
C: "c3 [g3,c4,e4] g2 [g3,c4,e4] a2 [a3,c4,e4] e2 [a3,c4,e4]", // C Am
D: "g3 [f3,b3,d4] d3 [f3,b3,d4] c3 [e3,g3,c4] g2 [e3,g3,c4]", // Bdim C
E: "c3 [e3,g3,c4] g2 [e3,g3,c4] a2 [e3,a3,c4] e2 [e3,a3,c4]", // C Am
F: "a2 [e3,g3,c#4] e2 [e3,g3,c#4] a2 [e3,g3,c#4] e2 [e3,g3,c#4]", // C#dim
G: "d3 [f3,a3,d4] a2 [f3,a3,d4] g3 [g3,a#3,d4] d3 [g3,a#3,d4]", // Dm Gm
H: "a2 [g3,c#4,e4] e2 [g3,c#4,e4] a2 [a3,c4,e4] e2 [a3,c4,e4]", // C#dim Am
I: "d3 [f#3,a3,c4] a2 [f#3,a3,c4] g3 [f3,b3,d4] d3 [f3,b3,d4]", // F#dim Bdim
J: "a2 [g3,c#4,e4] e2 [g3,c#4,e4] d3 [f#3,a3,c4] a2 [f#3,a3,c4]", K: "[c3,e3,g3,c4] ~@7",
})).s("gm_tuba").gain(0.15)
// other · trombone · "trombones"
const trombone = note(`<
~@129 A ~ B@2 A ~ C D ~@2 E ~@6 F G H I J K L M N O P Q R S@2 T ~@2 F U H V W X L Y Z O P AA R S@2 T ~@2
>`.pickRestart({
A: "~@10 c5 ~ b4 ~ c5@2", B: "[~@10 g4!2 a4 ~ b4@5 ~@13]/2", C: "~@8 c5 ~ c5!3 ~ c5 ~", D: "a4 ~@3",
E: "a4 ~ a4!2 a4@2 a4@2 g4@2 e4 ~ d#4 ~ e4 ~", F: "c4@2 c4@2 g3@2 ~@2 c4@2 ~@2 e4@3 ~",
G: "d3@3 c4 ~ g4 ~@2 c4@2 ~@2 c4 ~@3", H: "e4 ~ e4!2 g3@3 ~ c4@3 ~ e4@2 ~ d#4", I: "d4@3 ~ c4 ~ g4 ~ c4@3 ~@5",
J: "e4 ~ e4!2 g3@3 ~ c4@3 ~ e4@2 e4@2", K: "d4@2 ~@3 g3 ~@2 c4@2 c4@2 c4@2 ~@2, ~@2 g4 ~@5",
L: "e4@3 ~ g4@3 ~ c5@3 ~ c5@2 c5!2", M: "g4@3 ~ d4@2 f4 ~ c4@3 ~@5", N: "c4@2 ~@2 d4 ~ e4@2 a4 ~ g4@2 a4@2 g4 ~",
O: "g4 ~ d4@2 c4 ~ d4 ~ g4 ~ g4!3 ~ g4@2", P: "e4@2 ~ a4!2 a4@2 ~ b4 ~ a4 ~ b4@2 e4 ~", Q: "d4 ~@3",
R: "a3@2 ~ c#4@2 ~ e4@2 a4 ~ g4 ~ e4@2 g4 ~",
S: "[f4 ~@3 g3 a3 ~ c4 g4 f4@2 ~ d4 f4 ~ e4@2 ~@2 a4!3 ~ e4@2 ~ g4 c4@5]/2", T: "~@2 g4 ~ c4@2 ~@2",
U: "d3@3 c4 ~ g4 ~@2 c4@2 c5@2 b4@2 c5 ~, ~@12 c4 ~@3", V: "d4@3 ~ c4 ~ g4 ~ c4@2 g3!2 a3 ~ b3 ~",
W: "c4@2 e4!2 g3@3 ~ c4@3 ~ e4@2 e4@2, e4 ~@15", X: "d4@2 ~@3 g3 ~@2 c4@2 [c4,c5]@2 [c4,b4]@2 c5@2, ~@2 g4 ~@5",
Y: "g4@3 ~ d4@2 f4 ~ c4@2 c5!3 ~ c5 ~, ~@8 c5 ~@7", Z: "a4@4 d4 ~ e4@2 a4 ~ g4@2 a4@2 g4 ~, c4 ~@7",
AA: "a4 ~ a4!2 a4@2 a4@2 g4@7 ~, d4 ~@3",
})).s("gm_trombone").gain(0.19)
// drums · kick
const kick = s("bd").struct(`<
~@18 A@6 B A@3 C A@3 D A@3 E A@9 F A@7 G A@13 D A@9 H A@7 I A@3 J A@5 B A@17 B A@3 C A@3 D A@3 E A@9 F A@7 G A@13 D
A@9 H A@7 I A@3 J ~
>`.pickRestart({
A: "x!4", B: "x ~ x ~ x!2 ~@2", C: "~ x ~ x ~ x ~ x", D: "x ~ x ~@2 x ~@2", E: "~@5 x ~@2", F: "~ x ~ x ~@4",
G: "~@2 x!2 ~@6 x ~@5", H: "x ~@3 x ~@3 x ~@4 x ~@2", I: "x ~@3 x ~@5 x ~@2 x ~@2", J: "x!2 ~@2 x ~@3",
})).gain(0.37)
// drums · hihat
const hihat = s("hh").struct(`<
~@18 A@3 B@2 C D E C@2 ~ C E B F C@3 ~ E B E C E G E C E ~ C E C D B C@2 ~ C@5 H C@3 ~ E@3 I E@2 B ~ C B C B@2 D B@2 C
~ B@3 J E C@2 ~ C B E C E F E@3 ~ E B E J B E B A@3 B@2 C D E C@2 ~ C E B F C@3 ~ E B E C E G E C E ~ C E C D B C@2 ~
C@5 H C@3 ~ E@3 I E@2 B ~ C B C B@2 D B@2 C ~ B@3 J E C@2 ~@2
>`.pickRestart({
A: "~ x ~ x ~ x ~ x", B: "x!2 ~ x!4 ~", C: "x!3 ~ x!3 ~", D: "x!2 ~ x!2 ~@3", E: "x!7 ~", F: "x!3 ~@5",
G: "x!3 ~ x ~@3", H: "x!3 ~ x!2 ~@2", I: "x!4 ~@4", J: "x!2 ~ x ~@4",
})).gain(0.33)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
~@21 A@2 B C D B@2 ~ B D A E B@3 ~ D A D B D E D B D ~ B D B C A B@2 ~ B@5 E B@3 ~ D@3 ~ D@2 A ~ B A B A@2 C A@2 B ~
A@3 C D B@2 ~ B A D B D E D@3 ~ D A D C A D A ~@3 A@2 B C D B@2 ~ B D A E B@3 ~ D A D B D E D B D ~ B D B C A B@2 ~
B@5 E B@3 ~ D@3 ~ D@2 A ~ B A B A@2 C A@2 B ~ A@3 C D B@2 ~@2
>`.pickRestart({
A: "~@2 x ~@4 x", B: "~@3 x ~@3 x", C: "~ x ~@2", D: "~@7 x", E: "~@3 x ~@4",
})).gain(0.16)
// drums · shaker
const shaker = s("sh").struct(`<
~@20 A@4 B A@3 C A@3 D A@3 E A@5 F A@3 G A@3 H A@3 I A@5 J A@3 K A@3 L A@3 M A@5 N A@3 M A@3 O A@3 P A@5 Q A@3 R A@3 S
A@3 ~@2 A@4 B A@3 C A@3 D A@3 E A@5 F A@3 G A@3 H A@3 I A@5 J A@3 K A@3 L A@3 M A@5 N A@3 M A@3 O A@3 P ~
>`.pickRestart({
A: "~ x!3 ~ x!3 ~ x!3 ~ x!3", B: "~ x!3 ~ x!3 ~ x ~@6", C: "x!2 ~ x!3 ~ x!3 ~ x!3 ~ x", D: "~ x!3 ~ x!4 ~@7",
E: "x!10 ~ x!5", F: "~ x!3 ~ x!3 ~ x!4 ~ x ~", G: "x!2 ~ x!3 ~ x!9", H: "~ x!3 ~ x!3 ~ x!2 ~ x!2 ~@2",
I: "x ~@8 x ~@6", J: "~ x!3 ~ x!3 ~ x!4 ~@3", K: "x!15 ~", L: "~ x!3 ~ x!4 ~@6 x", M: "x!3 ~ x!3 ~ x!5 ~ x ~",
N: "~ x!3 ~ x!3 ~ x!2 ~@5", O: "~ x!3 ~ x!5 ~ x!2 ~ x!2", P: "~ x ~@2", Q: "~ x!3 ~ x!3 ~@4 x ~@3",
R: "x!3 ~ x!3 ~ x!3 ~ x!3 ~", S: "~ x!3 ~ x!11",
})).gain(0.12)
stack(
bass, acoustic_guitar_steel, acoustic_guitar_nylon, acoustic_guitar_nylon_2, tuba, trombone, kick, hihat, hihat_soft,
shaker
)
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.