0:00/0:00
// Best Friend — Brandy
// 101 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 "Synth Bass" synth bass 2 (copy of ch 1 "Bass" electric bass finger)
// note: Full arrangement: all 120 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(101/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 · electric bass finger · "Bass"
const bass = note(`<
~ A B C D@2 E F G H I J K L M N O P@2 Q@2 R S@2 T U V W X Y@2 Z AA AB AC AD AE AF AG AH@3 AI AJ AK@2 AL AM@2 AN AO AP
AQ AR AS AT AU AV AW AX@2 R AY AZ AC BA BB BC@2 Y@2 BD BE BF BG BH ~@4 BI BJ BK BL BM@2 BN BO BP BQ@2 BR K BS BT BU AU
BV AW BW@2 BX BY BZ CA U CB CC CD@3 CE CF CG CH CI CJ CK CL@2
>`.pickRestart({
A: "~@7 f#1@4 ~@21", B: "~@4 d1 ~ e1@2 ~@3 f#1@4 ~@17", C: "~@5 e1 ~ f#1@2 ~@7",
D: "[~@12 d1 e1@2 ~@2 f#1@4 ~@10 a1@3 ~@2 g#1@6 ~@2 c#2@5 ~@4 f#1@5 ~@6]/2", E: "~@18 d1 ~ e1@2 ~@3 f#1@4 ~@3",
F: "~@24 e1@2 ~@3 f#1@3", G: "~@26 d1 ~ e1@2 ~@2", H: "f#1@4 ~@9 a1@3 ~@2 g#1@5 ~@4 c#2@5", I: "~@3 f#1@4 ~@25",
J: "~ d1 e1@2 ~@3 f#1@4 ~@21", K: "~@6 e1@2 ~@3 f#1@5 ~@16", L: "~@8 d1 e1@2 ~@3 f#1@4 ~@9 a1@3 ~@2",
M: "g#1@5 ~@4 c#2@5 ~@4 f#1@4 ~@10", N: "~@15 d1@2 e1@2 ~@2 f#1@4 ~@7", O: "~@21 e1@2 ~@2 f#1@5 ~@2",
P: "[~@22 d1 ~ e1@2 ~@3 f#1@5 ~@8 a1@3 ~ g#1@6 ~@3 c#2@6 ~@3]/2", Q: "[f#1@4 ~@25 d1 ~ e1@2 ~@3 f#1@5 ~@23]/2",
R: "~@3 e1@2 ~@2 f#1@5 ~@20", S: "[~@4 d1 ~ e1@2 ~@3 f#1@5 ~@8 a1@3 ~ g#1@7 ~@2 c#2@6 ~@3 f#1@4 ~@14]/2",
T: "~@11 d1 ~ e1@2 ~@3 f#1@4 ~@10", U: "~@16 e1@3 ~@2 f#1@5 ~@6", V: "~@19 d1 e1@2 ~@3 f#1@5 ~@2",
W: "~@6 a1@3 ~@2 g#1@6 ~@2 c#2@6 ~@3 f#1@4", X: "~@25 d1@2 e1@2 ~@3", Y: "[f#1@5 ~@26 e1@2 ~@2 f#1@5 ~@24]/2",
Z: "~@2 e1@2 ~@3 f#1@5 ~@8 a1@3 ~@2 g#1@6 ~, ~ d1@2 ~@29", AA: "~@4 c2@3 ~@4 f#1@5 ~@16, ~@2 c#2@5 ~@25",
AB: "~@8 d1@2 e1@2 ~@2 f#1@5 ~@13", AC: "~@11 d1 ~ e1@2 ~@3 f#1@5 ~@9", AD: "~@15 d1 ~ e1@2 ~@2 f#1@4 ~@7",
AE: "~@2 a1@3 ~@2 g#1@6 ~@3 c#2@5 ~@4 f#1@4 ~@3", AF: "~@22 d1@2 e1@2 ~@3 f#1@3", AG: "~@14 e1 ~",
AH: "[f#1@5 ~@24 d1@2 e1@2 ~@3 f#1@4 ~@9 a1@3 ~ g#1@6 ~@3 c#2@6 ~@3 f#1@4 ~@21]/3",
AI: "~@4 d1@2 e1@2 ~@2 f#1@5 ~@17", AJ: "~@10 e1@2 ~@2 f#1@5 ~@13",
AK: "[~@12 d1 e1@2 ~@3 f#1@5 ~@8 a1@3 ~@2 g#1@6 ~@3 c#2@6 ~@2 f#1@5 ~@6]/2", AL: "~@19 d1 e1@2 ~@3 f#1@6 ~",
AM: "[~@24 e1@2 ~@3 f#1@5 ~@23 d1@2 e1@2 ~@3]/2", AN: "f#1@4 ~@9 a1@3 ~@2 g#1@6 ~@3 c#2@5", AO: "~ f#1 ~@6",
AP: "~ d1 e1@2 ~@3 f#1@5 ~@20", AQ: "~@4 d1 ~ e1@2 ~@3 f#1@5 ~@16", AR: "~@9 e1@2 ~@3 f#1@4 ~@9 a1@3 ~@2",
AS: "g#1@5 ~@4 c#2@6 ~@3 f#1@5 ~@9", AT: "~@15 d1 e1@2 ~@3 f#1@5 ~@6", AU: "~@20 e1@2 ~@3 f#1@5 ~@2",
AV: "~@22 d1 ~ e1 ~@3 f#1@4", AW: "~@10 a1@3 ~ g#1@6 ~@3 c#2@6 ~@3", AX: "[f#1@3 ~@26 d1@2 e1@2 ~@2 f#1@5 ~@24]/2",
AY: "~@4 d1 ~ e1@2 ~@3 f#1@5 ~@8 a1@3 ~ g#1@4", AZ: "~@5 c#2@6 ~@3 f#1@5 ~@13", BA: "~@17 e1@2 ~@2 f#1@5 ~@6",
BB: "~@18 d1 ~ e1@2 ~@3 f#1@6 ~", BC: "[~@6 a1@3 ~ g#1@6 ~@4 c#2@6 ~@3 f#1@5 ~@23 d1@2 e1@2 ~@3]/2",
BD: "~ d1 e1@2 ~@3 f#1@5 ~@8 a1@3 ~@2 g#1@6 ~", BE: "~@2 c#2@6 ~@2 f#1@5 ~@17", BF: "~@4 d1 e1 ~ f#1@2 ~@7",
BG: "~@13 e1@2 ~@3 f#1@3 ~@11", BH: "~@15 d1 ~ e1 ~@3 f#1@3 ~@8", BI: "~@16 e1@3 ~@2 f#1@2 ~@3 a1 ~@3 g#1 ~",
BJ: "~@3 [c#2,d2] ~@3 f#1@2 ~@7 f#1@2 ~@7 f#1@3 ~@4", BK: "~@2 f#1@3 ~ e1@2 ~@2 c#1@3 ~@6 c#1@4 ~@5 c#1@4",
BL: "~@5 c#1@2 ~@2 d1@2 ~@8 c#2 ~@3 c#2@3 ~@6",
BM: "[c#2@4 ~@5 c#2@3 ~@6 c#2@2 ~@2 d2@2 ~@3 d2@2 ~@2 c#2@2 ~@2 b1@2 ~@3 a1@2 ~@2 g#1@3 ~@6 f#1@3 ~@6 f#1@2]/2",
BN: "~@7 f#1@4 ~@5 f#1@2 ~@2 e1@2 ~@3 c#1@3 ~@4", BO: "~@2 c#1@4 ~@4 c#1@5 ~@4 c#1@3 ~@2 d1 ~@3 c#2@4",
BP: "~@5 c#2@5 ~@4 c#2@5 ~@4 c#2@5 ~@4",
BQ: "[c#2@2 ~@7 c#2@5 ~@3 c#2@2 ~ d2@2 c#2 ~@3 [c2,c#2]@2 ~@3 b1@2 ~@2 g#1@3 ~ f#1@2 ~@3 f#1@3 ~@17]/2", // C#maj7
BR: "d1 ~ e1@2 ~@3 f#1@4 ~@21", BS: "~@8 d1 ~ e1@2 ~@2 f#1@5 ~@8 a1@3 ~@2", BT: "g#1@6 ~@3 c#2@6 ~@3 f#1@5 ~@9",
BU: "~@15 d1@2 e1@2 ~@2 f#1@5 ~@6", BV: "~@22 d1 ~ e1@2 ~@2 f#1@4", BW: "[f#1@5 ~@24 d1@2 e1@2 ~@2 f#1@6 ~@23]/2",
BX: "~@2 e1@2 ~@3 f#1@5 ~@20", BY: "~@3 d1 ~ e1@2 ~@3 f#1@5 ~@8 a1@3 ~@2 g#1@4", BZ: "~@5 c#2@5 ~@5 f#1@4 ~@13",
CA: "~@11 d1@2 e1 ~@3 f#1@5 ~@10", CB: "~@17 d1@2 e1@2 ~@3 f#1@5 ~@3", CC: "~@5 a1@3 ~@2 g#1@6 ~@3 c#2@6 ~@3 f#1@4",
CD: "[~@25 d1@2 e1@2 ~@2 f#1@4 ~@28 e1@3 ~ f#1@4 ~@25, ~@25 c1 ~@70]/3",
CE: "d1@2 e1@2 ~@2 f#1@5 ~@9 a1@3 ~@2 g#1@6 ~", CF: "~ c#2@6 ~@3 f#1@5 ~@17", CG: "~@7 d1 ~ e1@2 ~@2 f#1@5 ~@14",
CH: "~@11 d1 ~@5 f#1@4 ~@11", CI: "~@14 d1@2 e1@2 ~@3 f#1@4 ~@7", CJ: "~@2 a1@3 ~@2 g#1@5 ~@3 c#2@6 ~@3 f#1@5 ~@3",
CK: "~@22 d1 e1@2 ~@3 f#1@4", CL: "[~@27 e1@2 ~@2 f#1@4 ~@29]/2",
})).s("gm_electric_bass_finger").gain(0.8)
// other · synth strings 1 · "SynthStrings"
const synth_strings_1 = note(`<
~@5 A@6 ~@16 B@3 C@2 D@5 ~@17 E@5 F@4 G@7 C@2 H@7 I@2 ~@9 J@4 K@5 L@4 M@7 N@2 O@8
>`.pickRestart({
A: "[~@21 c#6@62 ~ b5@8 c#6@53 e6@10 d6@8 ~@29]/6", B: "[~@14 c#6@31 b5@3]/3", C: "[~@3 c#6@53 e6@8]/2",
D: "[~ d6@9 c#6@62 ~ b5@8 c#6@53 ~ e6@9 d6@7 ~@9]/5", E: "[~@18 c#6@62 b5@8 c#6@54 e6@9 d6@9]/5",
F: "[c#6@62 b5@9 c#6@53 e6@4]/4", G: "[~@5 d6@9 c#6@62 b5@8 c#6@53 ~ e6@9 d6@9 c#6@62 b5@6]/7",
H: "[~@2 d6@8 c#6@62 ~ b5@8 c#6@53 ~ e6@9 c#6@9 b5@5 c#6@57 b5@9]/7", I: "[c#6@53 e6@9 d6@2]/2",
J: "[~@3 c#6@67 b5@4 ~ c#6@53]/4", K: "[e6@9 d6@8 c#6@63 b5@9 c#6@53 e6@8 ~ d6@9]/5",
L: "[c#6@62 b5@8 ~ c#6@53 e6@4]/4", M: "[~@5 d6@8 c#6@62 ~ b5@8 c#6@53 e6@9 ~ d6@8 c#6@63 b5@6]/7",
N: "[~@2 c#6@53 ~ e6@8]/2", O: "[~ d6@9 c#6@68 b5@3 c#6@53 e6@9 d6@8 ~ c#6@63 b5@8 c#6@10 ~@23]/8",
})).s("gm_synth_strings_1").gain(0.64)
// other · pan flute
const pan_flute = note("<~@5 A B ~ C D ~@60 E F G H I J K L M N@2 ~@39>".pickRestart({
A: "~@28 c#6 c6 ~@2", B: "~ a5 ~@4 b5@7 ~@19", C: "a5@4 ~ f#5@4 e5@19 ~@3 c#5, ~@15 b4",
D: "~@2 e5 d5 ~@4 c#5 ~@2 a5@6 ~ f#5@4 e5@4 c#5 ~@3 c#5@2, ~@7 b4@2 ~@20 b4@2 ~",
E: "~@3 b5@6 ~ b5 ~@16 b5 ~@4, ~@3 a#5 ~@28", F: "c#6 ~@4 b5 ~@3 a5 ~@19 e5@3",
G: "~ a5@3 ~@6 g#5 a5@4 ~@2 f#5@2 ~@3 c#5 ~@9", H: "~@19 a5@2 ~@2 b5@2 ~@2 c#6@2 ~@3",
I: "a5@7 ~@2 b5@3 ~@5 g#5 a5@4 e5@2 ~ f#5 ~@3 c#5 ~@2", J: "~@25 a5@2 ~@3 b5 ~", K: "~@2 c#6 ~@4 a5@7 ~@2 b5@2 ~@14",
L: "~@6 a6@2 ~@2 g#6@2 ~@2 e6@2 ~ c#6@2 ~@13", M: "~@12 a6@2 g#6@2 ~@2 e6 ~@2 c#6@2 ~@9",
N: "[~@16 a6@2 g#6 ~@3 e6 ~@2 c#6 ~@5 g#6@3 ~@30]/2",
})).s("gm_pan_flute").gain(0.72)
// other · pan flute · soft notes
const pan_flute_soft = note("<~@6 A B ~@62 C ~ D ~ E ~@45>".pickRestart({
A: "~@14 a5@2 b5@2 c#6 ~@4 a5@2 b5@2 ~ c#6 ~@3", B: "a5 ~@2 b5 ~@28", C: "~@25 a5@2 ~@5",
D: "~@15 e5@2 ~@2 e5@3 ~@10", E: "~@13 e5 ~@2",
})).s("gm_pan_flute").gain(0.4)
// chords · piano
const piano = note(`<
~@5 A B C D E F G H I J@3 K L M N@2 O@2 P Q R S T U V W@2 X Y Z@3 AA AB AC@2 AD AE AF AG AH@2 AI AJ AK AL@2 AM AN AO
AP AQ AR AS AT AU AV@2 AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL@2 BM BN BO@3 BP BQ BR BS BT BU BV BW@2 BX BY BZ
CA CB@2 CC CD@2 CE CF CG CH CI@3 CJ CK CL CM CN CO CP CQ ~
>`.pickRestart({
A: "~@11 e3 ~@4, ~@21 [g#3,c#4]@2 ~@9", B: "~@19 [e3,g#3,c#4] ~@5 [e3,g#3] ~@6, ~@25 c#4@2 ~@5",
C: "~@14 [e3,g#3,c#4] ~", D: "~@26 [e3,g#3,c#4] ~@5",
E: "[e3,g#3] ~@17 [f#3,b3,d4]@7 ~@2 [f#3,b3]@4 ~, c#4 ~@12 d4@2 ~", // E Bm B5
F: "~@4 [e3,g#3,c#4]@3 ~@5 b4@3 ~@2 b4@3 ~ c#5@4 ~@7, ~@11 a4@2 ~@19", // C#m
G: "~ [e3,g#3,c#4] ~@5 [e3,g#3,c#4]@2 ~@6 a4@5 ~@9 f#4@3", H: "~@2 f#4@5 ~@4 [e3,g#3,c#4]@2 ~@6 a4@4 ~@9",
I: "~ f#4@2 ~@5 [e3,g#3,c#4] ~@5 [e3,g#3,c#4]@2 ~@12 b4@3 ~, ~@5 f#4@6 ~@3 f#4@5 ~@13", // C#m
J: "[[f#3,b3,d4,c#5]@8 ~ [f#3,b3,d4]@3 b4@5 ~ [e3,g#3,c#4]@2 ~@7 b4@3 ~ b4@3 ~@2 c#5@4 ~@7 [e3,g#3] ~@5 e3 g#3@2 ~@6 a4@5 b4@4 ~@5 f#4@2 ~@2 f#4@6 ~@3 [e3,g#3,c#4]@2 ~@5, ~@9 a4@2 ~@36 c#4@2 ~@4 c#4@2 ~@41]/3", // Bm C#m E C#m
K: "~@2 a4@3 ~@2 b4@4 a4@4 f#4@2 ~@6 [e3,g#3] ~@5 [g#3,c#4]@2 ~, ~@10 f#4@3 ~ f#4@2, ~@23 c#4@2 ~@4 e3 ~@2", // E C#5
L: "~ g#4@4 ~ a4@3 ~@5 [f#3,b3,d4]@8 ~ [f#3,b3,d4]@3 b4@4 ~@2, ~@10 c#5@12 ~ a4@2 ~@7", // Bm
M: "[e3,g#3,c#4]@2 ~@5 f#4@2 ~@5 c#5@6 ~ a4@2 ~@7 [e3,g#3] ~, a4@6 ~@21 e5@5, ~@15 c#4", // C#m E
N: "[~@2 c#5@2 [g#3,c#4]@2 ~@2 g#5@11 ~@2 g#5@2 ~@3 g#5@4 f#5@4 ~@5 [e3,g#3,c#4]@2 ~@3 f#5@2 ~@11 e5@3 ~ e5@3, ~@4 e3 ~@30 e5@8 ~@21]/2", // C#5 C#m
O: "[~@2 d5@2 ~ [e3,g#3] c#5@2 ~@3 [g#3,c#4]@2 ~@2 c#5@3 ~@2 b4@5 ~@3 b4@2 ~ c#5@4 ~@2 [f#3,b3,d4,a4]@4 ~@5 [e3,g#3,c#4,a4]@2 ~@5 f#4 ~@6 c#5 ~ a4 ~, ~@4 c#4@2 ~@5 e3 ~@15 a4@2 ~@35, ~@28 [f#3,b3,d4]@7 ~@29]/2", // E C#5 Bm7 Amaj7 Bm
P: "~@5 e5 ~ c#5 ~@4 e3 g#5 ~@2 e5 ~ [e3,g#3,c#4]@2 ~@12, ~@6 [g#3,c#4] ~@9", // C#m C#5
Q: "~@3 f#5@6 ~ g#5@2 ~@3 e5@4 ~@2 [e3,g#3,c#4]@2 ~@9, ~@20 f#5@5 ~@7", // C#m
R: "~@7 e5@7 f#5 ~@3 [e3,c#4] g#3 ~@4 [g#3,c#4]@2 ~@6, ~@18 d5@2 ~@3 c#5@2 ~@7, ~@24 e3 ~@7", // C#m C#5
S: "~@10 c#5@2 ~@2 e5@2 ~@3 f#5@3 [f#3,b3] ~@5 [e3,g#3,c#4]@2 ~@2, ~@5 [f#3,b3,d4]@5 ~ d4 ~@4, ~@13 d5@2 ~@17", // B5 C#m Bm
T: "~ g#5 ~@3 g#5@2 ~ f#5@2 ~@2 c#5 ~@10 c#5@2 [e3,g#3,c#4] ~ f#5 ~@3 [e3,g#3,c#4]", // C#m
U: "~@4 g#5 ~@3 g#5@2 ~@5 c#5 ~@10 c#5@2 ~ e5@2 f#5",
V: "~@4 [g#3,c#4]@2 ~@2 g#5 ~@3 g#5@2 ~ f#5@2 ~@2 c#5 ~@10 c#5@2, ~@4 e3 ~@27", // C#5
W: "[~ [e3,g#3,c#4] f#5 ~@4 [g#3,c#4]@2 ~@2 g#5 ~@4 e5@7 ~@2 [f#3,b3,d4,f#5] ~ [f#3,b3] ~ c#5@5 [f#3,b3,d4] ~@3 e5 ~@4 [g#3,c#4]@2 ~@2 g#5 ~@3 g#5@2 ~ f#5@2 ~@2 c#5 ~@5, e5@2 ~@5 e3 ~@19 d4@2 ~@7 [f#3,d4]@5 ~@2 e3 ~@20]/2", // C#m C#5 Bm B5 Bm C#5 D
X: "~@5 c#5@2 ~ [e3,g#3,c#4] ~ f#5 ~@3 [e3,g#3] ~@3 g#5 ~@4 g#5 ~@3 c#5 ~@4, ~@7 c#4 ~@8", // C#m E
Y: "~@9 c#5@2 ~@2 f#5 ~@4 [g#3,c#4]@2 ~@2 g#5 ~@4 g#5@2 f#5@2 ~, ~@18 e3 ~@13", // C#5
Z: "[~@2 c#5 ~@9 c#5@2 ~ [e3,g#3] ~ f#5 ~@4 [e3,g#3,c#4] ~@3 g#5 ~@4 e5@7 ~ [f#3,f#5] [b3,d4] ~ [f#3,b3] ~ c#5@4 [f#3,b3,d4] ~@2 b3@2 ~@4 [e3,g#3,c#4]@2 ~@2 f#5@6 ~ a4@2 b4@3 ~ c#5@4 ~@8 [e3,g#3,c#4] ~@5 [g#3,c#4]@2 ~@2, ~@15 c#4@2 ~@34 f#3 ~@40 e3 ~@3]/3", // E C#m F# Bm B5 Bm C#m C#5
AA: "~@5 a4@4 b4@3 ~@2 a4@5 ~@2 f#4@5 ~@2 [e3,g#3] ~@3, ~@14 c#4 ~", // E
AB: "[e3,g#3,c#4]@2 ~@7 a4@3 ~@2 c#5@3 ~@2 f#5@4 ~@2 a4@4 [e3,g#3,c#4] ~@2", // C#m
AC: "[~@4 [e3,g#3] ~@6 f#4 g#4@6 ~@4 a4@4 b4@5 ~@2 c#5@5 ~@2 [g#3,c#4]@2 ~@4 a4@6 ~ c#5@2 ~@2 a4@4 ~ b4@2, ~@3 f#4@5 ~@56, ~@4 c#4@2 ~@16 [f#3,b3,d4]@8 ~ [f#3,b3,d4]@4 ~@5 e3 ~@23]/2", // E C#5 Bm
AD: "a4@4 [e3,g#3,c#4] f#4@3 ~@2 [g#3,c#4]@2 ~@7 a#4 ~@4 f#5@2 ~@2 c#5@2 ~@2, ~@10 e3 ~@21", // C#m C#5
AE: "a4@2 ~ b4@3 ~@2 f#4@4 ~@2 [e3,g#3,c#4]@2 ~@7 a4@4 c#5@3 ~@2", // C#m
AF: "b4@5 ~@2 a4@2 ~@2 [e3,g#3,c#4] ~@5 [g#3,c#4]@2 ~@5 f#4@2 g#4@6, ~@17 f#4@5 ~@10, ~@17 e3 ~@14", // C#m C#5
AG: "~@3 a4@3 ~@2 b4@3 ~ f#3 c#5@7 ~@2 a4@5 ~@2 f#4@2 ~, ~@3 [f#3,b3,d4]@8 ~ [b3,d4]@2 ~@7 [e3,g#3,c#4]@2 ~@9", // Bm C#m
AH: "[~@3 c#5@6 ~ a4@5 ~@3 [g#3,c#4]@2 ~@4 [g#3,c#4]@2 ~@3 g#5@12 ~ g#5@4 ~ g#5@4 f#5@4 ~@5 [e3,g#3,c#4]@2 ~@2, ~@16 e5@6 ~ c#5@4 ~@29 e5@8, ~@18 e3 ~@5 e3 ~@39]/2", // C#5 C#m
AI: "~ f#5@2 ~@11 e5@4 e5@4 ~@3 [e3,g#3] ~@2 c#5@2 ~@2, ~@23 d5@4 ~@5, ~@25 c#4@2 ~@5", // E
AJ: "[g#3,c#4]@2 ~@2 c#5@4 ~ b4@7 ~@6 c#5@4 ~@4 [f#3,d4]@2, e3 ~@16 b4@4 ~@6 a4@5, ~@18 [f#3,b3,d4]@10 ~@2 b3 ~", // C#5 D Bm
AK: "~@4 [e3,g#3,c#4]@3 ~ a4 ~@2 f#4 ~@5 c#5 ~@2 a4 ~@5 e5 ~@2 c#5 ~@2", // C#m
AL: "[~@2 [e3,g#3,c#4] g#5 ~ e5 ~ [g#3,c#4]@2 ~@15 g5@2 ~@3 g#5 ~ a5@3 ~@2 b5@2 ~@2 g#5 ~ [e3,g#3,c#4]@2 ~ f#5 ~@4 e5@2 ~@9 f#5@3, ~@7 e3 ~@16 f#5 ~@39]/2", // C#m C#5 C#m
AM: "~ e5@3 ~ d5@3 [e3,g#3,c#4] ~ c#5@2 ~@2 [e3,g#3] ~@8 d5@7 ~@2, ~@7 c#5@4 ~@5, ~@7 c#4 ~@8", // C#m E
AN: "[f#3,e5]@3 ~ f#5@3 ~@2 [b3,d4,e5]@3 ~ e5@3 f#5 ~ [g#3,c#4,g#5]@3 ~@5 g#5@2 ~ f#5@2 ~, [b3,d4]@7 ~@2 [f#3,a#3] ~@2 d5@2 ~@4 e3 ~@13", // F#7 E7 C#5 Bm F#
AO: "~ c#5 ~@10 c#5@2 ~ [e3,g#3] f#5 ~@2 g#5 ~ [g#3,c#4]@2 ~@2 g#5 ~@4 g#5@2, ~@15 c#4@2 ~@4 e3 ~@10", // E C#5
AP: "~@4 c#5 ~@11 c#5@2 ~@2 f#5 ~@2 g#5 [e3,g#3,c#4]@2 ~@2 g#5 ~@3", // C#m
AQ: "~ g#5@2 ~@5 c#5 ~@10 c#5@2 ~ [e3,g#3] f#5 ~@2 g#5 ~ [e3,g#3] ~@3, ~@11 c#4 ~@2 c#4 ~", // E
AR: "g#5 ~@4 e5@7 ~@2 [f#3,b3,d4,f#5] ~ [f#3,b3] ~@6 [f#3,b3,d4] ~ [b3,d4]@2 ~ e5@2 ~@2, ~@16 d4@2 c#5@7 f#3 ~@6", // Bm B5 Bm
AS: "[g#3,c#4]@2 ~@3 g#5 ~@3 g#5@2 ~@5 c#5 ~@10 c#5@2 [e3,g#3,c#4] ~ f#5, e3 ~@31", // C#5 C#m
AT: "~@3 [g#3,c#4]@2 ~@3 g#5 ~@3 g#5@2 ~@5 c#5 ~@10 c#5@2, ~@3 e3 ~@28", // C#5
AU: "~@3 [e3,g#3,c#4,f#5] ~@4 [g#3,c#4]@2 ~@2 g#5 ~@3 g#5@2 ~@5 c#5 ~@8, ~@8 e3 ~@23", // C#m C#5
AV: "[~@2 c#5@2 ~ [e3,g#3,c#4] ~ f#5 ~@3 [g#3,c#4]@2 ~@2 f#5 ~@4 g#5 ~ f#5 ~@5 f#5 [f#3,b3,d4] ~ [f#3,b3] ~ c#5 ~@3 f#5 [f#3,b3,d4] ~ [f#3,b3,d4] c#5 ~@4 e3 g#3@2 ~@2 g#5 ~@3 e5 ~@4 g#5 ~ f#5 ~, ~@11 e3 ~@19 d4@2 ~@13 c#4@2 ~@16]/2", // C#m C#5 Bm B5 Bm
AW: "~@3 c#5 ~@7 [e3,g#3,c#4,c#5] ~@5 [g#3,c#4]@2 ~@3 g#5 ~@3 g#5 ~@5, ~@17 e3 ~@14", // C#m C#5
AX: "~ f#5 ~@3 c#5 ~@8 c#5 ~ [g#3,c#4]@3 f#5 ~ [g#3,c#4]@2 ~@2 g#5 ~@3 g#5 ~@2, ~@8 e5 ~@7, ~@16 e3 ~@4 e3 ~@10", // C#5
AY: "~@2 e5 ~ f#5 ~@4 c#5 ~@9 c#5 ~@3 f#5 [e3,g#3,c#4] ~@4 g#5 ~@2, ~@18 [e3,g#3,c#4]@5 ~@9", // C#m
AZ: "~ e5@6 ~@3 [f#3,b3,d4,f#5] ~@2 [b3,d4]@2 ~@4 [f#3,b3,d4] ~@2 [f#3,b3] ~ e5@2 ~@2 [g#3,c#4]@2 ~@2, ~@13 f#3 ~ c#5@8 ~@5 e3 ~@3", // Bm B5 C#5
BA: "~@27 [e3,g#3,c#4] ~@4", BB: "[g#3,c#4] ~@15, e3 ~@31",
BC: "~@2 e3 ~ [e3,g#3]@2 ~@5 [e3,g#3] ~@20, ~@11 c#4@2 ~@19", // E
BD: "~@7 g#3@3 ~@4 [e3,g#3,c#4] ~@10 [f#3,b3,c4] ~ b3@2 ~@3, ~@6 e3@5 ~@16 f#3 ~@4", // C#m B
BE: "[f#3,d4]@3 ~@3 f#3@2 ~@3 [e3,f3] ~@20, b3 ~@5 b3 ~@3 g#3@2 ~@20, ~@11 c#4@2 ~@19", // D Fmaj7
BF: "~@4 [e3,c#4]@3 [g#3,c#4] ~@8, ~@14 e3 ~@17", BG: "~@11 [e3,c#4]@5 ~ [e3,g#3,c#4]@2 ~@13",
BH: "~@15 [e3,c#4]@5 ~ [e3,g#3] ~@10, ~@15 g#3 ~@5 c#4@2 ~@9", // C#m E
BI: "~@7 [f#3,b3,d4] ~ [b3,d4]@2 ~@5 [f#3,b3] ~ [b3,d4]@2 ~@5 [e3,c#4] ~@6, ~@9 f#3 ~@6 d4@2 f#3 ~@6 g#3@2 ~@5", // Bm B5 Bm C#m
BJ: "~@22 [e3,c#4]@5 ~ [e3,g#3,c#4]@2 ~@2", BK: "~@27 [e3,g#3,c#4]@3 ~@2",
BL: "[[e3,c#4]@2 ~@27 [g#3,c#4]@5 ~ [e3,g#3] ~@17 [f#3,b3] ~ b3@2 ~@5 [f#3,b3,d4] ~, g#3 ~@28 e3@2 ~@4 c#4@2 ~@16 d4@2 f#3 ~@8]/2", // C#m C#5 E B5 Bm
BM: "b3@2 ~@5 f#4 [b3,c4]@4 ~@2 [b3,f#4]@2 ~@5 f#4@3 ~@5 f#4@3, f#3 ~@31", // Cmaj7 B5
BN: "~@2 [f#3,b3,d4]@4 d4 ~@4 [c#3,a3]@5 ~ [c#3,f#3] c#4 ~@5 c#4 ~@7, ~@2 e4@2 ~@6 f#3@5 ~@2 a3@2 ~@13, ~@11 c#4@2 ~@19", // Bm F#m F#5
BO: "[~ c#4@2 ~@2 e4@2 ~ f#3@2 [c#3,g#4] ~@3 c#5@2 ~@2 g#4@2 ~ c#5 ~@3 [e4,g#4]@2 c#5 ~@3 [c#4,e4,g#4]@4 ~ c#5@2 ~@5 d5@2 c#5 ~@3 c#5 ~@4 [c#4,e4,g#4]@3 c#5 ~@3 c#4 c4 c#5@4 [c#4,g#4]@5 c#5 ~@3 [c#4,e4,g#4]@2 ~@3 g#4 ~@3 f#4 ~@6 f#4 ~ [b3,d#4]@2, ~@4 [c#3,a3]@4 f#4 ~ a3@2 ~@49 g#4@5 ~ [e4,f#5]@3 ~@6 a4 ~@17 f#3 ~]/3", // C#5 E C#m C#5 C#m B F#m Esus2
BP: "~@5 [f#3,b3,d4]@2 f#4@3 ~ f#4@4 ~ [f#3,b3,d4,e4]@4 d4 ~@4 [c#3,f#3,a3]@3 ~@4, ~@25 c#4 ~@6", // Bm F#m
BQ: "~@9 c#4 ~ d4@3 ~ c#3@5 f#3@4 [f#3,g#4] ~@3 c#5@2 ~@2, ~@15 e4@2 ~@3 f#4@2 ~@10", // F#sus2
BR: "~ [e4,g#4]@2 ~@5 [e4,g#4]@2 ~@3 c#5 c#4@2 ~ d5 ~@4 f#5@4 ~@2 d5 ~@3, ~@8 c#4 ~@5 [e4,g#4]@9 ~@3 c#4@4 ~@2", // E
BS: "[e4,g#4]@2 ~@16 c#5 ~@2 c#5 ~@2 c#5 ~@2 [b3,d4,g#4]@3 ~ [g#4,a4], [c#4,c#5] ~@17 [b3,g#4]@8 ~@6, ~@20 d5@2 ~ b4@2 ~@7", // E G#dim Amaj7 C# E
BT: "g4 ~@7 e3@2 ~@2 [e3,g#3,c4,g#4]@2 ~@5 c#4 ~@12", // Eaug
BU: "~ c#4 ~ e4 ~ f#4 ~ [e3,g#3,d4]@2 ~@2 g#5 ~@3 g#5@2 ~ f#5 ~@4 c#5 ~@8", // E7
BV: "~@5 c#5 [e3,g#3,c4]@2 ~ f#5 ~ [e3,g#3,c4]@2 ~@2 g#5 ~@4 g#5@2 ~@4 c#5 ~@5", // Eaug
BW: "[~@8 c#5 ~ [g#3,c4] ~@2 f#5 ~ [e3,g#3,c4]@2 ~@2 g#5 ~@3 e5@5 [e3,g#3,c#4] ~@3 f#5 ~@4 [f#3,d4,c#5]@6 [f#3,b3,d4]@2 e5 ~@4 [e3,g#3,c#4]@2 ~@2 g#5 ~@4 g#5@2 f#5@2 ~, ~@10 e3@2 ~@19 e5@2 ~@4 b3@4 ~@23]/2", // G# Eaug C#m Dmaj7 Bm C#m
BX: "~@8 c#5 ~@8 [e3,g#3,c#4] ~@3 [g#3,c#4]@2 ~@3 g#5 ~@3 g#5@2, ~@21 e3 ~@10", // C#m C#5
BY: "~@5 f#5 ~@6 c#5@2 ~@11 [e3,g#3,c#4]@2 ~@3 g#5 ~", // C#m
BZ: "~@2 g#5@2 ~@5 f#5 ~@6 c#5 ~@6 [e3,g#3,c#4]@2 ~@4 [e3,g#3,c#4]@2 ~", // C#m
CA: "~ f#5 ~@4 e5 ~@2 g#5 ~@4 [f#3,b3] [d4,f#5] ~ [f#3,e5] ~@5 [f#3,b3,d4] c#5 ~ [d4,e5] ~@5, ~@17 b3@2 ~@6 b3@2 ~@5, ~@13 f#3 ~@2", // B5 D F#7 Bm Dsus2
CB: "[[e3,g#3,c#4]@2 ~@27 [e3,g#3,c#4]@5 ~ [e3,g#3] ~@28, ~@35 c#4@2 ~@27]/2", // C#m E
CC: "~@2 g#5@2 ~@2 g#5 [e3,g#3,c#4]@2 ~@14 c#6 ~@8, ~ e5@2 ~@29", // C#m
CD: "[~@4 [e3,g#3,c#4]@2 ~@4 [e3,g#3,c#4]@2 ~@7 g#5@8 ~ [f#3,b3,d4] ~ b3@2 ~@5 [f#3,b3,d4] ~ [f#3,b3]@2 ~@5 [e3,g#3,c#4]@2 ~@2 c#4@3 ~ c#5@2 ~@2 c#5@2 ~ a4 ~@2, ~@28 a5@8 ~ e5@2 c#5 ~@17 d5@2 ~@5, ~@30 f#3 ~@33]/2", // C#m Bm B5 C#m
CE: "~@11 g#3@3 ~@3 [e3,g#3,c#4]@2 ~@2 c#4@3 ~@2 c#5@2 ~@2 c#5@2, ~@10 [d#3,c#4]@3 ~@19", // C#m D#7
CF: "~ a4 ~@19 [e3,g#3,c#4]@3 ~ c#4@3 ~ c#5@2 ~", // C#m
CG: "~@2 c#5@2 a4 ~@13 [e3,g#3,c#4]@5 ~ [g#3,c#4]@2 ~@2 c#4@2 ~@2, ~@24 e3 ~@7", // C#m C#5
CH: "~ c#5@2 ~@7 f#3 ~ [f#3,b3]@2 f#4@2 ~@3 [f#3,b3,d4] ~ [f#3,b3]@2 a4@2 ~ f#4@2 [e3,g#3,c#4]@2 ~@2, ~@9 f#4@2 ~@7 c#4@4 ~@10", // B5 Bm B5 C#m
CI: "[c#4@3 ~ c#5@2 ~@5 a4@2 ~@12 [e3,g#3,c#4]@4 ~@2 [g#3,c#4]@2 ~@3 c#4@3 ~ c#5@2 ~@21 c#4@2 ~@2 [e3,g#3,c#4]@2 ~@2 c#4@2 ~@2 c#5@2 ~@5 a4@2 ~@12, ~@31 e3 ~@30 g#3@2 ~@32]/3", // C#m C#5 C#m
CJ: "~ [e3,g#3,c#4]@5 ~ [e3,g#3] ~@3 c#4@3 ~ c#5@2 ~@7 [f#3,b3,d4] ~@3 f#4@2 ~@2, ~@7 c#4@2 ~@15 f#4@2 ~ [f#3,b3,d4]@2 ~@3", // C#m E Bm
CK: "~ [f#3,b3,d4] ~@2 [f#3,b3]@2 a4@2 f#4@2 [g#3,c#4]@2 ~@2 c#4@3 ~ c#5@2 ~@6 a4@2 ~@4, ~ c#4@3 ~@6 e3 ~@21", // Bm B5 C#5
CL: "~@8 [g#3,c#4]@4 ~@2 [g#3,c#4]@2 ~@2 c#4@2 ~@2 c#5@2 ~ d5@2 ~@3 a4@2, ~@8 e3@2 ~@4 e3 ~@17", // C#5
CM: "~@13 [g#3,c#4]@2 ~@2 [g#3,c#4]@2 ~@3 c#4@3 ~ c#5@2 ~@4, ~@13 e3 ~@3 e3 ~@14", // C#5
CN: "~@2 a4@2 ~@11 [g#3,c#4]@4 ~@2 [g#3,c#4]@2 ~@2 c#4@2 ~@2 c#5@2 ~, ~@15 e3@2 ~@4 e3 ~@10", // C#5
CO: "~@6 [f#3,b3] ~@2 [f#3,b3]@2 f#4@2 ~@3 [f#3,b3,d4] ~ f#3@2 a4@2 f#4@2 [e3,g#3,c#4]@2 ~@3 c#4@2 ~, ~@6 f#4@2 ~@7 c#4@3 b3 ~@13", // B5 Bm C#m
CP: "~ c#5@2 ~@2 c#5@2 ~ a4@2 ~@11 [e3,g#3,c#4]@4 ~@2 [e3,g#3] ~@4, ~@27 c#4@2 ~@3", CQ: "c#4@3 ~ c#5@3 ~@25",
})).s("gm_piano").gain(0.72)
// chords · piano · soft notes
const piano_soft = note(`<
~@9 A B C D E F ~ G ~@3 H I ~@3 J K ~ L M N ~ O P Q R S ~@3 T ~@4 U ~@2 V W ~ X ~@2 Y R Z AA ~ AB AC AD AE@2 AF ~ H AG
~@2 AH AI AJ ~ AK ~ AL ~@2 AM AN AO ~ AP AQ AR ~ AS AT AU AV H AW AX AY ~ AZ BA BB ~@2 BC BD BE BF BG BH@2 BI BJ BK
BL@2 BM BN@2 BO@2 BP@2
>`.pickRestart({
A: "~@27 a#3 ~@4", B: "~@15 a4@2 ~@15", C: "~@20 b4@5 a4@3 ~@4", D: "~@24 b4@4 a4@3 ~", E: "~@18 g#4@4 ~ a4@4 ~@5",
F: "~@25 a4@2 ~@3 a4@2", G: "~@7 a4@4 ~@21", H: "~@10 e5 ~@5", I: "~@23 d5@2 ~@7", J: "~ d5@2 ~@29",
K: "~@5 d5@2 ~@25", L: "~@10 e5@2 ~@13 e5@2 ~@5", M: "~@11 f#5@2 e5 ~@18", N: "~@17 e5@2 ~@13", O: "~@12 e5 ~@3",
P: "~@7 e5@2 ~@17 e5@2 ~@4", Q: "~@12 e5@2 ~@17 e5", R: "~@15 e5@2 ~@15", S: "~@10 d4@2 ~@7 d4 ~@12",
T: "~@20 g#4 ~@11", U: "~ g#4 ~@30", V: "~@6 d5 ~@9", W: "~@8 a4 ~@7", X: "~@23 e5@2 ~@7", Y: "~@15 d5 ~@15 e5",
Z: "f#5 e5 ~@7 e5 ~@6", AA: "~@3 f#5@2 e5@2 ~@14 e5@2 ~@9", AB: "~@13 e5 ~@15 e5@2 ~, ~@6 f#5 ~@9",
AC: "~@8 e5 ~@7, ~@15 f#5@2 ~@15", AD: "~ e5@2 ~@16 f#5@2 e5 ~@10",
AE: "[~@5 e5@2 ~@17 e5@2 ~@5 e5@2 ~@7 e5@2 ~@22]/2", AF: "~@13 e5@2 ~@15 e5 ~", AG: "~@11 d4 ~@4",
AH: "~@2 c#4@5 ~@25", AI: "~@5 c#4@6 ~@14 d4 ~ d4@2 ~@3", AJ: "~@2 b3@3 ~ d4@2 ~@24", AK: "~@21 d#3 ~@10",
AL: "~@16 c4 ~@15", AM: "~@31 e3", AN: "~@23 d4@2 ~@7", AO: "d4@2 ~@5 d4@4 ~@3 d4@2 ~@16, ~@14 f#3 ~@17",
AP: "~ f#3@2 d4@2 ~@13 [c#4,e4,f4] ~@6 c#4 ~@6", AQ: "~@7 d5 e5@2 ~@22", AR: "~@10 b4 ~@21",
AS: "~@15 a3@5 ~@4 [c#3,a3] ~@7", AT: "~@13 g#4@2 ~, ~@13 e4 ~@2", AU: "~@26 c#5 b4@3 ~@2, ~@27 c5 ~@4",
// … 195 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.