0:00/0:00
// Stiletto — Billy Joel
// 100 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 52, 4/4 at bar 53) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 125 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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.
// other · alto sax
const alto_sax = note("<A B@2 C D@4 ~@51 E F@2 G H F@2 G I@2 ~@25 J K@3 L@4 ~@23>".pickRestart({
A: "~@15 d3",
B: "[~ [f3,g3] bb3 c4 d4@7 d4@4 d4@14 d4@3 d4@7 e4@4 f4@18 d4@6 ~ d4@3 d4@14 d4@4 db4 d4@6, ~@61 db4 ~@34]/2", // Fsus2
C: "e4@3 f4@14 ~ [f3,g3] bb3 c4 d4@7 d4@4 d4@14 d4@2", D: "[~ d4@7 e4@7 f4@28 ~ e4@28 d4@78 ~@42]/4",
E: "~@8 f4@4 d4@3 d4", F: "d4@3 d4 d4@2 e4 f4@5 d4@3 d4", G: "d4@3 d4 d4@2 e4@2 f4@8", H: "e4@8 f4@4 d4@3 d4",
I: "[e4@4 d4@9 ~@3]/2", J: "~@31 d3@3 e3 g3 a3 bb3 d4@7 d4@3",
K: "[~ d4@14 d4@3 d4@7 e4@4 f4@17 d4@7 ~ d4@3 d4@14 d4@4 d4@7 e4@3 f4@18 d4@7 d4@4 d4@14 d4@3 d4@7 e4@6]/3",
L: "[~ f4@28 ~ e4@28 d4@90 ~@44]/4",
})).s("gm_alto_sax").gain(0.57).pan(0.3)
// chords · piano · "Acc Piano"
const piano = note(`<
A@7 B@4 C D C E F G H I J K L M N O P@2 Q R S@2 T U F G H I J K L M N O P@2 Q R S@2 T V W X Y Z AA AB AC AD AE AF AG
AH AI AF AG AH AJ@2 B@3 AK C AL C AM AN@2 AO AP AQ@2 AR AS@3 AT AU AV@2 AW AX AY AZ@4 BA@8 BB@8 BC@8 BD@3
>`.pickRestart({
A: "[~@38 [f3,a3,d4]@42 [e3,g3]@14 [f3,bb3,d4]@42 ~ [e3,a3]@14 [f3,b3,d4]@56 [f3,bb3,d4,f4]@28 ~ [g3,db4,e4]@28 [f3,bb3,d4]@69 eb2@3, ~@22 bb2@5 ~]/7", // Dm Em Bb A5 Bdim Bb Dbdim Bb
B: "f2@2 f2@2 ~@3 eb2 f2@2 f2@2 ~@3 eb2",
C: "[ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3, f2!2 ~@2 f2!2 ~@2", // Ab Adim Ab Adim
D: "[ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3, f2!2 ~@2 f2!2 ~@2", // Ab Adim Ab Adim Gm Bb
E: "[ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~@4 [eb2,eb4]@3, f2!2 ~@2 f2!2 ~@2", // Ab Adim Ab Adim Gm Bb Eb
F: "[f2,a3,c4,f4]@2 [a3,c4,f4]!2 ~@3 eb4 [eb2,g3,bb3,f4]@2 [g3,bb3,f4]!2 ~@3 c4, ~ f2 ~@3 eb2 ~@2", // F Eb Gm7
G: "[d3,f3,a3,d4]@2 [d3,f3,a3,d4]@2 [c3,c4]@2 d4 c4 bb3@2 [f3,bb3,d4] ~@2 [g3,bb3,eb4]@2 c4, ~@3 bb2@5, ~@3 f3@2 ~@3", // Dm C Bb Eb
H: "[a3,c4,d4] [a3,c4,eb4] [a2,a3,c4,eb4]@2 [a3,c4,eb4]@2 c4!2 [d3,f3,a3,d4]@2 [f3,a3,d4] [f3,a3,d4]@3 g3!2, a2 ~@4 d3 ~@2", // D7 Adim Dm
I: "[bb2,g3]@3 f3 [d3,f3,a3,d4]@3 c4 [e3,g3,c4]@4 ~ c4 d4 [a3,c4,f4], ~ c3", // Eb Dm C F
J: "~ c5 d5 f5 ~ c4 d4 [g3,bb3,f4] ~ c5 d5 f5 ~@2 c4 d4, f2!2 ~@2 eb2!2 ~@2", // Gm7
K: "[d3,f3,a3,d4]@2 [d3,f3,a3,d4]@2 c3@2 ~ c4 d4 c4 bb3@4 d4!2, ~ [f3,a3,d4] f3 ~, ~@3 bb2@5", // Dm
L: "[a2,a3,c4,eb4]@2 [a2,a3,c4,eb4]@2 [a3,c4,eb4] [a3,c4,d4]!3 [d2,a3,d4]@2 [d2,a3,d4,f4]@2 [a3,d4,f4] a3!3", // Adim D7 D5 Dm
M: "g3@2 f3@2 [d3,f3,a3,d4]@3 c4 [c3,e3,g3,c4]@8, bb2 ~@3", // Dm C
N: "[f3,a3,d4]@2 [f3,a3,d4]@2 [g4,d5]@2 [f4,d5] ~@3 [d4,f4,a4] ~@3 f3@2, d2@4 d2@3 [f4,d5]@3 ~ [d4,f4,a4]@3 ~@2, ~@2 d2!2", // Dm G5 Dm
O: "[g3,db4,e4]@2 ~@6 d2@4 ~ [g3,db4,e4]@3, d2!2 ~ d2, ~@2 [g3,db4,e4]@4 [g3,db4,e4]@7 ~@3", // Dbdim
P: "[[f3,a3,bb3,d4]@2 [f3,a3,bb3,d4]@2 [g4,d5]@2 [f4,d5]@2 [f4,d5] d4@3 a3@2 f3 ~ e3@2 [e3,g3,b3,d4]@2 [e3,g3,b3,d4]@2 [e3,g3,b3,d4]@2 [eb3,g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@2 [eb3,g3,bb3,eb4] [a2,g3,db4,e4]@3, bb2@4 bb2@4 bb2@4 bb2@3 [g3,b3,d4]@3 ~@14]/2", // Bbmaj7 G5 Dm Em7 Eb A7 G
Q: "[a3,d4,f4]!2 [f4,a4] [d4,f4]!2 c4 a3 f3, d2!4", // Dm F Dm
R: "[g3,db4,e4]@2 ~@6 d3@4 d3 db3@3, d2!2 ~@2, ~ [g3,db4,e4]@2 [g3,db4,e4]@5", // Dbdim
S: "[[g3,c4,eb4]@2 [g3,c4,eb4]@2 [g4,c5] f4@3 f4 d4@3 g3@2 f3 ~ b2@2 b2@2 b2@2 b2@2 bb2@2 bb2@2 bb2@2 bb2@2, c3@4 c3@4 c3@4 c3@3 [g3,b3,d4]@9 [g3,bb3,d4]@8]/2", // Cm C5 G Gm
T: "[c3,d4,f4]!4 [c3,bb3,d4,f4]!4", // Dm7 Bb
U: "[c3,bb3,d4,f4]@2 [c3,bb3,d4,f4]@2 [c3,bb3,d4,f4]@2 [c3,bb3,d4,f4]@2 [c3,bb3,d4,f4]@2 [c3,bb3,d4,f4]@2 [c3,bb3,d4,f4]@2 ~ eb4, ~@7 c3", // Bb
V: "[c3,bb3,d4,f4]@2 [c3,bb3,d4,f4]@2 [c3,bb3,d4,f4]@2 d4 ~ c3@2 [c3,d4,ab4]@2 [c3,d4,g4]@2 [c3,d4,f4]@2, ~@3 c3 ~@4, ~@7 f4@3 ~@6", // Bb Dm7b5 Csus2 Dm7
W: "[f2,a3,c4,f4]@2 ~@7 f2 ~ a2 ~ bb2 ~ d3", X: "~ g2 ~ b2 ~ c3 ~ e3 ~ a2 ~ db3 ~ d3 ~ c3",
Y: "~ bb2 ~ d3 ~ c3 ~ [e2,ab3] a3 [f2,f3,c4,f4] ~ a2 [g3,bb3,d4,f4] bb2 ~ [d3,bb3]", // E F5 Gm7 Gm
Z: "b3 [g2,g3,d4,g4] ~ b2 [g3,c4,e4,g4] [c3,g3,c4,e4,g4] ~ [e3,c4] db4 [a2,a3,e4,a4] ~ db3 [a3,d4,f4,a4] d3 ~ c3", // G5 C A5 Dm
AA: "[d4,f4,bb4] [bb2,d4,f4,bb4] [d4,f4,bb4] [d4,f4,a4]@2 [c4,e4,g4]@2 [e2,ab3] a3 [f2,f3,a3,c4,f4] [f3,a3,c4,f4] [a2,f3,a3,c4,f4] [f3,a3,c4,f4] [bb2,f3,bb3,d4,f4] [f3,bb3,d4,f4] [d3,f3,bb3,d4,f4], ~@3 d3 ~ c3 ~@10", // Bb Dm C E F Bb
AB: "~ [g2,g3,b3,d4,g4] [g3,b3,d4,g4] [b2,g3,b3,d4,g4] [g3,b3,d4,g4] [c3,g3,c4,e4,g4] [g3,c4,e4,g4] [e3,g3,c4,e4,g4] ~ [a2,a3,db4,e4,a4] [a3,db4,e4,a4] [db3,a3,db4,e4,a4] [a3,db4,e4,a4] [d3,a3,d4,f4,a4] [a3,d4,f4,a4] [c3,a3,d4,f4,a4]", // G C A Dm Dm7
AC: "[d4,f4,bb4] [bb2,d4,f4,bb4] [d4,f4,bb4] [c4,f4,a4]@2 [c4,e4,g4]@2 [e2,ab4] a4 [c4,f4,c5]@2 [d4,f4,bb4,d5]@2 [bb2,a4] bb4 [d3,b4], ~@3 d3 ~ c3 ~@3 f2 ~ a2 ~@4", // Bb F C E F5 Bb Bbmaj7 G
AD: "[d5,g5]@3 [g2,g4]@3 [d5,f5]@3 [b2,g4]@3 ~@3 [c3,g4,c5,e5]@3 ~@4 c5@2 db5@3 [a4,e5,a5]@6 [db3,a4]@3 [d5,f5]@3 [d3,a4]@3 [c5,eb5]@3 [c3,g4]@3, ~@7 [e3,b4] ~ a2 ~@6", // G5 G Dm Em C A5 Gbm Dm …
AE: "bb4 [bb2,f4] [bb4,d5] [d3,a4] [c5,e5] [c3,g4] [db5,a5] [db3,a4] ~ d3 ~ d3 ~ d3 ~ [d3,d4,f4,a4,d5], ~@8 [f4,a4,d5,f5]@4 [d4,f4,a4,d5]@3 ~", // Bb5 Bb D5 C C5 Gbm Dm
AF: "~ d3 ~ [d3,d4,f4,a4,d5] ~ d3 [e4,e5] c3 ~ bb2 ~ bb2 ~ bb2 ~ [bb2,d4,f4,bb4,d5], [d4,f4,a4,d5]@3 ~ [d4,f4,a4,d5]@2 ~ [f4,bb4,d5,f5]@5 [d4,f4,bb4,d5]@3 ~", // Dm E Bb Dm Bb
AG: "~ bb2 ~ [bb2,d4,f4,bb4,d5] ~ bb2 [e4,e5] a2 ~ g2 ~ g2 ~ g2 ~ [g2,d4,f4,b4,d5], [d4,f4,bb4,d5]@3 ~ [d4,f4,bb4,d5]@2 ~ [f4,b4,d5,f5]@5 [d4,f4,b4,d5]@3 ~", // Bb E G7 Bb Bdim
AH: "~ g2 ~ [g2,d4,f4,b4,d5] ~ g2 ~ g2 ~ a2 ~ a2 ~ a2 ~ a2, [d4,f4,b4,d5]@3 ~ [d4,f4,a4,d5]@2 [e4,e5]@2 [f4,a4,d5,f5]@8", // G7 Bdim Dm E Dm
AI: "~ a2 ~ a2 ~ a2 ~ a2 ~ d3 ~ d3 ~ d3 ~ [d3,d4,f4,a4,d5], [e4,a4,db5,e5]@8 [f4,a4,d5,f5]@4 [d4,f4,a4,d5]@3 ~", // Dm A Dm
AJ: "[~ a2 ~ a2 ~ a2 ~ a2 f2@2 f2@2 ~@3 eb2 f2@2 f2@2 ~@3 eb2 f2@2 f2@2 ~@3 eb2, [e4,a4,db5,e5]@4 d5@9 ~@3, ~ [d4,f4,bb4]@2 ~]/2", // A Bb
AK: "f2@6 f2@6 ~@9 eb2@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3, ~@4 f2!2 ~@2", // Ab Adim
AL: "[ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3, f2!2 ~@2 f2!2 ~@2", // Ab Adim Gm Bb Ab Adim
AM: "[ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~@4 [eb2,eb4]@3 [f2,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 ~@9 eb4@3, f2!2 ~@3 f2 ~@2", // Ab Adim Gm Bb Eb F
AN: "[[eb2,g3,bb3,f4]@2 [g3,bb3,f4]!2 ~@3 c4 [d3,f3,a3,d4]@2 [d3,f3,a3,d4]@2 [c3,c4]@2 d4 c4 bb3@2 [f3,bb3,d4] ~@2 [g3,bb3,eb4]@2 c4 [a3,c4,d4] [a3,c4,eb4] [a2,a3,c4,eb4]@2 [a3,c4,eb4]@2 c4!2, ~ eb2 ~@5 bb2@5 a2 ~@3, ~@7 f3@2 ~@7]/2", // Eb Gm7 Dm C Bb Eb D7 Adim
AO: "[d3,f3,a3,d4]@2 [f3,a3,d4] [f3,a3,d4]@3 g3!2 [bb2,g3]@3 f3 [d3,f3,a3,d4]@3 c4, ~ d3 ~@6", // Dm Eb Dm
AP: "[e3,g3,c4]@4 ~ c4 d4 [a3,c4,f4] ~ c5 d5 f5 ~ c4 d4 [g3,bb3,f4], c3@4 f2!2 ~@2", // C F Gm7
AQ: "[~ c5 d5 f5 ~@2 c4 d4 [d3,f3,a3,d4]@2 [d3,f3,a3,d4]@2 c3@2 ~ c4 d4 c4 bb3@4 d4!2 [a2,a3,c4,eb4]@2 [a2,a3,c4,eb4]@2 [a3,c4,eb4] [a3,c4,d4]!3, eb2!2 ~@4 [f3,a3,d4]@2 f3@2 ~@6, ~@7 bb2@5 ~@4]/2", // Dm Adim D7 Dm
AR: "[d2,a3,d4]@2 [d2,a3,d4,f4]@2 [a3,d4,f4] a3!3 g3@2 f3@2 [d3,f3,a3,d4]@3 c4, ~@2 bb2 ~", // D5 Dm
AS: "[[c3,e3,g3,c4]@8 [f3,a3,d4]@2 [f3,a3,d4]@2 [g4,d5]@2 [f4,d5] ~@3 [d4,f4,a4] ~@3 f3@2 [g3,db4,e4]@2 ~@6 d2@4 ~ [g3,db4,e4]@3 [f3,a3,bb3,d4]@2 [f3,a3,bb3,d4]@2 [g4,d5]@2 [f4,d5]@2, ~@8 d2@4 d2@3 [f4,d5]@3 ~ [d4,f4,a4]@3 ~@4 [g3,db4,e4]@4 [g3,db4,e4]@7 ~@11, ~@4 d2!4 ~ d2 bb2!2]/3", // C Dm G5 Dm Dbdim Bbmaj7 G5 Dm …
AT: "[f4,d5] d4@3 a3@2 f3 ~ e3@2 [e3,g3,b3,d4]@2 [e3,g3,b3,d4]@2 [e3,g3,b3,d4]@2, bb2@4 bb2@3 [g3,b3,d4]@3 ~@6", // Dm Em7 G
AU: "[eb3,g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@2 [eb3,g3,bb3,eb4] [a2,g3,db4,e4]@3 [a3,d4,f4]@2 [a3,d4,f4]@2 [f4,a4]@2 [d4,f4]@2, ~@2 d2!2", // Eb A7 Dm F Dm
AV: "[[d4,f4]@2 c4@2 a3@2 f3@2 [g3,db4,e4]@2 ~@6 d3@4 d3 db3@3 [g3,c4,eb4]@2 [g3,c4,eb4]@2 [g4,c5] f4@3, d2!4 ~@4, ~@5 [g3,db4,e4]@2 [g3,db4,e4]@5 c3@2 c3@2]/2", // Dm Dbdim Cm C5 Dbdim
AW: "f4 d4@3 g3@2 f3 ~ b2@2 b2@2 b2@2 b2@2, c3@4 c3@3 [g3,b3,d4]@9", AX: "bb2!4 [c3,d4,f4]!4, [g3,bb3,d4] ~",
AY: "[c3,bb3,d4,f4]!4 c3!4, ~@2 [d4,f4,bb4] [f4,bb4,d5]", // Bb
AZ: "[c3@6 c3@6 c3@6 c3@6 [f3,a3,d4]@42 [c4,e4]@14 [bb3,d4]@42 ~ [a3,c4]@14 [g3,b3]@55, [f4,bb4,d5,f5]@3 d3@7 ~@14]/4", // Dm C Bb Am G Bb
BA: "[~ [g3,a3,d4,f4]@28 ~ [e3,g3,db4,e4]@28 [f3,bb3,d4]@81 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@2, ~@29 bb2@36 ~@127]/8", // Dm Dbdim Bb
BB: "[~@4 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 f2@6 f2@6 ~@9 eb2@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [f2,ab4,c5,eb5,ab5]@2, ~@71 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@7]/8", // Ab Adim Ab Adim Ab Adim Ab Adim …
BC: "[~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [f2,ab4,c5,eb5,ab5]@2, ~@2 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@7]/8", // Adim Ab Adim Gm Bb Ab Adim Ab …
BD: "[~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [eb2,a4,c5,eb5,a5]@3 [ab4,c5,eb5,ab5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [a4,c5,eb5,a5]@2 ~ [g4,bb4,d5,g5]@2 ~ [f4,bb4,d5,f5]@2 ~ [f4,bb4,d5,f5]@2 ~ [eb2,f4,bb4,d5,f5]@3 ~@2, ~@2 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@6 f2@3 f2@3 ~@7]/3", // Adim Ab Adim Gm Bb Ab Adim Ab …
})).s("gm_piano").gain(0.52).pan(0.6)
// bass · electric bass finger · "Fingered E Bass"
const bass = note(`<
A@7 B@8 C D E F C D G F H@2 I J H K L M N@2 O D E F C D G F H@2 I J H K L M N@2 P Q R Q R Q R Q S T U V W T U V X Y@8
Z AA@2 AB AC AA@2 AD AE H AF AG AH H AI AJ AK N AL@2 ~@2 AM@8 AN@3 AO@15 AP
>`.pickRestart({
A: "[~@38 d2@42 c2@14 bb1@42 ~ a1@14 g1@56 a1@28 ~ a1@28 bb1@60 ~@9 eb1@3]/7",
B: "f1 ~ f1@2 ~@3 eb1 f1 ~ f1@2 ~@3 eb1", C: "f1 ~ f1@2 ~@4 eb1 ~ eb1@2 ~@4", D: "d2 ~ d2@2 c2 ~ bb1@10",
E: "a1 ~ a1@2 ~@4 d2 ~ d2@2 ~@4", F: "bb1 d2 c2@2", G: "a1 ~ a1@2 ~@4 d1 ~ d1@2 ~@4",
H: "d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~", I: "bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~",
J: "e2@4 ~@2 e2@4 ~@2 e2@4 ~@2 e2@4 ~@2 eb2@4 ~@2 eb2@4 ~@2 eb2@3 a1@9", K: "d1@8 ~@4 d1@8 ~@4 d2@8 ~@4 d2@3 db2@9",
L: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~", M: "b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~",
N: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~", O: "f1@4 ~@2 f1@6 ~@12 eb1@3 ~@3 eb1@6 ~@12",
P: "f1 ~@3 f1 a1 bb1 d2", Q: "g1 b1 c2 e2 a1 db2 d2 c2", R: "bb1 d2 c2 e1 f1 a1 bb1 d2",
S: "bb1@3 d2@3 c2@3 db2@3 d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~",
T: "d2@2 ~ d2@2 ~ d2@2 ~ c2@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~",
U: "bb1@2 ~ bb1@2 ~ bb1@2 ~ a1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~",
V: "g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~",
W: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~",
X: "a1@4 ~@2 a1@4 ~@2 a1@4 ~@2 a1@4 ~@2 f1@4 ~@2 f1@6 ~@9 eb1@3",
Y: "f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3", Z: "f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@12",
AA: "[eb1@2 ~ eb1@3 ~@6 d2@2 ~ d2@3 c2@2 ~ bb1@15 a1@2 ~ a1@3 ~@6]/2", AB: "d2@2 ~ d2@3 ~@6 bb1@6 d2@6",
AC: "c2@12 f1@2 ~ f1@3 ~@6", AD: "d1@2 ~ d1@3 ~@6 bb1@6 d2@6", AE: "c2@6 d1@2 ~ d1@2 ~",
AF: "d1@2 ~ d1@2 ~ bb1@2 ~ bb1@2 ~", AG: "bb1@4 ~@2 bb1@4 ~@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~",
AH: "eb2@4 ~@2 eb2@4 ~@2 eb2@3 a1@9 d1@8 ~@4 d1@8 ~@4", AI: "d2@8 ~@4 d2@3 db2@9 c2@8 ~@4 c2@8 ~@4",
AJ: "c2@4 ~@2 c2@4 ~@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~",
AK: "bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~",
AL: "[c2@4 ~@2 c2@4 ~@2 c2@4 ~@2 c2@4 ~@2 d2@49 ~@23]/2",
AM: "[~ a2@28 ~ a1@28 bb1@72 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@2]/8",
AN: "[~@4 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@4 ~@2 f1@6 ~@9 eb1@3 f1@2]/3",
AO: "~@4 f1@6 ~@9 eb1@3 f1@3 ~@3 f1@6 ~@9 eb1@3 f1@2", AP: "~@4 f1@6 ~@9 eb1@3 f1@3 ~@3 f1@6 ~@9 eb1@3 ~@2",
})).s("gm_electric_bass_finger").gain(0.4)
// chords · rock organ · "Rock Org"
const rock_organ = note(`<
~@12 A B C ~ D E F G H I F ~@8 J K ~ D ~ F G H I F ~@8 J K ~@23 L@2 ~@2 M N O P Q R S ~@7 T@3 ~@15 U@2 V W X@2 Y@2 U@2
Z@4 AA
>`.pickRestart({
A: "~@45 [f5,g5] [a5,bb5] [c6,d6]", B: "[c6,eb6,f6]@45 ~ e6 [a5,d6], e6 ~@44 b5@2 ~",
C: "[g5,c6] [g5,a5,b5] [f5,a5] ~@45", D: "~@10 [f4,bb4,d5] ~@2 [g4,bb4,eb5]@3", E: "~@11 [f4,a4,d5]@3 ~@2",
F: "~ [f4,a4,d5] [e4,g4,c5]@2", G: "~@7 [g4,bb4,f5] ~@8", H: "[f4,a4,d5]!2 [f4,a4,d5]@2 [f4,bb4,d5]@4",
I: "[a4,c5,eb5]!3 ~ [a4,d5]!3 ~", J: "g5@42 g5 a5 ~ c6 e6 f6, [bb5,d6]@11 bb5, ~@23 d6", K: "[bb5,d6,g6]",
L: "[~@21 [f5,g5] [a5,bb5] [c6,d6] [c6,eb6,f6]@45 ~ e6 [a5,d6] [g5,c6] [g5,a5,b5] [f5,a5] ~@21, ~@24 e6 ~@44 b5@2 ~@25]/2", // Fsus2 Bbmaj7 Csus2 F7 D5 C5 G F
M: "~@2 [f4,bb4,d5] ~@2 [g4,bb4,eb5]@3 ~@8", N: "~@3 [f4,a4,d5]", O: "[e4,g4,c5]@8 ~@7 [g4,bb4,f5]",
P: "~@4 [f4,a4,d5]!2 [f4,a4,d5]@2", Q: "[f4,bb4,d5]@4 [a4,c5,eb5]!3 ~", R: "[a4,d5]!3 ~@3 [f4,a4,d5]@2",
S: "[e4,g4,c5] ~", T: "[~@24 g5@42 g5 a5 ~ c6 e6 f6 [bb5,d6,g6]@48 ~@24, ~@6 [bb5,d6]@11 bb5 ~@18, ~@35 d6 ~@36]/3",
U: "[~@43 [f5,g5] [a5,bb5] [c6,d6] e6 f6@44 ~ e6 [a5,d6] [g5,c6] [g5,a5,b5], ~@46 [c6,eb6]@45 b5@2 ~@3]/2", // Fsus2 Bbmaj7 Csus2 D5 C5 G Cm
V: "[f5,a5] ~@3 [c6,eb6,f6] ~@9 [c6,eb6,f6] ~@7 [c6,eb6,f6]@21 ~@5", // F F7
W: "~@4 c6 [eb6,f6] ~@8 [c6,eb6,f6] ~@7 [c6,eb6,f6] ~@25", // Ebsus2 F7
X: "[~@46 [c6,eb6,f6]@45 ~ e6 [a5,d6] [g5,c6] [g5,a5,b5], ~@91 b5@2 ~@3]/2", // F7 D5 C5 G
Y: "[[f5,a5] ~@27 [c6,eb6,f6]@7 ~@3 [eb6,f6] ~@8 [c6,eb6,f6]@21 ~@28, ~@19 c6 ~@28]/2", // F F7 Ebsus2 F7
Z: "[[f5,a5] ~@27 [c6,f6] eb6 ~@5 [c6,eb6,f6] ~@2 [eb6,f6] ~@8 [eb6,f6] ~@28 [c6,eb6,f6] ~@8 [c6,f6] eb6 ~@7 [c6,eb6,f6]@16 ~@33 f6@44 ~ e6 [a5,d6] [g5,c6] [g5,a5,b5], ~@38 c6@2 ~@7 c6@2 ~@93 [c6,eb6]@45 b5@2 ~@3]/4", // F F5 F7 Ebsus2 F7 F5 F7 D5 …
AA: "[f5,a5] ~@47", // F
})).s("gm_rock_organ").gain(0.32).pan(0.3)
// chords · lead 1 square · "Square Wave"
const lead_1_square = note(`<
~@23 A B A C A B D E F ~@9 A B A C A B D E F ~@9 G@4 H@4 I@2 ~@15 J@4 K@4 L@2 ~@31
>`.pickRestart({
A: "[a4,d5,f5] [a4,d5,f5]@2 [a4,d5,f5]@5", B: "[g4,db5,e5] [g4,db5,e5]@2 [g4,db5,e5]@5",
C: "[b4,d5,g5]@2 [b4,d5,g5]@2 [b4,d5,g5]@2 [b4,d5,g5]@2 [bb4,eb5,g5]@2 [bb4,eb5,g5]@2 [bb4,eb5,g5] [db5,e5,g5]@3", // G Eb Dbdim
D: "[g4,c5,eb5] [g4,c5,eb5]@2 [g4,c5,eb5]@5", E: "[g4,b4,d5]!4 [g4,bb4,d5]!4", F: "[g4,bb4,d5]@23 ~",
G: "[~@3 [a4,d5,f5]@3 ~ [bb4,d5,f5]@3 ~ [b4,d5,f5]@3 [a4,d5,f5]@2]/4", // Dm Bb Bdim Dm
H: "[[a4,db5,e5]@8 ~@4 [a4,d5,f5]@12 ~@4 [bb4,d5,f5]@12 ~@4 b4@3 b4 b4@3 b4 a4@2 e4@2 [f4,a4,d5]@8, ~@11 [d5,f5]@3 ~@2]/4", // A Dm Bb Dm
I: "[[e4,a4,db5]@4 [f4,bb4,d5]@9 ~@3]/2", // A Bb
J: "[~@4 [a4,d5,f5] [a4,d5,f5]@2 [a4,d5,f5]@5 [g4,db5,e5] [g4,db5,e5]@2 [g4,db5,e5]@5 [a4,d5,f5] [a4,d5,f5]@2 [a4,d5,f5]@5 [b4,d5,g5]!4]/4", // Dm Dbdim Dm G
K: "[[bb4,eb5,g5]@2 [bb4,eb5,g5]@2 [bb4,eb5,g5] [db5,e5,g5]@3 [a4,d5,f5]@2 [a4,d5,f5]@4 [a4,d5,f5]@10 [g4,db5,e5]@2 [g4,db5,e5]@4 [g4,db5,e5]@10 [g4,c5,eb5]@2 [g4,c5,eb5]@4 [g4,c5,eb5]@10 [g4,b4,d5]@2 [g4,b4,d5]@2 [g4,b4,d5]@2 [g4,b4,d5]@2]/4", // Eb Dbdim Dm Dbdim Cm G
L: "[[g4,bb4,d5]@3 [g4,bb4,d5]@3 [g4,bb4,d5]@3 [g4,bb4,d5]@3 [g4,bb4,d5]@23 ~@13]/2", // Gm
})).s("gm_lead_1_square").gain(0.24).pan(0.8)
// drums · kick
const kick = s("bd").struct(`<
~@7 A B@6 C B D C E F G C H I@2 J K I L J M I N B D C E F G C H I@2 J K I L J M I N O P@7 Q R@7 G ~ S B@6 T C U V W X
T F Y I@2 Z AA I AB Z AC AD O ~@6 AE AF@6 AG AF@15 AH
>`.pickRestart({
A: "~@15 x", B: "x ~ x ~@4 x!2 ~ x ~@4 x", C: "x ~ x ~@4 x!2 ~ x ~@5", D: "x ~ x ~@5 x ~@3 x ~@2 x",
E: "x ~@2 x ~@3 x!2 ~@7", F: "x!2 ~@2 x!2 ~@2", G: "x!2 ~ x!3 ~@2", H: "x!2 ~@2 x ~@3", I: "x!4",
J: "x ~@3 x ~@3 x ~@3 x ~@2 x", K: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2", L: "x ~@3 x ~@3 x ~@3 x!2 ~@2", M: "x!8",
N: "x!4 ~@4", O: "~ x", P: "x!2", Q: "x ~@3 x!2 ~ x", R: "x!2 ~ x!3 ~ x", S: "~@7 x!2 ~ x ~@4 x",
T: "x ~ x ~@5 x ~ x ~@4 x", U: "x ~@3 x ~@2 x!2 ~ x ~@4 x", V: "x ~ x ~@5 x ~@2 x ~@3 x", W: "x ~@3 x!2 ~@2",
X: "x!2 ~@2 x!2 ~ x", Y: "x ~ x!2", Z: "x ~@3 x ~@2 x!2 ~ x ~ x ~ x ~", AA: "x ~ x ~ x!2 ~@2 x ~@3 x ~@3",
AB: "x ~@3 x!2 ~@2 x ~@3 x ~@3", AC: "x!5 ~ x ~", AD: "x ~ x ~ x!4", AE: "~@43 x ~@2 x ~",
AF: "~@4 x ~@14 x ~@2 x ~@5 x ~@14 x ~@2 x ~", AG: "~@4 x ~@14 x ~@2 x ~@5 x ~@17 x ~",
AH: "~@4 x ~@14 x ~@2 x ~@5 x ~@14 x ~@4",
})).gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
~@8 A@6 B A C D E F D G H I J@2 K L M N ~@2 O A C D E F D G H I J@2 K L M N ~@2 O P Q R S Q@3 T U A@7 V ~ W A@6 X D Y
Z AA Z@2 AB AC AD@2 AE AF AG AH AE ~@2 AI ~@7 AJ@6 AK AJ@16
>`.pickRestart({
A: "~ x ~ x", B: "~@12 x ~@20 x!2 ~ x ~@2 x ~@2 x ~@2 x ~@2", C: "~@4 x ~ x!2 ~@2 x ~@2 x ~@2",
D: "~@4 x ~@7 x ~ x!2", E: "~@4 x ~@8 x!3", F: "~@4 x ~ x!2 ~@4 x ~ x!2", G: "~@4 x ~@7 x!4",
H: "~@12 x ~@8 x ~@5 x!2 ~ x ~@2 x ~@2 x ~@5 x ~@5", I: "~@4 x ~@3 x ~@2 x!2 ~ x ~", J: "x ~@3 x ~@3 x ~@2 x!2 ~ x ~",
K: "~@33 x!2 ~ x ~@11", L: "x ~@3 x ~@2 x!2 ~@3 x ~ x ~", M: "x ~@8 x ~@2 x ~@11 x ~@8 x!2 ~ x ~@11",
N: "x ~@3 x!2 ~@2 x ~@2 x!2 ~ x ~", O: "~@8 x!5 ~ x ~", P: "x ~@10 x ~@4", Q: "~@3 x ~@7 x ~@4",
R: "~@3 x ~@3 x ~@3 x ~@3 x", S: "~@3 x!3 ~@5 x!2 ~@3", T: "~@3 x ~@7 x!2 ~@3", U: "~@9 x!2 ~ x ~@5 x ~@17 x ~@11",
V: "~ x ~@2", W: "~@3 x", X: "~@9 x!2 ~ x ~@2 x ~@2 x ~@2 x ~@14 x ~@11", Y: "~@2 x ~@2 x ~@6 x ~@3",
Z: "~@4 x ~ x!2 ~@4 x ~@3", AA: "~@5 x!3 ~@4 x ~ x!2", AB: "~@4 x!4 ~@4 x ~@2 x",
AC: "~@3 x!2 ~ x ~@2 x ~@2 x ~@5 x ~@17 x ~@11", AD: "x ~@2 x!2 ~ x ~ x ~@3 x ~@3", AE: "x ~@2 x!2 ~ x ~@9",
AF: "~@9 x!2 ~ x ~@11 x ~@11 x ~@8 x ~@2", AG: "x ~@3 x ~ x ~ x ~@2 x!2 ~@3",
AH: "x ~@8 x!2 ~ x ~@11 x ~@11 x ~@2 x ~@8", AI: "x!5 ~ x ~@9", AJ: "~@5 x ~@11 x ~@6",
AK: "~@10 x ~@20 x!2 ~ x ~@2 x ~@2 x ~@2 x ~@4",
})).gain(0.4)
// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
~@23 A@3 B C D E ~@11 A@3 B C D E ~@3 F G H I G@3 J K ~@24 L M@2 N O P Q R ~@33
>`.pickRestart({
A: "~ x!3 ~ x!3 ~ x!2 ~@2 x ~ x", B: "~@15 x", C: "~ x!3 ~ x!2 ~@2 x!3 ~ x ~ x", D: "~ x!2 ~@2 x!3 ~ x!2 ~@5",
E: "~ x!3 ~@2 x!2 ~ x!2 ~@2 x ~@2", F: "~@8 x!3 ~ x!4", G: "x!3 ~ x!7 ~ x!4", H: "x!3 ~ x!3 ~ x!3 ~ x!3 ~",
I: "x!3 ~@3 x!5 ~@2 x!3", J: "x!3 ~ x!7 ~@2 x!3", K: "x!3 ~@2 x ~ x ~@8", L: "~@9 x!3 ~ x!3",
M: "~ x!2 ~@2 x ~ x ~ x!3 ~ x!3", N: "~ x!2 ~@2 x ~ x ~@8", O: "~@7 x ~ x!3 ~ x!2 ~",
P: "~ x!3 ~ x ~ x ~ x!2 ~@2 x!3", Q: "~ x!2 ~@6 x!3 ~@2 x!2", R: "~ x!2 ~@2 x ~@10",
})).gain(0.25)
// drums · clap
const clap = s("cp").struct("<~@8 [~@3 x]!7 ~@55 [~ x ~@2]!7 ~@25 [~@17 x ~@6]!23>").gain(0.45)
// … 55 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.