0:00/0:00
// Menuet G-dur, BWV Anh — Bach Johann Sebastian
// 86 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 85 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(86/3)
// 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.
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
~@5 A B C D E F G H A B C D E F G C ~@16 I J K L M N O H I J K L M N O H P ~@3 Q ~@3 P ~@3 Q ~@3 A B C D E F G H ~@8
>`.pickRestart({
A: "g1 ~ b1 ~ d2 ~", B: "g2 ~ g1 ~@3", C: "d2 ~ d2 ~@3", D: "g1 ~ g1 ~@3", E: "g1 ~ b1 ~ d#2 ~", F: "e2 ~ f#2 ~ g2 ~",
G: "a2 ~@3 a1 ~", H: "d2 ~ d1 ~@3", I: "g1 ~ d2 ~ g2 ~", J: "c2 ~ d2 ~ f#2 ~", K: "b1 ~ d2 ~ g2 ~",
L: "f#2 ~ a2 ~ c3 ~", M: "g2 ~ b2 ~ b1 ~", N: "e2 ~ c#2 ~ d2 ~", O: "g1 ~@3 a1 ~", P: "d2 ~@5", Q: "g1 ~@5",
})).s("gm_acoustic_bass").gain(0.2).pan(0.6)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
A B C D E F G H I J K L M F G H I J K L N O P Q R S T U V O W X R S T U V ~@16 Y Z AA AB AC AD AE AF Y Z AA AB AC AD
AE AG F G H I J K L N O P Q R S T AH@2
>`.pickRestart({
A: "~@8 [g4,b4]@3 [a4,c5]", B: "[b4,d5]@3 [a#4,c#5] [b4,d5]@3 [a#4,c#5] [b4,d5]@3 [a#4,c#5]",
C: "[b4,d5]@8 [c5,e5]@3 [g#4,b4]", D: "[a4,c5]@8 [f#4,d5]@3 [c4,f#4]", E: "[b3,g4]@4 ~@4 g4@3 a4",
F: "b4@3 a#4 b4@3 a#4 b4@3 a#4", G: "b4@8 c5@3 g#4", H: "a4@8 b4@3 f#4", I: "g4@6 ~@2 b3@3 d4",
J: "g4@3 f#4 g4@3 f#4 g4@3 f#4", K: "g4@16 f#4@4 e4@3 ~", L: "e4@4 d4@3 ~ d4@4 f#4@4 e4@8", M: "d4@4 ~@4 g4@3 a4",
N: "d4 ~@2", O: "d5 c5 b4", P: "a4", Q: "a4@4 g4@3 ~ c5@3 a4", R: "g4@4 f#4@2 ~@2 b3@3 c4",
S: "d4@3 c#4 d4@3 c#4 d4@3 c#4", T: "d4@8 e4@3 d4", U: "c4@8 d4@3 c4", V: "b3 ~@2", W: "a4@23 ~",
X: "a4@7 ~ g4@6 ~@2 c5@6 a4@2", Y: "~@3 d4 c#4 d4", Z: "e4 c4 a3 b3 a#3 b3", AA: "c4@8 d4@11 ~ d4@3 ~", AB: "d4@23 ~",
AC: "d4", AD: "e4", AE: "f#4@2 d4 e4 f4 f#4", AF: "f#4@2 g4 ~@3", AG: "f#4@4 g4@2 ~@2 g4@3 a4",
AH: "[c4@16 d4@7 c4@2 b3@10 ~@13]/2",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.3)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
~ A B C D ~@16 E@2 F G H I J D E@2 F G H I J D ~@17 K L M N O P Q ~ K L M N O P Q ~@8 E@2 F G H I J R
>`.pickRestart({
A: "[g2,b3] [b2,b3] [d3,b3]", B: "[g3,b3] [f3,a3,c4] [e3,g#3,b3]", C: "e3 [d#3,g3] [d3,f#3], a3", D: "g3 ~@2",
E: "[g4 f#4 g4 f#4@3, d4]/2", F: "d4@2 e4, g3", G: "d4 c#4 d4 ~@3", H: "g2 b2 d3", I: "g3 [f3,c4] [e3,b3]",
J: "[e3,a3] [d#3,g3] [d3,f#3]", K: "~@12 g3@7 ~ g3@4", L: "f#3 a3 f#3 g3 f#3 g3", M: "a3 f#3 d3 d4 c#4 c4",
N: "b3@16 g3@7 ~", O: "g3@3 g#3 a3 b3", P: "c4@2 f#3 g3 g#3 a3", Q: "c4@2 b3 ~@3", R: "~ g3@10 ~@13",
})).s("gm_string_ensemble_1").gain(0.29).pan(0.6)
// chords · pizzicato strings · "PIZZICATO"
const pizzicato_strings = note(`<
~@5 A B C D E F G H A B C D E F G H ~@16 I J K L M N O P I J K L M N O P ~@16 A B C D E F G H ~@8
>`.pickRestart({
A: "[d3,g3] ~@7 [g3,b3] ~@7 [b3,d4] ~@7", B: "[d4,g4] ~@7 [g3,d4] ~@15", C: "[a3,f#4] ~@7 [f#3,d4] ~@15",
D: "[b3,g4] ~@7 [g3,d4] ~@15", E: "[d3,g3] ~@7 [g3,b3] ~@7 [b3,d#4] ~@7", F: "[b3,e4] ~@7 f#4 ~@7 g4 ~@7",
G: "a3 ~@15 [g3,c#4] ~@7", H: "[f#3,d4] ~@7 d3 ~@15", I: "[d4,b4] ~@7 [b3,g4] ~@7 [g3,d4] ~@7",
J: "[f#4,c5] ~@7 [c4,a4] ~@7 [a3,f#4] ~@7", K: "[g4,d5] ~@7 [d4,b4] ~@7 [b3,g4] ~@7",
L: "[f#4,c5] ~@7 [d4,a4] ~@7 [a3,f#4] ~@7", M: "[d4,b4] ~@7 [b3,g4] ~@7 [d#4,a4] ~@7",
N: "[e4,g4] ~@7 [a3,g4] ~@7 [a3,f#4] ~@7", O: "[b3,e4] ~@15 [a3,g4] ~@7", P: "[a3,f#4] ~@23",
})).s("gm_pizzicato_strings").gain(0.25)
// other · french horn · "FR.HORN"
const french_horn = note("<~@9 A@2 B C ~@4 A@2 B C ~@4 D E F G ~@4 D E F G ~@36 A@2 B C ~@4 D E F H>".pickRestart({
A: "b3/2", B: "a3@4 b3 c#4", C: "d4 ~@2", D: "b3@7 ~ b3@7 ~ b3@7 ~", E: "b3 a3 g#3", F: "a3", G: "g3 ~",
H: "~ g3@15 ~@8",
})).s("gm_french_horn").gain(0.27).pan(0.4)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_3 = note(`<
~ A B@2 C ~@16 D E F G A B@2 C D E F H A I@2 J ~@16 K L M N O P Q R K L M N O P Q R ~@8 D E F H A I@2 S
>`.pickRestart({
A: "g1 b1 d2", B: "[g2 f2 e2@2 d#2 d2]/2", C: "g2@3 ~@5 g2@7 ~@9", D: "b2 a2 g2", E: "f#2 d2 f#2", F: "g2@2 c3",
G: "d3@2 ~", H: "d3@7 ~@5", I: "[g2@8 f2@8 e2@15 ~ d#2@8 d2@8]/2", J: "g2@3 ~ g1@4 ~@4", K: "d3@4 c#3 d3",
L: "e3 c3 a2 b2 a#2 b2", M: "c3 a2 f#2 g2 f#2 g2", N: "a2@4 f#2@4 d2@3 ~ [d2,d3]@4 [e2,e3]@4 [f#2,f#3]@4",
O: "[g2,g3]@2 [b1,b2]", P: "[c2,c3]", Q: "[d2,d3]", R: "[g2,g3] ~", S: "~ g2@7 ~@3 g1@10 ~@3",
})).s("gm_string_ensemble_1").gain(0.29).pan(0.7)
stack(bass, string_ensemble_1, string_ensemble_1_2, pizzicato_strings, french_horn, string_ensemble_1_3)
More by Bach Johann Sebastian
Brandenburgisches Konzert Nr. 1 F-Dur, BWV 1046: IV. Menuet - Trio - Menuet - Polonaise - Menuet - Trio - MenuetG major · 136 bpmOrchestersuite Nr. 2 5. PolonaiseG major · 82.6 bpm2-Part Invention No. 1 in C major, BWV 772E major · 120 bpmPrelude in C MajorE♭ major · 90 bpmJesus bleibet meine Freude (Herz und Mund und Tat und Leben BWV. 147)G major · 61 bpmToccata and Fugue in D minor, BWV 565D minor · 120 bpmAir On The G StringD minor · 120 bpmBrandenburg Concerto No. 2 in F major, BWV 1047: III. Allegro assaiC major · 95 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.