0:00/0:00
// Menuet in G-Major — Bach Johann Sebastian
// 116 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 9 "BASSSOON" named as a bass, played on electric bass finger (its bassoon patch is not one)
// note: Full arrangement: all 80 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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.
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
A@3 B@3 C D E@5 F G@2 H@3 B@3 I D J@5 F K@2 L M N O P@2 Q@3 R S T U V W X Y@5 F G@2 Z M N O P@2 Q@3 R S T U V W X J@5
AA G@2
>`.pickRestart({
A: "[g2@15 ~ d3@5 ~@2 g2@3 ~ b2@3 ~ d3@3 ~ g3@3 ~ d3@2 ~@2 b2@3 ~ g2@15 ~ d3@6 ~@3]/3",
B: "[g2@3 b2@3 ~ d3@3 ~ g3@3 ~ d3@3 b2@4 ~ [c2,c3]@23 ~@2 b1@21 ~@3, ~@47 b2@22 ~@3]/3", // C
C: "[a1,a2] ~ [f#2,f#3] ~ g3 ~, ~@15 g2@4 ~@5", D: "d3@4 ~@3 e3@4 ~@5 f#3@6 ~@2, d2@2 ~",
E: "[g2@14 ~ d3@6 ~@2 g2@3 ~ b2@3 ~ d3@3 ~ g3@2 ~@2 d3@3 ~ b2@3 ~ g2@16 d3@6 ~@2 g2@3 ~ b2@3 ~ d3@3 ~ g3@3 ~ d3@3 ~ b2@3 ~ [c2,c3]@7 ~@2 [e2,e3]@4 ~@4 g3@3 ~@5, ~@37 g2 ~@2]/5", // C E
F: "[b1,b2]@7 ~ [d2,d3]@4 ~@4 g2@3 ~@5, ~@15 g3@4 ~@5", // B D
G: "[[c2,c3]@4 ~@4 [d2,d3]@12 ~@4 g3@4 ~@4 d3@4 ~@4 [g1,g2]@5 ~@3, ~@23 g2@4 ~@4 d2@4 ~@13]/2", // C D G
H: "[g2@15 ~ d3@6 ~ g2@3 ~ b2@3 ~ d3@3 ~ g3@3 ~ d3@2 ~@2 b2@3 ~ g2@15 ~ d3@6 ~@3]/3",
I: "a2@5 ~@3 [f#2,f#3]@4 ~@4 g3@4 ~@4, a1@3 ~@12 g2@4 ~@5", // F#
J: "[g2@15 d3@7 ~ g2@3 ~ b2@3 ~ d3@3 ~ g3@3 ~ d3@3 ~ b2@3 ~ g2@16 d3@6 ~@2 g2@4 b2@3 ~ d3@3 ~ g3@3 ~ d3@3 ~ b2@3 ~ [c2,c3]@7 ~@2 [e2,e3]@4 ~@4 g3@4 ~@4, ~@37 g2 ~@2]/5", // C E
K: "[[c2,c3]@4 ~@4 [d2,d3]@12 ~@4 g3@4 ~@3 d2@4 ~@5 g1@5 ~@3, ~@23 g2@4 ~@21]/2", L: "e2@7 d#2@7 ~ b1@7 ~@2",
M: "e2@11 ~", N: "e2@7 ~ g2@6 ~ b2@7 ~@2", O: "b1@7 ~", P: "[e2@7 ~ g2@7 b2@7 ~ b1@8 a2@7 ~@2 g2@6 ~@2]/2",
Q: "[a2@5 ~@2 b2@16 e2@20 ~@4 b1@6 ~@3 d2@5 ~@2 g2@7 ~@2]/3", R: "c2@3 ~ d2@3 ~ e2@3 ~",
S: "a1@5 ~@2 b1@5 ~@4 c2@5 ~@3", T: "d2@7 ~", U: "d2@5 ~", V: "[d2,d3]@11 ~", W: "[d2,d3]@7 ~", X: "[d2,d3]@5 ~",
Y: "[g2@15 d3@7 ~ g2@3 ~ b2@3 ~ d3@3 ~ g3@2 ~@2 d3@3 ~ b2@3 ~ g2@16 d3@6 ~@2 g2@4 b2@3 ~ d3@3 ~ g3@3 ~ d3@3 ~ b2@3 ~ [c2,c3]@7 ~@2 [e2,e3]@4 ~@4 g3@4 ~@4, ~@37 g2 ~@2]/5", // C E
Z: "e2@6 ~ d#2@7 ~@2 b1@6 ~@2", AA: "[b1,b2]@7 ~ [d2,d3]@4 ~@4 g2@4 ~@4, ~@15 g3@4 ~@5",
})).s("gm_string_ensemble_1").gain(0.24)
// other · piano · "A.PIANO 1"
const piano = note(`<
A B C D E F G H A I C J K L M N O J P J E F Q R S T U D V W M X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN O AO C
AP AQ W AR AS AT AU AA AV AW AX AY AZ BA BB BC AJ AK AL AM BD BE BF BG BH AQ AG AR BI
>`.pickRestart({
A: "g3@15 ~ d3@8", B: "g2@4 b2@3 ~ d3@4 g3@4 d3@4 b2@4", C: "g2@2 d3", D: "g2@4 b2@3 ~ d3@4 g3@4 d3@3 ~ b2@4",
E: "c3", F: "b2", G: "a2@6 ~@2 f#3@5 ~@3 g3@5 ~@3", H: "d3@6 ~@2 e3@6 ~@2 f#3@7 ~", I: "g2 b2 d3 g3 d3 b2",
J: "g2@4 b2@4 d3@4 g3@4 d3@3 ~ b2@4", K: "c3@7 ~ e3@8 g3@7 ~", L: "b2@8 d3@7 ~ g3@7 ~", M: "c3 d3@2",
N: "g3@5 ~@3 d3@3 ~@5 g2@4 ~@4", O: "g3@2 d3", P: "g2@15 ~ d3@7 ~", Q: "a2@6 ~@2 f#3@5 ~@3 g3@6 ~@2",
R: "d3@6 ~@2 e3@5 ~@3 f#3@7 ~", S: "g3@16 d3@7 ~", T: "g2@3 ~ b2@3 ~ d3@4 g3@4 d3@4 b2@4", U: "g2@16 d3@7 ~",
V: "c3@3 ~ e3@4 g3@4", W: "b2@7 ~ d3@8 g3@8", X: "g3@7 ~ d3@7 ~ g2@4 ~@4", Y: "e3@6 ~@2 d#3@7 ~ b2@8", Z: "e3@3 ~",
AA: "e3@6 ~@2 g3@7 ~ b3@7 ~", AB: "b2@3 ~", AC: "e3 g3 b3", AD: "b2@4 a3@2 ~@2 g3@3 ~", AE: "a3 b3@2", AF: "e3@7 ~",
AG: "b2@7 ~ d3@7 ~ g3@8", AH: "c3@8 d3@8 e3@7 ~", AI: "a2@8 b2@7 ~ c3@8", AJ: "d3@19 ~@5", AK: "[d3,f#3]@19 ~@5",
AL: "[d3,g3]@19 ~@5", AM: "[d3,f#3]@2 g3", AN: "[d3,f#3]@23 ~", AO: "g2@3 ~ b2@4 d3@3 ~ g3@4 d3@4 b2@4",
AP: "g2@4 b2@3 ~ d3@3 ~ g3@4 d3@3 ~ b2@4", AQ: "c3@7 ~ e3@8 g3@8", AR: "c3@7 ~ d3@15 ~",
AS: "g3@6 ~@2 d3@5 ~@3 g2@4 ~@4", AT: "e3@5 ~@3 d#3@5 ~@3 b2@7 ~", AU: "e3@19 ~@5", AV: "b2@17 ~@7",
AW: "e3@7 ~ g3@6 ~@2 b3@8", AX: "b2@7 ~ a3@5 ~@3 g3@5 ~@3", AY: "a3@8 b3@15 ~", AZ: "e3@23 ~",
BA: "b2@7 ~ d3@8 g3@7 ~", BB: "c3@7 ~ d3@8 e3@7 ~", BC: "a2@7 ~ b2@7 ~ c3@8", BD: "d3, f#3@7 ~", BE: "g3@15 ~ d3@7 ~",
BF: "g2@3 ~ b2@3 ~ d3@3 ~ g3@4 d3@4 b2@4", BG: "g2@15 ~ d3@8", BH: "g2@4 b2@3 ~ d3@4 g3@3 ~ d3@3 ~ b2@4",
BI: "g3@7 ~ d3@6 ~@2 g2@7 ~",
})).s("gm_piano").gain(0.36)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
~ A@2 B@2 C@2 ~ D@3 E F@2 G H ~ A@2 B@2 C@2 ~ D@3 E F@2 G H ~@12 I J K L D@3 E F@2 G H ~@12 I J K L D@3 E F@2 G H
>`.pickRestart({
A: "[b3@3 d4@3 ~ g4@4 b4@4 g4@3 ~@5 b3@16 ~@9]/2", B: "[b3@3 d4@3 ~ g4@4 b4@3 ~ g4@3 ~ d4@4 g4@22 ~@3]/2",
C: "[g4@22 ~ f#4@15 ~@2 g4@8]/2", D: "[~@23 b3@3 ~ d4@3 ~ g4@4 b4@3 ~ g4@3 ~@5 b3@17 ~@8]/3",
E: "b3@3 d4@3 ~ g4@4 b4@3 ~ g4@3 ~ d4@4 ~", F: "[c4@22 ~ b3@22 ~@3]/2", G: "c4@2 ~ d4@2 e4@2 ~ f#3@4 ~@4 c4@2 ~@6",
H: "b3@11 ~", I: "[f#3,d4]@5 ~@3", J: "[g3,d4]@17 ~@7", K: "[a3,d4]@7 ~ g3@3 ~", L: "f#3@11 ~",
})).s("gm_string_ensemble_1").gain(0.24).pan(0.3)
// other · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~ A ~@5 B ~ A ~@7 A ~@5 B ~ A ~@20 C D ~ A ~@20 C D ~ A ~@6>".pickRestart({
A: "~@19 d4@4 ~", B: "d4@23 ~", C: "~@8 d4@3 ~", D: "d4@11 ~",
})).s("gm_string_ensemble_1").gain(0.16).pan(0.3)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_3 = note(`<
A B C@3 D@3 E@2 F@3 G H I A B C@3 D@3 J@2 F@3 G H I K@2 L@2 M@3 N O P Q@2 R S T U J@2 F@3 G H I K@2 L@2 M@3 V O P W@2
R S T U J@2 F@3 G H I
>`.pickRestart({
A: "g4@3 b4@3 ~@2 d5@3 g5@3 ~ a4@3 ~ f#5@3 ~@2", B: "g5@8 g4@4 ~@3 g4@3 ~@6",
C: "[g4@3 b4@3 ~ d5@3 ~ g5@3 ~ a4@3 ~ f#5@3 ~ g5@8 ~ g4@3 ~@4 g4@3 ~@5 e5@4 ~@5 e5@3 ~@5 e5@3 g5@4 ~]/3",
D: "[d5@3 ~@5 d5@3 ~@5 d5@4 g5@3 c5@5 ~@3 d5@4 c5@3 ~ b4@3 ~ c5@4 a4@21 ~@4]/3",
E: "[g4@4 b4@3 d5@3 ~ g5@3 ~ a4@4 f#5@3 ~ g5@8 g4@3 ~@5 g4@3 ~@6]/2",
F: "[g4@3 b4@3 ~ d5@3 ~ g5@3 ~ a4@4 f#5@3 ~ g5@8 ~ g4@3 ~@4 g4@4 ~@4 e5@7 ~@2 d5@3 ~ c5@3 b4@4 a4@3 ~@2]/3",
G: "d5@7 ~ c5@3 b4@3 ~ a4@4 g4@3 ~@2", H: "a4@2 b4@2 ~ c5@2 ~ d4@6 ~ f#4@7 ~@2", I: "g4@11 ~",
J: "[g4@4 b4@3 d5@3 ~ g5@3 ~ a4@4 f#5@3 ~ g5@8 g4@3 ~@6 g4@3 ~@5]/2",
K: "[g4@3 ~ a4@3 b4@4 a4@4 g4@4 f#4@4 g4@8 e4@3 ~@5 e4@3 ~@6]/2",
L: "[g5@4 f#5@3 e5@3 ~ g5@4 f#5@4 e5@4 f#5@8 ~ b4@3 ~@5 b4@3 ~@5]/2",
M: "[g5@3 f#5@4 e5@4 ~ g5@4 f#5@3 e5@3 ~ f#5@8 b4@7 ~@2 e5@5 ~@2 f#5@2 ~ g5@2 ~ a5@3 b4@7 d#5@7 ~@2]/3",
N: "e5@8 d#5@4 e5@3 ~ f#5@6 ~@2", O: "g5@6 ~@2 g5@4 f#5@3 ~ e5@4 d5@3 ~", P: "e5@6 ~ e5@4 ~ d5@3 c5@4 b4@4 ~",
Q: "[c5@6 ~ c5@4 ~ b4@3 a4@4 g4@3 ~ f#4@8 e4@4 f#4@4 d4@5 ~@4]/2", R: "a4@7 ~ d4@3 ~@5 d4@3 ~@5",
S: "b4@7 ~ d4@3 ~@5 d4@3 ~@5", T: "c5@7 d5@4 c5@4 b4@4 c5@4 ~", U: "a4@7 ~", V: "e5@8 d#5@3 ~ e5@3 ~ f#5@6 ~@2",
W: "[c5@6 ~@2 c5@4 b4@3 a4@4 g4@3 ~ f#4@8 e4@4 f#4@4 d4@5 ~@4]/2",
})).s("gm_string_ensemble_1").gain(0.28).pan(0.6)
// other · oboe
const oboe = note(`<
~@16 A B C D@2 E F G H B I@3 J K L ~@7 M@2 N O P ~@2 Q R H B I@3 S K L ~@7 M@2 N O P ~@2 Q R H B I@3 J K L
>`.pickRestart({
A: "g4@3 ~ b4@4 d5@3 g5@4 ~ a4@4 f#5@4", B: "g5@7 g4@3 ~@5 g4@3 ~@6", C: "g4@3 b4@4 ~ d5@3 g5@4 ~ a4@3 f#5@4 ~",
D: "[g5@7 ~ g4@3 ~@5 g4@3 ~@4 e5@5 ~@4 e5@4 ~@4 e5@3 g5@4 ~]/2", E: "d5@4 ~@4 d5@4 ~@4 d5@4 g5@3 ~",
F: "c5@6 ~@2 d5@4 c5@4 b4@3 c5@4 ~", G: "a4@11 ~", H: "g4@4 b4@3 ~ d5@3 ~ g5@4 a4@3 f#5@4 ~",
I: "[g4@3 b4@4 d5@4 g5@4 a4@4 f#5@4 g5@8 g4@3 ~@5 g4@3 ~@5 e5@8 ~ d5@3 ~ c5@4 b4@4 a4@3 ~]/3",
J: "d5@7 ~ c5@4 b4@3 a4@4 ~ g4@3 ~", K: "a4@2 b4@3 c5@3 d4@5 ~@3 f#4@5 ~@3", L: "g4@11 ~",
M: "[~@23 b5@6 ~@3 b5@4 a5@4 g5@4 f#5@4]/2", N: "g5@3 ~ g5@2 f#5@2 e5@2 d5@2", O: "e5@3 ~ e5@2 d5@2 c5@2 b4@2",
P: "a4@7 g4@3 ~ a4@4 ~ f#4@5 ~@3", Q: "a4@7 ~ b4@4 a4@4 g4@4 a4@4", R: "f#4@7 ~", S: "d5@8 c5@4 b4@3 a4@4 ~ g4@3 ~",
})).s("gm_oboe").gain(0.24).pan(0.6)
// other · flute
const flute = note("<~@32 A@2 B@2 C@2 D@2 E F G@2 ~@2 H I ~@8 A@2 B@2 C@2 J@2 E F G@2 ~@2 K I ~@8>".pickRestart({
A: "[g4@3 a4@4 b4@4 a4@4 g4@4 f#4@4 g4@8 ~ e4@2 ~@6 e4@3 ~@5]/2",
B: "[g5@4 f#5@3 e5@4 g5@4 f#5@4 e5@4 f#5@8 ~ b4@2 ~@6 b4@3 ~@5]/2",
C: "[g5@4 f#5@4 e5@4 g5@4 f#5@3 e5@4 f#5@7 ~ b4@8 e5@5 ~@4]/2",
D: "[f#5@2 g5@3 a5@2 ~@2 b4@5 ~@2 d#5@6 ~ e5@7 ~@2 d#5@3 e5@4 f#5@6 ~@3]/2", E: "g5@7 ~ g5@4 f#5@4 e5@4 d5@4",
F: "e5@6 ~@2 e5@4 d5@3 c5@4 b4@4 ~", G: "[c5@6 ~@2 c5@4 b4@3 a4@3 ~ g4@4 f#4@8 ~ e4@3 f#4@4 ~ d4@5 ~@3]/2",
H: "c5@7 ~ d5@4 c5@4 b4@3 c5@5", I: "a4@17 ~@7",
J: "[f#5@2 g5@3 a5@3 ~ b4@5 ~@2 d#5@6 ~ e5@7 ~@2 d#5@3 e5@4 f#5@6 ~@3]/2", K: "c5@7 ~ d5@4 c5@3 b4@4 c5@5",
})).s("gm_flute").gain(0.2).pan(0.8)
// bass · electric bass finger · "BASSSOON"
const bass = note("<~@16 A@3 B@3 C D E@5 F G H ~@16 I@5 J G H ~@16 E@5 J G H>".pickRestart({
A: "[g2@14 ~@2 d3@5 ~@2 g2@3 ~ b2@3 ~ d3@2 ~@2 g3@3 ~ d3@2 ~@2 b2@3 ~ g2@15 ~ d3@6 ~@3]/3",
B: "[g2@3 b2@3 ~ d3@3 ~ g3@3 ~ d3@3 ~ b2@4 c3@23 ~ b2@21 ~@4]/3", C: "a2 ~ f#3 ~ g3 ~",
D: "d3@4 ~@3 e3@4 ~@5 f#3@6 ~@2",
E: "[g2@14 ~ d3@6 ~@2 g2@3 ~ b2@3 ~ d3@3 ~ g3@2 ~@2 d3@3 ~ b2@3 ~ g2@16 d3@6 ~@2 g2@3 ~ b2@3 ~ d3@3 ~ g3@3 ~ d3@3 ~ b2@3 ~ c3@7 ~@2 e3@4 ~@4 g3@3 ~@5]/5",
F: "b2@7 ~ d3@4 ~@4 g3@4 ~@4", G: "c3@4 ~@4 d3@11 ~@5", H: "g3@4 ~@4 d3@4 ~@4 g2@5 ~@3",
I: "[g2@14 ~ d3@7 ~ g2@3 ~ b2@3 ~ d3@3 ~ g3@2 ~@2 d3@3 ~ b2@3 ~ g2@16 d3@6 ~@2 g2@3 ~ b2@3 ~ d3@3 ~ g3@3 ~ d3@3 ~ b2@3 ~ c3@7 ~@2 e3@4 ~@4 g3@3 ~@5]/5",
J: "b2@7 ~ d3@4 ~@3 g3@4 ~@5",
})).s("gm_electric_bass_finger").gain(0.28).pan(0.6)
stack(string_ensemble_1, piano, string_ensemble_1_2, string_ensemble_1_soft, string_ensemble_1_3, oboe, flute, bass)
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.