0:00/0:00
// A la francaise — Claude Bolling
// 55 bpm, 4/4, key G 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 121 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(55/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.
// other · piano · "A.PIANO 2"
const piano = note(`<
A B@2 C D E@2 F G@3 H@3 I@4 J K@3 L M@2 N O P@2 Q R@4 ~ S@6 T@8 U@4 V@6 ~@31 W@3 X Y@5 Z@3 AA AB AC@3 AD AE@2 AF AG@3
AH AI AJ@2 AK AL@2
>`.pickRestart({
A: "~@27 g2@4 ~", B: "[g3@4 g2@4 ~ g3@4 g2@4 g3@4 ~ g2@4 g3@4 a2@4 ~ d3@4 b2@4 ~ e3@4 c3@4 d3@4 ~ g3@4 d3@3]/2",
C: "~@2 g2@4 g3@4 ~ g2@4 g3@4 g2@4 ~ g3@4 g2@4", D: "~ g3@4 d3@4 g3@4 ~ c3@4 b2@4 a2@4 ~ b2@4 e3",
E: "[~ [f#3,g3] ~ a3 b3 g3 e3@2 d3@4 ~ g3@4 c3 d3 e3 f3 g3 ~ [g#3,a3] ~ a#3 b3@4 e3@4 a3 ~ e3 d3 e3 c3 b2 c3 d3 e3 ~ f#3 g3 g#3 a3 g3 f#3 e3 d3 e3 d3 ~ [b2,c#3] ~ c#3 d3 b2 e3 f#3 g3]/2", // Gmaj7 Amaj7 Bsus2
F: "g#3 a3 ~ [f#3,g3] ~ e3 d3 c#3 d3 e3 d3 c3 b2 ~ g2@4 ~ g3@4 g2@4 ~ g3@4, ~@14 a2 ~@17", // Gmaj7
G: "[g2@4 ~ g3@4 g2@4 g3@4 ~ c3@4 f#2@4 b2@4 ~ e2@4 a2@4 ~ d2@4 g2@4 b2@4 ~ c3@4 f#2@4 ~ b2@4 e2@4 a2@4 ~ d2@4 g2@2 b2@2 ~ c3@2 d3@2 g2 g3 f#3 ~ e3 d3 c3 b2]/3",
H: "[a2 g2@2 d2@2 g1@2 ~@3 d3@8 c#3@8 ~ b2@8 ~ a#2@8 ~ b2@8 ~ a2@8 g2@8 ~ f#2@4 ~ f#3@4 b2@8 ~ e3@4 g2@3]/3",
I: "[~@2 a2@8 d3@4 ~ f#2@4 g2@8 ~ g#2@8 ~ a2@4 a3@4 ~ a2@4 c#3@4 d3@4 ~ f3@4 g3@4 ~ g2@4 c3@4 e3@4 ~ f3@4 f2@4 ~ b2@4 d3@4 e3@4 ~ e2@4 a2@4 ~ d3@4 g2@4 ~ c3@4 f#2@3]/4",
J: "~ b2@4 ~ e2@4 g2@4 ~ a2@4 a#2@4 b2@4 ~ c3@4",
K: "[c#3@4 ~ d3@4 d#3@4 g#2@4 ~ d3@4 g2@4 ~ c3@4 f2@4 a#2@4 ~ d#2@4 a2@4 ~ d2@4 g2@4 g3@4 ~ g2@4 g3@4 ~ g2@4 g3@4 ~ g2@4 g3@4 a2@4 ~ d3@3]/3",
L: "~ b2@4 e3@4 ~ c3@4 d3@4 ~ g3@4 d3@4 g2@4 ~",
M: "[g3@4 g2@4 ~ g3@4 g2@4 g3@4 ~ g2@4 g3@4 ~ d3@4 g3@4 c3@4 ~ b2@4 a2@4 ~ b2@4 e3 f#3 g3 a3 b3 ~ g3]/2",
N: "e3@2 d3@4 g3@4 ~ c3 d3 e3 f3 g3 g#3 a3 a#3 b3@4 ~ e3@4 a3 e3 d3 ~",
O: "e3 c3 b2 c3 d3 e3 f#3 g3 g#3 a3 ~ g3 f#3 e3 d3 e3 d3 c#3 b2 c#3 d3 ~ b2 e3 f#3 g3 g#3 a3 g3 f#3 e3 d3",
P: "[~ c#3 d3 e3 d3 c3 b2 a2 g2@4 ~ g3@4 g2@4 g3@4 ~ g2@4 g3@4 ~ g2@4 g3@4 c3@4 ~ f#2@4 b2@4 ~ e2@4 a2@3]/2",
Q: "~ d2@4 ~ g2@4 b2@4 ~ c3@4 f#2@4 b2@4 ~ e2@4",
R: "[a2@4 ~ d2@4 g2@2 b2@2 c3@2 ~ d3@2 g2 g3 f#3 e3 d3 c3 b2 ~ a2 g#2@17 b3@7 ~ a3@7 ~ g3@7 ~ f#3@7 ~ e3@11 ~ e3@3 ~@2 d3@7 ~@28, ~@44 a2@31 ~ a2@15 ~@37]/4",
S: "[~@17 d4@3 ~ b3@3 ~ g3@3 ~ f#3@15 ~@5 b3@3 ~ g3@3 ~ e3@3 ~ d3@15 ~ c3@13 ~ c3 ~ b2@13 ~ b2 ~ a2@11 ~ a2@3 ~ g2@15 ~ f#2@15 ~ [b2,a3]@15 ~ [e2,g3]@19, ~@13 g2@15 ~@17 e2@15 ~@132]/6", // B7 Em
T: "[~ g3@3 ~ f#3 ~ e3 ~ d3 ~ c3 ~@9 [f#3,d4]@7 ~@9 [g3,e4]@7 ~ d3@15 ~ d2@15 ~@6 d4@3 ~ b3@3 g3@3 ~ f#3@15 ~@6 b3@3 ~ g3@3 e3@3 ~@2 d3@15 ~ c3@13 ~ c3 ~ b2@13 ~ b2 ~ a2@11 ~ a2@3 ~ g2@15 ~ f#2@15 ~ [b2,a3]@15 ~ [e2,g3]@18, ~@13 b2@15 ~ c3@15 ~@33 g2@15 ~@17 e2@15 ~@132]/8", // D C B7 Em
U: "[~@2 g3@3 ~ f#3 ~ e3 ~ d3 ~ c3 ~@9 [f#3,d4]@7 ~@9 [g3,e4]@7 ~ d3@15 ~ d2@13 [g2,g3]@11 ~ [g2,g3] ~ [f#2,f#3]@13 [e2,e3]@11 ~ [e2,e3] ~ [d2,d3]@12, ~@14 b2@15 ~ c3@15 ~@83]/4", // D C G F# E D
V: "[~@2 c2@11 [c2,c3] ~ [b1,b2]@13 ~ [a1,a2]@11 ~ [a1,a2] [g1,g2]@13 ~ [f#1,f#2]@13 [b1,b2]@13 ~ [e1,e2]@26 ~ [b1,b2]@13 ~ [c2,c3]@18 ~ [d2,d3]@22 ~@27, ~ c3@11 ~@180]/6", // C B A G F# B E B …
W: "[~@25 d4@3 ~ b3@3 ~ g3@3 ~ f#3@15 ~@5 b3@3 ~ g3@3 ~ e3@3 ~ d3@15 ~ c3@11, ~@21 g2@15 ~@17 e2@15 ~@28]/3",
X: "~@3 c3 ~ b2@13 ~ b2 ~ a2@11",
Y: "[~ a2@3 ~ g2@15 ~ f#2@15 ~ [b2,a3]@15 ~ [e2,g3]@15 ~ e2@3 ~ g3@3 ~ f#3 ~ e3 ~ d3 ~ c3 ~@9 [f#3,d4]@7 ~@9 [g3,e4]@7 ~ [c#2,c#3]@31 ~ [d2,d3]@11, ~@85 b2@15 ~ c3@15 ~@44]/5", // B7 Em D C C# D
Z: "[[b1,b2]@9 ~@4 c2@2 g2@2 c3 d3 e3@2 ~ f#3 g3 a3 b3 c4 d4 e4@8 ~ e4 d4 c#4 a#3 a3 g3 ~ f#3 e3 d3@8 ~ c#3@8 b2@8 ~ a#2@8 ~ b2@8 ~ a2@6]/3", // B
AA: "~@3 g2@8 f#2@4 ~ f#3@4 b2@8 ~ e3@3", AB: "~ g2@4 ~ a2@8 ~ d3@4 f#2@4 g2@8 ~",
AC: "[g#2@8 ~ a2@4 a3@4 ~ a2@4 c#3@4 ~ d3@4 f3@4 g3@4 ~ g2@4 c3@4 ~ e3@4 f3@4 f2@4 ~ b2@4 d3@4 ~ e3@4 e2@4 a2@4 ~ d3@4 g2@4 ~ c3@3]/3",
AD: "~ f#2@4 b2@4 ~ e2@4 g2@4 ~ a2@4 a#2@4 b2@4 ~",
AE: "[c3@4 c#3@4 ~ d3@4 d#3@4 g#2@4 ~ d3@4 g2@4 ~ c3@4 f2@4 a#2@4 ~ d#2@4 a2@4 ~ d2@4 g2@4 g3@3]/2",
AF: "~@2 g2@4 g3@4 ~ g2@4 g3@4 g2@4 ~ g3@4 a2@4",
AG: "[~ d3@4 b2@4 e3@4 ~ c3@4 d3@4 ~ g3@4 d3@4 g2@4 ~ g3@4 g2@4 ~ g3@4 g2@4 g3@4 ~ g2@4 g3@4 ~ d3@4 g3@4 c3@4 ~ b2@4 a2@4 ~ b2@4 e3 f#3 g3]/3",
AH: "a3 b3 g3 ~ e3@2 d3@4 g3@4 ~ c3 d3 e3 f3 g3 g#3 a3 a#3 b3@4 ~ e3@4",
AI: "a3 e3 d3 e3 ~ c3 b2 c3 d3 e3 f#3 g3 g#3 a3 g3 ~ f#3 e3 d3 e3 d3 c#3 b2 c#3 d3 b2 ~ e3 f#3 g3 g#3 a3",
AJ: "[g3 f#3 e3 d3 c#3 ~ d3 e3 d3 c3 b2 a2 g2@4 ~ g3@4 g2@4 g3@4 ~ g2@4 g3@4 ~ g2@4 g3@4 c3@4 ~ f#2@4 b2@4 ~ e2@3]/2",
AK: "~ a2@4 d2@4 ~ g2@4 b2@4 ~ c3@4 f#2@4 b2@4 ~",
AL: "[e2@4 a2@4 ~ d2@4 g2@2 b2@2 c3@2 ~ d3@2 g2 g3 f#3 e3 d3 c3 b2 a2 ~ g2@2 d2@2 g1@4 ~@25]/2",
})).s("gm_piano").gain(0.12).pan(0.4)
// other · piano · "A.PIANO 2" · soft notes
const piano_soft = note("<~@33 A@3 ~@22 B C D E F G H I J K L M N O P Q R S T@8 U@7 ~@30>".pickRestart({
A: "[~@5 c3@7 ~ b2@15 ~ e2@15 ~ a2@15 ~ d2@15 ~@20]/3", B: "~@18 [g2,d3]@7 ~ [g3,b3,d4]@6",
C: "~@2 [f#3,a3,d4]@7 ~ [f#3,a3,d4]@7 ~ [e3,g3,b3]@7 ~ [e3,g3,b3]@6", // D Em
D: "~@2 [d3,g3,b3]@7 ~ [d3,g3,b3]@7 ~ [c3,e3,g3]@7 ~ [c3,e3,g3]@6", // G C
E: "~@2 [b2,e3,g3]@7 ~ [b2,e3,g3]@7 ~ [a2,c3,e3]@7 ~ [a2,c3,e3]@6", // Em Am
F: "~@2 [g2,c3,e3]@7 ~ [g2,c3,e3]@7 ~ [f#2,e3,a3]@7 ~ [f#2,e3,a3]@6", // C F#m7
G: "~@2 [b2,d#3,a3]@7 ~ [b2,d#3,a3]@7 ~ a3 ~ f#3 ~ g3 ~ a3 ~@7, ~@9 [e2,b2]@7", // B7 E5
H: "~@2 [e3,g3,b3]@15 ~ [b2,f#3,d4]@7 ~ [b2,f#3,d4]@6", // Em Bm
I: "~@2 [c3,g3,e4]@7 ~ [c3,g3,e4]@7 ~ [d3,g3,b3,d4]@7 ~@2 [d3,g3,b3,d4]@5", // C G
J: "~@3 [d3,f#3,a3,d4]@7 ~ [d3,f#3,a3,d4]@7 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@5", // D G
K: "~@3 [f#3,a3,d4]@7 ~ [f#3,a3,d4]@7 ~ [e3,g3,b3]@7 ~ [e3,g3,b3]@5", // D Em
L: "~@3 [d3,g3,b3]@7 ~ [d3,g3,b3]@7 ~@9 [g3,e4]@5, ~@19 c3@13", M: "~@11 [g3,e4]@7 ~@9 [e3,c4]@5, ~@3 b2@15 ~ a2@13",
N: "~@11 [e3,c4]@7 ~@9 [e3,a3]@5, ~@3 g2@15 ~ f#2@13", O: "~@11 [d#3,a3]@7 ~@9 [b2,g3]@5, ~@3 b2@15 ~ e2@13",
P: "~@11 [b2,g3]@7 ~ [b2,f#3,b3]@13, ~@3 e2@15 ~@14", Q: "~@3 [c3,e3,b3]@15 ~ [d3,g3,b3]@13",
R: "~@3 [d3,f#3,c4]@15 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@5", // D7 G
S: "~@3 [f#3,a3,d4]@7 ~ [f#3,a3,d4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@5", // D Em
T: "[~@4 [g3,b3,d4,e4]@7 [g3,b3,d4,e4]@7 ~@2 [g3,c4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,b3,c4,e4]@7 ~ [g3,b3,c4,e4]@7 [a3,c4,e4]@7 ~@2 [a3,c4,e4]@7 ~ [g3,a3,c4,e4]@7 ~ [g3,a3,c4,e4]@7 ~ [f#3,a3,c#4,e4]@7 ~ [f#3,a3,c#4,e4]@7 ~ [f#3,a#3,b3,d#4]@7 ~ [f#3,a#3,b3,d#4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@7 ~ [f#3,b3,d4]@7 ~ [f#3,b3,d4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~ [f#3,a3,c4,d4]@7 ~ [f#3,a3,c4,d4]@7 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~ [f#3,a3,d4]@7 ~ [f#3,a3,d4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@4]/8", // Em7 C Cmaj7 Am Am7 F#m7 Bmaj7 Em …
U: "[~@4 [g3,b3,d4,e4]@7 ~ [g3,b3,d4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,b3,c4,e4]@7 ~ [g3,b3,c4,e4]@7 ~ [a3,c4,e4]@7 ~ [a3,c4,e4]@7 ~ [g3,a3,c4,e4]@7 ~ [g3,a3,c4,e4]@7 ~ [f#3,a3,c#4,e4]@7 ~ [f#3,a3,c#4,e4]@7 ~ [f#3,a#3,b3,d#4]@7 ~ [f#3,a#3,b3,d#4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@7 ~@2 [g3,b3,e4]@7 [g3,b3,e4]@7 ~@2 [f#3,b3,d4]@7 ~ [f#3,b3,d4]@7 [g3,c4,e4]@7 ~@2 [g3,c4,e4]@7 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~ [f#3,a3,c4,d4]@15 ~@12]/7", // Em7 C Cmaj7 Am Am7 F#m7 Bmaj7 Em …
})).s("gm_piano").gain(0.06).pan(0.4)
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
~ A@3 B@2 C@2 D@2 E F@3 G@4 H I@4 J@2 K L@4 M@2 ~@3 N@3 O@8 P@7 Q@6 R S T U V W X Y Z AA AB AC AD AE AF Y Z AG@8 AH@4
AI@5 AJ AK@5 AL AM@2 AN AO AP@3 AQ AR@2 AS AT@4 AU@4 AV@2
>`.pickRestart({
A: "[~@31 a1@2 a1@2 d2@2 d2@2 b1@2 b1@2 ~ e2@2 e2@2 c2@2 c2@2 d2@2 ~ d2@2 g2@2 e2@2 d2@2 b1@2 ~ g1@8 ~@22]/3",
B: "[~@5 d2@2 d2@2 g2@2 g2@2 ~ c3@2 c3@2 b2@2 b2@2 a2@2 ~ a2@2 b2@2 b2@2 e2@2 g2@2 ~ b2@2 e2@2 ~@24]/2",
C: "[~@11 e2@2 ~ e2@2 a2@2 a2@2 d2@2 d2@2 b1@2 ~ b1@2 e2@2 e2@2 a2@2 a2@2 ~ d2@2 d2@2 d2@2 d2@2 ~ g1@8 ~@9]/2",
D: "[~@18 c3@2 c3@2 f#2@2 f#2@2 b2@2 ~ b2@2 e2@2 e2@2 a2@2 a2@2 ~ d2@2 d2@2 g2@2 g2@2 b2@2 ~ b2@2 c3@2 c3@2 f#2@2 f#2@2 ~ b2@2]/2",
E: "b2@2 e2@2 e2@2 ~ a2@2 a2@2 d2@2 d2@2 g2@2 ~ b2@2 c3@2 d3@2 g2@2 ~@3 d3@2 ~",
F: "[~ g2@2 d2@2 g1@2 ~@3 d3@8 c#3@8 ~ b2@8 ~ a#2@8 ~ b2@8 ~ a2@8 g2@8 ~ f#2@4 ~ f#2@4 b2@8 ~ e3@4 g2@3]/3",
G: "[~@2 a2@8 d3@4 ~ f#2@4 g2@8 ~ g#2@8 ~ a2@4 a2@4 ~ a1@4 c#2@4 d2@4 ~ f2@4 g2@4 ~ g1@4 c2@4 e2@4 ~ f2@4 f1@4 ~ b1@4 d2@4 e2@4 ~ e2@4 a2@4 ~ d3@4 g2@4 ~ c3@4 f#2@3]/4",
H: "~ b2@4 ~ e2@4 g2@4 ~ a2@4 a#2@4 b2@4 ~ c3@4",
I: "[c#3@4 ~ d3@4 d#3@4 g#2@4 ~ d3@4 g2@4 ~ c3@4 f2@4 a#2@4 ~ d#2@4 a2@4 ~ d2@4 g1@4 g2@4 ~ g1@4 g2@4 ~ g1@4 g2@4 ~ g1@4 g2@4 a1@2 a1@2 ~ d2@2 d2@2 b1@2 b1@2 e2@2 ~ e2@2 c2@2 c2@2 d2@2 d2@2 ~ g2@2 e2@2 d2@2 b1@2 g1@4 ~]/4",
J: "[g2@4 g1@4 ~ g2@4 g1@4 g2@4 ~ g1@4 g2@4 ~ d2@2 d2@2 g2@2 g2@2 c3@2 ~ c3@2 b2@2 b2@2 a2@2 a2@2 ~ b2@2 b2@2 e2@2 g2@2 b2@2 ~]/2",
K: "e2 g1@4 ~@11",
L: "[~@5 e2@2 e2@2 a2@2 ~ a2@2 d2@2 d2@2 b1@2 b1@2 ~ e2@2 e2@2 a2@2 a2@2 d2@2 ~ d2@2 d2@2 d2@2 g1@4 ~ g2@4 g1@4 g2@4 ~ g1@4 g2@4 ~ g1@4 g2@4 c3@2 ~ c3@2 f#2@2 f#2@2 b2@2 b2@2 ~ e2@2 e2@2 a2@2 a2@2 d2@2 ~ d2@2 g2@2 g2@2 b2@2 b2@2 ~ c3@2 c3@2 f#2@2 f#2@2 b2@2 ~ b2@2 e2@2 e2@2]/4",
M: "[a2@2 a2@2 ~ d2@2 d2@2 g2@2 b2@2 c3@2 ~ d3@2 ~ g2 f#2 e2 d2 c2 b1 ~ a1 g#1@17 ~@20]/2",
N: "[~@13 g2@15 ~ f#2@15 ~ e2@15 ~ d2@15 ~ c2@13 ~ c2 ~ b1@3]/3",
O: "[~@11 b1 ~ a1@11 ~ a2@3 ~ g2@15 ~ f#2@15 ~ b1@15 ~ e2@15 ~ e2@15 ~ b1@15 ~ c2@15 ~ d2@15 ~ d2@15 ~ g2@15 ~ f#2@15 ~ e2@15 ~@2 d2@15 ~ c2@13 ~ c2 ~ b1@2]/8",
P: "[~@12 b1 ~ a1@11 ~ a2@3 ~ g2@15 ~ f#2@15 ~ b1@15 ~ e2@15 ~ e2@15 ~ b1@15 ~ c2@15 ~ d2@15 ~ d2@13 g2@14 f#2@13 e2@14 d2@12]/7",
Q: "[~ c2@14 b1@14 a1@13 g2@14 f#2@13 b1@14 e2@26 ~ b1@14 c2@19 d2@34 ~ g2@7 ~ g2@6]/6",
R: "~@2 f#2@7 ~ f#2@7 ~ e2@7 ~ e2@6", S: "~@2 d2@7 ~ d2@7 ~ c2@7 ~ c2@6", T: "~@2 b1@7 ~ b1@7 ~ a1@7 ~ a1@6",
U: "~@2 g2@7 ~ g2@7 ~ f#2@7 ~ f#2@6", V: "~@2 b1@7 ~ b1@7 ~ e2@7 ~ b2@6", W: "~@2 g2@7 ~ e2@7 ~ b1@7 ~ b1@6",
X: "~@2 c2@7 ~ c2@7 ~ d2@7 ~@2 g2@5", Y: "~@3 a2@7 ~ d2@7 ~ g2@7 ~ g2@5", Z: "~@3 f#2@7 ~ f#2@7 ~ e2@7 ~ e2@5",
AA: "~@3 d2@7 ~ d2@7 ~ c2@7 ~ c2@5", AB: "~@3 b1@7 ~ b1@7 ~ a1@7 ~ a2@5", AC: "~@3 g2@7 ~ g2@7 ~ f#2@7 ~ f#2@5",
AD: "~@3 b1@7 ~ b1@7 ~ e2@7 ~ b2@5", AE: "~@3 g2@7 ~ e2@7 ~ b1@7 ~ b1@5", AF: "~@3 c2@7 ~ c2@7 ~ d2@7 ~ g2@5",
AG: "[~@4 d2@7 d2@7 ~@2 c2@7 ~ c2@7 ~ b1@7 ~ b1@7 a1@7 ~@2 a1@7 ~ g2@7 ~ g2@7 ~ f#2@7 ~ f#2@7 ~ b1@7 ~ b1@7 ~ e2@7 ~ b2@7 ~ g2@7 ~ e2@7 ~ b1@7 ~ b1@7 ~ c2@7 ~ c2@7 ~ d2@7 ~ g2@7 ~ a2@7 ~ d2@7 ~ g2@7 ~ g2@7 ~ f#2@7 ~ f#2@7 ~ e2@7 ~ e2@4]/8",
AH: "[~@4 d2@7 ~ d2@7 ~ c2@7 ~ c2@7 ~ b1@7 ~ b1@7 ~ a1@7 ~ a1@7 ~ g2@7 ~ g2@7 ~ f#2@7 ~ f#2@7 ~ b1@7 ~ b1@7 ~ e2@7 ~ b2@4]/4",
AI: "[~@5 g2@7 e2@7 ~@2 b1@7 ~ b1@7 c2@7 ~@2 c2@7 ~ d2@7 ~ g2@7 ~ a2@7 ~ d2@7 ~ g2@15 ~ f#2@15 ~ e2@15 ~ d2@15 ~ c2@11]/5",
AJ: "~@3 c2 ~ b1@13 ~ b1 ~ a1@11",
AK: "[~ a2@3 ~ g2@15 ~ f#2@15 ~ b1@15 ~ e2@15 ~ e2@15 ~ b1@15 ~ c2@15 ~ c#2@31 ~ d2@10 ~]/5",
AL: "b1@9 ~@4 c2@2 g2@13 ~@4", AM: "[~@14 d3@8 ~ c#3@8 b2@8 ~ a#2@8 ~ b2@8 ~ a2@6]/2",
AN: "~@3 g2@8 f#2@4 ~ f#2@4 b2@8 ~ e3@3", AO: "~ g2@4 ~ a2@4 a2@4 ~ d3@4 f#2@4 g2@8 ~",
AP: "[g#2@8 ~ a1@4 a2@4 ~ a1@4 c#2@4 ~ d2@4 f2@4 g2@4 ~ g1@4 c2@4 ~ e2@4 f2@4 f1@4 ~ b1@4 d2@4 ~ e2@4 e2@4 a2@4 ~ d3@4 g2@4 ~ c3@3]/3",
AQ: "~ f#2@4 b2@4 ~ e2@4 g2@4 ~ a2@4 a#2@4 b2@4 ~",
AR: "[c3@4 c#3@4 ~ d3@4 d#3@4 g#2@4 ~ d3@4 g2@4 ~ c3@4 f2@4 a#2@4 ~ d#2@4 a2@4 ~ d2@4 g1@4 g2@3]/2",
AS: "~@2 g1@4 g2@4 ~ g1@4 g2@4 g1@4 ~ g2@4 a1@2 a1@2",
AT: "[~ d2@2 d2@2 b1@2 b1@2 e2@2 ~ e2@2 c2@2 c2@2 d2@2 d2@2 ~ g2@2 e2@2 d2@2 b1@2 g1@4 ~ g2@4 g1@4 ~ g2@4 g1@4 g2@4 ~ g1@4 g2@4 ~ d2@2 d2@2 g2@2 g2@2 c3@2 ~ c3@2 b2@2 b2@2 a2@2 a2@2 ~ b2@2 b2@2 e2@2 g2@2 b2@2 ~ e2@2 g1@8 ~@18]/4",
AU: "[~@9 e2@2 e2@2 a2@2 ~ a2@2 d2@2 d2@2 b1@2 b1@2 ~ e2@2 e2@2 a2@2 a2@2 d2@2 ~ d2@2 d2@2 d2@2 g1@4 ~ g2@4 g1@4 g2@4 ~ g1@4 g2@4 ~ g1@4 g2@4 c3@2 ~ c3@2 f#2@2 f#2@2 b2@2 b2@2 ~ e2@2 e2@2 a2@2 a2@2 d2@2 ~ d2@2 g2@2 g2@2 b2@2 b2@2 ~ c3@2 c3@2 f#2@2 f#2@2 b2@2 ~ b2@2]/4",
AV: "[e2@2 e2@2 a2@2 a2@2 ~ d2@2 d2@2 g2@2 b2@2 c3@2 ~ d3@2 ~ g2 f#2 e2 d2 c2 b1 a1 ~ g2@2 d2 ~ g1@4 ~@25]/2",
})).s("gm_acoustic_bass").gain(0.1).pan(0.2)
// chords · electric guitar jazz · "A.GUITAR"
const electric_guitar_jazz = note("<~@58 A B C@3 D@2 E F ~@7 G H I@8 J@7 ~@9 K@2 L@2 M@3 N O@2 ~@11>".pickRestart({
A: "~@9 [g3,b3,d4]@7", B: "~@2 [f#3,a3,d4]@15 ~ [g3,b3,e4]@14",
C: "[~@2 [g3,b3,d4]@15 ~ [g3,c4,e4]@31 ~ [a3,c4,e4]@31 ~ [f#3,a3,c#4,e4]@14]/3", // G C Am F#m7
D: "[~@2 [f#3,a#3,b3,d#4]@15 ~ [g3,b3,e4]@31 ~ [f#3,b3,d4]@14]/2", E: "~@2 [g3,c4,e4]@15 ~@2 [g3,b3,d4]@13",
F: "~@3 [f#3,a3,c4,d4]@15 ~@14", G: "~@19 [g3,b3,d4]@7 ~ [g3,b3,d4]@5",
H: "~@3 [f#3,a3,d4]@7 ~ [f#3,a3,d4]@7 ~ [g3,b3,e4]@7 ~@2 g3@4, ~@27 [b3,e4]@5", // D Em E5
I: "[~@4 [g3,b3,d4,e4]@7 ~ [g3,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,b3,c4,e4]@7 ~ [g3,b3,c4,e4]@7 [a3,c4,e4]@7 ~@2 [a3,c4,e4]@7 ~ [g3,a3,c4,e4]@7 ~ [g3,a3,c4,e4]@7 ~ [f#3,a3,c#4,e4]@7 ~ [f#3,a3,c#4,e4]@7 ~ [f#3,a#3,b3,d#4]@7 ~ [f#3,a#3,b3,d#4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@7 ~ [f#3,b3,d4]@7 ~ [f#3,b3,d4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~ [f#3,a3,c4,d4]@7 ~ [f#3,a3,c4,d4]@7 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~ [f#3,a3,d4]@7 ~ [f#3,a3,d4]@7 ~ [g3,b3,e4]@7 ~ [g3,b3,e4]@4, ~@11 [b3,d4]@7 ~@238]/8", // Em7 C Cmaj7 Am Am7 F#m7 Bmaj7 Em …
J: "[~@4 [g3,b3,d4,e4]@7 ~ [g3,b3,d4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@7 ~ [g3,b3,c4,e4]@7 ~ [g3,b3,c4,e4]@7 ~ [a3,c4,e4]@7 ~ [a3,c4,e4]@7 ~@2 [g3,e4]@7 [g3,a3,c4,e4]@7 ~@2 [f#3,e4]@7 ~ [f#3,c#4,e4]@7 [f#3,a#3,b3,d#4]@7 ~@2 [f#3,a#3,b3,d#4]@7 [g3,b3,e4]@7 ~@2 g3@7 ~ [g3,b3,e4]@7 [g3,b3,e4]@7 ~@2 [f#3,b3,d4]@7 ~ [f#3,b3,d4]@7 ~ g3@7 ~ [g3,c4,e4]@7 ~ [g3,b3,d4]@7 ~ [g3,b3,d4]@7 ~ [f#3,a3,c4,d4]@7 ~ [f#3,a3,c4,d4]@7 ~@12, ~@68 [a3,c4]@7 ~@9 [a3,c#4]@7 ~ a3@7 ~@25 [b3,e4]@7 ~@33 [c4,e4]@7 ~@53]/7", // Em7 C Cmaj7 Am C Am7 F#7 Bmaj7 …
K: "[~@14 [f#3,a3,d4]@8 ~ [a3,c#4,e4]@8 [f#3,b3,d4]@8 ~ [f#3,a#3,c#4]@8 ~ [f#3,b3,d4]@8 ~ [a3,c#4,e4]@6]/2", // D A Bm F# Bm A
L: "[~@3 [g3,b3,d4]@8 [f#3,a#3,c#4]@8 ~ [f#3,b3,d#4]@8 ~ [g3,b3,e4]@8 ~ [a3,c#4,e4]@8 ~ [f#3,a3,d4]@8 [g3,b3,d4]@8 ~]/2", // G F# B Em A D G
M: "[[g#3,b3,e4]@8 ~ [a3,c#4,e4]@8 ~ [g3,a3,c#4,e4]@8 ~ [f3,a3,d4]@8 [g3,b3,d4,f4]@8 ~ [g3,c4,e4]@8 ~ [a3,c4,f4]@8 ~ [f#3,a3,b3,d4]@8 ~ [g#3,d4,e4]@8 [a3,c4,e4]@4 ~ [f#3,a3,c4,d4]@4 [g3,b3,d4,f#4]@4 ~ [g3,b3,c4,e4]@3]/3", // E A A7 Dm G7 C F Bm7 …
N: "~ [g#3,c4,d#4,f4]@4 [f#3,a3,b3,d#4]@4 ~ [g3,b3,e4]@8 ~ [a3,c4,e4]@4 [g#3,a#3,d4]@4 [f#3,b3,d4]@4 ~", // Fm7 B7 Em Am A#7 Bm
O: "[[g3,c4,e4]@4 [g3,a3,c#4,e4]@4 ~ [f3,a3,d4]@4 [g3,a#3,d#4]@4 [g#3,c4,d#4]@4 ~ [f3,a3,c4,d4]@4 [g3,b3,d4,f4]@4 ~ [g3,a#3,c4,d#4]@4 [a3,c4,d#4,f4]@4 [a#3,d4,f4]@4 ~ [g3,a#3,d#4]@4 [g#3,a3,c#4,e4]@4 ~ [f#3,a3,c4,d4]@4 ~@7]/2", // C A7 Dm D# G# Dm7 G7 Cm7 …
})).s("gm_electric_guitar_jazz").gain(0.08).pan(0.1)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B C D E F G H I J K L M N O P Q R S T U V A W X Y Z AA AB AC ~@27 AD AE@6 AF AG@10 AH AI AJ AK@7 AL AM AN AO AP
AQ@6 AR ~ AS AT AU AV AB AW I J AX AY AZ BA BB ~ BC BD BE BF BG AX BH BI
>`.pickRestart({
A: "~@31 x", B: "~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2", C: "x!3 ~@29",
D: "~@5 x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x", E: "~ x!6 ~ x ~@23",
F: "~@11 x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x", G: "~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~@16",
H: "~@18 x ~ x ~ x ~ x ~ x!2 ~ x ~ x", I: "~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!3 ~",
J: "x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x",
K: "~ x ~ x ~ x ~@4 x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!2",
L: "x ~ x ~ x ~ x ~ x ~@2 x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x!2",
M: "~ x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x ~ x ~ x ~ x ~ x",
N: "~ x!2 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~",
O: "x ~@2 x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x",
P: "~ x ~ x!2 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~",
Q: "x ~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x",
R: "~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x!2 ~ x!3 ~ x ~",
S: "x ~ x ~ x!2 ~ x ~ x ~ x ~ x!2 ~ x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x",
T: "~ x ~ x!2 ~ x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~@10", U: "~@24 x ~ x ~ x!2 ~ x",
V: "~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@4",
W: "~ x ~ x ~ x ~ x!2 ~ x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x!5 ~ x", X: "x!2 ~@14",
Y: "~@5 x ~ x ~ x!2 ~ x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x", Z: "~@2 x!3 ~ x ~ x ~@23",
AA: "~@12 x ~ x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x", AB: "~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~",
AC: "x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!9 ~ x!2 ~@4", AD: "~@9 x ~@3 x ~@2", AE: "x!2 ~@3 x ~@2 x!2 ~@3 x ~@2",
AF: "x ~ x ~@7 x ~@5 x ~@2 x ~@7 x ~@4", AG: "~ x ~ x ~@7 x ~@5 x ~ x ~@7 x ~@4",
AH: "~ x ~@2 x ~@6 x ~@5 x ~@2 x ~@7 x ~@3", AI: "~@2 x ~ x ~@7 x ~@5 x!2 ~@8 x ~@3",
AJ: "~ x ~@2 x ~@7 x ~@4 x ~@2 x ~@7 x ~@3", AK: "~ x!2 ~@3 x ~@2 x!2 ~@3 x ~",
AL: "~@2 x ~ x ~@7 x ~@5 x ~ x ~@8 x ~@2", AM: "~@2 x ~ x ~@8 x ~@4 x ~ x ~@7 x ~@3",
AN: "~@2 x ~@2 x ~@6 x ~@5 x ~@2 x ~@7 x ~@2", AO: "~@3 x!2 ~@8 x ~@5 x ~ x ~@7 x ~@2",
AP: "~@3 x ~ x ~@7 x ~@5 x ~ x ~@7 x ~@2", AQ: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", AR: "~@5 x ~@7 x ~@18", AS: "~@15 x",
AT: "~ x ~ x ~@10 x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x",
AU: "~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~",
AV: "x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x",
AW: "x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x",
AX: "~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!2",
AY: "x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2",
AZ: "~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~@6", BA: "~@14 x!2",
BB: "x!2 ~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x",
BC: "~@3 x ~ x ~ x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x!3", BD: "x!3 ~ x ~ x ~@25",
BE: "~@9 x ~ x ~ x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x ~ x", BF: "~ x ~ x ~@2 x!3 ~ x ~ x ~@19",
BG: "~@15 x ~@2 x!3 ~ x ~ x ~ x ~ x!2 ~ x", BH: "x ~ x ~ x ~ x ~ x!2 ~ x ~ x ~ x ~ x ~@2 x!9 ~ x!2",
BI: "~ x ~ x ~@28",
})).gain(0.09).pan(0.1)
// drums · open hat
const open_hat = s("oh").struct("<~@30 [~@27 x ~@4] ~@90>").gain(0.16).pan(0.1)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@51
[~@11 x ~@11 x ~ x ~@6]
[~@3 x ~@5 x!2 ~@5]
[~@2 x ~@10 x ~ x ~@13 x ~@2]
[~@9 x!2 ~@13 x ~@7]
~@42
[~@21 x ~@10]
~@23
>`).gain(0.08).pan(0.1)
// drums · crash
const crash = s("cr").struct(`<
~@11 A B C ~@6 D E F G ~@3 H I ~ J ~@66 K ~@2 L M E ~@6 N O P H ~@3 Q R ~@3
>`.pickRestart({
A: "~@14 x ~@8 x ~@8", B: "x ~@8 x ~@7 x ~@8 x ~@5", C: "~@3 x ~@8 x ~@19", D: "~@21 x ~@8 x ~",
E: "~@7 x ~@8 x ~@15", F: "~@7 x", G: "~@4 x ~@8 x ~@8 x ~@9", H: "~@8 x ~@8 x ~@8 x ~@5", I: "~@3 x ~@28",
J: "~@27 x ~@4", K: "~@21 x ~@10", L: "~@5 x ~@12 x ~@8 x ~@4", M: "~@4 x ~@8 x ~@7 x ~@8 x ~", N: "~@25 x ~@6",
O: "~@2 x ~@8 x ~@7 x ~@12", P: "~@31 x", Q: "~@12 x ~@8 x ~@8 x ~", R: "~@7 x ~@24",
// … 15 more lines
More by Claude Bolling
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.