0:00/0:00
// We're in This Love Together — Al Jarreau
// 159 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 149 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(159/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.
// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
A@2 B@2 C@2 D E F@2 G@2 H@2 I J K@2 L@2 H@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 V@2 W@2 X@2 Y Z AA@2 AB@2 AA@2 AC AD
AE@6 AF@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 AG AH AI@2 AJ@2 AK@2 AL@4 AM@2 AN@2 AO AP AQ@2 AR@2 AS@2 AT@2 AU@2 AV@2 AW@2
AO AP AX@2 AY@2 AZ@4 AW@2 BA@2 BB@2 BC AP AX@2 AY@2 AZ@4 AW@2 BA@2 BB@2 BC AP BD@2 ~
>`.pickRestart({
A: "[~@22 c6@25 ~, [bb3,f4,a4]@23 ~, d4@7 ~@9, ~@16 f5@31 ~, ~@9 f6@14 ~]/2", // Bbmaj7
B: "[[c4,bb4,d5,eb5,g5]@21 ~ d5@7 ~ [c5,eb5,c6]@6 [bb4,bb5]@6 g5@4 ~@2, ~@7 f3@9, ~@21 eb5@8 ~@19, ~@11 g5@7 ~@6]/2", // Cm7 Cm Bb
C: "[~@22 c6@25 ~, bb4, [a4,d5,f5]@23 ~, ~@19 f6@28 ~]/2", D: "[bb4,d5,eb5,g5]@10 ~ [g4,bb4,eb5]",
E: "~@4 [g4,eb5]@2 d5@3 ~@3 [g4,eb5]@6 ~@6, ~@4 bb4@4 ~@4 bb4@9 ~@3", F: "[[a3,bb3,d4,f4]@21 ~ [c4,d4]@24 ~@2]/2",
G: "[[g3,bb3,eb4,f4]@11 [g3,bb3,eb4]@12 ~]/2", H: "[[a3,c4,d4,f4]@21 ~ [c4,d4,f4,a4]@24 ~@2]/2",
I: "[g3,bb3,eb4,f4]@19 ~@3 [g4,bb4,eb5]@2, ~@22 g5 ~", // Eb
J: "~@4 [g4,eb5,g5] ~ [f4,d5]@2 ~@4 [g4,bb4,eb5,g5]@6 bb4@4 ~@2, ~@2 bb4 ~@9", K: "[f5@21 ~ [a3,f4]@25 ~]/2",
L: "[[g3,bb3,eb4,f4]@21 ~@15 [g4,bb4]@11 ~, ~@22 [g3,bb3,eb4,f4]@25 ~]/2", // Eb Gm Eb
M: "[[g3,bb3,eb4,f4]@20 ~@2 [g4,bb4,eb5,f5,g5]@25 ~]/2", // Eb
N: "[[a3,c4,d4,f4,a4,c5,d5]@22 [f3,bb3,d4,f4,bb4,d5,f5]@25 ~]/2", // Dm7 Bb
O: "[[bb3,eb4,g4,bb4]@19 ~@3 [f3,bb3,eb4,g4,bb4,eb5,f5]@25 ~]/2", // Eb
P: "[~@22 [f3,bb3,d4,f4,f6]@25 ~, [a3,c4,d4,f4]@5 ~@7, ~@18 bb5@29 ~]/2", // Bb Dm7
Q: "[[g4,bb4,d5,eb5,g5]@21 ~ [bb4,eb5]@2 ~@4 [g4,eb5] ~@7 [g4,bb4,eb5]@5 ~ [f4,bb4,d5]@4 ~@2, ~@22 [g3,bb3,eb4]@25 ~, ~@22 g4 ~@5 bb4@2 ~@18]/2", // Ebmaj7 Eb5 Cm Eb Bb Eb
R: "[~ [a4,f5]@17 ~@4 [f3,bb3,d4,f4,f6]@25 ~, [a3,c4,d4,f4,d5]@9 bb5@14 ~]/2", // Dm Bb Dm7
S: "[[bb3,eb4,g4,bb4]@21 ~ [f3,bb3,g4,bb4,eb5,f5]@24 ~@2]/2", T: "[[ab2,bb3,db4,gb4,bb4]@23 ~]/2",
U: "[[f3,eb4,g4,bb4,eb5,f5]@4 ~@6 [f3,bb3,eb4,g4,bb4,eb5,f5]@3 ~@5 [f3,bb3,eb4,bb4,eb5,f5]@28 ~@2, bb3 ~@8 g4@13 ~@2]/2", // Eb Ebsus2
V: "[~@22 f6@25 ~, [a4,c5,d5,f5]@23 ~, ~@9 c6@14 ~]/2", // Dm7
W: "[~@22 [g5,d6]@8 c6@5 ~ bb5@6 g5@6, [g4,bb4,c5,eb5]@23 ~, ~@15 g5@5 ~@4]/2", // G5 Cm7
X: "[a5@6 f5@4 ~@12 [c5,f6]@25 ~, [f4,d5], c5@9 ~ c5@12 ~@26, ~@18 bb5@29 ~]/2", // F5 Dm
Y: "[g4,bb4,d5,g5,bb5,d6]@21 ~ [g4,bb4,eb5]@2", Z: "~@4 [g4,bb4,eb5]@2 [f4,d5]@3 ~@3 [g4,bb4,eb5]@6 ~@6",
AA: "[[bb3,c4,d4,f4]@21 ~ [c4,d4,f4]@25 ~]/2", // Bb Dm7
AB: "[~@4 f5@5 ~ eb5@5 ~ d5@6 [eb4,c5]@5 ~ bb4@5 ~ a4@5 ~ f4@8, bb3@21 ~@12 c4@6 a3@8 ~, [c4,eb4]@3 g4@2 f4@2 ~@2 d4@2 ~@5]/2", // Cm
AC: "~@4 eb4 ~ [f4,bb4] ~ bb4 ~ eb4 ~ [c4,f4,bb4]@4 ~ eb4 ~@4 [g4,eb5] ~, ~@11 bb4", // Bb5 Fsus4 Cm
AD: "~@4 [g4,db5,eb5] ~ [f4,d5]@3 ~@3 [g4,bb4,eb5]@6 [a4,c5,f5]@5 ~, ~@2 bb4 ~@9", // Eb7 Dm Eb F
AE: "[~@16 f5@6 ~@6 f5@6 ~@6 [a4,f5]@5 ~ eb5@5 ~ d5@5 ~ c5@5 ~ bb4@5 ~ a4@5 ~ g4@5 ~ f4@6 [g3,eb4]@6 [f3,a3,c4,d4]@23 ~ [a3,c4,d4,f4]@24 g3@2, [f4,d5]@46 ~@5 f4@6 eb4@6 d4@6 c4@6 bb3@6 a3@6 ~@57, a4@40 ~@5 g4@7 ~@92, ~@11 [c6,f6]@6 [c5,a5]@6 ~@49]/6", // Dm Cm Dm7 Dm F5 F
AF: "[[bb3,c4,eb4,f4]@2 ~@2 [bb3,c4,eb4,f4]@3 ~@3 g3@2 [bb3,c4,eb4,f4]@2 ~@2 [bb3,c4,eb4,f4]@2 ~@4 [g3,bb3,eb4,f4]@23 ~@3]/2", // Bbsus4 Eb
AG: "[bb3,eb4,g4] [c4,d4,f4,a4]", AH: "[d4,g4,bb4] [c4,d4,f4,a4,c5]",
AI: "[[g3,b3,e4,g4,b4,d5]@20 ~@2 [g3,c4,e4,g4,c5]@25 ~]/2", AJ: "[[c4,e4,f4,a4]@21 ~ [a3,c4,e4,f4,a4,c5]@25 ~]/2",
AK: "[b4@18 ~@4 [a3,c4,e4,g4,g5]@25 ~, [b3,d4,e4,g4]@7 ~@9, ~@9 c5@14 ~]/2", // Am7 Em7
AL: "[[a4,c5,f5,a5]@22 [c5,f5,a5]@3 ~@3 [c5,f5,a5]@2 [b4,e5]@2 ~@4 [c5,f5,a5]@9 ~ [e5,g5]@26 [b5,g6]@12 [g5,e6]@12, [c4,f4]@43 ~@3 [b3,d4,g4,b4,d5]@49 ~, g4 ~@3]/4", // F E5 F Em C F5 G
AM: "[c5@11 ~@7 f5@5 ~, [c4,e4,f4,a4,a5]@23 ~, ~@12 c5@11 ~]/2", // Fmaj7
AN: "[[d4,e4,g4,c5,d5,g5]@20 ~@2 [g3,b3,e4,g4,b4,c5,e5]@25 ~]/2", AO: "[c4,f4,a4,c5] [d4,g4,c5,d5]",
AP: "[ab4,c5,eb5]@12 [c4,f4,a4,c5,f5]@11 ~", AQ: "[[d4,e4,g4,b4]@21 ~ [e4,g4,a4,c5]@25 ~]/2",
AR: "[[e4,f4,a4,c5]@21 ~ [f5,a5,c6,e6]@13 ~ [e5,f5,a5,c6]@12, ~@11 [c4,f4,a4]@13]/2", // Fmaj7 F
AS: "[[b4,e5,g5,b5]@12 [b4,e5,g5]@9 ~ [g3,b3,c4,e4,g4,c5,e5]@25 ~, [d4,e4,g4]@7 ~@9]/2", // Em Cmaj7 Em7
AT: "[[c4,e4,f4,a4,c5,f5,a5]@21 ~ [a4,c5,f5]@2 ~@4 [a4,c5,f5] ~ [g4,c5,e5]@4 ~@2 [a4,c5,f5]@5 ~ [g4,c5]@4 ~@2, ~@22 [a3,c4,f4]@23 ~@3]/2", // Fmaj7 F C F C5 F
AU: "[[d4,e4,g4,b4,e5]@21 ~ [e4,g4,a4,c5,e5]@25 ~]/2", // Em7 Am7
AV: "[[e4,f4,a4,c5,f5,a5]@21 ~ [c5,f5,a5]@13 ~ [c5,f5]@12, ~@22 [c4,f4,a4]@25 ~]/2", // Fmaj7 F F5 F
AW: "[~ [e5,g5]@20 ~ [g3,b3,c4,e4,g4,c5,e5]@25 ~, [b3,d4,e4,g4,b4]@7 ~@9]/2", // Em Cmaj7 Em7
AX: "[[e4,g4,b4,d5]@21 ~ [c4,e4,g4,a4]@25 ~]/2", AY: "[[e4,f4,a4,c5]@21 ~ [a3,c4,f4,a4,c5]@25 ~]/2",
AZ: "[~@40 c5@5 ~@3 a4@27 ~ [a4,c5,f5,a5] ~@2 g5@3 ~@2 [a4,c5,f5,a5]@6 [a4,c5,f5]@6, [b3,d4,e4,g4]@21 ~ [c4,e4,g4,a4,c6]@25 ~ [c4,f4]@46 ~@2, ~@18 g6@15 ~ e5@10 ~@2 [c5,f5,a5]@28 ~@22, ~@16 e4@8 ~@2 [g4,c5,e5] ~@5]/4", // F Em7 Am7 F5 F C
BA: "[[c4,e4,f4,a4]@21 ~ [c4,f4,a4,c5]@25 ~]/2", // Fmaj7 F
BB: "[~@22 [b3,c4,e4,g4,c6,e6]@25 ~, [d4,e4,g4,b4]@7 ~@9, ~@16 g6@31 ~]/2", BC: "[c4,f4,a4,c5] [d4,g4,b4,d5]",
BD: "[g4,b4,d5,e5,g5]/2", // Em7
})).s("gm_epiano1").gain(0.38)
// chords · epiano1 · "E.PIANO 1" · soft notes
const epiano1_soft = note(`<
A@2 ~ B ~@3 C D@2 ~@5 E F@2 ~@10 G ~@2 H I@2 J@2 ~@8 K@2 L M ~@6 N O P@2 ~@10 G ~@2 H I@2 J@2 ~@6 Q@2 ~@5 R@3 ~@2 S@2
~ T ~@7 U ~@7 T ~@15 V ~@15 V ~@3
>`.pickRestart({
A: "[~@22 bb5@25 ~, ~@21 d4@25 ~@2]/2", B: "~@6 [eb5,g5]@3 [bb4,eb5]@2 ~", C: "~@2 f4 ~@3 [f4,d5] ~",
D: "[~@11 [f3,a3,f4]@12 ~]/2", E: "~@3 bb4 ~@5 [f4,d5]@2 ~", F: "[[a4,c5,d5]@22 [c4,d4]@25 ~]/2", G: "[c5,d5,f5]@3 ~",
H: "~@3 [f4,bb4,d5] ~@8", I: "[c5@9 ~@2 [a4,d5]@12 ~]/2", J: "[~@11 eb4@12 ~]/2", K: "[a4@22 bb4@25 ~]/2",
L: "eb4@7 ~", M: "~@6 bb4@3 ~@9 [f4,bb4,d5]@5 ~", N: "~@6 c4 ~ [c4,f4] ~@15", O: "~@2 bb4 ~@5", P: "[c5@11 ~@5]/2",
Q: "[d4@20 ~@2 b3@25 ~]/2", R: "[~@6 g5@3 ~@13 e4@49 ~]/3", S: "[~@22 c4@25 ~]/2", T: "[eb4,g5] ~", U: "~@18 e5@5 ~",
V: "eb4 ~",
})).s("gm_epiano1").gain(0.22)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~@3 A B@2 C@2 B@2 D@2 E@2 D@2 F@2 D@2 E@2 G@2 H@2 I@2 H@2 I@2 H@2 I@2 J@2 K@2 E@2 L@2 M@2 N@2 O@2 P@2 E@2 Q@2 E@2 P@2
E@2 R@2 H@2 I@2 H@2 S@2 H@2 I@2 J@2 T@2 U V W@2 X@2 Y@2 Z@2 AA AB AC AD AE@2 AF AG AH@2 AI@2 AJ@2 AI@2 AJ@2 AI@2 AK@2
AF AG AL@2 AI@2 AM@2 AN AO AL@2 AP AO AQ@2 AR AG AL@2 AI@2 AM@2 AN AO AL@2 AP AO AQ@2 AR AG AS@2 ~
>`.pickRestart({
A: "~@12 f2@4 g2@2 bb2@4 g2 ~", B: "[bb1@15 ~ c2@2 db2@3 ~ d2@24 ~@2]/2",
C: "[c2@13 ~@3 c2 ~ g2@3 ~ f2@12 ~@2 f1@4 g1@2 bb1@3 ~ c2@2]/2", D: "[c2@22 f2@13 ~ f1@4 g1@2 bb1@3 ~ c2@2]/2",
E: "[bb1@15 ~ c2@2 db2@3 ~ d2@16 ~@2 bb1@2 g1@3 ~@3]/2", F: "[bb1@15 ~ c2@2 db2@3 ~ d2@16 ~@2 bb1@2 g1@2 ~@4]/2",
G: "[c2@21 ~ f1@24 ~@2]/2", H: "[bb1@13 ~@3 f1@2 gb1@2 ~@2 g1@15 ~@3 g1@2 d2@6]/2",
I: "[c2@21 ~ f2@10 ~@2 f1 ~ f1@10 ~@2]/2", J: "[ab1@15 ~]/2", K: "[f1@3 ~@7 f2@4 ~@4 f1@23 ~@7]/2",
L: "[c2@20 ~@2 f1@10 ~@2 f2 ~ f1@4 g1@2 bb1@3 ~ c2@2]/2", M: "[bb1@15 ~ c2@2 db2@4 d2@17 ~@3 g1@3 ~@3]/2",
N: "[c2@19 ~@3 f2@17 ~ f1 ~ f1@3 ~@3]/2", O: "[bb1@20 ~@2 d2@16 ~@2 bb1@2 g1@3 ~@3]/2",
P: "[c2@20 ~@2 f1@10 ~@2 c2@2 f1@3 ~ g1@2 bb1@3 ~ c2@2]/2",
Q: "[c2@15 ~ c2 ~ c2@3 ~ f1@11 ~ f2 ~ f1@4 g1@2 bb1@3 ~ c2@2]/2", R: "[c2@20 ~@2 f1@16 ~@2 f1@7 ~]/2",
S: "[c2@21 ~ f2@10 ~@4 f1@10 ~@2]/2", T: "[f1@5 ~@5 f2@3 ~@5 f1@25 ~@5]/2", U: "c2@11 ~ bb1@12", V: "eb2@12 g1@11 ~",
W: "[c2@14 ~@2 g1 ~ ab1@3 ~ a1@16 ~@2 a1 ~ e2@5 ~]/2", X: "[d2@21 ~ g2@11 ~ g1 ~ g1@9 ~ g1 ~]/2",
Y: "[c2@16 g1@2 ab1@3 ~ a1@17 ~ e2@2 a2@2 e2@2 a1@2]/2", Z: "[d2@21 ~ g2@11 ~ g1 ~ g1@10 f1 ~]/2",
AA: "e1@9 ~ d2@4 ~@2 e2@3 ~@3 e1 ~", AB: "e1@11 ~ e2@8 ~@2 e1@2", AC: "f1@14 ~@2 c2 ~ c2@4 d2 ~",
AD: "f2@4 g2@2 f2@5 ~ d2@4 c2@2 a1@4 f1@2", AE: "[e1@15 ~ b1 ~ bb1@3 ~ a1@22 ~@2 a1 ~]/2", AF: "d2@11 ~ e2@11 ~",
AG: "bb1@11 ~ g1@10 ~@2", AH: "[c2@14 ~@2 e1@2 g1@3 ~ a1@15 ~@3 g2@2 a2@3 ~ a1@2]/2",
AI: "[d2@21 ~ g2@11 ~ g1 ~ g1@9 ~ a1@2]/2", AJ: "[c2@14 ~@2 e1@2 g1@3 ~ a1@15 ~@3 a1 ~ e2@5 ~]/2",
AK: "[c2@14 ~@2 e1 ~ g1@3 ~ a1@21 ~@3 a1 ~]/2", AL: "[c2@15 ~ e1@2 g1@3 ~ a1@17 ~ g2@2 a2@6]/2",
AM: "[c2@16 d2@2 e2@3 ~ a1@18 e2@2 a2@5 ~]/2", AN: "d2@20 ~@2 d2 ~", AO: "g2@8 ~@2 g1 ~ g1@9 ~ a1@2",
AP: "d2@14 ~@2 d2@2 a2@3 ~@3", AQ: "[c2@14 ~@2 g1 ~ g1@3 ~ a1@16 e2 ~ g2 ~ a2@2 g2 ~ a1@2]/2",
AR: "d2@11 ~ e2@7 ~ ab1 ~ a1@2", AS: "c2/2",
})).s("gm_fretless_bass").gain(0.49)
// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
A B C D E F G H G I G J K L M N G B G O P H G Q R S G T U V W X Y Z G AA AB ~@3 K V AC AD AE AF AG AH AG V AI AF AJ AF
AK AL AM AN AO AP K AP AK J AQ AR AS AP AO AR AK AR AT AP Y AU ~@6 AV AW AX AY AZ BA AX BB ~@2 BC AW AX AY AZ ~ AX BD
AZ BD AX BD AX BE AX BF BG BE AV BH BI BJ BK BL BM BN BO BD AX BP BQ BE BR BE AX BS AX BT AV BU BV BW AV BP BX BY AZ
BZ AX CA AX BP CB CC CD@2 ~
>`.pickRestart({
A: "bb3@3 ~ bb3 ~ g3@2 ~ bb3 ~@5 bb3@2 ~ g3@3 bb3 ~@2", B: "~@4 bb3 ~ g3@3 ~@3 bb3@4 ~@2 g3@3 ~@3",
C: "bb3@3 ~ bb3@2 g3@3 ~ bb3 ~@5 bb3@2 g3 ~@3 c4@2", D: "~@4 g3 ~ c4@3 ~@3 bb3@4 ~@2 g3@2 ~@4",
E: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3@2 ~@3 bb3@2 ~ g3@3 ~@3", F: "bb3@2 ~@2 gb3 ~ bb3@2 ~@2 g3 ~ bb3@4 ~@2 g3@3 ~ f3 ~",
G: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~@5 bb3 ~ g3@2 ~@2 bb3 ~", H: "~@4 bb3 ~ g3@2 ~@4 bb3@4 bb3 ~ g3@3 ~ f3 ~",
I: "~@4 bb3@2 g3@2 ~@4 bb3@3 ~ bb3 ~ g3@2 ~@4", J: "~@4 bb3@2 g3@2 ~@2 d3 ~ f3@2 ~@2 d3 ~ g3@2 ~@4",
K: "bb3@3 ~ bb3@2 g3@2 ~@2 bb3 ~@5 bb3 ~ g3@3 bb3@2 ~", L: "~@4 bb3 ~ g3@3 ~@3 bb3@4 bb3 ~ g3@4 g3 ~",
M: "a3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~@5 bb3@2 g3@2 ~@2 bb3 ~", N: "~@4 bb3 ~ c4@4 ~@2 c4@3 ~@3 bb3@3 ~@3",
O: "~@4 bb3 ~ g3@2 ~@4 f3@3 ~@3 f3@3 ~@3", P: "a3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~ g3 ~@3 bb3 ~ g3@3 bb3 ~@2",
Q: "g3 ~@3 bb3 ~ g3@2 ~@4 f3@2 ~@4 g3@3 ~@3", R: "bb3@3 ~ bb3 ~ g3@3 ~ bb3 ~@2 g3 ~@2 bb3 ~ g3@3 bb3@2 ~",
S: "~@3 bb3@2 ~ g3@3 ~@3 f3@3 ~ d3 ~ g3@3 ~@3", T: "~@4 bb3@2 g3@3 ~@3 f3@3 ~@3 f3@3 ~ g3@2",
U: "a3@4 bb3@2 g3@3 ~ bb3 ~@5 bb3@2 g3@3 ~ bb3@2", V: "~@4 bb3@2 g3@3 ~@3 f3@3 ~ d3@2 g3@3 ~@3",
W: "bb3@3 ~ bb3 ~ g3@3 ~ bb3@2 ~@4 bb3 ~ g3@2 ~ eb4@3", X: "~@4 eb4@2 d4@3 ~ g3 ~ bb3@3 ~@3 g3@3 ~@3",
Y: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~@5 bb3 ~ g3@3 ~ bb3 ~", Z: "~@4 bb3@2 g3@3 ~@3 f3@3 ~ d3 ~ g3@3 ~ e3 ~",
AA: "~@4 bb3 ~ g3@2 ~@4 f3@3 ~@3 f3@6", AB: "a3 ~@23", AC: "bb3@3 ~ bb3@2 g3@2 ~@2 bb3@2 ~@4 bb3 ~ g3@2 ~@2 c4@2",
AD: "d4@2 ~@2 g3 ~ c4@3 ~ g3 ~ bb3@3 ~ bb3 ~ g3@3 ~@3", AE: "bb3@3 ~ bb3 ~ g3@3 ~ bb3 ~@5 bb3 g3@3 ~@2 bb3 ~",
AF: "~@4 bb3 ~ g3@2 ~@4 f3@3 ~@3 g3@3 ~@3", AG: "bb3@3 ~ bb3@2 g3@3 ~ bb3 ~ g3 ~@3 bb3 ~ g3@3 ~ bb3 ~",
AH: "~@6 g3@2 ~@2 g3 ~ g3@2 ~@4 bb3@3 ~@3", AI: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3@2 ~@4 bb3@2 g3@3 ~ bb3@2",
AJ: "bb3@3 ~ bb3@2 g3@2 ~@2 bb3 ~@5 bb3@2 g3@3 ~ bb3@2", AK: "bb3@3 ~ bb3 ~ g3@3 ~ bb3 ~@5 bb3 ~ g3@3 ~ bb3 ~",
AL: "~@4 bb3 ~ g3@2 ~@4 f3@2 ~@2 d3 ~ g3@4 g3 ~", AM: "a3@3 ~ bb3@2 g3@3 ~ bb3 ~@5 bb3@2 g3@3 ~ bb3@2",
AN: "~@4 bb3@2 g3@2 ~@2 g3 ~ f3@3 ~@3 g3@3 ~@3", AO: "bb3@3 ~ bb3@2 g3@3 ~ bb3@2 ~@4 bb3@2 g3@3 ~ bb3 ~",
AP: "~@4 bb3@2 g3@3 ~@3 f3@3 ~@3 g3@3 ~ f3@2", AQ: "bb3@3 ~ bb3@2 g3@3 ~ bb3 ~@5 bb3 ~ g3@2 ~@2 bb3@2",
AR: "~@4 bb3@2 g3@3 ~@3 f3@3 ~ d3 ~ g3@3 ~ f3 ~", AS: "bb3@3 ~ bb3@2 gb3@3 ~ bb3@2 ~@4 bb3 ~ g3@3 ~ bb3@2",
AT: "bb3@3 ~ bb3 ~ g3@3 ~ bb3@2 ~@4 bb3@2 ~ g3@3 bb3@2", AU: "~@4 bb3@2 g3@2 ~@2 d3 ~ f3@4 ~@2 f3@3 ~ g3 ~",
AV: "c4@4 c4@2 a3@3 ~ c4@2 ~@4 c4@2 a3@4 c4 ~", AW: "~@4 c4@2 a3@3 ~@3 g3@3 ~ d3 ~ a3@3 ~ g3@2",
AX: "c4@3 ~ c4 ~ a3@3 ~ c4 ~@5 c4 ~ a3@3 ~ c4 ~", AY: "~@4 c4 a3@2 ~@5 c4@3 ~ c4@2 a3@2 ~@4, ~@12 a3 ~@11",
AZ: "c4@3 ~ c4@2 a3@4 c4 ~@5 c4@2 a3@4 c4 ~", BA: "~@3 c4@3 a3@3 ~@3 g3@3 ~ d3 ~ a3@3 ~ g3@2",
BB: "~@4 c4@2 a3@3 ~@3 c4@4 ~@2 a3@3 ~ g3@2", BC: "~@4 c4 ~ a3@3 ~ c4@2 ~@4 c4@2 a3@3 ~ c4 ~",
BD: "~@4 c4@2 a3@4 ~@2 g3@3 ~@3 a3@3 ~ g3@2", BE: "~@4 c4@2 a3@4 ~@2 g3@3 ~@3 g3@3 ~ a3@2",
BF: "~@4 c4@2 a3@4 ~@2 g3@3 ~ d3@2 a3@3 ~ g3@2", BG: "c4@3 c4@2 ~ a3@3 ~ c4@2 ~@4 c4 ~ a3@4 c4 ~",
BH: "~@4 c4@2 a3@3 ~@3 g3@3 ~@3 a3@3 ~ g3@2", BI: "c4@3 ~ c4@2 a3@2 ~ c4 ~@5 c4 ~ a3@2 ~@5", BJ: "~@8 c4 ~@3",
BK: "c4@3 db4 c4 ~ a3@3 ~ c4@2 ~@4 c4@2 a3@3 c4@2 ~", BL: "~@3 c4@2 a3@4 ~@2 g3@3 ~@3 a3@3 ~@2 g3@2, ~@8 d3 ~@3",
BM: "c4@3 c4@2 ~ a3@3 c4@2 ~@5 c4 ~ a3@4 c4@2", BN: "~@4 c4@2 a3@3 ~ g3 ~ g3@3 ~@3 g3@4 a3@2",
BO: "c4@3 ~ c4@2 a3@3 c4 ~@6 c4@2 a3@3 ~ c4@2", BP: "~@4 c4 ~ a3@3 ~@3 g3@3 ~@3 g3@4 a3@2",
BQ: "c4@3 ~ c4@2 a3@3 ~ c4 ~@7 a3@4 c4 ~, ~@16 c4@5 ~@3", BR: "c4@3 ~ c4@2 a3@3 ~ c4@2 g3 ~@3 c4@2 a3@3 ~ c4 ~",
BS: "~@4 c4@2 a3@4 ~@2 c4@3 ~ c4@2 a3@4 a3 ~", BT: "~@6 g3@3 ~@2 c4@3 ~@3 c4@4 ~@3",
BU: "~@4 c4@2 a3@3 ~@3 c4@4 c4@2 a3@3 ~ g3@2", BV: "c4@3 ~ c4@2 ab3@4 c4 ~@5 c4@2 a3@4 ~@2",
BW: "c4@3 ~@3 a3@3 ~@3 c4@3 ~ c4@2 a3@3 ~ a3 ~", BX: "c4@3 ~ c4@2 a3@2 ~@4 c4@3 ~ c4@2 a3@3 ~ c4 ~",
BY: "~@4 b3 ~ c4@3 ~@3 c4@3 ~ c4 ~ a3@4 g3@2", BZ: "~@4 c4@2 a3@3 ~@3 g3@2 ~@4 g3@3 ~ a3@2",
CA: "c4@4 c4 ~ a3@4 b3@2 c4@4 d4@2 ~@6", CB: "c4@3 ~@2 a3@2 ~@3 c4 ~@5 c4 ~ a3@3 ~@3, ~@2 c4 ~@9",
CC: "c4@5 ~ c4@3 ~@9 g3@4 a3 ~", CD: "[c4@7 ~]/2",
})).s("gm_electric_guitar_muted").gain(0.29).pan(0.4)
// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
~@24 A@3 ~@5 B@3 ~@29 C@3 ~@5 D@2 E ~@23 F@3 ~@5 G@3 ~@5 F@3 ~@5 G@3 ~@5 F@3 ~@5 G@3 ~@8
>`.pickRestart({
A: "[a4@21 ~ a4@5 ~ g4@6 f4@8 g4@3 ~ f4@6 eb4@6 ~@14]/3", B: "[a4@21 ~ a4@5 ~@2 g4@6 f4@5 ~ g4@6 f4@6 eb4@11 ~@8]/3",
C: "[a4@21 ~ a4@5 ~ g4@6 f4@5 ~ g4@6 f4@6 eb4@10 ~@10]/3", D: "[a4@21 ~ a4@5 ~ g4@6 f4@5 ~ g4@8]/2",
E: "f4@4 ~ eb4@11 ~@8", F: "[[b4,d5]@22 [b4,d5]@5 ~ [a4,c5]@6 [g4,c5]@5 ~ [a4,c5]@6 [g4,c5]@6 [f4,a4]@11 ~@9]/3",
G: "[[b4,d5]@22 [b4,d5]@5 ~ [a4,c5]@6 [g4,c5]@6 [g4,d5]@6 [g4,c5]@6 [f4,a4]@11 ~@9]/3", // Bm Am C5 G5 C5 F
})).s("gm_electric_guitar_jazz").gain(0.25).pan(0.4)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
~@24 A@2 B@2 C@2 D@2 E@2 B@2 F@2 G@2 ~@24 A@2 B@2 C@2 D@2 E@2 B@2 F@2 G@2 H I J@2 K@2 L@2 M@2 N@2 K@2 O@2 P Q J@2 K@2
L@2 M@2 N@2 K@2 J@2 P Q J@2 K@2 L@2 M@2 N@2 K@2 J@2 P Q J@2 K@2 L@2 M@2 N@2 K@2 J@2 P Q R@2 ~
>`.pickRestart({
A: "[[bb3,d4,f4]@12 [bb3,d4,f4] ~@9 [bb3,d4,f4]@14 [bb3,d4,f4] ~@11]/2", // Bb
B: "[[bb3,eb4,f4]@12 [eb4,f4] ~@9 [bb3,eb4,f4]@14 [eb4,f4] ~@11]/2", // Bbsus4 Ebsus2 Bbsus4 Ebsus2
C: "[[bb3,d4]@12 [d4,f4] ~@9 [bb3,d4,f4]@14 [bb3,d4,f4] ~@11, f4@11 ~@37]/2", // Bb Dm Bb
D: "[[bb3,eb4,f4]@12 [bb3,eb4,f4] ~@9 [bb3,eb4,f4]@14 [bb3,eb4] ~@11]/2", // Bbsus4 Eb5
E: "[~ [d4,f4]@11 [d4,f4] ~@9 [bb3,d4,f4]@14 [bb3,d4,f4] ~@11, bb3@13 ~@35]/2", F: "[[bb3,db4,gb4]@5 ~]/2",
G: "[[bb3,eb4,f4]@3 ~@7 [bb3,eb4,f4]@2 ~@7 [bb3,eb4,f4]@29]/2", H: "[g3,bb3,eb4]@9 ~@4 [a3,c4,f4]@8 ~@3",
I: "~ g4@7 ~@4 [c4,d4,f4]@9 ~@3, [bb3,d4] ~@2", J: "[[c4,e4,g4]@12 [c4,e4,g4] ~@9 [c4,e4,g4]@14 [c4,e4,g4] ~@11]/2",
K: "[[c4,f4,g4]@12 [f4,g4] ~@9 [c4,f4,g4]@14 [f4,g4] ~@11]/2", // Csus4 Fsus2 Csus4 Fsus2
L: "[[c4,e4]@12 [e4,g4] ~@9 [c4,e4,g4]@14 [c4,e4,g4] ~@11, g4@11 ~@37]/2", // C Em C
M: "[[c4,f4,g4]@12 [c4,f4,g4] ~@9 [c4,f4,g4]@14 [c4,f4] ~@11]/2", // Csus4 F5
N: "[~ [e4,g4]@11 [e4,g4] ~@9 [c4,e4,g4]@14 [c4,e4,g4] ~@11, c4@13 ~@35]/2", // Em C
O: "[[c4,d4,g4]@12 [d4,g4] ~@9 [c4,e4,g4]@14 [e4,g4] ~@11]/2", P: "[a3,c4,f4]@9 ~@3 [c4,d4,g4]@8 ~@4",
Q: "[bb3,eb4,g4]@7 ~@5 [c4,d4,f4]@9 ~@3", R: "[[c4,e4,g4]@7 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.3)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~@23 A B@12 C@2 D@2 E@2 F@2 ~@19 A G@2 H@2 G@2 H@2 G@2 H@2 C@2 I@2 J K L@4 M@2 N@2 O@2 P@2 Q@2 R S T@2 U@2 T@2 U@2 T@2
U@2 T@2 R S V@4 T@2 U@2 T@2 U@2 T@2 R W V@4 T@2 U@2 V@4 T@2 R W X@2 ~
>`.pickRestart({
A: "~ [bb4,eb5,f5]@3", B: "[a4@11 ~@13 [eb5,f5]@24, [d5,f5] ~, ~@11 bb4@37]/4", C: "[[bb4,db5,eb5]@15 ~]/2",
D: "[[bb4,eb5,f5]@3 ~@7 [bb4,eb5,f5]@2 ~@6 [bb4,eb5]@30, ~@9 f5@14 ~]/2", E: "[a4,d5,f5]/2",
F: "[[bb4,eb5,f5]@23 ~]/2", G: "[a4@22 bb4@25 ~, [d5,f5]]/2", H: "[bb4,eb5,f5]/2",
I: "[[bb4,eb5,f5]@3 ~@7 [bb4,eb5,f5]@2 ~@6 [bb4,eb5,f5]@30]/2", J: "[bb4,eb5,g5] [c5,f5,a5]",
K: "[d5,g5,bb5] [f5,a5,c6]", L: "[b4@11 ~@13 f5@11 f4@13, [e5,g5] a4, ~@11 c5@37]/4", M: "[b4@11 c4@13, [e4,g4]]/2",
N: "[c4,f4,g4]/2", O: "[d4,g4,b4]/2", P: "[e4,a4,c5]/2", Q: "[[c5,d5,g5]@22 [g4,b4,c5,e5]@25 ~]/2",
R: "[f4,a4,c5] [g4,c5,d5]", S: "[ab4,c5,eb5] [a4,c5,f5]", T: "[b4@11 c5@13, [e5,g5]]/2", U: "[c5,f5,g5]/2",
V: "[b4@11 ~@13 [f5,g5]@24, [e5,g5] ~, ~@11 c5@37]/4", W: "[ab4,c5,eb5]@12 ~ a4@11, ~ [c5,f5]", X: "[g4,b4,d5,e5]/2",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.6)
// other · synth brass 2 · "SYNBRASS 2"
const synth_brass_2 = note(`<
~@24 A@2 B@3 C D E F ~ G@2 H@2 ~@26 A@2 I@3 C D E F ~ G@2 H@2 ~@22 J@3 K L M N ~ O@3 ~ P Q R ~ S@3 K T M R ~ U@3 ~ P Q
// … 93 more lines
More by Al Jarreau
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.