0:00/0:00
// Cuba Libre — Estefan Gloria
// 240 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 276 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(240/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(`<
~@32 A B C D@2 B C D@2 B C D@2 B C D@2 B C D@2 B C E@2 B C D@2 B C D@2 B C D@2 B C F@2 B C D@2 B C D@2 B C D@2 B C D@2
B C D@2 B C D@2 B C D@2 B C G ~ B C D@2 B C D@2 B C D@2 B C D@2 B C D@2 B C E@2 B C D@2 B C D@2 B C D@2 B C D@2 B C
D@2 B C D@2 B C D@2 B C H ~ B C D@2 B C D@2 B C D@2 B C E@2 ~@48 I J K L I J K L I J K L I J M ~ B C D@2 B C D@2 B C
D@2 B C D@2 B C D@2 B C D@2 ~@11
>`.pickRestart({
A: "~@2 g#2@2 ~@2 d#2 ~@3 b1@2 g#1@2 ~@2", B: "a#1@3 ~@5 c#2@6 d#2@2", C: "~@6 d#2 ~ d#1@4 g1@3 ~",
D: "[g#1@3 ~@5 b1@5 ~ c#2@4 ~@4 c#1@2 c#2@3 ~ b1@3 ~]/2", E: "[g#1@3 ~@5 b1@5 ~ c#2@18]/2",
F: "[g#1@3 ~@5 b1@5 ~ c#2@4 ~@14]/2", G: "g#1@5 ~@11", H: "g#1@3 ~@13", I: "g#1@3 ~@3 f#1@6 g#1@2 ~@2",
J: "~@6 g#1@2 f#1@4 g#1@3 ~", K: "g#1@2 ~@4 f#1@6 g#1@3 ~", L: "~@6 g#1 ~ f#1@4 g#1@3 ~", M: "g#1 ~@7",
})).s("gm_fretless_bass").gain(0.45)
// other · piano
const piano = note(`<
~@32 A B C D E B C D E B C D E B C D E B C D E B C F@2 ~@31 G H@2 I@2 J@2 K@2 L@2 M@2 N@2 O ~ P@4 Q@2 R@2 S T U@2 V@4
W@2 X@2 Y@2 Z@2 AA AB AC AD AA AB AC AD AA AB AC AD AA AB AC AE H@2 I@2 J@2 K@2 L@2 M@2 AF@2 AG AH P@4 Q@2 R@2 S T U@2
AI@4 ~@32 AJ@8 AK@6 AL AM ~@16 P@4 Q@2 R@2 P@4 Q@2 R@2 P@4 Q@2 R@2 AN@8 ~@3
>`.pickRestart({
A: "~@2 [g#2,g#4]@2 ~@2 [d#2,d#4]@2 ~@2 [b1,b3] ~ [g#1,g#3]@3 ~", // G# D# B G#
B: "[g#3,g#4,g#5]@2 ~@2 [c#4,e4,c#5,e5]@2 ~@2 [g#3,g#4,g#5]@3 ~@3 [g3,g4,g5]@2", // G# C#m G# G
C: "~ [c#4,d#4,c#5,d#5] ~@2 [g3,g4,g5] ~ [c#4,d#4,c#5,d#5] ~", // C#sus2 G C#sus2
D: "[f#3,f#4,f#5]@2 ~@2 [b3,d#4,b4,d#5]@2 ~@2 [f#3,f#4,f#5]@3 ~@3 [f3,f4,f5]@2", // F# B F# F
E: "~ [b3,c#4,b4,c#5] ~@2 [f3,f4,f5] ~ [b3,c#4,b4,c#5] ~", // Bsus2 F Bsus2
F: "[[f#3,f#4,f#5]@2 ~@2 [b3,d#4,b4,d#5]@2 ~@2 [f#3,f#4,f#5]@3 ~@3 [f3,f4,f5]@18]/2", // F# B F# F
G: "~ [d#3,d#4] [b2,b3] [g#2,g#3] [a#2,a#3] [b2,b3] [c#3,c#4] [d3,d4]", // D# B G# A# B C# D
H: "[[d#4,d#5]@7 ~ [g#3,g#4]@5 ~ a4@8 [d#3,d#4,d#5]@4 ~@2 [d#4,d#5,d#6]@3 ~, ~@7 a3@3 ~@6]/2", // D# G# D#
I: "[[d#4,d#5,d#6]@8 [f#3,f#4,f#5]@6 [g#3,g#4,g#5]@8 [b3,b5]@5 ~ [d#4,d#6]@2 ~@2]/2", // D# F# G# B D#
J: "[[c#4,c#5,c#6]@10 ~@2 [b3,b4]@11 ~ [a#3,a#4,a#5]@7 ~, ~@12 b5@9 ~@11]/2", // C# B A#
K: "[[a#4,a#5]@5 ~ [g#3,g#4,g#5]@7 ~@3, a#3@3 ~@5]/2", // A# G#
L: "[~@4 [g#4,a#4,c#5] ~@3 [g#3,g#5]@4 ~@6 [a#4,c#5,d#5] ~@3 [a#3,a#5]@5 ~ [e4,e6]@2 ~@2, [e4,e6]@7 ~@7 [g3,g5]@7 ~@11]/2", // A#m7 G# D#7 A# E G
M: "[~@4 [f#4,g#4] ~@3 [f#3,f#5]@5 ~@5 [g#4,b4]@2 ~@2 [g#3,g#5]@5 ~ [d#4,d#6]@3 ~, [d#4,d#6]@6 ~@8 [f3,f5]@7 ~@11, ~@2 b4 ~@13]/2", // F#sus2 F# G#m G# D# F
N: "[[c#5,c#6]@6 ~@2 [e5,g#5]@3 ~ [b3,b4,b5]@9 ~@3 [a#3,a#4,a#5]@6 ~@2, c#4 ~@3]/2", O: "[g#3,g#4,g#5]@3 ~@13",
P: "[[d#3,d#5,d#6]@2 [g#3,g#5]@2 [b3,b5]@2 [e3,e5,e6] ~ [d#3,d#5,d#6]@2 [g3,g5]@2 [a#3,a#5] ~ [d#3,d#5,d#6]@4 [g3,g5]@2 [a#3,a#5]@2 [d#3,d#5,d#6] ~ [e3,e5,e6] ~ [e3,e5]@2 ~@2 [d#3,d#5,d#6]@4 [g#3,g#5]@2 [b3,b5]@2 [e3,e5,e6] ~ [f#3,f#5,f#6] ~ [f#3,f#5,f#6]@2 ~@2 [f3,f5,f6]@4 [g#3,g#5]@2 [c#4,c#6] ~ [e3,e5,e6] ~ [e3,e5,e6]@2 [g#3,g#5] ~ [b3,b5] ~ [d#3,d#5,d#6] ~, ~@26 e6 ~@37]/4", // D# G# B E D# G A# D# …
Q: "[[d#3,d#5,d#6]@2 [g#3,g#5] ~ [b3,b5] ~ [e3,e5,e6] ~ [e3,e5,e6]@2 [g#3,g#5]@2 [b3,b5] ~ [d#3,d#5,d#6]@4 [g3,g5] ~ [a#3,a#5] ~ [e3,e5,e6] ~ [e3,e5,e6]@4 [g3,a#3,g5,a#5] ~ [e3,e5] ~]/2", // D# G# B E G# B D# G …
R: "[[d#3,d#5,d#6]@2 [g#3,g#5] ~ [b3,b5] ~ [e3,e5,e6] ~ [e3,e5] ~ [g#3,g#5] ~ [b3,b5] ~ [f3,f5,f6]@4 [g#3,g#5] ~ [b3,b5] ~ [f3,f5,f6] ~ [e3,e5,e6]@4 [g#3,b3,g#5,b5] ~ [d#3,d#5,d#6] ~, ~@4 e6 ~@11]/2", // D# G# B E G# B F G# …
S: "[g#3,g#4,g#5]@3 ~ c#4@2 [e4,e5] ~ [g#3,g#4,g#5] ~ [g#3,g#5]@2 ~@2 [g3,g4,g5]@2, ~@4 c#5 ~@5 g#4 ~@5", // G# E G# G
T: "~@2 [c#4,c#5]@3 ~ [d#4,d#5]@3 ~ [g3,g4,g5]@2 ~@2 [f#3,f#4,f#5] ~", // C# D# G F#
U: "[[f#3,f#4,f#5]@4 b3@2 [d#4,d#5] ~ [f#3,f#4,f#5] ~ [f#3,f#4,f#5]@2 ~@2 [f3,f4,f5]@4 b3@2 [c#4,c#5] ~ [f3,f4,f5]@2 ~@2 [e3,e4,e5]@2 ~@2 [d#3,d#4,d#5] ~, ~@4 b4 ~@13 b4 ~@13]/2", // F# D# F# F C# F E D#
V: "[[d#3,d#4,d#5]@4 g3@2 [a#3,a#4] ~ [e3,e4,e5]@4 ~@2 [d#3,d#4,d#5]@4 [g3,g4]@3 ~ a#3@2 [e3,e4,e5]@4 ~@2 [d#3,d#4,d#5]@4 [g#3,g#4]@3 ~ b3@2 [e3,e4,e5]@4 ~@2 [f3,f4,f5]@4 g#3@3 ~ b3@2 [f#3,f#4,f#5]@2 ~@2 [g3,g4,g5]@3 ~, ~@4 g4 ~@17 a#4 ~@15 b4 ~@11 g#4 ~@3 b4 ~@9]/4", // D# A# E D# G E D# G# …
W: "[[g#3,g#4,g#5]@4 [c#4,c#5]@2 [e4,e5]@2 ~@2 [g#3,g#4,g#5]@2 ~@2 [g4,g5]@2 ~@2 [c#4,c#5]@3 ~ [d#4,d#5] ~ [g3,g4,g5]@4 [c#4,d#4,c#5]@2 ~@2, ~@14 g3@4 ~@10 d#5 ~@3]/2", // G# C# E G# G C# D# G …
X: "[[g#3,g#4,g#5]@4 b3@2 [d#4,d#5]@2 ~@2 [f#3,f#4,f#5]@2 ~@2 [f3,f4,f5]@4 [g#3,g#4]@3 ~ b3@2 [f3,f4,f5]@3 ~ [g#3,b3,g#4,b4]@2 ~@2, ~@4 b4 ~@17 b4 ~@9]/2", // G# D# F# F G# F G#m
Y: "[[d#3,d#5]@2 g3@2 a#4@2 [e3,e4,e5] ~ [e3,e4,e5]@4 [g3,a#3,g4,a#4] ~ [d#3,d#4,d#5]@4 g3@2 [a#3,a#4] ~ [e3,e4,e5] ~ [e3,e4,e5]@4 [g3,a#3]@2 ~@2, d#4 ~ g4 ~ a#3 ~@23 [g4,a#4] ~@3]/2", // D# E Gm D# A# E Gm
Z: "[[d#3,d#4,d#5]@2 g#3@2 [b3,b4] ~ [e3,e4,e5] ~ [e3,e4,e5]@4 [g#3,b3,g#4,b4] ~ [f3,f4,f5]@11 ~@7, ~@2 g#4 ~@29]/2", // D# B E G#m F
AA: "g#4@3 ~ c#5@2 ~@2 g#4@4 ~@2 g4@2, ~@4 e5 ~@11", AB: "~@2 [c#5,d#5]@2 ~@2 g4 ~ g4@4 c#5@2 ~@2, ~@12 d#5 ~@3",
AC: "f#4@3 ~ d#5@2 ~@2 f#4@4 ~@2 f4@2, ~@4 b4 ~@11", AD: "~@2 [b4,d#5]@3 ~ f4@2 f#4@2 ~@2 g4@2 ~@2",
AE: "~ [d#3,d#4,b4,d#5] [b2,b3] [g#2,g#3,f4] [a#2,a#3,f#4] [b2,b3] [c#3,c#4,g4] [d3,d4]", // G#m B C# D#m B C#dim D
AF: "[[e4,e6]@7 ~ [g#3,g#5]@4 ~@2 [g3,g5]@7 ~ [a#3,a#5]@5 ~ [e4,e6]@2 ~@2]/2", // E G# G A# E
AG: "~@2 [f3,f4] ~ [g3,g4] ~ [g#3,g#4] ~, [d#4,d#6]@3 ~@5", AH: "[a#3,a#4] ~ [b3,b4] ~ [c#4,c#5] ~ [d4,d5] ~",
AI: "[[d#3,d#4,d#5]@4 g3@2 [a#3,a#4] ~ [e3,e4,e5]@4 ~@2 [d#3,d#4,d#5]@4 [g3,g4]@3 ~ a#3@2 [e3,e4,e5]@4 ~@2 [d#3,d#4,d#5]@4 [g#3,g#4]@3 ~ b3@2 [e3,e4,e5]@4 ~@2 [f3,f4,f5]@18, ~@4 g4 ~@17 a#4 ~@15 b4 ~@25]/4", // D# A# E D# G E D# G# …
AJ: "[[d#3,d#4,d#5,d#6]@2 [g3,g5] ~ [a#3,a#5]@2 [e3,e4,e5,e6] ~ [e3,e4,e5,e6]@3 ~ [g3,a#3,g5,a#5] ~ [d#3,d#4,d#5,d#6]@4 [g3,g5] ~ [a#3,a#5] ~ [e3,e4,e5,e6] ~ [e3,e4,e5,e6]@4 [g3,a#3,g5,a#5] ~ [d#3,d#4,d#5,d#6]@4 [g#3,g#5]@2 [b3,b5] ~ [e3,e4,e5,e6] ~ [e3,e4,e5,e6]@4 [g#3,b3,g#5,b5] ~ [f3,f4,f5,f6]@4 [g#3,g#5] ~ [b3,b5] ~ [e3,e4,e5,e6] ~ [e3,e4,e5,e6]@4 [g#3,b3,g#5,b5] ~ [d#3,d#4,d#5,d#6]@4 [g3,g5] ~ [a#3,a#5]@2 [e3,e4,e5,e6] ~ [e3,e4,e5,e6]@3 ~ [g3,a#3,g5,a#5] ~ [d#3,d#4,d#5,d#6]@4 [g3,g5] ~ [a#3,a#5] ~ [e3,e4,e5,e6] ~ [e3,e4,e5,e6]@4 [g3,a#3,g5,a#5] ~ [d#3,d#4,d#5,d#6]@4 [g#3,g#5]@2 [b3,b5] ~ [e3,e4,e5,e6] ~ [e3,e4,e5,e6]@4 [g#3,b3,g#5,b5] ~ [f3,f4,f5,f6]@4 [g#3,g#5] ~ [b3,b5] ~ [e3,e4,e5,e6] ~ [e3,e4,e5,e6]@4 [g#3,b3,g#5,b5] ~ [d#3,d#4,d#5,d#6]@2]/8", // D# G A# E Gm D# G A# …
AK: "[[g#3,g#4,g#5]@5 ~ [a#3,c#4,a#4,c#5]@2 ~@2 [g#3,g#4,g#5]@2 ~@2 [g3,g4,g5]@4 [a#3,a#4]@3 ~ [c#4,c#5]@2 ~@2 [g3,g4,g5]@2 ~@2 [f#3,f#4,f#5]@4 [b3,b4]@2 ~@2 d#5@2 ~@2 [f#3,f#4,f#5]@2 ~@2 [f3,f4,f5]@4 [b3,b4]@4 [c#4,c#5]@3 ~ [e3,e4,e5] ~@3 [d#3,d#4,d#5]@4 [g3,g4]@3 ~ [a#3,a#4]@3 ~ [e3,e4] ~@3 [d#3,d#4,d#5]@4 [g3,g4]@2 ~@2 [a#3,a#4]@3 ~ [e3,e4,e5]@2 ~@2 [d#3,d#4,d#5]@2, ~@37 e5 ~@10]/6", // G# A#m G# G A# C# G F# …
AL: "~@2 [g#3,b3,g#4,b4]@3 ~ [d#3,d#4,d#5] ~ [e3,e4,e5]@4 ~@2 [f3,f4,f5]@2", // G#m D# E F
AM: "~@2 [g#3,b3,g#4,b4]@3 ~ [f3,f4,f5] ~ [f#3,f#4]@2 ~@2 [g3,g4,g5]@2 ~@2, ~@8 f#5 ~@7", // G#m F F# G
AN: "[[g#3,g#4,g#5]@4 [c#4,c#5]@2 [e4,e5]@3 ~ [g#3,g#4,g#5]@2 ~@2 [g3,g5]@4 c#4@4 [d#4,d#5]@4 [g3,g5]@2 ~@2 [f#3,f#4,f#5]@4 [b3,b4]@3 ~ [d#4,d#5]@2 ~@2 [f#3,f#4,f#5]@2 ~@2 [f3,f5]@4 [b3,b4]@4 [c#4,c#5]@2 ~@2 [e3,e4,e5]@2 ~@2 [d#3,d#5]@4 [g3,g4]@2 ~@2 [a#3,a#4] ~ [e3,e4,e5]@3 ~ g3 ~ [d#3,d#4,d#5]@4 g3@2 [a#3,a#4] ~ [d#3,d#4,d#5] ~ [e3,e4,e5]@4 ~@2 [d#4,d#5]@4 [g#3,g#4]@2 b3@2 ~@2 [e3,e4,e5]@3 ~ g#3 ~ [f3,f4,f5]@9 ~@9, ~@14 g4@2 ~@2 c#5@2 ~@6 g4 ~@19 f4@2 ~@14 d#4@3 ~ f#3 ~@15 g4 ~@11 d#3@2 ~@4 b4 ~@9 [g#4,b4,e5] ~@17]/8", // G# C# E G# G D# G F# …
})).s("gm_piano").gain(0.33).pan(0.4)
// chords · epiano2
const epiano2 = note(`<
~ A@2 B@2 C@2 D@2 E@2 F@2 E@2 G@2 ~@40 E@2 G@2 E@2 G@2 E@2 G@2 E@2 G@2 E@2 G@2 E@2 G@2 E@2 G@2 E@2 G@2 C@2 D@2 ~@36
E@2 G@2 E@2 G@2 E@2 G@2 E@2 G@2 C@2 D@2 ~@127
>`.pickRestart({
A: "[[g#3,a#3,c#4,d#4]@7 [g3,a#3,c#4,d#4]@9]/2", B: "[[f#3,b3,d#4,f#4]@7 [f3,g#3,b3,d#4]@9]/2",
C: "[[g#3,a#3,c#4,d#4]@7 [g3,a#3,c#4,e4]@9]/2", D: "[[f#3,b3,d#4,f#4]@7 [f3,b3,d#4,g#4]@9]/2",
E: "[[g#3,a#3,c#4,e4,g#4]@7 [g3,a#3,c#4,d#4,g4]@9]/2", F: "[[f#3,g#3,b3,d#4,f#4]@7 [f3,g#3,b3,d#4,g#4]@9]/2",
G: "[[f#3,g#3,b3,d#4,f#4,a#4]@7 [f3,g#3,b3,d#4,g#4]@9]/2", // G#m7 Fm7b5
})).s("gm_epiano2").gain(0.22).pan(0.1)
// chords · synth strings 1
const synth_strings_1 = note(`<
~ A@2 B@2 C@2 D@2 E@2 F@2 E@2 G@2 ~@72 H@2 I@2 J@2 K@2 L@2 M@2 N@2 ~@42 H@2 I@2 J@2 K@2 L@2 M@2 N@2 ~@80 O@2 ~@35
>`.pickRestart({
A: "[[g#3,a#3,c#4,d#4]@7 [g3,a#3,c#4,d#4]@9]/2", B: "[[f#3,b3,d#4,f#4]@7 [f3,g#3,b3,d#4]@9]/2",
C: "[[g#3,a#3,c#4,d#4]@7 [g3,a#3,c#4,e4]@9]/2", D: "[[f#3,b3,d#4,f#4]@7 [f3,b3,d#4,g#4]@9]/2",
E: "[[g#3,a#3,c#4,e4,g#4]@7 [g3,a#3,c#4,d#4,g4]@9]/2", F: "[[f#3,g#3,b3,d#4,f#4]@7 [f3,g#3,b3,d#4,g#4]@9]/2",
G: "[[f#3,g#3,b3,d#4,f#4,a#4]@7 [f3,g#3,b3,d#4,g#4]@9]/2", H: "[[e3,g#3]@7 a3@9]/2", I: "[[f#3,a#3]@7 [f3,b3]@9]/2",
J: "[[g#3,c#4]@3 [g3,b3]@3 [f#3,a#3]@2]/2", K: "[[f3,a#3]@11 ~ [f3,g#3]@19 ~]/2",
L: "[g#3@4 [c#4,e4]@3 [g3,c#4,d#4]@9]/2", M: "[f#3@4 [b3,d#4]@3 [f3,b3,c#4]@9]/2",
N: "[[g#3,a#3]@3 [g3,b3]@5, c#4]/2", O: "[[g#3,b3,d#4]@31 ~]/2",
})).s("gm_synth_strings_1").gain(0.1).pan(1)
// chords · brass section
const brass_section = note(`<
~@48 A B C D E F G H@2 ~@15 I J ~@22 K L M N@2 O@2 P A Q R S T U R S T U R S T U R S T V W X Y Z W AA@2 ~@23 K L M N@2
O@2 P AB Q R S T U R S T U R S T U R AC@2 ~@50 AD AE AF AG AH AI ~ AD AE AF AG AH ~ A Q R S T U R S T Q R S T U R S T
Q R S T U R S T ~@10 AJ
>`.pickRestart({
A: "~ d#4 f4 g4 g#4 a#4 b4 c#5", B: "d#5 ~@3 d#5 ~@3", C: "~@2 c#5 ~@3 d#5@6 e5 ~@3", D: "d#5 ~@7 d#5@5 ~ d#5 ~",
E: "~ d#5 ~ c#5 d#5@2 b4 ~", F: "c#5@4 d#5@2 ~@8 d#5 ~", G: "~@2 d#5@2 ~@2 c#5@2 d#5@4 a#4 ~@3",
H: "[b4 ~ g#4 ~ e5@3 d#5@8 ~]/2", I: "~@2 [d#3,d#4,d#5]@3 ~@3 [d#3,d#4,d#5] ~@3 [d#3,d#4,d#5]@2 ~@2",
J: "~@2 [c#3,c#4,c#5] [b2,b3,b4] [a#2,a#3,a#4] [g#2,g#3,g#4] [f#2,f#3,f#4] [e2,e3,e4] [d#2,d#3,d#4] ~@7, [d#3,d#4,d#5]@5 ~@11", // C# B A# G# F# E D#
K: "~@3 [g#3,g#4] ~ [a#3,a#4] ~@2 [b3,b4]@2 ~ [c#4,c#5] ~ [d#4,d#5]@2 ~", // G# A# B C# D#
L: "~ [d#4,d#5] c#4 [b3,b4] [a#3,a#4] [g#3,g#4] [g3,g4] ~@9, [e3,e4,a#4,c#5,e5] ~@7", // D# B A# G# G A#dim
M: "~@3 [g3,g4] [g#3,g#4] [a#3,a#4] [b3,b4] [c#4,c#5]", N: "[[d#4,d#5]@20 [g#3,g#4]@6 [d#4,d#5]@5 ~]/2",
O: "[[e4,g#4,c#5]@10 ~@2 [b3,d#4,g4,b4]@10 ~@2 [a#3,c#4,d#4,g4,a#4]@7 ~, c#4@11 ~@5]/2", P: "[g#3,g#4]@3 ~@5",
Q: "[d#4,d#5]@4 ~@4 [c#4,e4,g#4]@5 ~ [c#4,d#4] ~, ~@7 g4", R: "~@8 [c#4,d#4,g4]@7 ~",
S: "[b3,f#4]@2 ~@6 [b3,d#4,f#4]@5 ~ [b3,c#4,f4]@2, d#4 ~@15", T: "~@4 [b3,c#4,f4]@3 ~",
U: "[c#4,e4] ~@7 [c#4,e4,g#4]@5 ~ [c#4,d#4] ~, g#4 ~@6 g4", V: "c#4@4 d#4 ~@9 c#4 ~",
W: "~@2 c#4 ~@3 c#4 ~ c#4@4 a#3 ~@3", X: "b3@4 d#4 ~@9 b3 ~", Y: "~@2 b3 ~@3 b3 ~ b3@4 g#3 ~@3",
Z: "a#3@4 c#4@2 ~@8 c#4 ~",
AA: "[b3@2 ~@2 g#3@2 ~@2 e4@6 [d#4,d#5]@6 [c#4,c#5] [b3,b4] [a#3,a#4] [g#3,g#4] [f#3,f#4] [e3,e4] [d#3,d#4] ~@5]/2", // D# C# B A# G# F# E D#
AB: "a#3@2 ~@2 [b3,b4]@2 ~@2 [c#4,c#5] ~@3 d4@2 ~@2, a#4 ~@11 d5 ~@3", // B C#
AC: "[[b3,f#4]@2 ~@6 [b3,d#4,f#4]@5 ~ [b3,c#4,f4]@18, d#4 ~@31]/2", AD: "~@14 [d#4,d#5] ~",
AE: "~@2 [d#4,d#5] ~@3 [e4,e5] ~ [d#4,d#5] ~@7", AF: "~@4 [d#4,d#5] ~@3", AG: "~@6 [d#4,d#5] ~@9",
AH: "~@5 [d#4,d#5] ~@2", AI: "~@2 [d#4,d#5] ~@3 e4@2 [d#4,d#5]@3 ~ e4@2 ~@2, ~@6 e5 ~@5 e5 ~@3",
AJ: "[d#2,d#3]@2 [d#4,d#5]@2 ~@2 d#3@2 [d#4,d#5]@2 ~@2 [g#4,g#5]@3 ~, ~@6 d#2 ~@9", // D# G#
})).s("gm_brass_section").gain(0.3).pan(0.9)
// chords · alto sax
const alto_sax = note(`<
~@41 A B C D E B F@2 A B C D E B F@2 ~@64 A B C D E B G@2 ~@16 H ~ I J K ~ L ~ H ~ I J K ~@19 M N O P Q N R S M N O P
Q N T@2 ~@24 U V W@2 ~@4 X Y Z ~ AA AB AC ~ X Y Z ~ AA AB ~@37
>`.pickRestart({
A: "c#4@4 d#4 ~@9 c#4 ~", B: "~@2 c#4 ~@3 c#4 ~ c#4@4 a#3 ~@3", C: "b3@4 d#4 ~@9 b3 ~",
D: "~@2 b3 ~@3 b3 ~ b3@4 g#3 ~@3", E: "a#3@4 c#4@2 ~@8 c#4 ~", F: "[b3 ~ g#3 ~ e4@3 d#4@7 ~@2]/2",
G: "[b3@2 ~@2 g#3@2 ~@2 e4@6 d#4@6 c#4 b3 a#3 g#3 f#3 e3 d#3 ~@5]/2", H: "c#3@2 ~@2 e3@2 ~@2 g#3@5 ~ g3@2",
I: "b2@2 ~@2 d#3@2 ~@2 f#3@5 ~ f3@2", J: "~@4 c#3 ~@3 c#3@4 d#3 ~@3", K: "c#3@2 ~@2 e3 ~@3 g#3@5 ~ g3@2",
L: "b2 ~ d#3 ~ f#3@3 f3", M: "f3@2 ~@6 [f3,g#3]@6 [d#3,g3] ~, g#3 ~@15", N: "~@8 [d#3,g3]@7 ~",
O: "[d#3,f#3] ~@3 [d#3,f#3]@3 [c#3,f3]", P: "~@4 [c#3,f3]@3 ~", Q: "[e3,g#3]@2 ~@6 [e3,g#3]@5 ~ [d#3,g3] ~",
R: "f#3@2 ~@6 [d#3,f#3]@6 [c#3,f3] ~, d#3 ~@15", S: "~@2 g#3@2 ~@2 b3@6 e4 ~@3",
T: "[f#3 ~@3 [d#3,f#3]@3 [c#3,f3]@9, d#3 ~@31]/2", U: "[c#4,e4]@2 ~@2 [g#3,b3]@2 ~@2 [c#4,e4]@5 ~ b3@2, ~@14 d#4 ~",
V: "~@2 [g3,a#3]@2 ~@8 [g#3,b3]@3 ~", W: "[[b3,d#4] ~@3 [b3,d#4] ~@3 a#3@6 [g#3,b3]@7 ~@11, ~@2 c#4 ~@5]/2",
X: "d#4@2 ~@2 d#4@2 ~@2 [c#4,e4]@6 [b3,d#4] ~, b3 ~@3 b3 ~@11", Y: "~@2 [g#3,b3] ~@9 [g#3,b3]@4",
Z: "[b3,d#4] ~@3 [b3,d#4] ~@3 [a#3,c#4]@6 b3@2, ~@14 g#3 ~", AA: "[b3,d#4] ~@3 [b3,d#4]@2 ~@2 [c#4,e4]@6 [b3,d#4] ~",
AB: "~ [b3,d#4] ~ [g#3,b3]@3 c#4 ~, ~@12 a#3 ~@3", AC: "[b3,d#4] ~@3 [b3,d#4] ~@3 [a#3,c#4]@5 ~ b3@2, ~@14 g#3 ~",
})).s("gm_alto_sax").gain(0.45).pan(0.6)
// other · baritone sax
const baritone_sax = note(`<
~@37 A B C@2 A B C@2 A B C@2 A B C@2 A B D@2 ~@44 E@2 F G A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B H@2 ~@28 E@2 F I
A B C@2 A B C@2 A B C@2 A B D@2 J K L M J N L O J K L M J N D@2 ~@47 G A B C@2 A B C@2 A B C@2 A B C@2 A B C@2 A B C@2
~@10 P
>`.pickRestart({
A: "a#2 ~@3 c#2@3 d#2", B: "~@6 d#3 ~ d#3@2 ~@2 a#2 ~@3", C: "[g#2@2 ~@6 b2@6 c#3@4 ~@4 g#2 ~ g#2@3 ~ c#2@2 ~@2]/2",
D: "[g#2 ~@3 b2@3 c#3@9]/2", E: "[a#1@11 ~ d#2@12 d#1@7 ~]/2", F: "g#1@5 ~@11",
G: "~@2 d#2@2 f2@2 g2@2 g#2@2 a#2@2 b2@2 c#3 ~", H: "[g#2 ~@3 b2@3 c#3@2 ~@7]/2",
I: "a#2 ~@3 b2@2 ~@2 c#3@2 ~@2 d3@2 ~@2", J: "c#2@2 ~@6 c#2@6 d#2 ~", K: "~@3 c#2 d#2 ~ f#2 ~",
L: "g#2@2 ~@6 b2@6 c#3 ~", M: "~@6 b2 ~ c#3 ~@3 g#2 ~@3", N: "~@6 b2@2 c#3@2 ~@2 a#2 ~@3",
O: "~@2 g#2@2 ~@2 b2@6 e3 ~@3", P: "d#1@2 d#2@2 ~@2 d#1@2 d#2@2 ~@2 g#2@3 ~",
})).s("gm_baritone_sax").gain(0.35).pan(0.6)
// other · trombone
const trombone = note(`<
~@41 A B C D E B F@2 A B C D E B F@2 ~@64 A B C D E B G@2 ~@96 H I J ~ K L M ~@44
>`.pickRestart({
A: "c#4@2 d#4 ~@4 c#4", B: "~@2 c#4 ~@3 c#4 ~ c#4@4 a#3 ~@3", C: "b3@4 d#4@2 ~@8 b3 ~",
D: "~@2 b3 ~@3 b3 ~ b3@3 ~ g#3@2 ~@2", E: "a#3@4 c#4 ~@9 c#4 ~", F: "[b3@2 ~@2 g#3 ~@3 e4@6 d#4@13 ~@5]/2",
G: "[b3@2 ~@2 g#3 ~@3 e4@6 d#4@6 ~@12]/2", H: "d#4@2 ~@2 d#4@2 ~@2 [c#4,e4]@6 [b3,d#4] ~, b3 ~@3 b3 ~@11",
I: "~@2 [g#3,b3] ~@9 [g#3,b3]@4", J: "[b3,d#4] ~@3 [b3,d#4] ~@3 [a#3,c#4]@6 b3@2, ~@14 g#3 ~",
K: "[b3,d#4] ~@3 [b3,d#4]@2 ~@2 [c#4,e4]@6 [b3,d#4] ~", L: "~ [b3,d#4] ~ [g#3,b3]@3 c#4 ~, ~@12 a#3 ~@3",
M: "[b3,d#4] ~@3 [b3,d#4] ~@3 [a#3,c#4]@5 ~ b3@2, ~@14 g#3 ~", // B A#m
})).s("gm_trombone").gain(0.45).pan(0.4)
// other · drawbar organ
const drawbar_organ = note(`<
~@65 A@2 B@2 A@2 C@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@136 D E F G D E F G D E F G D E F G ~@35
>`.pickRestart({
A: "[[g#4,g#5]@3 ~ e5@3 ~ [g#4,g#5]@4 ~@2 [g4,g5]@4 [c#5,d#5]@2 ~@2 [g4,g5] ~ [g4,g5]@4 [c#5,d#5]@2 ~@2, ~@4 c#5 ~@27]/2", // G# G C#sus2 G C#sus2
B: "[[f#4,f#5]@4 [b4,d#5]@3 ~ [f#4,f#5]@5 ~ [f4,f5]@4 [b4,c#5]@3 ~ [f4,f5] ~ [f4,f5]@4 [b4,c#5]@3 ~]/2", // F# B F# F Bsus2 F Bsus2
C: "[[f#4,f#5]@4 [b4,d#5]@3 ~ [f#4,f#5]@5 ~ [f4,f5]@4 ~@14]/2", // F# B F# F
D: "~@4 d#5@2 d#4@2 g#4@2 [b4,d#5] ~ d#4@2 g#4 ~, ~@4 b4 ~@11", // B
E: "[b4,d#5] ~ d#4 ~ g#4@2 [b4,d#5] ~ d#4@2 g#4@2 [b4,d#5] ~@3", // B
F: "~@4 d#5@2 d#4@2 g#4@2 [b4,d#5] ~ d#4@2 g#4@2, ~@4 b4 ~@11", // B
G: "[b4,d#5] ~ d#4@2 g#4@2 b4@2 d#4@2 g#4@2 b4@2 d#4 ~, ~@6 d#5 ~@5 d#5 ~@3", // B
})).s("gm_drawbar_organ").gain(0.17).pan(1)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
~@33 A B C D A B C D A B C D A B C D A B C D A B C ~ A B C D A B C D A B C D A B C ~ A B C D A B C D A B C D A B C D A
B C D A B C D A B C D A B ~@2 A B C D A B C D A B C D A B C D A B C D A B C ~ A B C D A B C D A B C D A B C D A B C D
A B C D A B C D A B ~@2 A B C D A B C D A B C D A B C D ~@64 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A
B C D ~@3
>`.pickRestart({
A: "~@8 [c#4,e4] ~ [c#4,e4] ~@5", B: "~@2 [c#4,d#4] ~@5 [c#4,d#4] ~ [c#4,d#4] ~@5", C: "~@8 [b3,d#4] ~ [b3,d#4] ~@5",
D: "~@2 [b3,c#4] ~@5 [b3,c#4] ~ [b3,c#4] ~@5", // Bsus2
})).s("gm_electric_guitar_jazz").gain(0.25).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
~@17 A@14 B ~ A C A C A C A C A C A C A C A C A C A C A C D ~ A C A C A C A C A C A C A C E ~ A C A C A C A C A C A C
A C A C A C A C A C A@3 C A C A C B@2 A C A C A C A C A C A C A C A C A C A C A C D ~ A C A C A C A C A C A C A C A C
A C A C A C A@3 C A C A C B ~ A C A C A C A C A C A C A C A C ~@30 B ~ B ~@6 F B F B F B F B F G H G H G H G H G H G H
G H B ~ A C A C A C A C A C A C A C A C A C A C A C A C B ~@10
>`.pickRestart({
A: "x!2", B: "x", C: "x ~@2 x!2 ~ x ~", D: "x ~@3 x ~@2 x", E: "~@7 x", F: "~@3 x", G: "x ~ x!2",
H: "x ~@2 x ~@2 x ~",
})).gain(0.59)
// drums · snare
const snare = s("sd").struct(`<
// … 172 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.