0:00/0:00
// Les Passantes — Brassens Georges
// 70 bpm, 3/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 2 "basse archer" named as a bass, played on electric bass finger (its contrabass patch is not one); ch 7 "guitare" named as a guitar, played on electric guitar clean (its epiano1 patch is not one)
// note: Full arrangement: all 116 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/3)
// 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 · electric bass finger · "basse archer"
const bass = note(`<
A B C D A E F G H I J K L M F N A O J K P M A Q R S J T A M F N A U C V L E L W X Y J K P M P Q A B J T P E P Q B V C
K F M P Q P O J K F M L G Z AA AB V A AC A W L O AB D A M A Q B K AB T F M F N P B J T P AD L W U T AB V P M L G J G
AE@2
>`.pickRestart({
A: "~ a1@31", B: "~ c2@31", C: "f2@17 c3@15", D: "e2@7 b2", E: "d2@7 a2", F: "a1@17 e2@15", G: "~ g2@31",
H: "~ c2@20 c3@4 ~ d3@3 ~ eb3@2", I: "~ e3@14 ~@2 b2@15", J: "~ f2@31", K: "e1", L: "a1@7 e2", M: "~ d2@31",
N: "g2@7 d3", O: "c3@9 g2@2 ~@3 c2@2", P: "a2@9 e2@2 ~@3 a1@2", Q: "g1", R: "~ c2@20 c3@4 d3@4 eb3@3", S: "e3@7 b2",
T: "~ e2@31", U: "c2@7 g2", V: "e2@17 b2@15", W: "g2@17 d3@15", X: "~ c2@20 c2@4 ~ d2@3 eb2@3", Y: "e2",
Z: "c2@17 g2@3 ~ c3@4 ~ d3@3 eb3@3", AA: "e3", AB: "f1", AC: "d3@9 a2@2 ~@3 d2@2", AD: "d2@17 a2@15",
AE: "[a2@61 ~@3]/2",
})).s("gm_electric_bass_finger").gain(0.47).pan(0.6)
// chords · piano · "piano accords"
const piano = note(`<
A B C D E F G H I J K L M N G O G P C Q R S G H T U V Q R F A W G X C Y Z AA G AB I AC AD AE AF AG AH AI G AJ AD Y Z
AK A AL AM AC AN Q E F G W AH AO AP L E AK G AQ I AR K D E F A AS A AO AN D Z AK AT AU AV AC AN D AW S A O G AX AY D
AF AZ A AB AM BA BB L AW F AH W AY W BC ~
>`.pickRestart({
A: "[a3,c4,e4,a4]@15 ~@3 [a3,c4,e4,a4]@4 ~@10", B: "[e3,bb3,c4,g4]@6 ~ ab3@4 ~@7 [e3,bb3,c4,g4]@3 ab3@4 ~@7",
C: "~@7 [f3,a3,c4]@23 ~@2", D: "[ab3,d4,e4,b4]@6 ~ e3@4 ~@7 [ab3,d4,e4,b4]@3 e3@4 ~@7",
E: "[g3,db4,e4,a4]@15 ~@3 [g3,db4,e4,a4]@4 ~@10", F: "~@7 [gb3,d4,a4]@4 ~@10 [gb3,d4,a4]@4 ~@7",
G: "~@7 [a3,c4,e4,a4]@23 ~@2", H: "[f3,g3,b3,d4]@15 ~@3 [f3,g3,b3,d4]@4 ~@10", I: "~@7 [e3,c4,g4]@23 ~@2",
J: "[ab3,b3,e4]@6 ~ ab3@4 ~@7 [ab3,b3,e4]@3 ab3@4 ~@7", K: "[a3,c4,f4]@15 ~@3 [a3,c4,f4]@4 ~@10",
L: "~@7 [ab3,d4,e4,b4]@4 ~@10 [ab3,d4,e4,b4]@5 ~@6, e2@6 ~@3 e2@4 ~@3", // E7
M: "~@7 [g3,db4,e4,a4]@4 ~@10 [g3,db4,e4,a4]@5 ~@6, a2@6 ~@3 a2@4 ~@3", // A7
N: "~@7 [gb3,a3,d4]@4 ~@10 [gb3,a3,d4]@5 ~@6, d3@6 ~@3 d3@4 ~@3", O: "[b3,g4,d5]@6 ~ b3@4 ~@7 [b3,g4,d5]@3 b3@4 ~@7",
P: "~@7 [e3,bb3,c4,g4]@4 ~@10 [e3,bb3,c4,g4]@5 ~@6, c3@6 ~@3 c3@4 ~@3", // C7
Q: "[ab3,d4,e4,b4]@15 ~@3 [ab3,d4,e4,b4]@4 ~@10", R: "~@7 [g3,a3,db4,e4]@23 ~@2",
S: "[gb3,a3,d4]@15 ~@3 [gb3,a3,d4]@4 ~@10", T: "[e3,c4,g4]@15 ~@3 [e3,c4,g4]@4 ~@10",
U: "~@7 [ab3,b3,e4]@4 ~@10 [ab3,b3,e4]@5 ~@6, e2@6 ~@3 e2@4 ~@3", V: "[a3,f4,c5]@15 ~@3 [a3,f4,c5]@4 ~@10",
W: "[g3,b3,d4,g4]@6 ~ b3@4 ~@7 [g3,b3,d4,g4]@3 b3@4 ~@7", X: "[e3,g3,bb3,c4]@15 ~@3 [e3,g3,bb3,c4]@4 ~@10",
Y: "~@7 [ab3,b3,d4,e4]@4 ~@10 [ab3,b3,d4,e4]@5 ~@6, e2@6 ~@3 e2@4 ~@3", Z: "~@7 [g3,db4,e4,a4]@23 ~@2",
AA: "~@7 [gb3,a3,d4]@4 ~@10 [gb3,a3,d4]@4 ~@7", AB: "~@7 [f3,g3,b3,d4]@4 ~@10 [f3,g3,b3,d4]@5 ~@6, g2@6 ~@3 g2@4 ~@3",
AC: "~@11 [ab3,e4,b4]@21", AD: "~@7 [a3,c4,f4]@4 ~@10 [a3,c4,f4]@5 ~@6, f2@6 ~@3 f2@4 ~@3",
AE: "[ab3,b3,d4,e4]@15 ~@3 [ab3,b3,d4,e4]@4 ~@10", AF: "[g3,a3,db4,e4]@15 ~@3 [g3,a3,db4,e4]@4 ~@10",
AG: "[gb3,d4,a4]@15 ~@3 [gb3,d4,a4]@4 ~@10", AH: "~@7 [a3,c4,e4,a4]@4 ~@10 [a3,c4,e4,a4]@5 ~@6, a2@6 ~@3 a2@4 ~@3",
AI: "~@7 [g3,b3,d4]@4 ~@10 [g3,b3,d4]@5 ~@6, g2@6 ~@3 g2@4 ~@3", AJ: "[bb3,c4,e4,g4]@15 ~@3 [bb3,c4,e4,g4]@4 ~@10",
AK: "[gb3,d4,a4]@6 ~ a3@4 ~@7 [gb3,d4,a4]@3 a3@4 ~@7", AL: "~@7 [f3,b3,d4,g4]@4 ~@10 [f3,b3,d4,g4]@4 ~@7",
AM: "[e3,g3,c4]@15 ~@3 [e3,g3,c4]@4 ~@10", AN: "~@7 [a3,f4,c5]@4 ~@10 [a3,f4,c5]@5 ~@6, f2@6 ~@3 f2@4 ~@3",
AO: "[bb3,e4,g4,c5]@6 ~ g3@4 ~@7 [bb3,e4,g4,c5]@3 g3@4 ~@7", AP: "~@7 [a3,c4,f4]@23 ~@2",
AQ: "~@7 [f3,b3,d4,g4]@4 ~@10 [f3,b3,d4,g4]@5 ~@6, g2@6 ~@3 g2@4 ~@3", AR: "~@7 [ab3,e4,b4]@4 ~@10 [ab3,e4,b4]@4 ~@7",
AS: "[b3,g4,d5]@15 ~@3 [b3,g4,d5]@4 ~@10", AT: "~@7 [a3,c4,e4]@4 ~@10 [a3,c4,e4]@5 ~@6, a2@6 ~@3 a2@4 ~@3",
AU: "[b3,f4,g4,d5]@15 ~@3 [b3,f4,g4,d5]@4 ~@10", AV: "[c4,e4,g4,c5]@15 ~@3 [c4,e4,g4,c5]@4 ~@10",
AW: "~@7 [g3,a3,db4,e4]@4 ~@10 [g3,a3,db4,e4]@5 ~@6, a2@6 ~@3 a2@4 ~@3", // A7
AX: "~@7 [e3,bb3,c4,g4]@4 ~@10 [e3,bb3,c4,g4]@4 ~@7", AY: "~@7 [f3,a3,c4,f4]@23 ~@2",
AZ: "~@7 [gb3,d4,a4]@4 ~@10 [gb3,d4,a4]@5 ~@6, d3@6 ~@3 d3@4 ~@3", // D
BA: "~@7 [ab3,e4,b4]@4 ~@10 [ab3,e4,b4]@5 ~@6, e2@6 ~@3 e2@4 ~@3", BB: "~@7 [a3,f4,c5]@23 ~@2",
BC: "[g3,a3,db4,e4]@27 ~@5", // A7
})).s("gm_piano").gain(0.3).pan(0.3)
// chords · string ensemble 1 · "cordes"
const string_ensemble_1 = note(`<
~@18 A B C D E F G H A B C D E I E J A B C D E F G H A B C D E I E J A B C D E F G H A B C D E I E J A B C D E F G H A
B C D E I E J A B C D E F G H A B C D E I E J ~@18
>`.pickRestart({
A: "[f4,c5]", B: "[d4,ab4]", C: "[db4,g4]", D: "[gb4,d5]", E: "[c4,a4]", F: "[f4,b4]", G: "[e4,c5]", H: "[e4,b4]",
I: "[g4,d5]", J: "[e4,bb4]",
})).s("gm_string_ensemble_1").gain(0.17)
// chords · electric guitar clean · "guitare"
const electric_guitar_clean = note(`<
~@18 A B C D E F G H A B C D E I E J A B C D E F G H A B K D E I E L A B C D E F G H A B C D E I E L A B C D E F G H A
B C D E I E L A B C D E F G H A B K D E I E J ~@18
>`.pickRestart({
A: "[a3,c4,a4]@31 ~", B: "[e3,ab3,d4]@31 ~", C: "[f3,g3,db4]@31 ~", D: "[a3,d4,a4]@31 ~", E: "[e3,a3,e4]@31 ~",
F: "[g3,b3,f4]@31 ~", G: "[g3,c4,g4]@31 ~", H: "[ab3,b3,ab4]@31 ~", I: "[b3,d4,b4]@31 ~", J: "[g3,bb3,e4]@31 ~",
K: "[e3,g3,db4]@31 ~", L: "[ab3,bb3,e4]@31 ~",
})).s("gm_electric_guitar_clean").gain(0.18).pan(0.8)
// other · piano · "piano riffs"
const piano_2 = note(`<
A B C D E ~ F G@3 H I J ~@2 K L M N ~@2 O P ~@3 Q@2 ~@3 R S T U ~@3 V W ~ X Y ~@2 Z ~ AA AB AC AD AE AF ~ AG AH ~@2 AI
AJ AK AL AM AN AO ~@2 AP AQ AR AS AT AU ~@2 AV AW AX@2 ~@2 AY AZ ~@4 BA BB BC BD BE BF BG ~@2 BH BI ~ BJ BK ~ AG AH ~
BL BM BN BO BP@2 ~@5
>`.pickRestart({
A: "~@22 e5 gb5@2 g5 ~ e5@4 ~", B: "~@3 f5@2 ~@2 e5 ~ g5@2 f5@2 ~ eb5 ~ e5@2 ~ g5 ~@2 f5@2 ~ c5 ~@6",
C: "~@25 f5 ~ ab5 a5 ~ bb5@2", D: "~@4 d6@2 ~@3 c6@2 db6@2 ~ a5@2 e5@3 ~@3 gb5@3 ~@2 e5@2 ~ gb5 ~", E: "~@3 a5 ~@28",
F: "~@19 db6 ~@2 d6@2 ~ e6 ~ c6@2 ~@3",
G: "[c6@4 a5@6 ~@4 g5 ~@4 g5 ~ e5 ~ c5 ~ e5 ~ g5@2 ~ g5 g5@2 ~@2 f5 ~@17 [c4,c5] ~@5 eb4 e4@2 g4@2 ~@3 e4 ~@2 ab4 ~@2 [a4,db5] db5@4 ~@7 [e5,e6]@3 ~@8, d6@2 ~@15 c6@2 ~@77, ~@18 b5@2 ~@14 gb5@2 ~@23 c5@8 ~@2 [g4,b4]@2 ~@25]/3", // C A E G
H: "~@25 ab5 ~ a5@4 ~, ~@25 c6@5 ~@2", I: "b5@2 ~ ab5 ~@7 gb5@2 ~ d5 ~ b4@2 ~ a4@2 b4@2 ~@3 b4@2 ~@2 b4@2",
J: "~ a4@2 g4@2 ~ e4@2 ~@3 d4@2 ~ a3 ~@17", K: "~@16 g4 ~@3 eb5 ~ e5@2 ~ g5 bb5@2 ~@2 b5@2",
L: "~ a5@2 c6@2 d6@3 ~@4 a5@3 ~@17", M: "~@19 f5@2 ~@2 [c5,f5]@2 ~@2 [b4,f5]@2 ~ [bb4,f5]@2, ~@19 b4 ~@12",
N: "ab4 a4@2 ~ c5 d5@3 ~@2 ab4 a4@2 ~ c5 ~@17", O: "~@25 f4 ~ gb4@4 ~, ~@25 a4@5 ~@2",
P: "a4@2 ~@3 c5@2 ~@2 d5@2 c5@2 ~ a4@2 ~@16, ~@2 b4 ~@13",
Q: "[~@21 [f4,f5] ~@5 ab4 a4@2 c5@2 g4@3 ~ a4@2 g4@2 ~@3 e4@5 ~@16, ~@27 f5@8 ~@29]/2", // F
R: "~@5 [b4,g5]@3 ~@3 f5@3 [b4,g5]@6 ~ bb5 b5@2 ~ d6 ~ e6@3 ~@2", S: "a5@2 ~ bb5@2 ~@27",
T: "~@25 gb5@2 g5 ~ bb5 d6 ~", U: "c6@3 ~@2 ab5@2 ~@2 a5@2 ~ bb5@2 f5 ~@17",
V: "~@27 g4@2 ~ d4 ~, ~@25 d5@2 ~@5, ~@13 a4 ~@2", W: "c4@2 ~ bb3 ~@2 b3@2 ~ d4 ~@4 d4 ~@17",
X: "~@21 e4 ~@3 e4 ~ ab4@2 e4 ab4@2", Y: "a4 ~@2 f4@2 ~@5 ab4 a4@2 ~ c5 ~@17, ~@3 a4 ~@28",
Z: "~@4 f4 gb4@4 ~ a4@4 b4 ~@6 d5@3 ~@8, ~@4 a4@5 ~@23", AA: "~@3 g4@2 ~ a4@2 ~ b4@2 ~ c5@2 g4 ~@7 e4@2 ~ g4 ~@6",
AB: "~@19 db4 ~@2 d4@2 ~ e4 ~ c4@2 ~@3", AC: "~ bb3@2 a3@2 g3@3 ~@24", AD: "~@27 c4 ~@2 f4@2",
AE: "~ db4@2 ~ b3 ~ ab4@2 ~@3 g4@2 ~ f4@2 e4@2 ~@2 d4@2 db4@2 ~ d4@2 e4@2 ~ gb4@2", AF: "a4@3 ~@29",
AG: "~@22 e4 gb4@2 g4 ~ e4@4 ~", AH: "~@3 c4@2 ~@2 b3 ~ d4@2 c4@2 ~ bb3 ~ b3@2 ~ d4 ~@2 c4@2 ~ g3 ~@6",
AI: "~@25 ab3 a3@2 ~ c4@2 ~", AJ: "~@4 b3 ~@7 ab3@2 b3@2 ~ d4@2 ~ gb4@2 ~ [g4,ab4] ~@2 a4 ~ ab4@2 e4@2",
AK: "~ gb4@2 ~ g4@2 a4@2 ~ b4@2 a4@3 ~@18", AL: "~@25 [a3,a4] ~@4 [g3,g4] ~",
AM: "a3@2 ~ bb3@2 ab3@3 ~ a3@2 c4@2 ~ a3@2 ~@16",
AN: "~@11 [g3,g4] ~@4 bb3 b3@2 ~ d4@2 f4@2 ~@3 eb4@3 f4@2, ~@2 g4 ~", AO: "a4@2 ~ bb4@2 ~@27",
AP: "~@9 g4 ~@6 db5@2 ~@6 e5 d5 db5 d5 ~@2 db5 ~, ~@15 b4@2 ~@12 d5@2 ~", AQ: "~ g5 ~@30",
AR: "~@25 f5 ~ gb5@4 ~, ~@25 a5@5 ~@2", AS: "a5@2 ~@3 c6@2 ~@2 d6@2 c6@2 ~ a5@2 ~@16, ~@2 b5 ~@13",
AT: "d5@2 ~ e5 ~ f5@2 ~@2 g5 a5@2 ~@2 c6 ~ b5@2 ~ a5@2 ~@3 b5@2 ~ d5@3 ~@2",
AU: "[c5,c6]@3 ~@2 eb5 e5@2 ~ g5 ~ e5@3 ~@18", AV: "~@9 b5@2 d6@2 ~ f6@2 ~ e6@2 ~ d6@2 db6@2 ~@6 a5 ~",
AW: "b5@4 ~@7 a5 bb5 ~ g5 ~@17, ~@13 a5@2 ~@17",
AX: "[~@27 a5@2 gb5 ~@2 c5@2 ~ a4@2 ~ g4@2 ~ e4@2 ~ a4@3 ~@17, ~@31 d5@2 ~@31]/2", AY: "~@25 c5@2 d5@2 ~ e5 ~",
AZ: "~@3 [c5,eb5,f5]@6 ~@2 c5@2 ~@19", BA: "~@16 g4@2 ~ f4@2 ~ e4@2 ~ d4@2 ~@3 c4 ~",
BB: "bb3@3 ~@2 bb3@3 ~ c4@2 ~@3 g3@2 ~ bb3@2 ~ c4 ~ bb3@2 ~@3 ab3@3 bb3@2",
BC: "g3 ab3@2 ~ b3 db4@3 ~@2 g3 ab3@2 ~ b3 ~@7 db4@2 ~ e4 ~@6", BD: "~@19 d4@2 ~@4 d4@2 c4@2 ~ d4@2",
BE: "b3@3 gb3 ~@3 a3@2 gb3 ~ g3@2 ~ ab3@2 ~@3 gb4 ~@5 a4@2 ~@3 d4@2, ~@9 d4 ~@6",
BF: "db4@3 e4@2 g4 ~@3 b4@2 db5 ~@2 b4@2 a4@2 ~ ab4@2 ~ g4@2 ~ f4 ~ gb4@3 a4 ~",
BG: "c5@3 ~@11 a4 ~@6 a4@2 ab4@2 g4 ~@6", BH: "~@11 a4@2 ~ bb4@2 c5@2 ~ d5 ~@6 g5@3 ~ a5@2",
BI: "g5 ~ e5 ~@2 d5@3 ~@5 e5@2 ~ g4@3 ~@3 f4@2 ~ c4 ~@6",
BJ: "~@5 b4@2 ~@4 b4@2 ~ a4@2 ab4@3 ~ gb4 ~ ab4@2 ~ b4@2 d5@2 ~ e5@2", BK: "db5 ~ a4 e4 ~@28",
BL: "~@25 g3 ab3@2 ~ b3@2 ~", BM: "d4@2 ~ f4 ~@7 g4@5 ~@16",
BN: "~@11 gb5@3 ab5@2 a5@2 ~ b5@3 db6@2 ~ d6@2 e6@2 ~ gb6@2", BO: "~@4 e6@2 d6@2 ~ db6@2 ~@2 db6@2 ~@17, ~@6 c6 ~@9",
BP: "[~@21 [d5,d6] ~@5 f5 gb5@2 a5@2 ~ c6@2 ~ bb5 ~ c6@2 ~ bb5@2 ~ a5@3 ~@17, ~@27 d6@8 ~@29]/2", // D
})).s("gm_piano").gain(0.39).pan(0.3)
// other · piano · "piano riffs" · soft notes
const piano_soft = note(`<
~ A ~@4 B C ~@4 D ~@2 E F ~ G ~@7 H ~@4 I ~@2 J ~@4 K ~ L ~@6 M ~ N O ~@3 P ~@3 Q ~@3 R ~@3 S T ~@2 U V ~@2 W ~@6 X
~@4 Y Z AA AB AC ~ AD ~@2 AE AF ~ G ~@3 P ~@12
>`.pickRestart({
A: "~ g5@2 ~@2 eb5 ~@26", B: "~@30 a5 ~", C: "~@16 b5 ~@12 e5@2 ~", D: "~@9 db4 ~@22", E: "~@18 c5 ~@13",
F: "~@9 c6 ~@22", G: "~@9 a4 ~@22", H: "~@31 e4", I: "~@11 a4@2 ~@17 b5 ~", J: "~@4 f5 ~@27",
K: "~@11 f4@3 ~@8 b3@3 ~@7", L: "~@23 b3 ~@8", M: "~@30 a3 ~", N: "~@14 d4 ~", O: "~@9 gb4 ~@22",
P: "~ d4@2 ~@2 bb3 ~@26", Q: "d4@3 ~@29", R: "~@25 d4@2 ~@5", S: "~@11 ab4@4 ~@8 d5 ~@5 e5 ~@2", T: "e5 ~ e5 ~@29",
U: "~@23 bb5 ~@8", V: "~@15 g5 ~@16", W: "~@26 gb5@3 ~@3", X: "~@14 d5 ~@17", Y: "~@27 b3@2 ~@3",
Z: "~@4 g3 ~@20 g3@2 ~@5", AA: "~@9 ab3 ~@22", AB: "~@11 c4 ~@4", AC: "~@5 a3 b3 ~@9 b3@2 ~@9 e4@2 ~@3",
AD: "~@4 a4@2 ~@5 gb4@3 ~@18", AE: "~@24 e5 ~@7", AF: "~@3 c5 ~@5 c5 ~@2 eb5 ~@19",
})).s("gm_piano").gain(0.19).pan(0.3)
// drums · kick
const kick = s("bd").struct(`<
A@3 B A B A B A B A B A B A B A@3 C A C A C A C A C A C A C A D A C A C A C A C A C A C A C A@3 C A C A C A C A C A C
A C A D A C A C A C A C A C A C A C A D A C A C A C A C A C A C A C A@3 B A B A B A B A B A B A B A@2 ~@2
>`.pickRestart({
A: "x", B: "x ~@6 x", C: "x ~@28 x ~@2", D: "x ~@10 x ~@20",
})).gain(0.25)
// drums · rim
const rim = s("rim").struct(`<
~@19 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~
A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~@20
>`.pickRestart({
A: "~@21 x ~@10",
})).gain(0.25)
// drums · snare
const snare = s("sd").struct(`<
A B A C A C A C A C A C A C A C A B D E D E D E D E D E D E D E D F D E D E D E D E D E D E D E D G D E D E D E D E D
E D E D E D F D E D E D E D E D E D E D E D F D E D E D E D E D E D E D E D G A C A C A C A C A C A C A C A H ~@2
>`.pickRestart({
A: "~@21 x ~@10", B: "~@7 x ~@17 x ~@2 x ~@3", C: "~@7 x ~@13 x ~@10", D: "~@9 x ~@6", E: "~@8 x ~@12 x ~@10",
F: "~@4 x ~@6 x ~@17 x ~@2", G: "~@7 x ~@10 x ~@10 x ~@2", H: "~@11 x ~@9 x ~@10",
})).gain(0.25)
// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
A B A ~ A ~ A ~ A ~ A ~ A ~ A ~ A B ~@15 C ~@15 D ~@15 C ~@15 C ~@15 E A ~ A ~ A ~ A ~ A ~ A ~ A ~ A F ~@2
>`.pickRestart({
A: "~@11 x ~@20", B: "~@18 x ~@2 x ~@10", C: "~@25 x ~@6", D: "~@21 x ~@3 x ~@6", E: "~@4 x ~@9 x ~@10 x ~@6",
F: "~@7 x ~@6 x ~@3 x ~@6 x ~@2 x ~@3",
})).gain(0.1)
// drums · hihat
const hihat = s("hh").struct(`<
A B@2 A B A B A B A B A B A B A B@2 C@15 D C@15 D C@15 D C@15 D C@15 D B A B A B A B A B A B A B A B@2 ~@2
>`.pickRestart({
A: "x ~@6 x ~@3 x ~@6 x ~@2 x ~@6 x ~@3", B: "x ~@6 x ~@3 x ~@9 x ~@10", C: "~@8 x ~@2 x ~@6 x ~@2 x ~@7 x ~@2",
D: "~@7 x ~@3 x ~@6 x ~@2 x ~@7 x ~@2",
})).gain(0.15)
// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
~ A@2 ~ A ~ A ~ A ~ A ~ A ~ A ~ A@2 ~@80 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@2 ~@2
>`.pickRestart({
A: "~@9 x ~@4 x ~",
})).gain(0.1)
// drums · crash
const crash = s("cr").struct("<x ~@115>").gain(0.15)
// drums · ride
const ride = s("rd").struct("<~@18 [x ~@10 x ~@9 x ~@10]!80 ~@18>").gain(0.35)
// drums · ride · soft notes
const ride_soft = s("rd").struct(`<
~@18 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
// … 9 more lines
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.