0:00/0:00
// Piano Sonata No.8 Op.13 — Ludwig van Beethoven
// 29 bpm, 2/4, key Ab 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 17) are rendered on a constant 2/4 grid of one bar per cycle
// note: ch 1 "Piano" named as a piano, played on piano (its trombone patch is not one); ch 2 "Violinos" named as a string part, played on violin (its tuba patch is not one); ch 5 "Violas" named as a string part, played on string ensemble 1 (its clarinet patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5029608; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 76 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(29/2)
// 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.
// chords · piano
const piano = 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 Y Z AA@3 AB@7 AC@5 AD AE@2 AF@3 AG@6 AH@5 AI AJ@2 AK AL@4 AM AN AO AP
AQ@2 AR@2 AS@2
>`.pickRestart({
A: "ab3 eb3 ab3 eb3 g3 eb3 g3 eb3, [ab2,c4] [db3,bb3]", B: "ab3 eb3 ab3 eb3 bb3 eb3 bb3 eb3, eb4@3 db4, c3 g2",
C: "ab3 eb3 bb3 eb3 c4 ab3 d4 ab3, [ab2,c4] [g2,eb4] [f2,ab4] [f3,bb4]", // Ab Cm Fm Bb5
D: "g3 bb3 g3 bb3 g3 bb3 g3 bb3, eb4@3 e4, eb3 eb2",
E: "g3@2 bb3@2 g3@2 bb3@2 g3@2 eb3@2 g3@2 c4 db4, [db2,f4]@4 [db3,bb3]@3 eb3", // Db Gb
F: "ab3 eb3 ab3 eb3!2 c3 eb3 c3, [c3,eb4] [f2,a3]", G: "f3 db3 f3 db3!5, [bb1,db4] eb2, ~@8 c4 ~ bb3 ~ ab3 ~ g3 ~",
H: "db3@4 eb3@4 db3@4 eb3@4 [c3,ab3] ~@2 eb3 ~ ab3 ~@2 c4 ~@2 eb4 ~ ab4 ~@2, [g3,bb3] ~, ab1 ab2 ab1 ~", // Fm Gm
I: "c4 [eb3,eb4] [ab3,c4] [eb3,eb4] [g3,bb3] [eb3,eb4] [g3,bb3] [eb3,eb4], [ab2,c5] [db3,bb4], ab3 ~@3", // Eb Ab Eb Gm Eb Gm Eb Ab …
J: "[ab3,eb4] [eb3,ab4] [ab3,eb4] [eb3,ab4] eb4 [eb3,bb4] [g3,eb4] [eb3,bb4], eb5@3 db5, c3 g2, ~@2 g3 ~", // Ab5 Eb5 Cm Eb5
K: "eb4 [eb3,ab4] eb4 [eb3,bb4] ab4 [ab2,c5] ab4 [ab2,d5], [ab2,ab3,c5] [g2,g3,eb5] [f2,f3,ab5] [f2,f3,bb5]", // Ab5 Eb5 Ab Abdim Ab Cm Fm Bb5
L: "[eb2,eb3,g4] [g2,g3,bb4] [bb2,bb3,g4] [eb3,eb4,bb4] [g3,g4] [bb3,bb4] [g3,g4] [bb3,bb4], eb5@3 e5", // Eb Gm Eb Eb5 G Bb G Bb
M: "[db2,db3,g4]@2 [g2,g3,bb4]@2 [bb2,bb3,g4]@2 [db3,db4,bb4]@2 [g3,g4]@2 [bb3,eb4]@2 [g3,g4]@2 c5 db5, f5@4 bb4@3 [db3,eb4]", // Dbdim Gm Eb Gb G Eb5 G Dbsus2
N: "ab4 [eb3,eb4] ab4 [eb3,eb4] [c3,f3,eb4] [f3,c4] [c3,eb4] [f3,c4], eb5 ~, c3!2 [f2,a4]@2", // Eb F7 F5 Cm F5 F
O: "f4 [f3,db4] [db3,f4] [f3,db4] [bb2,eb3,db4] [eb3,db4] [bb2,db4] [eb3,db4], [bb2,db5] eb2, db3@4 ~@4 c5 ~ bb4 ~ ab4 ~ g4 ~", // Db Eb7 Bbm Eb7 Bbm
P: "db4 [eb3,eb4] [g3,db4] [eb3,eb4] [ab3,c4,ab4]@2 ~ c4, ab2@3 ~, bb4 ~", // Eb Gdim Eb Ab
Q: "~ c4!4 [c4,ab5] [c4,g5] [c4,f5], c5@5 ~@3", // Fm C5 F5
R: "[e3,g3,c4]!4 [f3,ab3,c4] [f3,ab3,c4,ab5] [f3,ab3,c4,g5] [f3,ab3,c4,f5], [c3,c6]@5 ~@3", // C Fm C
S: "[g3,bb3,e4]!4 [ab3,c4,f4] [ab3,c4,f4,ab5] [ab3,c4,f4,g5] [ab3,c4,f4,f5], [e3,c5] f3", // Edim Fm C
T: "[bb3,f4,ab4]@4 [bb3,f4,ab4]@4 [bb3,f4,ab4]@4 [bb3,f4,ab4]@4 [b3,f4,ab4]@4 eb5 ~ c5 d5 [b3,d4,ab4,f5]@4 ~@2 eb5@2, eb5@2 d5@3 [b3,f4,ab4] ~ [b3,d4,ab4], ~@21 d5@2 ~@9", // Bb7 Fdim Bdim Fdim Abdim
U: "[c4,eb4,g4]@4 [c4,eb4,g4]@4 [c4,eb4,g4]@4 [c4,eb4,g4]@4 [ab3,eb4]@4 [ab3,eb4]@4 f4 g4 e4 f4 ab4@2 c5@2, eb5@4 f4@2 [ab3,eb4]!2, ~@25 f4@2 ~@5", // Cm Ab5
V: "[b4,c5] [c5,d5] bb4@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@4 f5@2 eb5@2 d5@2 c5@2 bb4@2 a4@2 c5@2 bb4@2 ab4@2 f4@2, ~ g5@2 [bb3,eb4,g4] ~ [bb2,d3,ab3]!3", // Cmaj7 Csus2 Eb Bb7
W: "[eb3,g3,eb4]@2 ~ bb3 g3 bb3 g3 eb3", X: "eb3 d3!2 c3!2 b2!2 bb2, [bb1,bb2], [f3,ab3]!3 [d3,f3,ab3]",
Y: "[eb2,bb2,eb3,g3]@4 ~@2 [bb2,bb3]@2 [g2,g3]@2 [bb2,bb3]@2 [g2,g3,bb3]@2 ~ eb4, ~@7 [eb2,eb3]", // Eb Bb G Bb Gm Eb
Z: "eb4 d4!2 c4!2 b3!2 bb3, [bb1,bb2,f3,ab3] [bb2,f3,ab3,bb3]", // Bb7
AA: "[f3@4 e3@4 e3@4 eb3@4 eb3@4 d3@4 d3@4 eb3@4 eb3@4 e3@4 e3@4 eb3@4 eb3@5 d3@4 d3@5 db3@5 [c3,ab3]@4 eb3@4 ab3@4 ~ eb3@4 g3@4 eb3@4 g3@4, [eb2,g3,bb3]@67 [ab1,ab2,c4]@17 ~@12, eb3 ~@6 [db3,bb3]]/3", // Fm Eb Ab Gb
AB: "[eb3@4 ab3@4 eb3@4 ~ ab3@4 eb3@4 bb3@4 eb3@4 bb3@4 eb3@4 ab3@4 ~ eb3@4 bb3@4 eb3@4 c4@4 ab3@4 d4@4 ab3@4 ~ g3@4 bb3@4 g3@4 bb3@4 g3@4 bb3@4 g3@4 ~ bb3@4 g3@4 bb3@4 g3@4 bb3@4 g3@4 eb3@4 ~ g3@4 c4@2 db4@2 ab3@4 eb3@4 ab3@4 eb3@4 eb3@4 ~ c3@4 eb3@4 c3@4 f3@4 db3@4 f3@4 db3@4 ~ db3@4 db3@4 db3@4 db3@4 db3@4 eb3@4 db3@4 ~ eb3@4 [ab1,c3,ab3]@4, ~@4 eb4@25 db4@8 [ab2,c4]@8 ~@17 [f3,bb4]@8 ~ eb4@24 e4@8 ~@17 db3@17 [c3,eb4]@17 ~@33 c4@2 ~@2 bb3@2 ~@2 ab3@2 ~@2 g3@2 ~@2 [g3,bb3]@17 ~@4, ~@4 c3@17 g2@17 ~@8 [g2,eb4]@8 [f2,ab4]@8 ~@9 eb3@16 eb2@17 [db2,f4]@16 bb3@12 ~ eb3@4 ~@16 [f2,a3]@17 [bb1,db4]@17 eb2@16 ab1@8 ab2@8 ~@5]/7", // Ab Bb5 Cm Gm Cm Fm Db F …
AC: "[~@20 eb4@8 [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [db4,eb4]@2 [db4,eb4]@2 ~ [db4,eb4]@2 [db4,eb4]@2 ~ [bb3,db4,eb4]@2 [a3,db4,eb4]@2 ~ [bb3,db4,eb4]@2 [bb3,db4,eb4]@2 ~ [ab3,db4,eb4]@2 [g3,db4,eb4]@2 ~ [f3,db4,eb4]@2 [eb3,db4,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [bb3,eb4]@2 [bb3,eb4]@2 ~ [bb3,eb4]@2 [bb3,eb4]@2 ~ [eb3,bb3,eb4]@2 [d3,bb3,eb4]@2 ~ [eb3,g3,bb3,eb4]@2 [e3,g3,bb3,eb4]@2 ~ [eb3,g3,bb3,eb4]@2 [db3,g3,bb3,eb4]@2 ~ [b2,g3,bb3,eb4]@2 [bb2,g3,bb3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2, ~@28 [ab2,ab3]@15 ~@22 db5@7 ~@23 b4@7 ~ bb4@7 ab4@7 ~@8 g4@7 ~@23 b4@5, ~@28 ab4@7 b4@7 ~ bb4@7 ab4@7 ~ [bb3,g4]@10 ~@20 [ab3,ab4]@7 ~@23 [eb3,ab4]@10 ~@20 [ab2,ab4]@7 ~@5]/5", // B Dbsus2 Eb7 Ebm7b5 Eb7 Absus4 Eb7 Db …
AD: "[b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [a2,b2,eb3,gb3]@2 ~ [a2,b2,eb3,gb3]@2 [a2,b2,eb3,gb3]@2 ~ [a2,b2,eb3,gb3]@2 [a2,b2,eb3,gb3]@2 ~ [a2,b2,eb3,gb3]@2, ~@3 bb4@7 ab4@7 b3@15, ~@17 [gb4,gb5]@10 eb5 ~@2 b4 ~", // B B7 Gb
AE: "[[ab2,b2,e3,ab3]@2 ~ [ab2,b2,e3,ab3]@2 [ab2,b2,e3,ab3]@2 ~ [ab2,b2,e3,ab3]@2 [ab2,b2,e3,ab3]@2 ~ [ab2,b2,e3,ab3]@2 [db3,e3,gb3,bb3]@2 ~ [db3,e3,gb3,bb3]@2 [db3,e3,gb3,bb3]@2 ~ [db3,e3,gb3,bb3,e4]@2 [db3,e3,gb3,bb3]@2 ~ [db3,e3,gb3,bb3]@2 [b2,e3,ab3,b3]@4 [b2,e3,ab3,b3]@3 [b2,e3,ab3,b3]@3 [b1,b2,gb3,a3,b3,eb4]@4 [b1,b2]@4 [b1,b2]@4 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@2, e4@15 [e4,e5,e6]@10 [db4,db6] ~@4 [b4,b5]@10 ~@12 [e2,e3,e4]@8 ~@4, [b4,b5]@10 ab5 ~@2 e5 ~@14 bb5 ~@35]/2", // E Gb7 E B7 B Abm E Db …
AF: "[~ [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [a3,b3]@3 [a3,b3]@2 [a3,b3]@3 [a3,b3]@2 [gb3,a3,b3]@3 [f3,a3,b3]@2 [a3,b3]@3 [a3,b3]@3 [a3,b3]@2 [a3,b3]@3 [a3,b3]@2 [a3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2, ~@19 [e2,e3]@15 gb4@8 e4@8 [gb3,eb4]@10 ~@5 gb3 ~@2 gb3 ~@2 e3 ~ eb3 ~@2 db3 ~ b2 ~@2 [e3,e4]@8 ~@7, ~@19 e4@8 ab4@8 ~@23 a4@8 ~@23 ab4@7]/3", // Abm Asus2 B7 Bm7b5 Asus2 Abm E Ebm …
AG: "[[ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [d3,ab3,b3]@3 [d3,ab3,b3]@2 [d3,ab3,b3]@3 [db3,ab3,bb3]@2 [db3,ab3,bb3]@3 [db3,ab3,bb3]@2 [bb2,db3,ab3,bb3]@3 [db3,ab3,bb3]@3 [db3,ab3,bb3]@2 [db3,g3,bb3]@3 [db3,g3,bb3]@2 [db3,g3,bb3]@3 [db3,eb3,g3,bb3]@2 [db3,eb3,g3,bb3]@3 [db3,eb3,g3,bb3]@3 c3@2 eb3 ~@2 eb3 ~ ab3@3 eb3 ~ eb3 ~@2 g3@3 eb3 ~ eb3 ~@2 g3@2 eb3 ~@2 eb3 ~@2 ab3@2 eb3 ~@2 eb3 ~ ab3@3 eb3 ~ eb3 ~@2 bb3@3 eb3 ~ eb3 ~@2 bb3@2 eb3 ~@2 eb3 ~ ab3@3 eb3 ~@2 eb3 ~ bb3@3 eb3 ~ eb3 ~@2 c4@3 ab3 ~ ab3, e4@8 eb4@8 d4@23 d4@8 d4@23 d4@8 db4@23 db4@8 ~@15 [db3,bb3]@15 ~ eb4@23 db4@8 ~@21, ~@18 [f1,f2] ~@2 [ab1,ab2] ~@2 [b1,b2] ~ d2 ~@2 [f2,f3] ~ ab2@8 ~@10 [f1,f2] ~@2 [ab1,ab2] ~ [b1,b2] ~@2 d2 ~@2 [f2,f3] ~ ab2@8 ~@10 [e2,e3] ~@2 ab2 ~@12 [eb2,eb3] ~ g2 ~@2 bb2@4 ~@4 [ab1,ab2,c4]@15 ~@16 c3@15 g2@15 [ab2,c4]@8 [g2,eb4]@8 [f2,ab4]@6]/6", // Abm Abdim Bbm7 Gdim Eb7 Gb F Ab …
AH: "[~@2 d4@2 ab3 ~@2 ab3 ~ g3@3 bb3 ~@2 bb3 ~ g3@3 bb3 ~ bb3 ~@2 g3@2 bb3 ~@2 bb3 ~@2 g3@2 bb3 ~@2 bb3 ~ g3@3 bb3@2 bb3@3 g3@3 bb3@2 bb3@3 g3@2 eb3@3 eb3@3 g3@2 ~ c4@2 [eb3,db4]@2 ab3@3 eb3@2 eb3@3 ab3@3 eb3@2 eb3@3 eb3@2 c3@3 c3@2 eb3@3 c3@3 c3@2 f3@3 db3@2 db3@3 f3@3 db3@2 db3@3 [g3,db4]@2 [db3,c4]@3 [db3,bb3]@2 [db3,bb3]@3 [db3,ab3]@3 [db3,g3]@2 db3@3 eb3@2 eb3@3 db3@2 eb3@3 eb3@3 [c3,ab3] ~ eb3 ~@2 ab3 ~ c4 ~@2 eb4, ~@2 [f3,bb4]@7 eb4@23 ~ e4@8 ~@25 eb3@3 ~@64 [g3,bb3]@15 ~@12, ~@9 eb3@15 ~ eb2@15 [db2,f4]@15 ~ [db3,bb3]@15 [c3,eb4]@15 ~ [f2,a3]@15 [bb1,db4]@15 ~ eb2@15 ab1@8 ab2@8 ab1@8 ~@3]/5", // Eb7 Gdim Dbmaj7 Gb Db5 Dbdim Fm Bb5 …
AI: "~ ab4 ~@2 [c3,ab3,c4]@3 [eb3,eb4]@2 [eb3,eb4]@3 [ab3,c4]@2 [eb3,eb4]@3 [eb3,eb4]@3 [g3,bb3]@2 [eb3,eb4]@3 [eb3,eb4]@2 [g3,bb3]@3 [eb3,eb4]@2, ~@4 [ab2,c5]@15 ~ [db3,bb4]@12", // Fm Eb Ab Eb Gm Eb Gm Eb …
AJ: "[[eb3,eb4]@3 [ab3,eb4]@3 [eb3,ab4]@2 [eb3,ab4]@3 [ab3,eb4]@2 [eb3,ab4]@3 [eb3,ab4]@2 [g3,bb3,eb4]@3 [eb3,bb4]@3 [eb3,bb4]@2 [g3,bb3,eb4]@3 [eb3,bb4]@2 [eb3,bb4]@3 [ab3,eb4]@3 [eb3,ab4]@2 [eb3,ab4]@3 [g3,bb3,eb4]@2 [eb3,bb4]@3 [eb3,bb4]@2 [f3,c4,ab4]@3 [ab2,c5]@3 [ab2,c5]@2 [f3,d4,ab4]@3 [ab2,d5]@2 [ab2,d5]@2, ~@3 eb5@23 db5@8 ~@15 [f2,ab5]@8 [f2,bb5]@7, ~@3 c3@15 g2@15 ~ [ab2,c5]@8 [g2,eb5]@8 ~@2 ab3 ~@2 ab3 ~@4 ab3 ~ ab3 ~]/2", // Eb Ab5 Eb Eb5 Eb Eb5 Ab5 Eb …
AK: "~ [g3,g4]@2 [g2,bb3] ~@2 [bb2,bb3] ~@2 [g3,g4]@2 [g3,bb3] ~@2 bb4@2 [g3,g4]@3 bb4@2 bb4@3 [g3,g4]@3 bb4@2 bb4@3, ~ eb5@23 e5@8, ~ eb2 ~ bb4@3 bb4@3 eb3 ~ bb4@3 bb3 ~ eb4@15 ~, ~@19 bb3 ~ bb3 ~@5 bb3 ~ bb3 ~@2", // G Gm Bb G Gm G
AL: "[[g3,g4]@2 [bb3,bb4]@3 [bb3,bb4]@3 [g3,g4]@2 [bb3,bb4]@3 [bb3,bb4]@2 [g3,g4]@3 [eb3,eb4]@2 [eb3,eb4]@3 [g3,g4]@3 ~@3 db5@2 [ab3,ab4]@2 [eb3,eb4]@3 [eb3,eb4]@2 [ab3,ab4]@3 [eb3,eb4]@3 [eb3,eb4]@2 [eb3,eb4]@3 [c3,c4]@2 [c3,c4]@3 [eb3,eb4]@3 [c3,c4]@2 [c3,c4]@3 [f3,f4]@2 [db3,db4]@3 [db3,db4]@2 [f3,f4]@3 [db3,db4]@3 [db3,db4]@2 [bb2,g3,g4,db5]@3 [db3,eb3,db4,c5]@2 [db3,eb3,db4]@3 [db3,db4,bb4]@2 [db3,eb3,db4,ab4]@3 [db3,eb3,db4]@3 ab2@3 eb3@2 ~ eb3@2 ~ eb3@2 ~ eb3@2 ~@2 eb3@2 ~ eb3@3 eb3@3 eb3@3 ~ eb3@3 eb3@3, f5@15 ~@11 [eb3,eb4]@2 [eb3,eb4]@3 [c4,eb5]@15 [f3,a4]@15 ~ [bb2,db5]@15 eb2@8 eb2@8 ~@35, db2 ~ g2 ~@2 bb2 ~@2 db3 ~ g3 ~@4 [db4,bb4]@12 c5@2 ~@53 bb4 ~@7 g4 ~@2 [c4,ab4]@10 ~@19 eb5@6]/4", // G Bb G Bb G Eb G Ab …
AM: "~ e5@2 [eb2,db3,eb3]@3 [eb2,db3,eb3]@3 ~ [eb2,db3,eb3]@3 [eb2,db3,eb3]@3 [eb2,db3,eb3,eb5]@3 [eb2,db3,eb3,db5]@3 ~ [eb2,db3,eb3,c5]@3 [eb2,db3,eb3,bb4]@3 [eb2,db3,eb3,ab4]@3, eb3@3 f5@13 ~@16", // Eb7 Cm Eb7 Dbsus2
AN: "[eb2,db3,eb3,g4]@3 [eb2,db3,eb3,db5]@2 bb4@2 ~ g4@2 [ab2,c3,eb3,ab4]@3 ~ [ab4,bb4] ~@2 c5@2 ~ eb3@3 eb3@3 eb3@3 eb3@3, ~@7 [eb2,db3,eb3]@3 ~@3 eb3@2 ab4@2 ~@3 eb4@10 ~@2, ~@16 eb3@3 ~@13", // Eb7 Ab Absus2 Eb7
AO: "eb3@3 ~ eb3@3 eb3@3 eb3@3 ~ [e5,e6]@2 ~ [eb2,db3,eb3]@3 [eb2,db3,eb3]@3 [eb2,db3,eb3]@3 [eb2,db3,eb3]@3 [eb2,db3,eb3,eb5,eb6]@3, ~@7 [eb5,eb6]@6 eb3@3 ~ [f5,f6]@13 ~@2", // E Eb7 Eb F
AP: "~ [eb2,db3,eb3,db5,db6]@3 [eb2,db3,eb3,c5,c6]@3 [eb2,db3,eb3,bb4,bb5]@3 [eb2,db3,eb3,ab4,ab5]@3 ~ [eb2,db3,eb3,g4,g5]@3 [eb2,db3,eb3,db5,db6]@3 [eb2,db3,eb3,g4,g5]@3 [ab2,c3,eb3,ab4,ab5]@9", // Eb7 Cm Eb7 Dbsus2 Eb7 Ab
AQ: "[~@26 eb5 db5@3 c5@3 db5@3 ~ f5@3 eb5@3 ~ db5@2 ~ [ab3,ab4,c5]@11 ~@6, ~@26 [eb4,g4]@21 ~@17]/2", // Ab Eb
AR: "[~@4 c5 bb4@3 a4@3 bb4@3 ~ db5@3 c5@3 ~ bb4@2 ~ [ab3,c4,ab4]@11 ~@10 c4 bb3@3 a3@3 bb3@3 ~ db4@3 c4@3 ~, ~@4 [eb3,db4]@21 ~@21 [eb2,db3]@18]/2", // Ab Eb7
AS: "[bb3@3 ~ [ab2,c3,ab3]@5 ~@5 [ab1,ab2,c3,eb3,ab3]@5 ~@6 [ab1,ab2,c3,ab3]@21 ~@18]/2", // Ab
})).s("gm_piano").gain(0.21)
// chords · violin · "Violinos"
const violin = note(`<
A B C D E F G H I J K L M N O P Q F R ~@4 S T U V@3 ~@7 W@5 X Y@2 Z AA@2 AB@3 AC AD AE AF AG AH AI AJ AK AL AM AN AO@4
AP AQ AR@2 ~@2 AS@2 AT@2
>`.pickRestart({
A: "ab2 db3", B: "c3 g2", C: "ab2 g2 f2 f3", D: "eb3 eb2", E: "db2 db3", F: "c3 f2", G: "bb2 eb3",
H: "ab2@8 ab3@8 ab2@8 c4 ~@2 eb4 ~ ab4 ~@2", I: "[ab2,c5] [db2,bb4]", J: "[c2,eb5]@2 ~ db5, ~ g2",
K: "[ab2,c5] [g2,eb5] [f2,ab5] [f2,bb5]", L: "eb2 g2 bb2 eb3 g2 bb2 g2 bb2, eb5@2 ~ e5",
M: "db2@2 g2@2 bb2@2 db3@2 g2@2 bb2@2 g2@2 c5 db5, f5@4 bb4@3 db2", N: "[c2,eb5] [f2,a4]",
O: "[db2,db5]@8 c5 ~ bb4 ~ ab4 ~ g4 ~, ~ eb2", P: "ab1 eb2 g2 eb2 [ab2,ab4]@2 ~@2, bb4 ~", Q: "~ c3!7", R: "e3 f2",
S: "bb1", T: "bb1@2 ~ bb2 g2 bb2 g2 eb2", U: "eb5 d5!2 c5!2 b4!2 bb4, bb1 bb2", V: "[[g4,bb4] ~@2, eb2@67 ~@29]/3",
W: "[~@20 eb4@8 ab4@7 b4@7 ~ bb4@7 ab4@7 ~ [bb2,g4]@7 ~@3 bb2@2 a2@2 ~ bb2@2 bb2@2 ~ ab2@2 g2@2 ~ f2@2 eb2@2 ~ [ab2,ab4]@7 b4@7 ~ bb4@7 ab4@7 ~ [eb3,ab4]@7 ~@3 eb3@2 d3@2 ~ eb3@2 e3@2 ~ eb3@2 db3@2 ~ b2@2 bb2@2 ~ [ab2,ab4]@7 b4@5, ~@65 db5@7 ~@53 g4@7 ~@28]/5", // Eb Ab Ab5 Ab
X: "~@3 bb4@7 ab4@7 gb5@10 eb5 ~@2 b4 ~, ~@17 b2@15",
Y: "[b5@10 ab5 ~@2 e5 ~ [e3,e6]@8 e3@2 [db3,db6] ~@2 [bb2,bb5] ~ [b2,b5]@10 [b2,eb5]@12 [e3,e5]@8 ~@4, e3@15 ~@49]/2", // E Db Bb B E
Z: "~@19 e3@13",
AA: "[~@18 [a4,b4]@3 [a4,b4]@2 [a4,b4]@3 [a4,b4]@2 [gb3,a4,b4]@3 [f3,a4,b4]@2 [a4,b4]@3 [a4,b4]@3 [a4,b4]@2 [a4,b4]@3 [a4,b4]@2 [a4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@2, ~@18 gb3@10 ~@5 gb3 ~@2 gb3 ~@2 e3 ~ eb3 ~@2 db3 ~ b2 ~@2 e2@8 ~@7]/2", // Asus2 B7 Bm7b5 Asus2 Abm
AB: "[[ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 [d4,ab4]@3 [d4,ab4]@2 [d4,ab4]@3 db4@2 db4@3 db4@2 [bb3,db4]@3 db4@3 db4@2 db4@3, ~@18 f2 ~@2 ab2 ~@2 b2 ~ d3 ~@2 f3 ~ ab3@8 ~@10 f2 ~@2 ab2 ~ b2 ~@2 d3 ~@2 f3 ~ ab3@8 ~@10 e3 ~@2 ab3 ~@12]/3", // Abm Ddim Bbm
AC: "db4@2 db4@3 db4@2 db4@3 db4@3 c3@2 eb3 ~@2 eb3 ~ ab3@3 eb3 ~ eb3 ~@2 g3@3 eb3, eb3 ~ g3 ~@2 bb3@4 ~@23",
AD: "~ eb3 ~@2 g3@2 eb3 ~@2 eb3 ~@2 ab3@2 eb3 ~@2 eb3 ~ ab3@3 eb3 ~ eb3 ~@2 bb3@3 eb3 ~",
AE: "eb3 ~@2 bb3@2 eb3 ~@2 eb3 ~ ab2@3 eb2 ~@2 eb2 ~ bb2@3 eb2 ~ eb2 ~@2 c3@3 ab2 ~ ab2",
AF: "~@2 d3@2 ab2 ~@2 ab2 ~ g2@3 bb2 ~@2 bb2 ~ g2@3 bb2 ~ bb2 ~@2 g2@2 bb2 ~@2 bb2 ~",
AG: "~ g2@2 bb2 ~@2 bb2 ~ g2@3 bb2@2 bb2@3 g2@3 bb2@2 bb2@3 g2@2 eb2@3 eb2@3",
AH: "g2@2 eb2@3 eb2@2 ab2@3 eb2@2 eb2@3 ab2@3 eb2@2 eb2@3 eb2@2 c2@3 c2@2 eb2@2",
AI: "~ c2@3 c2@2 f2@3 db2@2 db2@3 f2@3 db2@2 db2@3 g2@2 db2@3 db2@2 db2@3",
AJ: "db2@3 db2@2 db2@3 eb2@2 eb2@3 db2@2 eb2@3 eb2@3 ~@7 c4 ~@2 eb4",
AK: "~ ab4 ~@2 c3@3 eb3 ~ eb3 ~@2 ab3@2 eb3 ~@2 eb3 ~@2 g3@2 eb3 ~@2 eb3 ~ g3@3 eb3 ~, ~@4 c5@15 ~ bb4@12",
AL: "eb3 ~@2 ab3@3 eb3 ~ eb3 ~@2 ab3@2 eb3 ~@2 eb3 ~ bb3@3 eb3 ~@2 eb3 ~ bb3@3 eb3 ~ eb3, ~@3 eb5@15 ~@8 db5@6",
AM: "~@2 ab2@3 eb2 ~ eb2 ~@2 bb2@2 eb2 ~@2 eb2 ~ c3@3 ab2 ~@2 ab2 ~ d3@3 ab2 ~ ab2 ~, ~@2 c5@8 eb5@7 ab5@8 bb5@7",
AN: "~ g2@2 bb2 ~@2 bb2 ~@2 g2@2 bb2 ~@2 bb2 ~ g2@3 bb2 ~ bb2 ~@2 g2@3 bb2 ~ bb2 ~@2, ~ eb5@15 ~@8 e5@8",
AO: "[g2@2 bb2@3 bb2@3 g2@2 bb2@3 bb2@2 g2@3 eb2@2 eb2@3 g2@3 ~@3 db5@2 ab2@2 eb2@3 eb2@2 ab2@3 eb2@3 eb2@2 eb2@3 c2@2 c2@3 eb2@3 c2@2 c2@3 f2@2 db2@3 db2@2 f2@3 db2@3 db2@2 [g2,db5]@3 [db2,c5]@2 db2@3 [db2,bb4]@2 [db2,ab4]@3 db2@3 ab2@3 eb3@2 ~ eb3@2 ~ eb3@2 ~ eb3@2 ~@2 eb3@2 ~ eb3@3 eb3@3 eb3@3 ~ eb3@3 eb3@3, f5@15 bb4@11 eb2@2 eb2@3 ~@97, ~@27 c5@2 ~@2 eb5@15 a4@15 ~ db5@15 ~@5 bb4 ~@7 g4 ~@2 [c4,ab4]@10 ~@19 eb5@6]/4", // Gdim Dbmaj7 Gb Db5 Fm
AP: "~ e5@2 f5@13 eb5@3 db5@3 ~ c5@3 bb4@3 ab4@3, eb3@3 ~@29", AQ: "g4@2 ~ db5@2 bb4@2 ~ g4@2 ab4@5 c5@2 eb4@5 ~@10",
AR: "[~@17 eb5@2 eb5@2 eb5@2 ~ eb5@2 eb5@2 ~ eb5@2 eb5@2 eb5@2 ~ eb5@2 eb5@2 ~ eb5@2 eb5@2 eb5@2 ~ eb5@2 eb5@2 ~ eb5@2 ab4@9, ~@17 eb2@39 ~@8]/2",
AS: "[~@4 c5 bb4@3 a4@3 bb4@3 ~ db5@3 c5@3 ~ bb4@2 ~ ab4@11 ~@10 c3 bb2@3 a2@3 bb2@3 ~ db3@3 c3@3 ~]/2",
AT: "[bb2@3 ~ ab2@5 ~@5 [ab2,ab4]@5 ~@6 [ab2,ab4]@21 ~@18]/2", // Ab
})).s("gm_violin").gain(0.21)
// chords · string ensemble 1 · "Violas"
const string_ensemble_1 = note(`<
A B C D E F G H I J K L M N O P ~@7 Q R S T U@6 V@4 W@3 X Y Z@2 AA@3 AB@5 AC AD AE AF@2 AG AH AI@2 AJ AK@3 ~ AL ~ AM
AN AO AP ~@2 AQ@2
>`.pickRestart({
A: "c4 bb3", B: "eb4@2 ~ db4", C: "c4 eb4 ab4 bb4", D: "eb4@3 e4", E: "f4@8 bb3@6 c4 db4", F: "eb4 a3",
G: "db4@8 c4 ~ bb3 ~ ab3 ~ g3 ~", H: "[g3,bb3]@16 [c3,ab3] ~@2 eb3 ~ ab3 ~@10", I: "c4 eb4 c4 eb4 bb3 eb4 bb3 eb4",
J: "eb4 ab4 eb4 ab4 eb4 bb4 eb4 bb4", K: "eb4 ab4 eb4 bb4 ab4 c5 ab4 d5", L: "g4 bb4 g4 bb4 g4 bb4 g4 bb4",
M: "g4 bb4 g4 bb4 g4 eb4 g4 eb4", N: "ab4 eb4 ab4 eb4!2 c4 eb4 c4", O: "f4 db4 f4 db4!5",
P: "db4 eb4 db4 eb4 c4@2 ~@2", Q: "[f4,ab4]!3 [d4,f4,ab4]", R: "[eb4,g4] ~@3", S: "[f4,ab4]!2",
T: "f4 e4!2 eb4!2 d4!2 eb4, [g4,bb4] ~", // Gm
U: "[eb4@4 e4@4 e4@4 eb4@4 eb4@5 d4@4 d4@5 db4@5 [c4,c5]@17 [bb3,bb4]@16 [eb4,eb5]@17 ~@8 [db4,db5]@8 [c4,c5]@8 ~ [eb4,eb5]@8 [ab4,ab5]@8 [bb4,bb5]@8 ~ [eb4,eb5]@24 [e4,e5]@8 ~ [f4,f5]@16 [bb3,bb4]@8]/6", // C Bb Eb Db C Eb Ab Bb …
V: "[~@5 [c4,c5]@2 [db4,db5]@2 [eb4,eb5]@16 [a3,a4]@17 [db4,db5]@17 [c4,c5]@2 ~@2 [bb3,bb4]@2 ~@2 [ab3,ab4]@2 ~@2 [g3,g4]@2 ~@2 [g3,bb3,g4,bb4]@17 ab3@8 ~@24 [b3,eb4]@2 [b3,eb4]@2]/4", // C Db Eb A Db C Bb Ab …
W: "[~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [db4,eb4]@2 [db4,eb4]@2 ~ [db4,eb4]@2 [db4,eb4]@2 ~ [db4,eb4]@2 [db4,eb4]@2 ~ [db4,eb4]@2 [db4,eb4]@2 ~ [db4,eb4]@2 [db4,eb4]@2 ~ [db4,eb4]@2 [db4,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [bb3,eb4]@2 [bb3,eb4]@2 ~ [bb3,eb4]@2 [bb3,eb4]@2 ~]/3", // B Dbsus2 B Eb5
X: "[bb3,eb4]@2 [bb3,eb4]@2 ~ [bb3,eb4]@2 [bb3,eb4]@2 ~ [bb3,eb4]@2 [bb3,eb4]@2 ~ [bb3,eb4]@2 [bb3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 ~@3, ~@20 ab4@7 b4@5", // Eb5 B
Y: "~@5 [b3,eb4]@2 ~ [b3,eb4]@2 [b3,eb4]@2 [b3,eb4]@2 ~ [b3,eb4]@2 gb5@10 eb5 ~@2 b4 ~, ~@3 bb4@7 ab4@7 b3@15", // B
Z: "[b5@10 ab5 ~@2 e5 ~ [e4,e6]@10 [db4,db6] ~@2 [bb3,bb5] ~ [b3,b5]@10 [b3,eb5]@12 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@2, e4@15 ~@37 e5@8 ~@4]/2", // E Db Bb B Abm
AA: "[~ [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@2 ~@8 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 [gb4,eb5]@8 ~@2 gb4@3 f4@2 gb4 ~@2 gb4 ~@2 e4 ~ eb4 ~@2 db4 ~ b3 ~@2 [e4,e5]@8 ab5@7, ~@19 e5@8 ab5@7 gb5@8 e5@8 ~@8 a5@8 ~@30]/3", // Abm Ebm E
AB: "[e5@8 eb5@8 b3@2 [ab3,b3]@3 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 b3@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,b3]@3 [ab3,b3]@2 [ab3,b3]@3 [ab3,bb3]@2 ~@13 [g3,bb3]@3 [g3,bb3]@2 [g3,bb3]@3 [g3,bb3]@2 [g3,bb3]@3 [g3,bb3]@3 [c4,c5]@15 [bb3,bb4]@15 ~ eb4@15 ~@5, ~@16 d4@23 d5@8 d4@23 d5@8 db5@23 db5@8 ~@51]/5", // Abm Absus2 Gm C Bb
AC: "~@3 db4@7 c4@8 eb4@8 ab4@6", AD: "~@2 bb4@7 eb4@23", AE: "~ e4@7 f4@15 ~ [bb3,bb4]@8",
AF: "[~@3 [c4,c5]@2 [db4,db5]@2 [eb4,eb5]@15 ~ [a3,a4]@15 [db4,db5]@15 ~ [db4,db5]@2 [c4,c5]@3 [bb3,bb4]@2 [bb3,bb4]@3]/2", // C Db Eb A Db C Bb
AG: "[ab3,ab4]@3 [g3,g4]@2 [g3,bb3,bb4]@15 ~ [c3,ab3] ~ eb3 ~@2 ab3 ~@5, ~@21 ab4@8 ~@3", // Ab G Gm Fm
AH: "~@4 c4@3 eb4@2 eb4@3 c4@2 eb4@3 eb4@3 bb3@2 eb4@3 eb4@2 bb3@3 eb4@2, ~@4 ab4@15 ~ db5@12",
AI: "[eb4@3 eb4@3 ab4@2 ab4@3 eb4@2 ab4@3 ab4@2 eb4@3 bb4@3 bb4@2 eb4@3 bb4@2 bb4@3 [eb4,ab4]@3 ab4@2 ab4@3 eb4@2 bb4@3 bb4@2 ab4@3 c5@3 c5@2 ab4@3 d5@2 d5@2, ~@3 c5@15 g4@15 ~@9 g4@7 f4@8 f5@7]/2", // Ab5
AJ: "~ g4@2 bb4@3 bb4@3 g4@2 bb4@3 bb4@2 g4@3 bb4@2 bb4@3 g4@3 bb4@2 bb4@3, ~ eb4 ~ g4 ~@5 eb5 ~ g5 ~@2 bb5 ~ eb6@8 ~@8",
AK: "[g4@2 bb4@3 bb4@3 g4@2 bb4@3 bb4@2 g4@3 eb4@2 eb4@3 g4@3 eb4@2 eb4@3 ab4@2 eb4@3 eb4@2 ab4@3 eb4@3 eb4@2 eb4@3 c4@2 c4@3 eb4@3 c4@2 c4@3 f4@2 db4@3 db4@2 f4@3 db4@3 db4@2 [g4,bb4]@3 [db4,eb5]@2 [db4,eb5]@3 [db4,eb4]@2 [db4,eb5]@3 [db4,eb5]@3 ~@3, db4 ~ g4 ~@5 db5 ~ g5 ~@2 bb5 ~ db6@15 ~ c5@15 f4@15 ~ bb4@15 ~@19]/3", // Gm Dbsus2
AL: "~@13 [db4,eb4]@3 [db4,eb4]@3 [db4,eb4]@3 ~ [db4,eb4]@3 [db4,eb4]@3 [db4,eb4]@3", // Dbsus2
AM: "~@7 eb6@7 e6@2 ~ f6@12 eb6@3", AN: "~ db6@3 c6@3 bb5@3 ab5@3 ~ g5@3 db6@3 g5@3 ab5@9", AO: "~@26 eb5 db5@3 c5@2",
AP: "~ db5@3 ~ f5@3 eb5@3 ~ db5@3 c5@11 ~@6", AQ: "[~@14 eb4@5 ~@6 eb4@21 ~@18]/2",
})).s("gm_string_ensemble_1").gain(0.26)
// chords · string ensemble 1 · "Violas" · soft notes
const string_ensemble_1_soft = note(`<
~@19 A B C ~ D E F ~@14 G H ~@2 I ~@4 J ~@14 K L M N O@2 ~@2 P@2 Q@2
>`.pickRestart({
A: "bb3 b3", B: "c4 ab3", C: "~ bb3!3 ~@4", D: "eb4 d4!2 c4!2 b3!2 bb3", E: "bb3@2 ~ bb4 g4 bb4 g4 eb4",
F: "eb5 d5!2 c5!2 b4!2 bb4", G: "~@15 [b3,eb4]", H: "[b3,eb4]@2 ~ [b3,eb4]@2 ~@27",
I: "~@11 [ab4,b4]@3 [ab4,b4]@2 [ab4,b4]@3 ~@13", // Abm
J: "~@16 [ab3,bb3]@3 [ab3,bb3]@2 [ab3,bb3]@3 [ab3,bb3]@3 [ab3,bb3]@3 ~@2", K: "~@29 ab3@3",
L: "eb4@2 ~ eb4@2 ~ eb4@2 ~ eb4@2 ~@2 eb4@2 ~ eb4@3 eb4@3 eb4@3 ~ eb4@3 eb4@3",
M: "eb4@3 [db4,eb4]@3 [db4,eb4]@3 ~ [db4,eb4]@3 ~@19", N: "[db4,eb4]@3 [db4,eb4]@3 ~ [db4,eb4]@3 ab3@10 ~@12",
O: "[~@17 db4@2 db4@2 db4@2 ~ db4@2 db4@2 ~ db4@2 db4@2 db4@2 ~ db4@2 db4@2 ~ db4@2 db4@2 db4@2 ~ db4@2 db4@2 ~ db4@2 ab3@9]/2",
P: "[~@4 c4 bb3@3 a3@3 bb3@3 ~ db4@3 c4@3 ~ bb3@2 ~ ab3@11 ~@28]/2", Q: "[~@14 ab3@5 ~@6 ab3@21 ~@18]/2",
})).s("gm_string_ensemble_1").gain(0.15)
// other · string ensemble 1 · "Violoncelos"
const string_ensemble_1_2 = note(`<
A B C D E F G H I@2 J K L M N O ~@5 P Q R S T U@2 V@8 W@3 X Y Z AA@2 AB AC@2 AD@3 AE@3 AF@5 AG AH AI AJ AK@3 AL AM AN
AO AP ~@2 AQ@2 AR@2
>`.pickRestart({
A: "ab2 db3", B: "c3 g2", C: "ab2 g2 f2 f3", D: "eb3 eb2", E: "db2 db3", F: "c3 f2", G: "bb2 eb3", H: "ab2 ab3 ab2 ~",
I: "ab3 eb3 ab3 eb3 g3 eb3 g3 eb3", J: "ab3 eb3 g3 eb3 f3 ab2 f3 ab2", K: "eb2 g2 bb2 eb3 g3 bb3 g3 bb3",
L: "db2 g2 bb2 db3 g3 bb3 g3 db3", M: "c3 eb3 c3 eb3 c3 f3 c3 f3", N: "db3 f3 db3 f3 bb2 eb3 bb2 eb3",
O: "ab2 eb3 g3 eb3 ab3@2 ~@2", P: "~@5 ab3!3", Q: "eb3@2 ~ bb3 g3 bb3 g3 eb3", R: "eb3 d3!2 c3!2 b2!2 bb2",
S: "bb2@2 ~ bb3 g3 bb3 g3 eb3", T: "bb2 bb3", U: "eb3/2",
V: "[~@3 ab2@17 db3@16 c3@17 g2@16 ab2@8 ~ g2@8 f2@8 f3@8 ~ eb3@16 eb2@17 db2@16 db3@17 c3@16 f2@17 bb2@17 eb3@16 ab2@8 ab3@8 ~ ab2@4]/8",
W: "[~@28 ab3@15 ~@15 bb3@10 bb3@2 a3@2 ~ bb3@2 bb3@2 ~ ab3@2 g3@2 ~ f3@2 eb3@2 ~ ab3@7 ~]/3", X: "~@11 eb3@5",
Y: "eb3@2 d3@2 ~ eb3@2 e3@2 ~ eb3@2 db3@2 ~ b2@2 bb2@2 ~ ab2@7 ~@5", Z: "~@17 b3@15",
AA: "[e4@15 e4@10 db4 ~@2 bb3 ~ b3@10 b2@12 e3@12]/2", AB: "~@19 e3@13",
AC: "[~@18 gb3@10 gb3@3 f3@2 gb3 ~@2 gb3 ~@2 e3 ~ eb3 ~@2 db3 ~ b2 ~@2 e3@8 ~@7]/2",
AD: "[~@18 f2 ~@2 ab2 ~@2 b2 ~ d3 ~@2 f3 ~ ab3@8 ~@10 f2 ~@2 ab2 ~ b2 ~@2 d3 ~@2 f3 ~ ab3@8 ~@10 e3 ~@2 ab3 ~ bb3@4 ~@7]/3",
AE: "[eb3 ~ g3 ~@2 bb3@4 ~@4 ab2@15 db3@15 ~ c3@15 g2@15 ab2@8 g2@8 f2@6]/3",
AF: "[~@2 f3@7 eb3@15 ~ eb2@15 db2@15 ~ db3@15 c3@15 ~ f2@15 bb2@15 ~ eb3@15 ab2@8 ab3@8 ab2@8 ~@3]/5",
AG: "~@4 ab2@15 ~ db3@12", AH: "~@3 c3@15 g2@14", AI: "~@2 ab2@8 g2@7 f2@8 f3@7",
AJ: "~ eb2 ~ g2 ~@2 bb2 ~@2 eb3 ~ g3 ~@2 bb3 ~ eb4@15 ~",
AK: "[db2 ~ g2 ~@2 bb2 ~@2 db3 ~ g3 ~@2 bb3 ~ db4@15 ~ c4@15 f3@15 ~ bb2@15 bb2@3 eb3@2 eb3@3 ~@2 eb3@3 eb3@3 ab2@3, ~@85 eb2@8 ~@3]/3",
AL: "eb3@2 ~ eb3@2 ~ eb3@2 ~ eb3@2 ~@2 eb3@2 ~ eb3@3 eb3@3 eb3@3 ~ eb3@3 eb3@3",
AM: "eb3@3 eb4@3 eb4@3 ~ eb4@3 eb4@3 eb4@3 eb4@3 ~ eb4@3 eb4@3 eb4@3", AN: "eb4@3 eb4@3 ~ eb4@3 ab3@10 ~@12",
AO: "~@17 eb3@3 eb3@3 eb3@3 eb3@3 eb3@3", AP: "~ eb3@3 eb3@3 eb3@3 eb3@3 ~ eb3@3 eb3@3 eb3@3 ab3@9",
AQ: "[~@4 db3@21 c3@11 ~@10 c4 bb3@3 a3@3 bb3@3 ~ db4@3 c4@3 ~]/2",
AR: "[bb3@3 ~ ab3@5 ~@5 ab2@5 ~@6 [ab2,ab3]@21 ~@18]/2", // Ab
})).s("gm_string_ensemble_1").gain(0.21)
// bass · string ensemble 1 · "Contrabaixos"
const bass = note(`<
A B C D E F G H I J K L M N O P ~@5 Q R S R T U@2 V@8 W@3 X Y Z AA@2 AB AC@2 AD@3 AE@3 AF@5 AG AH AI AJ AK@3 ~ AL AM
AN AO ~@2 AP@2 AQ@2
>`.pickRestart({
A: "ab2 db3", B: "c3 g2", C: "ab2 g2 f2 f3", D: "eb3 eb2", E: "db2 db3", F: "c3 f2", G: "bb1 eb2", H: "ab1 ab2 ab1 ~",
I: "ab2 db2", J: "c2 g2", K: "ab2 g2 f2!2", L: "eb2 g2 bb2 eb3 g2 bb2 g2 bb2", M: "db2 g2 bb2 db3 g2 bb2 g2 db2",
N: "c2 f2", O: "db2 eb2", P: "ab1 eb2 g2 eb2 ab2@2 ~@2", Q: "~@5 bb2!3", R: "eb2@2 ~ bb2 g2 bb2 g2 eb2", S: "bb1",
T: "bb1 bb2", U: "eb2/2",
V: "[~@3 ab2@17 db3@16 c3@17 g2@16 ab2@8 ~ g2@8 f2@8 f3@8 ~ eb3@16 eb2@17 db2@16 db3@17 c3@16 f2@17 bb1@17 eb2@16 ab1@8 ab2@8 ~ ab1@4]/8",
W: "[~@28 ab2@15 ~@15 bb2@10 bb2@2 a2@2 ~ bb2@2 bb2@2 ~ ab2@2 g2@2 ~ f2@2 eb2@2 ~ ab2@7 ~]/3", X: "~@11 eb2@5",
Y: "eb2@2 d2@2 ~ eb2@2 e2@2 ~ eb2@2 db2@2 ~ b1@2 bb1@2 ~ ab1@7 ~@5", Z: "~@17 b1@15",
AA: "[e2@15 e2@15 b2@10 b1@12 [e1,e2]@8 ~@4]/2", AB: "~@19 [e1,e2]@13", AC: "[~@18 gb2@31 e2@8 ~@7]/2",
AD: "[~@18 f1 ~@2 ab1 ~@2 b1 ~ d2 ~@2 f2 ~ ab2@8 ~@10 f1 ~@2 ab1 ~ b1 ~@2 d2 ~@2 f2 ~ ab2@8 ~@10 e2 ~@2 ab2 ~ bb2@4 ~@7]/3",
AE: "[eb2 ~ g2 ~@2 bb2@4 ~@4 [ab1,ab2]@15 db3@15 ~ c3@15 g2@15 ab2@8 g2@8 f2@6]/3", // Ab
AF: "[~@2 f3@7 eb3@15 ~ eb2@15 db2@15 ~ db3@15 c3@15 ~ f2@15 bb1@15 ~ eb2@15 ab1@8 ab2@8 ab1@8 ~@3]/5",
AG: "~@4 ab2@15 ~ db3@12", AH: "~@3 c3@15 g2@14", AI: "~@2 ab2@8 g2@7 f2@8 f3@7", AJ: "~ eb3@15 eb2@15 ~",
AK: "[db2@15 db3@15 ~ c3@15 f2@15 ~ bb1@15 eb2@15 ~@4]/3",
AL: "~@3 eb2@3 eb2@3 ~ eb2@3 eb2@3 eb2@3 eb2@3 ~ eb2@3 eb2@3 eb2@3", AM: "eb2@3 eb2@3 ~ eb2@3 ab2@10 ~@12",
AN: "~@17 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3", AO: "~ eb2@3 eb2@3 eb2@3 eb2@3 ~ eb2@3 eb2@3 eb2@3 ab2@9",
AP: "[~@4 db3@21 c3@11 ~@10 c3 bb2@3 a2@3 bb2@3 ~ db3@3 c3@3 ~]/2",
AQ: "[bb2@3 ~ ab2@5 ~@5 ab1@5 ~@6 [ab1,ab2]@21 ~@18]/2", // Ab
})).s("gm_string_ensemble_1").gain(0.24)
// other · trumpet · "Trompete"
const trumpet = note("<~@16 A B A C D E F ~@18 G H@2 ~@3 I@3 ~@8 J K L M N@3 ~@3 O@2 ~@3 P Q ~>".pickRestart({
A: "c5@5 ab5 g5 f5", B: "c6@5 ab5 g5 f5", C: "eb5@8 d5@12 eb5 ~ c5 d5 f5@6 eb5@2, ~@21 d5@2 ~@9",
D: "eb5@16 f4@8 f4 g4 e4 f4 ab4@2 c5@2, ~@25 f4@2 ~@5",
E: "[b4,c5] [c5,d5] bb4@2 g5@8 f5@2 eb5@2 d5@2 c5@2 bb4@2 a4@2 c5@2 bb4@2 ab4@2 f4@2", F: "eb4 ~@3",
// … 35 more lines
More by Ludwig van Beethoven
5th SymphonyC minor · 160 bpmFur EliseA minor · 105 bpm12 Variations on 'Menuet a la Vigano' WoO 68D major · 120 bpmAir from 'little Russia' Op.107 No.3B♭ major · 120 bpmChristus am Ölberge Op.85C major · 156 bpmCoriolan Op.62E♭ major · 150 bpmDie Ruinen von Athen Op.113E major · 84 bpmDuett mit zwei obligaten AugengläsernE♭ major · 71 bpm
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.