0:00/0:00
// bwv 972 concerto after vivaldi op 3 no 9 1 allegro duet — J.S.Bach
// 100 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Harpsichord, Cemb" named as a piano, played on harpsichord (its trumpet patch is not one); ch 4 "Harpsichord, Cemb" named as a piano, played on harpsichord (its alto sax patch is not one); ch 5 "Harpsichord, Cemb" named as a piano, played on harpsichord (its baritone sax patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/3709056; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level. 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 · "Alto Saxophone"
const alto_sax = note("<A B C D E F G H I J ~@6 K L M N ~@13 K L O P Q ~@9 R S ~ I T@3>".pickRestart({
A: "~@15 d5", B: "d5@6 ~ d5 d5@2 f5 eb5 f5@2 f5@2", C: "bb4@6 ~ bb4 bb4@2 d5 c5 d5@2 d5@2",
D: "g4@6 ~ g4 g4@2 bb4 a4 bb4@2 bb4@2", E: "bb4@2 a4@2 ~@2 f5@2 c5 bb4 c5 eb5 d5 c5 d5 f5",
F: "eb5 d5 eb5 f5 eb5 g5 f5 eb5 d5 c5 d5 eb5 d5 f5 eb5 d5", G: "c5@2 f4@2 ~@2 f5@2 d5@2 f5 eb5 f5@2 f5@2",
H: "~@2 f5 eb5 f5@2 f5@2 d5@2 f5 eb5 f5@2 f5@2", I: "~@2 f5 eb5 f5@2 f5@2 d5 f5 eb5 d5 c5 bb4 a4 g4",
J: "f4 bb4 eb4 a4 ~@4", K: "~@5 f5 eb5 d5 c5 bb4 a4 c5 d5 eb5 d5 eb5",
L: "c5 bb4 a4 c5 d5 eb5 d5 eb5 c5 bb4 a4 c5 d5 eb5 d5 eb5", M: "c5 f4 a3 e3!5", N: "e3!7 ~",
O: "c5 f4 ~ a4 g4@2 ~ g4", P: "f4@2 ~ f4 eb4@2 ~ eb4", Q: "d4@2 ~ d4 c4@2 [c4,eb4]@2", R: "~@6 d5!2",
S: "c5@2 c5 bb4 c5@2 c5@2 bb4@2 ~@6", T: "[f4@2 bb4@2 ~ eb4@2 a4@3 d4@32 ~@6]/3",
})).s("gm_alto_sax").gain(0.3)
// chords · harpsichord · "Harpsichord, Cemb"
const harpsichord = 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 AB AC ~@4 Q R AD AE AF AG AH AI AJ AK@4 ~ AL AM AN AO AP@3
>`.pickRestart({
A: "~@15 [f4,bb4]", B: "[f4,bb4]@6 ~ [f4,bb4] [f4,bb4]@4 [f4,a4]@2 [eb4,a4]@2",
C: "[d4,g4]@6 ~ [d4,g4] [d4,g4]@4 [d4,f4]@2 [c4,f4]@2", // G5 Dm F5
D: "[bb3,eb4]@6 ~ [bb3,eb4] bb3@2 c4@2 [d4,f4]@2 [d4,f4]@2, ~@2 eb4 ~", E: "[c4,f4] ~ [f3,c4] f3",
F: "[g3,bb3]@2 [a3,c4]@2 ~ f3 bb3@2", G: "a3 ~@2 [c4,a4] [d3,f4]@2 ~@2", H: "[a3,c5] ~ [f3,bb4] ~",
I: "[a3,c5] ~ [f3,f4] [g3,c4]", J: "[a3,c4] [f3,d4] [f3,c4]@2 f3@2 ~ a3, ~@4 d4 ~@3", K: "bb3@2 ~ f3 f3@2 bb3@2",
L: "[f3,a3] [g3,bb3] [a3,c4] [f3,a3] bb3 d4 g4 g3", M: "a3 c4 f4 f3 g3 bb3 c4 e3", N: "f3 g3 a3 f3 ~ bb3 ~ c4",
O: "~ [a3,c4] ~ [g3,c4] ~ [f3,a3] ~ [e3,a3]", P: "~ [d3,f3] ~ [f3,c4] ~ [d3,f3] ~@2",
Q: "~ f3 g3 a3 bb3@2 bb3@2 a3@2 a3@2 bb3@2 bb3@2", R: "a3!2 bb3!2 a3!2 bb3!2",
S: "a3@2 ~@3 c5 d5 c5 bb4 a4 g4 a4 bb4 c5 bb4 c5, ~@3 c4 g3!4",
T: "bb4 a4 g4 a4 bb4 c5 bb4 c5 bb4 a4 g4 a4 bb4 c5 bb4 c5, g3!8",
U: "a4 bb4 a4 g4 a3@2 bb3@2 c4 bb3 a3 g3 f3@2 a3@2, f3@2 g3@2 f4 ~@11",
V: "c4 bb3 a3 g3 f3@2 a3@2 bb3@2 f3@2 bb3@2 f3@2", W: "bb3 a3 g3 f3 e3@2 g3@2 a3@2 e3@2 a3@2 e3@2",
X: "a3 g3 gb3 e3 d3@2 gb3@2 g3@2 ~@4 gb3@2", Y: "g3 ~@2 gb3 g3@2 ~ [g3,bb4]",
Z: "[eb3,bb4]@2 ~ [d3,a4] [d3,a4]@2 ~ [d3,g4]", AA: "eb3 c4 [d3,gb4]@2 ~@2 bb4 a4, g4 ~@3",
AB: "eb4@2 eb3@2 ~ a3 bb3 c4 d4@2 d3@2 ~ g3 a3 bb3, g4@2 a4 g4 gb4@2 g4@2", AC: "c4 a3 d4 d3 ~@4, ~ gb4 ~@2",
AD: "~@4 f5@2 [d5,f5]@2 [d5,f5]@2 eb5 d5 eb5@2 [c5,eb5]@2", // Dm Cm
AE: "[c5,eb5]@2 d5 c5 d5@2 [bb4,d5]@2 [bb4,d5]@2 c5 bb4 c5@2 [a4,c5]@2", // Cm Bb Am
AF: "[a4,c5]@2 bb4 a4 bb4@2 [g4,bb4]@2 [g4,bb4]@4 [f4,a4]@4", AG: "[d4,f4] ~@2 [bb4,d5] [a4,c5]@2 ~ [a4,c5]",
AH: "[bb4,d5]@2 ~ [bb4,d5] [a4,c5]@2 ~ [a4,c5]", AI: "bb4@4 ~@4 f3 eb3 f3 ~ g3 f3 g3 ~",
AJ: "~ a3 g3 a3 ~ a3 g3 a3 bb3 a3 bb3 f3 ~@4", AK: "[f3@52 ~ f3 g3 a3 bb3 d4 c4 bb3 a3 g3 f3 eb3]/4",
AL: "~@6 [f4,bb4]!2", AM: "[g4,bb4]@2 [f4,a4] [eb4,a4] [d4,f4] ~@2 [bb4,d5]",
AN: "[a4,c5]@2 ~ [f4,c5] [f4,bb4]@2 ~ [bb4,d5]", AO: "[a4,c5]@2 ~ [f4,c5] [f4,bb4] ~@3",
AP: "[bb4@2 ~@5 a4@3 ~@2 f4@30 ~@6, d4@4 ~ c4@6 bb3@31 ~@6, ~@2 bb4@5 ~@41]/3",
})).s("gm_harpsichord").gain(0.3)
// other · harpsichord · "Harpsichord, Cemb"
const harpsichord_2 = note(`<
A B C D E F G H I J K ~@2 L M N O P Q R S ~@2 T U V W ~ X Y Z AA AB AC P AD AE AF AG AH AI AJ AK@4 AL AM AN AO AP AQ@3
>`.pickRestart({
A: "~@15 bb3", B: "bb3@6 ~ bb3 bb3@4 f3@4", C: "g3@6 ~ g3 g3@4 d3@4", D: "eb3@6 ~ eb3 eb3@4 bb2@4", E: "f3 ~ a2 bb2",
F: "eb2@2 f2@2 bb2@3 bb2", G: "f3@2 f2 g2 a2@2 f2@2 bb2@4 ~@4", H: "f3 ~ bb2 ~", I: "f3 ~ bb2 eb3",
J: "f3@2 d3 eb3 ~@2 f2@2 bb2@4 ~@2 f3@2", K: "bb2@2 ~ a2 bb2 c3 d3 bb2", L: "~@4 bb2 ~ c3 ~", M: "f3 e3 d3 c3",
N: "bb2 a2 bb2 c3", O: "f2 ~@2 bb2 f3!2 bb2!2", P: "f3!2 bb2!2 f3!2 bb2!2",
Q: "f3@2 f2 g2 a2@2 f2@2 c3@2 c3@2 c3@2 c3@2", R: "c3!8", S: "f2 ~@7", T: "~@5 g2 gb2 ~",
U: "~@2 g2@2 gb2@2 ~@4 g2 a2 bb2@2 g2@2", V: "a2 g2 a2 gb2 g2 a2 bb2 g2",
W: "c3@2 a2@2 ~@2 d2@2 g2 d3 e3 gb3 g3 bb3 c4 d4", X: "~@4 g3 g2 ~@2",
Y: "g2 bb2 d3 g3 f2 b2 d3 g3 eb2 c3 bb2 c3 a2 bb2 g2 a2", Z: "f2 a2 c3 f3 f2 a2 c3 eb3 bb2 d3 c3 d3 bb2 c3 a2 bb2",
AA: "g2 bb2 d3 g3 g2 bb2 d3 f3 c3 d3 eb3 d3 c3 d3 bb2 c3", AB: "a2 bb2 c3 bb2 a2 bb2 g2 a2 f2@4 ~@4",
AC: "~@3 bb2 f3!2 bb2!2", AD: "f2 f3 eb3 f3 d3 eb3 c3 d3 bb2 d3 g2 bb2 c2 c3 bb2 c3",
AE: "a3 c4 f3 a3 bb2 bb3 a3 bb3 g3 bb3 eb3 g3 a2 a3 g3 a3", AF: "f3 a3 d3 f3 g2 g3 f3 g3 eb3 g3 c3 eb3 f2 f3 eb3 f3",
AG: "bb2@4 ~@2 f3 e3 f3@2 f2@2 ~@2 f3 e3", AH: "f3@2 bb2@2 ~@2 f3 e3 f3@2 f2@2 ~ f3 eb3 f3",
AI: "bb2@2 f3@2 ~ f3 eb3 f3 a2@4 bb2@4", AJ: "c3@4 f3@4 ~@4 bb2 d3 c3 bb2", AK: "[~ f2@25 ~@6]/4",
AL: "d3 g3 f3 eb3 d3 c3 bb2 a2 bb2 d3 c3 bb2 a2 g2 f2 eb2", AM: "d2 f2 g2 f2 eb2 d2 c3 bb2 f2 eb2 d2 c3 bb2!2 a2 bb2",
AN: "eb2 eb3 d3 eb3 f2 f3 eb3 f3 bb2@4 ~@2 f3 e3", AO: "f3@2 f2@2 ~@2 bb3 a3 bb3@2 bb2@2 ~@2 f3 e3",
AP: "f3@2 f2@2 ~@2 bb2 a2 bb2!2 c3 d2 eb2 f2 g2 a2",
AQ: "[bb2 c3 d3 ~ eb3 f3 eb3 f3 ~@2 bb2@32 ~@6, ~@9 f2@2 ~@37]/3",
})).s("gm_harpsichord").gain(0.3)
stack(alto_sax, harpsichord, harpsichord_2)
More by J. S. Bach
1. MenuettF major · 120 bpm14 Canons BWV 1087G major · 92 bpmAir 'on the G string' Orchestral Suite No. 3 in D major BWV 1068D major · 60 bpmAllein Gott in der Höh' sei Ehr' BWV 676G major · 74 bpmBrandenburg Concerto No.2 in F major BWV 1047C major · 100 bpmBrandenburg Concerto No.3 in G major BWV 1048G major · 100 bpmBWV 0779 duo mandolineC major · 120 bpmConcerto in G minor BWV 1056RA♭ major · 60 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.