0:00/0:00
// The Boy Is Mine — Brandy
// 93 bpm, 4/4, key C# minor. 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: duplicate parts dropped: ch 11 contrabass (copy of ch 2 synth bass 2); ch 12 synth bass 1 (copy of ch 2 synth bass 2)
// note: Full arrangement: all 95 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(93/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 · synth bass 2
const bass = note(`<
~@6 A B C D E F G H I J K L M N O L P Q@3 P R@3 S T@3 P U@8 V@3 W X Y Z AA AB@2 AC AA AD AE AF AG AD AE Z AH AI@2 Z AA
~@2 AJ AK AL AM AN W X AO AP AQ X AO AP W AR AO AP AS AT AU AV AW ~@4
>`.pickRestart({
A: "~@4 f#2@4 ~@12 f#2@3 ~@9", B: "~@4 f#2@4 ~@12 a2@5 ~@7", C: "~@4 c#2@3 ~@13 c#2@3 ~@9",
D: "~@4 c#2@4 ~@4 c#2@5 ~@3 e2@4 g#2@3 ~ f#2@3 ~", E: "~@4 f#2@3 ~@5 f#2@2 ~@6 f#2@3 ~@5 f#2@3 ~",
F: "~@4 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4 c#2@4", G: "~@4 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@4",
H: "~@4 c#2@3 ~@5 c#2@3 ~@6 e2@4 g#2@4 f#2@3", I: "~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3",
J: "~@5 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4 c#2@3", K: "~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@3",
L: "~@5 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@4 f#2@3", M: "~@29 f#2@3", N: "~@5 f#2@3 ~@5 f#2@3 ~@5 g#2@3 ~ d#2@3 ~ c#2@3",
O: "~@5 c#2@2 ~@6 c#2@3 ~@5 c#2@3 ~@5 c#2@3", P: "~@6 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@2",
Q: "[~@6 f#2@3 ~@5 f#2@2 ~@6 g#2@4 d#2@4 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@4 f#2@2]/3",
R: "[~@6 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@3 ~ f#2@2]/3",
S: "~@6 f#2@3 ~@5 f#2@2 ~@6 f#2@3 ~@5 f#2@2",
T: "[~@6 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@4 f#2@2]/3",
U: "[~@6 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@6 c#2@3 ~@5 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@4 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@4 f#2@3 ~@29 f#2]/8",
V: "[~@7 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4 c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@4 ~@5 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@4]/3",
W: "f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5", X: "f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4",
Y: "c#2@4 ~@5 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@4", Z: "~ c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@3", AA: "~ f#2@3 ~@28",
AB: "[~@2 f#2@3 ~@5 f#2@3 ~@5 f#2@2 ~@6 g#2@4 d#2@4 c#2@4 ~@4 c#2@3 ~@4 c#2@3 ~@6 c#2@3 ~@3]/2",
AC: "~@2 c#2@4 ~@4 c#2@3 ~@4 c#2@3 ~@5 e2@4 g#2@3", AD: "~ f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@3",
AE: "~ c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@4", AF: "~ c#2@4 ~@20 e2@4 g#2@3",
AG: "~ f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@4", AH: "~@2 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@3",
AI: "[~@2 f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@4 c#2@4 ~@3 c#2@2 ~@6 c#2@3 ~@5 c#2@3 ~@4]/2",
AJ: "~@25 e2@4 g#2@3", AK: "~ f#2@3 ~@5 f#2@3 ~@4 f#2@2 ~@6 f#2@3 ~@5",
AL: "f#2@3 ~@5 f#2@3 ~@5 f#2@2 ~@6 g#2@4 d#2@4", AM: "c#2@4 ~@4 c#2@2 ~@6 c#2@3 ~@5 c#2@3 ~@5",
AN: "c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@3 ~", AO: "c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 c#2@3 ~@5",
AP: "c#2@4 ~@4 c#2@3 ~@5 c#2@3 ~@5 e2@4 g#2@4", AQ: "f#2@3 ~@21 f#2@3 ~@5",
AR: "f#2@3 ~@5 f#2@3 ~@5 f#2@3 ~@5 g#2@4 d#2@3 ~", AS: "f#2@3 ~@5 f#2@3 ~@21", AT: "f#2@3 ~@5 f#2@3 ~@13 g#2@4 d#2@4",
AU: "c#2@4 ~@4 c#2@3 ~@21", AV: "c#2@4 ~@12 c#2@3 ~@5 e2@4 g#2@4", AW: "f#2@3 ~@29",
})).s("gm_synth_bass_2").gain(0.35)
// other · alto sax
const alto_sax = note(`<
~@22 A B C D E F G ~ H@2 I J@2 ~ K@3 ~@3 L M@2 N@2 ~@3 O P Q R@2 ~@11 S@5 T U@3 ~@5 V W ~@2 X Y ~ Z AA ~@6
>`.pickRestart({
A: "~@3 e4 ~@2 e4@3 ~ e4@3 ~ d#4@3 ~ c#4 ~ c#4@2 ~@2 b3@3 ~ c#4@4",
B: "~@6 c#4 ~ d#4 ~ e4@2 ~@2 c#4@6 c#4 ~@3 b3@2 ~@2 c#4@4",
C: "~@6 c#4@3 ~ d#4@3 ~ d#4@2 ~@2 c#4 ~ c#4@3 ~ c#4 ~@3 c#4@3 ~",
D: "~@6 c#4@4 d#4@3 ~ c#4@5 ~ c#4@2 ~@2 b3@2 ~@2 b3@4", E: "~@2 a3@7 ~@23",
F: "~@4 e4 ~ e4 ~ e4 ~ e4 ~@3 d#4@4 c#4@2 c#4@2 ~@2 b3@2 ~@2 c#4@4",
G: "~@4 c#4 ~ c#4 ~ c#4 ~ d#4@3 ~ d#4@5 ~ c#4@3 ~ b3@2 ~@2 c#4@4",
H: "[~@4 e4 ~ e4 ~ e4 ~ e4@2 ~@2 e4@5 ~ d#4@2 ~@2 e4@2 ~@2 c#4@7 ~@3 e4 ~ e4 ~ e4@2 ~@2 d#4@5 ~ c#4@2 ~@2 b3@3 ~ c#4@4]/2",
I: "b3@2 ~@4 b3@2 c#4@2 d#4@3 ~ c#4@3 ~ c#4 ~ c#4@2 ~@2 b3@2 ~@2 c#4@3 ~",
J: "[~@6 c#4@2 d#4 ~ d#4@3 ~ d#4@3 ~ c#4 ~ c#4@2 ~@2 b3@2 ~@2 c#4@8 ~@28]/2",
K: "[~@2 g#4@4 f#4@2 e4@2 c#4@2 b3 ~ e4@8 ~@3 d#4 ~ d#4@2 e4@2 c#4@2 b3@2 g#3@2 f#3@2 g#3@2 b3@6 ~@8 c#4@4 d#4@3 ~ b3@2 a3@2 g#3@2 f#3@2 g#3@2 f#3@8 ~@15]/3",
L: "~@7 f#4@3 ~ f#4@3 ~ f#4@3 ~ e4@2 ~ c#4@2 ~ f#4@2 ~@2 f#4@3",
M: "[~@3 f#4@3 ~ f#4@3 ~ g#4@3 ~ a4@2 ~@2 g#4 ~ f#4@2 ~@2 e4@6 b3@2 a3 ~@5 b3 ~@3 d#4@3 ~ d#4@3 ~ c#4 ~ c#4@2 ~@2 b3@2 ~@2 c#4@3]/2",
N: "[~@5 b3 ~@2 b3 c#4 ~ d#4@2 c#4 ~@2 d#4@2 c#4@2 ~@2 c#4@3 ~ b3@3 ~ b3@13 ~@21]/2",
O: "~@9 f#4@2 f#4 ~ e4@2 ~@2 f#4@4 e4@2 f#4@2 ~@3 b4 ~@3",
P: "~@3 f#4@2 ~@5 e4@2 ~@2 e4@3 ~ f#4@3 e4 ~@2 e4@3 ~ g#4@2 ~@2, ~ g#4 ~@14",
Q: "g#4@6 ~@3 b4@3 ~ a4@3 ~ g#4@2 ~@2 e4@2 ~ d#4@2 ~@2 e4@2 ~@2",
R: "[f#4@7 ~@2 e4@2 ~@2 e4 ~@3 f#4@5 ~ e4@3 ~ b4@2 ~@2 a4@4 g#4@8 ~@21]/2",
S: "[~@9 e4@2 ~@2 e4@3 ~ d#4@3 ~ c#4 ~ c#4 ~@3 b3 ~@3 c#4@3 ~@7 e4@3 ~ e4@3 ~ d#4@3 ~ c#4 ~ c#4@2 ~@2 b3@2 ~@2 c#4@3 ~@5 c#4 ~ b3@2 ~@2 d#4@2 c#4 ~ d#4@3 ~ c#4 ~ c#4@2 ~@2 b3@2 ~@2 c#4@4 ~@4 b3 ~ c#4@3 ~ d#4@3 ~ d#4@3 ~ c#4 ~ c#4 ~@3 b3 ~@3 c#4@5 ~@4 e4@2 ~@2 e4@3 ~ d#4@3 ~ c#4 ~@5 b3 ~@3 c#4@2]/5",
T: "~@8 e4@3 ~ e4@2 ~@2 d#4@3 ~ c#4 ~ c#4 ~@3 b3@2 ~@2 c#4@2",
U: "[~@8 b3@2 c#4 ~ d#4@2 c#4 ~ d#4@3 ~ c#4 ~ c#4@2 ~@2 b3@2 ~@2 c#4@4 ~@6 c#4@3 ~ d#4@3 ~ d#4@3 ~ c#4 ~ c#4 ~@3 b3 ~@3 a3@15 ~@19]/3",
V: "f#4@4 g#4@3 ~ b4@6 ~@18", W: "~@12 b4@3 ~ b4 ~ g#4@5 ~ f#4@4 e4@2 ~@2",
X: "g#4@3 ~ b4@2 ~@4 g#4@2 ~@3 g#4@9 f#4@4 ~@4", Y: "g#4@3 ~ g#4@3 ~ b4@2 ~@2 g#4@3 ~ e5@4 d#5@9 ~@3",
Z: "~@12 e4@2 ~@2 c#4@11 ~@5", AA: "~@12 e4@2 ~@2 a4@3 ~ g#4@10 ~@2",
})).s("gm_alto_sax").gain(0.41).pan(0.3)
// other · alto sax · soft notes
const alto_sax_soft = note("<~@27 A ~@4 B ~@11 C ~@6 D ~ E ~@14 F ~ G ~ H I ~@10 J ~@8 K L>".pickRestart({
A: "~@12 e4 ~@19", B: "~ g#3 ~@14", C: "~@2 g#3 ~@6 c#4 ~@22", D: "~@5 e4@3 ~@24", E: "~@15 e4 ~@16",
F: "~@11 c#4 ~@20", G: "~@22 c#4 ~@9", H: "~@6 c#4 ~@25", I: "~@3 b3 ~@12", J: "~@3 g#4 ~@12",
K: "~@2 g#3 ~ c#4 ~ g#3 ~", L: "a3@7 ~",
})).s("gm_alto_sax").gain(0.26).pan(0.3)
// other · soprano sax
const soprano_sax = note(`<
~@18 A@2 B C@2 ~@3 D ~@2 E F ~@7 G@2 H@2 ~@4 I J@4 ~@3 K@2 L@3 ~@10 M ~@4 N O P Q R S T U V@2 ~ W X Y Z AA AB AC AD
~@2
>`.pickRestart({
A: "[~@5 e4@2 ~@2 e4@2 ~@2 d#4@4 c#4 ~ c#4@2 ~@2 c#4@3 ~ c#4@8 c#4@2 e4@2 ~@2 e4@2 ~@2 d#4@5 ~ c#4@2 ~@2 b3@2 ~@2 c#4@5]/2",
B: "~@5 b3@2 c#4@2 d#4@2 ~@2 c#4@2 c#4@2 ~@2 c#4@2 ~@2 b3@2 ~@2 c#4@5",
C: "[~@5 b3@2 c#4 ~ d#4@2 ~@2 d#4@4 c#4 ~ c#4@2 ~@2 b3@2 ~@2 b3@16 ~@21]/2",
D: "~@6 e4@3 e4@3 ~@2 d#4@4 c#4 ~ c#4@2 ~@3 c#4@2 ~ c#4@4",
E: "~@6 d#4@3 ~ d#4@2 ~@2 d#4@2 d#4@2 ~@2 c#4@3 ~ b3@3 ~ c#4@2 ~@2", F: "b3@2 ~@2 e2 ~ e2 ~ e2 ~@23, ~@2 c#4@7 ~@23",
G: "[~@27 g#4@3 ~ b4@4 a4@2 f#4@10 g#4@8 ~@9]/2",
H: "[~@3 g#4@2 ~@2 f#4@5 ~@3 d#4@5 ~@2 c#4 c#4@7 ~ g#3@6 ~@2 b3@2 g#3@2 b3@2 c#4 ~ c#4@6 ~@11, ~@23 d#4 ~@40]/2",
I: "~@6 e4 ~ e4@3 ~ e4@3 ~ f#4@3 ~ e4 ~ d#4@3 ~ e4@3 ~ c#4@2",
J: "[~@6 e4 ~ e4@3 ~ e4@3 ~ d#4@6 c#4@2 ~@2 b3@3 ~ c#4@7 ~@4 c#4@3 ~ d#4@2 d#4 ~ d#4@5 ~ c#4@3 ~ b3@3 ~ c#4@5 ~@3 e4 ~ b4@4 a4@2 ~@2 g#4@4 f#4 ~ f#4@2 ~@2 e4@2 ~@2 c#4@3 ~@3 f#4@2 e4@2 f#4@2 e4@2 e4@2 ~@2 a4@6 g#4@2 ~@7]/4",
K: "[~@9 e4@3 ~ b4@3 ~ a4@3 ~ g#4 ~ f#4@2 ~@2 e4@2 ~@2 c#4@7 ~@3 f#4@3 ~ g#4@3 ~ g#4@4 f#4 ~ f#4@3 ~ e4@4 ~]/2",
L: "[~ f#4@5 ~@3 e4@2 f#4@2 g#4@2 f#4 ~ g#4@3 ~@3 f#4@2 ~@2 b4@3 ~ b4@9 ~ f#4@2 g#4 ~ g#4@2 f#4 ~ g#4@4 f#4 ~ f#4@2 ~@2 c#5@2 ~@2 b4@10 ~@23]/3",
M: "~ d#4@5 e4@2 ~ c#4@3 ~ f#4@2 ~@2 f#4@7 ~@8, ~@4 d#4 ~@11", N: "~@20 g#4@3 ~ f#4@2 e4@2 c#4@2 b3 ~",
O: "c#4@12 ~@4 f#4@4 f#4@2 ~@2 f#4@3 ~ f#4@3 ~",
P: "g#4@11 ~@5 g#4@2 f#4 ~ g#4@2 ~@2 g#4@3 ~ f#4@3 ~, ~@23 f#4@2 ~@7",
Q: "g#4@4 ~@2 b4@5 ~ a#4@4 ~@2 f#4@4 ~@2 e4@6 ~@2", R: "e4 ~ f#4@9 ~ f#4@3 ~@13 g#4@4",
S: "c#5@3 ~ g#4@2 ~@2 g#4@2 c#5@2 ~@2 b4@2 ~@2 g#4@2 ~@2 f#4@4 ~@6",
T: "~@14 f#4@2 g#4@2 f#4@2 g#4@3 ~ g#4@3 ~ b4@3 ~, ~@23 f#4@2 ~@7", U: "e4@4 c#4@2 b3@7 ~@19",
V: "[e4@3 ~ g#4@3 ~ g#4@2 b4@4 ~@2 e4@2 ~ f#4 g#4@4 c#5@2 ~@2 g#4@2 f#4@8 ~@2 g#4@2 ~@2 g#4 ~ f#4@2 g#4@2 f#4 ~ c#4@2 b3@10, ~@3 f#4@2 ~@2 f#4@2 ~@18 b4@2 ~@14 f#4@2 ~@19]/2",
W: "~@20 g#4@3 ~ f#4@3 ~ e4@2 c#4@2",
X: "c#4@4 ~ e4 ~@2 e4@7 ~@2 e4 ~@2 e4@8 f#4@2 ~@2, ~@4 f#4@2 ~ c#4@2 ~@7 f#4@2 ~ c#4@2 ~@11", Y: "d#4@10 ~@18 e4@3 ~",
Z: "f#4@10 ~@18 d#4@3 ~", AA: "b4@8 e4@4 f#4@2 g#4@2 b4@2 ~@2 a4@7 ~ g#4@2 ~@2", AB: "f#4@17 ~@15",
AC: "f#4@9 ~@19 g#4@2 ~@2", AD: "g#4@3 ~ f#4@2 e4@3 ~@23",
})).s("gm_soprano_sax").gain(0.39).pan(0.6)
// other · piano
const piano = note(`<
~@10 A ~ B ~ C ~ D ~ E ~ F ~ G ~ H ~ I ~ J ~ K ~ L ~ M ~ N ~ O@2 P ~ O@2 Q ~ R@2 S T U V W X U Y Z X AA@2 AB X AC V Z
X AA@2 S T R@2 AD AE R@2 AD AE R@2 AD AE R@2 AD AE R@2 AD AE R@2 AD AE ~
>`.pickRestart({
A: "~@8 f#6 ~@3 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@2, ~@11 g#6@2 ~@6 g#6@2 ~@6 g#6@2 ~@3",
B: "~@8 e6@2 ~ f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3",
C: "~@9 f#6 ~ g#6@2 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@2 f#6@2 ~@2 a6@2 ~, ~@10 g#6 ~@3 g#6 ~",
D: "~@9 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@2",
E: "~@9 f#6 ~@3 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@2 f#6@2 ~@2 a6@2 ~, ~@6 g#6 ~@3 g#6 ~@3 g#6 ~",
F: "~@9 e6@2 ~ f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@2",
G: "~@10 f#6 ~ g#6@2 a6@2 ~@2 f#6@2 g#6@2 a6@2 ~@2 f#6@2 g#6@2 a6@2",
H: "~@10 e6@2 f#6 ~ g#6 ~@3 e6 ~ f#6 ~ g#6 ~@3 e6 ~ f#6 ~ g#6 ~",
I: "~@10 f#6 ~ g#6@2 a6@2 ~@2 f#6@2 g#6@2 a6@2 ~@2 f#6@2 g#6 ~ a6@2",
J: "~@10 e6@2 ~ f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~",
K: "~@10 f#6 ~@3 a6@2 ~@2 f#6@2 g#6@2 a6@2 ~@2 f#6@2 g#6@2 a6@2, ~@13 g#6@2 ~@17",
L: "~@10 e6 ~ f#6 ~ g#6 ~@3 e6 ~ f#6 ~ g#6 ~@3 e6 ~ f#6 ~ g#6 ~",
M: "~@10 f#6 ~ g#6@2 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@2 f#6@2 ~@2 a6@2, ~@21 g#6@2 ~@6 g#6@2 ~",
N: "~@11 e6@2 f#6 g#6 ~@4 e6 ~ f#6 ~ g#6 ~@3 e6 ~ f#6 ~ g#6",
O: "[~@11 f#6 ~@3 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@31, ~@7 g#6 ~@3 g#6 ~@3 g#6 ~@16]/2",
P: "~@11 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6",
Q: "~@11 e6@2 ~ f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6",
R: "[~@12 f#6 ~@3 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@30, ~@15 g#6@2 ~@6 g#6@2 ~@6 g#6@2 ~@31]/2",
S: "~@13 e6@2 f#6 ~ g#6 ~@3 e6 ~ f#6 ~ g#6 ~@3 e6 ~ f#6", T: "~ g#6 ~@30",
U: "~@13 f#6 ~@3 a6@2 ~@2 f#6@2 ~@2 a6@2 ~@2 f#6@2 ~, ~@8 g#6 ~@3 g#6 ~@3", V: "g#6 a6 ~@14",
W: "~@14 e6@2 f#6 g#6 ~@4 e6 ~ f#6 g#6 ~@3 e6 ~@2", X: "f#6 g#6 ~@30", Y: "~ a6@2 ~@29, g#6 ~@15",
Z: "~@13 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2",
AA: "[~@13 f#6 ~ g#6@2 a6@2 ~@2 f#6@2 g#6@2 a6@2 ~@2 f#6@2 g#6@2 a6@2 ~@29]/2",
AB: "~@13 e6@2 ~ f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2", AC: "~@14 f#6 ~ g#6@2 a6@2 ~@2 f#6@2 g#6@2 a6@2 ~@2 f#6@2",
AD: "~@12 e6@2 ~ f#6 g#6 ~@3 e6 ~@2 f#6 g#6 ~@3 e6 ~@2 f#6", AE: "g#6 ~@31",
})).s("gm_piano").gain(0.11)
// other · clavinet
const clavinet = note(`<
~@10 A@2 B C D E D E D E D E F G H G H G H G@3 H G H G I J K J K J ~ J K L M N O P Q R S P@3 Q P Q P Q P S R P@2 Q P Q
P N@2 M N M N M N M N M N M N M N M N M N ~@5
>`.pickRestart({
A: "~@2 c#3 ~ b2 ~ c#3 ~@9", B: "~@4 c#3@2 ~@2 b2@2 ~@2 c#3@3 ~@17", C: "~@4 c#3@2 ~@3 b2@2 ~@2 c#3@2 ~@17",
D: "~@5 c#3@2 ~@2 b2@2 ~@2 c#3@3 ~@16", E: "~@5 c#3@2 ~@2 b2@2 ~@2 c#3@2 ~@17",
F: "~@5 c#3@2 ~@3 b2@2 ~@2 c#3@3 ~@15", G: "~@3 c#3 ~ b2 ~ c#3 ~@8", H: "~@6 c#3@2 ~@2 b2@2 ~@2 c#3@3 ~@15",
I: "~@6 c#3@2 ~@3 b2@2 ~@2 c#3@3 ~@14", J: "~@7 c#3@2 ~@2 b2@2 ~@2 c#3@2 ~@15",
K: "~@7 c#3@2 ~@2 b2@2 ~@2 c#3@3 ~@14", L: "~@7 c#3@2 ~@3 b2@2 ~@2 c#3@2 ~@14",
M: "~@8 c#3@2 ~@2 b2@2 ~@2 c#3@3 ~@13", N: "~@4 c#3 ~ b2 ~ c#3 ~@7", O: "~@8 c#3@2 ~@3 b2@2 ~@2 c#3@3 ~@12",
P: "~@9 c#3@2 ~@2 b2@2 ~@2 c#3@2 ~@13", Q: "~@9 c#3@2 ~@2 b2@2 ~@2 c#3@3 ~@12",
R: "~@9 c#3@2 ~@3 b2@2 ~@2 c#3@2 ~@12", S: "~@9 c#3@2 ~@3 b2@2 ~@2 c#3@3 ~@11",
})).s("gm_clavinet").gain(0.17).pan(0.1)
// other · electric guitar clean
const electric_guitar_clean = note(`<
~@6 A B C D A B C E F@2 G@2 F@2 G@2 H@2 I@2 H@2 J@2 H@2 K@2 H@2 L@2 M@2 L@2 M@2 N@2 ~ O ~ P ~ Q ~ R ~ S ~ P ~ S ~ P ~
Q ~ T ~@5 O ~ U ~ O ~ V ~ O ~ W ~ O ~ W ~ O ~ U ~ O ~@3
>`.pickRestart({
A: "~@7 f#2", B: "~@2 f#2@2 ~@4 f#2@2 ~@6 f#2 ~@15", C: "~@7 c#2", D: "~@2 c#2@3 ~@11 c#2 ~@5 c#2 ~@9",
E: "~@2 c#2@3 ~@12 c#2 ~@5 c#2 ~@8", F: "[~@29 f#2@6 f#2@2 ~@4 f#2@2 ~@6 f#2 ~@14]/2",
G: "[~@29 c#2@6 c#2@3 ~@11 c#2 ~@5 c#2 ~@8]/2", H: "[~@30 f#2@6 f#2@2 ~@4 f#2@2 ~@6 f#2 ~@13]/2",
I: "[~@30 c#2@5 ~ c#2@3 ~@11 c#2 ~@5 c#2 ~@7]/2", J: "[~@30 c#2@5 ~ c#2@2 ~@12 c#2 ~@5 c#2 ~@7]/2",
K: "[~@30 c#2@6 c#2@3 ~@11 c#2 ~@5 c#2 ~@7]/2", L: "[~@31 c#2@6 c#2@3 ~@11 c#2 ~@5 c#2 ~@6]/2",
M: "[~@31 f#2@6 f#2@2 ~@4 f#2@2 ~@6 f#2 ~@12]/2", N: "[~@31 c#2@6 c#2@3 ~@12 c#2 ~@5 c#2 ~@5]/2",
O: "f#2@6 f#2@2 ~@4 f#2@2 ~@6 f#2 ~@11", P: "~ c#2@6 c#2@3 ~@11 c#2 ~@5 c#2 ~@4",
Q: "~@2 f#2@6 f#2@2 ~@4 f#2@2 ~@6 f#2 ~@9", R: "~@2 c#2@6 c#2@2 ~@11 c#2 ~@5 c#2 ~@4",
S: "~ f#2@6 f#2@2 ~@4 f#2@2 ~@6 f#2 ~@10", T: "~ c#2@5 ~ c#2@2 ~@12 c#2 ~@5 c#2 ~@4",
U: "c#2@6 c#2@3 ~@11 c#2 ~@5 c#2 ~@5", V: "c#2@6 c#2@2 ~@12 c#2 ~@5 c#2 ~@5", W: "c#2@5 ~ c#2@3 ~@11 c#2 ~@5 c#2 ~@5",
})).s("gm_electric_guitar_clean").gain(0.27)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@8 A@3 B@7 ~@15 C@6 D@3 ~@15 E F@2 G H I@3 H ~@7 J K@2 L M K@2 L M K@2 L N ~@3 O K@2 L ~@2
>`.pickRestart({
A: "[~@7 [g#4,g#5]@2 [c#5,c#6] [d#5,d#6] [e5,e6] [d#5,d#6] [c#5,c#6] [g#4,g#5] [a4,a5]@9]/3", // G# C# D# E D# C# G# A
B: "[~@4 [b4,b5]@4 [c#5,c#6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [b4,b5]@4 [f#4,f#5]@4 [g#4,g#5]@32 [g#4,g#5]@8 [c#5,c#6]@4 [d#5,d#6]@4 [e5,e6]@4 ~ [d#5,d#6]@4 [c#5,c#6]@4 [g#4,g#5]@4 [a4,a5]@40 [b4,b5]@4 [c#5,c#6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [b4,b5]@4 [f#4,f#5]@4 [g#4,g#5]@32 [g#4,g#5]@8 [c#5,c#6]@4 [d#5,d#6]@4 [e5,e6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [g#4,g#5]@4 ~@3]/7", // B C# D# C# B F# G# C# …
C: "[~@6 [c#5,c#6]@4 [d#5,d#6]@4 [e5,e6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [g#4,g#5]@4 [a4,a5]@40 [b4,b5]@4 [c#5,c#6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [b4,b5]@4 [f#4,f#5]@4 [g#4,g#5]@32 ~ [g#4,g#5]@8 [c#5,c#6]@4 [d#5,d#6]@4 [e5,e6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [g#4,g#5]@4 [a4,a5]@33]/6", // C# D# E D# C# G# A B …
D: "[~@7 [b4,b5]@4 [c#5,c#6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [b4,b5]@4 [f#4,f#5]@4 [g#4,g#5]@32 [g#4,g#5]@8 [c#5,c#6]@4 [d#5,d#6]@4 [e5,e6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [g#4,g#5]@4 ~]/3", // B C# D# C# B F# G# C# …
E: "~@9 [c#5,c#6]@4 [d#5,d#6]@4 [e5,e6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [g#4,g#5]@3", // C# D# E D# C# G#
F: "[~ [a4,a5]@39 ~ [b4,b5]@4 [c#5,c#6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [b4,b5]@4 [f#4,f#5]@3]/2", G: "~ [g#4,g#5]@31",
H: "~ [g#4,g#5]@8 [c#5,c#6]@4 [d#5,d#6]@4 [e5,e6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [g#4,g#5]@3", // G# C# D# E D# C# G#
I: "[~@2 [a4,a5]@39 [b4,b5]@4 [c#5,c#6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [b4,b5]@4 ~ [f#4,f#5]@3 [g#4,g#5]@31]/3", // A B C# D# C# B F# G#
J: "[c#4,c#5]@2 [b3,b4]@2 [c#4,c#5] ~ [d#4,d#5] ~ [e4,e5]@2 [d#4,d#5]@2 [e4,e5]@2 [f#4,f#5] ~ [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5]@2 [f#4,f#5] ~ [g#4,g#5]@4 [b4,b5]@3 ~", // C# B C# D# E D# E F# …
K: "[[a4,a5]@39 ~ [b4,b5]@4 [c#5,c#6]@4 [d#5,d#6]@4 [c#5,c#6]@4 [b4,b5]@4 [f#4,f#5]@4]/2", L: "[g#4,g#5]",
M: "[g#4,g#5]@2 [c#5,c#6] [d#5,d#6] [e5,e6] [d#5,d#6] [c#5,c#6] [g#4,g#5]", // G# C# D# E D# C# G#
N: "[c#4,c#5]@2 [b3,b4]@2 [c#4,c#5] ~ [d#4,d#5] ~ [e4,e5]@2 [d#4,d#5]@2 [e4,e5] ~ [f#4,f#5] ~ [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5]@2 [f#4,f#5] ~ [g#4,g#5]@4 [b4,b5]@3 ~", // C# B C# D# E D# E F# …
O: "~@2 [c#5,c#6] [d#5,d#6] [e5,e6] [d#5,d#6] [c#5,c#6] [g#4,g#5]", // C# D# E D# C# G#
})).s("gm_string_ensemble_1").gain(0.05)
// other · string ensemble 1
const string_ensemble_1_2 = note("<~@6 A@2 B C ~@56 D@2 E F G@2 H I G@2 H I G@2 H I G@2 H I ~@9>".pickRestart({
A: "f#3 ~@7 g#3 ~@7 a3 ~@7 g#3 ~@7", B: "c#3 ~@7 d#3@2 ~@6 e3@2 ~@6 d#3@2 ~@6", C: "c#3 ~@3 d#3 ~@3 e3 ~@3 d#3 ~@3",
D: "~@5 f#3 ~@7 g#3 ~@7 a3 ~@7 g#3 ~@2", E: "~@5 c#3 ~@7 d#3@2 ~@6 e3@2 ~@6 d#3@2 ~",
F: "~@5 c#3@2 ~@6 d#3@2 ~@6 e3@2 ~@6 d#3@2 ~", G: "~@4 f#3 ~@7 g#3 ~@7 a3 ~@7 g#3 ~@3",
H: "~@4 c#3 ~@7 d#3@2 ~@6 e3@2 ~@6 d#3@2 ~@2", I: "~@2 c#3 ~@3 d#3 ~@3 e3 ~@3 d#3 ~",
})).s("gm_string_ensemble_1").gain(0.17)
// … 174 more lines
More by Brandy
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.