0:00/0:00
// Piano Sonata No.24 Op.78 — Ludwig van Beethoven
// 31 bpm, 2/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3475681; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 74 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(31/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@2 AB B C D E F G H AC AD AE AF AG AH AI AJ AK AL AM AN@2 AO AP
AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL@2
>`.pickRestart({
A: "ab3 eb3 ab3 eb3 g3 eb3 g3 eb3, ab2 db3", B: "ab3 eb3 ab3 eb3 bb3 eb3 bb3 eb3, c3 g2",
C: "ab3 eb3 bb3 eb3 c4 ab3 d4 ab3, ab2 g2 f2 f3", D: "g3 bb3 g3 bb3 g3 bb3 g3 bb3, eb3 eb2",
E: "g3 bb3 g3 bb3 g3 eb3 g3 eb3, db2 db3", F: "ab3 eb3 ab3 eb3!2 c3 eb3 c3, c3 f2", G: "f3 db3 f3 db3!5, bb1 eb2",
H: "db3 eb3 db3 eb3 [ab1,c3]@2 ~@2, ab1 ab2 ~@2", // Ab
I: "[ab3,c4] [eb3,eb4] [ab3,c4] [eb3,eb4] [g3,bb3] [eb3,eb4] [g3,bb3] [eb3,eb4], ab2 db3", // Ab Eb Ab Eb Gm Eb Gm Eb
J: "[ab3,eb4] [eb3,ab4] [ab3,eb4] [eb3,ab4] [g3,eb4] [eb3,bb4] [g3,eb4] [eb3,bb4], c3 g2", // Ab5 Cm Eb5 Cm Eb5
K: "[ab3,eb4] [eb3,ab4] [g3,eb4] [eb3,bb4] [f3,ab4] [ab2,c5] [f3,ab4] [ab2,d5], ab2 g2 f2!2", // Ab5 Cm Eb5 Fm Ab Fm Abdim
L: "[eb2,g4] [g2,bb4] [bb2,g4] [eb3,bb4] [g3,g4] [bb3,bb4] [g3,g4] [bb3,bb4]", // Eb Gm Eb Eb5 G Bb G Bb
M: "[db2,g4] [g2,bb4] [bb2,g4] [db3,bb4] [g3,g4] [bb3,eb4] [g3,g4] [db3,eb4]", // Dbdim Gm Eb Gb G Eb5 G Dbsus2
N: "ab4 [eb3,eb4] ab4 [eb3,eb4] [c3,eb4] [f3,c4] [c3,eb4] [f3,c4], c3!2 f2@2", // Eb Cm F5 Cm F5
O: "[db3,f4] [f3,db4] [db3,f4] [f3,db4] [bb2,db4] [eb3,db4] [bb2,db4] [eb3,db4], bb2 eb2", // Db Bbm Eb7 Bbm Eb7
P: "db4 [eb3,eb4] [g3,db4] [eb3,eb4] [ab3,c4]@2 ~@2, ab2@3 ~", Q: "~ c4!7", R: "[e3,g3,c4]!4 [f3,ab3,c4]!4",
S: "[g3,bb3,e4]!4 [ab3,c4,f4]!4", T: "[bb3,f4,ab4]!4 [b3,f4,ab4] [f3,ab3,b3] [b3,d4,ab4]!2",
U: "[c4,eb4,g4]!4 [ab3,eb4]!4", V: "~ [bb3,eb4,g4]!3 ~ [bb2,d3,ab3]!3", W: "[eb3,g3]@2 ~ bb3 g3 bb3 g3 eb3",
X: "eb3 d3!2 c3!2 b2!2 bb2, bb1, [f3,ab3]!3 [d3,f3,ab3]", Y: "[eb2,bb2,eb3,g3]@2 ~ bb2 g2 bb2 g2 eb2",
Z: "[bb1,f3,ab3] [bb2,f3,ab3]", AA: "[f3 e3!2 eb3!2 d3!2 eb3 eb3 e3!2 eb3!2 d3!2 db3, [eb2,g3]]/2",
AB: "[c3,ab3] eb3 ab3 eb3 ab3 eb3 ab3 eb3, [ab1,ab2] db3", AC: "[b3,eb4]!12, [ab2,ab3] ~",
AD: "[db4,eb4]!4 [bb3,db4,eb4] [a3,db4,eb4] [db4,eb4]!6, bb3@8 ~@4 bb3 ~ bb3 ~ ab3 ~ g3 ~ f3 ~ eb3 ~", // Dbsus2 Eb7 Ebm7b5 Dbsus2
AE: "[b3,eb4]!12, ab3 ~@3", // B
AF: "[bb3,eb4]!4 [eb3,bb3,eb4] [d3,bb3,eb4] [g3,bb3,eb4]!6, eb3@8 ~@4 eb3 ~ e3 ~ eb3 ~ db3 ~ b2 ~ bb2 ~", // Eb5 Ebmaj7 Eb
AG: "[b3,eb4]!12, ab2 ~@3", AH: "[a2,b2,eb3,gb3]!6 [ab2,b2,e3,ab3]!6, gb4 ~ b4 ~",
AI: "[db3,e3,gb3,bb3]!6 [b2,e3,ab3,b3]!3 [b1,b2]!3, e5 ~ b4 [gb3,a3,b3]", AJ: "[ab3,b3]!12, [e2,e3] ~@3",
AK: "[ab3,b3]!12, [e2,e3] ~", // Abm E
AL: "[a3,b3]!4 [gb3,a3,b3] [f3,a3,b3] [a3,b3]!6, gb3@8 ~@4 gb3 ~ gb3 ~ e3 ~ eb3 ~ db3 ~ b2 ~", // Asus2 B7 Bm7b5 Asus2
AM: "[ab3,b3]!12, e3 ~@3", AN: "[d3,ab3,b3]!12, ~@2 f1 ~ ab1 ~ b1 ~ d2 ~ f2 ~ ab2@6 ~@6",
AO: "[db3,ab3,bb3]!3 [bb2,db3,ab3,bb3] [db3,ab3,bb3]!2 [db3,g3,bb3]!3 [bb2,db3,eb3,g3,bb3] [db3,eb3,g3,bb3]!2, ~@2 e2 ~ ab2 ~@9 eb2 ~ g2 ~@7", // Bbm7 Gdim Eb7
AP: "c3@2 eb3 ~ eb3 ~ ab3@2 eb3 ~ eb3 ~ g3@2 eb3 ~ eb3 ~ g3@2 eb3 ~ eb3 ~, [ab1,ab2] db3", // Ab
AQ: "ab3@2 eb3 ~ eb3 ~ ab3@2 eb3 ~ eb3 ~ bb3 ~ eb3 ~ eb3 ~ bb3@2 eb3 ~ eb3 ~, c3 g2",
AR: "ab3@2 eb3 ~ eb3 ~ bb3@2 eb3 ~ eb3 ~ c4@2 ab3 ~ ab3 ~ d4@2 ab3 ~ ab3 ~, ab2 g2 f2 f3",
AS: "g3@2 bb3 ~ bb3 ~ g3@2 bb3 ~ bb3 ~ g3@2 bb3 ~ bb3 ~ g3@2 bb3 ~ bb3 ~, eb3 eb2",
AT: "g3 bb3!2 g3 bb3!2 g3 eb3!2 g3 eb3!2, db2 db3", AU: "ab3 eb3!2 ab3 eb3!3 c3!2 eb3 c3!2, c3 f2",
AV: "f3 db3!2 f3 db3!2 g3 db3!5, bb1 eb2", AW: "db3 eb3!2 db3 eb3!2 [ab1,c3]@3 ~@3, ab1 ab2 ~@2",
AX: "[ab3,c4] [eb3,eb4]!2 [ab3,c4] [eb3,eb4]!2 [g3,bb3] [eb3,eb4]!2 [g3,bb3] [eb3,eb4]!2, ab2 db3", // Ab Eb Ab Eb Gm Eb Gm Eb
AY: "[ab3,eb4] [eb3,ab4]!2 [ab3,eb4] [eb3,ab4]!2 [g3,eb4] [eb3,bb4]!2 [g3,eb4] [eb3,bb4] [eb3,eb5], c3 g2", // Ab5 Cm Eb5 Cm Eb5 Eb
AZ: "[ab3,eb4] [eb3,ab4]!2 [g3,eb4] [eb3,bb4]!2 [f3,ab4] [ab2,c5]!2 [f3,ab4] [ab2,d5]!2, ab2 g2 f2!2", // Ab5 Cm Eb5 Fm Ab Fm Abdim
BA: "g4 bb4!2 g4 bb4!2 g4 bb4!2 g4 bb4!2, eb2 ~ g2 ~ bb2 ~ eb3 ~ g3 ~ bb3 ~ eb4@12",
BB: "g4 bb4!2 g4 bb4!2 g4 eb4!2 g4 eb4!2, db2 ~ g2 ~ bb2 ~ db3 ~ g3 ~ bb3 ~ db4@12",
BC: "ab4 eb4!2 ab4 eb4!3 c4!2 eb4 c4!2, c4 f3",
BD: "f4 db4!2 f4 db4!2 [bb2,f4] [eb3,db4]!2 db4 [eb3,db4]!2, bb2@2 eb2!2", // Bb5 Eb7
BE: "ab2@2 eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2, c4 ~@3", BF: "[eb2,db3,eb3]!12",
BG: "[ab2,c3,eb3]@2 eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2, ~@18 eb5@4 e5 ~", // Ab
BH: "[eb2,db3,eb3]!4 [eb2,db3,eb3,eb5] [eb2,db3,eb3,db5] [eb2,db3,eb3,c5] [eb2,db3,eb3,bb4] [eb2,db3,eb3,ab4] [eb2,db3,eb3,g4] [eb2,db3,eb3,db5] [eb2,db3,eb3,g4], f5 ~@2", // Eb7 Cm Eb7 Dbsus2 Eb7
BI: "[ab2,c3,eb3,ab4] ~ [eb4,g4]@2", BJ: "[ab3,ab4] ~ [eb3,db4,g4]@2", BK: "[ab3,c4] ~ [eb2,db3,g3]@2",
BL: "[[ab2,c3]@3 ~@3 [ab1,c3,eb3,ab3]@3 ~@3 [ab1,ab2,c3,ab3]@19 ~@17]/2", // Ab
})).s("gm_piano").gain(0.2)
stack(piano)
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.