0:00/0:00
// Les oiseaux de passage — Brassens Georges
// 130 bpm, 4/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: Full arrangement: all 91 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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 · electric guitar jazz · "Guitare"
const electric_guitar_jazz = note(`<
A B@8 C D E F G H E I J D E F G D E K L M N O G H E I J D E F G P E I J Q R@6 S T U@2 V W U@2 X Y Z AA AB W AC@2 AD AE
U@2 V AF AC@2 AD AG Z AA AB W AC@2 AD AE U@2 V AF AC@2 AH@2
>`.pickRestart({
A: "~@6 [d3,f3,a3,d4]@11 ~@7", // Dm
B: "[~@10 [d4,f4]@23 ~@3 [c4,e4]@23 ~@3 [bb3,d4]@23 ~@3 [a3,db4]@23 ~@3 [d4,f4]@23 ~@3 [c4,e4]@23 ~@3 [bb3,d4]@10 ~ [db3,g3,a3,db4]@11 ~@3 f3, ~@8 f3@24 ~@2 e3@24 ~@2 d3@24 ~@2 db3@24 ~@3 a3@24 ~@2 g3@24 ~@2 f3@11 ~@16, ~@9 a3@24 ~@2 g3@24 ~@2 f3@24 ~@2 g3@24 ~ f3@24 ~@2 e3@24 ~@2 d3@12 ~@14 d3@2]/8", // Dm C Bb A Dm C Bb A7
C: "[a3,d4]@5 ~@3 a2@3 b2@3 db3@3 ~ d3@3 e3@3", D: "~ [a2,d3] ~ [a2,d3] f3 [a2,d3,a3] g3 [b2,d3,f3], f3 ~@2",
E: "e3@3 g2@3 ~@3 g2@3 ~@2 [g2,c3,e3]@2 f3@2 g3@2 [a2,c3,f3]@2 e3@2, ~@3 c3@11 ~@10", // C F
F: "~ [f2,bb2] f3 [g2,bb2,e3] ~ [f2,bb2] f3 [bb2,d3,a3], d3@5 ~@7 d3@5 ~@7", // Bb5 Edim Bb5 Bbmaj7
G: "~ [db3,e3] ~ [db3,e3,a3] a3 [db3,e3,a3] db4 [db3,e3,a3], g3 ~@2", // Dbm A
H: "~ [a2,d3] ~ [a2,d3] f3 [a2,d3,a3] g2 [b2,d3,g3], f3 ~@2", // D5 G
I: "~ [f2,bb2] ~ [bb2,d3,f3] a3 [a2,db3,g3] f3 [g2,db3,e3], d3 ~@2", J: "[f2,a2,d3]@5 ~@4 a2@3 b2@3 db3@3 d3@3 e3@3",
K: "~ [f2,bb2] f3 [bb2,d3,a3] ~ [a2,db3] f3 [g2,db3,e3], d3@5 ~@7 g3@5 ~@7", // Bb5 Bbmaj7 A Dbdim
L: "[f2,a2,d3]@5 ~@4 a2@3 b2@3 db3@3 d3@3 f3@3", M: "~ [a2,d3] ~ [a2,d3,f3] a3 [d3,f3,c4] bb3 [d3,f3,a3], a3 ~@2",
N: "g3 [g2,c3] ~ [g2,c3,e3] g3 [c3,e3,bb3] a3 [c3,e3,g3], ~@3 e3@5 ~@16", // C5 C C7 C
O: "~ [bb2,d3] ~ [bb2,d3,a3] g3 [bb2,d3,f3] bb3 [bb2,d3,a3], f3 ~@2", // Bb Bbmaj7 Bb Bbmaj7
P: "~ [a2,d3] ~ [a2,d3] f3 [a2,d3,a3] g2 [b2,d3,g3], f3@5 ~@19", Q: "~ [d4,f4]@11, f3, ~ a3@23",
R: "[~@4 [c4,e4]@23 ~@3 [bb3,d4]@23 ~@3 [a3,db4]@23 ~@3 [d4,f4]@23 ~@3 [c4,e4]@23 ~@3 [bb3,d4]@10, ~@2 e3@24 ~@2 d3@24 ~@2 db3@24 ~@3 a3@24 ~@2 g3@24 ~@2 f3@11, ~@3 g3@24 ~@2 f3@24 ~@2 g3@24 ~ f3@24 ~@2 e3@24 ~@2 d3@12]/6", // C Bb A Dm C Bb
S: "~@3 [a3,db4]@10 ~@3 [a3,d4]@5 ~@3, ~ db3@12 ~ d3@6 ~@4, ~@2 g3@11 ~@2 f3@6 ~@3", // A D5
T: "a2@3 b2@3 db3@3 d3@3 ~ e3@3 ~@3 [a2,d3]@3 ~@2, ~@2 f3", // D5
U: "[~ [a2,d3]@3 f3@3 [a2,d3,a3]@3 g3@3 [b2,d3,f3]@3 e3@3 g2@3 ~@3 g2@3 ~@2 [g2,c3,e3]@2 f3@2 g3@2 [a2,c3,f3]@2 e3@2 ~@3 [f2,bb2]@3 f3@2, ~@19 c3@11 ~@10 d3@5 ~@3]/2", // D5 Bdim C F Bb5
V: "~ [g2,bb2,e3]@3 ~@3 [f2,bb2]@3 f3@3 [bb2,d3,a3]@3 ~@3 [db3,e3]@3 ~@2, ~@4 d3@5 ~@7 g3@8", // Edim Bb5 Bbmaj7 Dbm
W: "~ [db3,e3,a3]@3 a3@3 [db3,e3,a3]@3 db4@3 [db3,e3,a3]@3 ~@3 [a2,d3]@3 ~@2, ~@2 f3", // A D5
X: "~ [bb2,d3,a3]@3 ~@3 [a2,db3]@3 f3@3 [g2,db3,e3]@3 [f2,a2,d3]@5 ~@3, ~@4 g3@5 ~@15", // Bbmaj7 A Dbdim Dm
Y: "~ a2@3 b2@3 db3@3 d3@3 f3@3 ~@3 [a2,d3]@3 ~@2, ~@2 a3", // D5
Z: "~ [a2,d3,f3]@3 a3@3 [d3,f3,c4]@3 bb3@3 [d3,f3,a3]@3 g3@3 [g2,c3]@3 ~@2, ~@19 e3@5", // Dm Dm7 Dm C5
AA: "~ [g2,c3,e3]@3 g3@3 [c3,e3,bb3]@3 a3@3 [c3,e3,g3]@3 ~@3 [bb2,d3]@3 ~@2, ~@2 f3", // C C7 C Bb
AB: "~ [bb2,d3,a3]@3 g3@3 [bb2,d3,f3]@3 bb3@3 [bb2,d3,a3]@3 ~@3 [db3,e3]@3 ~@2, ~@2 g3", // Bbmaj7 Bb Bbmaj7 Dbm
AC: "[~ [a2,d3]@3 f3@3 [a2,d3,a3]@3 g2@3 [b2,d3,g3]@3 e3@3 g2@3 ~@3 g2@3 ~@2 [g2,c3,e3]@2 f3@2 g3@2 [a2,c3,f3]@2 e3@2 ~@3 [f2,bb2]@3 ~@2, ~@19 c3@11 ~@10 d3@8]/2", // D5 G C F Bb5
AD: "~ [bb2,d3,f3]@3 a3@3 [a2,db3,g3]@3 f3@3 [g2,db3,e3]@3 [f2,a2,d3]@5 ~@3", // Bb A7 Dbdim Dm
AE: "~ a2@3 b2@3 db3@3 d3@3 e3@3 ~@3 [a2,d3]@3 ~@2, ~@2 f3", // D5
AF: "~ [db3,e3,a3]@3 a3@3 [db3,e3,a3]@3 db4@3 [db3,e3,a3]@3 ~@3 [a2,d3]@3 ~@2, ~@16 f3@5 ~@3", // A D5
AG: "~ a2@3 b2@3 db3@3 d3@3 e3@3 ~@3 [a2,d3]@3 ~@2, ~@2 a3", // D5
AH: "[~ [bb2,d3,f3]@3 a3@3 [a2,db3,g3]@3 f3@3 [g2,db3,e3]@3 d3@16 ~@16]/2", // Bb A7 Dbdim
})).s("gm_electric_guitar_jazz").gain(0.18).pan(1)
// bass · fretless bass · "Contrebasse"
const bass = note(`<
A B@8 C D E F G H E I J H E F G H E I J K L F M H E I J H E F G H E I J N O@6 P Q@8 R@8 S@8 R@8 T@8 U
>`.pickRestart({
A: "~@6 [d2,a2,d3]@11 ~@7", // D5
B: "[~@10 d3@23 ~@3 c3@22 ~@4 bb2@23 ~@3 a2@23 ~@3 d3@23 ~@3 c3@23 ~@3 bb2@10 ~ [a1,e2,a2]@11 ~@3 a2, ~@8 d2@24 ~@2 c2@24 ~@2 bb1@24 ~@2 a1@24 ~@3 a2@24 ~@2 g2@24 ~@2 f2@11 ~@14 d2@2, ~@9 a2@24 ~@2 g2@24 ~@2 f2@24 ~@2 e2@24 ~ d2@24 ~@2 c2@24 ~@2 bb1@12 ~@16]/8", // A5
C: "d3@5 ~@19", D: "d3@5 ~ a2@5 ~ d3@5 ~ g2@5 ~", E: "c3@5 ~ g2@5 ~ c3@5 ~ f2@5 ~",
F: "bb2@5 ~ f2@5 ~ bb2@5 ~ bb2@5 ~", G: "a2@5 ~ e2@5 ~ a2@3 g2@3 f2@3 e2@3", H: "[d2,d3]@5 ~ a2@5 ~ d3@5 ~ g2@5 ~",
I: "bb2@5 ~ f2@5 ~ a2@5 ~ a2@5 ~", J: "d2@5 ~@7 a2@3 g2@3 f2@3 e2@3", K: "[d2,d3]@5 ~ a2@5 ~ d3@5 ~ d3@5 ~",
L: "c3@5 ~ g2@5 ~ c3@5 ~ c3@5 ~", M: "a2@5 ~ bb2@5 ~ b2@5 ~ db3@5 ~", N: "~ d3@11, d2, ~ a2@23",
O: "[~@4 c3@22 ~@4 bb2@23 ~@3 a2@23 ~@3 d3@23 ~@3 c3@23 ~@3 bb2@10, ~@2 c2@24 ~@2 bb1@24 ~@2 a1@24 ~@3 a2@24 ~@2 g2@24 ~@2 f2@11, ~@3 g2@24 ~@2 f2@24 ~@2 e2@24 ~ d2@24 ~@2 c2@24 ~@2 bb1@12]/6",
P: "~@3 a2@10 ~@3 d3@5 ~@3, ~ a1@12 ~@2 a2@6 ~@3, ~@2 e2@11 ~ d2@6 ~@4",
Q: "[~@16 [d2,d3]@5 ~ a2@5 ~ d3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~ c3@5 ~ f2@5 ~ bb2@5 ~ f2@5 ~ bb2@5 ~ bb2@5 ~ a2@5 ~ e2@5 ~ a2@3 g2@3 f2@3 e2@3 [d2,d3]@5 ~ a2@5 ~ d3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~ c3@5 ~ f2@5 ~ bb2@5 ~ f2@5 ~ a2@5 ~ a2@5 ~ d2@5 ~@3]/8", // D
R: "[~@4 a2@3 g2@3 f2@3 e2@3 [d2,d3]@5 ~ a2@5 ~ d3@5 ~ d3@5 ~ c3@5 ~ g2@5 ~ c3@5 ~ c3@5 ~ bb2@5 ~ f2@5 ~ bb2@5 ~ bb2@5 ~ a2@5 ~ bb2@5 ~ b2@5 ~ db3@5 ~ [d2,d3]@5 ~ a2@5 ~ d3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~ c3@5 ~ f2@5 ~ bb2@5 ~ f2@5 ~ a2@5 ~ a2@5 ~ d2@5 ~@3]/8", // D
S: "[~@4 a2@3 g2@3 f2@3 e2@3 [d2,d3]@5 ~ a2@5 ~ d3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~ c3@5 ~ f2@5 ~ bb2@5 ~ f2@5 ~ bb2@5 ~ bb2@5 ~ a2@5 ~ e2@5 ~ a2@3 g2@3 f2@3 e2@3 [d2,d3]@5 ~ a2@5 ~ d3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~ c3@5 ~ f2@5 ~ bb2@5 ~ f2@5 ~ a2@5 ~ a2@5 ~ d2@5 ~@3]/8", // D
T: "[~@4 a2@3 g2@3 f2@3 e2@3 [d2,d3]@5 ~ a2@5 ~ d3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~ c3@5 ~ f2@5 ~ bb2@5 ~ f2@5 ~ bb2@5 ~ bb2@5 ~ a2@5 ~ e2@5 ~ a2@3 g2@3 f2@3 e2@3 [d2,d3]@5 ~ a2@5 ~ d3@5 ~ g2@5 ~ c3@5 ~ g2@5 ~ c3@5 ~ f2@5 ~ bb2@5 ~ f2@5 ~ a2@5 ~ a2@5 ~ d3@8]/8", // D
U: "~@10 a2@5 ~ [d2,d3]@5 ~@3", // D
})).s("gm_fretless_bass").gain(0.18).pan(0)
stack(electric_guitar_jazz, bass)
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.