0:00/0:00
// Attitude Dancing — Carly Simon
// 130 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 (2/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 24-step grid, each part at one level. 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, A@4 for four bars: edit a riff to change every repeat.
// bass · electric bass finger · "Bass"
const bass = note(`<
A@5 B C B C B C B C D E D E B@2 F G H@8 I@8 J@7 K@8 L@8 M@8 N@8 O@8 P@3 Q R S T U@2 V W V W X Y X Z X Y X Y X Y AA Z
AA AB AA AB AA AB AA AB AA AC@8 AD
>`.pickRestart({
A: "[~@21 [d2,d3]@22 ~@3 [bb1,bb2]@11 ~ [bb1,bb2]@11 ~ [d2,d3]@22 ~@3 [bb1,bb2]@11 ~@2 [bb1,bb2]@11 ~]/5", // D Bb D Bb
B: "g2@8 ~ g2@3 g2@11 ~", C: "c3@8 ~ c3@3 c3@11 ~", D: "f2@8 ~ f2@3 f2@11 ~", E: "bb2@8 ~ bb2@3 bb2@11 ~",
F: "a2@8 ~ a2@13 ~@2", G: "a2@5 ~ a2@16 ~@2",
H: "[d2@8 d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@11 ~ g2]/8",
I: "[~@8 g2@3 g2@11 ~ c3@8 ~ c3@3 c3@11 ~ g2@8 ~ g2@3 g2@11 ~ c3@8 c3@3 c3@11 ~ g2@8 ~@2 g2@3 g2@11 ~ c3@8 c3@3 c3@11 ~ g2@8 ~ g2@3 g2@11 ~ c3@8 ~ c3@3 c3@11 ~ f2@2]/8",
J: "[~@7 f2@3 f2@11 ~ bb2@8 ~ bb2@3 bb2@11 ~ f2@8 ~ f2@3 f2@11 ~ bb2@8 ~ bb2@3 bb2@11 ~ g2@8 ~ g2@3 g2@11 ~ g2@8 ~ g2@3 g2@11 ~ a2@8 a2@3 a2@11 ~ a2@3]/7",
K: "[~@4 a2@16 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@3]/8",
L: "[~@6 bb1@3 bb1@11 ~ g2@8 g2@3 g2@11 ~ c3@8 ~ c3@3 c3@11 ~ g2@8 ~ g2@3 g2@11 ~ c3@8 ~ c3@3 c3@11 ~ g2@8 ~ g2@3 g2@11 ~ c3@8 ~ c3@3 c3@11 ~ g2@8 ~ g2@3 g2@11 ~ c3@4]/8",
M: "[~@5 c3@3 c3@11 ~ f2@8 ~ f2@3 f2@11 ~ bb2@8 ~ bb2@3 bb2@11 ~ f2@8 ~ f2@3 f2@11 ~ bb2@8 ~ bb2@3 bb2@11 g2@8 ~ g2@3 g2@11 ~ g2@8 ~ g2@3 g2@11 ~ a2@8 ~ a2@13 ~@2 a2@5]/8",
N: "[~ a2@16 ~@2 d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@5]/8",
O: "[~@4 bb1@3 bb1@11 g2@8 ~ g2@3 g2@11 ~ c3@8 ~ c3@3 c3@11 ~ g2@8 ~ g2@3 g2@11 ~ c3@8 ~ c3@3 c3@11 ~ g2@8 ~ g2@3 g2@11 ~ c3@8 ~ c3@3 c3@11 ~ g2@8 ~ g2@3 g2@11 ~ c3@6]/8",
P: "[~@3 c3@3 c3@11 ~ f2@8 ~ f2@3 f2@11 ~ bb2@8 bb2@3 ~ bb2@11 f2@7]/3", Q: "~@2 f2@3 f2@11 ~ bb2@7",
R: "~@2 bb2@3 bb2@11 ~ g2@7", S: "~@2 g2@3 g2@11 ~ g2@7", T: "~@2 g2@3 g2@11 ~ a2@7",
U: "[~@2 a2@3 a2@11 ~ a2@5 ~ a2@16 ~@2 d2@7]/2", V: "~@2 d2@3 d2@5 ~ d2@5 ~ bb1@7",
W: "~@2 bb1@3 bb1@5 ~ c2@5 ~ d2@7", X: "~ d2@3 d2@5 ~ d2@5 ~ bb1@8", Y: "~ bb1@3 bb1@5 ~ c2@5 ~ d2@8",
Z: "~ bb1@3 bb1@11 ~ d2@8", AA: "d2@3 d2@5 ~ d2@5 ~ bb1@8 ~", AB: "bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~",
AC: "[bb1@3 bb1@5 ~ c2@5 d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1@3 bb1@5 ~ c2@5 ~ d2@8 ~ d2@3 d2@5 ~ d2@5 ~ bb1@8 ~ bb1]/8",
AD: "~@2 bb1@5 ~ c2@5 ~@11",
})).s("gm_electric_bass_finger").gain(0.35).pan(0.3)
// chords · piano
const piano = note(`<
A@4 B C@2 D@4 E F@2 G H@2 I J K L M@7 N@5 O P Q@2 R S@6 T@5 U@4 V@2 W@2 X@2 Y@2 Z@4 AA AB@2 AC@8 AD AE@2 AF AG@3 AH@2
AI@4 AJ@4 ~@15 AK AL@8 AM@5 AN@4 AO
>`.pickRestart({
A: "[~@21 c5@3 a4@3 c4@3 c5@6 a4@3 ~ f4@6 ~@3 [ab3,d4]@6 ~@6 [ab3,d4,f4]@8 ~ [d4,f4,a4]@8 ~@2 [a3,d4,f4]@6 [d4,f4,a4]@8 ~@2, ~@21 d3@22 ~@3 bb2@11 ~ bb2@11 ~@27, ~@55 [ab3,d4,g4]@6 ~@35]/4", // Abdim Ddim Dm G
B: "~@2 [ab3,d4]@6 ~ [ab3,g4]@6 [ab3,d4,f4]@8 ~, ~@4 d4@3 ~@5", // Abdim Abmaj7 Ddim
C: "[[bb2,g3,b3]@5 ~ [g3,b3]@3 [g3,b3]@3 [g3,b3]@3 d4@3 d4@3 [c4,e4]@5 ~@7 a3@3 g3@3 a3@3 ~@3 g4@3, ~@27 [e4,g4]@16 ~@5, ~@27 c4@8 ~@7 g3@5 ~]/2", // Eb G C Em
D: "[[d4,g4,b4]@5 ~ [d4,g4,b4]@3 [d4,g4,b4]@8 ~ d4@3 [g3,c4,e4]@8 ~ [g3,e4]@5 ~@4 g4@3 ~@6 [d4,g4,b4]@5 ~ c5@3 [d4,g4,b4]@8 ~ a4@3 c4@12 a3@3 ~@3 d4@3 g4@3 g4@3, ~@30 c4@8 ~ d3@5 ~ b3@5 ~@19 [e4,g4]@19 ~@8, ~@42 [g3,g4]@5 ~@37 g3@5 ~ g3@5 ~]/4", // G C G Em G
E: "[d4,g4,b4]@5 ~ a4@3 [d4,g4]@3 [d4,g4]@3 ~@3 [d4,g4]@5 ~, ~@9 b4@8 ~@7", // G G5
F: "[[e4,g4]@5 ~@4 a3@3 g3@3 a3@3 ~@3 g4@3 [c4,f4,a4]@5 ~ [c4,f4,a4]@3 [c4,f4,a4]@3 [c4,f4,a4]@3 [c4,e4,g4]@8 ~, c4@13 ~@5 g3@5 ~@25, ~@6 [e4,g4]@5 ~ e4@5 ~@4 a3@5 ~@22]/2", // Em F C Em
G: "g4@5 ~@4 g4@3 f4@3 ~@3 f4@3 f4@3, [bb3,d4]@11 ~ [bb3,d4]@11 ~, ~@6 f4@5 ~@13", // Bb
H: "[[f4,a4]@5 ~@13 [bb3,d4]@11 ~@16 c4@3, c4@8 ~ c4@8 ~ f3@21 ~@9, ~@6 [f4,a4]@5 ~@4 g4@5 ~@10 [bb3,d4]@11 ~@7, ~@33 g4@5 ~ g4@5 ~@4, ~@36 f4@5 ~ f4@5 ~]/2", // F Bb F Bb
I: "[f3,bb3,d4]@5 ~ d4@3 [bb3,d4,f4]@5 ~ [bb3,d4,f4]@8 ~", J: "[bb3,d4,g4]@3 f4@3 [bb3,d4,g4]@8 ~ f4@3 g4@3 f4@3",
K: "[a3,db4,g4]@3 [a3,db4,f4]@5 ~@10 [db4,f4,a4]@6, ~@9 [db4,f4,a4]@8 ~@7, ~@15 a3@8 ~", // A7 Aaug Dbaug
L: "~@6 [db4,f4,a4]@3 g4@3 f4@5 ~ g4@2 f4@3 d4", // Dbaug
M: "[d5@3 d5@2 d5@3 ~ c5@2 d5@3 c5@3 a4@3 f4@3 ab4@3 ~ ab4@2 ab4@3 ~ ab4@13 ~ d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 ab4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@11 ~ d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 ab4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@11 ~ d5@3 d5@3 c5@3 [f4,a4,d5]@5 ~ c5@3 a4@3 f4@3 [d4,f4,ab4], [f4,a4]@16 ~@7 [d4,f4]@8 ~ [d4,f4]@13 ~@2 [f4,a4]@16 ~@8 [d4,f4]@11 ~@13 [f4,a4]@16 ~@8 [d4,f4]@11 ~@13 [f4,a4]@8 ~@17]/7", // Ddim Dm Ddim F Dm F Dm F …
N: "[~@2 ab4@3 ab4@3 [d4,f4,ab4]@13 ~@2 [d4,f4,b4]@8 ~ [g3,bb3]@3 [g3,b3]@3 d4@3 d4@3 c4@5 ~@7 [e5,a5]@3 [d5,g5]@3 [e5,a5]@3 [d5,g5]@3 ~@3 [d4,g4,b4]@5 ~ [d4,g4,b4]@5 ~ [d4,g4,b4,g5,b5]@3 ~@3 [gb5,a5]@2 ~ e5@3 ~@3 e4@3 ~@2 [e5,a5]@3 [d5,g5]@3 [e5,a5]@3 ~ d5@3 a4@2 [d4,g4,b4,g5,b5]@2, ~@35 b4@8 ~ e4@24 ~@3 [g5,b5]@3 ~@3 [g5,b5]@3 ~@12 g3@19 ~@9, ~@38 a4@8 ~@4 [c4,g4]@19 ~@17 d4@5 [e4,g5]@3 ~@18 g5@3 ~@5, ~@92 c4@8 ~ c4@8 ~@11]/5", // Ddim Bdim Gm G A5 G5 A5 G5 …
O: "~@4 [g5,b5]@3 ~@4 b5@3 ~@2 [a4,gb5,a5]@3 [c4,e4,a4]@5, ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@8 ~@9, ~@10 g5@3 ~@6 [e5,g5]@3 ~@2", // G D Am G Em
P: "~ g4@5 ~ [d4,e5,a5]@3 [e4,d5,g5]@3 [g4,e5,a5]@3 [c4,e4,g4]@5 ~ [d4,g4,b4,g5,b5]@2, ~@16 [d5,g5]@3 ~@5", // Dsus2 Em7 A7 C G G5
Q: "[~ [d4,g4,b4]@3 [d4,g4,b4,g5,b5]@3 [d4,g4,b4]@3 [d4,g5,b5]@3 ~@3 [gb5,a5]@3 [e5,g5]@3 ~@9 [e5,a5]@3 [d5,g5]@3 [e5,a5]@3 [d5,g5]@3 g4@3 [c4,f4,a4]@2, ~@13 [g3,c4,e4]@24 ~@11]/2", // G Gbm Em A5 G5 A5 G5 F …
R: "~ [c4,f4,a4]@5 ~ [c4,f4,a4]@8 ~ g4@3 [bb3,d4,g4]@5", // F Gm
S: "[~ f4@3 f4@3 g4@3 f4@3 g4@3 [bb3,d4,f4]@5 ~ [c4,f4,a4]@5 ~ g4@3 a4@5 ~@4 c4@3 ~@3 f4@5 ~@16 c4@3 [f3,bb3,d4]@5 ~ d4@3 [bb3,d4,f4]@5 ~ [bb3,d4,f4]@8 ~ g4@3 f4@5 ~ f4@3 g4@3 f4@8 ~ g4@2 f4@3 ~@3 a4@11 ~ a4@3 [db4,f4,c5]@3, ~ [bb3,d4]@13 ~@17 [c4,f4]@8 ~@4 [f3,d4]@19 ~@62 a3@16 ~@4, ~@37 a4@5 ~ bb3@8 ~@4 bb3@8 ~@31 [bb3,d4]@11 ~ [bb3,d4]@11 ~ [a3,db4]@5 db4@16 ~@5, ~@43 g4@5 ~@7 g4@5 ~ g4@8 ~@54 g4@3 ~@18, ~@58 f4@5 ~ f4@8 ~@72]/6", // Bb F Bb Dbmaj7 Bb F5 Dm Bb …
T: "[[db4,f4,db5]@3 ~ f4@5 [db4,f4,a4]@3 g4@3 f4@5 ~ d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@13 ~@2 [f4,a4,d5]@5 ~ c5@3 [f4,a4,d5]@8 ~ a4@3 f4@3 ab4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@11 ~ [f4,a4,d5]@3, ~@3 [db4,a4]@5 ~@13 [d4,f4,a4]@8 ~ [d4,f4,a4]@8 ~@7 [d4,f4]@8 ~@40 [d4,f4]@11 ~@16]/5", // Db Dbaug Ddim Dm Ddim Dm Gbm Dm
U: "[~@3 c5@3 [f4,a4,d5]@8 ~ a4@3 f4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@13 ~@2 d5@3 d5@3 c5@3 [f4,a4,d5]@8 ~ a4@3 f4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@13 ~@5, ~@21 [d4,f4]@8 ~@16 [f4,a4]@8 ~@16 [d4,f4]@8 ~@19]/4", // Dm Ddim Dm Ddim Dm F Dm
V: "[~@3 [g3,b3]@3 [g3,b3]@2 ~ g3@2 d4@3 ~ d4@3 [c4,e4]@5 ~ g4@16 ~ g4@3 [d4,g4,b4]@4, ~@8 b3@3 ~@12 [c4,e4]@16 ~@9]/2", // G C G C
W: "[~@2 [d4,g4,b4]@3 [d4,g4,b4]@8 ~ d4@3 [g3,c4,e4]@13 ~@5 g4@3 g4@5 ~ [d4,g4,b4]@4]/2", // G C G
X: "[~@2 c5@3 [d4,g4,b4]@8 ~ a4@3 [c4,e4,g4]@19 ~@2 g4@3 g4@3 [d4,g4,b4]@4]/2", // G C G
Y: "[~@2 a4@3 [d4,g4,b4]@8 ~ d4@5 ~ [e4,g4]@19 ~@2 g4@3 [c4,f4,a4]@4, ~@5 c4@2 ~@5]/2", // G Em F
Z: "[~@2 [c4,f4,a4]@3 [c4,f4,a4]@3 [c4,f4,a4]@3 [c4,e4,g4]@8 ~ g4@5 ~ f4@11 ~ f4@3 f4@3 [c4,f4,a4]@8 ~ c4@8 ~ [f3,bb3,d4]@21 ~@6 c4@2 [f3,bb3,d4]@5, ~@5 [bb3,d4]@4 ~@15]/4", // F C F Bb
AA: "~ d4@3 ~ f4@5 [bb3,d4,f4]@8 ~@2 bb3@2 f4@2, ~@4 [bb3,d4]@5 ~@10 [d4,g4]@3 ~@2", // Bb G5
AB: "[~ [bb3,d4,g4]@8 ~ f4@3 g4@3 f4@3 [a3,db4,g4]@3 [a3,db4,f4]@5 ~ [db4,f4,a4]@13 ~@7]/2", // Gm A7 Aaug Dbaug
AC: "[~ [db4,f4,a4]@3 g4@3 f4@5 ~ g4@3 f4@3 d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@13 ~@2 d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 ab4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@11 ~ d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 ab4@3 ab4@3 ab4@3 ab4@3 [d4,f4,ab4]@11 ~ d5@3 d5@3 c5@2 ~ [f4,d5]@5 c5@3 ~ a4@3 f4@2 ~@3 ab4@3, ~@19 [d4,f4,a4]@16 ~@8 [d4,f4]@8 ~@16 [f4,a4]@16 ~@8 [d4,f4]@11 ~@13 [f4,a4]@16 ~@8 [d4,f4]@11 ~@13 [f4,a4]@8 a4@5 ~@10 d4@6, ~@62 ab4 ~, ~@187 f4@5]/8", // Dbaug Ddim Dm F Dm F Dm F
AD: "ab4@3 [d4,f4,ab4]@13 ~@2 [g3,b3]@5 ~", // Ddim G
AE: "[[g3,b3]@3 [g3,bb3,b3]@3 [g3,b3]@3 d4@3 d4@3 [c4,e4]@6 ~@6 a3@3 g3@3 a3@3 ~@3 g4@3 [d4,g4,b4]@5 ~, ~@21 [c4,e4,g4]@19 ~@8, ~@36 g3@5 ~@7]/2", // G C G C
AF: "[d4,g4,b4]!2 d4!3 [g3,c4,e4]@3, ~@6 [g4,b4]@5 ~@13", // G C G
AG: "[~@9 g4@3 ~@3 a4@3 [d4,g4,b4]@3 ~@3 c5@3 [d4,g4,b4]@8 ~ a4@3 [g4,a4]@6 ~@6 [a3,d4]@3 ~@3 [d4,g4]@3 g4@3 g4@3 [d4,g4,b4]@3 [d4,g4,b4]@3, [g3,c4,e4]@11 ~ [g3,g4]@5 ~@22 c4@13 ~@2 [g3,e4]@5 ~ [g3,c4,e4]@5 ~@7, ~@15 b3@5 ~ [d4,g4,b4]@5 ~@13 e4@15 ~@18, ~@15 g4@4 ~@5]/3", // G Gsus2 D5 G5 G C G C …
AH: "[[d4,g4,a4,b4]@3 [d4,g4]@3 [d4,g4]@3 ~@3 [d4,g4]@5 ~ [e4,g4]@6 ~@3 a3@3 ~@3 a3@3 ~@3 g4@3 [c4,f4,a4]@3 [c4,f4,a4]@3, ~@3 b4@8 ~@13 [e4,g4]@6 ~@18, ~@9 g3@21 [g3,e4]@5 ~ g3@5 ~@7, ~@9 [c4,e4]@9 c4@16 ~@5 a3@5 ~@4]/2", // G G5 Em F Em C
AI: "[[c4,f4,a4]@3 [c4,f4,a4]@3 c4@3 g4@3 g4@2 ~ [bb3,g4]@2 ~ bb3@3 f4@3 ~@3 g4@2 [bb3,d4]@6 ~@3 f4@3 a4 a4@5 [f4,g4,a4]@3 ~@9 [f3,bb3,c4,d4]@3 ~ d4@8 ~@15 c4@3 [f3,bb3,d4]@5 ~ d4, ~@6 [f4,a4]@5 ~@3 d4@3 d4@4 [bb3,d4]@8 ~@6 bb3@5 ~ c4@8 ~ [c4,f4,a4]@8 ~@4 f3@19 ~@15, ~@9 [c4,e4]@8 ~ g4@5 ~ f4@5 f4@5 ~ f4@3 ~@3 f4@5 ~@10 g4@5 ~@13 g4@5 ~ g4@5 ~@11, ~@36 d4@5 ~@21 bb3@9 [bb3,d4]@11 ~@14, ~@77 f4@5 ~ f4@5 ~@8]/4", // F Eb Bb F Bb F Bb F …
AJ: "[~@2 [bb3,d4,f4]@5 ~ [bb3,d4,f4]@8 ~ g4@3 ~@6 f4@3 g4@3 ~@3 g4@3 f4@3 [a3,db4,g4]@3 [a3,db4]@3 [db4,g4]@3 ~@9 a4@3 ~@3 [db4,f4,c5]@3 [db4,f4,db5]@3 ~@3 g4@3 [db4,a4]@3 g4@3 [f4,g4]@3 f4@3 [d4,f4,a4]@7, ~@17 [bb3,d4]@6 [bb3,d4,g4]@6 [bb3,d4]@10 ~@8 a3@9 a3@8 ~@32, ~@20 f4@5 ~@7 f4@6 ~@6 f4@5 ~ [db4,f4,a4]@9 [db4,f4]@6 ~@6 [db4,f4,a4]@5 ~ f4@5 ~@14, ~@62 a4@5 ~@22 d5@3 ~@4]/4", // Bb A7 A Dbdim Dbmaj7 Db Gbm Fsus2 …
AK: "~@18 f4@5 ~, ~@15 d4@8 ~, ~@5 g4 ~@2, ~@2 a3",
AL: "[f3@3 f3@11 ~ [f3,ab3,d4]@11 ~ [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~ g4@3 f4@5 ~, [a3,d4]@13 ~@26 [a3,d4]@8 ~]/2", // Ddim G D5
AM: "[f3@3 f3@11 ~ [f3,ab3,d4]@11 ~ [d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~ g4@3 f4@5 ~ f3@3 f3@11 ~ d4@11 [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~ g4@3 f4@5 ~ f3@3 f3@11 ~ [f3,ab3,d4]@10, [a3,d4]@13 ~@13 ab3@3 ~@10 [a3,d4]@8 d4@13 ~@60, ~@48 a3@13 ~ [f3,ab3]@11 ~@13 [a3,d4]@8 ~ [a3,d4]@13 ~@12]/5", // Ddim G5 G Ddim D5 Fm D5
AN: "[~@2 [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~ g4@3 f4@5 ~ f3@3 f3@11 ~ [f3,ab3,d4]@10, ~@14 [a3,d4]@8 ~ [a3,d4]@13 ~@12]/2", // G Ddim D5
AO: "~@2 [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~@11", // G
})).s("gm_piano").gain(0.48).pan(0.6)
// chords · brass section · "Horns"
const brass_section = note(`<
~@19 A B ~@15 C ~@16 D@2 E@4 F@2 ~@7 G ~@15 H ~@11 I@2 J K@2 L M N@2 ~ O@4 ~@17
>`.pickRestart({
A: "~@18 f5@5 ~", B: "[f5,a5]@3 ~@3 [f5,a5]@16 ~@2", C: "~@5 [c3,d4,g4]@7",
D: "[~ g4 [g4,b4]!3 ~ [e4,c5]@3 ~ g4@3 ~@3, ~@2 b4@3 ~@24 [e4,c5]@9 ~@10]/2", // G C
E: "[~@2 [d4,g4,b4]@8 ~ [d4,g4,b4]@8 ~ [c4,e4,g4]@8 ~ [c4,e4,g4]@7 ~@2 [c4,e4,g4]@5 ~@5]/2", // G C
F: "[~@2 [d4,g4,b4]@8 ~ [d4,g4,b4]@8 ~ [c4,e4,g4]@8 ~ [c4,e4,g4]@5 ~ [c4,e4,g4]@3 [c4,e4,g4]@3 [c4,e4,g4]@3 ~@4]/2", // G C
G: "~@7 [f4,c5,f5]@3 ~@3 [f4,c5,f5]@11", H: "g4@2 ~ g4@12 ~@9",
I: "[~@17 [a4,d5]@4 ~@2 [a4,f5]@2 ~ [f4,a4]@5 ~ [a4,c5,f5]@3 ~@3 ab4@5 [f4,ab4,d5]@3 ~@2, ~@16 f4@4 ~@2 c5@3 d5@5 ~@7 [f4,c5,e5]@5 ~@6]/2", // D5 Dm F Ddim Fmaj7
J: "~@2 [ab4,c5]@3 ~@2 [f4,ab4,c5,d5]@3 [f4,ab4,c5] ~ [f4,ab4,c5] [f4,ab4]@3 [f4,a4]@2 d5 [d4,a4,f5]@5, ~ f4@3 ~@9 c5 ~@2 db5 ~@7", // Ab Dm7b5 Fm F Dm
K: "[~ [d4,a4,d5]@3 [f4,a4,d5]@3 [f4,bb4,f5]@3 [f4,a4,f5]@5 ~ [d4,f4,a4,e5]@4 ~@2 ab4@3 ab4@13 ~@2 [f4,a4,d5]@4 ~@2 [a4,c5,f5]@2, ~@22 [d4,d5]@13 ~@13]/2", // D5 Dm Bb5 F Dm F D
L: "~ [f4,a4,d5]@5 ~ [a4,c5,f5]@3 ~@3 [f4,ab4,c5,e5]@5 ~ [f4,ab4,d5]@3 ~@2", // Dm F Fm Ddim
M: "~ [f4,ab4,c5]@3 ~@3 [a4,d5] ~ [a4,d5]!2 d5 a4 [f4,a4,d5,f5]@5 ~ [a4,d5]!2 ~ [a4,d5]!2", // Fm D5 Dm D5
N: "[~ [f4,a4,d5,f5]@5 ~@4 [f4,a4,c5]@5 ~ c5 f5 ~ d5 c5 ~ [ab4,d5]@16 ~@10, ~@8 [d4,f4]@11 ~@5, ~@16 ab4@3 ab4@3 ~@26]/2", // Dm F Abdim Dm
O: "[~@16 f5 d5 ~@2 c5 ~ d5@11 ~@7 f6 d6 ~@2 c6 ~ d6@27 ~@23]/4",
})).s("gm_brass_section").gain(0.35).pan(0.2)
// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
~@2 A@2 B ~@12 C D E F ~@15 G H I@6 J@8 K ~@7 L M@5 N@2 O@8 P ~@7 Q@3 R@2 S@7 T@2 U V W X Y@3 Z AA AB AC AD@8 AE@7
AF@3
>`.pickRestart({
A: "[~@23 f4@6 [a3,d4,f4,c5]@3 [d4,f4,a4]@6 [a3,d4,f4,c5]@8 ~ [f4,a4,d5], ~@11 [d4,a4,d5]@3 ~@2 d5@2 ~@6]/2", // Dm7 Dm Dm7 Dm D5
B: "[f4,a4,d5]!6 [f4,a4] [f4,a4,d5] f4 [a4,d5] [f4,a4,d5]!14", // Dm F Dm D5 Dm
C: "d4@5 ~ d4@3 [bb3,d4,f4]@5 ~ [bb3,d4,f4]@8 ~, [f3,bb3] ~@2", // Bb Bb5
D: "g4@3 f4@3 g4@8 ~ f4@3 g4@3 f4@3, [bb3,d4]@5 ~ [bb3,d4]@16 ~@2", E: "[a3,db4,g4]@3 [a3,db4,f4]@5 ~ [db4,f4,a4]@15",
F: "~@6 [db4,f4,a4]@11 ~@7", G: "~@11 [c4,f4,a4]",
H: "~ [c4,f4,a4]@5 ~ a4@8 ~ g4@3 [bb3,d4,g4]@5, ~@7 [c4,f4]@11 ~@6", // F Gm F5
I: "[~ f4@3 f4@11 ~ [bb3,d4,f4]@5 ~ a4@5 ~ g4@3 c4@8 ~ c4@3 [f3,bb3,d4]@19 ~@2 d5 c5 ~ bb4 a4 ~ d4@5 ~ d4@3 [bb3,d4,f4]@5 ~ bb4@3 c5@3 bb4@3 ~@3 f4@5 ~ f4@3 g4@3 f5@3 g5@2 f5@3 ~ g4@2 f4@3 ~ g4@2 ~@6 ab5@3 a5@3 ~ a4@2 ~ f4@2, ~ [bb3,d4]@13 ~@8 [c4,f4]@8 ~ [f4,a4]@11 ~@25 c4@3 [f3,bb3,g4]@8 ~@7 [bb3,d4,f4]@8 ~ [bb3,d4,g4]@11 ~ [bb3,d4]@11 db4@5 ~@4 a4@11 ~@7, ~@109 f4@8 ~ a5@13 ~@7 ab5@3 ~@3, ~@118 a3@5 [a3,db4]@16 ~@2 [db4,c5,db6]@3]/6", // Bb F5 F Gm7 Bb Gm Bb A …
J: "[~@3 [db4,f4,a4]@5 ~ [f4,a4]@3 g4@3 f4@5 ~ d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 [ab4,g6]@3 [ab4,f6]@3 ab4@3 e6@3 ~@12 [f4,a4,d5]@5 ~ c5@3 [f4,a4,d5]@8 ~ a4@3 f4@3 [ab4,g6]@3 [ab4,f6]@3 ab4@3 [ab4,e6]@3 ~@12 [f4,a4,d5]@5 ~ c5@3 [f4,a4,d5]@8 ~ a4@3 f4@3 [ab4,g6]@3 [ab4,f6]@3 ab4@3 e6@3 ~@12 d5@3 d5@3 c5@3 [f4,a4,d5]@8 ~ a4@3 f4@3 [d4,f4,ab4,g6]@3, [db4,f4,db5]@3 ~@6 db4@11 ~ [d4,f4,a4]@8 ~ [d4,f4,a4]@8 ~@7 [d4,f4]@8 ~ [d4,f4,ab4]@13 ~@26 [d4,f4]@11 ~ [d4,f4,ab4]@11 ~@25 [d4,f4]@8 ~ [d4,f4,ab4]@13 ~@2 [f4,a4]@8 ~@19, ~ a5@16 ~@4 d6@22 ~@17 d6@30 ~@18 d6@30 ~@18 d6@30 ~@6]/8", // Dbaug F Abmaj7 Db Dm Abmaj7 Db Dbm …
K: "[ab4,f6]@3 ab4@3 e6@3 ~@3 d6@8 ~@4, ~@6 [d4,f4,ab4]@13 ~@5", L: "~@5 [c4,f4,a4]",
M: "[~@2 [c4,f4,a4]@3 [c4,f4,a4]@3 [c4,f4,a4]@3 [c4,e4,g4]@8 ~ g4@5 ~@7 a5@3 g5@3 f4@3 f4@3 [c4,f4,a4]@8 ~ c4@8 ~ c5@3 d5@8 ~@12 d5 ~ c5 ~ bb4 a4 ~ [bb3,d4]@5 d4@3 ~ d4@5 [bb3,d4,f4]@8 ~ [bb3,d4,g4]@3 f4@2, ~@20 [bb3,d4]@16 ~@26 [f3,bb3,d4]@21 ~@6 c4@2 f3@5 ~@4 [bb3,f4]@5 ~@15, ~@26 f4@11 ~ f5@5 ~ f5@5 ~@4 a5@4 ~@34 g4@11 ~@18]/5", // F C F Bb Gm Bb Bb5
N: "[~ [bb3,d4,g4]@8 ~ f4@3 g4@3 f4@3 [a3,db4,g4]@3 [a3,db4,f4]@5 ~ [db4,f4,a4]@13 ~@7]/2", // Gm A7 Aaug Dbaug
O: "[~ [db4,f4,a4]@3 g4@3 f4@5 ~ g4@3 f4@3 d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 [ab4,g6]@3 [ab4,f6]@3 ab4@3 e6@3 ~@3 d6@8 ~ d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 [ab4,g6]@3 [ab4,f6]@3 ab4@3 [ab4,e6]@3 ~@3 d6@8 ~ d5@3 d5@3 d5@3 c5@3 d5@3 c5@3 a4@3 f4@3 [ab4,g6]@3 [ab4,f6]@3 ab4@3 [ab4,e6]@3 ~@2 d6@8 ~@2 d5@3 d5@2 c5@3 ~ [f4,a4,d5]@5 ~ c5@3 a4@3 f4@2 ~@4 f6@2, ~@19 [d4,f4,a4]@16 ~@8 [d4,f4]@8 ~ [d4,f4,ab4]@13 ~@2 [f4,a4]@16 ~@8 [d4,f4]@11 ~ [d4,f4,ab4]@11 ~ [f4,a4]@16 ~@8 [d4,f4]@11 ~ [d4,f4,ab4]@11 ~ [f4,a4]@8 ~@15 d4@6, ~@62 [ab4,g6] ab4, ~@187 f4@5]/8", // Dbaug Abmaj7 Db Abmaj7 Db Dbm Abmaj7 Db …
P: "ab4@3 e6@3 ~@3 d6@8 ~@7, ~@3 [d4,f4,ab4]@13 ~@8", // Ddim
Q: "[~@18 [c4,f4,a4]@3 ~@6 [c4,f4,a4]@8 ~ g4@2 ~@13 f5@3 a5@2 g5@3 ~ f5@2 c5@3 ~ c4@5 ~, ~@21 [c4,f4,a4]@5 ~@12 g4@4 f5@8 ~@15 f5@7, ~@24 [c5,g5]@15 [bb3,d4]@5 f4@3 ~ f4@11 d4@5 ~ [f4,a4]@5 ~@2, ~@41 c5@16 ~@15, ~@45 [bb3,d4]@13 ~@2 [bb3,f4]@5 ~@7]/3", // F C5 Bb F Bb Bb5
R: "[g4@2 ~@3 a5@3 ~@3 [c4,c5]@3 [f3,bb3,d4]@19 ~@2 d5 ~ c5 c4@2 a4 [f3,bb3,d4]@5 ~ d4, ~@2 [c4,f4,a4]@8 ~@4 d5@13 ~@11 bb4 ~@2 g4@6 ~]/2", // C Bb F
S: "[~@2 [bb3,d4,f4]@5 ~ a4@3 bb4@3 a4@3 g4@3 f4@5 ~ f4@3 g4@3 f5@3 g5@3 f5@3 g4@3 f4@3 g4@3 f5@2 a5@2 f5@3 ~ a5@3 ~ [a4,f5]@3 [db4,f4,c5]@3 [db4,f4,db5]@3 [db4,f4,a4]@5 ~ [db4,f4,a4]@3 g4@3 f4@4 a5 ~ d6@79, ~@8 [bb3,d4,f4]@8 ~ [bb3,d4]@11 ~ [bb3,d4]@11 ~ [a3,db4]@5 ~ [a3,db4]@16 ~@105, ~@32 f4@8 ~ a5@7 ~@2 a4@11 ~@4 db6 ~@2 a5@13 ~@87]/7", // Bb Dm Dbmaj7 Db Dbaug Bb A
T: "[~@17 f4@22 ~ ab4@3 ~ ab4@2 ab4@2, ~@8 [a4,d5]@11 ~ [d4,f4]@4]/2", U: "~@2 ab4@13 ~ [f4,a4]@8, ~ [d4,f4]@13 ~@10",
V: "~ a4@8 ~ a4@5 ~ ab4@3 ab4@3 ab4@2, ~ f4@13 ~@2 [d4,f4]@8", W: "~ [d4,f4,ab4]@13 ~@2 [d4,f4,a4]@8",
X: "~ a4@8 ~ a4@5 ~ ab4@3 ab4@3 ab4@2, ~ f4@15 ~@8, ~ d4@13 ~@2 [d4,f4]@8", // Dm
Y: "[~ [d4,f4,ab4]@13 ~@2 [f4,a4,d5]@22 ~@2 ab4@3 ab4@3 ab4@3 ab4@3 [f4,ab4]@10 [d3,d4,d5] ~ [d3,d4,d5] ~@3 [d3,d4,d5] ~ [d3,d4,d5] ~, ~@40 [d4,f4]@11 ~ d4@8 ~@12]/3", // Ddim Dm Fm D Dm
Z: "~ [d3,d4,d5]!2 ~ [d3,d4,d5]!2 ~@2 [d3,d4,d5] ~ [d3,d4,d5] ~@5 [f3,f4,f5] [d3,d4,d5] ~@2 [c3,c4,c5] ~ [d3,d4,d5] [c3,c4,c5]", // D F D C D C
AA: "~ [d3,d4,d5] ~@2 [f3,f4,f5] [d3,d4,d5] ~@2 [c3,c4,c5] ~ [d3,d4,d5]@3 ~@3 d5@3 d5@3 c5@2, ~@2 [f4,a4]", // D F D C D F
AB: "~ [f4,a4]@8 ~ a4@3 f4@2 ~@4 ab4@3 ab4@2, d5@8 ~@7 ab4@3 ~@6, ~@2 [d4,f4]", // F Dm
AC: "~ [d4,ab4]@13 ~@4 f4@5 ~, f4@13 ~@2 d4@8 ~, ~@5 g4 ~@2, ~@2 a3", // Ddim
AD: "[f3@3 f3@11 ~ g6@3 f6@3 ~@3 e6@3 [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~ g4@3 f4@5 ~, [a3,d4]@13 ~@2 [f3,ab3,d4]@11 ~@4 d6@8 ~ [a3,d4]@8 ~]/2", // G D5 Ddim D5
AE: "[f3@3 f3@11 ~ g6@3 f6@3 ~@3 e6@3 [ab3,d4,g4]@2 ~@4 [ab3,d4,g4]@5 ~ g4@2 f4@5 ~ f3@3 f3@11 ~ g6@3 f6@3 ~@3 e6@3 [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~ g4@3 f4@5 ~ f3@3 f3@11 ~ g6@3 f6@3 ~@3 e6@3 [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~ g4@3 f4@5 ~ f3@3 f3@11 ~ g6@3 f6@3 ~@3 e6, [a3,d4]@13 ~@2 [f3,ab3,d4]@11 ~@3 f4@3 ~@7 [a3,d4]@8 [a3,d4]@13 ~@2 [f3,ab3,d4]@11 ~@13 [a3,d4]@8 ~ [a3,d4]@13 ~@2 [f3,ab3,d4]@11 ~@13 [a3,d4]@8 ~ [a3,d4]@13 ~@2 [f3,ab3,d4]@10, ~@30 d6@8 ~@39 d6@8 ~@40 d6@8 ~@35]/7", // G D5 Ddim D5 Ddim D5 Ddim D5 …
AF: "[~@2 [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~ g4@3 f4@5 ~ f3@3 f3@11 ~ g6@3 f6@3 ~@3 e6@3 [ab3,d4,g4]@3 f4@3 [ab3,d4,g4]@5 ~@11, ~@5 d6@8 ~ [a3,d4]@8 ~ [a3,d4]@13 ~@2 [f3,ab3,d4]@11 ~@4 d6@8 ~@11]/3", // G D5 Ddim
})).s("gm_string_ensemble_1").gain(0.31).pan(0.6)
// other · electric guitar clean · "Guitar 2"
const electric_guitar_clean = note(`<
~@22 A ~ A ~ A ~ A ~@17 B ~ B ~ B ~ C D@3 E F G@2 H ~@9 I ~ I ~ I ~ I ~@31 J@14 K@4 ~
>`.pickRestart({
A: "~@5 d4@11 ~@8", B: "~@3 d4@11 ~@10", C: "~@3 d4@5 ~ bb3!2 ~ g3@3 c4@3 g3@3 bb3@3",
D: "[~@3 b3@5 ~ g4@3 g4@5 ~ d4@3 c4@5 g4@3 g4@8 ~ b4@5 ~@4 e4@3 d4@5 ~ g4@3 g4@5 ~ d4@3 c4@4]/3",
E: "~@2 g4@3 d4@3 bb3@3 a3@3 g3@5 ~@5", F: "~@2 c4@5 ~ g4@3 g4@3 ~@3 d4@3 c4@4",
G: "[~@2 g4@3 d4@3 bb4@3 d4@3 a4@3 b3@3 d4@3 g4@3 d4@3 ~@3 g4@3 g4@3 ~@3 d4@3 b3@4]/2", H: "~@2 g4@3 g4@13 ~@6",
I: "~ d4@11 ~@12", J: "[~@21 d4@11 ~@16]/2", K: "[~@20 d4@11 ~@17]/2",
})).s("gm_electric_guitar_clean").gain(0.54).pan(0.1)
// bass · baritone sax · "Saxophone"
const bass_2 = note(`<
~@5 A B A B A B A C D A D E F ~@10 G@8 H@6 ~@10 I J I J I J I J K I L I M ~@11 N O N O N O N O P N Q N R ~@38
>`.pickRestart({
A: "d2@5 ~@19", B: "c2@5 ~@19", C: "c2@5 ~@4 f2@3 c3@3 bb2@3 a2@3 g2@3", D: "f2@5 ~@19", E: "d2@5 ~@7 bb2@5 ~ a2@5 ~",
F: "g2@5 ~@19", G: "[~@23 d2@5 ~@19 c2@5 ~@18 d2@5 ~@19 c2@5 ~@19 d2@5 ~@19 c2@5 ~@19 d2@5 ~@19 c2@2]/8",
H: "[~@7 f2@3 c3@3 bb2@3 a2@3 g2@3 f2@5 ~@19 d2@5 ~@19 f2@5 ~@19 d2@5 ~@7 bb2@5 ~ a2@5 ~ g2@5 ~@21]/6", I: "~@5 d2",
J: "~@5 c2", K: "~@5 f2@3 c3@3 bb2@3 a2@3 g2@3 f2@4", L: "~@5 f2", M: "~@8 bb2@5 ~ a2@5 ~ g2@4", N: "~@18 d2@5 ~",
O: "~@18 c2@5 ~", P: "~@3 f2@3 c3@3 bb2@3 a2@3 g2@3 f2@5 ~", Q: "~@17 f2@5 ~@2", R: "~@5 bb2@5 ~ a2@5 ~ g2@5 ~@2",
})).s("gm_baritone_sax").gain(0.36)
// drums · kick
const kick = s("bd").struct(`<
~@2 A B C D@15 E F@11 G@12 H I@9 J@12 K@2 L K@6 M@13 N@3 O P N@4 Q@12 R@10 S T@6 U
>`.pickRestart({
A: "~@23 x", B: "~@5 x ~@5 x ~@5 x ~@5 x", C: "~@5 x ~@6 x ~@5 x ~@5", D: "x ~@2 x!2 ~@3", E: "x ~@5 x ~@16 x",
F: "~@8 x ~@2 x ~@11 x", G: "~@7 x ~@2 x ~@11 x ~", H: "~ x ~@5 x", I: "~@2 x!2 ~@3 x", J: "~@5 x ~@2 x ~@11 x ~@3",
K: "~@4 x ~@2 x ~@11 x ~@4", L: "~ x ~@17 x ~@4", M: "~ x!2 ~@3 x ~", N: "~@2 x ~@2 x ~@11 x ~@6",
O: "~@2 x ~@2 x ~@11 x ~@5 x", P: "~@17 x ~@6", Q: "~ x ~@2 x ~@11 x ~@7", R: "x!2 ~@3 x ~@2",
S: "x ~@2 x ~@10 x ~@8 x", T: "~@2 x ~@11 x ~@8 x", U: "~ x ~@10",
})).gain(0.4)
// drums · rim
const rim = s("rim").struct(`<
~@5 A@15 ~ A@2 B@11 C@10 ~ D@7 E@14 F@2 ~ F@8 G@11 H@4 ~ H@3 I@15 J@10 K@5 L
>`.pickRestart({
A: "~ x", B: "~@11 x ~@12", C: "~@5 x ~@6", D: "~@3 x ~@4", E: "~ x ~", F: "~@7 x ~@16", G: "~ x ~@2",
H: "~@5 x ~@18", I: "~ x ~@4", J: "~ x ~@6", K: "~ x ~@10", L: "~ x ~@2 x ~@7",
})).gain(0.3)
// drums · snare
const snare = s("sd").struct(`<
~@4 A ~@7 B ~@7 C D@7 E D@5 F@2 G F@6 H I@8 J K@3 L K@9 M@10 N O@7 P O Q R@4 S T R@2 U@9 V U@2 W X W@11 Y Z@5 ~
>`.pickRestart({
A: "~@5 x ~@6 x ~@11", B: "~@6 x!4 ~@2 x ~@2 x ~@2 x ~@2 x ~@2", C: "~@3 x", D: "~@5 x ~@11 x ~@6", E: "~@5 x ~@18",
F: "~ x ~@2 x ~", G: "~@4 x ~@3 x!3 ~@2 x ~@2 x ~@2 x ~@4", H: "~@3 x ~@8 x ~@3 x ~ x ~@5", I: "~ x ~@3 x ~@2",
J: "~ x ~@2 x!3 ~", K: "~ x ~@5 x ~@4", L: "~@2 x ~@8 x ~@2 x ~@2 x ~@6", M: "~ x ~@11 x ~@10",
N: "x ~@8 x ~@2 x ~@3 x ~@7", O: "x!2", P: "x ~@2 x!3 ~@2", Q: "x ~@10 x ~@11 x", R: "~@11 x ~@11 x",
S: "~@11 x ~@8 x ~@2 x", T: "~@14 x ~@8 x", U: "~@5 x ~@5 x", V: "~@10 x ~@2 x ~@10", W: "~@3 x ~@3 x",
X: "x ~@3 x ~ x ~@3 x ~ x ~@8 x ~@2", Y: "~@5 x", Z: "~@2 x ~@2 x",
})).gain(0.4)
// drums · hihat
const hihat = s("hh").struct(`<
~@5 A@15 B C D E@9 F@12 G H@9 I@11 J@3 K J@6 A@12 D E@4 L E@3 F@13 H@11 I@6 M
>`.pickRestart({
A: "x!4", B: "x ~@5 x ~@16 x", C: "~@6 x ~@4 x ~@5 x ~@6", D: "x ~@5 x ~@4 x ~@5 x ~@5 x",
E: "~@5 x ~@5 x ~@5 x ~@5 x", F: "~@2 x ~@2 x ~@2 x ~@2 x", G: "~ x ~@5 x", H: "~ x ~ x ~ x ~ x",
I: "~ x ~@2 x ~@2 x ~@2 x ~", J: "~ x ~@5 x ~@5 x ~@5 x ~@4", K: "~ x ~@17 x ~@4", L: "~@17 x ~@5 x",
M: "~ x ~@2 x ~@7",
})).gain(0.4)
// drums · low tom
// … 48 more lines
More by Carly Simon
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.