0:00/0:00
// Innocenti evasioni — Battisti
// 116 bpm, 4/4, key E 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 115 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
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 · electric bass finger
const bass = note(`<
~@5 A@8 B C@2 D B E C F D G H I J K L M N C O C P D G Q R S T U M V W X Y Z AA AB AC AD AE AF AC AG AH AI ~@6 C AJ C P
D G AK AL AM AN AO M AP ~@6 AQ R AR AN AO M V AS AT AU AV AW AX AY AZ BA BB AY BC BD BE BF BG BH BI BJ BK BL BM BN
BO@2 ~
>`.pickRestart({
A: "b1 b1@6 ~ b1!2 b1@6", B: "b1@4 ~@2 b1 ~ b1@7 ~", C: "b1@5 ~ b1 ~ b1@7 ~", D: "b1@5 ~ b1 ~ b1@6 ~@2",
E: "b1@6 ~@2 b1 ~ b1@2 ~ b1 ~ b1", F: "b1@5 ~ b1 ~ b1@6 a1 ~", G: "b1@7 ~ b1@2 a1@4 f#1@2",
H: "e1@5 ~ e1@2 b1@5 ~ b1 ~", I: "e1@5 ~ e1@2 b1@4 ~@2 b1@2", J: "e1@2 f#1@3 ~ g#1@2 a1@5 ~ c#1 ~",
K: "f#1@5 ~ e1 ~ a1@5 ~ c#1 ~", L: "f#1@5 ~ c#1 ~ f#1@5 ~ f#1 ~", M: "b1!2 ~ b1!2 ~ b1!2 ~ b1!2 ~ b1 ~ b1 ~",
N: "f#1@7 ~", O: "b1@6 ~@2 b1 b1@2 b1 ~ b1 ~ b1", P: "b1@5 ~ b1 ~ b1@2 a1@2 f#1@2 a1@2", Q: "e1@5 ~ e1@2 b1@5 ~ b1@2",
R: "e1@5 ~ e1 ~ b1@4 ~@2 b1@2", S: "e1@2 f#1@3 ~ g#1@2 a1@5 ~ c#1@2", T: "f#1@5 ~ e1@2 a1@5 ~ c#1@2",
U: "f#1@5 ~ c#1@2 f#1@5 ~ f#1 ~", V: "b1 ~@15", W: "f#1@5 ~ f#1 f#1@2 ~ e1@2 c#2@2 c2@2",
X: "b1@7 ~ b1 b1@4 b1 c#2@2", Y: "e1@6 e1@2 e1@3 e1@4 b1", Z: "e1@5 ~ e1 ~ e1!2 ~ c#2@3 e2@2",
AA: "f#1@6 c#2 ~ f#1@3 f#1@2 f#1@2 f#1", AB: "b1@6 b1 ~ b1@4 c#2@4", AC: "e1@5 ~ b1 ~ e1 e1@4 e1@2 b1",
AD: "e1@9 ~@2 b1 e1@2 c#2@2", AE: "f#1@5 ~ f#1 ~ e1@3 c#2 ~ c#2@2 c2", AF: "b1@5 ~ b1@2 b1@5 b1 c#2 b1",
AG: "e1@7 b1 e1@2 e1@3 c#2 e1@2", AH: "f#1@5 ~ c#2 ~ f#1!2 ~ f#1@3 c#2@2", AI: "b1@5 ~ b1@2 b1@7 ~",
AJ: "b1 b1@6 ~ b1!2 ~ b1 ~ b1 ~ b1", AK: "e2@5 ~ e2 ~ b1@5 ~ b1 ~", AL: "e2@5 ~ e2 ~ b1@4 ~@2 b1@2",
AM: "e2@2 f#1@3 ~ g#1@2 a1@5 ~ c#2 ~", AN: "f#1@5 ~ e1 ~ a1@5 ~ c#2 ~", AO: "f#1@5 ~ c#2 ~ f#1@5 ~ f#1 ~",
AP: "f#1@6 f#1@9 ~", AQ: "e1@5 ~ e1 ~ b1@5 ~ b1 ~", AR: "e1@2 f#1@3 ~ g#1@2 a1@5 ~ c#2 ~",
AS: "f#1@5 ~ f#1!2 ~ e1 e1@2 c#2@2 c2@2", AT: "b1@7 ~ b1!2 ~ b1 ~ b1 c#2@2", AU: "e1@6 e1 ~ e1!2 ~ e1 ~ e1 ~ b1",
AV: "e1@5 ~ e1 ~ e1!2 ~ c#2@3 e1@2", AW: "f#1@6 c#2 ~ f#1!2 ~ f#1 ~ f#1 ~ f#1", AX: "b1@4 ~@2 b1 ~ b1@4 c#2@4",
AY: "e1@5 ~ b1 ~ e1!2 ~ e1 ~ e1 ~ b1", AZ: "e1@9 ~@2 b1 e1@2 c#1 e1", BA: "f#1@5 ~ f#1 ~ e1!2 ~ b1 ~ b1 ~ c2",
BB: "b1@5 ~ b1 ~ b1 b1@4 b1 c#2 b1", BC: "e1@7 b1 e1 b1 e1@3 c#2 e1@2", BD: "f#1@5 ~ c#1@2 f#1 f#1@2 f#1@2 f#1 c#2@2",
BE: "b1@5 ~ b1 ~ b1@6 ~ b1", BF: "e1@6 ~ e1!2 e1@2 e1@2 e1@2 b1", BG: "e1@15 ~",
BH: "f#1@5 ~ f#1@2 e1 e1@2 c#2 ~ c#2@2 c2", BI: "b1@5 ~ b1@2 b1 b1@4 b1 c#2 b1",
BJ: "e1@5 ~ b0@2 e1 e1@2 e1@2 e1@2 b0", BK: "e1@7 b0@2 ~ e1@3 c#1 e1@2", BL: "f#1@5 ~ c#2 ~ f#1@3 f#1@2 f#1 c#2@2",
BM: "b1@4 b1@3 b1 ~@2 b1@3 ~ b1@2", BN: "e1@4 e1@2 ~ b0@3 ~ b0@3 b0 ~",
BO: "[e1!2 ~ b0 e1!2 ~ b0 ~ b0 ~ b0 ~ b0 e1 e1@12 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.31)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@5 A B C D A E F E G H I J ~ K L ~@2 M@2 N O P Q R S ~@8 T P Q R U V W X Y V W X Y V W X Y V W ~@7 K L ~@2 M@2 N O P
Q Z S ~@6 AA N O P Q Z AB V W X Y V W X Y V W X Y V W X Y V W X Y V W X AC@2 ~
>`.pickRestart({
A: "[b3,d#4,f#4]@3 [b3,d#4,f#4] ~ b3 [b3,f#4] f#4 ~ [b3,f#4]!2 f#4 b3 [b3,f#4]!2 b3", // B B5
B: "[a3,c#4,e4]@3 [a3,c#4,e4] ~ a3 [a3,e4]!2 ~ e4 [a3,e4]!2 ~ e4 [a3,e4]!2", // A A5
C: "[b3,d#4,f#4]@3 [b3,d#4,f#4] ~ b3 [b3,f#4]!2 ~ f#4 [b3,f#4]!2 ~ [b3,f#4] f#4 [b3,f#4]", // B B5
D: "[a3,c#4,e4] [a3,c#4,e4]@2 a3 [a3,e4]!2 [a3,c#4,e4]!2 ~ a3 [a3,e4]!2 [a3,c#4,e4]!2 ~ [a3,e4]", // A A5 A A5 A A5
E: "[a3,c#4,e4]@2 ~ [a3,c#4,e4] ~ a3 [a3,e4]!2 ~ e4 [a3,e4]!2 ~ e4 [a3,e4]!2", // A A5
F: "[b3,f#4,b4] [b3,f#4] [b3,f#4,b4] f#4 [b3,f#4] b3 [b3,f#4]!2 b3 f#4 [b3,f#4,b4] [b3,f#4] ~ [b3,f#4] f#4 [b3,f#4]", // B5
G: "~@4 f#3!2 ~ b3, ~@3 b3@2 b3@2 ~, ~@3 f#3", H: "[e3,b3] b3 [e3,b3]!3 b3 e3!2, ~@3 b3",
I: "b3!3 [f#3,b3]!5, f#3@5 ~@11", J: "[e3,b3]@3 ~ [e3,b3]@2 b3 ~ b3@2 b3 ~ b3@2 b3@2, ~@8 e3@7 ~",
K: "~@12 [c#4,e4,a4]@3 ~, ~@11 a3@4 ~", L: "[b3,d#4,f#4,b4]@11 ~@5",
M: "[~@16 g#4@3 ~ [b3,e4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~, ~@15 [b3,e4]@4 ~@13]/2", // E G#m E5
N: "[b3,e4,g#4]@3 ~ [b3,e4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~", // E G#m
O: "[b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [c#4,e4,a4]@3 ~ [c#4,e4,a4]@3 ~", // G#m A
P: "[a3,c#4,f#4]@2 ~@2 [a3,c#4,f#4]@3 ~ [c#4,e4,a4]@2 ~@2 [c#4,e4,a4]@3 ~", // F#m A
Q: "[a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~", // F#m
R: "[f#3,b3,d#4]@2 ~@2 [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@2 ~@2 [f#3,b3,d#4]@3 ~", S: "[a3,c#4,e4] ~@2 [a3,c#4,e4]@4 ~",
T: "~@8 [c#4,e4,a4]@3 ~ [c#4,e4,a4]@3 ~", U: "[f#3,b3] ~@15",
V: "[c#4,e4]@3 ~ [c#4,e4]@3 ~ [c#4,e4]@3 ~ [c#4,e4]@3 ~", // C#m
W: "[d#4,f#4]@3 ~ [d#4,f#4]@2 ~@2 [d#4,f#4]@2 ~@2 [d#4,f#4]@3 ~", // D#m
X: "[e4,g#4]@3 ~ [e4,g#4]@3 ~ [d#4,g#4]@2 ~@2 [d#4,g#4]@3 ~", // E G#5
Y: "[e4,g#4]@3 ~ [e4,g#4]@2 ~@2 [e4,g#4]@3 ~ [e4,g#4]@3 ~", // E
Z: "[f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@3 ~", // B
AA: "g#4@3 ~ [b3,e4,g#4]@3 ~ [b3,d#4,g#4]@3 ~ [b3,d#4,g#4]@3 ~", AB: "[f#3,b3,d#4] ~@15",
AC: "[[b3,e4,g#4] [b3,e4,g#4]@2 ~ [e4,g#4] [b3,e4,g#4] ~ [d#4,g#4] b3 [b3,d#4,g#4] [d#4,g#4] [b3,d#4,g#4] [d#4,g#4] [b3,d#4] [b3,e4,g#4] [b3,e4,g#4]@17]/2", // E G#5 G#m G#5 G#m G#5 B E
})).s("gm_electric_guitar_clean").gain(0.29).pan(0.3)
// chords · epiano1
const epiano1 = note("<A@8 B@5 C D ~@5 E@2 ~@7 F ~@3 G@4 ~ H@4 ~@18 I@3 ~@3 E@2 ~@7 F ~ J@2 K@2 ~@34>".pickRestart({
A: "[~@16 [d#5,f#5]@15 ~ [c#5,e5]@14 ~@2 [d#5,f#5]@15 ~ [c#5,e5]@14 ~@2 [d#5,f#5]@15 ~ [c#5,e5]@14 ~@2 [d#5,f#5]@15 [a4,b4], ~@15 [b4,c#5]@16 [a4,b4]@15 ~ [b4,c#5]@16 [a4,b4]@15 ~ [b4,c#5]@16 [a4,b4]@15 ~ [b4,c#5]@16 ~]/8", // D#m C#m D#m C#m D#m C#m D#m Asus2 …
B: "[[c#5,e5]@14 ~@2 [d#5,f#5]@15 ~ [c#5,e5]@14 ~@2 [d#5,f#5]@15 ~ [c#5,e5]@15 ~, ~@15 [b4,c#5]@16 [a4,b4]@15 ~ [b4,c#5]@16 [a4,b4]@16 ~]/5", // C#m D#m C#m D#m C#m Bsus2 Asus2 Bsus2 …
C: "[f#4,b4,d#5]@15 ~", D: "~@2 [e4,a4,c#5]@13 ~",
E: "[~@16 [d#6,f#6]@15 ~, ~@11 e4@20 ~, ~@12 [a4,c#5]@19 ~, ~@15 b5@16 ~]/2", // D#m A
F: "[a4,c#5,e5]!2 ~ [a4,c#5,e5] ~@2 [a4,c#5,e5]@6 ~@4", // A
G: "[~@16 d#6@13 ~@15 c#6@2 b5@17 ~, ~@15 [f#5,b5]@14 ~@2 [e5,a5]@15 ~@18, ~@31 c#6@13 ~@20, ~@16 e6@7 ~@9, ~@21 d#6@2 ~@9]/4", // B5 A5
H: "[~@24 b5@11 ~@5 c#6@6 ~@2 f#6@14 ~@2, ~@4 b5@3 a5@3 ~ a5@2 ~@19, ~@10 c#5@8 c#5@17 ~@29, ~@12 e5@8 e5@15 ~@4 [e5,a5]@6 ~@2 [f#5,b5]@16 ~, ~@4 g#5 ~@11]/4", // A5 B5
I: "[~@27 c#5@17 ~@4, ~@6 e5@16 a5@21 ~@5, ~@9 f#5@32 ~@7, ~@12 g#5@7 g#5@25 ~@4, ~@15 b5@29 ~@4]/3",
J: "[~@16 f#6@15 ~, ~@15 [b5,d#6]@15 ~@2]/2", K: "[~ f#6, ~@11 [a5,c#6]@21, ~@3 e6@5, ~@15 [b5,d#6]@17]/2",
})).s("gm_epiano1").gain(0.29).pan(0.6)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
~@5 A B C D E F G H I J I K L J L K L M N O P Q R S T U V W X Y Z N O AA Q R AB AC AD AE AF AG AH AE AF AI AJ AK AL AM
AN AO@6 ~ AP V AQ AR AS AT N O AA Q R AB AU ~@6 N AV AW AX AY AZ BA AD AE BB AG AH AE AF AI AJ AK BC AM BD BE BF AG BG
BH BI BJ BK BL BC BM@2 ~
>`.pickRestart({
A: "b3!2 ~ b3 ~ b3!3 ~ b3 ~ b3 ~ b3 ~ b3", B: "b3!2 ~@2 b3!4 ~ b3 ~ b3!5", C: "b3!2 ~ b3!9 ~ b3!3",
D: "b3 ~@2 b3!9 ~@2 b3!2", E: "b3!2 ~ b3 ~ b3!3 ~ b3!3 ~ b3!3", F: "b3!2 ~@2 b3!4 ~ b3 ~ b3 ~ b3!3",
G: "b3!2 ~ b3 ~ b3!3 ~ b3 ~ b3!4 ~", H: "b3!2 ~ b3 ~ b3!3 ~ b3 ~ b3@2 b3!3",
I: "b3 b3@2 [f#3,b3]!2 [f#3,b3]@3, [f#3,d#4]@3 d#4@5", J: "[a3,c#4] a3@2 a3 [e3,a3] [e3,a3]@3, e3 ~, ~ c#4@7",
K: "[e3,a3]@2 a3@3 ~ [e3,a3]@4 [e3,a3,c#4]@6, ~ c#4@4 ~@3", L: "b3 b3@2 b3 [f#3,b3] [f#3,b3]@3, [f#3,d#4]@3 d#4@5",
M: "[a3,c#4] ~ [a3,c#4]@4 [a3,c#4] [e3,a3,c#4]@2 [e3,a3,c#4] e3 [e3,a3,c#4] ~ [e3,a3,c#4]!2 e3, e3@3 ~@5", // A
N: "[g#3,b3,e4] [b3,e4] ~ [g#3,b3,e4] e4 [g#3,b3,e4] ~ [g#3,b3,d#4] ~ [g#3,b3] ~ [g#3,b3,d#4] g#3 [g#3,b3,d#4] ~ [g#3,b3,d#4]", // E E5 E G#m
O: "[g#3,b3,e4] [b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] g#3 [g#3,b3,d#4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] g#3 b3", // E E5 E G#m
P: "[g#3,b3,d#4]!2 g#3 ~ d#4 [g#3,d#4] [g#3,b3,d#4] [b3,d#4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [a3,c#4,e4] ~ [a3,c#4,f#4], ~@3 [g#3,b3]@2 ~@11", // G#m G#5 G#m B A C#m A F#m …
Q: "~ [a3,c#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ [a3,c#4,f#4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [a3,c#4,e4] ~ [a3,c#4,f#4]", // A F#5 F#m A C#m A F#m
R: "~ [a3,c#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ [a3,c#4,f#4]", // A F#5 F#m A F#5 F#m
S: "[b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 [b3,d#4,f#4]@2", // B
T: "[a3,c#4,e4]@5 ~ [a3,c#4,e4]@9 ~", U: "b3 b3@2 [f#3,b3]!2 ~ d#4@2, [f#3,d#4]@3 d#4@3 ~@2, ~@5 [f#3,b3]@3",
V: "[a3,c#4] [a3,c#4]@2 a3 [e3,a3] c#4 c#4@2, e3@4 ~ [e3,a3]@3, ~@3 c#4@2 ~@3", // A A5
W: "b3@2 b3@4 [b3,d#4]@2 [f#3,b3]@2 [f#3,b3,d#4]@5 ~, [f#3,d#4]@3 ~@5", // B B5 B D#m
X: "e3@2 [e3,a3]@3 [e3,a3,c#4]@2 a3 [a3,c#4]@2 [e3,a3,c#4]@2 ~ [e3,a3,c#4]@3, c#4 ~@3, a3 ~@15", // A5 A
Y: "b3 b3@2 b3 [f#3,b3] d#4 ~ [f#3,b3], [f#3,d#4]@3 d#4@2 [f#3,b3]@2 ~, ~@3 d#4", // B5 D#m B5
Z: "a3@2 [a3,c#4]@4 [a3,c#4] [e3,a3,c#4]@2 [e3,a3,c#4] e3 [e3,a3,c#4]@2 [e3,a3,c#4]!2 e3, e3@3 ~@5, c#4 ~@15", // A
AA: "[g#3,b3,e4]!2 g#3 ~ e4 [g#3,e4] [g#3,b3,e4] [b3,e4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [a3,c#4,e4] ~ [a3,c#4,f#4], ~@3 [g#3,b3]@2 ~@11", // E C#m E E5 A C#m A F#m …
AB: "[b3,d#4,f#4] ~@3 [b3,d#4,f#4]!2 ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4]!4 ~", AC: "[b3,d#4,f#4] ~@7",
AD: "[c#4,f#4] [a3,c#4,f#4] ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] [a3,f#4] [a3,c#4,f#4]", // F#5 F#m D F#m D F#m D F#m
AE: "[b3,d#4,f#4] [b3,f#4] ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4]", // B B5 B
AF: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4]", // E G#m
AG: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] ~ [b3,d#4,g#4]", // E G#m
AH: "[a3,c#4,f#4]!2 ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] ~ [a3,c#4,f#4] f#4 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] [a3,f#4] [a3,c#4,f#4]", // F#m D F#m D F#m D F#m
AI: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 ~ [b3,e4,g#4] g#4 [b3,e4,g#4] ~ [b3,e4,g#4] g#4 [b3,e4,g#4] b3 [b3,e4,g#4]", // E
AJ: "[a3,c#4,f#4]!2 ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] ~ [a3,c#4,f#4] f#4 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] f#4 [c#4,f#4]", // F#m D F#m D F#m F#5
AK: "[b3,d#4,f#4] [b3,f#4] ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] b3 [b3,d#4,f#4]", // B B5 B
AL: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4] [e4,g#4] [b3,e4,g#4] b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] [b3,g#4] [b3,d#4,g#4]", // E G#m E G#m
AM: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4] [e4,g#4] [b3,e4,g#4] ~ [d#4,g#4] [b3,g#4] [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] b3 [d#4,g#4]", // E G#5 E G#m G#5
AN: "[a3,c#4,f#4]!2 ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] a3 [a3,c#4,f#4] f#4 [a3,c#4,f#4] ~ [a3,c#4,f#4] a3 [a3,c#4,f#4] [a3,f#4] [c#4,f#4]", // F#m D F#m D F#m D F#5
AO: "[[d#4,f#4] [b3,f#4] ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] d#4 [b3,d#4,f#4] ~ f#4 ~@2 e4@14 ~@2 d#4@14 ~@2 e4@41 ~@7, ~@15 [a2,g#3,c#4]@14 ~@2 [g#2,f#3,b3]@15 f#2@35 ~@15, ~@47 c#4@39 ~@10, ~@47 a3@36 ~@13]/6", // D#m B5 B Amaj7 G#m7
AP: "b3 b3@2 [f#3,b3]!2 ~ d#4@2, [f#3,d#4]@3 d#4@2 [f#3,b3]@3", // B5 D#m B5
AQ: "b3@2 b3@4 b3@2 [f#3,b3]@2 [f#3,b3,d#4]@5 ~, [f#3,d#4]@3 d#4@2 ~@3", // B5 B D#m
AR: "e3@2 [e3,a3]@3 [e3,a3]@2 a3 [a3,c#4]@2 [e3,a3,c#4]@2 ~ [e3,a3,c#4]@3, c#4@4 ~ c#4 ~@10, a3 ~@15", // A5 A
AS: "b3 ~ b3@4 b3@2 [f#3,b3]@2 d#4@2 ~@2 [f#3,b3]@2, [f#3,d#4]@3 d#4@2 [f#3,b3]@2 ~, ~@3 d#4", // B5 D#m B5
AT: "[a3,c#4] ~ [a3,c#4]@4 [a3,c#4] [e3,a3,c#4]@2 [e3,a3,c#4] e3 [e3,a3,c#4]@2 [e3,a3,c#4]!2 e3, e3@3 ~@5", // A
AU: "[a3,c#4,e4]@6 [a3,c#4,e4]@9 ~", // A
AV: "[g#3,b3,e4] e4 ~ [g#3,b3,e4] ~ [g#3,e4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] ~ [g#3,b3,d#4] g#3 b3", // E C#m G#m
AW: "[g#3,b3,e4]!2 g#3 ~ e4!2 [g#3,b3,e4] [b3,e4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [c#4,e4] ~ [c#4,f#4], ~@3 g#3@2 ~@11", // E E5 A C#m A C#m F#5
AX: "~ c#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4] [a3,c#4,e4] [c#4,e4] ~ [a3,c#4,e4] e4 [c#4,e4] ~ [c#4,f#4]", // F#5 A C#m A C#m F#5
AY: "~ c#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4] ~ c#4 ~ [c#4,f#4] ~ [c#4,f#4] ~ [c#4,f#4]", // F#5
AZ: "[b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4]!3 ~", BA: "[b3,f#4,b4] ~@15",
BB: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4] [d#4,g#4] [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4]", // E G#m G#5 G#m
BC: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] [b3,g#4] [b3,d#4,g#4]", // E G#m E G#m
BD: "[c#4,f#4] [a3,c#4,f#4] ~ [a3,f#4] [a3,c#4,f#4] [a3,f#4] a3 [a3,c#4,f#4] ~ [a3,c#4,f#4] [c#4,f#4] [a3,c#4,f#4] ~ [a3,c#4,f#4]!3", // F#5 F#m D F#m D F#m F#5 F#m
BE: "[b3,d#4,f#4] [b3,f#4] [d#4,f#4] [b3,d#4,f#4]!3 ~ [b3,d#4,f#4] [d#4,f#4] [b3,d#4,f#4] [d#4,f#4] [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4]", // B B5 D#m B D#m B D#m B
BF: "[b3,e4,g#4]!2 [e4,g#4] [b3,e4,g#4]!3 b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4]!3", // E G#m
BG: "[a3,c#4,f#4]!2 ~ [a3,c#4,f#4]!2 [a3,f#4] a3 [a3,c#4,f#4] f#4 [a3,c#4,f#4] [c#4,f#4] [a3,c#4,f#4] a3 [a3,c#4,f#4]!3", // F#m D F#m F#5 F#m
BH: "[b3,d#4,f#4] [b3,f#4] [d#4,f#4] [b3,d#4,f#4]!3 [d#4,f#4] [b3,d#4,f#4] f#4 [b3,d#4,f#4] ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] [d#4,f#4] [b3,d#4,f#4]", // B B5 D#m B D#m B D#m B
BI: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 b3 [b3,d#4,g#4]!3 g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4] g#4 [b3,d#4,g#4]", // E G#m
BJ: "[b3,e4,g#4]!2 g#4 [b3,e4,g#4]!3 ~ [b3,e4,g#4] [e4,g#4] [b3,e4,g#4]!3 g#4 [b3,e4,g#4] b3 [b3,e4,g#4]", // E
BK: "[a3,c#4,f#4]!2 ~ [a3,f#4] [a3,c#4,f#4]!2 a3 [a3,c#4,f#4] f#4 [a3,c#4,f#4] [c#4,f#4] [a3,c#4,f#4] ~ [a3,c#4,f#4]!2 [c#4,f#4]", // F#m D F#m F#5 F#m F#5
BL: "[b3,d#4,f#4]!2 ~ [b3,d#4,f#4]!5 [d#4,f#4] [b3,d#4,f#4] ~ [b3,d#4,f#4] f#4 [b3,d#4,f#4] b3 [b3,d#4,f#4]", // B D#m B
BM: "[[b3,e4,g#4] [b3,e4,g#4]@2 ~ [e4,g#4] [b3,e4,g#4] ~ [d#4,g#4] b3 [b3,d#4,g#4] ~ [b3,d#4,g#4] g#4 [b3,d#4] [b3,e4,g#4] [b3,e4,g#4]@13 ~@4]/2", // E G#5 G#m B E
})).s("gm_acoustic_guitar_nylon").gain(0.2).pan(0.7)
// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
~@16 A B ~ B A B C D E F G H I ~@3 B J B C D E F G H K ~ L M N O P Q R S T U V W X Y ~@8 B J B C D E F G H K ~@7 D Z
AA AB AC AD ~ L M AE O P Q R S T U AF W AG AH AI O AJ AK AL AM AN AO AF AP ~@2
>`.pickRestart({
A: "c#4 e3@2 ~@5", B: "~@3 f#3 ~@4", C: "~@12 e3 ~@3", D: "~ g#3!2 ~@6 d#4 ~@4 d#4 ~", E: "~@2 g#3 ~@3 b3 ~ g#3 ~@7",
F: "~@5 b3 ~ g#3 ~ a3!2 ~@5", G: "~ f#4 ~ a3!3 [c#4,f#4] ~@2 a3!2 ~@5",
H: "~ f#4 ~ a3!3 [c#4,f#4] ~@2 f#4 ~ a3!3 [c#4,f#4] ~", // F#5
I: "~@2 [b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 ~@2 [b3,d#4,f#4]!2 ~@4", J: "~@7 c#4 e3@2 ~@6",
K: "~ [b3,d#4,f#4]!3 ~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@5", L: "~@3 c#4 ~ c#4 a3 ~ [c#4,f#4] ~ [c#4,f#4] ~@3 c#4 ~",
M: "~ d#4 [d#4,f#4] ~@3 [b3,d#4,f#4] ~ d#4 ~ [d#4,f#4] ~ d#4 ~ [d#4,f#4] ~", // D#m B D#m
N: "~@2 e4 ~@5 [d#4,g#4] ~ d#4 ~ d#4 ~ [b3,d#4] ~", O: "~@2 [b3,e4] ~@5 [d#4,g#4] ~ [d#4,g#4] ~ d#4 ~ b3 ~",
P: "~@3 c#4 ~ c#4 a3 ~ c#4 ~ [c#4,f#4] ~ a3 ~ c#4 ~", // F#5
Q: "~ d#4 [d#4,f#4] ~@3 [d#4,f#4] ~ d#4 ~ [d#4,f#4] ~ d#4 ~ [d#4,f#4] ~", // D#m
R: "~@2 e4 ~@5 [b3,d#4,g#4] ~ [b3,d#4] ~ [b3,d#4] ~ d#4 ~", S: "~@2 [b3,e4] ~@5 e4 ~ [b3,e4,g#4] ~ e4 ~@3",
T: "~@3 c#4 ~ c#4 a3 ~ c#4 ~ [c#4,f#4] ~@3 [a3,c#4] ~", // F#5 A
U: "~ d#4 [d#4,f#4] ~@3 [b3,d#4,f#4] ~ d#4 ~ [d#4,f#4] ~ [b3,d#4] ~ [d#4,f#4] ~", // D#m B D#m B D#m
V: "~@2 e4 ~ b3 ~@3 [d#4,g#4] ~ d#4 ~ d#4 ~ d#4 ~", W: "~@2 [b3,e4] ~@3 b3 ~ d#4 ~ [d#4,g#4] ~ d#4 ~@3",
X: "~@2 a3 c#4 ~ c#4 ~@2 c#4 ~ [c#4,f#4] ~@3 c#4 a3", // F#5
Y: "~ d#4 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~ d#4 ~ [b3,f#4] ~ [d#4,f#4] [b3,d#4] ~@2", // B B5 D#m B
Z: "~ b3 g#3 ~@2 b3 [g#3,b3] ~ g#3 ~@7", AA: "~@3 b3@2 [g#3,b3] ~ g#3 ~ a3!2 ~@2 a3 ~ a3",
AB: "~ [a3,f#4] ~ a3!3 [c#4,f#4] a3 ~ a3!2 ~@2 a3 ~ a3", // D F#5
AC: "~ [a3,f#4] ~ a3!3 [c#4,f#4] a3 ~ [a3,f#4] ~ a3!3 [c#4,f#4] a3", // D F#5 D F#5
AD: "~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4]!3 ~ [b3,d#4,f#4]!3 ~@4", AE: "~@2 e4 ~@7 d#4 ~ d#4 ~ [b3,d#4] ~",
AF: "~@2 e4 ~@5 [d#4,g#4] ~ d#4 ~ d#4 ~ d#4 ~", AG: "~@3 c#4 ~ c#4 ~@2 [c#4,f#4] ~@7",
AH: "~ d#4 ~@4 [b3,d#4,f#4] ~@5 d#4 ~ [d#4,f#4] ~", AI: "~@8 [d#4,g#4] ~ d#4 ~ d#4 ~@3", AJ: "~@5 c#4 ~@2 c#4 ~@7",
AK: "~ d#4 ~@6 d#4 ~ [d#4,f#4] ~ d#4 ~@3", AL: "~@2 e4 ~@7 [b3,d#4] ~ [b3,d#4] ~ d#4 ~", AM: "~@2 [b3,e4] ~@9 e4 ~@3",
AN: "~@3 c#4 ~@4 c#4 ~@7", AO: "~@2 [d#4,f#4] ~@7 [d#4,f#4] ~ [b3,d#4] ~ [d#4,f#4] ~", AP: "~@10 [d#4,g#4] ~ d#4 ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.13).pan(0.7)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~@43 A@2 B C A@2 D E A@2 B C A@2 ~@32 A@2 B C A@2 D E F@2 B C F@2 D E F@2 B C F@2 D G@2 ~
>`.pickRestart({
A: "[c#5@3 e5@2 a5@2 [f#5,b5]@9]/2", B: "b4 c#5@2 e5@2 a5 [f#5,b5]@2", C: "[d#5,g#5]@15 ~",
D: "~ b5 ~ b5, [e5,g#5] [d#5,f#5]", E: "[e5,g#5]",
F: "[c#5@3 e5@2 a5@2 [f#5,b5]@3 [e5,e6]@2 [d#5,d#6]@2 [b4,b5]@2]/2", G: "[[e5,g#5]@3 ~]/2",
})).s("gm_string_ensemble_1").gain(0.16).pan(0.4)
// chords · synth strings 1
const synth_strings_1 = note(`<
~@5 A B A B A B A B A B A B A B A B A B C@5 D E A B A B A B C@5 D ~ F@2 G@2 H@2 I@2 F@2 G@2 H@2 J K J L@2 ~ A B A B A
B C@5 D E A B A B A B C@5 M@2 F@2 G@2 H@2 I@2 F@2 G@2 H@2 I@2 F@2 G@2 H@2 N@3 ~
>`.pickRestart({
A: "[d#4,f#4]", B: "[c#4,e4]", C: "[e4@8 d#4@8 e4@8 d#4@8 e4@8 e4@8 f#4@8 e4@8 f#4@8 e4@7 ~, g#4 a4]/5",
D: "[f#4,b4]", E: "[e4,a4]", F: "[a4@15 ~ b4@16, f#4]/2", G: "[e4 d#4 e4@2, g#4]/2", H: "[a4 b4, f#4]/2",
I: "[g#4@8 a4@8 b4@15 ~, e4@31 ~]/2", J: "[a3,e4,a4]", K: "[b3,f#4,b4]", L: "[[b3,d#4,f#4]@31 ~, b2@3 ~]/2",
M: "[[f#4,b4]@9 ~@7]/2", N: "[g#4@8 a4@8 b4@23 ~@9, e4@13 ~@3]/3",
})).s("gm_synth_strings_1").gain(0.11)
// other · overdriven guitar
const overdriven_guitar = note("<~@88 A B C D E F G H I@3 J K@5 L@6 M@3 ~>".pickRestart({
// … 100 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.