0:00/0:00
// La vita mia — Amedeo Minghi
// 101 bpm, 4/4, key C 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 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(101/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
A B C D E F G H I J K L M N O P Q@2 R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN C D E AO AP H I J K L
AQ N O P AR@2 AS AT AU AI AV AK AL AM AN A AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN V BO BP BQ BR N BS BT
BU BV BW BX BY BZ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CX@2 ~
>`.pickRestart({
A: "c1@2 ~ c1 ~ c1@2 g1", B: "c2@4 ~@2 c2@3 ~ c2@2 e1@2 g1@2", C: "c1@4 ~@2 c1@3 ~ c1@4 g1@2",
D: "c2@5 ~ c2@3 ~ c2@2 e1@2 g1@2", E: "c1@5 ~ c1@3 ~ c1@2 e1@2 g1@2", F: "a1@5 ~ a1@2 ~@2 a1@4 e2@2",
G: "a1@5 ~ a1@2 ~@2 a1@2 e1@2 g1@2", H: "a1@2 ~ a1 ~ a1 g1@2", I: "f1@2 ~ f1 ~ f1 a1 c2",
J: "d1@4 ~@2 d1@3 ~ d1@3 ~ d1@2", K: "f1@4 ~@2 f1 ~ f1@4 a1@2 c2@2", L: "d2@3 d1@2 ~ d1@8 ~@2",
M: "f1@2 ~ f1 ~ f1 a1@2", N: "g1@5 ~ g1 ~ g1@4 d2@4", O: "c2@5 ~ c2 ~ c2 ~ c2@2 d2@2 e2@2",
P: "e1 ~@2 e1 ~@2 e1@2 g1@4 e1@4", Q: "[a1@8 e1@3 ~ g1@2 a1@10 e1@4 ~@2 e1@2]/2", R: "a1@11 ~ a1@4",
S: "c2@4 ~@2 c2@3 ~ c2@4 g2@2", T: "c1@4 ~@2 c1@2 ~@2 c1@3 ~@3", U: "c2@4 ~@2 c2@3 ~ c2 ~ g1@4",
V: "f1@4 ~@2 f1@3 ~ f1@2 a1@2 c2@2", W: "d2@2 ~ d1@2 ~ d1 ~ d1@5 ~@3", X: "f1@5 ~ f1@3 ~ f1@2 a1@2 c2@2",
Y: "d1@5 ~ d1 ~ d1 ~ d1@2 g1@3 ~", Z: "f1@5 ~ f1@3 ~ f1@2 a1@4", AA: "g1@5 ~ g1 ~ g1@4 d2@3 ~",
AB: "c2@5 ~ c2@2 d2 ~ d2@2 e2@4", AC: "e1 ~@2 e1 ~@2 e1@2 g1@7 ~", AD: "a2@6 ~@2 e2@3 ~ g2@3 ~",
AE: "a2@5 ~ e1 ~ e1@3 ~ g1@2 ~@2", AF: "a1@4 ~@2 e1 ~ e1@6 ~@2", AG: "d1@4 ~@2 d1 ~ e1@7 ~",
AH: "d1@4 ~@2 d1 ~ d1@3 ~ f#1@4", AI: "g1@5 ~ g1 ~ g1@3 ~ d1@3 ~", AJ: "e1@5 ~ e1@2 ~@2 e1 ~ g1@3 ~",
AK: "f1@4 ~@2 f1@2 ~@2 f1 ~ a1@3 ~", AL: "b1@4 ~@2 b1 ~ b1@3 ~ d2@3 ~", AM: "e1@4 ~@2 e1 ~ e1@4 ~@4",
AN: "g1 ~ g1 ~ g1@2 g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", AO: "a1@5 ~ a1@3 ~ a1@4 e2@2", AP: "a1@2 ~ a1 ~ a1 e1 g1",
AQ: "f1@5 ~ f1@2 ~@2 f1@2 a1@4", AR: "[a1@5 ~ a1@2 e1 ~ e1@2 g1@2 a1@6 ~@2 a1@2 e1@6 ~@2]/2", AS: "a1@5 ~ a1 ~ a1@8",
AT: "d1@5 ~ d1@2 e1@7 ~", AU: "d1@4 ~@2 d1 ~ d1@4 f#1@4", AV: "e1@4 ~@2 e1@2 ~@2 e1 ~ g1@3 ~",
AW: "c1@4 ~@2 c1 ~ c1@6 ~@2", AX: "f1@5 ~ f1@3 ~ f1@3 ~ f1 ~", AY: "f1@5 ~ f1 ~ f1@7 ~", AZ: "g1@5 ~ g1@3 ~ g1@4 ~@2",
BA: "c2@13 ~ c2@2", BB: "f1", BC: "a#1@7 d2", BD: "e2@4 e1@3 g1", BE: "~@7 c2, a1", BF: "d2@6 d1@2 ~@2 d1@2 ~@2 d1 ~",
BG: "d1@4 ~@2 d1@2 ~@2 d1@2 f#1@3 ~", BH: "g1@5 ~ g1 ~ g1@3 ~ f1@2 ~@2", BI: "c2@5 ~ c2@3 ~ c2@3 ~ g1@2",
BJ: "c1@5 ~ c1@2 ~@2 c1@2 g1@3 ~", BK: "c2@5 ~ c2 ~ c2@2 ~@2 c2@3 ~", BL: "a1@5 ~ a1@3 ~ a1@2 e1@2 g1@2",
BM: "a1@4 ~@2 a1@3 ~@3 e2@3 ~", BN: "a1@5 ~ a1@2 ~@2 a1@4 ~@2", BO: "d2@3 d1@2 ~ d1 ~ d1@4 ~@4",
BP: "f1@5 ~ f1@2 ~@2 f1@3 ~ c2@2", BQ: "d2@4 ~@2 d1@2 ~@2 d1@3 ~ g1@2", BR: "f1@5 ~ f1 ~ f1@4 a1@4",
BS: "c2@5 ~ c2@2 c2@2 c2@2 c2@2 g2@2", BT: "e2@5 ~ e2@2 g2@5 ~ e2@2", BU: "a2@2 ~ a1 e1@2 g1@2",
BV: "a1@5 ~ a1@2 e1@6 ~@2", BW: "a1@5 ~ a1@2 a1@5 ~@3", BX: "d1@2 ~ d1 ~ d1@2 ~", BY: "d2@5 ~ d2 ~ d2@4 f#1@4",
BZ: "g1@5 ~ g1@2 ~@2 g1@3 ~ b1@2", CA: "c2@5 ~ c2@2 c2@6 ~@2", CB: "f1@4 ~@2 f1@2 ~@2 a1@3 ~ c2@2",
CC: "b1@5 ~ b1@2 b1 ~ b1@2 d2@2 e1 ~", CD: "e1@5 ~ e1 ~ e1 ~ e1@3 ~ e1@2", CE: "g1@5 ~ g1 ~ g1@5 ~@3",
CF: "c1@4 ~@2 c1@3 ~ c1@3 ~ g1@2", CG: "c2@3 c1!5", CH: "f1@6 f1@3 ~ f1@3 ~ f1@2", CI: "f1@5 ~ f1@3 ~ f1@3 ~ f1@2",
CJ: "g1@5 ~ g1@3 ~ g1@2 d2@4", CK: "c2@5 ~ c2@3 ~ c2@3 ~ c2 ~", CL: "f1@5 ~ f1@3 ~ f1 ~ f1@3 ~",
CM: "a#1@5 ~ a#1@3 ~ a#1@2 c2@2 d2@2", CN: "e1@5 ~ e1 ~ e1@4 g1@4", CO: "a1@5 ~ a1@3 ~ a1@2 c2@2 d2@2",
CP: "d1@4 ~@2 d1 ~ d1@6 ~@2", CQ: "d1@4 ~@2 d1@2 ~@2 d1@5 ~", CR: "g1@5 ~ g1 ~ g1@6 d1@2",
CS: "e1@5 ~ e1@3 ~ e1@2 g1@4", CT: "f1@5 ~ f1@2 f1@2 f1@2 a1@2 f1@2", CU: "b1@5 ~ b1@3 ~ b1@2 d2@2 e1@2",
CV: "e1@5 ~ e1@3 ~ e1@2 g1@3 ~", CW: "g1@5 ~ g1 ~ g1@8", CX: "[c1@3 ~]/2",
})).s("gm_acoustic_bass").gain(0.68)
// chords · trombone
const trombone = note(`<
~@2 A@3 B C@2 D E D E F G A H B@3 A@3 D E D E F G A H B@3 I@2 J A D K L J A@3 B C@2 D E D E F G A H B@3 I@2 J A D K L
J A ~@12 A@3 B C@2 D E D E F G A H B@3 I@2 J A D K L J A ~@9 I@2 J A D K L J ~@3
>`.pickRestart({
A: "[e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~@9", // C
B: "[e4,g4,a4,c5] ~ [e4,g4,a4,c5] ~ [e4,g4,a4,c5] ~ [e4,g4,a4,c5] ~@9", // Am7
C: "[e4,g4,a4,c5] ~ [e4,g4,a4,c5] ~ [e4,g4,a4,c5] ~ [e4,g4,a4] ~@9", // Am7 A7
D: "[c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~@9", // F
E: "[d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~@9", // Dm
F: "[d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~@9", // Dm7
G: "[d4,g4,a4,c5] ~ [d4,g4,a4,c5] ~ [d4,g4,a4,c5] ~ [d4,g4,a4,c5] ~@9", // Dsus4
H: "[e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~ [e4,g4,b4] ~@9", // Em
I: "[d4,f#4,a4,c5] ~ [d4,f#4,a4,c5] ~ [d4,f#4,a4,c5] ~ [d4,f#4,a4,c5] ~@9", // D7
J: "[d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~@9", // G
K: "[d4,f4,b4] ~ [d4,f4,b4] ~ [d4,f4,b4] ~ [d4,f4,b4] ~@9", // Bdim
L: "[b3,e4,g4] ~ [b3,e4,g4] ~ [b3,e4,g4] ~ [b3,e4,g4] ~@9", // Em
})).s("gm_trombone").gain(0.12)
// chords · trombone · soft notes
const trombone_soft = note(`<
~@2 A@3 B C@2 D E D E F G A H B@3 A@3 D E D E F G A H B@3 I@2 J A D K L J A@3 B C@2 D E D E F G A H B@3 I@2 J A D K L
J A ~@12 A@3 B C@2 D E D E F G A H B@3 I@2 J A D K L J A ~@9 I@2 J A D K L J ~@3
>`.pickRestart({
A: "~@8 [e4,g4,c5] ~ [e4,g4,c5] ~@5", B: "~@8 [e4,g4,a4,c5] ~ [e4,g4,a4,c5] ~@5",
C: "~@6 c5 ~ [e4,g4,a4,c5] ~ [e4,g4,a4,c5] ~@5", D: "~@8 [c4,f4,a4] ~ [c4,f4,a4] ~@5",
E: "~@8 [d4,f4,a4] ~ [d4,f4,a4] ~@5", F: "~@8 [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~@5",
G: "~@8 [d4,g4,a4,c5] ~ [d4,g4,a4,c5] ~@5", H: "~@8 [e4,g4,b4] ~ [e4,g4,b4] ~@5",
I: "~@8 [d4,f#4,a4,c5] ~ [d4,f#4,a4,c5] ~@5", J: "~@8 [d4,g4,b4] ~ [d4,g4,b4] ~@5",
K: "~@8 [d4,f4,b4] ~ [d4,f4,b4] ~@5", L: "~@8 [b3,e4,g4] ~ [b3,e4,g4] ~@5",
})).s("gm_trombone").gain(0.06)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
A@8 B@8 C@6 D@8 E@8 F@3 G@6 H@7 I@6 J@6 K@4 L@2 M@7 N@6 O@8 P@8 Q@3 R@4 S@8 T@3 U@6
>`.pickRestart({
A: "[g3@5 a3@3, [e3,c4]]/8", B: "[d4@4 c4@2 ~@3 c4 b3@2 c4@2 b3@2, f3@79 ~ g3@48, ~@3 d4@3 e3@2]/8",
C: "[[c3,a3]@48 c5@8 d5@8 e5@21 ~@3 c5@2 d5@2 e5@2 c5@2, e3@95 ~, ~ [g3,c4]]/6", // F C5
D: "[d5@4 e5@2 f5@2 a4@3 d5 d5@4 c5@5 a4 g4 ~@13 c4@4 ~@2 d5 e5 d5 c5 b4 ~ c4@8 ~@5 e4 g4 a4, [f3,a3]@80 g3@47 ~, d4@32 c4@16 d4@49 ~@15 b3@15 ~, ~@46 f4@17 ~@17 b3@16 e3@31 ~, ~@47 g4@7 ~@10]/8", // F
E: "[~@10 e4@2 g4@2 a4@12 ~@22 f#4@8 g4@6 a4@6 d5@2 d5@2 d5@2 c5@4 ~@12 c5@2 d5@2 ~@14 b4@2 ~@16 b4 c5, [a3,c4]@5 b3 c4@2, e3@24 d3@23 ~ e3@8 [f3,a3]@8, ~@3 f#3@2 g3@2 ~, ~@39 b4@6 ~@2 e5@7 ~ a4@8 ~]/8", // Am F
F: "[d5@5 a4@2 ~@7 a4 ~@6 g4 c5 b4, b3@47 ~, f3 g3@2, d3@14 g4@14 ~@2 g4@11 ~@7, ~@16 e3@16 d3@15 ~]/3",
G: "[c5@4 d5@4 e5@3 e4@9 d5@4 a4@4 b4@4 c5@12 c5 d5 e5 c5, [e3,c4], g3 a3]/6", // C
H: "[d5@8 e5@4 f5@2 a4@8 d5@2 d5@8 c5@10 a4@2 g4@2 f4@2 a4@8 ~@16 c4@8 ~@4 [b4,d5]@2 [c5,e5]@2 [b4,d5]@2 [a4,c5]@2 [g4,b4]@2 ~@14 c5@2 b4 ~, f3@79 ~ g3@32, d4@2 c4 d4@3 ~, ~@5 b3 [e3,c4], ~@47 [e4,g4]@6 ~@3]/7", // Bm C Bm Am G C Em
I: "[~@5 [e3,e4] g4 a3 ~@5 e4 g4 a4@6 ~@4 e5 d5 e5 c5 d5 a4 b4 f#4@4 g4@3 a4@3 d5!2 d5@2 c5@2, b3@7 a4@6 ~@35, ~@3 e3@2 ~ e3@2 e3@24 [d3,f#3]@16, ~ g3 [a3,c4]@10, ~@7 c5@18 ~@7 c5@10 ~@6]/6", // E D Am
J: "[b4@10 c5@2 d5@2 ~@6 c5@2 c5@2 c5@2 c5@2 b4@2 ~@16 b4 c5 d5@4 b4 ~ b4 ~ b4@4 a4@2 ~@14 a4@2 ~@12 g4@2 c5@2 b4@2, g3@32 ~@16 b3@47 ~, b3@16 c4@33 ~@15 g3@32, ~@14 e5@8 ~@8 a4@16 ~@16 g4@14 ~@2 g4@11 ~@7, ~@16 e3@16 [f3,a3]@16 [d3,f3]@15 ~ e3@16 d3@15 ~]/6", // F Dm
K: "[c5@16 ~@4 c5@4 f5@5 ~ e5@2 f5@26 a4@2 f5@2 e5@2, c4, [e3,g3] [f3,a3]]/4", // Em F
L: "[f5 g4 b4 d5 g5!2 f5 ~ [e3,c4]@8, g3, [b3,d4] ~, ~@7 e5@9]/2", // C Bm
M: "[a3@8 ~@32 c5@2 d5!4 c5 b4 ~@5 g4 c5 b4, f3@2 e3@2 d3@3, c4 ~@15 g3@48 f#3@32 [g3,b3]@16, ~ [a#3,d4]@2 [a3,c4]@3 ~]/7", // G A# Am
N: "[c5@13 e4 c5 b4 c5 e4 c5 b4 c5 e4 c5 b4 ~@4 b4@4 c5@5 e4 c5 b4 c5 e4 c5 b4 c5 d5 e5 c5, [e3,c4], g3 a3, ~@6 a4@5 ~]/6", // C
O: "[d5@4 e5@3 f5 a4@3 d5 d5@4 c5@5 a4 g4 ~@3 a4 b4 c5@2 a4 ~@6 [a4,c5,e5]@2 ~@3 [b4,d5,d6] [c5,e5,e6] [b4,d5,d6] [a4,c5,c6] [g4,b4,b5] ~ c4@8 ~@6 c5 b4, f3@79 ~ g3@40 g3@8, d4@2 c4 d4@3 ~ b3, ~@23 f4@13 c4@4 b3@8 e3@11 e3@3 e3@2, ~@31 d5@6 ~@2 [a4,c5,e5]@3 g4@3 ~@2 [e4,g4,g5]@10 ~@4 e4@3]/8", // Am Bm C Bm Am G Am Em
P: "[c5@33 ~ e5@2 d5@2 e5@2 c5@2 d5@2 a4@2 b4@2 f#4@8 g4@6 a4@6 d5@2 d5@2 d5@2 c5@4 ~@12 c5@2 d5@2 ~@14 b4@2 ~@16 b4 c5, [a3,c4]@5 b3 c4@2, e3@48 d3@47 ~ e3@16 [f3,a3]@16, ~@3 f#3@2 g3@2 ~, ~@24 c5@10 ~@5 b4@6 ~@2 e5@7 ~ a4@8 ~]/8", // Am F
Q: "[d5@12 a4@4 g4@12 a4@4 g4@10 g4 ~ c5@2 b4@2, b3@47 ~, f3 g3@2, d3@14 ~@2 e3@16 d3@15 ~]/3",
R: "[c5@8 ~@2 c5@2 f5@2 e5@2 f5@13 a4 f5 e5, c4, [e3,g3] [f3,a3]]/4", // Em F
S: "[f5 g4 b4 d5 g5!2 f5 ~@10 f4 f5!4 e5 ~@10 e4 e5!4 d5 ~@9 f#4@4 g4@3 a4@3 d5!3 c5@2 b4, g3@2 a3 g3@3 f#3@2, [b3,d4] c4@2 [a#3,d4]@2 [a3,c4]@3, ~@14 e5@18 ~@14 d5@19 ~@13 c5@38 ~@12]/8", // Bm A# Am
T: "[~@10 c5@2 d5@2 ~@6 c5@2 c5@2 c5@2 c5@2 b4@2 ~@16 b4 c5, g3@2 a3, b3 c4@2, ~@7 e5@3 ~@5 a4@8 ~]/3",
U: "[d5@16 g4@12 a4@4 g4@10 g4 ~ c5@2 b4@2 [e3,c4,c5]@48, b3 ~, ~ g3@5]/6", // C
})).s("gm_string_ensemble_1").gain(0.42)
// chords · piano · "A.PIANO"
const piano = note(`<
A@2 B C@2 D@2 E F G H@2 I@5 J K L M N F G O P@5 Q R S T U@2 V@2 W@2 X Y Z@2 AA AB AC AD AE AF AG@6 AH AI AJ U@2 V@2
W@2 AK AL AM AN@2 AO@2 AP@4 AQ AR@2 Y Z@2 AA AB AS AD AE AF AT@5 AU AH AI AJ U@2 V@2 W@2 AV AW AX AY@2 AZ@2 BA@2 BB@2
AJ BC@2 BD@2 BE BF BG BH@2 BI
>`.pickRestart({
A: "~ [g3,g4] ~ [g3,g4] ~ [g3,g4] ~ [g3,g4], [c4,c5]!2 [e4,e5] [c4,c5]", B: "~ g3 ~ g3 ~ g3 ~ g3, c5, c4!2 e4 c4",
C: "~ g3 ~ g3 ~ g3 ~ g3, c4!2 e4 c4", D: "~ e3 ~ e3 ~ e3 ~ e3, a3!2 c4 a3", E: "~ e3 ~ e3 ~ e3 ~ e3, a3!2 c4 e4",
F: "d4 f3 ~ f3 ~ f3 ~ f3, ~ d4 e4 f4", G: "~ f3 ~ f3 ~ f3 ~ f3, a3 d4 e4 f4",
H: "[c4 f3 ~ f3 ~ f3 ~@2 a3 f3 ~ a3 ~ f3 a3 f3, ~@2 c4@2 e4@2 f4@2 d4@7 ~, ~@7 f3@2 ~@7]/2",
I: "[[a3,d4]@4 [a3,d4]@3 ~ f4@6 [a3,c4,d4]@5 ~ [b3,d4]@2 [c4,e4]@2 [b3,d4]@2 [a3,c4]@2 [g3,b3]@2 ~@8 g3@2 ~@2 g3 ~ e4@2 g4@4 g3@2 ~@2 g3@2 ~@4 g4@2 ~@4 c5@2 d5@2 e5@2 c5@2 d5@2 b4@2 g4@2, f4@7 ~ a3@2 ~@20 e3@13 ~@21 [e3,a3]@16, ~@8 d4 ~@21 g3@8 ~@20 g3@4 ~@18, ~@18 c4@2 d4@2 ~@4 b3@2 d4@2 ~ c4@4 ~@5]/5", // D5 D7 Bm C Bm Am G A5
J: "a4 [e4,c5] [d4,b4] [e4,c5] a4 [d4,b4] [b3,g4] [g3,e4], [e3,a3], c4!2", K: "[a3,c4,e4], a4@3 ~",
L: "c4 g3 ~ g3 d4 g3 ~ g3, ~ c4 ~ d4", M: "c4 g3 ~ g3 ~ g3 ~ g3, ~ c4 d4 e4", N: "c4 e3 c4 e3 c4 d4 e4 c4",
O: "c4 f3 ~ f3 ~ f3 ~ f3, ~ c4 e4 f4",
P: "[d4@2 f3@2 ~@2 f3@2 ~@2 f3@2 f4@2 [f3,a3,d4]@6 ~@2 [f3,a3]@2 [f3,a3,d4]@2 [f3,a3,c4]@3 ~ [g3,c4]@6 [b3,d4]@2 [c4,e4]@2 [b3,d4]@2 c4@2 [g3,b3] ~ g3@4 g3@2 ~@2 g3@2 ~@2 g3@2 e4@2 ~@4 g3@2 ~@2 g3@2 ~@4 g4@2 c4@2, ~@4 d4@4 e4@4 ~@18 a3@2 ~@10 a3 ~@3 e3@6 c4@4 d4@4 ~@2 g4@6 b3@4 d4@4 ~@4, ~@37 g3@2 ~]/5", // Dm F Dm F C5 Bm C Bm …
Q: "[e3,a3]@3 ~, c4 ~", R: "~ e5 d5 e5 c5 d5 b4 g4, [e3,a3,c4]@3 ~", S: "[a3,c4,e4]@7 ~, a4@5 ~@3",
T: "~@7 [d3,a3], [d2,f#3]@15 ~, c4@3 a3@3 a2@2, a3@4 d3@4 c4@7 ~, d3 a2@4 d3@2 ~", // D5 D
U: "[c5@4 d5 ~ d5 ~ d5@2 c5@4 ~@2 [d4,g4]@13 ~@3, [d4,f#4,a4]@14 b4@15 ~@3]/2", // G5 D
V: "[c5@3 ~ c5@2 c5@2 [e4,g4,c5]@2 [e4,g4,c5]@2 b4@2 ~@2 [c4,f4]@15 ~, [e4,g4]@7 ~@7 a4@18]/2", // C F5 Em
W: "[[d4,f4,b4]@3 ~ [d4,f4,b4]@2 [d4,f4,b4]@2 [d4,f4,b4]@2 a4@4 ~@2 b3@6 [e4,g4,b4]@10, ~@14 g4@7 ~@11, ~@16 e4@5 ~@11]/2", // Bdim Em
X: "~@3 d4 ~@2 c5 b4, [d4,g4,b4]@3 a3@3 g4@2, ~ g3@3, ~@3 b4@2 d4@3, ~@3 g4 b3@4", // G
Y: "[e4,g4,c5] g3 [c4,e4] g3 ~ g3 [c4,e4] g3, ~@2 [e4,g4] ~", Z: "[c4,e4] g3 [c4,e4] g3 [c4,e4] g3 [c4,e4] g3",
AA: "[c4,e4] a3 [c4,e4] a3 [c4,e4] a3 [c4,e4,g4] a3", AB: "[c4,e4,g4] a3 [c4,e4] a3 [c4,e4] a3 [c4,e4] a3",
AC: "[c4,e4] a3 [c4,e4] a3 [c4,e4] a3 ~ a3, ~@3 [c4,e4]", // C
AD: "~ f3 ~ f3 [a3,e4] f3 ~ f3, [a3,c4,d4] [a3,d4] ~ [a3,f4]", AE: "[a3,d4] f3 ~ f3 a3 f3 ~ f3, ~ [a3,d4] e4 [a3,f4]",
AF: "[a3,c4] f3 ~ f3 ~ f3 ~ f3, ~ [a3,c4] [a3,e4] [a3,f4]", // Am A5 Dm
AG: "[[a3,d4]@2 f3@2 ~@2 f3@2 [a3,e4]@2 f3@2 f4@2 [f3,a3,d4]@5 ~ [f3,a3,d4]@2 [f3,a3,d4]@2 [f3,a3,d4]@2 [f3,a3,c4]@4 [g3,c4]@6 [b3,d4]@2 [c4,e4]@2 [b3,d4]@2 [a3,c4]@2 [g3,b3]@2 g3@4 g3@2 ~@2 g3@2 ~@2 g3@2 e4@2 ~@4 g3@2 ~@2 g3@2 ~@4 g4@2 ~@4 c5@2 d5@2 e5@2 c5@2 d5@2 b4@2 g4@2, ~@4 [a3,d4]@4 ~@4 a3 ~@17 a3@5 ~@11 e3@6 c4@4 d4@4 ~@2 g4@6 b3@4 d4@4 ~@2 c4@4 ~@14, ~@37 g3@2 ~ [e3,a3]@3 ~@5]/6", // D5 A5 Dm F C5 Bm C Bm …
AH: "a4 [e4,c5] [d4,b4] [e4,c5] a4 [d4,b4] [b3,g4] [g3,e4], [e3,a3]@3 ~, c4@2 c4 ~", AI: "[a3,c4,e4]@7 ~, a4 ~",
AJ: "~@12 a2@2 [d3,a3] ~, [d2,f#3]@15 ~, c4@3 a3@4 ~, a3@4 d3@4 c4@7 ~, d3 a2@4 d3@2 ~", // D5 D
AK: "~@3 d4 g4@3 ~, [d4,g4,b4]@3 ~@5, ~ g3@3", AL: "~@2 c3 ~@4 c4, [c1,c2]@5 c3 g3@2, ~ g2@7, ~@3 d3@5, ~ e3",
AM: "~@6 c3 ~@8 e5, [c2,e4]@7 ~@3 g3 c4 g4 c5 d5@2, ~ g2@6 g2@9, ~@2 c3@3 d3@2 ~ c3@8, ~@3 d3 e3@3 ~@2 e3@7", // C
AN: "[~@7 c3 ~@3 c4 ~ [c3,c4] ~ [c3,c4], f2@12 f4@15 ~ [f3,f4,c5]@4, f5@2 [f4,a4] f3@4 c4 f2@7 ~, ~ c3@3 c4 a4@4 c3 f3@2 a4@4, ~@4 c5@23 ~@5]/2", // C F5 F
AO: "[g4@2 b3 ~ [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,f4]@2 ~@2 [c2,c3]@16, g2@7 ~@9, ~ d3@6 ~@9, ~@2 g3@5 [c4,e4]@9]/2", // G Bdim C
AP: "[~@2 f4!3 ~ e4 ~@9 a#3 ~ e4!3 ~@2 g3 ~@7 g4, ~@5 f4@2 d4@4 d4@4 d4@7 d4@2 ~ e3@4 a4@3, ~@9 g3@4 g3@4 g3@3 g3@3 c4@4 c4@5, ~@20 a#3@4 a#3@4 a#3@4 ~@3 a#3@3 a#3@4 [a#3,e4]@6 a3@4 a3@12, ~@7 e4]/4", // A#dim
AQ: "[f#4,c5] ~ a4 ~ d5 ~ a4 f#4, d4@3 ~, ~ f#4@2 f#4@2 f#4@2 ~", // F#dim
AR: "[f#4@2 ~@2 d5@2 d5@2 d5@2 d5@2 ~@8 d5@2 b4@2 g5@7 ~, [d4,a4]@15 ~ [d4,g4]@9 ~@7, c5 ~@2 c5 ~@4, ~ f#4@6 b4@2 b4@2 ~@5]/2", // D5 G5
AS: "~ a3 [c4,e4] a3 [c4,e4] a3 ~ a3, [c4,e4] ~@2 [c4,e4]", // C
AT: "[[a3,d4]@2 f3@2 ~@2 f3@2 [a3,e4]@2 f3@2 f4@2 [f3,a3,d4]@5 ~ [f3,a3,d4]@2 [f3,a3,d4]@2 [f3,a3,d4]@2 [f3,a3,c4]@4 [g3,c4]@6 [b3,d4]@2 [c4,e4]@2 [b3,d4]@2 [a3,c4]@2 [g3,b3]@2 [e3,g3]@6 ~@8 [e3,g3,c4]@2 [e3,g3,b3]@10 ~@8, ~@4 [a3,d4]@4 ~@4 a3 ~@17 a3@5 ~@45]/5", // D5 A5 Dm F C5 Bm C Bm …
AU: "~ c5 d5 e5 c5 d5 b4 g4, [e3,a3]@3 ~, c4 ~", AV: "~@2 g3@2 g3 ~ c5 b4, [d4,g4,b4]@3 ~@2 g4@3",
AW: "~@7 g4, [c1,c2,c5]@4 c4 d4 e4@2, ~ g2@7, ~ c3@3, ~@3 e3@5", // C
AX: "~@2 e4 ~@12 e3, c5@6 e3 d3 c3 g2 c2 g1 c2 g2 c3@2, c2@5 g3@11, c3 c4@3, ~@3 [d4,e4]@13", // Dsus2
AY: "[f3 ~@6 a3 ~@6 [c3,c4,f4] a3, f2@10 a3@2 a4@6 a3@2 f3@11 ~, ~@2 c3@14 f2@15 ~, ~@4 f3@12 f3@2 c3@4 a3@2 a4@7 ~, ~@3 a3 f4@4 c4@2 f4@2 c4 a3@2 ~]/2", // F5
AZ: "[~@2 g3@2 ~@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4]@2 [g3,b3,d4,f4]@2 ~@8 d4@2 ~@4 c4@2 [c3,g3] ~, g2@14 c4@4 [g2,g3]@2 c4@5 ~ [g2,g3]@5 ~, [b3,d4]@6 ~@4 g4@5 ~ c3@4 c3@10 ~@2, ~@2 d3@6 d3@7 ~ c2@15 ~, ~@4 g3@8 ~@2 e4@10 e4@7 ~]/2", // G Bm G7 C5 G Bm
BA: "[~@2 f3 ~ c4 [a3,c4] [f3,a3,c4,e4] ~@3 f3 ~@4 d3, f2@7 ~@2 d3@2 f3 a#3 f3@3, a3@5 f4@2 d4@7 [a#3,d4]@2, ~ c3@3 c3@3 ~ a#2@8, ~@3 f3@3 ~ a#3@5 d3@3 ~]/2", // Am Fmaj7 A#
BB: "[~@6 [g3,a#3,e4]@2 ~@6 a#2@2 ~@12 e4@2 c4 ~, e2@8 a2@5 c4@2 ~, d4@8 e4@16 a3@7 ~, [g3,a#3]@2 e3@3 a#2 e3@2 a3 e3@7, e3@2 a#2@6 [g3,a#3]@8 c4@4 a3@2 g3@9 ~]/2", // Edim Gm
BC: "[~@4 d3@2 d5 ~ d5@2 a2@2 ~@2 d3@2 ~@4 [b3,d4]@2 a3@2 b3@2 c4@2 [g2,d4] ~ [g3,e4]@2, [d4,f#4,a4]@15 ~ g4@13 ~@3, d2@9 ~ c5@4 b4@15 ~@3, c5@4 d5 ~ a3@8 ~@2 d4@2 g3@4 d3 ~ g3@5 ~@3, ~@2 a2@5 ~ d3@4 d2@4 g2@10 g2 ~@5]/2", // Bm G5 C D
BD: "[[e4,c5] ~ [e3,c5] c5 [e4,g4,c5] [e2,e4,g4,c5] b4 ~@3 f3 ~@3 c3 f2, e2@5 ~@2 a4@9, g4@6 g3@10 [c4,f4]@15 ~, ~@2 c3@5 ~ e3@8 f2@10 f3@6, ~@7 c3@2 c3@2 a3@5]/2", // C F5
BE: "[d4,f4,b4] f3 [d4,f4,b4]!3 f2 [b1,d4,f4] [b2,a4], b2 b3@3, ~@3 f3@5, ~@2 b2 ~, ~@5 a4@2 ~", // Bdim B7
BF: "~@2 e3 ~@2 e3 b2 e2, e2@3 ~, [b3,g4]@6 g3@7 ~@3, e4@5 ~ [e4,g4,b4]@10, ~@2 b2@5 ~@9", // Em
BG: "~ d3 g3 ~@3 [g2,c5] [d2,b4], g2@5 [d3,g4]@3, [d4,g4,b4]@3 b3@5, ~ g3", // C5 G G5 G
BH: "[~@6 e3@4 ~@4 e3@4 e3@2 [g3,e4]@2 [f3,d4]@2 ~@4 [e3,g3]@2 [d3,f3] ~, [c2,c3]@31 ~, c5@20 ~@4 e4@7 ~, ~ [g3,c4]@2 [g3,c4]@2 ~ g3 ~, ~@10 e3@4 ~@12 c4@5 ~]/2", // C Dm Em Dm C C5
BI: "[c2,c3,e3]@3 ~, [d3,f3] ~@15", // C Dm
})).s("gm_piano").gain(0.64)
// drums · kick
const kick = s("bd").struct("<A@13 B A@2 C A@37 D A@16 E F ~@3 A@2 G A@7 B A@4 H A@13 I A@16 F ~@2>".pickRestart({
A: "x ~@2 x!2 ~@3", B: "x ~@2 x ~@2 x ~ x ~@7", C: "x!2", D: "x ~@3 x ~@2 x", E: "x ~@6 x", F: "x", G: "x ~@2 x!5",
H: "x ~@2 x!2 ~ x ~", I: "x!8",
})).gain(0.44)
// drums · rim
const rim = s("rim").struct("<~@76 [~ x ~ x]!2 ~@47>").gain(0.37)
// drums · snare
const snare = s("sd").struct(`<
~ A B@13 C B@13 C B@10 C B@13 D B@12 C B@3 ~@7 E B@11 C B@14 F B@7 C B@8 ~@3
>`.pickRestart({
A: "x ~@2 x ~@7 x ~@2 x!2", B: "~ x ~ x", C: "~@4 x ~@7 x!2 ~@2", D: "~@4 x ~@3 x!2 ~@2 x ~@3", E: "~@5 x!3",
F: "~@2 x ~ x ~ x ~ x ~ x ~ x!2 ~@2",
})).gain(0.44)
// drums · hihat
const hihat = s("hh").struct(`<
A B C D@2 A D E A D A@4 C F C D@2 A D@2 A D@2 E D A C F C A D A@3 D A@4 C D A@3 D A@2 D E A D C G A@2 H A D A D A D A
F A I C D A D ~@3 J K D ~ A@2 D A@2 D E A D A D A L A C A D A D L A E D@2 L C M C D A D E D A@2 C D E D A D A D ~@3
>`.pickRestart({
A: "x!8", B: "~ x!2 ~@5", C: "~ x!7", D: "x!7 ~", E: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", F: "x!6 ~@2",
G: "x!4 ~ x ~@2", H: "x!3 ~ x!4", I: "x!5 ~@3", J: "~ x!3", K: "~@2 x!6", L: "~ x!6 ~", M: "x!2 ~@6",
})).gain(0.3)
// drums · mid tom
const mid_tom = s("mt").struct("<~ A ~@25 B ~@24 B ~@12 C ~ D ~@3 E ~@3 F ~@21 C ~@4 G H ~@9 E ~@7 I ~@3>".pickRestart({
A: "~@6 x ~@3 x ~ x!2 ~@2", B: "~@14 x!2", C: "~@15 x", D: "~ x ~ x ~ x ~@2", E: "~@5 x ~@2", F: "~@6 x!2",
G: "~@6 x ~ x ~@6 x", H: "~@7 x", I: "~@3 x!3 ~@2",
})).gain(0.37)
// drums · open hat
const open_hat = s("oh").struct(`<
~@3 A@2 ~ A ~@2 A ~@7 A@2 ~ A@2 ~ A@2 ~ A ~@5 A ~@3 A ~@5 A ~@3 A ~@2 A ~@4 A ~@2 B ~ A ~ A ~ A ~ C ~ D ~ A ~ A ~@5 A
~@3 A ~@2 A ~@2 A ~ A ~ A ~@3 A ~@2 A ~@2 A ~@5 A ~ A ~ A ~@3 A ~ A ~ A ~ A ~@3
>`.pickRestart({
// … 46 more lines
More by Amedeo Minghi
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.