0:00/0:00
// vals chayane — chayane
// 170 bpm, 3/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 2 "Oboe" named as a reed, played on oboe (its pizzicato strings patch is not one); ch 5 "Clarinete en Si♭" named as a reed, played on clarinet (its acoustic bass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5835980; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 258 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(170/3)
// 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.
// chords · cello · "Flauta"
const cello = note(`<
A@6 B@4 C@6 D@5 E F E F E F E F G@2 H I J K L M N O P Q R S T@2 E U V@2 U@2 V@2 W@2 E@2 V@2 U X Y Z Y Z AA Z AB@2 Y AC
AD Z AA Z AE@2 G@2 H I J K L M N O P Q R S T@2 AF@2 AG AH AI AJ AK AL AM AN AO AP@2 AQ AR@2 Y Z Y Z AA Z AB@2 Y AC AD
Z AA Z AS AT AU@2 AV AW AX AY AZ BA BB BC BD BE BF BG BH BI Y Z Y Z AA Z AB@2 Y AC AD Z AA Z AS AT AF@2 AG AH AI AJ AK
AL AM AN AO AP@2 AQ BJ@2 BK@2 BL@2 BM@7 BN@4 BO@8 BP@8 BO@8 BP@8 BO@8 BP@8 BO@8 BP@8 BQ@6
>`.pickRestart({
A: "[~@7 a4@7 ~ a4@7 a4@7 ~ g#4@7 ~ f#4@7 g#4@7 ~ [f#2,a4]@43, ~@7 f#2@45 ~@44]/6", B: "[~ f#2@31]/4",
C: "[~@6 f#4@7 ~ f#4@7 f#4@7 ~ e4@7 d4@7 ~ e4@7 [f#2,f#4]@23 e4@7 ~ d4@7 e4@7, ~@6 f#2@23 e2@23 ~@22 e2@22]/6", // F#
D: "[~ f#4@7 f#4@7 ~ f#4@7 g#4@7 ~ f#4@7 g#4@39 ~@3, ~ d2@22 e2@57]/5", E: "f#2@5 ~@11", F: "c#2@5 ~@11",
G: "[[f#2,c#5]@5 c#5@3 c#5@3 ~@5 c#3@5 b4@5 ~ a#4@5, ~@11 c#5@10 ~@11]/2", H: "[b2,a#4]@5 b4@5 ~ b4@5",
I: "b4@10 ~ g#4@2 a#4@3, b2@5 ~@11", J: "[c#3,b4]@5 b4@5 ~ b4@5", K: "[c#3,b4]@5 a#4@5 ~ g#4@5",
L: "[b2,g#4]@5 f#4@8 g#4@3", M: "f#4@5 ~@3, b2@5 ~@11", N: "[d3,f#4]@5 f#4@5 ~ f#4@5", O: "[d3,f#4]@5 g#4@5 ~ f#4@5",
P: "[f#2,g#4]@5 a#4@5 ~ a#4@5", Q: "a#4@10 ~ a#4@5, f#2@5 ~@11", R: "a#4@10 ~ b4@5, b2@5 ~@11",
S: "g#4@10 ~ f#4@5, b2@5 ~@11", T: "[c#3@5 ~@11 c#3@3 ~@2 g#2@3 ~@3 c#3@3 ~@2, g#4@5 ~@3]/2", U: "c#3@5 ~@11",
V: "b2@5 ~@11", W: "d3@5 ~@11", X: "c#3@3 ~@2 g#2@3 ~@3 c#3@3 ~@2", Y: "[f#2,a4]@5 a4@5 ~ a4@5",
Z: "[b2,g#4]@5 f#4@5 ~ g#4@5", AA: "a4@10 ~ a4@2 a4@3, f#2@5 ~@11", AB: "[c#3@5 ~@11 c#3@5 ~@11, f4@5 ~@3]/2",
AC: "[b2,b4]@5 a4@5 ~ g#4@5", AD: "[f#2,f#4]@5 f#4@5 ~ f#4@5", AE: "[c#3@5 ~@11 c#3@5 ~@11, g#4@5 ~@3]/2",
AF: "[c#5@5 c#5@3 c#5@3 c#5@10 [g#3,b4]@5 ~ [a#3,a#4]@5, f#3@21 ~@11]/2", AG: "[a#3,a#4]@5 [b3,b4]@5 ~ [b3,b4]@5",
AH: "b4@10 ~ g#4@2 a#4@3, b3", AI: "b4@5 b4@5 ~ b4@5, f3", AJ: "[f3,b4]@5 [f#3,a#4]@5 ~ [g#3,g#4]@5",
AK: "[g#3,g#4]@5 f#3@5 ~@3 g#4@3, ~@5 f#4@8 ~@3, ~@11 g#3@5", AL: "f#3, f#4@5 ~@3",
AM: "[a3,f#4]@5 [g#3,f#4]@5 ~ [f#3,f#4]@5", AN: "[a3,f#4]@5 [g#3,g#4]@5 ~ [f#3,f#4]@5",
AO: "[g#3,g#4]@5 [a#3,a#4]@5 ~ [a#3,a#4]@5", AP: "[a#4@10 ~ a#4@5 a#4@10 ~ b4@5, a#3]/2",
AQ: "a#3@5 c#4@5 ~ [b3,f#4]@5, g#4@5 ~@3", AR: "[a#3@5 g#3@5 ~ f#3@5 f3@5 d#3@5 ~ c#3@5, g#4@5 ~@3]/2",
AS: "g#4@15 ~, c#3@5 ~@11", AT: "c#6@3 g#5@2 f5@3 c#5@3 g#4@2 c#4@3, c#3@5 ~@11",
AU: "[a#5@5 a#5@3 a#5@3 a#5@10 [g#3,g#5]@5 ~ [a#3,f#5]@5, f#3@21 ~@11]/2", // G# D#m
AV: "[a#3,f#5]@5 b3@5 ~@3 g#5@3, ~@5 g#5@8 ~@3, ~@11 b3@5", AW: "g#5@10 ~ f5@2 f#5@3, b3",
AX: "g#5@8 g#5@3 g#5@5, f3", AY: "[f3,g#5]@5 [f#3,f#5]@5 ~ [g#3,f5]@5",
AZ: "[g#3,f5]@5 f#3@5 ~@3 f5@3, ~@5 d#5@8 ~@3, ~@11 g#3@5", BA: "d#5@10 ~ b4@2 c#5@3, f#3",
BB: "[a3,d5]@5 [g#3,d5]@5 ~ [f#3,d5]@5", BC: "[a3,d5]@5 [g#3,e5]@5 ~ [f#3,d5]@5",
BD: "[g#3,c#5]@5 a#3@5 ~@3 f#5@3, ~@5 f#5@8 ~@3, ~@11 a#3@5", BE: "f#5@10 ~ f#5@5, a#3", BF: "[b3,g#5]",
BG: "[a#3,f#5]@5 [c#4,a#5]@5 ~ [b3,g#5]@5", BH: "[a#3,f#5]@5 [g#3,f5]@5 ~ [f#3,d#5]@5",
BI: "[f3,c#5]@5 [d#3,b4]@5 ~ [c#3,g#4]@5", BJ: "[a#3@5 g#3@5 ~ f#3@5 f3@5 d#3@5 ~ [c#3,a#4]@5, g#4@5 ~@3]/2",
BK: "[a#4@11 b4@21]/2", BL: "[~@2 g#4@11 f#4@11 ~ g#4@7]/2",
BM: "[~@4 a#5@5 a#5@3 a#5@3 a#5@10 [g#3,g#5]@5 ~ [a#3,f#5]@5 [a#3,f#5]@5 b3@5 ~@3 g#5@3 g#5@10 ~ f5@2 f#5@3 g#5@8 g#5@3 g#5@5 [f3,g#5]@5 [f#3,f#5]@5 ~ [g#3,f5]@5 [g#3,f5]@5 d#5@6 g#3, ~@4 f#3@21 ~@16 g#5@8 ~@63, ~@47 b3@5 b3@16 f3@16 ~@21 f#3@5 ~@2]/7", // G# D#m Fm F# C#
BN: "[~ f5@3 d#5@10 ~ b4@2 c#5@3 [a3,d5]@5 [g#3,d5]@5 ~ [f#3,d5]@5 [a3,d5]@5 [g#3,e5]@5 ~ [f#3,d5]@5 [g#3,c#5]@5 f#5@6 a#3, ~@4 f#3@16 ~@37 a#3@5 ~@2]/4", // D5 G#dim D D5 C#m D C#5
BO: "[~ f#5@3 f#5@10 ~ f#5@5 [b3,g#5]@16 [a#3,f#5]@5 [c#4,a#5]@5 ~ [b3,g#5]@5 [a#3,f#5]@5 [g#3,f5]@5 ~ [f#3,d#5]@5 [f3,c#5]@5 [d#3,b4]@5 ~ [c#3,g#4]@5 a#5@5 a#5@3 a#5@3 a#5@10 [g#3,g#5]@5 ~ [a#3,f#5]@5 [a#3,f#5]@5 g#5@6 b3, ~@4 a#3@16 ~@64 f#3@21 ~@16 b3@5 ~@2]/8", // E D#m F# E D#m C# D#m C# …
BP: "[~ g#5@3 g#5@10 ~ f5@2 f#5@3 g#5@8 g#5@3 g#5@5 [f3,g#5]@5 [f#3,f#5]@5 ~ [g#3,f5]@5 [g#3,f5]@5 f#3@5 ~@3 f5@3 d#5@10 ~ b4@2 c#5@3 [a3,d5]@5 [g#3,d5]@5 ~ [f#3,d5]@5 [a3,d5]@5 [g#3,e5]@5 ~ [f#3,d5]@5 [g#3,c#5]@5 f#5@6 a#3, ~@4 b3@16 f3@16 ~@21 d#5@8 ~@63, ~@63 g#3@5 f#3@16 ~@37 a#3@5 ~@2]/8", // Fm F# C# D5 G#dim D D5 C#m …
BQ: "[~ f#5@3 f#5@10 ~ f#5@5 [b3,g#5]@16 [a#3,f#5]@5 [c#4,a#5]@5 ~ [b3,g#5]@5 [a#3,f#5]@5 [g#3,f5]@5 ~ [f#3,d#5]@5 [f3,c#5]@5 [d#3,b4]@5 ~ [c#3,g#4]@5 ~@12, ~ a#3@4 ~@19]/6", // E D#m F# E D#m C# D#m C# …
})).s("gm_cello").gain(0.4)
// other · tremolo strings · "Corno en Fa"
const tremolo_strings = note(`<
A@7 ~@3 B@6 C D@4 ~@24 E@2 F G H I J K L M N O P Q R@2 S T S T U T R@2 S V W T U T X@2 ~@16 Y@2 F Z AA AB AC AD AE@2 N
AF@2 AG AH AA S T S T U T R@2 S V W T U T X@2 Y@2 F Z AA AB AC AD AE@2 N AH Z AG AH AA S T S T U T R@2 S V W T U T X@2
Y@2 F Z AA AB AC AD AE@2 N AF@2 AG AH AA ~@4 AI@8 AJ@8 AI@8 AJ@8 AI@8 AJ@8 AI@8 AJ@8 AI@8 AJ@8 ~
>`.pickRestart({
A: "[~@7 c#4@8 c#4@7 c#4@8 b3@8 a3@7 b3@8 c#4@45 ~@14]/7",
B: "[~@6 a3@8 a3@7 a3@8 g#3@7 f#3@8 g#3@7 a3@23 g#3@8 f#3@7 g#3@7]/6", C: "~ a3@7 a3@8",
D: "[a3@7 b3@8 a3@7 b3@42]/4", E: "[c#4@5 c#4@3 c#4@3 c#4@10 b3@5 ~ a#3@5]/2", F: "a#3@5 b3@5 ~ b3@5",
G: "b3@11 g#3@2 a#3@3", H: "b3@5 b3@5 ~ b3@5", I: "b3@5 a#3@5 ~ g#3@5", J: "g#3@5 f#3@8 g#3@3", K: "f#3@11 ~@5",
L: "f#3@5 f#3@5 ~ f#3@5", M: "f#3@5 g#3@5 ~ f#3@5", N: "g#3@5 a#3@5 ~ a#3@5", O: "a#3@11 a#3@5", P: "a#3@11 b3@5",
Q: "g#3@11 f#3@5", R: "[g#3@21 ~@11]/2", S: "c#4@5 c#4@5 ~ c#4@5", T: "b3@5 a3@5 ~ b3@5", U: "c#4@11 c#4@2 c#4@3",
V: "d4@5 c#4@5 ~ b3@5", W: "a3@5 a3@5 ~ a3@5", X: "[c#4@21 ~@11]/2", Y: "[f#3@21 g#3@5 ~ a#3@5]/2", Z: "b3", AA: "f3",
AB: "f3@5 f#3@5 ~ g#3@5", AC: "g#3@5 f#3@5 ~ g#3@5", AD: "f#3", AE: "a3/2", AF: "a#3/2", AG: "a#3@5 c#4@5 ~ b3@5",
AH: "a#3",
AI: "[~@4 f#3@21 g#3@5 ~ a#3@5 a#3@5 b3@5 ~ b3@5 b3@16 f3@16 f3@5 f#3@5 ~ g#3@5 g#3@5 f#3@5 ~ g#3@5 f#3@12]/8",
AJ: "[~@4 a3@32 g#3@5 a#3@5 ~ a#3@5 a#3@16 b3@16 a#3@5 c#4@5 ~ b3@5 a#3@16 f3@12]/8",
})).s("gm_tremolo_strings").gain(0.25)
// bass · contrabass · "Trombón"
const bass = note(`<
A@6 B@4 C@6 D@5 ~@8 E F G H F@2 G I G@2 E J G@2 F K E F G H F@2 G I G@2 E J G@2 F K G@6 F K G@6 F K E F G H F@2 G I
G@2 E J G@2 F K L@2 M N O P Q I G@2 E J G@2 F K G@6 F K R S T U G U V K E F G H F@2 G I G@2 E J G@2 F K G@6 F K G@6 F
K E F G H F@2 G I G@2 E J G@2 F K ~@4 W@8 X@8 W@8 X@8 W@8 X@8 W@8 X@8 W@8 X@8 ~
>`.pickRestart({
A: "[~@7 c#4@8 c#4@7 c#4@8 b3@8 a3@7 b3@8 [f#2,c#4]@43, ~@7 f#2@45 ~@44]/6", B: "[~ f#2@31]/4",
C: "[~@6 a3@8 a3@7 a3@8 g#3@7 f#3@8 g#3@7 [f#2,a3]@23 g#3@8 f#3@7 g#3@7, ~@6 f#2@23 e2@23 ~@22 e2@22]/6", // F#m
D: "[~ a3@7 a3@8 a3@7 b3@8 a3@7 b3@42, ~ d2@22 e2@57]/5", E: "~@5 a#3@3 ~@3 a#3@3 ~@2", F: "~@5 g#3@3 ~@3 g#3@3 ~@2",
G: "~@5 f#3@3 ~@3 f#3@3 ~@2", H: "b3@3 ~@2 f#3@3 ~@3 d#3@3 ~@2", I: "f#3@3 ~@2 d#3@3 ~@3 f#3@3 ~@2",
J: "c#4@3 ~@2 a#3@3 ~@3 f#3@3 ~@2", K: "g#3@3 ~@2 f3@3 ~@3 c#3@3 ~@2", L: "[c#4@5 c#4@3 c#4@3 c#4@10 b3@5 ~ a#3@5]/2",
M: "a#3@5 b3@5 ~ b3@5", N: "b3@11 d#3@3 ~@2", O: "b3@5 b3@5 ~ b3@5", P: "b3@5 a#3@5 ~ g#3@5", Q: "g#3@5 f#3@8 g#3@3",
R: "a3@5 a3@5 ~ a3@5", S: "b3@5 a3@5 ~ g#3@5", T: "f#3@5 f#3@5 ~ f#3@5", U: "g#3@5 f#3@5 ~ g#3@5", V: "g#3",
W: "[~@9 a#3@3 ~@3 a#3@3 ~@7 g#3@3 ~@3 g#3@3 ~@7 f#3@3 ~@3 f#3@3 ~@2 b3@3 ~@2 f#3@3 ~@3 d#3@3 ~@7 g#3@3 ~@3 g#3@3 ~@7 g#3@3 ~@3 g#3@3 ~@7 f#3@3 ~@3 f#3@3 ~@2 f#3@3 ~@2 d#3@3 ~@3 f#3]/8",
X: "[~@9 f#3@3 ~@3 f#3@3 ~@7 f#3@3 ~@3 f#3@3 ~@7 a#3@3 ~@3 a#3@3 ~@2 c#4@3 ~@2 a#3@3 ~@3 f#3@3 ~@7 f#3@3 ~@3 f#3@3 ~@7 f#3@3 ~@3 f#3@3 ~@7 g#3@3 ~@3 g#3@3 ~@2 g#3@3 ~@2 f3@3 ~@3 c#3]/8",
})).s("gm_contrabass").gain(0.25)
// other · clarinet · "Clarinete en Si♭"
const clarinet = note(`<
A@7 ~@3 B@6 C D@4 E F E F E F E G H@2 I J K L M N O P Q R S T U@2 V F W@2 F@2 W@2 X@2 V@2 W@2 F G Y Z Y Z AA Z U@2 Y
AB AC Z AA Z AD@2 H@2 I J K L M N O P Q R S T U@2 V F W@2 F@2 W@2 X@2 V@2 W@2 F G Y Z Y Z AA Z U@2 Y AB AC Z AA Z AD@2
AE@2 AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS Y Z Y Z AA Z U@2 Y AB AC Z AA Z AD@2 V F W@2 F@2 W@2 X@2 V@2 W@2 F G
~@4 AT@3 AU@4 AV@4 AW@8 AU@4 AV@4 AW@8 AU@4 AV@4 AW@8 AU@4 AV@4 AW@8 AU@4 AV@4 AX@6
>`.pickRestart({
A: "[~@7 a4@8 a4@7 a4@8 g#4@8 f#4@7 g#4@8 a4@45 ~@14]/7",
B: "[~@6 f#4@8 f#4@7 f#4@8 e4@7 d4@8 e4@7 f#4@23 e4@8 d4@7 e4@7]/6", C: "~ f#4@7 f#4@8",
D: "[f#4@7 g#4@8 f#4@7 g#4@42]/4", E: "f#1@5 a#3@3 ~@3 a#3@3 ~@2", F: "c#2@5 ~@11",
G: "c#2@3 ~@2 g#1@3 ~@3 c#2@3 ~@2", H: "[[f#1,c#5]@5 c#5@3 c#5@3 ~@5 c#2@5 b4@5 ~ a#4@5, ~@11 c#5@11 ~@10]/2",
I: "[b1,a#4]@5 b4@5 ~ b4@5", J: "b4@11 g#4@2 a#4@3, b1@5 ~@11", K: "[c#2,b4]@5 b4@5 ~ b4@5",
L: "[c#2,b4]@5 a#4@5 ~ g#4@5", M: "[b1,g#4]@5 f#4@8 g#4@3", N: "f#4@11 ~@5, b1@5 ~@11", O: "[d2,f#4]@5 f#4@5 ~ f#4@5",
P: "[d2,f#4]@5 g#4@5 ~ f#4@5", Q: "[f#1,g#4]@5 a#4@5 ~ a#4@5", R: "a#4@11 a#4@5, f#1@5 ~@11",
S: "a#4@11 b4@5, b1@5 ~@11", T: "g#4@11 f#4@5, b1@5 ~@11",
U: "[c#2@5 ~@11 c#2@3 ~@2 g#1@3 ~@3 c#2@3 ~@2, g#4@21 ~@11]/2", V: "f#1@5 ~@11", W: "b1@5 ~@11", X: "d2@5 ~@11",
Y: "[f#1,c#5]@5 c#5@5 ~ c#5@5", Z: "[b1,b4]@5 a4@5 ~ b4@5", AA: "c#5@11 c#5@2 c#5@3, f#1@5 ~@11",
AB: "[b1,d5]@5 c#5@5 ~ b4@5", AC: "[f#1,a4]@5 a4@5 ~ a4@5", AD: "[c#2@5 ~@11 c#2@3 ~@2 g#1@3 ~@8, c#5@21 ~@11]/2",
AE: "[c#5@5 c#5@3 c#5@3 ~@10 b4@5 ~ a#4@5, f#2@11 c#5@11 ~@10, ~@16 c#2@11 ~@5]/2", AF: "a#4@5 b4@8 b4@3, b1@11 ~@5",
AG: "[b1,b4]@11 g#4@2 a#4@3", AH: "b4@8 b4@3 b4@5, c#2@11 ~@5", AI: "b4@5 a#4@5 ~ g#4@5, c#2@11 ~@5",
AJ: "g#4@5 f#4@8 g#4@3, b1@11 ~@5", AK: "[b1,f#4]@11 d#4@2 f4@3", AL: "f#4@5 f#4@5 ~ f#4@5, d2@11 ~@5",
AM: "f#4@5 g#4@5 ~ f#4@5, d2@11 ~@5", AN: "g#4@5 a#4@8 a#4@3, f#2@11 ~@5", AO: "[f#2,a#4]@11 a#4@5",
AP: "b4, b1@11 ~@5", AQ: "a#4@5 c#5@5 ~ b4@5, b1@11 ~@5", AR: "a#4@5 g#4@5 ~ f#4@5, c#2@11 ~@5",
AS: "f4@5 d#4@5 ~ c#4@5, c#2@11 ~@5",
AT: "[~@4 [f#1,c#5]@5 c#5@3 c#5@3 ~@5 c#2@5 b4@5 ~ a#4@5 [b1,a#4]@5 b4@7, ~@15 c#5@11 ~@22]/3", // F#5 Bmaj7
AU: "[~ b4@3 b4@11 g#4@2 a#4@3 b4@8 b4@3 b4@5 [c#2,b4]@5 a#4@5 ~ g#4@5 [b1,g#4]@5 f#4@7, ~@4 b1@5 ~@11 c#2@5 ~@39]/4", // C#7 E
AV: "[~ g#4@3 f#4@11 d#4@2 f4@3 [d2,f#4]@5 f#4@5 ~ f#4@5 [d2,f#4]@5 g#4@5 ~ f#4@5 [f#1,g#4]@5 a#4@7, ~@4 b1@5 ~@55]/4", // D F#sus2
AW: "[~ a#4@3 a#4@11 a#4@5 b4@16 [b1,a#4]@5 c#5@5 ~ b4@5 [c#2,a#4]@5 g#4@5 ~ f#4@5 f4@5 d#4@5 ~ c#4@5 [f#1,c#5]@5 c#5@3 c#5@3 ~@5 c#2@5 b4@5 ~ a#4@5 [b1,a#4]@5 b4@7, ~@4 f#1@5 ~@11 b1@5 ~@43 c#2@3 ~@2 g#1@3 ~@3 c#2@3 ~@13 c#5@11 ~@22]/8", // Bmaj7 F# F#5 Bmaj7
AX: "[~ a#4@3 a#4@11 a#4@5 b4@16 [b1,a#4]@5 c#5@5 ~ b4@5 [c#2,a#4]@5 g#4@5 ~ f#4@5 f4@5 d#4@5 ~ c#4@5 ~@12, ~@4 f#1@5 ~@11 b1@5 ~@43 c#2@3 ~@2 g#1@3 ~@3 c#2@3 ~@14]/6", // Bmaj7 F#
})).s("gm_clarinet").gain(0.3)
// other · tremolo strings · "Fagot"
const tremolo_strings_2 = note(`<
A@7 ~@3 B@6 C@5 D E D E D E D E D E F@2 G@2 F H I@2 D@2 F@2 G J D E F K G@2 F H I@2 D@2 F@2 G J L M L M L M N O L M L
M L M N O D E F@2 G@2 F H I@2 D@2 F@2 G J D E F K G@2 F H I@2 D@2 F@2 G J L M L M L M N O L M L M L M N O P@2 Q K R@2
Q H Q S D@2 F@2 T J L M L M L M N O L M L M L M N O D E F K G@2 F H I@2 D@2 F@2 G J ~@4 U@8 V@3 W X@2 Y@6 Z@7 W X@2
Y@6 Z@7 W X@2 Y@6 Z@7 W X@2 Y@6 Z@7 W X@2 AA@3
>`.pickRestart({
A: "[~@7 c#3@23 b2@8 a2@7 b2@8 c#3@45 ~@14]/7", B: "[~@6 a2@23 g#2@7 f#2@8 g#2@7 a2@23 g#2@8 f#2@7 g#2@7]/6",
C: "[~ a2@22 b2@57]/5", D: "f#2@3 ~@13", E: "c#2@3 ~@13", F: "b2@3 ~@13", G: "c#3@3 ~@13",
H: "b2@3 ~@2 d#3@3 ~@3 f#3@3 ~@2", I: "d3@3 ~@13", J: "c#3@3 ~@2 g#2@3 ~@3 c#3@3 ~@2",
K: "b2@3 ~@2 d#3@3 ~@3 b2@3 ~@2", L: "f#3@5 ~@6 f#3@3 ~@2", M: "d3@5 ~@6 d3@3 ~@2", N: "g#3@5 ~@6 g#3@3 ~@2",
O: "g#3@3 ~@2 f3@3 ~@3 c#3@3 ~@2", P: "[f#3@21 g#3@5 ~ a#3@5]/2", Q: "f#3", R: "[f3@21 f#3@5 ~ g#3@5]/2", S: "d3",
T: "c#3@3 ~@2 f3@5 ~ g#3@5",
U: "[~@4 f#3@21 g#3@5 ~ a#3@5 f#3@16 b2@3 ~@2 d#3@3 ~@3 b2@3 ~@2 f3@21 f#3@5 ~ g#3@5 f#3@16 b2@3 ~@2 d#3@3 ~@3 f#3]/8",
V: "[~@4 f#3@16 d3@16 f#2@3 ~@9]/3", W: "~@4 f#2@3 ~@9", X: "~@4 b2@3 ~@9",
Y: "[~@4 c#3@3 ~@2 f3@5 ~ g#3@5 c#3@3 ~@2 g#2@3 ~@3 c#3@3 ~@2 f#3@21 g#3@5 ~ a#3@5 f#3@16 b2@3 ~@2 d#3@3 ~@3 b2]/6",
Z: "[~@4 f3@21 f#3@5 ~ g#3@5 f#3@16 b2@3 ~@2 d#3@3 ~@3 f#3@3 ~@2 f#3@16 d3@16 f#2@3 ~@9]/7",
AA: "[~@4 c#3@3 ~@2 f3@5 ~ g#3@5 c#3@3 ~@2 g#2@3 ~@3 c#3@3 ~@14]/3",
})).s("gm_tremolo_strings").gain(0.3)
// chords · piano
const piano = note(`<
A@6 B@5 ~@10 C D C D C E C F C F G H F@2 G I J K C L G@2 F M C F G H F@2 G I J K C L G@2 F M N G N G N G F M N G N G N
G F M C F G H F@2 G I J K C L G@2 F M C F G H F@2 G I J K C L G@2 F M N G N G N G F M N G N G N G F M O@2 P Q R S T U
V W X Y Z AA AB AC N G N G N G F M N G N G N G F M C F G H F@2 G I J K C L G@2 F@2 AD@4 AE@7 AF@4 AG@8 AH@8 AG@8 AH@8
AG@8 AH@8 AG@8 AH@8 AI@6
>`.pickRestart({
A: "[~@7 c#5@45 ~@21 [f#2,f#3,f#4]@2 [f#2,f#3,f#4]@14 ~@7, ~@53 c#5@43]/6", // F#
B: "[[f#1,f#2,f#3] [f#1,f#2,f#3]@18 ~@21, ~ c#5@34 ~@5]/5", C: "[f#1,f#2]@5 [f#3,a#3]@5 ~ [f#3,a#3]@5",
D: "[c#2,c#3]@5 b3@3 a#3@3 [c#3,g#3]@5, ~@5 [c#3,g#3]@5 ~ b3@3 ~@2", // C# C#5
E: "[c#2,c#3]@5 d#4@3 c#4@3 [c#3,g#3]@5, ~@5 [c#3,g#3]@5 ~ d#4@3 ~@2", F: "[c#2,c#3]@5 [c#3,g#3]@5 ~ [c#3,g#3]@5",
G: "[b1,b2]@5 [f#3,b3]@5 ~ [f#3,b3]@5", H: "[b1,b2,d#5,b5]@5 [f#3,b3,b4,f#5]@5 ~ [f#3,b3,f#4,d#5]@5",
I: "[b1,b2,f#4,b4]@5 [f#3,b3,f#4,d#5]@5 ~ [f#3,b3,b4,f#5]@5", J: "[d2,d3,a4,d5,a5]@5 [d3,a3]@5 ~ [d3,a3]@5",
K: "[d2,d3]@5 [d3,a3]@5 ~ [d3,a3]@5", L: "[f#1,f#2,c#5,a#5]@5 [f#3,a#3,a#4,f#5]@5 ~ [f#3,a#3,f#4,c#5]@5",
M: "c#6@3 g#5@2 f5@3 c#5@3 g#4@2 c#4@3, [c#2,c#3]@5 [c#3,g#3]@5 ~ [c#3,g#3]@5", // C# C#5
N: "[f#1,f#2]@5 [f#3,a3]@5 ~ [f#3,a3]@5", // F# F#m
O: "[[f#1,f#2,c#6]@5 c#6@3 c#6@3 [f#3,a#3]@5 [c#2,c#3]@5 [c#3,g#3,b5]@5 ~ [c#3,g#3,a#5]@5, ~@5 [f#3,a#3]@5 ~ c#6@11 ~@10]/2", // F#5 F# C# C#7 A#m7 F#
P: "[b1,b2,a#5]@5 [f#3,b3]@5 ~@3 b5@3, ~@5 b5@8 ~@3, ~@11 [f#3,b3]@5", // Bmaj7 B5
Q: "[b1,b2,d#5]@5 [f#3,b3,b4,f#5]@5 ~ g#5@2 a#5@3, b5@11 [f#3,b3,f#4,d#5]@5", // B B5 B
R: "[c#2,c#3]@5 ~@3 b5@3 [c#3,g#3,b5]@5, b5 ~, ~@5 [c#3,g#3]@5 ~@6", // C# C#7 C#5
S: "[c#2,c#3,b5]@5 [c#3,g#3,a#5]@5 ~ [c#3,g#3,g#5]@5", // C#7 A#m7 C#5
T: "[b1,b2,g#5]@5 [f#3,b3]@5 ~@3 g#5@3, ~@5 f#5@8 ~@3, ~@11 [f#3,b3]@5", // E B5
U: "[b1,b2,f#4,b4]@5 [f#3,b3,f#4,d#5]@5 ~ d#5@2 f5@3, f#5@11 [f#3,b3,b4,f#5]@5", // B5 B B5
V: "[d2,d3,a4,d5,f#5,a5]@5 [d3,a3,f#5]@5 ~ [d3,a3,f#5]@5", W: "[d2,d3,f#5]@5 [d3,a3,g#5]@5 ~ [d3,a3,f#5]@5",
X: "[f#1,f#2,g#5]@5 [f#3,a#3]@5 ~@3 a#5@3, ~@5 a#5@8 ~@3, ~@11 [f#3,a#3]@5", // F#sus2 F#
Y: "[f#1,f#2,c#5]@5 [f#3,a#3,a#4,f#5]@5 ~ [f#3,a#3,f#4,c#5,a#5]@5, a#5@11 ~@5", // F#5 F#
Z: "[b1,b2]@5 [f#3,b3]@5 ~ [f#3,b3]@5, b5", AA: "[b1,b2,a#5]@5 [f#3,b3,c#6]@5 ~ [f#3,b3,b5]@5",
AB: "[c#2,c#3,a#5]@5 [c#3,g#3,g#5]@5 ~ [c#3,g#3,f#5]@5", // F# C#5 C#sus4
AC: "c#6@3 g#5@2 f5@3 c#5@3 g#4@2 c#4@3, [c#2,c#3,f5]@5 [c#3,g#3,d#5]@5 ~ [c#3,g#3,c#5]@5", AD: "[b1,b2,f#3,b3]/4",
AE: "[~@4 [f#1,f#2,c#6]@5 c#6@3 c#6@3 [f#3,a#3]@5 [c#2,c#3]@5 [c#3,g#3,b5]@5 ~ [c#3,g#3,a#5]@5 [b1,b2,a#5]@5 [f#3,b3]@5 ~@3 b5@3 [b1,b2,d#5]@5 [f#3,b3,b4,f#5]@5 ~ g#5@2 a#5@3 [c#2,c#3]@5 ~@3 b5@3 [c#3,g#3,b5]@5 [c#2,c#3,b5]@5 [c#3,g#3,a#5]@5 ~ [c#3,g#3,g#5]@5 [b1,b2,g#5]@5 [f#3,b3]@5 ~ [f#3,b3], ~@9 [f#3,a#3]@5 ~ c#6@11 ~@15 b5@8 ~@3 b5@11 ~@5 b5@8 ~@29 f#5@6 ~, ~@47 [f#3,b3]@5 ~@11 [f#3,b3,f#4,d#5]@5 ~@5 [c#3,g#3]@5 ~@34]/7", // F#5 F# C# C#7 A#m7 Bmaj7 B5 B …
AF: "[~ g#5@3 [b1,b2,f#4,b4]@5 [f#3,b3,f#4,d#5]@5 ~ d#5@2 f5@3 [d2,d3,a4,d5,f#5,a5]@5 [d3,a3,f#5]@5 ~ [d3,a3,f#5]@5 [d2,d3,f#5]@5 [d3,a3,g#5]@5 ~ [d3,a3,f#5]@5 [f#1,f#2,g#5]@5 [f#3,a#3]@5 ~ [f#3,a#3], ~@4 f#5@11 [f#3,b3,b4,f#5]@5 ~@37 a#5@6 ~]/4", // B5 B D F#sus2 F# B5
AG: "[~ a#5@3 [f#1,f#2,c#5]@5 [f#3,a#3,a#4,f#5]@5 ~ [f#3,a#3,f#4,c#5,a#5]@5 [b1,b2]@5 [f#3,b3]@5 ~ [f#3,b3]@5 [b1,b2,a#5]@5 [f#3,b3,c#6]@5 ~ [f#3,b3,b5]@5 [c#2,c#3,a#5]@5 [c#3,g#3,g#5]@5 ~ [c#3,g#3,f#5]@5 c#6@3 g#5@2 f5@3 c#5@3 g#4@2 c#4@3 [f#1,f#2,c#6]@5 c#6@3 c#6@3 [f#3,a#3]@5 [c#2,c#3]@5 [c#3,g#3,b5]@5 ~ [c#3,g#3,a#5]@5 [b1,b2,a#5]@5 [f#3,b3]@5 ~ [f#3,b3], ~@4 a#5@11 ~@5 b5@16 ~@32 [c#2,c#3,f5]@5 [c#3,g#3,d#5]@5 ~ [c#3,g#3,c#5]@5 ~@5 [f#3,a#3]@5 ~ c#6@11 ~@15 b5@6 ~]/8", // F#5 F# B B5 Bmaj7 F#sus4 B5 F# …
AH: "[~ b5@3 [b1,b2,d#5]@5 [f#3,b3,b4,f#5]@5 ~ g#5@2 a#5@3 [c#2,c#3]@5 ~@3 b5@3 [c#3,g#3,b5]@5 [c#2,c#3,b5]@5 [c#3,g#3,a#5]@5 ~ [c#3,g#3,g#5]@5 [b1,b2,g#5]@5 [f#3,b3]@5 ~@3 g#5@3 [b1,b2,f#4,b4]@5 [f#3,b3,f#4,d#5]@5 ~ d#5@2 f5@3 [d2,d3,a4,d5,f#5,a5]@5 [d3,a3,f#5]@5 ~ [d3,a3,f#5]@5 [d2,d3,f#5]@5 [d3,a3,g#5]@5 ~ [d3,a3,f#5]@5 [f#1,f#2,g#5]@5 [f#3,a#3]@5 ~ [f#3,a#3], ~@4 b5@11 [f#3,b3,f#4,d#5]@5 b5@8 ~@29 f#5@8 ~@3 f#5@11 ~@42 a#5@6 ~, ~@25 [c#3,g#3]@5 ~@33 [f#3,b3]@5 ~@11 [f#3,b3,b4,f#5]@5 ~@44]/8", // B B5 C# C#7 A#m7 C#5 E B5 …
AI: "[~ a#5@3 [f#1,f#2,c#5]@5 [f#3,a#3,a#4,f#5]@5 ~ [f#3,a#3,f#4,c#5,a#5]@5 [b1,b2]@5 [f#3,b3]@5 ~ [f#3,b3]@5 [b1,b2,a#5]@5 [f#3,b3,c#6]@5 ~ [f#3,b3,b5]@5 [c#2,c#3,a#5]@5 [c#3,g#3,g#5]@5 ~ [c#3,g#3,f#5]@5 c#6@3 g#5@2 f5@3 c#5@3 g#4@2 c#4@3 ~@12, ~@4 a#5@11 ~@5 b5@16 ~@32 [c#2,c#3,f5]@5 [c#3,g#3,d#5]@5 ~ [c#3,g#3,c#5]@5 ~@12]/6", // F#5 F# B B5 Bmaj7 F#sus4 B5 F# …
})).s("gm_piano").gain(0.3)
// chords · piano · soft notes
const piano_soft = note(`<
~@10 A@6 B@5 ~@48 C D C D C E F ~@33 C D C D C E F ~ C D C D C E F ~@17 G D G D G E F ~ C D C D C E F ~@102
>`.pickRestart({
A: "[~@2 c#5@15 c#5@15]/6", B: "[~ d5@22 c#5@57]/5", C: "~@5 a5@3 a5@3 a5@2 a5@3", D: "b5@3 ~@2 f#5@3 ~@3 g#5@3 ~@2",
E: "g#5@3 ~@2 f#5@3 ~@3 g#5@3 ~@2", F: "g#5@13 ~@3", G: "~@5 c#6@3 c#6@3 c#6@2 c#6@3",
})).s("gm_piano").gain(0.2)
// other · timpani · "Timbales"
const timpani = note(`<
~@4 A@2 B C D@3 ~@2 E@2 ~ F G@2 H I J ~@7 K L M N L@2 O@2 P@2 K@2 M N L Q K L M N L@2 O@2 P@2 K@2 M N L Q J ~ J ~ J
~@2 R J ~ J ~ J ~@2 R K L M N L@2 O@2 P@2 K@2 M N L Q K L M N L@2 O@2 P@2 K@2 M N L Q J ~ J ~ J ~@2 R J ~ J ~ J ~@2 R
S ~ T ~ U ~ T ~ V ~ S ~ T ~ U R J ~ J ~ J ~@2 R J ~ J ~ J ~@2 R K L M N L@2 O@2 P@2 K@2 M N L Q ~@4 W ~ X ~ Y ~ X ~ Z
~ W ~ X ~ Y AA@2 ~ X ~ Y ~ X ~ Z ~ W ~ X ~ Y AA@2 ~ X ~ Y ~ X ~ Z ~ W ~ X ~ Y AA@2 ~ X ~ Y ~ X ~ Z ~ W ~ X ~ Y AA@2 ~
X ~ Y ~ X ~ Z ~ W ~ X ~ Y AB@2
>`.pickRestart({
A: "[~@9 f#3@2 f#3@15 ~@6]/2", B: "f#3 f#3@7", C: "~@9 f#3@7", D: "[f#3@8 c#3@7 f#2@23 ~@10]/3",
E: "[~@3 f#2@23 ~@6]/2", F: "~ d2@7 d2@8", G: "[d2@7 e2@15 ~@8 e2!2]/2", H: "~ e2!2 ~ e2!3 ~ e2!2 ~ e2!2 ~ e2!2",
I: "e2 ~ e2!2 ~ e2!3 ~ e2!2 ~ e2!2 ~ e2", J: "f#2@5 ~@11", K: "~@5 f#4@5 ~ a#4@5", L: "~@5 g#4@5 ~ g#4@5",
M: "~@5 f#4@5 ~ b4@5", N: "~@5 b4@5 ~ f#4@5", O: "~@5 b3@5 ~ d#4@5", P: "~@5 f#4@5 ~ a4@5", Q: "c#5@5 g#4@5 ~ f4@5",
R: "c#3@5 c#3@5 ~ c#3@5", S: "f#3@5 ~@11", T: "b2@5 ~@11", U: "c#3@5 ~@11", V: "d3@5 ~@11", W: "~@4 f#3@5 ~@7",
X: "~@4 b2@5 ~@7", Y: "~@4 c#3@5 ~@7", Z: "~@4 d3@5 ~@7", AA: "[~@4 c#3@5 c#3@5 ~ c#3@5 f#3@5 ~@7]/2",
AB: "[~@4 c#3@5 c#3@5 ~ c#3@5 ~@12]/2",
})).s("gm_timpani").gain(0.3)
// … 73 more lines
More by
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.