0:00/0:00
// Violin Sonata No.9 Op.47 — Ludwig van Beethoven
// 270 bpm, 4/4, key A 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 (3/4 at bar 1, 1/4 at bar 19, 4/4 at bar 19, 9/4 at bar 39, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/6367748; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(270/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.
// chords · pizzicato strings
const pizzicato_strings = note("<~@77 A B C D E F G ~@60>".pickRestart({
A: "~@2 [a3,e4,a4,g5] ~", B: "~@2 [d4,a4,f5] ~", C: "~@2 [g3,d4,b4,g5] ~", D: "[c4,e4,c5,e5] ~@3",
E: "~@2 [e4,a4,a5] ~", F: "~@2 [e4,b4,b5] ~", G: "~@2 [d#4,b4,b5] ~",
})).s("gm_pizzicato_strings").gain(0.4)
// chords · piano
const piano = note(`<
~@18 A@2 B C D E F@2 G H@8 I@2 J@8 ~@11 K L M N O@4 P Q R@2 S T U V W@2 X Y Z AA AB AC AD AE AF AG AH@3 AI AJ AK AL AM
AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC AZ BA BB BC BD BC BD BC BD BE BF@2 ~@6 BG BH BI BJ BK BH BI BJ BK BH
BI BL BM BN BO@2 BP ~
>`.pickRestart({
A: "[~@13 [d2,d3,a3,d4,f4]@11 ~ [f2,f3,a3,d4]@4 [e2,e3,g#3,b3,e4]@3]/2", B: "~@13 [a2,a3,c4,e4]@3",
C: "~@13 [e2,e3,g#3,b3,e4]@3", D: "~@13 [a1,a2,a3,c4,e4]@3", E: "~@5 [a1,a2,a3,c4,e4]@4 ~@4 [a1,a2,a3,c4,e4]@3",
F: "[~@5 [a1,a2,a3,c4,e4]@4 ~@4 [g1,g2,b3,d4,g4]@5 ~@14]/2", G: "~@2 [g1,g2,g3,b3,d4,g4]@5 ~@9",
H: "[~@6 [c2,g2,c3,g3,c4,e4]@31 ~@2 e5@4 [d3,a3,d4,f5]@11 ~ [f3,a3,d4,a4]@2 ~@2 [e3,b3]@4 e4@2 ~@2 e4@2 ~@2 g#4@2 ~@2 [a2,c3,e3,a3]@4 e4@2 ~@2 e4@2 ~@2 a4@2 ~@2 [e2,g#2,b2,e3]@4 e4@2 ~@2 e4@2 ~@2 b4@2 ~@2 [a1,c2,e2,a2]@4 a4@2 ~@2 a4@2 ~@2 c5@2 ~@2 [a1,a2]@4 a4, ~@59 [e4,g#4]@2 ~@14 a4@2 ~@14 b4@2 ~@14 c5@2 ~@14 c5@2 ~@3]/8", // C Dm E5 Am E Am A E
I: "[~@3 [a1,a2]@4 c5@2 ~@2 [g1,g2]@5 ~@16, ~@3 a4@2 ~@6 d5@21]/2", // A G
J: "[[g2,b2,d3,g3,f4,b4,d5,g5]@21 ~@19 c6@2 ~@25 g3@2 ~@14 e6@8 ~ c2@26 ~@10, ~@22 c2@7 c4@18 e5@2 c5@2 g4 e5@18 g3@4 g4@2 c5@2 e5@13 ~@37, ~@24 c3@7 e4@12 c6@13 g4@2 e4@2 c4 g3@2 e4@2 c4@14 g5@2 c6@9 ~@38, ~@25 e3@8 g4 c5@2 e5@2 g5@4 e6@12 c5@15 e3@22 ~@37, ~@27 g3@18 g5@27 e4@18 ~@38]/8", // G7
K: "~@4 [g2,b3] [c3,b4] [e2,g3] [c3,g4]", L: "[f#2,a3] [d3,a4] [g2,b3] [d3,b4] [a2,c4] [d3,c5] [f#2,a3] [d3,a4]",
M: "[g#2,a#3] [e3,b4] [a2,c4] [e3,c5] [b2,d4] [e3,d5] [g#2,b3] [e3,b4]", // G#sus2 E5 Am C Bm E7 G#m E5
N: "[a2,c4] [e3,c5] [b2,d#4] [e3,d#5] [c3,e4] [e3,e5] [d#3,f#4] [e3,f#5]", // Am C B Emaj7 C E D#m Esus2
O: "[e3 e4 f#3 e4 g3 e4 e3 e4 f#3 e4 g3 e4 a3 e4 f#3 e4 g#3 e4 a3 e4 b3 e4 c4 e4 d4 e4 b3 e4 [g#3,e5,e6] e4 [b3,e5,e6] e4, [g4,g5]@4 ~@4 [e5,e6]@11 ~@5 [e5,e6]@11 ~@5 [e5,e6]@15 ~@9]/4", // C#m E5 G E
P: "d4 e4 b3 e4 [g#3,e5,e6] e4 [b3,e5,e6] e4", Q: "[d4,e5,e6] e4 [b3,e5,e6] e4 [g#3,e5,e6] e4 [b3,e5,e6] e4",
R: "[d4,f5] [e4,f6] [b3,d5] [e4,d6] [g#3,b4] [e4,b5] [b3,d5] [e4,d6]", // Dm Fmaj7 Bm E7 G#m E5 Bm E7
S: "[c3,c5] [c4,c6] [a2,a4] [c4,a5] [g2,g4] [g3,g5] [f#2,f#4] [f#3,f#5]", // C A F G F#
T: "[a2,a4] [a3,a5] [f#2,f#4] [f#3,f#5] [e2,e4] [e3,e5] [d2,d#4] [d#3,d#5]", // A F# E D#maj7 D#
U: "[e2,e4] [e3,e5] [c2,c4] [c3,c5] [b1,b3] [b2,b4] [a#1,a#3] [a#2,a#4]", // E C B A#
V: "[b1,b3] [b2,b4] [a#1,a#3] [a#2,a#4] [b1,b3] [b2,b4] ~ d#5, ~@3 [b1,b2,d#4]", // B A# B
W: "[e2,e3]@2 [g3,b3]@2 [g3,b3]@2 ~ [d#4,d#5], [e4,e5]@7 ~, ~@3 [g3,b3]", // E G D# E G
X: "[e2,e3]@2 [g3,b3]@2 [g3,b3]@2 ~ [f#4,f#5], [e4,e5]@7 ~, ~@3 [g3,b3]", // E G F# E G
Y: "[e3,g4,g5] ~@2 [a#4,a#5] [b4,b5] ~@2 [d#5,d#6], ~ [g3,b3] e3 [g3,b3]", // Em A# B D# G
Z: "e3 ~ [e4,g4]@2 b3@2 [e4,g4]@2, [e5,e6]@15 ~", // Em E
AA: "[d5,d6]@2 [e4,g4,c#5,c#6]@2 [b4,b5] ~ [e4,g4]@2, a2 ~@3 a3@2 [c#5,c#6] ~", // D C#dim B Em C#
AB: "a2 ~ [e4,g4]@2 a3@2 [e4,g4]@2, [d5,d6] [a4,a5]", AC: "[b4,b5] [b5,c6]!14 c6, d3 ~ [d4,f4]@2 g3@2 [d4,f4]@2",
AD: "c3 ~ [c4,e4]@2 g3@2 [c4,e4]@2, [c5,c6]@15 ~", // C
AE: "[b4,b5]@2 [c4,e4,a4,a5]@2 [g#4,g#5] ~ [c4,e4]@2, c3 ~@3 g3@2 [a4,a5] ~", AF: "[c3,b4,b5] b3 [g3,e4,e5] e3",
AG: "b2 a2 g2 f#2, f#5 b4",
AH: "[[e4,e5] b3 e4 [d#2,b3] g3 b3 e4 b3 g3 b3 e4 [d#2,b3] g3 b3 e4 b3 g3 b3 e4 [d#2,b3] g3 b3 e4 [f#2,b3], e2@2 ~@2 e2@7 ~ e2@7 ~ e2@3 ~]/3", // E G#m B5
AI: "[g2,g3] b3 e4 [a#2,b3] [b2,g3] b3 e4 [d#3,b3]", AJ: "g3 b3 e4 b3 g3 b3 e4 b3, e3@15 ~",
AK: "g3 a3 e4 a3 [b2,g3] a3 [c#3,e4] a3, a2, d3 c#3 ~@2", AL: "g3 a3 d4 a3 g3 a3 d4 a3, [d2,d3] ~ a2 ~",
AM: "f3 g3 d4 g3 f3 g3 d4 g3, b2@15 ~", AN: "f3 g3 c4 g3 e3 g3 c4 e4, [c2,c3]@15 ~",
AO: "f#3 c4 e4 c4 [g#1,g#2,f#3] c4 [a1,a2,e4] c4, [b1,b2] [a1,a2] ~@2", // G#7 A5 B A
AP: "f#3 b3 d#4 b3 f#3 b3 e4 b3, [b1,b2] ~ e2 ~", AQ: "b3!2 e4 b3 f#3 b3 d#4 b3, f#2@2 b1 a1",
AR: "g3 b3 e4 g4 g3 b3 e4 g4, g1 g2!3", AS: "a3 e4 a4 e4 a3 e4 a4 e4, c2 c3!3",
AT: "b3 e4 g4 e4 b3 e4 g4 e4, b1 b2!3", AU: "b3 e4 f#4 e4 b3 d#4 f#4 d#4, a1 a2!3",
AV: "[g1,b3] [g2,b4]!2 [g3,b5] [g2,b4] [g3,b5] [g2,b4] [g3,b5]", // G
AW: "[c2,b4] [c3,b5] [c3,a4] [c4,a5] [c3,g4] [c4,g5] [c3,a4] [c4,a5]", // Cmaj7 F C5 F
AX: "[b2,b4] [b3,b5] [g3,b4] [e3,b5] [b2,d4] [g2,e5] [e2,e4] [g2,e5]", // B G E5 Bm C E C
AY: "[b1,f#4] [b2,f#5] [a1,f#4] [a2,f#5] [g1,b3] [g2,b4] [f#1,b3] [f#2,b4]", // B5 D G B5
AZ: "[e2,e4] [e3,e5] [d#3,d#5] [e3,e5] [e2,e4] [e3,e5] [f#2,f#4] [e3,e5]", // E D# E F# E
BA: "[g2,g4] [e3,e5] [f#2,f#4] [e3,e5] [g2,g4] [e3,e5] [e2,e4] [e3,e5]", BB: "[b1,d#2,f#2,b2,b3,d#4,f#4,b4] ~@7",
BC: "[b2,d#3,f#3,b3,b4,d#5,f#5,b5] ~@7", BD: "[e2,g2,b2,e3,e4,g4,b4,e5] ~@7",
BE: "[b1,b2,b4,d#5,f#5,b5] ~@3 [a1,a2,b4,d#5,f#5,b5] ~@3", BF: "[[g#1,g#2,e5,b5,d6,e6]@3 ~]/2",
BG: "~@7 [e2,g#2,b2,e3,b3,e4,g#4,b4]", BH: "~@7 [e3,g#3,b3,e4,e5,g#5,b5,e6]", BI: "~@14 [a2,c3,e3,a3,c5,e5,a5,c6] ~",
BJ: "[b2,b3] [c3,c4] [d3,d4] [e3,e4] [f#3,f#4] [g#3,g#4] [e3,e4] [a3,a4]", // B C D E F# G# E A
BK: "[g3,g4] [f3,f4] [e3,e4] [d3,d4] [c3,c4] [b2,b3] [a2,a3] [e2,g#2,b2,e3,b3,e4,g#4,b4]", // G F E D C B A E
BL: "[a3,a5] [g3,g5] [f3,f5] [e3,e5] [f3,f5] [e3,e5] [d3,d5] [c3,c5]", // A G F E F E D C
BM: "[f3,f5] [e3,e5] [d3,d5] [c3,c5] [d3,d5] [c3,c5] [b2,b4] [a2,a4]", // F E D C D C B A
BN: "[f2,f4] [e2,e4] [d2,d4] [c2,c4] [d2,d4] [c2,c4] [b1,b3] [a1,a3]", // F E D C D C B A
BO: "[[f2,f4] [e2,e4] [d2,d4] [c2,c4] [d2,d4] [c2,c4] [b1,b3] [a1,a3]@2 ~@6 [e2,g#2,b2,e3,g#4,b4,d5,e5,f#5]]/2", // F E D C D C B A …
BP: "~@7 [a1,c2,e2,a2,a4,c5,e5,a5]", // Am
})).s("gm_piano").gain(0.35)
// chords · piano · soft notes
const piano_soft = note("<~@45 A B C D E F G H G H G I ~@87>".pickRestart({
A: "d2 d3 e2 d3 f#2 d3 d2 d3", B: "g2 d3 a2 d3 b2 d3 [g2,d5] [d3,d6]",
C: "[d2,c6] [d3,a5] [e2,f5] [d3,d5] [f#2,c5] [d3,a4] [d2,f#4] [d3,c4]", D: "g2 b2 f#2 b2 g2 b2 e2 b2, b3 ~@3",
E: "b1 b2 c#2 b2 d#2 b2 b1 b2", F: "e2 b2 f#2 b2 g2 b2 [e2,d5] [b2,b5]",
G: "[b1,a5] [b2,f#5] [c#2,d#5] [b2,b4] [d#2,a4] [b2,f#4] [b1,d#4] [b2,a3]", // B7 B5 C#sus2 B D#dim B5 B B7
H: "[e2,g3] [b2,b3] [f#2,e4] [b2,g4] [g2,b4] [b2,e5] [e2,g5] [b2,b5]", I: "[e2,g3] [c3,g4] [f#2,a3] [c3,a4] ~@4",
})).s("gm_piano").gain(0.2)
stack(pizzicato_strings, piano, piano_soft)
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.