0:00/0:00
// Singapore — Nuovi Angeli
// 137 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 97 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(137/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.
// other · piano
const piano = note(`<
~ A B A B@2 C A B@2 C D E A B A B@2 F A B@2 F D E G@2 H@2 I J K@2 L M N O P@4 Q R@2 S T U V W X Y Z AA AB AC AD AE AF
AG@2 AH@8 AI@8 AJ@7 AK@8 AL@2 AM AN ~@2
>`.pickRestart({
A: "[c4,e4,g4] c4 [f4,g4] c4 [e4,g4] c4 [d4,g4] c4", B: "[e4,g4] c4 [f4,g4] c4 [e4,g4] c4 [d4,g4] c4",
C: "[a3,c4,e4]@3 a3@3 [d4,e4]@3 a3@3 [c4,e4]@3 a3@3 [b3,e4]@3 a3@2 ~", // Am Dsus2 C E5
D: "[c4,d4,f#4] a3 [c4,d4,f#4] a3 [c4,d4,f#4] a3 [c4,d4,f#4] a3", // D7
E: "[b3,d4,f4] g3 [b3,d4,f4] g3 [b3,d4,f4] g3 [b3,d4,f4] g3", F: "[a3,c4,e4] a3 [d4,e4] a3 [c4,e4] a3 [b3,e4] a3",
G: "[c2,c3] ~ [g1,g2] ~ [c2,c3] ~ [g1,g2] ~", H: "[g2,g3] ~ [d2,d3] ~ [g2,g3] ~ [d2,d3] ~",
I: "[d2,d3] ~ [a1,a2] ~ [d2,d3] ~ [a1,a2] ~", J: "[d2,d3]@3 ~@3 [a1,a2]@3 ~@4 [d2,d3]@3 ~@3 [a1,a2]@3 ~@2",
K: "~ [g2,g3]@3 ~@3 [d2,d3]@3 ~@3 [g2,g3]@3 ~@3 [d2,d3]@3 ~@2", // G D G D
L: "~ [d2,d3]@3 ~@4 [a1,a2]@3 ~@3 [d2,d3]@3 ~@3 [a1,a2]@3 ~", // D A D A
M: "~@2 [d2,d3]@3 ~@3 [a1,a2]@3 ~@4 [d2,d3]@3 ~@3 [a1,a2]@3", N: "~@3 [g2,g3]@4 ~@5 [g2,g3]@2 ~ [f2,f3]@4 ~@5",
O: "[f2,f3]@2 ~@2 [e2,e3]@4 ~@5 [e2,e3]@2 ~ [d2,d3]@5 ~@3", // F E D
P: "[~@4 [c5,e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 ~ c5@3 [d5,g5]@3 c5@3 [e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [a4,c5,e5]@3 a4@3 [d5,e5]@3 ~ a4@3 [c5,e5]@3 a4@3]/4", // C Fsus2 Em G5 Em Fsus2 Em G5 …
Q: "[b4,e5] a4 [c5,e5,g5] c5 [f5,g5] c5 [e5,g5] c5", R: "[d5,g5] c5 [e5,g5] c5 [f5,g5] c5 [e5,g5] c5",
S: "[d5,g5] c5 [a4,c5,e5] a4 [d5,e5] a4 [c5,e5] a4", T: "[b4,e5] a4 [c5,d5,f#5] a4 [c5,d5,f#5] a4 [c5,d5,f#5] a4",
U: "[c5,d5,f#5] a4 [b4,d5,f5] g4 [b4,d5,f5] g4 [b4,d5,f5] g4", V: "[b4,d5,f5] g4 [c2,c3] ~ [g1,g2] ~ [c2,c3] ~",
W: "[g1,g2] ~ [c2,c3] ~ [g1,g2] ~ [c2,c3] ~", X: "[g1,g2] ~ [g2,g3] ~ [d2,d3] ~ [g2,g3] ~",
Y: "[d2,d3] ~ [g2,g3] ~ [d2,d3] ~ [g2,g3] ~", Z: "[d2,d3] ~ [d2,d3] ~ [a1,a2] ~ [d2,d3] ~",
AA: "[a1,a2] ~ [d2,d3] ~ [a1,a2] ~ [d2,d3] ~", AB: "[a1,a2]@3 ~@3 [g2,g3]@3 ~@4 [d2,d3]@3 ~@3 [g2,g3]@3 ~@2",
AC: "~ [d2,d3]@3 ~@3 [g2,g3]@3 ~@3 [d2,d3]@3 ~@3 [g2,g3]@3 ~@2", // D G D G
AD: "~ [d2,d3]@3 ~@3 [d2,d3]@3 ~@3 [a1,a2]@3 ~@4 [d2,d3]@3 ~", // D A D
AE: "~@2 [a1,a2]@3 ~@3 [d2,d3]@3 ~@3 [a1,a2]@3 ~@3 [d2,d3]@3 ~", // A D A D
AF: "~@2 [a1,a2]@3 ~@4 [g2,g3]@4 ~@5 [g2,g3]@2 ~ [f2,f3]@3", // A G F
AG: "[~@6 [f2,f3]@2 ~ [e2,e3]@4 ~@6 [e2,e3]@2 ~ [d2,d3]@5 ~@7 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@2]/2", // F E D C G C
AH: "[~@4 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@4 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [a2,a3]@3 ~@3 [e2,e3]@3 ~@3 [a2,a3]@3 ~@3 [e2,e3]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [a2,a3]@3 ~@3 [e2,e3]@3 ~@3 [a2,a3]@3 ~@3 [e2,e3]@3 ~@3 [d2,d3]@3 ~@3 [a1,a2]@3 ~@3 [d2,d3]]/8", // G C G C G C G C …
AI: "[~@5 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [d2,d3]@3 ~@3 [g1,g2]@3 ~@3 [d2,d3]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [d2,d3]@3 ~@3 [a1,a2]@3 ~@3 [d2,d3]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [d2,d3]@3 ~@3 [g1,g2]@3 ~@3 [d2,d3]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3,c4,e4,g4]@3 c4@3 [f4,g4]@3 c4@3 [e4,g4]@3 c4@3 [d4,g4]@3 c4@3 [e4,g4]@3 c4@3 [f4,g4]@3 c4@3 [e4,g4]@3 c4@3 [d4,g4]@3 c4@3 [c5,e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]]/8", // C G D G D C G C …
AJ: "[~@2 c5@3 [d5,g5]@3 c5@3 [e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [a4,c5,e5]@3 a4@3 [d5,e5]@3 a4@3 [c5,e5]@3 a4@3 [b4,e5]@3 a4@3 [c5,e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [a4,c5,e5]@3 a4@3 [d5,e5]@3 a4@3 [c5,e5]]/7", // G5 Em Fsus2 Em G5 Em Fsus2 Em …
AK: "[~@2 a4@3 [b4,e5]@3 a4@3 [c5,d5,f#5]@3 a4@3 [c5,d5,f#5]@3 a4@3 [c5,d5,f#5]@3 a4@3 [c5,d5,f#5]@3 a4@3 [b4,d5,f5]@3 g4@3 [b4,d5,f5]@3 g4@3 [b4,d5,f5]@3 g4@3 [b4,d5,f5]@3 g4@3 [c5,e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [e5,g5]@3 c5@3 [f5,g5]@3 c5@3 [e5,g5]@3 c5@3 [d5,g5]@3 c5@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [a2,a3]@3 ~@3 [e2,e3]@3 ~@3 [a2,a3]]/8", // E5 D7 Bdim C Fsus2 Em G5 Em …
AL: "[~@5 [e2,e3]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@2 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@2]/2", // E C G C G C G C
AM: "~@4 [g1,g2]@3 ~@3 [c2,c3]@3 ~@3 [g1,g2]@3 ~@3 [c2,c3]@2", AN: "~@4 [g1,g2]@3 ~@3 [a2,a3]@3 ~@11",
})).s("gm_piano").gain(0.52).pan(0.3)
// bass · electric bass finger
const bass = note(`<
~@5 A B ~@2 A B C D E@2 F G H I F G J I K L M@2 N@2 O P Q R S T U V@2 W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM
AN AO AP AQ@2 AR@8 AS@6 AT@8 AU@5 AV@6 AW AX AY AZ
>`.pickRestart({
A: "~@21 a1 ~@2", B: "a1", C: "d2@17 ~ d3@6", D: "g1@20 ~ g1@2 ~",
E: "[c2@26 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ g1 ~@2]/2", F: "c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~",
G: "c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~", H: "c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@4 ~@2 g1@2 ~",
I: "a1@2 ~ a1@3 ~@3 a1@2 ~ a1@2 ~ a1@4 ~@2 a1@2 ~", J: "c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@4 ~@2 g1@3",
K: "d2@2 ~ d2@2 ~@4 d2@2 ~ d2@2 ~ d2@3 ~@3 d2@2 ~", L: "g1@3 g1@2 ~@4 g1@2 ~ g1@2 ~ g1@2 ~@4 g1 ~@2",
M: "c2 ~ g1 ~ c2 ~ g1 ~", N: "g2 ~ d2 ~ g2 ~ d2 ~", O: "d2@4 ~@2 a1@4 ~@2 d2@3 ~@3 a1@3 ~@3",
P: "d2@4 ~@2 a1@4 ~@3 d2@4 ~@2 a1@3 ~@2", Q: "~ g2@4 ~@2 d2@4 ~@2 g2@3 ~@3 d2@3 ~@2",
R: "~ g2@4 ~@2 d2@4 ~@2 g2@4 ~@2 d2@3 ~@2", S: "~ d2@4 ~@3 a1@4 ~@2 d2@3 ~@3 a1@3 ~",
T: "~@2 d2@4 ~@2 a1@4 ~@3 d2@4 ~@2 a1@3", U: "~@3 g2@2 ~ g2@3 ~@3 g2@2 ~ f2@2 ~ f2@3 ~@3",
V: "[f2@2 ~@2 e2@2 ~ e2@3 ~@3 e2@2 ~ d2@4 d#2 [e2,f2] g2@6 c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~@2 c2@2 ~@2, ~@22 f#2 ~@25]/2", // Fmaj7
W: "~@2 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@2 ~@2", X: "~@2 c2@2 ~ c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@4",
Y: "~@2 g1@3 a1@2 ~ a1@3 ~@4 a1@2 ~ a1@2 ~ a1@3", Z: "~@3 a1@2 ~ c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@2 ~",
AA: "~@3 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@2 ~", AB: "~@3 c2@2 ~ c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@3",
AC: "~@3 g1@3 a1@2 ~ a1@3 ~@3 a1@2 ~ a1@2 ~ a1@3", AD: "~@3 a1@2 ~ d2@2 ~ d2@2 ~@4 d2@2 ~ d2@2 ~ d2@3",
AE: "~@3 d2@2 ~ g1@3 g1@2 ~@4 g1@2 ~ g1@2 ~ g1@2 ~", AF: "~@3 g1 ~@2 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3",
AG: "g1 ~ c2 ~ g1 ~ c2 ~", AH: "g1 ~ g2 ~ d2 ~ g2 ~", AI: "d2 ~ g2 ~ d2 ~ g2 ~",
AJ: "d2@3 ~@3 d2@4 ~@2 a1@4 ~@2 d2@3 ~@3", AK: "a1@3 ~@3 d2@4 ~@2 a1@4 ~@2 d2@4 ~@2",
AL: "a1@3 ~@3 g2@4 ~@3 d2@4 ~@2 g2@3 ~@2", AM: "~ d2@3 ~@3 g2@4 ~@2 d2@4 ~@2 g2@4 ~",
AN: "~ d2@3 ~@3 d2@4 ~@2 a1@4 ~@3 d2@3 ~", AO: "~@2 a1@3 ~@3 d2@4 ~@2 a1@4 ~@2 d2@4",
AP: "~@2 a1@4 ~@3 g2@2 ~ g2@3 ~@3 g2@2 ~ f2@2 ~",
AQ: "[f2@3 ~@3 f2@2 ~ e2@2 ~ e2@3 ~@4 e2@2 ~ d2@4 [d#2,e2] f2 g2@6 c2@4 ~@2 g1@4 ~@2 c2@2, ~@28 f#2 ~@19]/2", // Emaj7
AR: "[~@4 g1@3 ~@3 c2@4 ~@2 g1@4 ~@3 c2@4 ~@2 g1@3 ~@3 c2@4 ~@2 g1@4 ~@2 c2@3 ~@3 g1@3 ~@3 a1@4 ~@2 e1@4 ~@2 a1@4 ~@2 e1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 a1@3 ~@3 e1@3 ~@3 a1@3 ~@3 e1@3 ~@3 d2@3 ~@3 a1@3 ~@3 d2]/8",
AS: "[~@5 a1@3 ~@3 g1@3 ~@3 d2@3 ~@3 g1@3 ~@3 d2@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 d2@3 ~@3 a1@3 ~@3 d2@3 ~@3 a1@3 ~@3 g1@3 ~@3 d2@3 ~@3 g1@3 ~@3 d2@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@10]/6",
AT: "[~@15 c3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ c3@4 c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@4 ~@2 g1@2 ~ a1@2 ~ a1@3 ~@3 a1@2 ~ a1@2 ~ a1@4 ~@2 a1@2 ~ c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@2 ~@4 c2@2 ~ c2@2 ~ c2@3 ~@3 c2@2 ~ c2]/8",
AU: "[~@2 c2@4 ~@2 g1@3 a1@2 ~ a1@3 ~@3 a1@2 ~ a1@2 ~ a1@4 ~@2 a1@2 ~ d2@2 ~ d2@2 ~@4 d2@2 ~ d2@2 ~ d2@3 ~@3 d2@2 ~ g1@3 g1@2 ~@4 g1@2 ~ g1@2 ~ g1@2 ~@4 g1 ~@2 c2@2 ~ c2@3 ~@3 c2@2 ~ c2@2 ~ c2@3 ~@3 c2@5 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2]/5",
AV: "[~@2 c2@2 ~ c2@2 ~ g1 ~@2 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 a1@3 ~@3 e1@3 ~@3 a1@3 ~@3 e1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@3 ~@3 g1@3 ~@2 c2@3 ~@3 g1@3 ~@3 c2@2]/6",
AW: "~@4 g1@3 ~@3 c2@3 ~@3 g1@3 ~@3 c2@2", AX: "~@4 g1@3 ~@3 a1@3 ~@3 e1@3 ~@3 a1@2", AY: "~ e1 ~ c2 ~ g1 ~ c2",
AZ: "~ g1 ~@6",
})).s("gm_electric_bass_finger").gain(0.8)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@5 A B ~@2 A C D@2 E@4 F G E@2 F H@3 I ~@11 J K@2 L@2 M N O P@3 ~@11 Q R S@2 T@2 U@2 V@3 W@3 ~@2 X@2 U@2 Y@2 U@2 Z@4
AA@2 AB@2 AC@2 AD AE AF AG
>`.pickRestart({
A: "~@21 [e3,a3,c4,e4]@2 [a3,c4,e4], ~@20 a2@3 ~", B: "[a2,e3,a3,c4,e4]", C: "[a2,e3,a3,c4,e4]@23 a3",
D: "[[d4,f#4]@20 ~@4 [g2,b3,d4,f4]@23 ~, d3@23 g3@23 ~@2, c4 ~@47]/2", // D G7
E: "[[c3,g3,c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,c4,e4]@5 ~ c3 ~@2 [c3,g3,c4,e4]@2 ~ g3 ~@2, ~@11 g3 ~@4]/2", // C
F: "[c3,g3,c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [e3,a3,c4,e4]@2 [a3,c4,e4], ~@20 a2@3 ~", // C Am
G: "[a2,e3,a3,c4,e4]@6 a2 ~@2 [a3,c4,e4]@5 ~ a2 ~@2 [a2,e3,a3,c4]@2 ~ e3 ~@2, ~@3 [a2,e3] ~@4", // Am A5
H: "[[a2,e3,a3,c4,e4]@5 ~ a2 ~@2 [a3,c4,e4]@5 ~ a2 ~@2 [a2,e3,a3,c4]@2 ~ e3 ~@2 [c4,d4,f#4]@20 ~@4 [g2,b3,d4,f4]@23 ~, ~@9 [a2,e3]@3 ~@11 a3@20 ~@4 g3@23 ~@2, ~@24 d3@23 ~@25]/3", // Am D7 G7 A5
I: "[c3,g3,c4,e4] ~@3", J: "~@4 [c3,g3,c4,e4]@6 c3 ~@3 c3@6 c3 ~ c3 ~, ~@13 [g3,c4,e4]@6 ~@5",
K: "[~@2 [c3,g3,c4]@6 c3 ~@2 c3 ~@2 [c3,c4,e4]@5 ~ c3 ~@2 [c3,g3,c4,e4]@2 ~ g3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3, ~ e4@6 ~@6 g3@3 ~@32]/2", // C5 C
L: "[~@2 [a2,e3,a3,c4,e4]@2 [a3,c4,e4] ~ e4@5 a2 ~@2 [a3,c4,e4]@5 ~@2 a2 ~@2 [a3,c4]@2 ~ e3 ~@2 [c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2, ~@5 [a2,e3,a3,c4]@6 ~@3 [a2,e3]@3 ~@6 [a2,e3]@3 ~@3 [c3,g3]@6 ~@13]/2", // Am C Am A5 C5
M: "c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c4,e4]@5 ~ c3 ~@2, ~@14 c3@5 ~@5, ~@14 g3@3 ~@7", // C
N: "[c3,g3,c4,e4]@2 ~ g3 ~@2 [c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2, ~@5 [c3,g3]@6 ~@13", // C C5
O: "c3 ~@2 [c4,e4]!2 a3 [e3,a3,c4,e4]@6 a2 ~@2 [a3,c4,e4]@5 ~ a2 ~@2, ~@2 [a2,e3,a3]@3 a2@5 ~@4 [a2,e3]@3 ~@7", // C Am A5
P: "[[a2,e3,a3,c4]@2 ~ e3 ~@2 [d4,f#4]@20 ~@4 [b3,d4,f4]@23 ~ [c4,e4]@6 ~@12, ~@5 [a3,c4]@20 ~@47, ~@6 d3@23 [g2,g3]@23 ~ [c3,g3]@6 ~@13]/3", // Am D Bdim C Am G C5
Q: "~@10 e4@6 c3 ~@2 [c3,g3,c4,e4]@5", R: "~ c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,c4,e4]@5, ~@19 g3@3 ~@2",
S: "[~@2 c3 ~@2 [g3,c4,e4]@2 ~ g3 ~@2 [c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [e3,a3,c4,e4]@2 [a3,c4,e4] [a2,e3,a3,c4,e4]@6 a2 ~@2 [a2,e3,a3,c4,e4]@4, ~@4 c3@3 ~@3 [c3,g3]@6 ~@15 a2@3 ~@14]/2", // C Am C5
T: "[~@2 a2 ~@2 [a2,e3,a3,c4]@2 ~ e3 ~@3 e4@5 c3 ~@3 c3@5 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@4, ~@10 [g3,c4,e4]@3 ~@11]/2", // Am C
U: "[~@2 c3 ~@2 [c3,g3,c4,e4]@2 ~ g3 ~@3 e4@5 c3 ~@3 c3@5 c3 ~@2 c3 ~@2 [a2,e3,a3,c4,e4]@2 [a3,c4,e4] ~ e4@5 a2 ~@2 [a2,e3,a3,c4,e4]@4, ~@11 [c3,g3,c4]@6 ~@3 [g3,c4,e4]@6 ~@9 [a2,e3,a3,c4]@5 ~@8]/2", // C Am C5 C Am
V: "[~@2 a2 ~@2 [a2,e3,a3,c4]@2 ~ e3 ~@2 [a3,c4,d4,f#4]@20 ~@5 [d4,f4]@23 ~ e4@6 ~@6, ~@11 d3@24 [g2,g3,b3]@23 ~ [c3,g3,c4]@6 ~@7]/3", // Am D7 Dm G C5
W: "[~@11 [a3,c4,d4,f#4]@20 ~@5 [d4,f4]@23 ~ e4@6 ~@6, ~@11 d3@24 [g2,g3,b3]@23 ~ [c3,g3,c4]@6 ~@7]/3", // D7 Dm G C5
X: "[~@12 e4@5 c3 ~@3 c3@5 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@4, ~@11 [c3,g3,c4]@6 ~@3 [g3,c4,e4]@6 ~@22]/2", // C C5 C
Y: "[~@2 a2 ~@2 [a2,e3,a3,c4]@2 ~ e3 ~@3 e4@5 c3 ~@3 c3@5 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@4, ~@11 [c3,g3,c4]@6 ~@3 [g3,c4,e4]@6 ~@22]/2", // Am C C5 C
Z: "[~@2 a2 ~@2 [a2,e3,a3,c4]@2 ~ e3 ~@2 [a3,c4,d4,f#4]@20 ~@5 [d4,f4]@23 ~ e4@5 c3 ~@3 c3@5 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@4, ~@11 d3@24 [g2,g3,b3]@23 ~ [c3,g3,c4]@6 ~@3 [g3,c4,e4]@6 ~@22]/4", // Am D7 Dm C G C5 C
AA: "[~@2 c3 ~@2 [c3,g3,c4,e4]@2 ~ g3 ~@3 e4@5 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@4, ~@11 [c3,g3,c4]@6 ~@31]/2", // C C5
AB: "[~@2 c3 ~@2 [c3,g3,c4,e4]@2 ~ g3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [e3,a3,c4,e4]@2 [a3,c4,e4] [a2,e3,a3,c4,e4]@5 ~ a2 ~@2 [e3,a3,c4,e4]@4, ~@31 a2@3 ~@9 a2@3 ~@2]/2", // C Am
AC: "[~@2 a2 ~@2 [a2,e3,a3,c4]@2 ~ e3 ~@2 [g3,c4,e4]@6 c3 ~@2 [c3,g3,c4]@6 c3 ~ c3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 c3 ~@2 [c3,c4,e4]@5, ~@10 c3@5 ~@4 e4@6 ~@18 g3@3 ~@2]/2", // Am C C5 C
AD: "~ c3 ~@2 [c3,g3,c4,e4]@2 ~ g3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@5", // C
AE: "~ c3 ~@2 c3 ~@2 [c4,e4]!2 a3 [e3,a3,c4,e4]@6 a2 ~ [a3,c4,e4]@5 ~, ~@6 [a2,e3,a3]@3 a2@5 ~@4 [a2,e3]@3 ~@3", // C Am A5
AF: "a2 ~@2 [a2,e3,a3,c4]@2 ~ e3 ~@2 [c3,g3,c4,e4]@6 c3 ~@2 [c3,g3,c4,e4]@6", // Am C
AG: "c3 ~@2 c3 ~@2 [c3,g3,c4,e4]@3 ~@15", // C
})).s("gm_acoustic_guitar_steel").gain(0.44).pan(0.6)
// other · distortion guitar
const distortion_guitar = note(`<
~@13 A B@4 ~@22 C@4 D E@5 ~@12 F@4 G H@3 I@5 ~@3 G J@3 G K@5 ~@2 L@4 M N@2
>`.pickRestart({
A: "e4@2 g4 e4@2 g4 e4@2", B: "[g4@3 e4@3 d4@6 c4@62 ~@22]/4",
C: "[~@8 a4@3 c5@3 d5@3 ~ e5@2 d5@3 c5@3 ~ a4@2 ~ c5@45 ~@21]/4", D: "~@3 a4 c5 d5 e5 d5",
E: "[c5@3 a4@3 d5@24 g4@24 c5@46 ~@20]/5", F: "[~@14 a4@3 c5@3 d5@3 e5@3 d5@3 c5@3 a4@2 ~ c5@45 ~@16]/4",
G: "~@14 a4@3 c5@3 d5@3 ~", H: "[e5@2 d5@3 c5@3 a4@3 d5@24 g4@24 ~@3 a4@3 c5@3 d5@3 ~]/3",
I: "[e5@2 d5@3 c5@3 a4@3 d5@24 g4@24 c5@52 ~@9]/5", J: "[e5@2 d5@3 c5@3 a4@2 ~ c5@45 ~@16]/3",
K: "[e5@2 d5@3 c5@3 a4@3 d5@24 g4@24 c5@46 ~@15]/5", L: "[~@14 a4@3 c5@3 d5@3 e5@3 d5@3 c5@3 a4@2 ~ c5@44 ~@17]/4",
M: "~@13 a4@3 c5@2 d5@3 ~ e5@2", N: "[d5 c5 a4 c5@8 ~@5]/2",
})).s("gm_distortion_guitar").gain(0.66).pan(0.2)
// chords · piano
const piano_2 = note(`<
~@25 A B C D E F G@2 H I J K L ~@9 M N O P Q E R G S T U V W X Y Z AA AB Y Z AC AD AE AF AD AE AG ~@13 AH AB Y Z AI AJ
AK AL AM AN
>`.pickRestart({
A: "~@3 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~", // C
B: "~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~", // C
C: "~@3 [g4,b4,d5]@2 ~@4 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@2 ~", // G
D: "~@3 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@2 ~", // G
E: "[d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2", // D7
F: "[d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@3 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~", // D7
G: "~ [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~", // G
H: "~ [d4,f#4,c5] ~@3 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5]", // D7
I: "~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@3 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2", // D7
J: "[d4,f#4,c5] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,f4,g4,b4] ~@2 [d4,f4,g4,b4] ~@2 [d4,f4,g4,b4] ~@2", // D7 G G7
K: "[d4,f4,g4,b4] ~@3 [d4,g4,b4,e5] ~@2 [d4,g4,b4,e5] ~@2 [d4,g4,b4,e5] ~@2 [d4,g4,b4,e5] ~@2 [d4,g4,b4,d5] ~@2 [d4,g4,b4,d5] ~@2 [d4,g4,b4,d5] ~", // G7 Em7 G
L: "~ [d4,g4,b4,d5] ~@22", M: "~@9 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3",
N: "~@3 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3", // C
O: "~@3 [g4,c5,e5]@2 ~@4 [g4,b4,d5]@2 ~@4 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@3", // C G
P: "~@3 [g4,b4,d5]@2 ~@4 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@3 ~@3 [g4,b4,d5]@3", // G
Q: "~@3 [g4,b4,d5]@2 ~ [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2", // G D7
R: "[d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~", // D7 G
S: "~ [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@3 [d4,f#4,c5] ~@2 [d4,f#4,c5]", // G D7
T: "~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5] ~@2 [d4,f#4,c5]", // D7
U: "~@2 [d4,f#4,c5] ~@3 [d4,f#4,c5] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,f4,g4,b4] ~@2", // D7 G G7
V: "[d4,f4,g4,b4] ~@2 [d4,f4,g4,b4] ~@2 [d4,f4,g4,b4] ~@2 [d4,g4,b4,e5] ~@2 [d4,g4,b4,e5] ~@2 [d4,g4,b4,e5] ~@3 [d4,g4,b4,e5] ~@2 [d4,g4,b4,d5] ~", // G7 Em7 G
W: "~ [d4,g4,b4,d5] ~@2 [d4,g4,b4,d5] ~@2 [d4,g4,b4,d5] ~@2 [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@2", // G C
X: "~ [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@4 [g4,c5,e5]@3 ~", // C
Y: "~@2 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~", // C
Z: "~@2 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~ [a4,c5,e5]@3 [a4,c5,e5]@3 ~@3 [a4,c5,e5]@3 ~", // C Am
AA: "~@2 [a4,c5,e5]@3 ~@3 [a4,c5,e5]@2 ~ [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~", // Am C
AB: "~@2 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~", // C
AC: "~@2 [a4,c5,e5]@3 ~@3 [a4,c5,e5]@2 ~@4 [f#4,c5,d5]@2 ~@4 [f#4,c5,d5]@3 ~", // Am D7
AD: "~@2 [f#4,c5,d5]@3 ~@3 [f#4,c5,d5]@2 ~@4 [f4,b4,d5]@3 ~@3 [f4,b4,d5]@3 ~", // D7 Bdim
AE: "~@2 [f4,b4,d5]@3 ~@3 [f4,b4,d5]@2 ~@4 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 ~", // Bdim C
AF: "~@2 [e4,g4,c5]@3 ~@3 [e4,g4,c5]@2 ~@4 [f#4,c5,d5]@2 ~@4 [f#4,c5,d5]@3 ~", // C D7
AG: "~@2 [e4,g4,c5]@3 ~@3 [e4,g4,c5]@2 ~@14", AH: "~@11 [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~",
AI: "~@2 [a4,c5,e5]@3 ~@3 [a4,c5,e5]@2 ~ [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@4 [g4,c5,e5]@2 ~@2", // Am C
AJ: "~@2 [g4,c5,e5]@3 ~@2 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@3 ~@2", // C
AK: "~ [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@2 ~@3", // C
AL: "~ [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~ [a4,c5,e5]@3 [a4,c5,e5]@3 ~@3 [a4,c5,e5]@3 ~@2", // C Am
AM: "~ [a4,c5,e5]@3 ~@2 [a4,c5,e5]@2 ~ [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@4 [g4,c5,e5]@2 ~@4", // Am C
AN: "[g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~@16", // C
})).s("gm_piano").gain(0.56).pan(0.7)
// other · clarinet
const clarinet = note("<~@27 A@2 B C D@2 E@5 ~@11 F@2 G H I@2 J K@4 ~@37>".pickRestart({
A: "[g5@29 ~ g5@2 ~ g5@2 ~ g5@2 ~ g5@2 ~ g5@2 ~ g5@2 ~]/2",
B: "f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@5 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~",
C: "f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@6 f#5@2 ~ f#5@2 ~@2 f#5@2",
D: "[~ g5@2 ~ g5@2 ~ g5@2 ~ g5@18 ~@3 g5@2 ~ g5@2 ~ g5@2 ~ g5@2 ~ g5@2 ~ g5@2]/2",
E: "[~ f#5@2 ~ f#5@2 ~ f#5@2 ~@2 f#5@5 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@6 f#5@2 ~@2 f#5@6 ~@12 f5@12 e5@13 d5@12 ~@20, ~@51 g5@49 ~@20, ~@75 b4@23 ~@22]/5",
F: "[~@6 g5@29 ~ g5@2 ~ g5@2 ~ g5@2 ~ g5@2 ~]/2", G: "g5@2 ~ g5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@5 ~ f#5@2 ~",
H: "f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@6 f#5@2 ~",
I: "[f#5@2 ~ f#5@2 ~ g5@2 ~ g5@2 ~ g5@2 ~ g5@18 ~@4 g5@2 ~ g5@2 ~ g5@2 ~ g5@2]/2",
J: "~ g5@2 ~ g5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@5 ~ f#5@2",
K: "[~@2 f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@2 ~ f#5@6 f#5@2 ~ f#5@6 ~@13 f5@12 e5@13 d5@12 ~@14, ~@32 g5@49 ~@15, ~@57 b4@23 ~@16]/4",
})).s("gm_clarinet").gain(0.34)
// chords · string ensemble 2
const string_ensemble_2 = note("<~@29 A@7 ~@15 B@7 ~@39>".pickRestart({
A: "[[a4,d5,f#5]@49 [b4,d5,g5]@48 [a4,d5,f#5]@49 ~@22]/7", // D G D
B: "[~@6 [a4,d5,f#5]@48 [b4,d5,g5]@49 [a4,d5,f#5]@49 ~@16]/7", // D G D
})).s("gm_string_ensemble_2").gain(0.39).pan(0.6)
// other · glockenspiel
const glockenspiel = note("<~@37 A@4 B C D E F G H ~@11 I J@8 K L M K L ~@2 N@7 O@2 K P ~ Q@6 R S ~@2>".pickRestart({
A: "[~@4 e6@2 ~@4 f6@3 ~@3 e6@3 ~@4 d6@3 ~@3 e6@3 ~@3 f6@3 ~@3 e6@3 ~@3 d6@3 ~@3 e6@3 ~@3 f6@3 ~@3 e6@2 ~@4 d6@3 ~@3 e6@3 ~@3 d6@3 ~@4 e6@3 ~@3]/4",
B: "b5@3 ~@3 e6@2 ~@4 f6@3 ~@3 e6@3 ~@3", C: "d6 ~ e6 ~ f6 ~ e6 ~", D: "d6@3 ~@3 e6@3 ~@3 f6@3 ~@3 e6@2 ~@4",
E: "d6 ~ e6 ~ d6 ~ e6 ~", F: "b5@3 ~@3 d6@2 ~@16", G: "d6 ~ g5 ~@5", H: "g5 ~ c6 ~@5",
// … 110 more lines
More by Nuovi Angeli
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.