0:00/0:00
// cello suite no 1 - prelude — Johann Sebastian Bach
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5883815; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 70 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.
// bass · contrabass
const bass = note(`<
~@4 A B C D A B ~ E A B F G H B F I J K L M ~@4 N O P Q ~@5 R S T H B H U V W X Y Z AA AB ~ AC ~@3 AD AE AD AE B AF
~@5 AG AH AI
>`.pickRestart({
A: "g2@3 ~", B: "e2@3 ~", C: "c2@3 ~", D: "d#2@3 ~", E: "d#2 f2", F: "d2@3 ~", G: "e2 a2", H: "b1@3 ~", I: "d2 b2",
J: "e2 g2", K: "a1 d3", L: "c#3 g2", M: "d3 f#2", N: "c#2 g2", O: "c#2 b2", P: "a1!2", Q: "a1 g2", R: "g#4 b4 e5 g5",
S: "g5 a5 e5 g5", T: "g5 f#5", U: "b1 d#2", V: "b1", W: "[e1,d2] [b1,d2]", X: "[c2,e2]", Y: "[a1,c2]", Z: "[b1,d#2]",
AA: "[b1,g2]", AB: "[e1,b1]", AC: "g#1", AD: "a1@3 ~", AE: "c#2 d2", AF: "a#1 a1", AG: "~@2 e5 g5", AH: "g5",
AI: "[d2,f#5]", // D
})).s("gm_contrabass").gain(0.2)
// other · acoustic bass
const acoustic_bass = note(`<
A@14 B A@3 C D A@3 C ~@4 E A B F ~@8 A@3 G ~ H I@2 J@2 K ~ L ~ B M E C@2 N B O ~@8
>`.pickRestart({
A: "g5@3 g5@3 g5@3 ~ g5@2 g5@4", B: "a5@3 a5@3 a5@3 ~ a5@2 a5@4", C: "f#5@3 f#5@3 f#5@3 ~ f#5@2 f#5@4",
D: "g5@3 g5@3 g5@3 ~ g5@2 f#5@4", E: "e5@3 e5@3 e5@3 ~ e5@2 e5@4", F: "c#6@3 c#6@3 c#6@3 ~ c#6@2 c#6@4",
G: "g5@3 g5@3 g5@3 ~@7", H: "b5", I: "a5", J: "[b4,f#5]", K: "[c5,a5]", L: "[b4,g#5]",
M: "g#5@3 g#5@3 g#5@3 ~ g#5@2 g#5@4", N: "g5@3 g5@3 g5@3 ~ f#5@2 f#5@4", O: "g5@3 g5@3 g5@3 ~ c#6@2 c#6@4",
})).s("gm_lead_8_bass_lead").gain(0.2)
// other · pizzicato strings · "Violin"
const pizzicato_strings = note(`<
A B@2 C A B@2 C A B@2 C A B D E A B A F G H@2 I ~@4 J B H K ~@8 A B D L ~ M N@2 O@2 P ~ P ~ B@2 Q A@2 B H R ~@7 S
>`.pickRestart({
A: "d5@3 d5@3 d5@3 ~ d5@2 d5@4", B: "e5@3 e5@3 e5@3 ~ e5@2 e5@4", C: "d#5@3 d#5@3 d#5@3 ~ d#5@2 d#5@4",
D: "f#5@3 f#5@3 f#5@3 ~ f#5@2 f#5@4", E: "e5@3 e5@3 e5@3 ~ d#5@2 d#5@4", F: "g4@3 d5@3 d5@3 ~ d5@2 d5@4",
G: "b4@3 b4@3 b4@3 ~ e5@2 e5@4", H: "c#5@3 c#5@3 c#5@3 ~ c#5@2 c#5@4", I: "d5@3 d5@3 d5@3 ~ d5@2 e5@4",
J: "b4@3 b4@3 b4@3 ~ b4@2 b4@4", K: "g5@3 g5@3 g5@3 ~ g5@2 g5@4", L: "b4@3 b4@3 b4@3 ~@7", M: "[d5,g#5]",
N: "[c5,e5]", O: "d#5", P: "e5", Q: "c5@3 c5@3 c5@3 ~ c5@2 c5@4", R: "e5@3 e5@3 e5@3 ~ g5@2 g5@4", S: "f#5",
})).s("gm_pizzicato_strings").gain(0.2)
// other · viola
const viola = note(`<
~@8 A B A B A B C B A B@2 D E F G H I J ~@2 K@2 L M ~@8 N O P A Q R S T Q U V ~ W ~@3 X Y X Y Z AA ~@7 V
>`.pickRestart({
A: "g3 b4!3", B: "g3 c5!3", C: "g3 d5!3", D: "g3 b4!2 a4", E: "g3 b4!2 f#4", F: "e4 g4 b3 d4", G: "c#4 a4!3",
H: "d4 a4!3", I: "f#4 a4 d5 f#4 g4 a4 d5 a4", J: "f#4 a4 d5 f#4 e4 a4 c#5 g4", K: "e3 g4!3", L: "e3 d4!2 b3",
M: "g4 e4 c#5 a4", N: "f#3 b4!3", O: "f#3 c5!3", P: "g3 f#4 c5 b4 c5 f#4 c5 f#4", Q: "e4", R: "b3 f4!2 g#4", S: "c4",
T: "g4", U: "d#4", V: "d4", W: "e3", X: "a3@3 ~", Y: "c#4 d4", Z: "e4@3 ~", AA: "a#3 a3",
})).s("gm_viola").gain(0.3)
// other · cello · "Violoncello"
const cello = note(`<
~@4 A B C D A B C E A F ~@2 G H I J ~@4 K L ~@2 M N O P Q R S T U V S Q W X Y Z AA AB S AC AD AE Q ~ AF@2 X AG AH AI
AH AI B AJ AK N O AL U V S Q
>`.pickRestart({
A: "g3@3 ~", B: "e3@3 ~", C: "c3@3 ~", D: "d#3@3 ~", E: "d#3 f3", F: "d3@3 ~", G: "g2@8 g2@3 a2@2 b2@3", H: "c3 g2",
I: "f#2@8 f#2@3 g2@2 a2@3", J: "g2@2 g3 f#3", K: "f#3 a3 d4 f#3 g3 a3 d4 a3", L: "f#3 a3 d4 f#3 e3 a3 c#4 g3",
M: "e2!2", N: "g2!2", O: "a2!2", P: "c#3@4 c#3!4", Q: "d3", R: "g2", S: "a2", T: "d3@3 c#3", U: "b2 a2", V: "e3",
W: "g2@3 g2!2 g2@2 ~", X: "a2@3 a2!2 a2@2 ~", Y: "d3@3 d3!2 d3@2 ~", Z: "g2!4 d#3!4", AA: "[e2,e3]", AB: "g#2",
AC: "c3@3 c3!2 c3@3", AD: "d#3", AE: "b2", AF: "e2!4", AG: "b2@3 b2!2 b2@2 ~", AH: "a2@3 ~", AI: "c#3 d3",
AJ: "a#2 a2", AK: "d3!2", AL: "d3@2 d3 c#3",
})).s("gm_cello").gain(0.2)
stack(bass, acoustic_bass, pizzicato_strings, viola, cello)
More by Johann Sebastian Bach
Air 'on the G string' Orchestral Suite No. 3 in D major BWV 1068D major · 30 bpmAir on the G string (D major)D major · 52 bpmAria variata in A minor BWV 989A major · 76 bpmArioso BWV 156A major · 35 bpmBach - Kyrie from Mass in B Minor - Woodwind QuintetD major · 50 bpmbereite dich zionA minor · 120 bpmBist du bei mirE♭ major · 68 bpmbwv 974 - adagio in d minorF major · 40 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.