0:00/0:00
// Io canto — Cocciante
// 112 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 121 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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(`<
~@7 A B@2 C@2 D@2 E F G H I J K L M N G O I P K Q R S T U V@2 W X Y Z T U V@2 W X Y Z AA AB AC AD AE AF G H I J K L M
N G O I P K Q R S T U V@2 W X Y Z T U V@2 W X Y Z AA AB AC AD AE AF AG@3 AH AI AJ AK@2 AL AM AN AO AI AJ AK@2 AL AM AN
AO AI AJ AK@2 AL AM AN AO AP
>`.pickRestart({
A: "~@2 g3@3 ~ e3@3 ~ d3 ~ b2 a2 g2 ~", B: "[c2@27 ~ d2 e2 g2 ~]/2", C: "[a1@28 d2 e2 g2 ~]/2",
D: "[f1@26 g2 ~ g2 a2 c3@2]/2", E: "g2", F: "~@2 g3@2 ~ e3@2 ~ d3@2 b2 ~ b2 a2 g2 ~", G: "c2@5 ~ c2!2 c2@5 ~@3",
H: "c2@4 ~@2 c2!2 c2@5 ~@3", I: "a1@5 ~ a1!2 a1@5 ~@3", J: "a1@4 ~@2 a1!2 a1@5 ~@3", K: "f1@5 ~ f1!2 f1@5 ~@3",
L: "f1@4 ~@2 f1!2 f1@5 ~@3", M: "g1@4 ~@2 g1!2 g1@3 ~@5", N: "g1@3 ~@3 g1!2 g1@2 ~@2 e2@4",
O: "c2@4 ~@2 c2!2 c2@4 e2@3 ~", P: "a1@4 ~@2 a1!2 a1@4 e2@3 ~", Q: "f1@4 ~@2 f1!2 f1@3 ~ a1@2 c2 ~",
R: "g1@4 ~@2 g1!2 g1@3 ~@4 g1", S: "g1 ~ g1@3 ~ g2 ~ g2@2 e2@2 d2@2 ~@2", T: "c2@3 c3 ~ g2 g#2 a2 c3@3 ~ c2!2 ~@2",
U: "c2@2 ~ c3 ~ g2 g#2 a2 c3@3 ~ c2!2 ~@2", V: "a1@2 ~ a2 ~ e2 g2 g#2 a2@3 ~ a1!2 ~@2",
W: "f1@3 f2 ~ c2 c#2 d2 f2@3 ~ f1!2 ~@2", X: "f1@3 f2 ~ c2 c#2 d2 f2@3 ~ f1 f#1 ~@2",
Y: "g1@2 ~ g2 ~ d2 d#2 e2 g2@3 ~ g1!2 ~@2", Z: "g1@2 ~ g2 ~ d2 d#2 e2 g2@3 ~ g1 g1@2 ~",
AA: "a1@4 ~@2 a1 ~ a1@4 g2 g#2 a2 ~", AB: "a1@4 ~@2 a1 ~ e2 g2 a2 ~ a2@3 ~", AC: "f1@3 f2 ~ c2 d2 c2 f2@2 ~@2 c2@4",
AD: "f1@3 f2 ~ c2 d2 c2 f2@2 ~@2 f1@3 ~", AE: "g1@3 g2 ~ d2 e2 d2 g2 ~@3 g1!2 ~@2",
AF: "g1@2 ~ g2 ~ d2 e2 d2 g2 ~@3 g1 g1@2 ~", AG: "[a1@47 ~]/3", AH: "e2!2 ~@4 a1!2 ~@4 e2@3 ~",
AI: "d2@3 d3 ~ a2 a#2 b2 d3@3 ~ d2!2 ~@2", AJ: "d2@2 ~ d3 ~ a2 a#2 b2 d3@3 ~ d2!2 ~@2",
AK: "b1@2 ~ b2 ~ f#2 a2 a#2 b2@3 ~ b1!2 ~@2", AL: "g1@3 g2 ~ d2 d#2 e2 g2@3 ~ g1!2 ~@2",
AM: "g1@3 g2 ~ d2 d#2 e2 g2@3 ~ g1 g#1 ~@2", AN: "a1@2 ~ a2 ~ e2 f2 f#2 a2@3 ~ a1!2 ~@2",
AO: "a1@2 ~ a2 ~ e2 f2 f#2 a2@3 ~ a1 a1@2 ~", AP: "d2 ~ b1 ~ a1 f1 e1 d1@2 ~@7",
})).s("gm_electric_bass_finger").gain(0.46)
// chords · piano
const piano = note(`<
A@2 B@2 C@2 D@2 E@2 F@2 G@2 E@2 H@2 I J K L M N O@2 P@2 Q@2 R S T@2 U@2 V@2 W@2 X Y Z@2 AA@2 AB@4 AC@2 AD@2 AE AF AG@2
AH AI AJ AK AL@2 AM AN AO AP AQ AR AS AT AU AT AV AW AX AT AS AT AU AT AV AW AX AY@3 AZ@2 BA BB BC@3 ~ BD@2 BE BF BG
BH BI BJ BK BL BM@2 BN@2 BO@2 BP BQ BR@2 BS BT BU@2 ~
>`.pickRestart({
A: "[[g4,c5,e5]@3 g4@3 g4@10 [g4,a4,c5]@3 g4@3 [g4,b4,d5]@9 ~, c2@31 ~, ~@3 e5@28 ~, ~@3 c5@13 ~@3 [a4,c5]@12 ~, ~@3 [b4,d5]@8 ~@5]/2", // C Am7 G Am Bm
B: "[[g4,c5,e5]@3 g4@3 g4@10 [g4,a4,c5]@3 g4@3 [g4,b4,d5]@10, a1, ~@3 e5@29, ~@3 c5@13 ~@3 [a4,c5]@13, ~@3 [b4,d5]@8 ~@5]/2", // C Am7 G Am Bm
C: "[[g4,c5,e5]@3 g4@3 g4@10 [g4,a4,c5]@3 g4@3 [g4,b4,d5]@9 ~, f1@31 ~, ~@3 e5@28 ~, ~@3 c5@13 ~@3 [a4,c5]@12 ~, ~@3 [b4,d5]@8 ~@5]/2", // C Am7 G Am Bm
D: "[[g4,c5,e5]@3 g4@3 g4@10 [g4,a4,c5]@3 g4@3 [g4,b4,d5]@9 ~, g1@31 ~, ~@3 e5@28 ~, ~@3 c5@13 ~@3 [a4,c5]@12 ~, ~@3 [b4,d5]@8 ~@5]/2", // C Am7 G Am Bm
E: "[[g4,c5,e5]@3 g4@3 g4@10 [g4,a4,c5]@3 g4@3 [g4,b4,d5]@9 ~, ~@3 e5@28 ~, ~@3 c5@13 ~@3 [a4,c5]@12 ~, ~@3 [b4,d5]@8 ~@5]/2", // C Am7 G Am Bm
F: "[[g4,c5,e5]@3 g4@3 g4@10 [g4,a4,c5]@3 g4@3 [g4,b4,d5]@10, ~@3 e5@29, ~@3 c5@13 ~@3 [a4,c5]@13, ~@3 [b4,d5]@8 ~@5]/2", // C Am7 G Am Bm
G: "[[g4,e5]@3 g4@3 g4@10 [g4,a4,c5]@3 g4@3 [g4,b4,d5]@9 ~, ~@3 e5@28 ~, ~@3 c5@13 ~@3 [a4,c5]@12 ~, ~@3 [b4,d5]@8 ~@5]/2", // C Am7 G Am Bm
H: "[[g3,c4,e4]@3 ~@11 c2@2, c2@27 ~@5, c3@11 ~@3 c3@4 ~@2 c3@4 ~@2 c3@6, ~@3 [g3,b3,d4]@5 [g3,a3,c4,e4]@3 [g3,b3,d4]@5]/2", // C G Am7 G
I: "[g3,b3,d4]@3 ~@3 a2@2, a1, a2@3 ~, ~@3 [g3,a3,c4,e4]@5", // G Am7
J: "~@3 a2@3 ~@6 a2@4, a1@3 ~, [g3,b3,d4]@3 [g3,a3,c4,e4]@5", K: "~@3 f3, f2, [a3,c4,g4]@3 [a3,c4,e4]@5, ~ f3@2 ~",
L: "~@3 f3, f2, [a3,c4,g4]@3 [a3,c4,e4]@5, ~ f3 ~@2", M: "[g2,g3,c4,d4]@5 ~@7 g2@4, ~@5 g2@7 ~@4, ~@3 [g3,b3,d4]@5",
N: "[g2,f3,a3,c4]@3 g2 ~ g2 g2@2, ~@3 [g3,b3,d4]@5", // F G
O: "[[g3,d4,e4]@3 [g3,c4,d4]@5 [g3,b3,d4]@3 ~@3 c3@2, c2, c3@16 c3@9 ~@7, ~@11 [g3,c4,e4]@5]/2", // Em7 Gsus4 G C
P: "[[g3,b3,d4]@3 [g3,a3,c4,e4]@5 [g3,b3,d4]@3 ~@3 a2@2, a1@7 ~, a2@16 a2@9 ~@7, ~@11 [g3,a3,c4,e4]@5]/2", // G Am7 G Am7
Q: "[a3,c4,g4]@3 [a3,c4,e4]@5, [f2,f3]", R: "[c4,d4,g4]@3 [b3,d4,g4]@5, [g1,g2]",
S: "[g2,a3,c4,f4]@6 g2@5 ~ g2@4, g1@3 ~, ~@3 [b3,d4,g4]@5", // F G
T: "[[g4,c5,e5]@5 ~ [g4,b4,d5]@9 ~ [g4,a4,c5]@5 ~@7 c3@3 ~, [c2,c3]@15 c3@12 ~@5, ~ c2, ~@22 [g4,b4,d5]@9 ~]/2", // C G Am7 C G
U: "[[a4,c5,e5]@5 ~ [g4,b4,d5]@9 ~ a2@2 ~@4 [a1,g4,b4,d5]@9 ~, a2@14 ~@2 [g4,a4,c5]@5 ~@11, ~@6 a1@13 a2@13]/2", // Am G Am7
V: "[f2@3 f2 ~@2 [f3,a4,c5,d5]@9 ~ f2@3 f2@2 ~ [f2,a4,c5,d5]@9 ~, [a4,c5,e5]@5 ~@10 f3@17, ~@16 [a4,c5]@5 ~@11]/2", // Dm7 Am
W: "[g2@3 g2@3 [g4,b4,d5]@9 ~ g1@2 ~@4 [g4,b4,d5]@9 ~, [g4,c5,e5]@6 g2@25 ~, ~@16 [g4,a4,c5]@5 ~@11, ~@19 g1@9 ~@4]/2", // G C Am7
X: "~@3 c2 ~@10 c3 ~, c3@13 ~@3, [g4,c5,e5]@5 ~ [c2,g4,b4,d5]@10", // C G
Y: "c3@3 ~@3 [c2,g4,b4,d5]@10, [g4,a4,c5]@5 ~@11, ~@3 c3@11 ~@2", // G Am7
Z: "[[a4,c5,e5]@5 ~ [g4,b4,d5]@9 ~ a2@2 ~@4 [a1,g4,b4,d5]@10, a2@14 ~@2 [g4,a4,c5]@5 ~@11, ~@6 a1@13 a2@13]/2", // Am G Am7
AA: "[[a4,c5,e5]@5 ~ [a4,c5,d5]@9 ~ f2@2 ~@4 [f3,a4,c5,d5]@10, f2@15 ~ [a4,c5]@5 ~@11, ~@6 f3@13 f2@12 ~]/2", // Am D7 Dm7 Am
AB: "[[g4,c5,e5]@6 [g4,b4,d5]@9 ~ [g4,a4,c5]@5 ~@3 g1@6 ~@2 [a3,c#4]@3 ~ a2@2 a1@3 ~@3 a2@2 ~ a2 ~ a2@2 [a3,d4,f#4]@2 ~ a1 ~@5 a1@4, g2@15 ~ g2@14 a2@5 [a3,b3,d4]@3 [a3,c#4,e4]@9 ~ [a3,c#4,e4]@3 ~@3 [a3,e4,g4]@10, ~@6 g1@15 ~ [g4,b4,d5]@9 a1@7 ~@3 a2@3 ~@9 a2@5 a2@6, ~@21 a1@2 a1@4 ~ a1@2 ~@2]/4", // C G Am7 A D Bm7 A A7 …
AC: "[[f3,f4,a4]@2 f3 ~ f3@2 ~@10 [f4,a4]@2 f3 [f4,g4,b4]@2 ~@7 f3@3 ~, f2@10 f2@4 f2@8 f2@4 f2@5 ~, ~@3 [g4,b4]@3 [a4,c5]@10 ~@6 [f4,a4,c5]@9 ~, ~@8 f3@4 f3@4 ~@5 f3@2 ~ f3@4 ~@4]/2", // F G7 G Am F
AD: "[[g3,g4,b4]@3 ~ g3@2 ~@8 g3 ~ [g4,b4]@2 g3 [a4,c5]@2 g3 ~@2 g3@2 g3@4 ~@2, g2@12 g2@19 ~, ~@3 [a4,c5]@3 [b4,d5]@9 ~@7 [d5,f5]@10, ~@10 g3@4 ~ g3@3 ~@14]/2", // G Am Bm Dm
AE: "[g3,c4,e4]@3 ~@3 c3@2, c2, c3@3 ~, ~@3 [g3,b3,d4]@5", // C G
AF: "[g3,a3,c4,e4]@3 [g3,a3,c4,e4]@3 ~@6 c3@4, c2, ~@3 [g3,b3,d4]@5", // Am7 G
AG: "[a2@2 ~@4 a2 ~ [a3,c4,e4] ~@5 [a2,a3]@2, a1@15 ~ a1@6 a3@6 ~@4, [a3,c4,e4]@6 [a3,b3,d4]@9 ~@4 [a3,c4,e4]@3 [b3,d4]@10, ~@2 a2@2 ~@3 a2@2 a2 a2@4 ~@2, ~@13 a1@3]/2", // Am A Am Bm7 Am Bm
AH: "f3@3 f3@3 ~@6 f3@4, f2, [a3,c4,g4]@3 [a3,c4,e4]@5", // Am7 Am
AI: "~@7 c4, [f2,g4], [a3,c4]@3 e4@5, ~@2 f3 a3@2 f3@3, ~@3 c4@3 a3@2", // Fsus2 Am
AJ: "~@3 g3, g2, [c4,d4,g4]@3 [b3,d4,g4]@5, ~ g3@2 ~", // Csus2 G
AK: "g3@2 g3 ~@3 g2 ~, [g2,a3,c4,f4]@3 [b3,d4,g4]@4 ~, ~@3 g2@3 ~@2, ~@5 g3@2 ~", // F G
AL: "[[c3,g3,c4,e4]@3 ~@9 c3@2 ~@2 [g3,a3,c4,e4]@2 c3 ~ c3@2 ~@6 [g3,b3,d4]@3 ~, c2@6 ~@8 c2@8 c2@4 c2@5 ~, ~@3 [g3,c4,e4]@3 [g3,b3,d4]@9 ~@4 [g3,a3,c4,e4]@3 [g3,b3,d4]@6 ~@4, ~@4 c3@8 ~@12 c3@7 ~]/2", // C Am7 G C G Am7 G
AM: "[a2,g3,b3,d4]@3 ~@9 a2@4, a1@3 [a1,g3,a3,c4,e4]@5, ~@3 [g3,b3,d4]@3 ~@10, ~ a2 ~@2", // G Am7 G
AN: "[g3,b3,d4]@2 a2 ~@2 a1 ~@6 [g3,a3,c4,e4]@4, a1 a2@3, ~@3 [g3,b3,d4]@3 [g3,a3,c4,e4]@6 ~@4, ~@5 a1@3", // G Am7 G Am7
AO: "[f3,a3,c4,g4]@3 ~ f3@2 ~@6 f3@2 c3 ~, f2@6 [f2,a3,c4,e4]@9 ~, ~@3 [a3,c4,g4]@3 ~@10", // F Fmaj7 Am7
AP: "[f3,a3,c4,g4]@2 f3 ~ f3@2 ~@6 [f3,a3,c4,e4]@3 ~, f2@6 ~@4 f2@5 ~, ~@3 [a3,c4,g4]@3 [a3,c4,e4]@6 ~@4", // F Fmaj7 Am7 Am
AQ: "[g2,c4,d4,g4]@2 g2 ~@9 g2@2 g2 ~, g1@6 ~@4 g1@5 ~, ~@3 [c4,d4,g4]@3 [b3,d4,g4]@9 ~, ~ g2@2 ~", // Gsus4 Csus2 G
AR: "[g1,g2]@3 ~@3 g2@2 g2 ~ g2@2 g2@2 g2@2, [a3,c4,f4] [b3,d4,g4], ~@3 g2@3 ~@10, ~ g1!3", // G F G
AS: "[g4,c5,e5]@5 ~ [g4,b4,d5]@9 ~", AT: "[g4,a4,c5]@5 ~ [g4,b4,d5]@9 ~", AU: "[a4,c5,e5]@5 ~ [g4,b4,d5]@9 ~",
AV: "[a4,c5,e5]@5 ~ [a4,c5,d5]@9 ~", AW: "[a4,c5]@5 ~ [a4,c5,d5]@9 ~", AX: "[g4,c5,e5]@6 [g4,b4,d5]@9 ~",
AY: "[[g4,a4,c5]@5 ~ [g4,b4,d5]@8 ~@2 [a3,c#4]@2 a2 ~ a2@2 ~@3 a2 ~@2 a1@2 ~@2 [a3,c#4,e4]@2 ~@10 a2@4, ~@14 a2@4 ~ [a3,b3,d4]@3 [a3,c#4,e4]@9 ~@4 [a3,d4,f#4]@3 [a3,e4,g4]@10, ~@15 a1@7 a1@6 ~@6 a1@3 a1@5 a1@6, ~@26 a2@4 a2@5 ~ a2@2 ~@2 a2@4 ~@4]/3", // Am7 G A Bm7 A D A7
AZ: "[[f4,a4]@2 f3 ~ f3@2 ~@6 f3@2 ~@2 [f3,f4,a4]@2 f3 ~ f3!2 ~@6 f3@3 ~, f2@10 f2@4 f2@12 f2@5 ~, ~@3 [g4,b4]@2 ~ [a4,c5]@9 ~@4 [g4,b4]@3 [a4,c5]@9 ~, ~@2 f3 ~@3 f3 ~]/2", // F G Am G Am
BA: "[g3,g4,b4]@2 g3 ~ g3@2 ~@2 g3@2 ~@2 g2@2 g3 ~, g2@3 ~, ~@3 [a4,c5]@3 [b4,d5]@9 ~, ~@5 g3@2 ~", // G Am Bm
BB: "[b4,d5]@2 g3 ~ g3!2 [d5,f5]@2 g3 ~@3 [f5,a5]@4, g2, ~@3 [c5,e5]@3 ~@3 [e5,g5]@7, ~@5 g3@3", // Bm Dm F C Em
BC: "[~@4 a3@2 ~@5 a3@3 ~@17 a1 a1@15 ~, a2@14 a3 e3 [a3,b3,e4]@31 ~, e5@8 a3 b4@21 a2@17 ~, a4@7 e3@3 e5@32 ~@6, a3@2 e3@4 a3@2 a4@14 e3@25 ~]/3", // Asus2
BD: "[[a4,d5,f#5]@5 ~ [a4,c#5,e5]@9 ~ [a4,b4,d5]@5 ~ [a4,c#5,e5]@9 ~, [d2,d3]@15 d3@14 ~@3, ~ d2]/2", // D A Bm7 A D
BE: "~@6 [a4,c#5,e5]@9 f#2, b2, [b4,d5,f#5]@5 ~@11, ~@3 b1@12 ~", BF: "[a4,b4,d5]@5 ~ [b1,a4,c#5,e5]@10, b2",
BG: "[b4,d5,f#5]@5 ~ [b4,d5,e5]@9 d3, [g2,g3]@15 ~", BH: "[b4,d5]@5 ~ [g3,b4,d5,e5]@9 ~, g2@15 ~",
BI: "[a3,f#5]@6 [a4,c#5,e5]@9 ~, a2, [a4,d5]@5 ~@11", BJ: "[e2,a4,b4,d5]@6 [a2,a4,c#5,e5]@9 ~",
BK: "[a4,d5,f#5]@5 ~ [a4,c#5,e5]@9 a2, [d2,d3]@15 ~", BL: "[a4,b4,d5]@5 ~ [d2,a4,c#5,e5]@10, d3@15 ~",
BM: "[[b4,d5,f#5]@5 ~ [b1,a4,c#5,e5]@9 ~ [a4,b4,d5]@5 ~ [b1,a4,c#5,e5]@10, b2@15 f#2@2 ~@15, ~@16 b2@15 ~]/2", // Bm A Bm7 A
BN: "[[b4,d5,f#5]@5 ~ [g1,b4,d5,e5]@9 ~ [b4,d5]@5 ~@7 g1@3 ~, g2@20 ~@2 [g2,b4,d5,e5]@9 ~, ~@16 g1@11 ~@5]/2", // Bm Em7 Bm Em7
BO: "[~@3 a2@3 ~@10 [a4,b4,d5]@5 ~ a2@4 ~@2 a2@3 ~, a1@10 a2@11 ~ [a4,c#5,e5]@9 ~, [a4,d5,f#5]@6 [a4,c#5,e5]@9 ~ a1@12 ~@4]/2", // Bm7 A D A
BP: "[d3,a4,d5,f#5]@5 ~ [d3,a4,c#5,e5]@9 ~, d2", BQ: "~@3 d2 ~@8 d3@3 ~, d3@11 ~@5, [a4,b4,d5]@5 ~ [d2,a4,c#5,e5]@10",
BR: "[~@3 b1 ~@2 [b1,a4,c#5,e5]@8 ~@2 [a4,b4,d5]@5 ~@7 b2@2 b1 ~, b2@13 ~ b2@11 ~@7, [b4,d5,f#5]@5 ~@11 b1@13 ~@3, ~@22 [a4,c#5,e5]@9 ~]/2", // A Bm7 Bm A
BS: "~@3 g1 ~@2 [g1,b4,d5,e5]@10, g2@15 ~, [b4,d5,f#5]@5 ~@11", // Em7 Bm
BT: "~@3 g1 ~@2 [g1,b4,d5,e5]@9 ~, g2@15 ~, [b4,d5]@5 ~@11", // Em7 Bm
BU: "[g2 ~@2 a1 ~@2 [a1,a4,c#5,e5]@9 ~ [a4,b4,d5]@5 ~ [a4,c#5,e5]@9 ~, a2@31 ~, [a4,d5,f#5]@3 ~@5 a1@8]/2", // A Bm7 A D
})).s("gm_piano").gain(0.3)
// chords · synth brass 2
const synth_brass_2 = note(`<
A@2 B@2 C@2 D@2 E F E F E F E G ~@7 H@3 I@2 J@2 K@2 L M N O P Q L M L M N O P Q L M R S T@2 U V ~@7 H@3 I@2 J@2 K@2 L
M N O P Q L M L M N O P Q L M R S T@2 W U ~@3 X Y Z AA AB AC AD Y Z Y Z AA AB AC AD Y Z Y Z AA AB AC AD Y Z AE
>`.pickRestart({
A: "[[c4,e4]@3 [b3,d4]@5 [a3,c4]@3 [b3,d4]@5, c2]/2", B: "[[c4,e4]@3 [b3,d4]@5 [a3,c4]@3 [b3,d4]@5, a1]/2",
C: "[[c4,e4]@3 [b3,d4]@5 [a3,c4]@3 [b3,d4]@5, f2]/2", D: "[[c4,e4]@6 [b3,d4]@10 [a3,c4]@6 [b3,d4]@9 ~, g2@31 ~]/2",
E: "[c4,e4]@3 [b3,d4]@5", F: "[a3,c4]@3 [b3,d4]@5", G: "[a3,c4]@6 [b3,d4]@9 ~",
H: "[~@12 d5@10 g4@18 d4@3 e4@2 g4@3]/3", I: "[e4@6 d4@21 ~ g4@4]/2", J: "[c4@6 g4@18 d4@3 e4@2 g4@3]/2",
K: "[e4@6 d4@19 ~@7]/2", L: "[g3,c4,e4]@3 [g3,b3,d4]@5", M: "[g3,a3,c4]@6 [g3,b3,d4]@9 ~",
N: "[a3,c4,e4]@3 [g3,b3,d4]@5", O: "[g3,a3,c4]@5 ~ [g3,b3,d4]@9 ~", P: "[a3,c4,e4]@5 ~ [a3,c4,d4]@10",
Q: "[a3,c4]@6 [a3,c4,d4]@9 ~", R: "[a3,c#4]@15 ~", S: "[c#4,e4] ~@2 [d4,f#4] ~@2 [e4,g4]@9 ~",
T: "[f3,a3] ~@2 [g3,b3] ~@2 [a3,c4]@9 ~", U: "[g3,b3] ~@2 [a3,c4] ~@2 [b3,d4] ~@2 [c4,e4] ~@2 [d4,f4] ~@3",
V: "[d4,f4] ~@2 [e4,g4] ~@2 [f4,a4] ~@2 [g4,b4] ~@2 [a4,c5] ~ [b4,d5] ~", W: "[g3,b3] ~@2 [a3,c4] ~@2 [b3,d4]@9 ~",
X: "[g4,d5]!2 ~@4 [a4,e5]!2 ~@8", Y: "[a3,d4,f#4]@3 [a3,c#4,e4]@5", Z: "[a3,b3,d4]@6 [a3,c#4,e4]@9 ~",
AA: "[b3,d4,f#4]@3 [a3,c#4,e4]@5", AB: "[a3,b3,d4]@5 ~ [a3,c#4,e4]@9 ~", AC: "[b3,d4,f#4]@5 ~ [b3,d4,e4]@10",
AD: "[b3,d4]@6 [b3,d4,e4]@9 ~", AE: "[a4,d5] ~ [g4,c5] ~@4 [a4,d5]@2 ~@7",
})).s("gm_synth_brass_2").gain(0.26).pan(0.4)
// chords · synth brass 1
const synth_brass_1 = note(`<
~@7 A B C B C B C D@2 ~@24 E@2 F@2 G@2 H I J K L@2 M N ~@24 E@2 F@2 G@2 H I J K L@2 O P Q@3 R S@2 T@2 U@2 V W U@2 V X
Y@2 Z@2 AA@2 V AB AA@2 V AC AD
>`.pickRestart({
A: "~@10 g2 ~ g2 a2 c3@2", B: "a4@3 g4@5", C: "e4@6 ~@4 g2 ~ g2 a2 c3@2, ~@3 d4@4 ~",
D: "[a4@3 g4@5 e4@3 d4@4 ~, g2@31 ~]/2", E: "[a5@6 g5@17 ~ d5@3 e5@2 g5@3]/2", F: "[e5@3 d5@10 ~@3]/2",
G: "[a5@6 g5@18 d5@3 e5@2 g5@3]/2", H: "e5@3 d5@5", I: "g5@15 ~",
J: "[a3,c#4,a4,c#5] ~@2 [b3,d4,b4,d5] ~@2 [c#4,e4,c#5,e5]@9 ~", // A Bm C#m
K: "[c#4,e4,c#5,e5] ~@2 [d4,f#4,d5,f#5] ~@2 [e4,g4,e5,g5]@9 ~", // C#m D Em
L: "[f3,a3,f4,a4] ~@2 [g3,b3,g4,b4] ~@2 [a3,c4,a4,c5]@9 ~", // F G Am
M: "[g3,b3,g4,b4] ~@2 [a3,c4,a4,c5] ~@2 [b3,d4,b4,d5] ~@2 [c4,e4,c5,e5] ~@2 [d4,f4,d5,f5] ~@3", // G Am Bm C Dm
N: "[d5,f5] ~@2 [e5,g5] ~@2 [f5,a5] ~@2 [g5,b5] ~@2 [a5,c6] ~ [b5,d6] ~", O: "[g4,b4] ~@2 [a4,c5] ~@2 [b4,d5]@9 ~",
P: "[g4,b4,d5] ~@2 [a4,c5,e5] ~@2 [b4,d5,f5] ~@2 [c5,e5,g5] ~@2 [d5,f5,a5] ~@3", Q: "a1/3",
R: "[b4,d5,g5]!2 ~@4 [a4,d5,e5,a5]!2 ~@8", S: "[b5@6 a5@17 ~ e5@3 f#5@2 a5@3]/2", T: "[f#5@3 e5@10 ~@3]/2",
U: "[b5@6 a5@18 e5@3 f#5@2 a5@3]/2", V: "f#5@3 e5@5", W: "a5@15 ~", X: "a5@7 ~", Y: "[d5@6 a5@18 e5@3 f#5@2 a5@3]/2",
Z: "[f#5@3 e5@3 b5@4 a5@4 a4@2]/2", AA: "[d5@6 a5@18 e5@3 f#5@3 a5@2]/2", AB: "a5@12 a4@3 ~",
AC: "~@5 [e3,b3,e4] [f#3,c#4,f#4] [a3,e4,a4] [b3,f#4,b4] [d4,a4,d5] [e4,b4,e5] [f4,c5,f5] [f#4,d5,f#5] [a4,e5,a5] [b4,f#5,b5] ~", // E5 F#5 A5 B5 D5 E5 F5 D …
AD: "[a4,d5,d6] ~ [g4,c5,c6] ~ [e4,a4,a5] [d4,f4,f5] [c4,e4,e5] [a3,d4,d5]@2 ~@7", // D5 C5 A5 Dm C D5
})).s("gm_synth_brass_1").gain(0.28).pan(0.6)
// chords · synth strings 1
const synth_strings_1 = note(`<
A@2 B@2 C@4 D@2 E@2 F@2 G@2 H I J K ~ L M N@3 I O P@2 Q R K S K S K T U V K S K S K T U V W@2 X Y Z AA AB@2 AC@2 AD@2
AE@2 AF@2 AG@4 AH@2 ~@16 AI@2 AJ@4 AK@3 ~ AL@2 AM AN@4 AO AP AO AP AQ AP AR@3 AP AS AT@2 AU@3 AV ~
>`.pickRestart({
A: "[c4,g4]/2", B: "e4/2", C: "[c4@31 d4@31 ~@2]/4", D: "[[c4,e4]@5 ~ [b3,d4]@10 ~@16, c3]/2",
E: "[[c4,e4]@6 b3@10 ~@6 d4@9 ~, a2]/2", F: "[[c4,e4]@6 ~@10 c4@6 [b3,d4]@9 ~, f2]/2",
G: "[[c4,e4]@6 [b3,d4]@9 ~@17, g2@15 ~]/2", H: "[c4,e4]@5 [b3,d4]@10 ~", I: "e4@3 ~@5", J: "[c4,e4]@6 d4@9 ~",
K: "[c4,e4]@3 [b3,d4]@5", L: "g4@3 ~@5", M: "d4, g4@7 ~",
N: "[[a3,c4,f4]@7 ~@8 e4@6 ~@10 e4@6 ~@11, ~@7 g4@15 ~@26]/3", O: "[c4,e4]@3 ~@5",
P: "[g4@3 e4@5 f4@3 ~@5, a4@15 ~]/2", Q: "[d4,g4]@15 ~, c4@3 ~@5", R: "[a3,c4,f4]@6 [b3,d4,g4]@9 ~",
S: "[a3,c4]@3 [b3,d4]@5", T: "[a3,c4]@15 ~", U: "[a3,c4]@3 [g3,b3]@5", V: "[f3,a3]@3 [g3,b3]@5",
W: "[[a4,c#5]@3 [b4,d5]@3 [c#5,e5]@9 ~ c#5@3 [d5,f#5]@3 [e5,g5]@9 ~, [a3,e4]@31 ~, ~@15 e5@3 ~@14]/2", // A Bm C#m D Em A5
X: "[f4,a4]@3 [g4,b4]@3 [a4,c5]@10, [f3,c4]@15 ~", Y: "[f4,a4]@3 [g4,b4]@2 [a4,c5]@9 ~@2, [f3,c4]@7 ~",
Z: "[g4,b4]@3 [a4,c5]@3 [b4,d5]@3 [c5,e5]@3 [d5,f5]@4, [g3,d4]@15 ~", // G Am Bm C Dm G5
AA: "[b4,d5]@3 [c5,e5]@2 ~ [d5,f5]@3 g5@7, [g3,d4]", AB: "[[c4,e4]@5 [b3,d4]@11 c4@6 b3@10, c3]/2",
AC: "[[c4,e4]@5 [b3,d4]@10 [c4,e4]@7 [b3,d4]@10, a2]/2", AD: "[g4@5 ~@17 e4@9 ~, [f2,a3,c4]]/2",
AE: "[c4@6 b3@9 ~ [a3,c4]@7 d4@8 ~, g2, [d4,g4] ~]/2", AF: "[[c4,e4]@3 [b3,d4]@5 [c4,e4]@3 [b3,d4]@5, c3]/2",
AG: "[[c4,e4]@6 [b3,d4]@9 ~ [c4,e4]@6 e4@9 ~ g4@6 e4@7 ~@3 g4@5 e4@9 ~@2, a2@32 f2@31 ~, ~@22 c4@24 ~@2 c4@15 ~]/4", // C Bm C
AH: "[c4@6 b3@9 ~ [a3,c4,f4]@7 b3@8 ~, g2, [d4,g4] ~]/2", // F G5
AI: "[[a4,c#5]@3 [b4,d5]@3 e5@9 ~ c#5@3 [d5,f#5]@3 [e5,g5]@9 ~, [a3,e4]@31 ~, ~@6 c#5@3 ~@6 e5@3 ~@14]/2", // A Bm D Em A5
AJ: "[[f4,a4]@3 [g4,b4]@3 c5@9 f4@4 [g4,b4]@3 [a4,c5]@9 ~ b4@3 [a4,c5]@3 [b4,d5]@9 ~ [b4,d5]@3 [c5,e5]@3 d5@3 [e5,g5]@3 f5@2 [g5,b5] ~, [f3,c4]@31 ~ [g3,d4]@32, ~@6 a4@13 ~@12 g4@4 ~@19 f5@2 ~@8]/4", // F G Am Bm C Em G F5 …
AK: "[~ [a3,e4]@46 ~]/3", AL: "[[d4,f#4]@5 ~ c#4@9 ~ [b3,d4,f#4]@6 [c#4,e4]@9 ~, a4@31 ~, ~@5 e4@10 ~@17]/2",
AM: "[d4,f#4]@5 ~ c#4@9 ~, a4@4 ~ e4@10 ~", // D
AN: "[[d4,f#4]@6 [c#4,e4]@9 ~ f#4@5 [c#4,e4]@10 [b3,d4]@6 [c#4,e4]@10 ~ d4@5 [c#4,e4]@11, ~@15 d4@6 ~@26 f#4@6 ~@11]/4", // D C#m Bm C#m
AO: "[b3,d4]@6 [c#4,e4]@9 ~", AP: "[d4,f#4]@3 [c#4,e4]@5", AQ: "[b3,d4]@3 [c#4,e4]@5",
AR: "[[b3,d4]@6 [c#4,e4]@9 ~ d4@5 ~ c#4@9 [b3,d4]@7 [c#4,e4]@9 ~, ~@15 f#4@6 e4@10 ~@17]/3", // Bm C#m Bm C#m
AS: "[b3,d4]@5 ~ e4@9 ~, ~@5 c#4@9 ~@2", AT: "[[d4,f#4]@6 [c#4,e4]@9 ~ b3@5 ~ c#4@9 ~, ~@15 d4@6 e4@10 ~]/2",
AU: "[[d4,f#4]@6 [c#4,e4]@9 [b3,d4]@6 [c#4,e4]@9 ~ [d4,f#4]@6 [c#4,e4]@9 ~@2]/3", AV: "[b3,d4]@5 [c#4,e4]@10 ~",
})).s("gm_synth_strings_1").gain(0.12)
// chords · synth strings 1 · soft notes
const synth_strings_1_soft = note(`<
~@2 A@6 B@2 C@2 D E ~ F ~ G H ~ I J K L@3 M N O@2 P ~@22 Q ~ R ~@2 S T ~ U ~@4 V W ~ X ~@16 Y ~@4 Z ~@29
>`.pickRestart({
A: "[a3@32 f3@31 g3@31 ~@2]/6", B: "[~@15 [a3,c4]@6 ~ [b3,d4]@9 ~]/2",
C: "[~@6 d4@9 ~ c4@6 b3@9 ~, ~@15 a3@7 ~@10]/2", D: "~@3 [b3,d4]@5", E: "a3@7 ~@9", F: "[a3,c4]@3 [b3,d4]@4 ~",
G: "c4@6 [b3,d4]@9 ~", H: "~@3 b3@5", I: "g4@6 e4@9 ~, [c4,a4]@15 ~", J: "~@6 e4@9 ~, [c4,a4]@15 ~", K: "c4@3 b3@4 ~",
L: "[~@7 b3@8 c4@7 [b3,d4]@9 c4@7 [b3,d4]@9 ~, ~@3 d4@4 ~@17]/3", M: "c4@5 ~ d4@9 ~, ~@5 b3@10 ~",
N: "~@6 [b3,d4]@9 ~", O: "[~@22 e4@9 ~, c4@15 ~]/2", P: "~@7 b3@7 ~@2", Q: "~@9 e5@7", R: "e4@6 d4@9 ~",
S: "~@3 e4@5", T: "g4@3 ~@5", U: "~@7 b3@8 ~", V: "a3@15 ~", W: "a3@7 ~", X: "~@7 d4@8 ~", Y: "~@9 c#5@6 ~",
Z: "~@6 a5 ~",
})).s("gm_synth_strings_1").gain(0.06)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@32 A B C D E F A G A B C D E F A G H@4 I@2 ~@16 J K L M N O J P J K L M N O J P H@4 I@2 Q H R ~ S T U V W X S Y S T
U V W X S Y S T U V W X S Y Z
>`.pickRestart({
A: "~@2 [g4,c5] ~ g4 [g4,c5] ~ g4 [g4,c5] ~ g4 [g4,c5] ~ g4 [g4,c5]!2", // C5
B: "g4 [g4,c5]!2 g4 [g4,c5]!2 ~ [g4,c5] ~ [g4,c5] ~ g4 [g4,c5]!2 g4 [g4,c5]", // C5
C: "~@2 [a4,c5] ~ a4 [a4,c5] ~ a4 [a4,c5] ~ a4 [a4,c5] ~ a4 [a4,c5]!2", // Am
D: "a4 [a4,c5]!2 a4 [a4,c5]!2 ~ [a4,c5] ~ [a4,c5] a4!2 [a4,c5]!2 a4 [a4,c5]", // Am
E: "~@2 [f4,c5] ~@2 [f4,c5] ~ f4 [f4,c5] ~ f4 [f4,c5] ~ f4 [f4,c5]!2", // F5
F: "~@2 [f4,c5]!2 f4 [f4,c5] ~ f4 [f4,c5]!2 f4 [f4,c5] ~ [f4,c5] f4 [f4,c5]", // F5
G: "g4 [g4,c5]!2 g4 [g4,c5]!2 ~ [g4,c5] ~ [g4,c5] g4!2 [g4,c5]!2 g4 [g4,c5]", // C5
// … 103 more lines
More by Cocciante
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.