0:00/0:00
// Here We Are — Estefan Gloria
// 72 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 91 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/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 · "FRETLESS"
const bass = note(`<
~@5 A@5 B C D E@2 F G H I J K L M N O@2 P@4 Q C R S@2 F G H I J K T M U V W X Y Z AA AB AC@2 AD AE AF AG@2 AH AI AJ AK
AL AM AN AO@4 AP@4 AQ@8 AR@2 ~@8
>`.pickRestart({
A: "[~@36 b1@3 a1@3 g#1@3 f#1@11 ~ f#1@2 ~@7 f#1@18 ~@3 a1@2 ~ a#1@2 ~ b1@11 ~ b1 ~@8 b1@21 a1@3 g#1@3 f#1@11 ~ f#1 ~@8 f#1@18 ~@3 a1@3 a#1@2 ~ b1@45 ~@6]/5",
B: "e2@8 ~ e2 ~@8 e1@24 b1@3 c#2@3", C: "e2@7 ~@2 e2@2 ~@7 e1@24 b1@3 c#2@3",
D: "e2@7 ~@2 e2@2 ~@7 e1@24 b1@2 ~ c#2@3",
E: "[e2@7 ~@2 e2@2 ~@37 e2@6 ~@3 e2 ~@8 e1@24 b1@3 c#2@3, ~@9 e1@19 ~@20]/2",
F: "e2@7 ~@2 e2@2 ~@7 e1@23 ~ g2@3 g#2@3", G: "e2@8 ~ e2 ~@8 e1@23 ~ b1@2 ~ c#2@3",
H: "e2@8 ~ e2@2 ~@7 b1@21 ~@3 b1@3 c#2@2 ~", I: "a1@6 ~@3 a1 ~@8 a1@22 ~@2 a1@5 ~",
J: "g#1@7 ~@2 g#1 ~@8 g#1@24 f#1@2 ~ g#1@3", K: "a1@7 ~@2 a1 ~@8 a1@9 e2@3 a2@3 b2@3 a2@6 e2@3 a1@3",
L: "g#1@7 ~@2 g#1@2 ~@7 g#1@6 c#2@12 b1@12", M: "a1@7 ~@2 a1 ~@8 a1@29 ~", N: "g#1@14 ~@4 g#1@23 ~ g#1@5 ~",
O: "[f#1@8 ~ f#1 ~@8 f#1@14 ~ g#1@6 a1@5 ~ b1@41 ~@10]/2",
P: "[f#1@8 ~ f#1@2 ~@7 f#1@18 ~@3 a1@2 ~ a#1@2 ~ b1@11 ~ b1@2 ~@7 b1@21 a1@3 g#1@3 f#1@11 ~ f#1 ~@8 f#1@18 ~@3 a1@3 a#1@2 ~ b1@45 ~@6]/4",
Q: "e2@8 ~ e2 ~@8 e1@24 b1@2 ~ c#2@3", R: "e2@7 ~@2 e2 ~@8 e1@24 b1@2 ~ c#2@3",
S: "[e2@7 ~@2 e2@2 ~@37 e2@6 ~@3 e2 ~@8 e1@24 b1@2 ~ c#2@3, ~@9 e1@19 ~@20]/2",
T: "g#1@7 ~@2 g#1 ~@8 g#1@6 c#2@12 b1@12", U: "g#1@14 ~@4 g#1@22 ~@2 g#1@5 ~", V: "f#1@6 ~@3 f#1 ~@8 f#1@28 ~@2",
W: "b1@7 ~@2 b1@2 ~@7 b1@26 ~@4", X: "e1@7 ~@2 e1 ~@23 e2 ~@2 e2@11 ~, ~@9 e1@14 ~",
Y: "[a1,a2]@15 e2@3 [a1,a2]@4 ~@2 [b1,b2]@18 ~@6", Z: "b2@3 g#2@3 f#3@3 d#3@6 e2@3 g#2@29 ~",
AA: "[c2,c3]@15 g2@3 [c2,c3]@4 ~@2 [b1,b2]@21 ~@3", AB: "[c2,c3]@15 g2@3 [c2,c3]@4 ~@2 [b1,b2]@9 ~@3 [g1,g2]@9 ~@3",
AC: "[[a1,a2]@13 ~@5 [a1,a2]@18 ~@3 [b1,b2] ~@2 [c2,c3] ~@2 [d2,d3]@9 a2@3 d3@3 e3@6 d3@12 d2@18]/2", // A B C D
AD: "g2@8 ~ g2 ~@8 g1@24 d2@3 e2@3", AE: "g2@7 ~@2 g2@2 ~@7 g1@24 d2@3 e2@3",
AF: "g2@7 ~@2 g2@2 ~@7 g1@24 d2@2 ~ e2@3", AG: "[g2@8 ~ g2@2 ~@37 g2 ~@8 g2@2 ~@7 g1@24 d2@3 e2@3, ~@9 g1@19 ~@20]/2",
AH: "g2@8 ~ g2@2 ~@7 g1@23 ~ a#2@3 b2@3", AI: "g2@8 ~ g2 ~@8 g1@23 ~ d2@2 ~ e2@3",
AJ: "g2@8 ~ g2@2 ~@7 d2@21 ~@3 d2@3 e2@2 ~", AK: "d2@7 ~@2 d2 ~@8 d2@9 d3@2 ~ d3@2 ~ d3@2 ~ d3@11 ~, ~@3 d1@5",
AL: "d2@7 ~@2 d2 ~@8 [d1,d2]@24 a1@2 ~ b1@3", AM: "d2@6 ~@3 d2 ~@8 [d1,d2]@29 ~",
AN: "d2@7 ~@2 d2@3 ~@6 [a1,a2]@5 ~ [d1,d2]@9 [f#1,f#2]@3 [g1,g2]@12, d3@17 ~@31", // A D F# G
AO: "[c2@8 ~ c2@2 ~@7 [c2,c3]@15 g2@3 ~@6 g2@2 ~ c2@2 ~ [b1,b2]@7 ~@2 [b1,b2] ~@8 [b1,b2]@15 f#2@3 ~@6 f#2@2 ~ b1@2 ~ a1@7 ~@2 a1 ~@8 [a1,a2]@15 b1@5 ~ c2@5 ~ d2@38 ~@13, c3@13 ~@23 c3@18 ~@30 b2@18 ~@90, ~@48 a2@7 ~@41]/4", // C B A
AP: "[a1@12 ~@6 a1@20 ~ b1@2 ~ c2@2 ~ d2@16 ~@5 d2@16 ~@2 d2@2 ~ c2@2 ~ b1@2 ~ a1@16 ~@5 a1@19 ~@2 b1@2 ~ c2@2 ~ d2@16 ~@5 d2@16 ~@2 d2 ~@2 c2 ~@2 b1@2 ~ a1@3]/4",
AQ: "[~@18 a1@19 ~@2 [b1,b2] ~@2 [c2,c3] ~@2 d2@16 ~@5 d2@16 ~@2 d2 ~@2 c2 ~@2 b1 ~@2 a1@16 ~@5 a1@18 ~@3 [b1,b2] ~@2 [c2,c3] ~@2 d2@16 ~@5 d2@16 ~@2 d2 ~@2 c2 ~@2 b1 ~@2 a1@15 ~@6 a1@18 ~@3 [b1,b2] ~@2 c3@2 ~ [d2,d3]@16 ~@5 d2@15 ~@3 d2 ~@2 c2 ~@2 b1 ~@2 a1@15 ~@6 a1@18 ~@3 [b1,b2] ~@2 c3@2 ~ [d2,d3]@16 ~@5 d2@15 ~@3 d2 ~@2 c2 ~@2 b1 ~@2 a1@3, ~@45 d3@40 ~@56 d3@42 ~@51 c2 ~@95 c2 ~@53]/8", // B C B C B D B D
AR: "[~@18 a1@18 ~@3 [b1,b2] ~@2 c3@2 ~ [d2,d3]@18 ~@3 d2@15 ~@3 d2 ~@11, ~@42 c2 ~@53]/2", // B D
})).s("gm_fretless_bass").gain(0.5)
// chords · piano · "A.PIANO 1"
const piano = note(`<
~@5 A@2 B@2 ~@11 C ~ D E@3 F G@3 H ~@6 I J K L M N O@3 P Q R S T U@2 V W X Y Z AA AB AC AD AE AF AG AH AI@3 ~@3 AJ@2
AK@2 AL@2 AK@2 AL@2 ~@9
>`.pickRestart({
A: "[~@27 [d#5,b5,b6]@6 ~ c#5@5 ~ b4@5 ~ [f#5,f#6]@26 ~@24, ~@11 [a5,a6]@2 [g#5,g#6]@2 a4@9 ~@8]/2", // G#m F# A G#
B: "[~@36 [d#5,b5]@3 [c#5,a5]@3 [b4,g#5]@3 [a4,f#5]@25 ~@26]/2", // G#m F#m E D
C: "~@10 [c#4,c#5,c#6]@5 ~ [f#4,f#5,f#6]@5 [g#4,g#5,g#6]@15 ~@12", // C# F# G#
D: "~@10 [c#4,c#5,c#6]@5 ~ [f#4,f#5,f#6]@5 ~ g#5@15 ~@11, ~@7 [g#4,g#6]@5 ~@4", // C# F# G#
E: "[~@31 [f#3,f#5]@3 [g#3,g#4,g#5]@6 [b3,b5]@5 ~ [c#4,c#6]@15 ~@15 [a4,a5]@2 ~ g#4@3 [c#4,c#5]@5 ~ [e4,e5]@5 ~ f#4@24 ~@26, ~@30 f#4@2 ~@8 b4@3 ~@2 c#5@16 ~@17 g#5@3 ~@12 f#5@27 ~@24]/3", // F# G# B C# A C# E
F: "[a4,f#5,f#6] ~", // D
G: "[~@28 d#5@5 ~ c#5@5 ~ b4@5 ~ [f#5,f#6]@12 ~@29 g#3@3 a3@3 ~ [a3,c#4,e4]@27 ~@6 [e4,e5]@8 ~ d#4@7 ~, ~@27 [b5,b6]@6 [a5,a6]@6 [g#5,g#6]@6 a4@12 ~@78 d#5@8 ~]/3", // F# A E B A G#
H: "[b3,b4]@11 ~@5", I: "~ a3@13 ~@4 [a3,c#4,e4]@8 ~@5 [b3,d#4,f#4]@15 ~@2, [c#4,e4,b4,b5]@14 ~@4 [b4,b5]@29 ~",
J: "[a3,c#4,e4]@43 ~@5", K: "~ [b3,d#4,f#4]@43 ~@4",
L: "c#4@9 ~ [c#4,c#5,c#6]@5 ~ [f#4,f#5,f#6]@5 ~ g#5@14 ~@12, e4@43 ~@5, g#4@7 [g#4,g#6]@5 ~@4", // C# F# G#
M: "~ d#4@23 [c#4,e4,g#4]@9 ~@4 [e4,g#4,b4]@10 ~, [b3,f#4]@7 ~@9", // C#m E B5
N: "~ c#4@9 [c#4,c#5,c#6]@5 ~ [f#4,f#5,f#6]@5 [g#4,g#5,g#6]@15 ~@12, ~ [a3,e4]@46 ~", // C# F# G# A5
O: "[~ f#4@29 ~ [f#3,f#5]@3 [g#3,g#4,g#5]@6 [b3,b5]@5 ~ c#4@2 g#4@28 [a4,a5]@2 ~ g#4@3 [c#4,c#5]@5 ~ [e4,e5]@5 ~@4 [a3,c#4,g#4]@40 ~@7, ~ d#4@43 ~@4 e4@39 ~@7 f#4@24 ~@26, ~ b3@39 ~@8 c#4@13 ~@35 e4@40 ~@8, ~@30 f#4@2 ~@8 b4@3 ~@3 [c#5,c#6]@16 ~@16 g#5@3 ~@12 f#5@27 ~@24]/3", // F# G# B A C# E Amaj7 C#
P: "~@10 f#3@6 g#3@20 [e4,e5]@3 [f#4,f#5]@2 ~@4 [a4,a5]@3, ~ [b4,b5]@35 ~@6 [g4,g5]@6", // E F# A B G
Q: "~ [c4,e4,g4,b4,b5]@23 [c#4,e4,a4,a5]@24", // Cmaj7 A
R: "[b3,e4,g#4,g#5]@36 ~ e5@2 [f#4,f#5]@2 ~@4 [a4,a5]@3, ~@18 e4 ~@2 [g4,g5]@3", // E F# A G
S: "~ [c4,e4,g4]@23 ~@12 a4@12, [b4,b5], ~ [a3,c#4,e4]", T: "~ [c4,e4,g4]@23 [b3,d4,g4]@23 ~, ~ [b4,b5]@47",
U: "[~@15 [b3,b4,b5] ~@2 [c4,c5,c6]@4 [g4,g5,g6]@17 [b3,b4,b5] ~@6 a4@32 [g4,g5,g6]@9 [f#4,f#5,f#6]@9, ~@42 [c4,c5,c6]@4 b5 ~@49, ~@45 [a5,a6]@32 ~@19]/2", // B C G B G F# C A
V: "[d4,d5,d6]@25 ~@23", W: "[d4,f#4,b4,d5,d6]@43 ~@5", X: "~ [c5,c6]@45 ~@2, [c4,e4,g4]@11 ~",
Y: "~ [c4,e4,g4]@19 ~@4 g3@12 ~ a3@9 ~@2, ~ [c5,c6]@37 ~@10", Z: "~ [d4,g4,b4,d5,d6]@43 ~@4",
AA: "~ [f#4,b4,d5,d6]@42 ~@5, d4@7 ~", AB: "~ [c4,e4,g4,c5,c6]@44 ~@3",
AC: "~ [c4,e4,g4]@14 ~@3 [c4,e4,g4]@10 ~@2 [d4,f#4,a4]@16 ~@2, ~ [c5,c6]@45 ~@2", AD: "[c4,e4,g4]@43 ~@5",
AE: "~ [d4,f#4,a4]@43 ~@4", // D
AF: "~@10 [e4,e5,e6]@5 ~ [a4,a6]@5 [b4,b5,b6]@15 ~@12, g4@43 ~@5, e4@9 ~@6 a5@4 ~@29, ~ b4@20 ~@27", // E A B
AG: "~ d4@21 ~@3 b4@9 ~@3 [g4,b4,d5]@10 ~, [f#4,a4]@23 ~ [e4,g4]@9 ~@15", // G F#m Em
AH: "~ e4@9 [e4,e5,e6]@5 ~ [a4,a6]@5 [b4,b5,b6]@15 ~@12, ~ [c4,g4]@46 ~, ~@15 a5@4 ~@29", // E A B C5
AI: "[~ a4@30 [a3,a4,a5]@3 [b3,b4,b5]@6 [d4,d5,d6]@5 ~ e4@2 b4@27 [c5,c6]@3 [b4,b5]@3 e5@5 ~ [g4,g5]@5 ~ [e4,g4,b4]@40 ~@11, ~ f#4@43 ~ e5@16 ~@83, ~ d4@39 ~@6 e6@15 ~@83, ~@4 [c4,g4]@3 ~@5, ~@48 e4@13 ~@20 e4@3 ~@9 [a4,a5]@26 ~@25]/3", // A B D C B G Em C5 …
AJ: "[~@28 d6@5 [e5,c6]@6 ~ d5@5 ~ a5@26 ~@24, ~@9 f#5@2 ~@2 b5@2 c5@9 ~@8]/2", // C
AK: "[~@36 [f#5,d6]@3 [e5,c6]@3 [d5,b5]@3 [c5,a5]@25 ~@26]/2", // D C G F
AL: "[~@27 [f#5,d6]@6 [e5,c6]@6 ~ d5@5 ~ a5@26 ~@24, ~@39 b5@6 c5@28 ~@23]/2", // D C
})).s("gm_piano").gain(0.38).pan(0.4)
// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
~@5 A@5 B@2 C@2 D@2 E@2 F G H I J K L@2 M@3 ~ B@2 C@2 D@2 E@2 F G H I J K N J O P@3 Q R@2 S@2 T@2 U@2 V@2 W X Y Z AA
AB AC@2 ~@3 AD@4 AE AF@3 AE AG@2 ~@8
>`.pickRestart({
A: "[~@27 b4@6 a4@7 g#4@6 [f#4,f#5]@166 ~@28]/5", B: "[e4@48 d#4@47 ~, [g#4,b4]@95 ~]/2",
C: "[a4@71 ~ g#4@12 a4@10 ~@2, [c#4,e4]@95 ~]/2", D: "[e4@23 ~ d#4@22 ~@2, [g#4,b4]@15 ~]/2",
E: "[[a3,c#4,e4]@13 [b3,d#4,f#4]@2 ~]/2", F: "[a3,c#4,e4]@47 ~", G: "[b3,d#4,f#4]", H: "[c#4,e4,g#4]@47 ~",
I: "[b3,d#4,f#4]@22 ~@2 [c#4,e4,g#4]@10 ~@2 [e4,g#4,b4]@11 ~", J: "[a3,c#4,e4]@23 ~", K: "[b3,d#4,f#4]@47 ~",
L: "[[a3,c#4,e4]@59 ~@37]/2", M: "[~@75 b4@6 a4@7 g#4@6 [f#4,f#5]@50, [f#4,f#5]@47 ~@25]/3", N: "[a3,c#4,e4]",
O: "[g#3,b3,e4]@41 ~@7", // E
P: "[[c4,e4,g4,b4]@23 ~ [c#4,a4]@23 ~ [b3,g#4]@47 ~ [c4,b4]@23 ~ [a3,c#4,e4,g#4]@10 ~@2 [c#4,e4,a4]@10 ~@2, ~@6 e4@23 ~@7, ~@96 g4@19 ~@29]/3", // Cmaj7 F#m E Cmaj7 Amaj7 A
Q: "[c4,e4,g4,b4]@23 ~ [b3,d4,g4]@23 ~", R: "[[c4,e4,a4]@73 ~@23]/2", S: "[g4@48 f#4@47 ~, [b4,d5]@95 ~]/2",
T: "[c5@71 ~ b4@12 c5@10 ~@2, [e4,g4]@95 ~]/2", U: "[g4@23 ~ f#4@22 ~@2, [b4,d5]@15 ~]/2",
V: "[[c4,e4,g4]@13 [d4,f#4,a4]@2 ~]/2", W: "[c4,e4,g4]@47 ~", X: "[d4,f#4,a4]", Y: "[e4,g4,b4]@47 ~",
Z: "[d4,f#4,a4]@23 ~ [c4,e4,g4]@11 ~ [d4,f#4,a4]@12", AA: "[c4,e4,g4,b4]@23 ~", AB: "[b3,d4,f#4,a4]@23 ~",
AC: "[[a3,c4,e4,g4]@38 ~@7 [e4,g4,a4,d5]@40 ~@11]/2", AD: "[~@27 d5@6 c5@7 b4@6 [a4,a5]@146]/4",
AE: "[a4,a5]@24 ~@3 d5@6 c5@7 b4@6 [a4,a5]@2", AF: "[a4,a5]/3", AG: "[a4,a5]/2",
})).s("gm_synth_strings_1").gain(0.58).pan(0.6)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
~@18 A B C D E F G@2 ~@4 H I J K L M N O A B P D Q F R ~@8 S T U V W X Y Z AA AB AC AD AE AF AG ~@5 AH@2 AI@2 AJ@2
AK@4 ~@8
>`.pickRestart({
A: "[c#4,e4,g#4]@5 ~@4 [c#4,e4,g#4] ~@8 [c#4,e4,g#4]@15 ~@3 [c#4,e4,g#4] ~@2 [c#4,e4,g#4]@8 ~", // C#m
B: "[b3,d#4,f#4]@5 ~@4 [b3,d#4,f#4] ~@8 [b3,d#4,f#4]@11 ~ [b3,d#4,f#4] ~@5 [b3,d#4,f#4] ~@2 [b3,d#4,f#4]@7 ~@2", // B
C: "[c#4,e4,g#4]@6 ~@3 [c#4,e4,g#4] ~@8 [c#4,e4,g#4]@8 ~@4 [c#4,e4,g#4] ~@5 [c#4,e4,g#4] ~@2 [c#4,e4,g#4]@7 ~@2", // C#m
D: "[b3,d#4,f#4]@6 ~@3 [b3,d#4,f#4] ~@8 [b3,d#4,f#4]@25 ~@5", // B
E: "[c#4,e4,g#4]@5 ~@4 [c#4,e4,g#4] ~@8 [c#4,e4,g#4]@9 ~@3 [c#4,e4,g#4] ~@5 [c#4,e4,g#4] ~@2 [c#4,e4,g#4]@8 ~", // C#m
F: "[b3,d#4,f#4]@6 ~@3 [b3,d#4,f#4] ~@8 [b3,d#4,f#4]@15 ~@3 [b3,d#4,f#4]@10 ~@2", // B
G: "[[c#4,e4]@6 ~@3 [c#4,e4] ~@8 [c#4,e4]@16 ~@11 [b3,b4]@38 ~@13]/2", // C#m B
H: "e3 ~@5 e3 ~@8 e3 ~@8 e3 ~@2 e3@2 ~ c#3 ~@2 b2 ~@3 e3 ~@4 e3 ~@2 e3 ~@2",
I: "~@6 e3 ~@8 e3 ~@8 e3 ~@2 e3 ~@2 c#3 ~@2 b2 ~@2 e3 ~@6 e3 ~ e3 ~@2",
J: "~@6 e3 ~@8 e3 ~@8 e3 ~@2 e3 ~@2 c#3 ~@2 b2 ~@2 e3 ~@6 c#3 ~ b2 ~@2",
K: "~@7 e3 ~@7 e3 ~@8 e3 ~@2 e3 ~@2 c#3 ~@2 b2 ~@2 e3 ~@5 e3 ~@5",
L: "~@3 e3 ~@8 e3 ~@2 e3 ~@8 e3 ~@2 e3 ~@2 c#3 ~@2 b2 ~@3 e3 ~@5 e3 ~@4",
M: "~@3 e3 ~@8 e3 ~@2 e3 ~@2 c#3 ~@2 b2 ~@5 e3 ~@8 e3 ~@2 e3 ~@8",
N: "e3 ~@5 e3 ~@8 e3 ~@8 e3 ~@2 e3 ~@2 c#3 ~@5 e3 ~@5 c#3 ~@5", O: "~@3 e3 ~@8 e3 ~@2 e3 ~@8 e3 ~@5 e3 ~@8 e3 ~@8",
P: "[c#4,e4,g#4]@6 ~@3 [c#4,e4,g#4] ~@8 [c#4,e4,g#4]@8 ~@4 [c#4,e4,g#4] ~@5 [c#4,e4,g#4] ~@2 [c#4,e4,g#4]@8 ~", // C#m
Q: "[c#4,e4,g#4]@5 ~@4 [c#4,e4,g#4] ~@8 [c#4,e4,g#4]@9 ~@3 [c#4,e4,g#4] ~@5 [c#4,e4,g#4]@2 ~ [c#4,e4,g#4]@8 ~", // C#m
R: "[a3,c#4,e4]@6 ~@3 [c#4,e4] a3 ~@7 [a3,c#4,e4]@15 ~@15", // A C#m A
S: "g3 ~@5 g3 ~@8 g3 ~@8 g3 ~@2 g3 ~@2 e3 ~@2 d3 ~@3 g3 ~@4 g3 ~@2 g3 ~@2",
T: "~@6 g3 ~@8 g3 ~@8 g3 ~@2 g3 ~@2 e3 ~@2 d3 ~@2 g3 ~@6 g3 ~ g3 ~@2",
U: "~@6 g3 ~@8 g3 ~@8 g3 ~@2 g3 ~@2 e3 ~@2 d3 ~@2 g3 ~@6 e3 ~@2 d3 ~",
V: "~@7 g3 ~@7 g3 ~@8 g3 ~@2 g3 ~@2 e3 ~@2 d3 ~@2 g3 ~@5 g3 ~@5",
W: "~@3 g3 ~@8 g3 ~@2 g3 ~@8 g3 ~@2 g3 ~@2 e3 ~@2 d3 ~@3 g3 ~@5 g3 ~@4",
X: "~@3 g3 ~@8 g3 ~@2 g3 ~@2 e3 ~@2 d3 ~@5 g3 ~@8 g3 ~@2 g3 ~@8",
Y: "g3 ~@5 g3 ~@8 g3 ~@8 g3 ~@2 g3 ~@2 e3 ~@5 g3 ~@6 e3 ~@4", Z: "~@3 g3 ~@8 g3 ~@2 g3 ~@8 g3 ~@5 g3 ~@8 g3 ~@8",
AA: "[e4,g4,b4]@5 ~@4 [e4,g4,b4] ~@8 [e4,g4,b4]@15 ~@3 [e4,g4,b4] ~@2 [e4,g4,b4]@7 ~@2", // Em
AB: "[d4,f#4,a4]@6 ~@3 [d4,f#4,a4] ~@8 [d4,f#4,a4]@11 ~ [d4,f#4,a4] ~@5 [d4,f#4,a4] ~@2 [d4,f#4,a4]@7 ~@2", // D
AC: "[e4,g4,b4]@6 ~@3 [e4,g4,b4] ~@8 [e4,g4,b4]@9 ~@3 [e4,g4,b4] ~@5 [e4,g4,b4] ~@2 [e4,g4,b4]@7 ~@2", // Em
AD: "[d4,f#4,a4]@6 ~@3 [d4,f#4,a4] ~@8 [d4,f#4,a4]@25 ~@5", // D
AE: "[e4,g4,b4]@5 ~@4 [e4,g4,b4] ~@8 [e4,g4,b4]@10 ~@2 [e4,g4,b4] ~@5 [e4,g4,b4] ~@2 [e4,g4,b4]@8 ~", // Em
AF: "[d4,f#4,a4]@6 ~@3 [d4,f#4,a4] ~@8 [d4,f#4,a4]@15 ~@3 [d4,f#4,a4]@10 ~@2", // D
AG: "[c4,e4,g4]@5 ~@4 [c4,e4,g4] ~@8 [c4,e4,g4]@15 ~@15", AH: "[~@39 [b2,b3] ~@2 [c3,c4] ~@2 [d3,d4]@33 ~@18]/2",
AI: "[~@39 [b2,b3] ~@2 [c3,c4] ~@2 [d3,d4]@37 ~@14]/2", AJ: "[~@39 [b2,b3] ~@2 [c3,c4] ~@2 [d3,d4]@38 ~@13]/2",
AK: "[~@39 [b2,b3] ~@2 [c3,c4] ~@2 [d3,d4]@31 ~@20]/2", // B C D
})).s("gm_acoustic_guitar_nylon").gain(0.64).pan(0.7)
// other · orchestral harp · "HARP"
const orchestral_harp = note(`<
~@2 A@2 B@2 C@2 D@2 ~@4 E F G H ~@2 I ~ J K@3 A@2 L@2 ~@4 M F N O ~@2 P ~ P Q@3 ~@6 R S ~@3 T U V W ~@2 X ~ Y Z@3 AA@2
AB@2 AC@6 AB@2 AD@2 ~@8
>`.pickRestart({
A: "[f#4@3 g#4@3 a4@3 e5@6 g#4@3 a4@3 e5@5 ~ g#4@3 a4@3 e5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@2 ~]/2",
B: "[f#4@3 g#4@3 a4@3 e5@6 g#4@3 a4@3 e5@5 ~ g#4@3 a4@3 e5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@3]/2",
C: "[f#4@3 g#4@3 a4@3 e5@6 g#4@3 a4@3 e5@5 ~ g#4@3 a4@3 e5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@2 ~ f#5@2 ~]/2",
D: "[f#4@3 g#4@3 a4@3 e5@6 g#4@3 a4@3 e5@5 ~ g#4@3 a4@3 e5@5 ~ g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@6 g#4@3 a4@3 f#5@23 ~@4]/2",
E: "~@3 [b4,b5]@2 ~ [c#5,c#6]@3 [b4,b5]@3 [e5,e6]@2 ~ [e5,e6]@3 [c#5,c#6]@2 ~ [b4,b5]@14 ~@13", // B C# B E C# B
F: "~@3 [b4,b5]@2 ~ [c#5,c#6]@2 ~ [b4,b5]@3 [e5,e6]@2 ~ [e5,e6]@3 [c#5,c#6]@2 ~ [b4,b5]@21 ~@6", // B C# B E C# B
G: "~@3 [b4,b5]@3 [c#5,c#6]@2 ~ [b4,b5]@2 ~ [e5,e6]@2 ~ [e5,e6]@3 [c#5,c#6]@2 ~ [b4,b5]@14 ~@13", // B C# B E C# B
H: "~@3 [a4,a5]@3 [b4,b5]@2 ~ [c#5,c#6]@3 [e5,e6]@3 [d#5,d#6]@3 [b4,b5]@21 ~@9", // A B C# E D# B
I: "~@10 [c#6,c#7]@5 ~ [f#6,f#7]@5 ~ [g#6,g#7]@15 ~@11", // C# F# G#
J: "~@10 [c#6,c#7]@5 ~ f#6@5 ~ g#7@14 ~@12, ~@15 f#7@4 ~@2 g#6@14 ~@13", // C#
K: "[~@31 [f#5,f#6]@3 [g#5,g#6]@6 [b5,b6]@5 ~ c#6@15 ~@15 [a6,a7]@3 [g#6,g#7]@3 [c#6,c#7]@5 ~ [e6,e7]@5 ~ [f#6,f#7]@27 ~@23, ~@45 c#7@16 ~@83]/3", // F# G# B A G# C# E F#
L: "[f#4@3 g#4@3 a4@3 e5@6 g#4@3 a4@3 e5@5 ~ g#4@3 a4@3 e5@5 ~ g#4@3 a4@3 e5@6 ~@45]/2",
M: "~@3 [b4,b5]@2 ~ [c#5,c#6]@2 ~ [b4,b5]@3 e6@2 ~ [e5,e6]@3 [c#5,c#6]@2 ~ [b4,b5]@14 ~@13, ~@12 e5 ~@35", // B C# B E C# B
N: "~@3 [b4,b5]@3 [c#5,c#6]@2 ~ [b4,b5]@2 ~ e6@2 ~ [e5,e6]@3 [c#5,c#6]@2 ~ [b4,b5]@14 ~@13, ~@12 e5 ~@35", // B C# B E C# B
O: "~ [a4,a5] b4 [c#5,c#6] [e5,e6] [d#5,d#6] [b4,b5]@7 ~@3, ~@6 b5 ~@41", // A C# E D# B
P: "~@10 [c#6,c#7]@5 ~ [f#6,f#7]@5 ~ [g#6,g#7]@14 ~@12", // C# F# G#
Q: "[~@31 [f#5,f#6]@3 [g#5,g#6]@6 b5@5 ~ [c#6,c#7]@16 ~@14 [a6,a7]@3 [g#6,g#7]@3 [c#6,c#7]@5 ~ [e6,e7]@5 ~ [f#6,f#7]@27 ~@23, ~@40 b6@3 ~@101]/3", // F# G# C# A G# C# E F#
R: "~@10 [g6,g7]@3 [f#6,f#7]@3", S: "[d6,d7]@25 ~@23",
T: "~@3 [d5,d6]@2 ~ [e5,e6]@2 ~ [d5,d6]@2 ~ [g5,g6]@2 ~ [g5,g6]@3 [e5,e6]@3 [d5,d6]@14 ~@13", // D E D G E D
U: "~@3 [d5,d6]@2 ~ [e5,e6]@2 ~ [d5,d6]@2 ~ [g5,g6]@2 ~ [g5,g6]@3 [e5,e6]@3 [d5,d6]@21 ~@6", // D E D G E D
V: "~@3 [d5,d6]@3 [e5,e6]@2 ~ [d5,d6]@2 ~ [g5,g6]@2 ~ [g5,g6]@3 [e5,e6]@3 [d5,d6]@14 ~@13", // D E D G E D
W: "~@3 [c5,c6]@3 [d5,d6]@3 [e5,e6]@2 ~ [g5,g6]@3 [f#5,f#6]@3 [d5,d6]@21 ~@9", // C D E G F# D
X: "~@10 [e6,e7]@5 ~ [a6,a7]@5 ~ b7@15 ~@11, ~@21 b6@14 ~@13", // E A
Y: "~@10 [e6,e7]@5 ~ [a6,a7]@5 ~ b7@14 ~@12, ~@21 b6@14 ~@13", // E A
Z: "[~@31 [a5,a6]@3 [b5,b6]@5 ~ [d6,d7]@5 ~ e6@15 ~@14 c7@3 b6@3 e6@5 ~ g6@5 ~ a6@24 ~@27, ~@45 e7@16 ~@83]/3", // A B D
AA: "[a5@3 b4@3 c5@3 g5@6 b4@3 c5@3 g5@5 ~ b4@3 c5@3 g5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@2 ~]/2",
AB: "[a4@3 b4@3 c5@3 g5@6 b4@3 c5@3 g5@5 ~ b4@3 c5@3 g5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@2 ~]/2",
AC: "[a4@3 b4@3 c5@3 g5@6 b4@3 c5@3 g5@5 ~ b4@3 c5@3 g5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@2 ~ a5@2 ~]/2",
AD: "[a4@3 b4@3 c5@3 g5@6 b4@3 c5@3 g5@5 ~ b4@3 c5@3 g5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 b4@3 c5@3 a5@6 ~@21]/2",
})).s("gm_orchestral_harp").gain(0.3).pan(0.2)
// drums · kick
const kick = s("bd").struct(`<
~@6 A@3 ~ B ~@15 C A D ~ E@15 C@2 F G F@2 H I J K J K J K J K@2 J K L K J M ~ N O P O P O P O N O P O P A ~@8
>`.pickRestart({
A: "~@3 x ~@4", B: "~@3 x ~@3 x", C: "x ~@2 x ~@4", D: "x ~@18 x ~@28", E: "x ~@5 x ~@4 x ~@2 x ~",
F: "x ~@3 x ~@2 x", G: "x ~@5 x!2 ~@6 x ~", H: "x ~@5 x ~@3 x!2 ~@2 x!2", I: "~@3 x ~@2 x ~@9",
J: "x ~@2 x ~@2 x ~@4 x ~@2 x ~", K: "x ~@2 x ~@2 x ~@3 x!2 ~@2 x ~", L: "x ~@2 x ~@4 x ~@3 x ~@3",
M: "x ~@2 x ~@2 x ~@2 x!3 ~ x ~ x", N: "x ~@2 x ~@2 x ~@3 x!2 ~@2 x!2", O: "~@6 x ~@3 x!2 ~@2 x!2",
P: "~@3 x ~@2 x ~@3 x!2 ~@2 x!2",
})).gain(0.45)
// drums · snare
const snare = s("sd").struct("<~@30 A@15 ~ A@6 B A@7 C D@3 E D@3 ~@23>".pickRestart({
A: "~@3 x", B: "~ x ~@2", C: "~@12 x!2 ~@2", D: "~ x ~ x", E: "~@4 x ~@6 x!2 ~@3",
})).gain(0.45)
// drums · low tom
const low_tom = s("lt").struct("<A@9 ~ B@8 A@7 ~ A@3 ~ B@8 A@7 ~ A@5 C D B@8 A@7 ~ E@13 ~@9>".pickRestart({
A: "~@7 x", B: "~@43 x ~@4", C: "~@6 x!2", D: "~@3 x ~@2 x ~@9", E: "~@14 x!2",
})).gain(0.35)
// drums · hihat
const hihat = s("hh").struct("<~@6 A B@2 ~@17 A B@2 ~ C@15 ~@2 D@5 ~ C@15 ~ E@14 ~@8>".pickRestart({
// … 57 more lines
More by Gloria Estefan
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.