0:00/0:00
// Tell Him — Streisand
// 70 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 7 "warmpad" pad warm (copy of ch 6 "melodie" voice oohs); ch 9 "panfluit" pan flute (copy of ch 8 "melodie" voice oohs)
// note: Full arrangement: all 89 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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, A@4 for four bars: edit a riff to change every repeat.
// bass · acoustic bass · "acbass"
const bass = note(`<
~ A B C D E F G H I J A K L M N G H O P F Q J R G F S T U R V W K R X Y W B Z AA D AB AC G H AD F AE AF J R AG F AH W
K AI X W D R F W AJ V AK AL AM AN AO AP AQ AR AS AT Q AU AS AT AF AV AT@2 AW AX AY AZ BA ~
>`.pickRestart({
A: "g#2@3 g#2", B: "g#2", C: "g#1@3 g#2", D: "f#2", E: "f#1@3 f#2", F: "e2@20 ~ e2@2 ~", G: "c#2@20 ~ c#2@2 ~",
H: "b1@20 ~ b1@2 ~", I: "b1@12 f2@8 ~ f2@3", J: "g#2@20 ~ g#2@2 ~", K: "f#2@20 ~ f#2@2 ~",
L: "f#2@18 f#2@2 ~ f#2 ~@2", M: "e1!2", N: "d#2@8 ~ d#2@3 g#2@8 ~ g#2@3", O: "b1@18 b1@3 b1 ~@2", P: "e2@21 e1@2 ~",
Q: "d#2@20 ~ d#2@2 ~", R: "d2@20 ~ d2@2 ~", S: "e2@18 e2@3 e2 ~@2", T: "a1@18 g#2@3 g2 ~@2", U: "f#2@18 e2@3 c#2 ~@2",
V: "e2@8 ~ e2@3 e2@8 ~ e2@3", W: "a1@20 ~ a1@2 ~", X: "e2@5 ~ e1@6", Y: "a1@23 ~", Z: "g#2@18 g#2@3 g#2 ~@2",
AA: "f#2@18 c2@3 c#2 ~@2", AB: "e2@6 e2@5 ~", AC: "d#1@12 g#2@8 ~ g#2@3", AD: "b1@3 b1", AE: "e2@3 e2", AF: "d#2",
AG: "c#2@23 ~", AH: "e2", AI: "d2@18 d2@3 d2 ~@2", AJ: "f2@12 a#1@8 ~ a#1@3", AK: "d2@5 ~ b1@6", AL: "c2@23 ~",
AM: "g#2@8 ~ g#2@3 c#2@8 ~ c#2@3", AN: "c2@5 ~ f2@5 ~", AO: "a#1@8 ~ a#1@3 c1@12", AP: "c#2@8 ~ c#2@3 f2@6 f2@6",
AQ: "a#1@8 ~ a#1@3 c2@8 ~ c2@3", AR: "f2@5 ~ f2@5 ~", AS: "a#1@23 ~", AT: "g2@20 ~ g2@2 ~", AU: "f2@8 ~ f2@3 f1@12",
AV: "f2@20 ~ f2@2 ~", AW: "f2@18 f2@3 f2 ~@2", AX: "d#2@8 ~ d#2@3 c2@12", AY: "a#1@20 ~ a#1@2 ~", AZ: "a#1@11 ~",
BA: "a#1@19 ~@5",
})).s("gm_acoustic_bass").gain(0.4).pan(0.7)
// chords · epiano1 · "elecpiano1"
const epiano1 = note(`<
~@2 A@2 B@2 C D E F A@2 G@2 H I J E K@2 L M N O P@2 Q@3 R@2 S T U@3 V W X Y Z AA AB AC@3 AD@2 M AE AF@2 AG@3 T AH AI
AJ@2 AK AL AM AN AO AP AQ AR AS AT AU AV@2 AW AX AY AZ@2 AX BA BB BC BD@2 BE AW BF@2 ~
>`.pickRestart({
A: "[b3@9 ~@5 b4@2, b4@7 ~, g#4@13 g#4@3, d#4@11 d#4@5, ~@9 b3@7]/2",
B: "[f#3@5 ~@9 f#4@2, f#4@7 ~, d#4@3 d#4, ~@5 f#3@6 f#3@5, ~@7 a#4@9]/2",
C: "b3@5 ~@2 e4, g#4, e4@17 ~ b3@6, g#3@13 ~@2 g#3@9", D: "c#4@8 ~ c#4@3, [g#3,e4,g#4]",
E: "f#3@5 ~ f#3@2, [b3,d#4,f#4]", F: "[f#3,d#4]@2 ~ a#3, ~ [g3,d#4,g4]",
G: "[a#3@9 ~@6 f#4, f#2, f#4@13 d#4@3, d#4@10 ~ a#3@5, f#3@25 ~@2 f#3@21]/2", H: "[g#3,d#4]@2 ~ c#4, ~ [a#3,f#4,a#4]",
I: "[f#3,c#4]@4 ~@5 d#4@3, ~@3 [b3,f#4,g#4]@5", J: "c#4@8 ~ c#4@3, [b3,e4,g#4]",
K: "[b3@16 ~@2 b3@2 ~ e3@18 ~@3 e3@6, [f#3,d#4,f#4]@20 ~ [g#3,b3,d#4]@27]/2", L: "b3@8 ~ b3@3, [g#3,d#4,f#4]",
M: "a#3@8 ~ a#3@3, [f#3,c#4,d#4]", N: "b3@5 ~@2 d#4, f#4, d#4@17 ~ b3@6, g#3@13 ~@2 g#3@9",
O: "d4@8 ~ d4@3, [a3,f#4,a4]", // D
P: "[e3@15 ~@3 e3@2 ~ b3@18 ~@6 e4@3, [a3,c#4,e4]@20 ~ g#4@27, ~@21 e4@20 ~ b3@6, ~@21 g#3@16 ~@2 g#3@9]/2", // A
Q: "[b3@15 ~@3 b3@2 ~ a3@19 ~@2 a3@2 ~ f#3@18 ~@3 f#3@6, g#4@5 ~@13, e4@17 ~@4 e4 ~@50, g#3@13 ~@2 g#3@5 ~ [e3,c#4]@23 ~ [a3,c#4,e4]@27]/3", // C#m A
R: "[b3@15 ~@3 b3@2 ~ d4 ~@8 b3@6 [g#3,e4]@12, f#4@5 ~@7, d4@17 ~@31, a3@13 ~@2 a3@5 ~ [a3,f#4]@15 ~@12]/2", // C#m D
S: "a3@5 ~@2 c#4, e4, c#4@17 ~ a3@6, e3@13 ~@2 e3@9", T: "f#3@5 ~ f#3@2, [a3,c#4,e4]",
U: "[d4@16 ~@2 d4@2 ~@10 b3@6 [g#3,e4]@8 ~ e3@18 ~@3 e3@6, [c#4,f#4,a4]@20 ~ [a3,d4,f#4]@15 ~@9 [a3,c#4,e4]@27]/3", // C#m F#m D A
V: "e3@5 ~ e3@2, [a3,c#4,e4]", W: "d#4@8 ~ d#4@3, [b3,g#4,b4]", X: "b3@5 ~ b3@2, [d#4,g#4,b4]",
Y: "a#3@5 ~@2 d#4, f#4, d#4@17 ~ a#3@6, f#3@13 ~@2 f#3@9", Z: "a#3@8 ~ a#3@3, [f#3,d#4,f#4]",
AA: "[g#3,d#4] [a#3,f#4]", AB: "f#3@5 ~@4 c#4@3 [b3,f#4]@12, [a#3,d#4] ~, c#4 ~@5 f#3@6 ~@12",
AC: "[g#3@15 ~@3 g#3@2 ~ b3@30 ~@18 f#4@3, [b3,c#4,e4]@20 ~ b2@51, ~@7 f#4@14 d#4@3, ~@7 d#4@11 ~ b3@5, ~@21 f#3@28 ~@2 f#3@21]/3", // C#m7
AD: "[g#3@5 ~@9 f#4@2, f#4@7 ~, d#4@3 d#4, ~@5 g#3@6 g#3@5, ~@7 b4@9]/2", AE: "g#3@5 ~ g#3@2, [b3,d#4,f#4]",
AF: "[a3@15 ~@3 a3@2 ~ e3@18 ~@3 e3@6, [d4,f#4,a4]@20 ~ [a3,c#4,e4]@27]/2", // D A
AG: "[g#3@9 ~@5 g#4 a3@6 ~@2 c#4, g#4@7 ~@5, e4@13 e4@2 e4@9, b3@33 b3@12 c#4@20 ~ a3@6, ~@27 g#3@18 e3@16 ~@2 e3@9]/3",
AH: "b3@5 ~@2 d4, f#4, d4@17 ~ b3@6, a3@13 ~@2 a3@9", AI: "~ b3 [g#3,e4]@2, [a3,d4,f#4] ~",
AJ: "[e3@15 ~@3 e3@2 ~ c#4@19 ~@2 c#4@6, [a3,c#4,e4]@20 ~ [a3,e4,f#4]@27]/2", AK: "d4@8 ~ d4@3, [c#4,f#4,a4]",
AL: "a3@5 ~@2 b3, d4, b3@17 ~ a3@6, f#3@13 ~@2 f#3@9", AM: "a3@8 ~ a3@3, [e3,c#4,e4]",
AN: "~ c4 [a3,d4]@2, [a3,f4,a4] ~", AO: "[g3,d4]@2 ~ c4, ~ [g3,e4,g4]",
AP: "~@6 d4@6 b3@5 ~@4 f4@3, [c4,f4,a4] [d4,g4], ~@12 f4 ~@5 b3@6", AQ: "g3@5 ~ g3@2, [c4,e4,g4]",
AR: "[c4,g#4]@2 ~ c#4, ~ [c4,f4,g#4]", AS: "~ c4 ~ c4, [a#3,d#4,g4] [g#3,d#4,f4]",
AT: "g#3@5 ~@4 c#4@3 [c4,g#4]@12, [a#3,f4] ~, c#4 ~@5 g#3@6 ~@12", AU: "[c4,f4]@2 [g3,d#4] [g#3,d#4]",
AV: "[~@6 a#3@6 ~@6 d#4@2 ~ [a#3,f4]@15 [a3,f4]@12, [g#3,c#4,f4]@3 [c4,g#4,c5]@2 ~@7]/2", // A#5 Dm C# Fm
AW: "a#3@5 ~@2 d4, f4, d4@17 ~ a#3@6, f3@13 ~@2 f3@9", AX: "g3@5 ~ g3@2, [a#3,d4,f4]",
AY: "a#3@8 ~ a#3@3, [g3,c4,d#4]", // Cm
AZ: "[[a#3,d#4]@12 a3@5 ~ a3@2 ~ f3@18 ~@3 f3@6, ~@12 [c4,a4]@8 ~ [a#3,d4]@27, ~@12 f4 ~@8 f4 ~@26]/2", // D#5 F A#
BA: "a#3@8 ~ a#3@3, [g3,d4,f4]", BB: "a#3@5 ~@2 c4, d#4, c4@17 ~ a#3@6, g3@13 ~@2 g3@9",
BC: "d4@5 ~@2 g4, a#4, g4@17 ~ d4@6, a#3@13 ~@2 a#3@9",
BD: "[a#3@15 ~@3 a#3@2 ~ a3@18 ~@3 a3@6, [d4,g4,a#4]@20 ~ [d4,f4,a4]@27]/2", BE: "[g3,d4] [a#3,d#4]",
BF: "[~@3 f4@4 ~@5, [f3,a#3,d4]@7 ~@5]/2", // A#
})).s("gm_epiano1").gain(0.48).pan(0.4)
// chords · acoustic guitar steel · "steelstrgt"
const acoustic_guitar_steel = note(`<
A@2 B@2 C@2 D E F@2 G H I@2 J K L M N O P Q R S T U D V W X Y T W Z AA AB@2 AC@2 AD AE AF AG AH AI@2 AJ@2 AK AL AM@2
AN@4 AO AP AQ AR@2 AS AT AU AV@2 AW AX@2 AY@2 AZ BA BB BC BD BE BB BF BG BH BI@2 BJ BK BL BM@3
>`.pickRestart({
A: "[[b3,d#4]@2 [b3,d#4] b3!4 ~@3 [b3,d#4] b3!4 [b3,d#4], g#2 g#2, g#3@12 g#3@6 ~@3 [b3,d#4]@9 ~@6 g#3@6 g#3@5 ~, ~@3 d#4@2 d#4@2 ~@4 d#4@2 d#4@2 ~]/2", // B
B: "[b3@4 ~@2 [b3,d#4]@3 d#4@6 ~@3 b3@3 b3@3 ~@6 b3@3 ~@9 g#3@6, g#3@2 ~@2 g#3@2 g#3 ~, ~@2 g#4@3 [d#4,g#4]@5 [d#4,g#4]@3 ~@3, ~@11 b3@2 [b3,d#4,g#4]@3]/2", // B G#5 G#m
C: "[[d#3,f#3,a#3,d#4]@2 [d#3,f#3] d#3 [f#3,a#3,d#4] [d#3,f#3,a#3,d#4]@2 f#3@2 f#3 [a#3,d#4]@2 [d#3,f#3,a#3,d#4] [d#3,f#3]!2 [d#3,f#3,a#3], ~@2 [a#3,d#4]@2 ~@3 [a#3,d#4]@3 f#3 ~@2 d#4@3, ~@13 a#3@2 ~]/2", // D#m D#5 D#m D#5
D: "g#3@4 ~@2 [g#3,b3]@3 b3@6 ~@3 g#3@3 g#3@3, e3 ~, ~@2 e4@3 [b3,e4]@3", // G#m E5
E: "[g#3,c#4,e4]@2 [g#3,c#4,e4] g#3!5, e3@4 e3@3 ~, ~@3 [c#4,e4]@3 [c#4,e4]@2", // C#m
F: "[[d#3,f#3,b3,d#4]@2 [b3,d#4]@2 [f#3,b3,d#4] [d#3,f#3,b3,d#4]@2 [f#3,b3,d#4]@3 [b3,d#4]@2 [d#3,g3]@2 [d#3,g3] g3, ~@2 [d#3,f#3] ~@4 d#3@2 ~ [d#3,f#3] ~@3 [a#3,d#4]@2]/2", // B D# D#m D#5
G: "[b3,d#4,g#4]@2 [b3,d#4,g#4] b3!5, g#3@4 g#3@3 ~, ~@3 [d#4,g#4]@3 [d#4,g#4]@2", // G#m G#5
H: "b3!6 [b3,d#4,g#4]@2, g#4@3 ~@5, d#4@2 ~ [d#4,g#4]@3 ~@2", // G#m G#5
I: "[f#3@4 ~@2 [f#3,a#3]@3 a#3@6 ~@3 f#3@3 f#3@3 ~@6 f#3@3 ~@9 d#3@6, d#3@2 ~@2 d#3@2 d#3 ~, ~@2 d#4@3 [a#3,d#4]@5 [a#3,d#4]@3 ~@3, ~@11 f#3@2 [f#3,a#3,d#4]@3]/2", // F# D#5 D#m
J: "[e3,g#3,b3]@2 [g#3,b3]@2 ~@3 c#4, d#3 ~ [d#3,e3] ~ c#4@3 ~, ~@3 [f#3,a#3]", // E G#m Emaj7 F#
K: "~@3 [c#3,d#3] [g#3,b3,d#4]@2 [b3,d#4]@2, d#3@3 ~@5, ~ [f#3,a#3]@3 f#3 ~ [f#3,g#3] ~", // C#sus2 G#m B F# F#sus2
L: "[e3,g#3,b3,c#4]@2 [b3,c#4]@2 [g#3,b3,c#4] [e3,g#3]@2 [e3,g#3], ~@2 [e3,g#3] ~@2 [b3,c#4]@3", // C#m7 Bsus2 C#7 E Bsus2
M: "b3@2 ~@2 b3 b3@3, f#3!2, d#3@3 d#3@5, ~ b3 ~@2",
N: "[f#3,b3,d#4]@2 [f#3,b3,d#4] f#3!5, d#3@4 d#3@3 ~, ~@3 [b3,d#4]@3 [b3,d#4]@2", // B
O: "e3@5 ~@16 [d#3,b3]@3, d#3@5 d#3@2 ~, ~@5 e3@13 e3@6, ~@5 g#3@9 ~ g#3@9, ~@2 b3@5 ~", // G#m
P: "g#3@2 ~@2 g#3 g#3@3, e3!2, d#3@3 d#3@5, ~ g#3 ~@2",
Q: "[d#3,f#3,a#3]@2 [d#3,f#3,a#3] d#3!5, c#3@4 c#3@3 ~, ~@3 [f#3,a#3]@3 [f#3,a#3]@2", // D#m F#
R: "b3@2 ~@2 b3 b3@3, g#3!2, f#3@3 f#3@5, ~ b3 ~@2", S: "d4@2 ~@2 d4 d4@3, a3!2, f#3@3 f#3@5, ~ d4 ~@2",
T: "a3@2 ~@2 a3 a3@3, e3!2, c#3@3 c#3@5, ~ a3 ~@2",
U: "[e3,g#3,b3,e4]@2 [b3,e4]@2 [g#3,b3,e4] [e3,g#3]@2 [e3,g#3], ~@2 [e3,g#3] ~@2 [b3,e4]@3", // E E5 E E5
V: "[c#3,e3,a3,c#4]@2 [a3,c#4]@2 [e3,a3,c#4] [c#3,e3]@2 [c#3,e3], ~@2 [c#3,e3] ~@2 [a3,c#4]@3", // A C#m A
W: "f#3@5 ~@16 [e3,c#4]@3, e3@5 e3@2 ~, ~@5 f#3@13 f#3@6, ~@5 a3@9 ~ a3@9, ~@2 c#4@5 ~", // C#m
X: "[f#3,a3,b3,d4]@2 [b3,d4]@2 [a3,b3,d4] [f#3,a3]@2 [f#3,a3], ~@2 [f#3,a3] ~@2 [b3,d4]@3", // Bm7 Bm Bm7 F#m Bm
Y: "[f#3,a3,b3] [a3,b3] [g#3,b3,e4] [e3,g#3,b3,e4], d3 ~ [d3,f#3] ~@5", // B7 Asus2 E D
Z: "a3@5 ~@16 [f#3,d4]@3, f#3@5 f#3@2 ~, ~@5 a3@13 a3@6, ~@5 c#4@9 ~ c#4@9, ~@2 d4@5 ~", // D
AA: "[f#3,a3,b3] [a3,b3] [g#3,b3,e4] [b3,e4], d3 ~ [d3,f#3] ~ e3 ~ [e3,g#3] ~", // B7 Asus2 E E5 D E
AB: "e3@5 ~@16 [c#3,c#4]@3, c#3@5 c#3@2 ~, ~@5 e3@13 e3@6, ~@5 a3@9 ~ a3@9, ~@2 c#4@5 ~", // C#
AC: "[b3@4 ~@2 [b3,d#4]@3 d#4@6 ~@3 b3@3 b3@6 ~@3 [b3,d#4]@3 d#4@6 ~@3 b3@3 b3@3, g#3@4 ~@3 g#3@5 ~@4, ~@2 g#4@3 [d#4,g#4]@2 ~@3 g#4@3 [d#4,g#4]@3]/2", // B G#5
AD: "a#3@2 ~@2 a#3 a#3@3, f#3!2, d#3@3 d#3@5, ~ a#3 ~@2",
AE: "[d#3,f#3,a#3,d#4]@2 [a#3,d#4]@2 [f#3,a#3,d#4] [d#3,f#3]@2 [d#3,f#3], ~@2 [d#3,f#3] ~@2 [a#3,d#4]@3", // D#m D#5 D#m D#5
AF: "[e3,g#3,b3]@2 [g#3,b3]@2 [f#3,a#3]@2 [f#3,a#3] a#3, d#3 ~ [d#3,e3] ~@3 [c#4,f#4]@2", // E G#m F# Emaj7 F#5
AG: "[d#3,a#3] [c#3,d#3,f#3,a#3] [g#3,b3,d#4] [f#3,g#3,b3,d#4], f#3 ~@23", // D#5 D#m7 G#m G#m7
AH: "[g#3,b3,c#4]@2 [g#3,b3,c#4] g#3!5, e3@4 e3@3 ~, ~@3 [b3,c#4]@3 [b3,c#4]@2", // C#7 Bsus2
AI: "[f#3@4 ~@2 [f#3,b3]@3 b3@6 ~@3 f#3@3 f#3@3 ~@6 f#3@3 ~@9 d#3@6, d#3@2 ~@2 d#3@2 d#3 ~, ~@2 d#4@3 [b3,d#4]@5 [b3,d#4]@3 ~@3, ~@11 f#3@2 [f#3,b3,d#4]@3]/2", // B5 B
AJ: "[[e3,g#3]@2 [e3,g#3] e3!4 ~@3 [e3,g#3] e3!4 [e3,g#3], e2 e2, d#3@12 d#3@6 ~@3 [e3,g#3]@9 ~@6 d#3@6 d#3@5 ~, ~@3 g#3@2 g#3@2 ~@4 g#3@2 g#3@2 ~]/2", // E
AK: "d#3@4 ~@2 [d#3,f#3]@3 f#3@6 ~@3 d#3@3 d#3@3, c#3 ~, ~@2 a#3@3 [f#3,a#3]@3", // D#m F#
AL: "g#3@5 ~@16 [f#3,d#4]@3, f#3@5 f#3@2 ~, ~@5 g#3@13 g#3@6, ~@5 b3@9 ~ b3@9, ~@2 d#4@5 ~", // D#m
AM: "[[a3,d4,f#4]@2 [a3,d4,f#4] a3!3 [a3,d4,f#4] [e3,a3,c#4]@3 [e3,a3,c#4] e3!5, f#3@4 f#3@3 c#3@5 c#3@3 ~, ~@3 [d4,f#4]@3 ~@5 [a3,c#4]@3 [a3,c#4]@2]/2", // D A D A
AN: "[g#3@4 ~@2 [g#3,b3]@3 b3@6 ~@3 g#3@3 g#3@3 ~@6 g#3@3 ~@9 e3@3 e3@6 ~@3 [e3,a3]@3 a3@6 ~@3 e3@3 [f#3,a3,c#4]@9 [f#3,a3,c#4]@3 f#3@3 f#3@3 f#3@3 f#3@3 f#3@3, e3@4 ~@4 e3@4 e3@2 ~ c#3@5 ~@3 e3@5 e3@3 ~, ~@2 e4@3 [b3,e4]@5 [b3,e4]@3 ~@5 c#4@3 ~@11, ~@11 g#3@2 [g#3,b3,e4]@2 ~@6 [a3,c#4]@2 ~@4 [a3,c#4]@3 [a3,c#4]@2]/4", // G#m A5 F#m E5 E A
AO: "a3@5 ~@16 [f#3,d4]@3, f#3@5 f#3@2 ~, ~@5 a3@13 a3@6, ~@5 b3@9 ~ b3@9, ~@2 d4@5 ~", // D
AP: "~@3 [d3,f#3] ~@3 b3, f#3@3 ~@3 [e3,g#3]@2, ~ [a3,b3]@3 b3@3 ~", // D E Asus2
AQ: "e3@4 ~@2 [e3,a3]@3 a3@6 ~@3 e3@3 e3@3, c#3 ~, ~@2 c#4@3 [a3,c#4]@3", // A5 A
AR: "[f#3@5 ~@13 f#3@3 a3@8 ~@16 [f#3,d4]@3, e3@5 [e3,a3]@2 ~@3 d4@5 ~, ~@5 f#3@13 ~@3 f#3@18 f#3@6 ~@3, ~@5 a3@9 ~@15 a3@13 a3@6, ~@6 c#4@15 ~@8 c#4@9 ~ c#4@9]/2", // D A5
AS: "[d3,f#3,a3,b3]@2 [a3,b3]@2 [f#3,a3,b3] [d3,f#3]@2 [d3,f#3], ~@2 [d3,f#3] ~@2 [a3,b3]@3", // Bm7 Asus2 B7 D Asus2
AT: "[e3,a3,c#4]@2 [e3,a3,c#4] e3!5, c#3@4 c#3@3 ~, ~@3 [a3,c#4]@3 [a3,c#4]@2", // A
AU: "[f3,a3]@2 [f3,a3] ~ [d3,f3]@2 [d3,f3] f3, ~ [c4,f4] ~@2, ~@3 a3@3 [a3,a#3]@2", // F Dm F5 A#maj7
AV: "[~@3 [d3,e3] [g3,c4,e4]@2 [e3,g3,c4,e4] [a3,c4,d4]@3 [c4,d4]@2 ~@3 [f3,g3], e3@3 ~ e3 ~@2 f3@2 ~ [f3,a3] ~@2 [b3,d4]@3, ~ [g3,b3]@3 ~@8 g3@3 ~]/2", // Dsus2 C D7 Csus2 Fsus2 F Bm G
AW: "[e3,g3,c4,e4]@2 [c4,e4]@2 [g3,c4,e4] [e3,g3]@2 [e3,g3], ~@2 [e3,g3] ~@2 [c4,e4]@3", // C Em C
AX: "[~@3 [g#3,c4] [f3,g#3]@2 [f3,g#3] ~ [d#3,g3]@2 [d#3,g3] g3 [f3,g#3,c4]@2 [d#3,f3,g#3,c4]@2, c4@3 ~@3 [c4,c#4]@2 ~@2 [a#3,c4]@2 ~@4, ~ [d#4,g#4]@3 ~@3 g#3@5 ~@4]/2", // G# Fm D# Fm Fm7 C#maj7 A#sus2 G#5
AY: "[[f3,g#3,a#3]@2 [c#3,f3,g#3,a#3]@2 [c4,d#4,g#4]@2 [g#3,c4,d#4,g#4] [f3,g#3]@3 [f3,g#3,c4,c#4] [g3,a#3,d#4]@3 [f3,g#3,c4]@2, ~@11 d#3@2 ~ d#3 ~]/2", // A#7 A#m7 G# Fm C#maj7 D# Fm
AZ: "[f3,g#3,a#3] [c#3,f3,g#3,a#3] [c4,d#4,g#4] [g#3,c4,d#4,g#4]", // A#7 A#m7 G#
BA: "[a#3,c4,f4] [c4,f4] [a3,c4,f4] [c4,f4], f3 ~ [f3,a#3] ~ f3 ~ [f3,a3] ~", // A#sus2 F5 F F5 A#5 F
BB: "f3@4 ~@2 [f3,a#3]@3 a#3@6 ~@3 f3@3 f3@3, d3 ~, ~@2 d4@3 [a#3,d4]@3", // A#5 A#
BC: "a#3@2 ~@2 a#3 a#3@3, g3!2, f3@3 f3@5, ~ a#3 ~@2",
BD: "d#3@4 ~@2 [d#3,g3]@3 g3@6 ~@3 d#3@3 d#3@3, c3 ~, ~@2 a#3@3 [g3,a#3]@3", // D# Gm
BE: "[g3,a#3,c4] [a#3,c4] [a3,c4,f4] [f3,a3,c4,f4], d#3 ~ [d#3,g3] ~@5", // C7 A#sus2 F D#
BF: "g3@4 ~@2 [g3,a#3]@3 a#3@6 ~@3 g3@3 g3@3, f3 ~, ~@2 d4@3 [a#3,d4]@3", // Gm A#
BG: "[d#3,g3,a#3]@2 [d#3,g3,a#3] d#3!5, d3@4 d3@3 ~, ~@3 [g3,a#3]@3 [g3,a#3]@2", // D# Gm
BH: "[d#3,g3,a#3,c4]@2 [a#3,c4]@2 [g3,a#3,c4] [d#3,g3]@2 [d#3,g3], ~@2 [d#3,g3] ~@2 [a#3,c4]@3", // Cm7 A#sus2 C7 D# A#sus2
BI: "[a#3,d4,g4]@2 [a#3,d4,g4] a#3!5, g3@4 g3@3 ~, ~@3 [d4,g4]@3 [d4,g4]@2", // Gm G5
BJ: "[a3,d4,f4]@2 [a3,d4,f4] a3!5, f3@4 f3@3 ~, ~@3 [d4,f4]@3 [d4,f4]@2", // Dm
BK: "~@3 [d3,d#3] ~@3 a#3, d#3@3 ~@3 [d#3,g3]@2, ~ [g3,a#3]@3 a#3@3 ~", // D#maj7 D# Gm
BL: "f3@5 ~@16 [d3,d4]@3, d3@5 d3@2 ~, ~@5 f3@13 f3@6, ~@5 a#3@9 ~ a#3@9, ~@2 d4@5 ~", // D
BM: "[[d3,f3,a#3,d4]@2 f3!2 [f3,a#3,d4] d3@2 d3@16 ~, ~@2 [d3,a#3,d4]@2 ~ [f3,a#3,d4]@16 ~@3]/3", // A# Gm A#
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.3)
// chords · acoustic guitar steel · "steelstrgt" · soft notes
const acoustic_guitar_steel_2 = note(`<
A@2 B C D@2 E F G H I@2 J K L M N ~ O ~@2 P ~@3 N E Q ~ R S ~@3 T ~@2 U B ~ G V ~ F J K W@2 X ~@2 P E Y Z F ~ AA AB
~@2 AC P AD AE AF AG AH@2 ~ AI ~ AJ AK ~ AL AM AK AN AO AP AQ@2 AR AA ~ AS ~@2
>`.pickRestart({
A: "[~@3 g#3@3 ~@2]/2", B: "~ g#3, ~@3 b3@3 ~@2", C: "b3!2 ~@6",
D: "[~@10 f#3@2 d#3@3 ~@6 d#3@9 d#3@3 [d#3,f#3]@3 ~@12]/2", E: "~ e3, ~@3 g#3@3 ~@2", F: "~@7 e3",
G: "~@10 f#3@2 d#3@3 ~@9, ~@3 d#3 ~@4", H: "~@4 d#3@2 ~@3 [d#3,f#3]@3 ~@9 d#3@3",
I: "[~@10 d#4 ~ g#3@2 g#3@2, ~@7 g#3@5 ~@4]/2", J: "~ d#3, ~@3 f#3@3 ~@2", K: "f#3!2 ~@6",
L: "~@4 d#3@2 ~@3 [d#3,e3]@3 ~@12", M: "c#3@9 ~@7 f#3@2 ~@3 [f#3,g#3]@3", N: "~@10 g#3@2 e3@3 ~@9, ~@3 e3 ~@4",
O: "~@7 d#3", P: "~@7 c#3", Q: "~@10 e3@2 c#3@3 ~@9, ~@3 c#3 ~@4", R: "~@10 a3@2 f#3@3 ~@9, ~@3 f#3 ~@4",
S: "~@4 d3@2 ~@3 [d3,f#3]@3 ~@12", T: "~@4 d3@2 ~@3 [d3,f#3]@3 ~@4 e3@2 ~@3 [e3,g#3]@3",
U: "~@4 g#3@3 ~, ~@3 b3@3 ~@2", V: "~@4 d#3@2 ~@3 [d#3,e3]@3 ~@9 f#3@3", W: "[~@3 d#3@3 ~@2]/2",
X: "~ c#3, ~@3 d#3@3 ~@2", Y: "g#3!2 ~@6", Z: "~@4 c#3@3 ~, ~@3 e3@3 ~@2", AA: "d3@3 ~@5", AB: "~ c#3, ~@3 e3@3 ~@2",
AC: "~@10 f#3@2 d3@3 ~@9, ~@3 d3 ~@4", AD: "~@3 f3 ~@3 d3", AE: "d3@9 ~@7 e3@2 ~@6",
AF: "~@4 f3@2 ~@3 [f3,a3]@3 f3@9 ~@3", AG: "~@10 g3@2 e3@3 ~@9, ~@3 e3 ~@4",
AH: "[g#3@3 ~@8 d#3 ~@4, ~@7 f3@5 ~@4]/2", AI: "~@8 d#3 ~@2 d#3",
AJ: "~@4 f3@2 ~@3 [f3,a#3]@3 ~@4 f3@2 ~@3 [f3,a3]@3", AK: "~ d3, ~@3 f3@3 ~@2", AL: "~ c3, ~@3 d#3@3 ~@2",
AM: "~@4 d#3@2 ~@3 [d#3,g3]@3 ~@12", AN: "~ f3, ~@3 g3@3 ~@2", AO: "~@7 d3", AP: "~@10 g3@2 d#3@3 ~@9, ~@3 d#3 ~@4",
AQ: "~@7 g3", AR: "~@7 f3", AS: "~@4 d3 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.3)
// chords · string ensemble 1 · "strings"
const string_ensemble_1 = note(`<
A@4 B@2 C@2 D E A@2 B@2 F G H D@2 I@2 J K L M C@2 M N K O M N P O M@2 Q@2 D@2 F G H B@2 R@2 J K L M S@2 M N K O M N P
T M U V W X Y Z AA AB AA AC AD AE AF AG AD AE AH AI AJ@2 AK AL AD AM@2 ~
>`.pickRestart({
A: "[b5,g#6]/2", B: "[f#5,d#6]/2", C: "[g#5,e6]", D: "[f#5,d#6]", E: "[f#5,d#6] [g5,d#6]", F: "[g#5,d#6] [a#5,f#6]",
G: "[f#5,c#6] [b5,f#6]", H: "[b5,e6]", I: "[g#5,d#6]", J: "[f#5,c#6]", K: "[b5,f#6]", L: "[a5,f#6]", M: "[e5,c#6]",
N: "[a5,e6]", O: "[a5,d6] [g#5,e6]", P: "[c#6,f#6]", Q: "[b5,g#6]", R: "[g#5,d#6]/2", S: "[g#5,e6]/2", T: "[a5,d6]",
U: "[a5,f6] [a5,d6]", V: "[g5,d6] [g5,e6]", W: "[c6,f6] [b5,f6]", X: "[g5,e6]", Y: "[c6,g#6] [c6,f6]",
Z: "[a#5,d#6] [g#5,d#6]", AA: "[g#5,c#6] [c6,g#6]", AB: "[c6,f6]@2 [g5,d#6] [g#5,d#6]", AC: "[a#5,f6] [a5,f6]",
AD: "[f5,d6]", AE: "[a#5,f6]", AF: "[g5,c6]", AG: "[a#5,d#6] [a5,f6]", AH: "[g5,d6]", AI: "[a#5,d#6]", AJ: "[a#5,g6]",
AK: "[a5,f6]", AL: "[g5,d6] [a#5,d#6]", AM: "[f5,d6]/2",
})).s("gm_string_ensemble_1").gain(0.38).pan(0.4)
// chords · piano · "piano1"
const piano = note(`<
~ A B@2 C D E F G H B@2 C D I J K L G M N O P Q R S E T U V W X U Y W X@2 B@2 C D I Z AA L G N M AB AC Q R S@2 T U V
AD X AE AF AG T AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AR AS AV AW AX@2 AY AZ AR BA@2 ~
>`.pickRestart({
A: "~@4 d#4@2 g#4@2 ~@2 b3@2 ~@4 d#4@2 g#4@2 d#4@2 b3 ~, g#3@9 ~@3 g#3@8 ~@4, ~@2 b3@5 ~ d#4@4 ~@2 b3@5 ~@5",
B: "[~@10 b3@2 ~@20 d#4@2 ~ d#2 ~@8 d#4@2 b3 ~, g#3@11 ~ g#3@11 g#2@11 b3@2 ~@2 b3@8 ~@2, ~@2 b3@8 ~@4 b3@8 b3@2 g#3@11 ~ [g#2,g#3]@11 ~, ~@2 d#4@2 d#4@2 ~@2 d#4@2 d#4@2 ~ b3@4 d#4@3 d#4@2 ~@2, ~@6 g#4@5 ~@7 g#4@6 ~@4 d#4@2 g#4@6 ~@6 g#4@4 ~@2]/2", // G#
C: "~@2 f#4 a#4 ~ d#4 ~@2 f#4 a#4 ~ d#4, a#3@11 ~ a#3@9 ~@3, ~ d#4@2 ~ f#4@2 ~ d#4@2 ~ f#4@2",
D: "~@4 f#4@2 a#4@2 ~@2 d#4@2 ~@4 f#4@2 a#4@2 f#4@2 d#4 ~, a#3@9 ~@3 a#3@8 ~@4, ~@2 d#4@5 ~ f#4@4 ~@2 d#4@5 ~@5",
E: "~@20 g#4@2 e4 ~, [e2,b3]@11 e2@12 ~, ~ e4@4 e4@2 e4@4 ~, ~@4 g#4@4 g#4@8 g#4@2 b4@5 ~, ~@6 b4@5 ~ b3@11 ~", // E5
F: "~@10 c#4@2 ~@10 c#4 ~, g#3@11 ~ [c#2,g#3]@12, ~ c#4@4 ~@2 c#4@4 ~, ~ e4!2 ~ e4!2, ~@6 g#4@5 ~@7 g#4@6", // C#5
G: "~@10 d#4@2 ~@10 d#4 ~, b3@11 ~ [b2,b3]@12, ~ d#4@4 ~@2 d#4@4 ~, ~ f#4!2 ~ f#4!2, ~@6 b4@5 ~@7 b4@6", // B
H: "~@8 f#4@2 d#4 ~@9 g4@2 d#4 ~, b2 f2, b3@5 ~ a#3@5 ~, ~ d#4@4 ~@2 d#4@4 ~, ~@2 f#4 b4@2 ~@3 g4 a#4@2 ~",
I: "~@8 f#4@2 d#4 ~@11 f#3 ~, e2@12 [e2,f#3]@9 e2@2 ~, b3@10 ~@4 a#3@9 ~, ~@2 d#4@8 ~@6 c#4@4 c#4@3 ~, ~@4 f#4@2 g#4@4 ~@8 f#4@5 ~", // Esus2
J: "~@10 a#3 ~@9 d#4@2 b3 ~, [d#2,a#3]@9 d#2@2 ~ g#2@12, ~@2 c#4@9 ~ g#3@10 ~@2, ~@4 d#4@4 d#4@3 ~@3 b3@8 ~@2, ~@6 f#4@5 ~@5 d#4@2 f#4@4 ~@2", // D#5
K: "~@20 c#4@2 b3 ~, [c#2,g#3]@11 c#2@12 ~, ~ b3@4 b3@2 b3@4 ~, ~@4 c#4@4 c#4@8 c#4@2 e4@5 ~, ~@6 e4@5 ~ g#3@11 ~", // C#5
L: "~@20 f#4@2 d#4 ~, [b2,b3]@11 b2@12 ~, ~ d#4@4 d#4@2 d#4@4 ~, ~@4 f#4@4 f#4@8 f#4@2 b4@5 ~, ~@6 b4@5 ~ [b1,b3]@11 ~", // B
M: "~@20 f#4@2 d#4 ~, [e2,b3]@11 e2@12 ~, ~ d#4@4 d#4@2 d#4@4 ~, ~@4 f#4@4 f#4@8 f#4@2 g#4@5 ~, ~@6 g#4@5 ~ b3@11 ~", // E5
N: "~@10 d#4@2 ~@10 d#4 ~, b3@11 ~ [e2,b3]@12, ~ d#4@4 ~@2 d#4@4 ~, ~ f#4!2 ~ f#4!2, ~@6 g#4@5 ~@7 g#4@6", // E5
O: "~@10 c#4@2 ~@10 c#4 ~, a#3@11 ~ [d#2,a#3]@12, ~ c#4@4 ~@2 c#4@4 ~, ~ d#4!2 ~ d#4!2, ~@6 f#4@5 ~@7 f#4@6", // D#5
P: "~@10 b3@2 ~@10 b3 ~, g#3@11 ~ [g#2,g#3]@12, ~ b3@4 ~@2 b3@4 ~, ~ d#4!2 ~ d#4!2, ~@6 f#4@5 ~@7 f#4@6", // G#
// … 81 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.