0:00/0:00
// Uptown Girl — Billy Joel
// 130 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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 · "FINGERDBAS"
const bass = note(`<
~ A B C D E F G H I J K L M N O P Q R S T U V W X U V Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
AU AV AW AX I AY AZ BA U BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS AL BT BU BV BW AQ BX BY BZ CA CB CC CD
CE CF C CG CH CI S CJ CA CB CC CD CE CF C CG CH CI S CJ
>`.pickRestart({
A: "e1 ~@3 e1 ~@2 e1 e1@2 e1 ~@3 e1@2", B: "f#1@2 ~@2 f#1 ~@2 f#1 f#1@2 f#1 ~ f#1@2 f#1@2",
C: "g#1 ~@3 g#1 ~@2 g#1 g#1@2 g#1@2 ~@2 g#1@2", D: "a1@2 ~@2 a1@2 ~ a1 b1 ~ b1 ~ b0 c#1 e1 ~",
E: "e1@2 ~@2 e1 ~@2 e1 e1@2 e1 ~ e1@2 e1 ~", F: "f#1 ~@3 f#1 ~@2 f#1 f#1@2 f#1@2 ~@2 f#1@2",
G: "g#1@2 ~@2 g#1 ~@2 g#1 g#1@2 g#1 ~ g#1@2 g#1 ~", H: "a1 ~ a1@2 g#1@2 a1@2 b1 ~ b1@2 b0@2 c#1@2",
I: "e1@2 ~@2 e1@2 ~ e1 e1@2 e1@2 ~@2 e1@2", J: "f#1 ~ f#1 ~ f#1@2 ~ f#1!2 ~ f#1 ~ f#1 ~ f#1 ~",
K: "g#1 ~ g#1 ~ g#1 ~@2 g#1 g#1@2 g#1 ~ g#1@2 g#1 ~", L: "a1@2 a1@2 g#1@2 a1@2 b1 ~ b1@2 c#2@2 d#2@2",
M: "e2@2 ~@2 e2 ~@2 b1 e1 ~ e1 ~ e1@2 e1@2", N: "f#1@2 ~@2 f#1 ~@2 f#1!2 ~ f#1 ~ f#1 ~ f#1 ~",
O: "g#1 ~@3 g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1@2 g#1 ~", P: "a1 ~ a1@2 g#1@2 a1@2 b1 ~ b1@2 c#2@2 d#2 ~",
Q: "e2@2 ~@2 e2@2 ~ b1 e1 ~ e1@2 e1@2 e1@2", R: "f#1@2 ~@2 f#1@2 ~ f#1!4 ~ f#1 ~ f#1!2",
S: "g#1@2 ~@2 g#1 ~@2 g#1 g#1@2 g#1 ~@3 g#1@2", T: "a1 ~ a1@2 g#1@2 a1@2 b1 ~ b1@2 f#1@2 b1@2",
U: "c2@4 ~@2 c2 ~ c2@3 ~ c2@2 b1@2", V: "a1@4 ~@2 a1 ~ a1@3 ~ a1@2 e1@2", W: "d1@4 ~@2 d1 ~ d1@4 a1@2 d1@2",
X: "g1@3 ~ g1@3 ~ g1@3 ~ g1@2 b1@2", Y: "d1@4 ~@2 d1 ~ b0@3 ~ b1@4", Z: "e1@2 ~@2 e1@3 ~ e1 ~ f#1 ~ g#1@2 e1@2",
AA: "a1@3 ~ a1@3 ~ a1@2 ~@2 a1@2 g#1@2", AB: "f#1@3 ~ f#1@2 ~@2 f#1@2 ~@2 f#1 ~ f#1!2",
AC: "b1@3 ~ b1@2 ~@2 b1@3 ~ b1@2 ~@2", AD: "b1@2 ~@2 b1@3 f#1 b1 f#1 b0@2 c#1@2 d#1 ~",
AE: "e1@3 ~ e1 ~@2 e1!4 ~ e1 ~ e1!2", AF: "f#1@2 ~@2 f#1@2 ~ f#1!2 ~ f#1@2 f#1 ~ f#1 ~",
AG: "g#1@2 ~@2 g#1 ~ g#1@2 g#1 ~ g#1 ~ g#1@3 ~", AH: "a1 ~ a1@2 g#1@2 a1@2 b1@2 a1@2 g#1@2 f#1@2",
AI: "e1@2 ~@2 e1 ~@2 e1 e1@2 e1@2 e1@2 e1@2", AJ: "f#1@2 ~@2 f#1@2 ~ f#1 f#1@2 f#1 ~ f#1@2 f#1@2",
AK: "g#1@2 ~@2 g#1@2 ~ g#1 g#1@2 g#1 ~ g#1@4", AL: "a1 ~ a1@2 g#1@2 a1@2 b1 ~ b1@2 a1@2 b1@2",
AM: "g1@2 g1@3 ~ g1 ~ g1 ~ g1@2 ~@2 g1@2", AN: "a1@2 a1@3 ~ a1 ~ a1 ~ a1@2 ~@2 a1@2",
AO: "a#1@2 a#1@3 ~ a#1 ~ a#1@2 a#1@2 ~@2 a#1@2", AP: "b1@2 b1@2 ~@2 b1@2 a1@2 a1@3 ~ a1@2",
AQ: "g1 ~ g1@2 ~@2 g1 ~ g1 ~ g1@2 ~@2 g1@2", AR: "a1 ~ a1@2 ~@2 a1 ~ a1@2 a1@3 ~ a1@2",
AS: "a#1 ~ a#1@2 ~@2 a#1 ~ a#1 ~ a#1@3 ~ a#1@2", AT: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 b1 ~",
AU: "e1@2 ~@2 e1@2 ~ e1!4 ~ e1 ~ e1 ~", AV: "f#1@2 ~@2 f#1@2 ~ f#1 f#1@2 f#1@2 ~@2 f#1@2",
AW: "g#1@2 ~@2 g#1 ~@2 g#1 g#1@2 g#1@2 ~@2 g#1@2", AX: "a1@2 a1@2 g#1@2 a1@2 b1 ~ b1@2 b0@2 c#1@2",
AY: "f#1@2 ~@2 f#1@2 ~ f#1 f#1@2 f#1@2 f#1@2 f#1@2", AZ: "g#1@2 ~@2 g#1@2 ~ g#1@3 g#1@2 g#1 ~ g#1@2",
BA: "a1 ~ a1@2 g#1@2 a1@2 b1@4 a1 ~ b1@2", BB: "a1@5 ~ a1 ~ a1@3 ~ a1@2 e1@2", BC: "d1@5 ~ d1 ~ d1@4 d2@2 a1@2",
BD: "g1@3 ~ g1@3 d2 g2 d2 g1@2 a1@2 b1@2", BE: "c2@3 ~ c2 ~ c2 ~ c2@3 ~ c2@2 b1@2", BF: "a1@5 ~ a1 ~ a1@4 ~@2 a1@2",
BG: "b1!2 ~ b1!3 ~ b1", BH: "e1 ~ e1 ~ e1@2 e1 ~ e1@2 e1 ~ e1@3 ~", BI: "a1@4 ~@2 a1 ~ a1 ~ a1@3 ~ g#1@2",
BJ: "f#1@2 ~@4 f#1 ~ f#1 ~ f#1@2 ~@2 f#1 ~", BK: "b1 ~ b1 ~@3 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
BL: "b1 ~ b1 ~ b1 ~ b1 ~ b1!2 a1 ~ g#1@2 f#1@2", BM: "e1@2 ~@2 e1@3 e1!4 ~ e1 ~ e1 ~",
BN: "f#1 ~@3 f#1@2 ~ f#1 f#1@2 f#1@2 ~@2 f#1@2", BO: "g#1@2 ~@2 g#1@2 ~ g#1!2 ~ g#1@2 ~@2 f#1 g#1",
BP: "a1@3 ~ a1@2 g#1 a1 b1@2 a1 ~ g#1@2 f#1@2", BQ: "e1@2 ~@2 e1@2 ~ b1 e2 b1 e1 ~ e1@2 e1@2",
BR: "f#1@3 ~ f#1 ~@2 f#1 f#1@2 f#1 ~@3 f#1@2", BS: "g#1@2 ~@2 g#1@2 ~ g#1@2 ~ g#1 ~@3 g#1@2",
BT: "g1@4 ~@2 g1 ~ g1@4 ~@2 g1@2", BU: "a1@4 ~@2 a1 ~ a1 ~ a1@3 ~ a1@2", BV: "a#1@4 ~@2 a#1 ~ a#1@2 a#1@2 ~@2 a#1@2",
BW: "b1 ~ b1 ~ b2 ~ b1 ~ a1 ~ a1@2 a2@2 a1 ~", BX: "a1 ~ a1@2 ~@2 a1 ~ a1@2 a1@2 ~@2 a1@2",
BY: "a#1@2 a#1@2 ~@2 a#1 ~ a#1@2 a#1@2 ~@2 a#1@2", BZ: "b1 ~ b1@3 ~ b1@2 b2 a2 g#2 f#2 e2 d#2 c#2 b1",
CA: "e2@3 ~ e2@2 ~ b1 e2 b1 e1@3 ~ e1@2", CB: "f#1@3 ~ f#1@2 ~ f#1!3 f#1@2 ~@2 f#1!2",
CC: "g#1@2 ~@2 g#1@2 ~ g#1 g#1@2 g#1 ~@3 g#1@2", CD: "a1 ~ a1@2 g#1@2 a1@2 b1 ~ b1 ~ b1 c#2 e2@2",
CE: "e1@2 ~@2 e1 ~@2 e1 e1@2 e1@2 ~@2 e1@2", CF: "f#1@3 ~ f#1 ~@2 f#1 f#1@2 f#1@2 ~@2 f#1@2",
CG: "a1 ~ a1@2 g#1@2 a1@2 b1 ~ b1@2 c#2 d2 e2@2", CH: "e1@2 ~@2 e1 ~@2 e1!2 ~ e1@2 ~@2 e1@2",
CI: "f#1 ~@3 f#1 ~@2 f#1 f#1@2 f#1 ~@3 f#1!2", CJ: "a1 ~ a1@2 g#1@2 a1@2 b1 ~ b1@2 c#2@2 e2@2",
})).s("gm_electric_bass_finger").gain(0.3)
// chords · piano · "A.PIANO 2"
const piano = note(`<
~ A B C D E F G H I J K L M F N O P Q R S T U V W X U Y Z AA AB AC AD AE AF AE AG AE AF AE AG AH AI AJ AK AL AM AN AO
AE AF AE AG AE AF AE AP AQ AR AS AT AU AV AW AX AY AZ BA BB AE AF AE AG AE AF AE AG BC BD AN BE BF BG BH BI AE AF AE
AG AE AF AE AG AE AF AE AG AE AF AE AG AE AF AE AG AE AF AE AG
>`.pickRestart({
A: "[g#4,b4]@2 ~@2 [e4,g#4,b4]@2 ~@2 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3, [e4,e5] ~@3 e5 ~@11", // G#m E
B: "[e4,a4,c#5,e5]@2 ~@2 [e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5]@2 ~@2 [e4,a4,c#5,e5]@2 ~@2", // A
C: "[e4,g#4,b4,e5]@2 ~@2 [e4,g#4,b4,e5]@2 ~@2 [e4,g#4,b4,e5]@2 ~@2 [e4,g#4,b4,e5]@3 ~", // E
D: "[e4,a4,c#5,e5]@2 ~@2 [e4,a4,c#5,e5]@3 ~ [f#4,b4,d#5]@2 ~@2 [f#4,b4,d#5]@2 ~@2", // A B
E: "[e4,g#4,b4]@2 ~@2 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3 [g#4,b4,e5] ~@3, e5 ~@11 e4@2 ~@2", // E
F: "[a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3, e4 ~@7", // A
G: "[g#4,b4]@2 ~@2 [g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4]@2 ~@2, [e4,e5] ~@3 e4@2 ~@6 e5 ~@3", // G#m E
H: "[e4,a4,c#5,e5]@2 ~@2 [a4,c#5,e5]@2 ~@2 [f#4,b4,d#5]@2 ~@2 [f#4,d#5] ~@3, ~@4 e4 ~@7 b4@2 ~@2", // A B D#m
I: "[e4,b4]@2 ~@2 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4]@2 ~@2 [e4,g#4,b4,e5] ~@3, [g#4,e5] ~@7 e5 ~@7", // E5 E C#m
J: "[e4,a4,c#5,e5]@2 ~@2 [a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3, ~@2 e4 ~@5", // A
K: "[e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3 [e4,b4]@2 ~@2, ~@12 [g#4,e5] ~@3", // E E5 C#m
L: "[e4,a4,c#5] ~@3 [e4,a4,c#5]@2 ~@2 [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~@3", // A B
M: "[e4,g#4,b4]@2 ~@2 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3, e5 ~@15", // E
N: "[g#4,b4]@2 ~@2 [e4,g#4,b4,e5] ~@3 [g#4,b4,e5] ~@3 [e4,b4]@2 ~@2, [e4,e5] ~@7 e4@2 ~@2 [g#4,e5] ~@3", // G#m E E5 E C#m
O: "[e4,c#5,e5]@2 ~@2 [e4,c#5,e5] ~@3 [f#4,d#5]@2 ~@2 [f#4,d#5] ~@3, a4 ~@3 a4@2 ~@2 b4 ~@3 b4@2 ~@2", // C#m D#m
P: "[e4,g#4,b4,e5] ~@3 [g#4,b4]@2 ~@2 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3, ~@4 [e4,e5] ~@11", // E G#m E
Q: "[e4,a4,c#5,e5] ~@3 [e4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3, ~@2 a4 ~@5", // A C#m A
R: "[g#4,b4,e5] ~@3 [g#4,b4,e5] ~@3 [g#4,b4,e5] ~@3 [e4,b4]@2 ~@2, e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 [g#4,e5] ~@3", // E E5 C#m
S: "[a4,c#5] ~@3 [e4,a4,c#5] ~@3 [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~@3, e4 ~@7", // A B
T: "[c4,e4,g4]@5 ~ [c4,e4,g4] ~ [c4,e4,g4]@6 ~@2", U: "[a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4] ~ [a3,c4,e4,g4]@6 ~@2",
V: "[a3,d4,f4]@4 ~@2 [a3,d4,f4] ~ [a3,d4,f4]@6 ~@2", W: "[g3,b3,d4,f4]@4 ~@2 [g3,b3,d4,f4] ~ [g3,b3,d4,f4]@6 ~@2",
X: "[c4,e4,g4]@4 ~@2 [c4,e4,g4] ~ [c4,e4,g4]@6 ~@2", Y: "[a3,b3,d4,f4]@4 ~@2 [a3,b3,d4,f4] ~ [a3,b3,d4,f4]@5 ~@3",
Z: "[e3,g#3,d4,e4]@4 ~@2 [e3,g#3,d4,e4] ~ [e3,g#3]@3 ~ [e3,g#3,d4]@3 ~, ~@2 e4 ~, ~@8 d4 ~@7", // E7 E E7
AA: "[a3,c#4,e4]@5 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@7 ~", AB: "[a3,c#4,e4]@4 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@4 ~@4",
AC: "[d4,f#4,d5]@3 ~ [c#4,f#4,c#5]@2 ~@2 [b3,d4,f#4,b4]@5 ~@3, b4 ~@15", // D F#5 Bm
AD: "[d#4,f#4,b4,d#5]@3 ~ [c#4,f#4] ~@3 [b3,d#4,f#4,b4]@5 ~ e4 ~, ~@2 c#5 ~@5", // B F#5 B
AE: "[e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@3", // E
AF: "[e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3", // A
AG: "[e4,a4,c#5,e5] ~@3 [e4,a4,c#5,e5] ~@3 [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~@3", AH: "[b3,d4]@7 ~, g4",
AI: "[a3,c#4,e4]@15 ~, a4@13 ~@3", AJ: "[a#3,c#4,f#4]@7 ~", AK: "[b3,d4,f#4] [a3,c#4,e4]", AL: "[g3,b3,d4]",
AM: "[c#4,e4]@15 ~, a3@13 ~@3", AN: "[f#3,c#4,f#4]@13 ~@3", AO: "[b3,e4] ~ b3 ~, f#4@13 ~@3, ~@4 d#4@9 ~@3",
AP: "[e4,a4,c#5] ~@3 [e4,a4,c#5] ~@3 [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~@3", // A B
AQ: "[e4,g4,c5]@4 ~@2 [c4,e4,g4] ~ [c4,e4,g4]@7 ~", AR: "[a3,c4,e4,g4]@5 ~ [a3,c4,e4] ~ [a3,c4,e4]@7 ~",
AS: "[a3,f4]@5 ~ [f3,a3,d4] ~ [f3,a3,d4]@6 ~@2, d4@3 ~@13", AT: "[g3,d4,f4]@3 ~ [g3,c4,e4]@3 ~ [g3,b3,d4]@7 ~",
AU: "[g3,c4,e4,g4]@5 ~ [g3,c4,e4] ~ [g3,c4]@6 ~@2, ~ e4", AV: "[g3,c4,e4,g4]@4 ~@2 [g3,c4,e4] ~ [g3,c4,e4]@7 ~",
AW: "[a3,b3,f4]@6 [a3,b3,d4] ~ [a3,b3,d4]@7 ~, d4 ~@3", AX: "[g#3,b3,d4,f4]@4 [g#3,c4,e4]@4 [g#3,b3,d4]@5 ~@3",
AY: "[e4,a4,c#5,e5]@15 ~", AZ: "[e4,a4,c#5]@7 ~", BA: "[d4,f#4,b4,d5]@2 [c#4,f#4,c#5] ~ [b3,f#4,b4]@2 ~@2",
BB: "[d#4,b4,d#5]@2 [c#4,c#5] ~ [b3,d#4,f#4,b4]@2 ~@2", BC: "[b3,d4,g4]@15 ~", BD: "[a3,c#4,e4,a4]@15 ~",
BE: "e4@2 d4@2 [b3,c#4]@2 b3 ~, [b3,f#4]@7 ~ f#4@7 ~", // Bsus2 B5
BF: "g3@3 ~@5 b3@4 d4@3 ~, g4@13 ~@3, [b3,d4]@3 ~@5, ~@4 g3@9 ~@3", // Bm
BG: "c#4@4 e4@4 a4@4 g4 ~@3, a3@7 ~, a4@7 ~@9, e4 ~@7", BH: "~@4 e4@3 ~ g4@4 f#4 ~@3, c#4@13 ~@3, [f#3,f#4]@7 ~@9",
BI: "b3 ~ b3 ~, [f#4,b4]@13 ~@3, e4@3 ~ d#4@8 ~@4", // B5
})).s("gm_piano").gain(0.36).pan(0.3)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
~ A B@4 C@2 D E F G H I J K L M N O P Q R S T U V W X ~@4 Y@3 Z@2 AA@2 AB ~@8 AC AD AE AF@2 AG AH AI AJ AK AL AM AN AO
AP AQ ~@3 AR AS AT AU AV@2 AW AX AY ~@8 AZ@2 BA BB@2 BC BD BE BF BG BH BI AZ@2 BA BB@2 BC BD BE BF BG BH BI
>`.pickRestart({
A: "[e4,b4,e5] ~@3 [e4,b4,e5] ~@4 [b4,e5] ~@2 [e4,b4,e5] ~@2 e4, ~@9 e4@3 ~@4", // E5
B: "[[a4,e5]@2 ~@2 [e4,a4,e5] ~ e5 ~@2 [a4,e5] ~@2 [a4,e5] ~ a4 ~ [b4,e5] ~@3 [e4,b4,e5] ~ b4 ~@2 [b4,e5] e4@2 [b4,e5] ~ [b4,e5] ~ [a4,e5] ~@3 [e4,a4,e5] ~ a4 ~@2 [b4,d#5] f#4 ~ [f#4,b4,d#5] ~@3 [b4,e5] ~@3 [e4,b4,e5] ~ [b4,e5] ~@2 [b4,e5] ~@2 [e4,b4,e5] ~ [b4,e5] e4, ~@8 e4@2 ~@5 e4@3 ~@6 e4@2 ~@5 e4@3 ~@13 e4@2 ~@15]/4", // A5 E5 A5 B E5
C: "[[e4,a4,e5] ~@3 [e4,a4,e5] ~ a4 e4 ~ [e4,a4,e5] e4@2 [a4,e5] ~ [a4,e5] ~ [b4,e5] ~@3 [b4,e5] ~ e4@3 [b4,e5] e4!2 [b4,e5] ~ [b4,e5] e4, ~@15 e4@2 ~@15]/2", // A5 E5
D: "[a4,e5]@2 ~@2 [a4,e5] ~ a4!2 e4 [f#4,b4,d#5] ~@2 [f#4,d#5] ~ [f#4,d#5] e4", // A5 B D#m
E: "[b4,e5]@2 ~@2 [b4,e5] ~ b4 [e4,b4] e4 [b4,e5] e4 ~ [b4,e5] ~ b4 e4, ~@11 e4@2 ~@3", // E5
F: "[a4,e5]@2 ~@2 [e4,a4,e5] ~ e4 ~ e4 [a4,e5] e4!2 [a4,e5] ~ [a4,e5] e4", // A5
G: "[e4,b4,e5] ~@3 [e4,b4,e5] ~ [e4,b4,e5] e4!2 [e4,b4,e5] e4!2 [e4,b4,e5] ~ b4 e4", // E5
H: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ [e4,a4] [a4,e5] ~ [b4,d#5] ~ e4 [f#4,b4,d#5] ~ [f#4,b4,d#5] e4", // A5 B
I: "[b4,e5]@2 ~@2 [e4,b4,e5] ~ [e4,b4] b4 ~ [e4,b4,e5] ~ e4 [b4,e5] ~@3", // E5
J: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ [e4,a4,c5,e5] e4!2 [e4,a4,e5] ~ e4 [e4,a4,e5] ~ a4 e4", // A5 Am A5
K: "[e4,b4,e5] ~@3 [e4,b4,e5] ~ [e4,b4] ~ e4 [e4,b4] ~@2 [b4,e5] ~ b4 ~, ~@11 e4@2 ~@3", // E5
L: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ a4 ~@2 [f#4,b4] b3@2 [f#4,b4]@2 [f#4,b4] ~", // A5 B5
M: "[e4,b4,e5]@2 ~@2 [e4,b4,e5] ~ [e4,b4,e5] [b4,e5] e4 [e4,b4] ~ e4 [e4,b4,e5] ~ b4 e4", // E5
N: "[e4,a4,e5] ~@3 [e4,a4,e5] ~ [e4,a4] [e4,a4,e5] e4 [e4,a4,e5] ~ e4 [e4,a4,e5] ~ a4 e4", // A5
O: "[e4,b4,e5]@2 ~@2 [e4,b4] ~ [e4,b4] [b4,e5] e4 [e4,b4] ~ e4 [e4,b4,e5] ~ b4 e4", // E5
P: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ [e4,a4,e5] a4 b3 [f#4,b4] b3@2 [f#4,b4]@2 ~@2", Q: "~@4 e4@11 ~, c3, ~@2 g3@11 ~@3",
R: "~@3 c4@5, a2, ~ e3@7, ~ g3@3", S: "~@4 f4@11 ~, d3@13 ~@3, ~ a3@7",
T: "~@7 d3, ~ g3@3 g4@4, ~@4 b3@5 ~ g3@6, ~@3 d4@2 ~ d4@2", U: "~@4 e4@11 ~, c3@7 ~, ~ g3@7",
V: "~@6 g4@9 ~, e3, ~@2 g3@13 ~, ~@4 c4@11 ~", W: "~@3 f4@5, b2, ~ f3@7, ~ a3@3",
X: "~@6 e4@9 ~, e3@7 ~, ~@2 g#3@13 ~, ~@2 d4@5 ~",
Y: "[[e4,e5] ~@3 [e4,b4,e5] ~@2 b4 e4 [e4,e5] ~@2 e5 ~@3 e5@2 ~@2 [e4,e5] ~ e4 e5 e4 [e4,e5] ~@2 e5 ~@3 e5@2 ~@2 [e4,e5] ~ e4 e5 e4 [e4,e5] ~ e4 [e4,e5] ~ [e4,e5] e4, ~@11 e4@2 ~@2 e4@3 ~@9 e4@2 ~@2 e4@3 ~@14]/3", // E E5 E
Z: "[[e4,e5]@2 ~@2 [e4,e5] ~ [e4,e5] e5 e4 [e4,e5] e4 ~ e5 ~ e5 ~ e5@2 ~@2 [e4,e5] ~ [e4,e5] ~ e4 e5 ~ e4 [e4,e5] ~ [e4,e5] e4, ~@11 e4@2 ~@2 e4@3 ~@14]/2", // E
AA: "[[e4,e5]@2 ~@2 [e4,e5] ~@2 [e4,e5] ~ e5 ~ e4 [e4,e5] ~ e5 ~ e5@2 ~@2 [e4,e5] ~@2 [e4,e5] e4 e5 e4!2 e4@2 e5 e4, ~@8 e4@2 ~@5 e4@3 ~@10 e5 ~@3]/2", // E
AB: "[e4,e5]@2 ~@2 [e4,e5] ~@2 e5 ~ b4 ~@2 b4 ~ b3 ~", // E
AC: "[e4,b4,e5] ~@3 [e4,b4,e5] ~ [b4,e5] [e4,b4,e5] e4 [e4,e5] e4!2 [e4,b4,e5] ~@2 e4", // E5 E E5
AD: "[e4,a4,e5] ~@3 [e4,e5] ~@2 [e4,e5] e4 [e4,a4,e5] e4!2 [e4,a4,e5] ~ e5 ~", // A5 E A5
AE: "[b4,e5] ~@3 [e4,b4,e5] ~ [e4,b4,e5] b4 e4 [e4,b4] e4!2 [e4,b4,e5] ~ b4 e4", // E5
AF: "[[e4,a4,e5]@2 ~@2 [a4,e5] ~@2 [e4,a4,e5] e4 [e4,b4] ~@2 b4 ~ b4 ~ [b4,e5] ~@3 [e4,b4,e5] ~ b4 [b4,e5] e4 [e4,b4,e5] e4 ~ [b4,e5] ~ b4 e4, ~@15 e4@2 ~@10 e4@3 ~@2]/2", // A5 E5
AG: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ a4 [e4,a4,e5] e4 [e4,a4,e5] ~ e4 [e4,a4,e5] ~@2 e4", // A5
AH: "[e4,b4,e5]@2 ~@2 [e4,b4,e5] ~ b4 [e4,b4,e5] ~ [e4,b4,e5] ~@2 [b4,e5] ~ [b4,e5] e4, ~@11 e4@2 ~@3", // E5
AI: "[a4,b4] ~@3 [e4,a4] ~@2 [e4,a4] b3 [f#4,b4] ~ b3 [f#4,b4]@2 g3 ~, e4@3 ~@13", // Asus2 A5 B5
AJ: "~@3 g4@4 g3, c3@13 ~@3, ~@2 g3@11 ~@3, ~@4 c4@11 ~", AK: "~@3 e4@5, a2@7 ~, ~ e3@7",
AL: "~@2 a3@5 ~, d3@3 ~, ~ f3@5 ~@2", AM: "~@4 f3@2 b3@2 a3 b3 a3@2 ~@2 d3@2, g2@9 ~@7, ~@2 d3@7 ~@3 g3@4",
AN: "~@3 e4@5, c3, ~ g3@7, ~ c4@3", AO: "~@3 c4@5, a2@7 ~, ~ e3@7, ~ g3@3", AP: "~@3 d4@5, b2@7 ~, ~ f3@7, ~ a3@3",
AQ: "~@6 e4@8 e3 ~, e3@3 ~, ~@2 g#3@13 ~, ~@4 d4@11 ~", AR: "~@7 b4",
AS: "[e4,e5] ~@3 [e4,e5] ~@2 e5 e4 e5 ~ e4 [e4,e5]@2 ~@2", // E
AT: "[e4,a4,e5] ~@3 [e4,e5] ~@2 [e4,e5] e4 [e4,e5] ~@2 e5 ~@2 e4, ~@11 e4@2 ~@3", // A5 E
AU: "[e4,b4,e5]@2 ~@2 [e4,b4,e5] ~ [b4,e5] [e4,b4,e5] e4 [e4,b4] ~ e4 [e4,b4,e5] ~ b4 e4", // E5
AV: "[[e4,a4,e5] ~@3 [e4,a4,e5] ~ [a4,e5]!2 e4 [e4,b4] ~ e4 [e4,b4,e5] ~ [b4,e5] ~ [b4,e5]@2 ~@2 [e4,b4,e5] ~ [e4,b4,e5] [b4,e5] e4 [e4,b4,e5] ~@2 [e4,b4,e5] ~ [b4,e5] e4, ~@15 e4@4 ~@13]/2", // A5 E5
AW: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ [a4,e5]!2 e4 [e4,a4,e5] ~ e4 [e4,a4,e5] ~@2 e4", // A5
AX: "[e4,b4,e5]@2 ~@2 [e4,b4,e5] ~ [b4,e5]!2 ~ [e4,b4,e5] ~ e4 [e4,b4,e5] ~ b4 e4", // E5
AY: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ [a4,e5] e4 ~ [f#4,b4] e4 ~ [f#4,b4]@2 d3 ~, ~@12 e4 ~@3", // A5 B5
AZ: "[[e4,b4,e5] ~@3 [e4,b4,e5] ~ [e4,e5] ~ e4 e5 ~ e4 [e4,b4,e5] ~ b4 ~ [a4,e5] ~@3 [e4,a4,e5] ~ e5 e4 ~ e5 ~@2 [a4,e5] ~ a4 e4, ~@15 e4@4 ~@5 e4@2 ~ e4@2 ~@3]/2", // E5 E E5 A5
BA: "[e4,b4,e5]@2 ~@2 [e4,b4,e5] ~ [b4,e5]!2 e4 [e4,e5] ~ e4 [e4,b4,e5] ~ b4 e4", // E5 E E5
BB: "[[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ [a4,e5] a4 e4!2 ~@2 [e4,b4,e5] ~@3 [b4,e5] ~@3 [e4,b4,e5] ~ [e4,b4,e5] [b4,e5] ~ [e4,e5] e4!2 [e4,b4,e5] ~@2 e4, ~@15 e4@3 ~@14]/2", // A5 E5 E E5
BC: "[e4,a4,e5] ~@3 [e4,a4,e5] ~ a4 [a4,e5] e4 [e4,a4,e5] ~@2 [a4,e5] ~ a4 e4, ~@11 e4@2 ~@3", // A5
BD: "[e4,b4]@3 ~ [b4,e5] ~ b4!2 e4 b4 e4!2 [e4,b4,e5] ~ [b4,e5] e4, e5 ~@3 e4@2 ~@10", // E5
BE: "[e4,a4]@3 ~ [e4,a4,e5] ~ a4 [a4,e5] e4 [b4,e5] ~ e4 [e4,b4,e5] ~ b4 e4, e5 ~@15", // A5 E5
BF: "[e4,b4,e5] ~@3 [e4,b4,e5] ~ [e4,b4] [b4,e5] e4 [e4,b4,e5] ~ e4 [e4,b4,e5] ~ [b4,e5] e4", // E5
BG: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ a4 [a4,e5] ~ [e4,a4,e5] ~@2 [a4,e5] ~@2 e4, ~@11 e4@2 ~@3", // A5
BH: "[e4,b4,e5]@2 ~@2 [e4,b4,e5] ~ [b4,e5]!2 ~ b4 ~ e4 [e4,b4,e5] ~@2 e4", // E5
BI: "[e4,a4,e5]@2 ~@2 [e4,a4,e5] ~ [a4,e5]!2 ~ [e4,b4,e5] ~@2 [b4,e5] ~ [b4,e5] [e4,f4], ~@11 e4@2 ~@3", // A5 E5 Fmaj7
})).s("gm_electric_guitar_clean").gain(0.2).pan(0.8)
// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note(`<
~ A B ~ C D ~@3 E F G H ~@2 I J ~@3 K L ~@10 M ~ N ~ O ~ G ~ K ~@9 P@2 Q R S G T U V W ~@9 K X Y Z AA AB AC AD ~@8 AE
AF K AG ~ AH AI AJ O AK AL R AE AF K AG ~ AH AI AJ O AK AL R
>`.pickRestart({
A: "~@6 b4 ~@9", B: "e4@2 ~@5 a4 ~@3 e4!2 ~@3", C: "~@14 [b4,d#5] ~", D: "~@4 e4 ~@3", E: "~@4 e4 ~@2 e5 ~@8",
F: "~ e4 ~@14", G: "~@14 e4 ~", H: "~@6 e5 ~@2 a4 ~@6", I: "~@9 e5 ~@5 e4", J: "~@9 b3 ~@5 b3", K: "~@7 e4 ~@8",
L: "~@14 g3 ~", M: "~@14 f4 ~", N: "~@14 e5 ~", O: "~@7 e4 ~@6 e4 ~",
P: "[~@6 e5 ~@8 e4@2 ~@6 e4 ~ e5 ~@4 [e4,e5] ~]/2", Q: "~@4 e4 ~ [a4,e5] ~@5 e4 ~@3", R: "~@6 e4!2 ~@8",
S: "~@6 e4 ~@7 a4 ~", T: "~@10 b3 ~@5", U: "~@7 e3", V: "~ g3@3", W: "~@6 c4@7 ~@3", X: "~@14 [e4,e5] ~",
Y: "~@9 e5 ~@4 [e4,e5] ~", Z: "~@9 e5 e4 ~@3 e4 ~", AA: "~@11 e4 ~@4", AB: "~@14 a4 ~", AC: "~@7 e4 ~@6 e5 ~",
AD: "~@6 e4 ~@9", AE: "~@10 e4 ~@3 e4 ~", AF: "~@6 [e4,a4] ~@2 a4 ~@4 e4 ~", AG: "~@7 [e4,e5] ~ b4 ~@4 [b4,e5] ~",
AH: "~@7 e4 ~@2 e4 ~@3 e5 ~", AI: "~@7 [e4,e5] ~@8", AJ: "~@6 e5 e4 ~@8", AK: "~@6 e4!3 ~@7",
AL: "~@6 e4 ~@2 [e4,e5] ~@4 b4 ~", // E
})).s("gm_electric_guitar_clean").gain(0.12).pan(0.8)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~ A B C D E ~@6 F G H I J K L M N O P Q R S P Q T U@2 V W X Y M Z AA Y M AB AC AD AE AF AG AD AE AH AI@2 L AJ AK@4
AL@2 AM AN AO P Q T AP AQ AR AS AT Y M AU AV Y M AW AX AY AZ BA BB AY BC BD BE BF BG BH BI BF BG BJ BI BF BG BJ BE BF
BG BH BI BF BG BJ BI BF BG BJ
>`.pickRestart({
A: "~ [e4,e5] [d#4,d#5] [e4,e5]", B: "[f#4,f#5] [e4,e5] [d#4,d#5] [c#4,c#5]",
C: "[b3,b4] [g#4,g#5] [f#4,f#5] [g#4,g#5]", D: "[a4,a5]@3 ~ [g#4,g#5]@4 [f#4,f#5]@4 [e4,e5]@3 ~",
E: "e5 ~@7, e6 ~@15", F: "~@4 [b3,b4]@2 [c#4,c#5] [d#4,d#5]", G: "[e4,e5] ~@3 [e4,e5] ~@3 [e4,e5]@8", H: "a4",
I: "~ b3, b4@15 ~", J: "[c#4,c#5] [d#4,d#5]", K: "[e4,e5]", L: "[e5,e6]", M: "[b4,b5]",
N: "[a4,a5]@4 [g#4,g#5]@2 [a4,a5]@2 [b4,b5]@7 ~", O: "~ [c4,c5] [e4,e5] [a4,a5]", P: "[g4,g5]@2 [e4,e5] [g4,g5]",
Q: "[f4,f5]@2 [d4,d5] [e4,e5]", R: "[f4,f5]@2 ~@2 [e4,e5]@3 ~ [d4,d5]@8", S: "~@2 [e4,e5] [a4,a5]",
T: "[f4,f5] [e4,e5] [d4,d5]@2", U: "[[e4,a4] [f#4,e5], c#5]/2",
V: "[d4,d5]@2 ~@2 c#4@2 ~@2 [b3,b4]@7 ~, ~@4 c#5 ~@11", // D B
W: "[d#4,d#5] ~ c#4 ~ [b3,b4]@2 [c#4,c#5] [d#4,d#5], ~@4 c#5 ~@11", // D# B C# D#
X: "[e4,e5] ~ e5 ~ [e4,e5]@2 [b4,b5]@2, ~@4 e4 ~@11", Y: "[a4,a5]",
Z: "[a4,a5]@2 g#4 [a4,a5] [b4,b5] [a4,a5] [g#4,g#5] [f#4,f#5], ~@4 g#5 ~@11", // A B A G# F#
// … 96 more lines
More by Billy Joel
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.