0:00/0:00
// Vendo casa — Battisti
// 68 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 75 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(68/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 steel
const acoustic_guitar_steel = note(`<
~ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN Q R S T U V W X Y Z AA
AB AC AD AO AP@2 AQ AR@8 AS@7 ~
>`.pickRestart({
A: "~@3 a3, a2@3 e4 [d4,f#4]@4, ~@2 g3@5 [d2,d3]@9, ~@4 c4@3 a3@4 ~@5", // D
B: "~@3 b3 ~@2 b3@2, [g2,d4] [e2,d4,g4], b3@3 ~@5, ~ g3@3 ~ e3@3, ~ a3 ~@2", // G5 Em7
C: "~@3 e4 ~@2 d4@2, a2 [d3,f#4], e4@3 ~@5, c4!2 ~@2, ~ g3@3 ~ a3@3", // D
D: "~@13 b3@3, [g2,d4]@8 ~@3 a3@5, b3@6 b3@7 ~@3, ~ g3@3 [e3,d4]@4, ~@4 a3@4 ~@2 g3@2 g3@3 ~", // G5 E7
E: "g3 ~@5 e4@2 ~@6 a4@2, a2 [d3,f#4], e4@3 ~@3 d4@2, c4!2 ~@2, ~ g3@3 ~ a3@3", // D
F: "~@3 b3!2 ~ d4@2, g2 ~, b3@3 ~ d4@2 ~@2, d4@2 [a3,d4]@2 ~ b3@3, ~ g3@3 [e3,g4]@4", // D5 Em
G: "g3 ~@3 c4@4 ~@6 f#4@2, [a2,e4] d3, c4@2 ~@2 f#4@3 ~, ~ g3@3 ~ a3@3, ~@3 d4", // A5
H: "~@6 a3 b3, [g2,d4]@8 [e2,e3,d4]@7 ~, b3@3 b3@4 ~, ~@2 g3@6 ~@2 g3@5 ~, ~ a3 ~@2", // G5 E7
I: "[a2,g3,c4,e4] [d3,a3,d4,f#4]", // Am7 D
J: "g2@2 ~@2 g3@2 ~ e2 ~@2 g3@2 g3@2 g3@2, ~ g2@3 ~@4, ~ [b3,d4] ~ [b3,e4], ~@3 g3 e3@4", // Bm E5
K: "~@2 g3@2 [g3,c4,e4]@2 g3 ~@3 a3@2 a3@2 a3@2, a2@7 d2@9, ~ d3, ~@3 [d4,f#4]", // C D
L: "~@2 g3@2 g3@2 ~ g2 ~@2 g3@2 g3@2 g3@2, g2@3 g3 e3@4, ~ [b3,d4] ~ [b3,e4]", // Bm E5
M: "~@2 g3@2 g3@2 ~ a2 ~@7 d3, a2@6 g3@2 d3@7 ~, ~@2 [c4,e4]@2 ~ a3@2 a3, ~@3 [d4,f#4]", // C D
N: "~ g3!3 ~ g3!3, g2@2 ~ [b3,e4], ~ [b3,d4] e3@2", // E5 Bm
O: "~@2 g3@2 g3@2 g3@2 ~@7 d3, a2@8 d3@7 ~, ~@2 [c4,e4]@2 ~ a3@2 a3, ~@3 [d4,f#4]", // C D
P: "~@4 [b3,d4]@2 g3 g2 ~@2 g3@2 [g3,b3,e4]@2 g3 ~, g2@7 ~@9, ~@2 g3@4 ~@2 e3@7 ~", Q: "[a2,g3,c4,e4] ~@7",
R: "g2 ~@3 [g3,b3,d4]@2 ~ g2 e3@2 g3 ~ [g3,b3,e4]@2 ~ e3, ~@2 g2@4 g3@2 ~@3 e3@3 g3@2", // G Em
S: "a2 ~@3 g3@2 ~ a2 d3@2 a3 ~@4 d3, ~@2 a2@4 g3@2 ~@3 d3@4 ~, ~ [c4,e4] ~ [d4,f#4], ~@6 a3!2, ~@13 a4@3", // C D
T: "g2 ~@3 [b3,d4]@2 ~ g2 e3@2 g3 ~@4 b3, ~ g2@2 ~@3 [g3,b3] g3, ~@4 g3 ~ g3@2 ~@3 e3@4 ~, ~@13 e4@2 ~", // Bm G
U: "a2 ~@3 g3@2 ~ a2 d3@2 ~@5 d3, ~@2 a2@4 g3@2 ~@2 d3@5 ~, ~ [c4,e4] ~ [d4,f#4], ~@6 a3!2, ~@13 a4@3", // C D
V: "g2@2 ~@2 [g3,b3,d4]@2 ~ g2 e3@2 g3 ~ b3 ~ g3 b3, ~@2 g2@4 g3@2 ~@3 e3@4 ~, ~@12 [g3,e4]@3 ~, ~@13 b3@2 ~", // G C
W: "a2 ~@3 [g3,c4,e4]@2 g3 a2 d3@2 ~@4 a3@2, ~@2 a2@5 ~@3 d3@5 ~, ~@12 [a3,d4,f#4]@3 ~, ~@13 a4@2 ~", // C D
X: "g2@2 ~@2 [g3,b3,d4]@2 ~ g2 e3 ~@3 [g3,b3,e4]@2 g3 ~, ~@2 g2@4 g3@2 ~@2 e3@5 ~", // G Em
Y: "a2 ~@3 [a3,c4,e4]@2 ~ a2 d3 ~@5 a3 ~, ~@2 a2@4 a3@2 ~@2 d3@5 ~, ~@12 [a3,d4,e4,f#4]@3 ~, ~@13 a4@2 ~", // Am D
Z: "g2 ~@3 [g3,b3,d4]@2 ~ g2 e3 ~@3 g3@2 g3@2, ~ g2@2 g3 ~ e3@3, ~@3 [b3,e4]", // G E5
AA: "a2 ~@3 [g3,c4,e4]@2 g3 a2 d3@2 ~@2 [a3,d4,f#4]@2 a3@2, ~@2 a2@5 ~@3 d3@5 ~", // C D
AB: "g2 ~@3 g3 ~@2 g2 [e3,g3,b3,e4]@3 ~@5, ~ g2@2 g3 ~@4, ~ [b3,d4] ~@2", // Em Bm
AC: "g3 ~@2 [d3,d4,f#4]@5, [a2,e4]@5 a3@10 ~, c4@2 c4 ~@5, ~ g3@2 ~@5", // D A5
AD: "b3 ~@3 d4@2 b3@4 ~@2 d4@3 ~, [b2,f#4]@6 [e3,g4]@9 ~, d4@2 ~ d4@3 ~@2, ~@2 b3@4 ~@4 b3@5 ~", // B5 Em
AE: "[g3,b3,e4]@4 g3@2 g3@2 g3@2 ~@2 [g3,b3,e4]@2 ~ c3, c3@5 g3 ~ g3, ~@4 [b3,e4]@4 [b3,e4]@3 c3@4 ~", // Em E5
AF: "[a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@5 c#4 [a3,c#4,e4]@2 a3 ~, a2@3 [a3,c#4,e4] [c#4,e4]@2 ~@2, ~@7 a2@2 a2@6 ~, ~@4 a3!2 ~@2", // A C#m
AG: "~@2 c4@2 ~@3 a4, [a2,e4] [d3,f#4], c4 ~@2 d4, ~ g3@3 ~ a3@3", // A5 D
AH: "~@3 b3 ~@2 b3@2, g2 ~, b3@3 ~@5, d4@2 [a3,d4]@2 ~ g3@3, ~ g3@3 [e3,e4]@4", // D5 E
AI: "~@4 c4@3 ~@7 a4@2, [a2,e4]@7 ~ [d3,f#4]@8, c4 ~@2 d4, ~@2 g3@5 ~@3 a3@6", // A5 D
AJ: "~@3 b3 ~@3 e4, g2@2 ~ b3, b3@3 ~ e4@3 ~, d4@2 [a3,d4]@2 ~ g3@3, ~ g3@3 e3@4", // D5
AK: "~ e4 ~ d4, [a2,c4] [d3,f#4], ~ g3@3 ~ a3@3", // Am D
AL: "~@3 d4 ~@3 e4, g2@4 ~ g3@3, [b3,d4] a3 b3!2, ~ g3@3 e3@4, ~@4 d4 b3@3 e4@6 ~@2", // Bm
AM: "~@3 e4 ~@3 a4, a2 [d3,f#4], e4@3 ~@3 d4@2, c4!2 ~@2, ~ g3@3 ~ a3@3", // D
AN: "~@6 b3@2 b3@2 ~@2 g3@3 ~, [g2,d4] ~, b3@6 ~@4 b3@5 ~, ~@2 g3@6 [e3,e4]@7 ~, ~ a3 g3 ~", // G5 E
AO: "[g3,b3,e4]@4 g3@2 g3@2 g3@2 ~@2 [g3,b3,e4]@2 g3 c3, c3@5 g3 ~@2, ~@4 [b3,e4]@4 [b3,e4]@3 c3@4 ~", // Em E5
AP: "[[a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@5 c#4 [a3,c#4,e4]@2 ~@14 b3@2 ~@2, a2@6 [a3,c#4,e4]@2 [c#4,e4]@4 ~@3 g3@3 g3@8 g3@4 ~@2, ~@7 a2@2 a2@6 c3@15 ~@2, ~@4 a3!2 ~ a3 e4@3 e4@4 ~, ~@4 b3 b3@2 ~]/2", // A C#m
AQ: "c4 ~ g4 b3 d4 ~ a3 ~@3 b3 g4 g3 [a3,b3] b3 ~, c3@3 b2@3 a2@2 g4@2 ~@6, ~ e4@2 ~@2 g4@2 c4@2 [g2,g3]@2 ~@5", // Asus2 G
AR: "[~@4 a2 ~@3 g3@2 ~ a2 d3@2 a3 ~@4 d3 g2 ~@3 [g3,b3,d4]@2 ~ g2 e3@2 g3 ~ [g3,b3,e4]@2 ~ e3 a2 ~@3 g3@2 ~ a2 d3@2 a3 ~@4 d3 g2 ~@3 [b3,d4]@2 ~ g2 e3@2 g3 ~@4 b3 a2 ~@3 g3@2 ~ a2 d3@2 ~@5 d3 g2@2 ~@2 [g3,b3,d4]@2 ~ g2 e3@2 g3 ~ b3 ~ g3 b3 a2 ~@3 [g3,c4,e4]@2 g3 a2 d3@2 ~@4 a3@2 g2@2 ~@2 [g3,b3,d4]@2 ~ g2 e3 ~ e3@2, ~@6 a2@4 g3@2 ~@3 d3@4 ~@3 g2@4 ~@12 a2@5 ~@4 d3@4 ~@3 g2@4 ~@8 g3@2 ~@6 g3@2 ~@2 d3@5 ~@3 g2@5 ~@11 a2@5 ~@11 g2@5 ~@5, ~@8 [c4,e4]@4 ~@4 [d4,f#4]@4 ~@14 g3@2 ~@4 [c4,e4]@4 ~@4 [d4,f#4]@4 ~@12 [g3,b3]@3 ~@13 a3@2 a3@2 ~@6 g3@2 ~@3 e3@4 ~@11 d3@5 ~@13, ~@16 a3@2 a3@2 ~@6 g3@2 ~@3 e3@4 ~@7 g3@2 ~@4 a3@2 a3@2 ~@4 g3 ~ g3@2 ~@3 e3@4 ~@3 a2@5 ~@6 a4@3 ~@13 b3@2 ~@13 [a3,d4,f#4]@3 ~@7 g3@2 ~@4, ~@17 a4@3 ~@29 a4@3 ~@13 e4@2 ~@5 [c4,e4]@4 ~@4 [d4,f#4]@4 ~@12 [g3,e4]@3 ~@14 a4@2 ~@13]/8", // G Em Bm G C G C D …
AS: "[[g3,b3,e4]@2 g3 ~ a2 ~@3 g3@2 ~ a2 d3@2 a3 ~@4 d3 g2 ~@3 [g3,b3,d4]@2 ~ g2 e3@2 g3 ~ [g3,b3,e4]@2 ~ e3 a2 ~@3 g3@2 ~ a2 d3@2 a3 ~@4 d3 g2 ~@3 [b3,d4]@2 ~ g2 e3@2 g3 ~@4 b3 a2 ~@3 g3@2 ~ a2 d3@2 ~@5 d3 g2@2 ~@2 [g3,b3,d4]@2 ~ g2 e3@2 g3 ~ b3 ~ g3 b3 a2 ~ a2@5 ~@5, ~@6 a2@4 g3@2 ~@3 d3@4 ~@3 g2@4 ~@12 a2@5 ~@4 d3@4 ~@3 g2@4 ~@8 g3@2 ~@6 g3@2 ~@2 d3@5 ~@3 g2@5 ~@21, ~@8 [c4,e4]@4 ~@4 [d4,f#4]@4 ~@14 g3@2 ~@4 [c4,e4]@4 ~@4 [d4,f#4]@4 ~@12 [g3,b3]@3 ~@13 a3@2 a3@2 ~@6 g3@2 ~@3 e3@4 ~@13, ~@16 a3@2 a3@2 ~@6 g3@2 ~@3 e3@4 ~@7 g3@2 ~@4 a3@2 a3@2 ~@4 g3 ~ g3@2 ~@3 e3@4 ~@3 a2@5 ~@6 a4@3 ~@13 b3@2 ~@13, ~@17 a4@3 ~@29 a4@3 ~@13 e4@2 ~@5 [c4,e4]@4 ~@4 [d4,f#4]@4 ~@12 [g3,e4]@3 ~@13]/7", // Em G Em Bm G C D C …
})).s("gm_acoustic_guitar_steel").gain(0.27).pan(0.4)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
~@3 A@2 B C D@2 E F G H I J K L ~ M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI ~ M N O P Q R S T U V W X Y Z
AA ~ AJ ~@16
>`.pickRestart({
A: "[~@4 g3@4 ~@4 a3@3 ~ d4@8 ~@5 d4@3, [c4,e4] [d3,d4] ~ e3, ~@8 a3@4 ~@3 b3@8 ~ d4@5 ~@3, ~@10 f#3@6 ~@11 b3@5]/2", // C D
B: "c4@2 ~ e4 ~@3 d4, a2 d3, e4@3 ~ d4@3 ~, ~ c4 a3!2, ~@5 f#3@3",
C: "~@3 b3, g2 ~, b3@2 b3@2 ~ g3@3, ~ g3@3 e3@4, ~@3 d4@3 ~@2",
D: "[e4@4 c4@4 [d3,a3,d4]@7 ~ d4@9 ~@7, a2@8 ~@7 g2@14 ~@3]/2", E: "[a2,g3,c4] [d3,a3], e3 ~@3",
F: "~@4 [g3,b3,d4]@4 ~@4 [b3,e4]@2 ~ g#2, ~@12 g3@3 ~", // G E5
G: "~@4 [g3,c4]@4 ~@4 [a3,d4]@2 f#3 f#2, a2@8 ~@3 d2@5, ~@2 e3 ~@5", // C5 D5
H: "~@6 d4 g3 ~@2 g3 e3 ~ g3 e3@2, g2@7 ~@9, ~@2 [a3,d4] ~@3 [g3,b3,e4] ~, ~@5 b3@2 ~@9", // D5 Em
I: "~@4 [e3,g3,c4]@4 ~@4 [a3,d4]@2 f#3 ~", // C D5
J: "~@4 [g3,a3,d4] ~ d4 g3 ~@2 [g3,b3,e4] e3@2 ~@2 g3, g2@4 ~@3 e3, ~@5 b3@2 ~@6 [g3,b3,e4]@2 ~", // Gsus2 Em
K: "~@4 a3@4 ~@5 a3 f#3 a3, ~@4 e4 ~@6 d3@4 ~, ~@12 d4@3 ~",
L: "~@6 d4 g3@2 e2 ~ e2 e3 [g3,b3,e4] e3 ~, ~@3 g2@4 ~@9, ~@2 [a3,d4] ~@2 [g3,b3,e4] ~@2, ~@5 b3@2 ~@9", // Em D5 Em
M: "~@4 [g3,b3,d4]@3 ~@5 [g3,b3,e4]@3 [g3,e4]", N: "~@4 [g3,c4,e4]@2 ~ [g3,c4,e4] ~@4 [a3,d4,f#4]@2 ~ [f#3,a3,d4]",
O: "~@4 [g3,b3,d4]@3 [g3,b3,d4] ~@4 [g3,b3,e4]@3 ~", P: "~@4 [g3,c4,e4]@3 ~@5 [a3,d4,f#4]@3 ~",
Q: "~@4 [g3,b3,d4]@3 ~@5 g3@2 ~ [g3,b3,e4]", R: "~@4 [g3,c4,e4]@3 ~@5 [a3,d4]@3 a3",
S: "~@4 [g3,b3,d4]@3 [g3,b3,d4] ~@4 [g3,b3,e4]@2 ~ g3", T: "~@4 g3@3 [g3,c4] ~@4 [a3,d4,f#4]@3 a3",
U: "~@4 [g3,b3,d4]@3 [g3,b3,d4] ~@4 g3@3 [g3,e4]", V: "~@4 g3@3 g3 ~@4 [a3,d4,f#4]@3 ~",
W: "~@4 [g3,b3,d4]@3 f#3 ~@8", X: "[g3,c4,e4]@5 ~ [d4,f#4]@10, ~@5 a3@11",
Y: "~@4 b3@2 [g3,b3,e4]@9 ~, f#4@3 ~@5, ~ d4@2 ~@5", // Em
Z: "g3 ~@5 g3 ~, e4@3 e4@4 ~, b3@2 b3@5 ~, ~ g3@5 ~@2, ~@4 g4@3 ~",
AA: "[a3,e4] ~ [a3,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [e3,a3,c#4]@2 [e3,a3,c#4]@2 [a3,c#4]@2 [e3,c#4] ~, c#4@4 ~@8 e3 ~@3", // A5 A C#m
AB: "[a2,g3,c4]@7 d4 [a3,d4]@8, e3@5 ~@2 d3@9", AC: "b3 ~ b3@4 g3 b3, g2, d4 ~@3, ~@2 g3@9 ~@5",
AD: "~@2 e3@2 d4@2 e3 ~ a3@2 f#3@2 a3@4, a2 d3, a3@3 ~ d4@2 ~@2",
AE: "b3@2 ~@4 d4@2 ~@5 g3@2 ~, g2@8 ~@2 b3@3 ~@3, ~ g3@2 ~ e3@4, ~@4 b3@5 g3@2 d4@4 ~",
AF: "d4@3 ~ c4@4 ~@4 [a3,d4]@4, [a2,a3] d3, ~@10 f#3@5 ~", // D5 A
AG: "[g2,g3,b3,d4]@3 ~@3 e4 ~, ~@9 e3@7, ~@5 g3@2 ~, ~@11 b3@4 ~", // G
AH: "~ [a3,c4] ~ [a3,d4], a2@4 ~ f#3@3, ~ e3@2 ~ d3@4", AI: "~@4 a3@2 ~@2 e3@7 ~, g2 ~, ~@3 b3@2 ~@3",
AJ: "[c3,c4,e4]@3 [b2,b3,d4]@3 [a2,a3,c4]@3 [g2,g3,b3]@3 [g2,g3] [a2,c4] [b2,a3,b3,d4] ~", // C Bm Am G Am Bm7
})).s("gm_acoustic_guitar_nylon").gain(0.19).pan(0.3)
// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
~@2 A@4 B C D E F G ~ H I J ~@5 K ~@10 L M ~@3 N ~@2 O ~@4 K ~@10 L ~@18
>`.pickRestart({
A: "[~@15 a2@8 ~@8 g3@2 ~@3 g3@4 ~@2 g3@4 g3@4 g3@6 ~@8, ~@15 g3@4 ~@12 g2@8 ~@25, ~@31 d4 ~@32]/4", B: "~@7 d4",
C: "~@2 g3@3 ~@7 f#3@3 g3", D: "b3@8 g4@7 ~", E: "~@8 d4@7 ~, ~@8 f#3@5 ~@3", F: "~@4 g2 ~@2 g2 ~@8", G: "~@6 e3 ~@9",
H: "~@3 a2@5 ~@4 d2@3 d3", I: "~@9 e3 ~@6", J: "~@4 e3@3 e4 ~@8", K: "~@15 a3", L: "~@7 c#4 ~@8", M: "~@7 f#3@5 ~@4",
N: "~ e3@6 ~@9", O: "~ g3@2 ~@3 b3@2, ~@10 g3@5 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.11).pan(0.3)
// bass · fretless bass
const bass = note(`<
~@9 A B A B A C D E F G H I J K L M N O P Q R S T U V W V X V Y V X F G H I J K L M N Z P Q R S T AA AB AC AD AE@2
AF@2 AG AH AI@2 AE@2 AF@2 AG AJ ~
>`.pickRestart({
A: "a2 d2", B: "g2 e2", C: "~@2 g3 a3 b3@3 e3!2 f#3 g3 e3@3 d3@2", D: "a1@6 a1@2 d2@6 d2 e1",
E: "g1@4 g2@3 g1 e1@3 e2@4 ~", F: "a1 ~@6 e2", G: "g1 a1 b1 c2 d2 e2 f#2 g2", H: "a1 ~ a1@5 a1 d2 ~ d2@4 d2 d1",
I: "g1@3 a1@3 b1@3 c2@3 d2@2 e2 g1", J: "a1 ~ a1@2 a2@3 a1 d2 ~ d2@5 d2", K: "g1 ~ g1@2 g2@3 g1 e2@3 e2@2 e2!2 e1",
L: "a1 ~ a1@2 a2@3 a1 d2 ~ d2@4 d2@2", M: "g1@3 a1@3 b1@3 c2@3 d2@2 e2 f#2", N: "a1 ~ a1@4 a2 a1 d2 ~ d2@4 d2 d1",
O: "g1 ~ g1@4 ~ g1 e1@2 e1@3 ~@2 d2, ~@6 g2@2 ~@5 e2@2 ~, ~@7 e1", P: "a1 ~ a1@5 a1 d2 ~ d2@4 d2 b1",
Q: "g1 ~ g1@4 d2 e2 e1@4 ~@4", R: "a1@3 d2@5", S: "b1@2 d2@2 f#2@2 g2@9 ~", T: "c2@3 c2@2 c2!3",
U: "a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1!2", V: "a1 d2", W: "g1 e2", X: "g2@3 f#2@3 e2@4 f#2@2 g2@2 e2@2",
Y: "g1@2 g2 g1 e2@4", Z: "g1 ~ g1@4 ~ g1 e1 ~ e1@3 ~@2 d2, ~@6 g2@2 ~@5 e2@2 ~, ~@7 e1",
AA: "a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1 ~", AB: "c2@7 ~", AC: "c2@3 b1@3 a1@3 g1@3 g1 a1 b1 ~",
AD: "~ g1 a1 b1 a1 ~ a1@2 a2@3 a1 d2 ~ d2@2",
AE: "[~ d2 f#2 d2 g1 ~ g1@2 g2@2 g2 g1 e2@2 e2 e2@2 e1 d2 b1 a1 ~ a1@2 a2@3 a1 d2 ~ d2@2, a2 ~@15]/2",
AF: "[f#2 g2 f#2 d2 g1 ~ g1@2 g2@2 g2 g1 e2@2 e1 d2@2 e1 b1 g1 a1 ~ a1@2 a2@2 a2 a1 d2 ~ d2@2]/2",
AG: "a2 b2 a2 d2 g1 ~ g2@2 g1@2 g2 g1 e2 ~ e2@2", AH: "e2 f#2 g2 e2 a1 ~ a1@2 a1@2 a2 b1 d2 ~ d2@2",
AI: "[~ a2 d2 f#1 g1 ~ g1@2 g2@2 g2 g1 e2 ~ e2 b2@2 e2 g2 b1 a1 ~ a1@2 a2@3 a1 d2 ~ d2@2]/2",
AJ: "e2 f#2 g2 e2 a1 ~@11",
})).s("gm_fretless_bass").gain(0.32)
// other · lead 1 square
const lead_1_square = note("<~@10 A@2 B C D@2 E ~@58>".pickRestart({
A: "[g3@3 a3@3 d4@3 g4@3 d5@13 ~@7]/2", B: "g4@3 a4@3 b3@3 d4@3 g3@4", C: "d4@11 ~@5",
D: "[g3@3 a3@3 d4@3 g4@3 e5@2 d5@12 a5@3 g5@3]/2", E: "d5@8 g4@3 a4@3 d4@2",
})).s("gm_lead_1_square").gain(0.14)
// other · oboe
const oboe = note("<~@28 A B C D E@2 ~@18 A F C G H@2 ~@17>".pickRestart({
A: "~@14 b3 c4", B: "d4 e4 d4@10 a4@4", C: "d4 e4 f#4 g4@5", D: "b4@5 g4 a4 b4", E: "[e4@12 a4@9 ~@11]/2",
F: "d4 e4 d4@4 a4@10", G: "b4@10 g4@2 a4 b4@3", H: "[e4@10 g4@2 a4 b4@2 e4@13 ~@4]/2",
})).s("gm_oboe").gain(0.13)
// chords · pad warm
const pad_warm = note(`<
~@10 A B@2 ~@2 B@2 ~ C@3 D E D E D E D F G@2 H I J@2 K@2 J@2 K@2 ~ C@3 D E D E D E D F G@2 H I ~@18
>`.pickRestart({
A: "[g3,b3,d4]", B: "[[g3,c4,e4] [a3,f#4] [b3,g4]@2, ~ d4@3]/2",
C: "[[b3,d4,g4] b3 c4 [a3,f#4] [b3,g4] [g3,b3,e4], ~@8 [g3,e4]@16 d4@13 ~@11]/3", D: "[g3,c4,e4] [a3,d4,f#4]",
E: "[b3,d4,g4] [g3,b3,e4]", F: "[b3,d4,g4]@3 ~@5",
G: "[[g3,c4,e4]@6 [a3,f#4]@9 ~ [b3,f#4]@6 [b3,e4,g4]@7 ~@3, ~@3 d4@8 ~@5]/2", H: "[g3,b3,e4]", I: "[a3,c#4,e4]@7 ~",
J: "[[g3,c4,e4] [a3,f#4] [b3,g4] [g3,b3,e4], ~@8 d4@13 ~@11]/2", // C D Em
K: "[[g3,c4,e4]@8 [a3,f#4]@8 [b3,g4]@8 [g3,b3,e4]@7 ~, ~@8 d4@13 ~@11]/2", // C D Em
})).s("gm_pad_warm").gain(0.19)
// chords · rock organ
const rock_organ = note(`<
~@21 A B C D E F G H ~@9 I@2 J K ~@3 A B C D E F G H ~@6 L M N@2 O P Q@2 R M N@2 O S ~@2
>`.pickRestart({
A: "~@15 [a#3,c4,c#4,d#4,g4,g#4]", // Cm7
B: "[g4,b4]@3 [a4,c5]@3 [b4,d5]@3 [a4,c5]@3 [g4,b4]@3 [d#4,f#4,g4,g#4,a4,a#4,c5], g5@15 ~", // G Am Bm Am G Cm7
C: "b3 ~@14 [a#3,b3,c4,c#4,g4]", D: "[g4,b4]@3 [a4,c5]@2 ~ [b4,d5]@3 [a4,c5]@2 ~ [g4,b4]@3 [g#4,a#4,c5,c#5], g5@15 ~",
E: "[c4,d#4] ~@14 [a#3,c#4,d#4]", // Cm D#7
F: "[g4,b4]@3 a4@2 ~ [b4,d5]@3 [a4,c5]@3 [g4,b4]@3 [c#4,d#4,f4,f#4], g5@15 ~, [b3,e4] ~@5 c5 ~@9", // G Bm Am G D#m7 E5
G: "~@15 [a#3,b3,c#4,d#4,f#4]", // D#m7
H: "[g4,b4]@3 [a4,c5]@3 [b4,d5]@2 [g4,b4]@2 c#5 [g#4,a#4] [c4,d#4,f4,f#4] ~@3, g5@11 ~@5, a3 ~@15", // G Am Bm G G#sus2 Cdim
I: "[~@11 a4@5 g4@8 [a4,f#5]@8, ~ g4@7 ~@8, ~@5 d5@27, ~ g5@2 ~]/2", // D
J: "[g4,b4,d5]@3 [f#4,a4,d5]@3 [e4,g4,d5]@3 a4@3 [g4,b4]@2 g#4 [d4,e4,f4,f#4,g4], ~@9 d5@6 ~", K: "[b3,c4] ~@15",
L: "~@4 [g4,c5,e5]@4 [g4,c5,e5] ~@2 d5 ~ [a4,d5,f#5] ~ d5", // C D
M: "[a4,a5]@2 f#5 ~ [b4,g5]@4 [b4,d5,g5]@3 ~@2 [g4,b4,e5] ~@2, d5 ~", // A Em G Em
N: "[[g4,b4,e5]@2 g4@2 [g4,c5,e5]@4 [g4,e5] ~@4 [a4,d5,f#5] d5 a4 a4@2 f#5 a4 [b4,g5]@4 [b4,g5]@3 ~@2 [g4,b4,e5] ~ g4, ~@15 d5@12 ~@5, ~@16 a5 ~@15]/2", // Em C D Em
O: "[g4,b4,e5]@2 [g4,e5] ~ [g4,c5,e5]@4 [g4,e5] ~ a#4 a4 f#5 [a4,a5] ~ [a4,d5,a5], g3 ~@3 a3 ~@7 d5@2 ~@2", // Em C A D5
P: "~ a4!2 [a3,a#3,b3,c#4] [b4,g5]@4 [b4,g5]@2 [d#4,a4,a#4,c#5] ~@2 [g4,b4,e5] ~ g4, ~ d5@10 ~@5, ~ f#5@2 ~@13", // Em D#7 Em
Q: "[[g4,b4,e5]@2 g4 b3 [g4,c5,e5]@4 [g4,c5,e5] ~@4 [a4,d5,f#5] ~@2 [a4,a5]@2 f#5 g3 [b4,g5]@4 [b4,d5,g5]@3 g#4 ~ [g4,b4,e5] ~ b4, ~@15 d5@9 ~@8]/2", // Em C D A Em G Em
R: "[g4,b4,e5]@2 [g4,e5] ~ [g4,c5,e5]@4 [g4,c5,e5] ~@2 d5 ~ [a4,d5,f#5] ~ d5", // Em C D
S: "~ a4!2 [a3,a#3,b3,c#4] [b4,g5]@4 [b4,g5]@2 [d#4,a4,a#4,c#5] ~@2 [g4,b4,e5] ~@2, ~ d5@10 ~@5, ~ f#5@2 ~@13", // Em D#7 Em
})).s("gm_rock_organ").gain(0.13)
// chords · rock organ · soft notes
const rock_organ_soft = note(`<
~@21 A ~ B C D E F G ~@11 H ~@4 A ~ B C D E F G ~@6 I J K L M N ~ O I J K L M N ~@2
>`.pickRestart({
A: "~@15 d4", B: "[c4,d4,e4,f4] ~@14 f#4", C: "[d4,e4] ~@15", D: "[b3,c#4,f#4] ~@14 [c4,f#4]", E: "~@3 c5@3 ~@9 a#4",
F: "~@15 [g#3,c4]", G: "~@12 [a#3,c#4,d4] ~@3", H: "~@5 d5 ~@3 f#4@3 ~ a#4 ~ [a#3,c#4,d#4]", I: "~@14 a4 ~",
J: "~@4 c4 ~@7 a3 ~@2 [g4,b4]", K: "~@11 [f3,d5] ~@4, ~@11 a4@2 ~@3", L: "~@3 a3 ~@8 f3 ~@3", M: "~@4 f4 ~@6 f#5 ~@4",
N: "a4 ~@2 c4 ~@12", O: "~@3 a3 ~@7 [d#4,f#4,a4,a#4] ~@4",
})).s("gm_rock_organ").gain(0.06)
// chords · drawbar organ · Em A Em A
const drawbar_organ = note("<~@31 [[g4,b4,e5]] [[a4,c#5,e5]@15 ~] ~@22 [[g4,b4,e5]] [[a4,c#5,e5]@15 ~] ~@18>")
.s("gm_drawbar_organ").gain(0.14)
// chords · epiano1
const epiano1 = note("<~@59 A B C@3 D@2 E F G@4 H ~@2>".pickRestart({
A: "~ g4 a4 b4 ~@12", B: "a4 ~ a3@2 ~@4 [g3,b3,d4]@2 a3@2 e3 [g3,b3,e4] g3 ~, d4@3 ~@13, ~ f#4@2 ~@13",
C: "[~@8 [c4,e4]@2 g3 ~@2 a3 d4 [d4,f#4]@2 [d4,a4]@2 a3 ~@4 d4 ~ d4@2 e3 [g3,b3,e4] ~@2 [b3,e4]@2 ~ e3 ~@4 [g3,c4,e4]@2 g3 ~ d3 d4 a3 ~, ~@8 g3 ~@6 a3 ~ a3 ~@6 a3@2 ~@5 e3@3 ~@14, ~@25 b3@4 ~@3 g3 ~ g3@2 ~@9 f#4@2 ~]/3", // C D D5 Em E5 C
D: "[d4@2 ~ a3 ~@4 d4 ~ d4 ~ e3 [g3,b3,e4] ~@2 [g3,e4] ~ g3@2 ~@4 [c4,e4]@2 g3 ~@2 d4 d3 a3, a4 ~ d4@2 ~@4 a3@2 ~@5 e3@3 ~@6 g3 ~@7, ~@9 b3@4 ~@3 b3@2 ~@11 f#4@2 ~]/2", // Em C
E: "[a3,d4] f#4 d4 d3 ~@4 [g3,d4] b3 g3 ~ e3 [g3,b3,e4] g3 ~, ~@4 a3 ~@3", F: "~ g3 b3 ~@13, [b3,e4] ~@7",
G: "[a4 ~ a3@2 ~@4 [g3,b3,d4]@2 a3@2 e3 [g3,b3,e4] g3 ~ [b3,e4]@2 ~ e3 ~@4 [g3,c4,e4]@2 g3 ~@2 a3 d4 [d4,f#4]@2 [d4,a4]@2 a3 ~@4 d4 ~ d4@2 e3 [g3,b3,e4] ~@2 [b3,e4]@2 ~ e3 ~@4 [g3,c4,e4]@2 g3 ~ d3 d4 a3 ~, d4@3 ~@12 e3@3 ~@23 b3@4 ~@3 g3 ~ g3@2 ~@9 f#4@2 ~, ~ f#4@2 ~@13 g3 ~ g3@2 ~@11 a3 ~ a3 ~@6 a3@2 ~@5 e3@3 ~@14]/4", // G Em E5 C D D5 Em E5 …
H: "d4@2 ~ a3 ~@4 d4 ~ d4 ~ e3 [g3,b3,e4] ~@2, a4 ~ d4@2 ~@4 a3@2 ~@6, ~@9 b3@4 ~@3", // Em
})).s("gm_epiano1").gain(0.2)
// chords · epiano1 · soft notes
// … 115 more lines
More by Battisti
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.