0:00/0:00
// Gente di mare — Tozzi
// 58 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 56 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(58/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 · fretless bass
const bass = note(`<
~ A B C D E F G H I J K L M N O P Q R B S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP@2 AQ AR AS AT
AU AV AW AX AY AZ@2
>`.pickRestart({
A: "~@6 e1@2 b1 e2@3", B: "a1@11 ~@3 e1@2 b1@2 e2@5 ~", C: "b1@9 ~@5 c#2@2 g#2@2 e3@6",
D: "d#3 e3 d#3 b2 f#2@2 b2@6 a2@8 c#3@4", E: "b2@5 f#2 b1@6", F: "e1@4 b1@2 e2@6 a1@11 ~",
G: "~@2 e1@2 b1@2 e2@5 ~ b1@12", H: "~@2 c#2@2 e2@2 g#2 a2 g#2@2 e2@2 b2@12", I: "a2@8 c#3@4 b2@9 ~ f#2@2",
J: "b1@6 b1@2 c#2@2 d#2 ~ e2@10 b1@2", K: "e1@5 ~ e1@2 f#1@2 g#1@2 a1@10 b1@2", L: "a1@7 ~ a1 ~ a1@2 b1@12",
M: "b1@7 ~ c#2@2 b1@2 e1@9 ~ b1@2", N: "e1@6 e1 ~ f#1@2 g#1@2 a1@12", O: "b1@9 ~ b1@2 e1@9 ~ b1@2",
P: "e1@5 ~ e1@2 f#1@2 g#1@2 a1@12", Q: "b1@2 c#2 a#1", R: "b1@11 ~ e1@4 b1@2 e2@6",
S: "b1@12 ~@2 c#2@2 e2@2 g#2 a2 g#2@2 e2@2", T: "b2@3 a2@2 c#3", U: "b2@9 ~ f#2@2 b1@6 b1@2 c#2@2 d#2 ~",
V: "e2@10 b1@2 e1@5 ~ e1@2 f#1@2 g#1@2", W: "a1@10 b1@2 a1@7 ~ a1 ~ a1@2", X: "b1@12 b1@7 ~ c#2@2 b1@2",
Y: "e1@9 ~ b1@2 e1@6 e1 ~ f#1@2 g#1@2", Z: "a1@12 b1@9 ~ b1@2", AA: "e1@9 ~ b1@2 e1@5 ~ e1@2 f#1@2 g#1@2",
AB: "a1 b1", AC: "c#2@6 a#1@6 b1@11 ~", AD: "e1@9 ~ b1@2 e1@8 ~@2 e1@2", AE: "a1@4 c#2@2 b1@3 a1@3",
AF: "g#1@3 e1 f#1 g#1 a1@3 a#1@3", AG: "b1@11 ~ c2@8 d2@2 e2@2", AH: "f2@5 c2 f1@6", AI: "a#1@10 c2@2 a#1@9 ~ a#1@2",
AJ: "c2@5 c2 c2@4 d2 c2", AK: "f1@9 ~ c1@2 f1@6 f1@2 g1@2 a1@2", AL: "a#1@10 c2 d2 c2@11 ~",
AM: "f1@10 c2@2 f1@5 ~ f1@2 g1@2 a1@2", AN: "a#1@11 ~ c2@12", AO: "d2@3 b1@3 c2@5 a1",
AP: "[a#1@7 ~@10 f1@15 ~@16, ~@8 c2@11 ~@29]/2", AQ: "c2@6 f2@5 c2", AR: "f1@6 a#1@5 c2",
AS: "a#1@9 ~ a#1@2 c2@10 c2@2", AT: "c2@8 d2@2 c2@2 f1@9 ~ c1@2", AU: "f1@6 f1@2 g1@2 a1@2 a#1@10 c2 d2",
AV: "c2@11 ~ f1@10 c2@2", AW: "f1@5 ~ f1@2 g1@2 a1@2 a#1@11 ~", AX: "c2@2 d2 b1", AY: "c2@5 a1 a#1@6",
AZ: "[c2 f1@2 ~]/2",
})).s("gm_fretless_bass").gain(0.41)
// chords · piano
const piano = note(`<
A B C D E F G H I J K L@2 M N O N P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AL AN AO@2 AP AQ AR AS
AT AU AT AV AW AX@2
>`.pickRestart({
A: "~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3, c#4 ~ [b3,f#4] ~, ~ d#4 e4 ~ d#4 e4", // B5
B: "[d#3,f#3,b3] [c#3,e3,a3] [e2,b2,e3,g#3]@2", C: "[a1,a2,e3,a3,c#4] [e2,e3,g#3,b3]",
D: "[b1,b2,d#3,f#3,b3] [c#2,c#3,g#3,c#4,e4]", E: "[b1,b2,f#3,b3,d#4]@6 [a1,a2,e3,a3,c#4]@3 ~ [c#2,c#4,e4,g#4]@2",
F: "[b1,b2,b3]@8 ~ b3 [f#2,b3,e4]@2 [f#3,b3,d#4]@6 [a3,c#4,e4]@6, [d#4,f#4]@6 ~@4 g#3 ~ b1@12", // B Esus2 B A D#m
G: "[e2,g#3,b3]@3 ~ d#4 e4, e4@3 ~, ~ [a1,a2,c#4], ~@6 a3@5 ~", H: "[e2,g#3,b3,e4] [b1,b2,d#3,f#3,b3]",
I: "[c#2,c#3,e3,g#3,c#4] [b1,b2,f#3,b3,d#4]", // C#m B
J: "[a1,a2,a3,c#4,e4]@6 ~@2 [c#3,c#4,e4]@2 ~@2 [b1,b2,b3,d#4,f#4]@9 b3 [f#2,b3,e4]@2, ~@8 [c#2,g#4]@4 ~@10 g#3 ~", // A C#m B Esus2 C#5
K: "[b1,f#3,b3,d#4]@12 [e2,b3,e4]@9 e3 [a2,e3,c#4,e4]@2, ~@12 [e3,g#3]@8 ~@2 a3 ~", // B E5 A E
L: "[[e3,g#3,b3,e4]@10 ~@2 [e3,a3,c#4]@9 e3 [b3,d#4]@2 [e3,a3,c#4]@10 ~@2 [b1,b2,d#4]@9 b3 [e2,b3,e4]@2, e2@6 [a1,a2]@11 ~@7, ~@22 [e3,c#4] ~@13 [f#3,b3]@8 ~@2 g#3 ~]/2", // E A B A B E5 A C#m …
M: "[f#3,b3,d#4]@4 ~@2 [a3,c#4,e4]@6 [e2,g#3,b3]@9 e3 [a1,a2,e3,c#4,e4]@2, [b1,b2]@12 e3@8 ~@2 a3 ~, ~@12 e4 ~@11", // B A E A B
N: "[e2,e3,g#3,b3,e4] [a1,a2,e3,a3,c#4]", // E A
O: "[b1,b2,f#3,b3,d#4]@12 [e2,g#3,b3,e4]@9 e3 [a1,e3,a3,c#4,e4]@2, ~@3 e3@2 ~", // B E A
P: "[b1,b2,f#3,b3,d#4]@2 [c#2,c#3,g#3,c#4,e4] [a#1,a#2,c#4,e4,f#4]", Q: "[b1,b2,a3,c#4,e4,f#4] [e2,g#3,b3,e4]",
R: "~ d#4 e4 [e2,g#3,b3,e4]@3, [a1,a2,e3,a3,c#4]@13 ~@11", // E A
S: "~@2 d#4 [c#2,c#3,e3,g#3,c#4]@3, [b1,b2,d#3,f#3,b3] ~, ~ c#4@2 ~@3", // C#m B
T: "[b1,b2,f#3,b3,d#4]@3 [c#4,e4]@2 [c#2,c#3,c#4,e4,g#4], ~ [a1,a2,a3]", // B C#m A
U: "[b1,b2,b3,d#4,f#4]@9 b3 [f#2,g#3,b3,e4]@2 [b1,f#3,b3,d#4]@6 [b2,a3,c#4,e4]@6", // B E B A
V: "[e2,b3,e4]@9 e3 [a2,e3,c#4,e4]@2 [e3,g#3,b3,e4]@10 ~@2, [e3,g#3]@8 ~@2 a3 ~ e2@12", // E5 A E
W: "[e3,a3,c#4]@9 e3 [b3,d#4]@2 [e3,a3,c#4]@12, [a1,a2], ~@10 [e3,c#4] ~@13", // A B A C#m
X: "[b1,b2,b3,d#4]@9 f#3 [e2,g#3,b3,e4]@2 [f#3,b3,d#4]@4 ~@2 [a3,b3,e4]@6, f#3@7 ~@5 [b1,b2]@12", // B E B Asus2 B
Y: "[e2,g#3,b3,e4]@9 e3 [a1,a2,e3,c#4,e4]@2 [e2,e3,g#3,b3,e4]@12, e3@8 ~@2 a3 ~@13", // E A E
Z: "[a1,a2,e3,a3,c#4] [b1,b2,f#3,b3,d#4]", // A B
AA: "[e2,g#3,b3,e4]@9 e3 [a1,e3,a3,c#4,e4]@2 [e2,e3,g#3,b3,e4]@10 ~@2, e3 ~@2", // E A E
AB: "[a1,a2,e3,a3,c#4]@3 ~ [b1,b2,f#3,b3,d#4]@4", AC: "[c#2,c#3,g#3,c#4,e4] [a#1,a#2,c#4,e4,f#4] [b1,b2,b3,e4,f#4]@2",
AD: "[e2,e3,g#3,b3,e4]", AE: "[a1,a2,a3,c#4,e4]@4 [c#2,g#3,b3,e4]@2 b1@3 [a1,a2]@3, ~ [f#3,b3,d#4], ~@3 b2 ~@2",
AF: "[g#1,g#2,e3,b3,e4]@12 [a1,a2,a3,c#4,e4]@6 [a#1,a#2,c#4,e4,f#4]@5 ~", // E A F#7
AG: "[a3,c#4,e4]@2 ~@3 c#4 [a#3,d4,f4]@2 ~@3 [c3,a#3,d4,f4], b2@3 b2@3 c3@5 ~, ~ e4@2 ~@2 f3, ~@2 c#4@3 ~@3 [a#3,d4,f4]@3 ~, ~@2 a3@2 a3@2 c2@3 c2@3", // A A#
AH: "[f2,f3,c4,f4,a4]@9 c4 [c3,c4,g4,a#4]@2 [f2,f3,c4,f4,a4]@12", // F C7 F
AI: "[a#1,a#2,d4,f4,a#4]@9 d4 [f2,e4,g4,c5]@2 [a#1,a#2,d4,f4,a#4]@12", // A# C A#
AJ: "[c2,c3,g3,c4,e4]@9 g3 [f2,a3,c4,f4]@2 [c2,c3,g3,c4,e4]@12", // C F C
AK: "[f2,f3,a3,c4,f4]@9 a3 [c3,a#3,d4,f4]@2 [f2,f3,a3,c4,f4]@12", AL: "[a#1,a#2,f3,a#3,d4] [c2,c3,g3,c4,e4]",
AM: "[f2,f3,a3,c4,f4]@9 f3 [a#1,f3,a#3,d4,f4]@2 [f2,f3,a3,c4,f4]@12", // F A# F
AN: "[d2,d3,a3,d4,f4] [b1,b2,d4,f4,g4] [c2,c3,c4,f4,g4]@2", // Dm G7 Csus4
AO: "[[a#1,a#2]@5 ~@3 [c2,c3]@9 [f2,a3,c4,f4]@20 ~@11, f4@17 ~@31, [a#3,d4,a4]@7 ~@17]/2", // A# C F A#maj7
AP: "[c2,c3,a#3,d4,f4]@12 [f2,f3,a3,c4,f4]@9 a3 [c3,a#3,d4,f4]@2", // A# F A#
AQ: "[f2,f3,a3,c4,f4]@12 [a#1,a#2,f3,a#3,d4,f4]@9 f3 [f2,f3,c4,e4]@2", // F A# Fmaj7
AR: "[a#1,a#2,f3,a#3,d4]@12 [c2,c3,g3,c4,e4]@9 g3 [f2,a3,c4,f4]@2", // A# C F
AS: "[g3,c4,e4]@6 [a#3,c4,f4]@6 [f2,f3,a3,c4,f4]@9 a3 [c3,a#3,d4,f4]@2, [c2,c3] ~", // C A#sus2 F A# C
AT: "[f2,f3,a3,c4,f4] [a#1,a#2,f3,a#3,d4]", AU: "[c2,c3,g3,c4,e4]@12 [f2,f3,a3,c4,f4]@9 f3 [a#1,f3,a#3,d4,f4]@2",
AV: "[c2,c3,g3,c4,e4]@2 [d2,d3,a3,d4,f4] [b1,b2,d4,f4,g4]", AW: "[c2,c3,c4,f4,g4] [a#1,a#2,a#3,d4,f4]",
AX: "[[c2,c3,g3,c4,e4]@5 ~ [c4,f4]@9 ~@9, ~@11 [f2,c3,f3,a3]@19 ~@18]/2", // C F5 F
})).s("gm_piano").gain(0.11)
// other · trombone
const trombone = note("<~@6 A B C D ~@6 E F@2 ~ G@3 ~@3 H@2 I J K ~@9 L M N O@2 ~@6 P Q R@3>".pickRestart({
A: "~ g#3 b3 g#3 b3 g#3 b3 g#3 b3 g#3 b3 c#4@3 ~@10", B: "~ g#3 b3 g#3 b3 g#3 b3 g#3 b3 c#4@3 f#3@4 ~@8",
C: "~ e3 g#3 e3 g#3 e3 g#3 e3 g#3 a3@2 g#3@2 f#3@5 ~@6", D: "~ c#3 e3 c#3 e3 c#3 e3 c#3 g#3@3 f#3@2 f#3@4 ~@7",
E: "~@6 e3@2 f#3@2 g#3@2 a3@2 a3 ~ a3@2 b3@4 c#4@2",
F: "[d#4 ~ d#4 b3@3 ~@2 e4@2 f#4@2 g#4@2 f#4@2 e4@2 c#4@4 ~ f#4@5 ~@20, ~@3 c#4 ~@18 g#4@2 ~@24]/2",
G: "[~@13 e3 g#3 e3 g#3 e3 g#3 e3 g#3 a3@2 g#3@3 f#3@4 ~@7 c#4 e4 c#4 e4 c#4 e4 c#4 g#4@3 f#4@2 f#4@8 ~@15]/3",
H: "[~@18 g#4@2 f#4@2 e4 a4@3 a4@6 ~@10 f#4@2 e4@2 d#4@2]/2", I: "g#4@5 ~@4 e4 f#4 g#4",
J: "a3@2 a3 ~ a3 ~ a3@2 c#4@2 e4@2 f#4@2 f#4 e4 d#4@4 e4@2 f#4@2", K: "g#4 f#4 e4 c#4@2 g#4 f#4@2 ~@4",
L: "~@9 f4 g4 a4", M: "a#3@2 a#3@2 a#3@2 a#3@2 d4@2 f4@2 g4@2 [d4,e4] c4@3 ~@2 f4@2 g4@2",
N: "a4 g4 f4 d4@2 a4 g4@4 f4 g4", O: "[a4@2 g4@2 f4@3 c4@5 g4@5 f4@10 ~@21]/2",
P: "~@6 f4@2 g4@2 a4@2 a#3@2 a#3 ~ a#3@2 a#3@2 d4@2 f4@2",
Q: "g4@2 e4 c4@5 f4@2 g4@2 a4@2 g4@2 f4@2 d4@4 a4@2, ~@3 d4 ~@20",
R: "[g4@8 f4@2 ~ a4@4 g4@3 f4@4 c4@8 ~ g4@6 f4@16 ~@19, ~@5 g4 ~@30]/3",
})).s("gm_trombone").gain(0.54)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
A@2 ~@8 B@5 C@2 D@2 E@2 F G H I J K L@2 M N O P Q@2 R@2 S T U V W X Y@2 Z AA@6 AB@2 AC@2
>`.pickRestart({
A: "[~@4 d#4@4 e4@4 f#4@4 b4@7 ~ [f#2,d#3,f#3]@6 [a2,c#3,a3]@6 e2@12, ~@23 b3@6 ~ e4@18]/2", // D#m A
B: "[b3@6 a3@6 [g#3,b3]@9 a3@2 ~ [g#3,b3]@12 [a3,c#4]@10 [b3,d#4]@2 [a3,c#4]@12 [f#3,d#4]@10 [g#3,e4]@2 [f#3,d#4]@6 a3@6 [g#3,b3]@10 [a3,c#4]@2 [g#3,b3]@12 [a3,c#4]@12, ~@2 e4@8 b3@3 e4@7]/5", // G#m A B A D#m C#m D#m G#m …
C: "[[f#3,d#4]@6 g#3@5 [a3,c#4] [g#3,b3]@6 [a3,c#4]@6, b3@11 ~@13, ~ e4@3]/2", // D#m A G#m A
D: "[[b3,d#4,f#4]@2 g#4 [a#3,f#4] a3@2 [g#3,b3,g#4]@2, ~ [c#4,e4]@2 ~, ~ e5, ~@4 f#4 ~@3]/2", // B D#m G#m C#m
E: "[c#5 d#5 ~ g#3@3 ~ c#5 d#5 [g#3,c#5]@3, [a3,a4]@12 b3@24 e4 ~@11, ~@2 e5@4 [f#3,d#4]@3 ~@3, ~@3 b4@4 ~@5]/2", // C#5 A D#m
F: "[f#3,b3,b4]@3 [a3,e4,a4]@2 [g#3,e4,g#4], d#4 ~@23", // B5 A5 C#m
G: "[f#3,f#4]@5 [g#3,g#4] ~@2 b5 [a3,c#4,e4,c#6]@3, [b3,b4]@3 ~, d#4 ~@9 e4 ~ [f#3,d#4,f#4]@6 ~@6", H: "b5@2 c#6 b5",
I: "[c#5,a5]@8 g#5@2 [d#5,f#5]@2 e5@9 ~ c#6@2, ~ c#5", J: "b4 f#5 g#5 a5, b5@3 ~",
K: "[g#5,b5]@10 [f#5,a5]@2 g#5@5 ~ g#5@2 a5@2 b5@2, ~ e5", // G#m F#m
L: "[c#6@3 e6@3 d#6@3 ~@5 b5@3 c#6 b5@6, e5 ~@11 f#5@12 e5@24, ~@9 c#6@5 ~@10]/2",
M: "[c#5,a5]@2 g#5 f#5, ~ [b4,d#5]", N: "[c#5,c#6] [b4,f#5,b5], e5", O: "e5@5 f#5 g#5@4 a5 b5",
P: "c#6@4 e6@2 d#6@4 c#6 d#6", Q: "[e6@4 b5@4 e5@4 b5@6 ~@6 a5@12 [a#5,d6]@3 c6@3 a5@3 g5@3, ~@3 c#6@3 ~@2]/2",
R: "[c6 a5 f5 a5 c6 d6 c6@6 [f5,d6] a#5 f5 a#5 d6 [g5,e6] [f5,d6]@6, f4]/2", // Dm C Dm
S: "[g5,e6] c6 g5 ~ e6 [a5,f6] [g5,e6]@3 [c5,a#5,d6,f6]@3, g4@3 ~, ~@3 c6@2 ~@7", // C Dm C A#
T: "a5 ~ a5 f5 c6 [f5,d6] c6@3 a5 a#5 c6, f6@5 ~@19, ~ c6@2 ~@3 f5@6", U: "f5@2 ~ c6, d6@3 ~, ~ e5",
V: "[a4,a5] [g4,g5] [f4,f5]@7 [a4,a5] [a#4,a#5] [c5,c6]", W: "[f5,d6] [e5,c6]",
X: "d6@12 d6 a#5 g5 f5 d5 a#4 g4@6, f5@5 ~@3", Y: "[~@7 [a#3,d4]@9 ~ [a3,c4]@16 ~@15, f4@11 ~@5]/2",
Z: "d6@15 ~ c6@6 d6@2",
AA: "[[a5,c6]@12 d6@10 e6@2 d6@12 e6@18 ~@10 c6@6 d6@2 c6@6 a5@2 a#5@2 c6@2 f5@11 ~@7 c6@6 [a4,a5]@2 [g4,g5]@2 [f4,f5]@14 [a4,a5]@2 [a#4,a#5]@2 [c5,c6]@2 [f5,d6]@12, ~ f5@2 g5@2 f5@2 ~ e5 ~@3, ~@27 d6@5 ~@10 d6@9 ~@21]/6", // Am A G F A A# C Dm
AB: "[[e5,c6]@12 d6@12 d6 a#5 g5 f5 d5 a#4 g4@6 [a#3,d4,f4]@12, ~@4 f5@5 ~@7]/2", // C A#
AC: "[[g3,e4] [a3,f4]@2 ~, c4@3 ~]/2", // C Dm
})).s("gm_string_ensemble_1").gain(0.17)
// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<A B ~@8 C ~@2 D ~@4 E@2 F G ~@34>".pickRestart({
A: "[a2,a3] [g#2,g#3,b3], e3@23 ~, c#4@5 ~@19", B: "~ [b2,g#3], ~ e3@3", C: "[f#3,d#4]@6 [e3,c#4]@6 ~@9 c#4@2 ~",
D: "~ c#4 ~@2", E: "[~@2 c#4 ~, ~ e4@3]/2", F: "~ c#4", G: "~@12 c#4 ~@11",
})).s("gm_string_ensemble_1").gain(0.1)
// chords · synth strings 1
const synth_strings_1 = note("<~@23 A@2 B@5 C@5 D@2 E@2 F@3 G@3 H@5 I@2 J@2 ~@2>".pickRestart({
A: "[[g#3,b3]@5 [a3,c#4] [g#3,b3]@6 c#4@5 [b3,d#4] [c#4,e4]@6, e4@17 ~@7, ~ a3]/2", // G#m A G#m B C#m
B: "[[f#3,d#4]@5 [g#3,e4] [f#3,d#4]@3 [a3,c#4]@3 [g#3,b3]@5 [a3,c#4] [g#3,b3]@6 [a3,c#4]@6 [d#4,f#4]@6 g#3@5 [a3,c#4] [g#3,b3]@6 [a3,c#4]@6 [b3,d#4,f#4]@6, b3@9 e4@21 b3@11 ~@19, ~@6 e4@3 ~]/5", // D#m C#m D#m A G#m A G#m A …
C: "[g#4@6 a#3@6 a3@12 g#3@10 [f#3,d#4]@2 g#3@12 [a3,c#4]@8 [c#4,g#4]@4 [d#4,f#4]@12 g#3@12 a3@6 a#3@6 a3@12 [a#3,d4,f4]@11 ~, e4@17 ~ e4@12 ~@6 e4@18 ~@6, c#4@2 b3@2 ~ b3@2 c#4@2 ~, ~ f#4@3 ~@16]/5", // D#m A C#5 D#m A#
D: "[[a3,c4]@5 [a#3,d4] [a3,c4]@6 [a#3,d4]@5 [c4,e4] [a#3,d4]@6, f4]/2", // Am A# Am A# C A#
E: "[[g3,e4]@5 [a3,f4] [g3,e4]@3 [a#3,d4]@3 [a3,c4]@5 [a#3,d4] [a3,c4]@6, c4@17 ~ f4@29 ~]/2", // C Dm C A# Am A# Am
F: "[[a#3,d4,f4]@6 [g3,e4]@6 a3@5 [a#3,d4] [a3,c4]@6 [a#3,d4]@6 [c4,e4,g4]@6, ~@6 c4@11 ~@19, ~@2 f4@3 ~]/3", // A# C A# Am A# C
G: "[a3@6 b3@6 a#3@29 [a3,c4]@16 ~@15, f4@19 ~@5, d4@41 ~@31]/3", // Am
H: "[[a#3,d4,f4]@11 ~ [a3,c4]@9 ~ [a#3,d4]@2 [a3,c4]@12 [a#3,d4]@10 [c4,e4]@2 [a#3,d4]@12 [g3,e4]@10 [a3,f4]@2 [g3,e4]@6 [a#3,d4]@6 [a3,c4]@10 [a#3,d4]@2 [a3,c4]@12 [a#3,d4]@12, ~@2 f4@8 c4@3 f4@7]/5", // A# Am A# Am A# C A# C …
I: "[[g3,e4]@12 a3@9 ~ [a#3,d4]@2 [a3,c4]@12 [a#3,d4]@12, c4@11 ~@13, ~ f4@3]/2", // C A# Am A#
J: "[[c4,e4,g4]@2 a3 b3 a#3@2 ~@2, ~ [d4,f4]@2 ~]/2", // C Dm
})).s("gm_synth_strings_1").gain(0.2)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@6 A B C D E A F G A H A I J K L M N O P Q O D O D R O F S T U V W U X U X Y ~@2 Z AA X AB AA AC AA AD AE ~@2
>`.pickRestart({
A: "~@6 [b3,e4,g#4] ~@11 [c#4,e4,a4] ~@5", B: "~@6 [b3,e4,g#4] ~@11 [b3,d#4,f#4] ~@5",
C: "~@6 [c#4,e4,g#4] ~@11 [b3,d#4,f#4] ~@5", D: "~@6 [c#4,e4,a4] ~@11 [d#4,f#4,b4] ~@5", E: "~@18 [b3,e4,g#4] ~@5",
F: "~@6 [c#4,e4,a4] ~@11 [b3,d#4,f#4] ~@5", G: "~@6 [e4,a4,c#5]@5 ~@7 [b3,e4,g#4] ~@5",
H: "~@6 [d#4,f#4,b4] ~@11 [b3,e4,g#4] ~@5", I: "~@6 [d#4,f#4,b4] ~@11 [f#4,a#4,c#5] ~@5",
J: "~@6 [e4,a4,c#5] ~@11 [b3,e4,g#4] ~@5", K: "~@6 [c#4,e4,a4] ~@11 [b3,e4,g#4] ~@5",
L: "~@6 [b3,d#4,f#4] ~@11 [c#4,e4,g#4] ~@5", M: "~@6 [b3,d#4,f#4] ~@11 [c#4,e4,a4] ~@5",
N: "~@6 [d#4,f#4,b4] ~@11 [e4,a4,c#5]@5 ~", O: "~@6 [b3,e4,g#4] ~@11 [b3,e4,g#4] ~@5",
P: "~@6 [c#4,e4,a4] ~@11 [c#4,e4,a4] ~@5", Q: "~@6 [d#4,f#4,b4] ~@11 [c#4,e4,a4] ~@5",
R: "~@6 [f#4,a#4,c#5] ~@11 [e4,a4,c#5] ~@5", S: "~@6 [b3,e4,g#4] ~@11 [c#4,f#4,a#4] ~@5",
T: "~@6 [e4,a4,c#5] ~@11 [f4,a#4,d5] ~@5", U: "~@6 [c4,f4,a4] ~@11 [c4,f4,a4] ~@5",
V: "~@6 [d4,f4,a#4] ~@11 [d4,f4,a#4] ~@5", W: "~@6 [e4,g4,c5] ~@11 [d4,f4,a#4] ~@5",
X: "~@6 [d4,f4,a#4] ~@11 [e4,g4,c5] ~@5", Y: "~@6 [d4,g4,b4] ~@11 [d4,f4,a#4] ~@5", Z: "~@18 [c4,f4,a4] ~@5",
AA: "~@6 [c4,f4,a4] ~@11 [d4,f4,a#4] ~@5", AB: "~@6 [d4,f4,a#4] ~@11 [c4,f4,a4] ~@5",
AC: "~@6 [e4,g4,c5] ~@11 [c4,f4,a4] ~@5", AD: "~@6 [e4,g4,c5] ~@11 [d4,g4,b4] ~@5", AE: "~@6 [d4,f4,a#4] ~@17",
})).s("gm_electric_guitar_clean").gain(0.13).pan(0.7)
// chords · percussive organ
const percussive_organ = note("<~ A@2 B C D E F G H@2 ~@45>".pickRestart({
A: "[~ [g#5,b5] [a5,c#6] [g#5,b5], ~@6 e5@17 ~]/2", B: "[b4,d#5,f#5] [c#5,e5,g#5]",
C: "[b4,d#5,f#5]@3 [a4,c#5,e5]@2 [c#5,e5,g#5]", D: "[b4,d#5,f#5]", E: "[g#5,b5] [a5,c#6], e5",
F: "[e5,g#5,b5] [b4,d#5,f#5]", G: "[c#5,e5,g#5] [b4,d#5,f#5]", H: "[[a4,c#5,e5]@2 [c#5,e5,g#5] [b4,d#5,f#5]@6 ~@3]/2",
})).s("gm_percussive_organ").gain(0.07).pan(0.1)
// drums · kick
const kick = s("bd").struct("<~@10 A B@6 C D B@3 E F@7 D F@3 G F@7 D H ~ I@7 D@2 ~@2>".pickRestart({
A: "~ x", B: "x!2 ~@3 x!2 ~@5", C: "x!2 ~@3 x!2 ~@2 x ~@2", D: "x!2", E: "x!2 ~@8 x ~", F: "x ~@4 x!2 ~@5",
G: "x ~@4 x ~@6", H: "x!2 ~", I: "x ~@5 x ~@4 x",
})).gain(0.57)
// drums · snare
const snare = s("sd").struct("<~@22 A B@11 C B@8 ~ A D B@7 E ~@2>".pickRestart({
A: "~ x", B: "~ x ~ x", C: "~ x!3", D: "~@3 x", E: "~ x ~@2",
})).gain(0.51)
// drums · low tom
const low_tom = s("lt").struct("<~@22 A ~@3 B ~@3 B ~@2 C D ~@3 B ~@5 E ~@4 F ~@2 F G ~@2>".pickRestart({
A: "~@22 x!2", B: "~@11 x", C: "~@3 x", D: "~@23 x", E: "~@7 x", F: "~@5 x ~@6", G: "~@4 x!2 ~@6",
})).gain(0.45)
// drums · hihat
const hihat = s("hh").struct(`<
A B C@3 D E@4 F G@7 H G@3 I J K@2 L M K J N O K M P O K@2 Q M K J N ~@2 R K@3 S T U V W ~@2
>`.pickRestart({
A: "~ x ~ x ~ x ~ x!2 ~@3", B: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x!2 ~ x!3", C: "~ x!3 ~ x!3 ~ x ~@4 x ~@3 x!2 ~ x!3",
D: "~ x!3 ~ x!3 ~ x ~@8 x ~@3 x ~", E: "~@2 x ~@3 x!2 ~ x!3 ~ x!3 ~ x!3 ~ x ~@2", F: "~@3 x ~ x ~ x ~ x ~ x",
G: "~@2 x ~@3 x ~@2 x!2 ~@3 x ~@3 x ~@3 x ~", H: "~@2 x ~@3 x ~@2 x ~@4 x ~@3 x ~@3 x ~",
I: "~@2 x ~@3 x ~@2 x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~", J: "~ x!11", K: "x!12", L: "x!8 ~@4", M: "~ x!10 ~",
N: "~ x!2 ~ x!2 ~ x!5", O: "~ x!2 ~ x!8", P: "x!3 ~ x!2 ~ x!5", Q: "x!8 ~ x!3", R: "~@7 x!5", S: "x!3 ~@4 x!5",
T: "x!5 ~ x!6", U: "x!5 ~@2 x!5", V: "x!4 ~@3 x!2 ~ x!2", W: "~ x!2 ~@9",
})).gain(0.23)
// … 50 more lines
More by Tozzi
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.