0:00/0:00
// Fred Come to Bed — E-Rotic
// 145 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(145/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 · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
~@17 A B C B A B D B A@8 ~ A B C B A B D B A B C B A B D B A B C B A B D B A@8 ~ A B C B A B D B A B C B A B D B A B C
B A B D B A B C B A B D B ~@16 A B C B A B D B A B C B A B D B A B C B A B D B
>`.pickRestart({
A: "~ [e1,e4] ~ [e1,e4] ~ [e1,e4] ~ [e1,e4]", B: "~ [b1,b4] ~ [b1,b4] ~ [b1,b4] ~ [b1,b4]",
C: "~ [f#1,f#4] ~ [f#1,f#4] ~ [f#1,f#4] ~ [f#1,f#4]", D: "~ [a1,a4] ~ [a1,a4] ~ [a1,a4] ~ [a1,a4]",
})).s("gm_lead_2_sawtooth").gain(0.45)
// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
~ A@6 B C@7 B C@7 B D ~@9 A@6 B C@7 B C@7 B D ~@9 A@6 B C@7 B C@7 B C@7 B C@7 B C@7 B ~ A@6 B C@7 B C@7 B D
>`.pickRestart({
A: "[[e3,e4,g#4] [b2,d#4] [f#2,c#4,a4] [b2,d#4] [e3,e4,g#4] [b2,d#4,f#4], b3@2 ~ b3@3, ~ f#4@3 ~@2]/6", // E B F#m B E B
B: "[a2,a3,c#4,e4]", // A
C: "[[b2,d#4,f#4] [e3,e4,g#4] [b2,d#4] [f#2,c#4,a4] [b2,d#4] [e3,e4,g#4] [b2,d#4,f#4], b3@3 ~ b3@3, ~@2 f#4@3 ~@2]/7", // B E B F#m B E B
D: "[b2,b3,d#4,f#4]", // B
})).s("gm_synth_strings_1").gain(0.2)
// chords · brass section · "BRASS 1"
const brass_section = note(`<
~@17 A B C B A B D B ~@9 A B C B A B D B A B C B A B D B A B C B A B D B ~@9 A B C B A B D B A B C B A B D B A B C B A
B D B A B C B A B D B ~@8 A B C B A B D ~ A B C B A B D B A B C B A B D B A B C B A B D B
>`.pickRestart({
A: "[g#4,b4,e5]!3 ~ [g#4,b4,e5]!3 ~ [g#4,b4,e5]!3 ~ [g#4,b4,e5]!3 ~", // E
B: "[f#4,b4,d#5]!3 ~ [f#4,b4,d#5]!3 ~ [f#4,b4,d#5]!3 ~ [f#4,b4,d#5]!3 ~", // B
C: "[a4,c#5,f#5]!3 ~ [a4,c#5,f#5]!3 ~ [a4,c#5,f#5]!3 ~ [a4,c#5,f#5]!3 ~", // F#m
D: "[e4,a4,c#5]!3 ~ [e4,a4,c#5]!3 ~ [e4,a4,c#5]!3 ~ [e4,a4,c#5]!3 ~", // A
})).s("gm_brass_section").gain(0.22).pan(0.3)
// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth_2 = note(`<
~@17 A B C B A B D B ~@25 A B C B A B D B ~@25 A B C B A B D B A B C B A B E B ~@24 A B C B A B D B A B C B A B E B
>`.pickRestart({
A: "~ e3 e5 ~ e3 b4 ~ e3 a4 ~ e3 g#4 ~ e3 g#4 a4", B: "~ b3 b4 ~ b3 f#4 ~ b3 e4 ~ b3 d#4 ~ b3 d#4 e4",
C: "~ f#3 f#5 ~ f#3 c#5 ~ f#3 b4 ~ f#3 a4 ~ f#3 g#4 a4", D: "~ a3 f#5 ~ a3 c#5 ~ a3 b4 ~ a3 a4 ~ a3 g#4 a4",
E: "~ a3 e5 ~ a3 b4 ~ a3 a4 ~ a3 g#4 ~ a3 g#4 a4",
})).s("gm_lead_2_sawtooth").gain(0.36)
// bass · synth bass 1 · "SYN BASS 1"
const bass = note("<~@9 A B C B A B D B ~@8 E@8 ~@25 E@8 ~@33 A B C B A B D B A B C B A B D ~@25>".pickRestart({
A: "e2!16", B: "b1!16", C: "f#1!16", D: "a1!16", E: "e2 e3 e4 e2 e3 e4 e2 e3 e4 e2 e3 e4 e2 e3 e4 e2",
})).s("gm_synth_bass_1").gain(0.2).pan(0.4)
// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note("<~@9 A B C D E B C D F ~@85 A B C D E B C D E B C G ~@24>".pickRestart({
A: "~@4 g#4 ~ f#4 ~ g#4 ~ f#4 ~ g#4 ~ f#4 ~", B: "g#4 ~ b4 ~ f#4 ~ e4 ~ f#4 ~ e4 ~ f#4 ~ e4 ~",
C: "f#4 ~ g#4 ~ a4 ~ g#4 ~ a4 ~ g#4 ~ a4 ~ g#4 ~", D: "a4 ~ b4 ~ f#4 ~ e4 ~ f#4 ~ e4 ~ f#4 ~ e4 ~",
E: "g#4 ~ f#4 ~ g#4 ~ f#4 ~ g#4 ~ f#4 ~ g#4 ~ f#4 ~", F: "g#4 ~ f#4 ~@13", G: "a4 ~ b4 ~@13",
})).s("gm_synth_brass_1").gain(0.32)
// drums · kick
const kick = s("bd").struct(`<
~@16 A B C B C B C B C B C B C B C B C ~ B C B C B C B C B C B C B C B D B C B C B C B C B C B C B C B C ~ B C B C B C
B C B C B C B C B C B C B C B C B C B C B C B C B C ~@8 B C B C B C B ~ B C B C B C B C B C B C B C B C B C B C B C B
C
>`.pickRestart({
A: "x ~@3 x ~@3 x ~@2 x!2 ~ x!2", B: "x!4", C: "x ~ x ~ x ~ x!2", D: "x ~@3 x ~@3 x ~@3 x ~ x!2",
})).gain(0.74)
// drums · snare
const snare = s("sd").struct("<~@32 A ~@24 A ~@7 A ~@16 A ~@15 A ~@14 A ~@24 A>".pickRestart({
A: "x!16",
})).gain(0.37)
// drums · clap
const clap = s("cp").struct("<~@17 [~ x ~ x]!8 ~@9 [~ x ~ x]!24 ~@9 [~ x ~ x]!32 ~@16 [~ x ~ x]!24>").gain(0.37)
// drums · hihat
const hihat = s("hh").struct("<~@17 A@16 ~ A@32 ~ A@32 ~@12 B@3 ~ A@24>".pickRestart({
A: "x!2 ~ x!3 ~ x!3 ~ x!3 ~ x", B: "x!4",
})).gain(0.3)
// drums · open hat
const open_hat = s("oh").struct("<~@17 A@16 ~ A@32 ~ A@32 ~@12 A@3 ~ A@24>".pickRestart({
A: "~ x ~ x ~ x ~ x",
})).gain(0.52)
// drums · crash
const crash = s("cr").struct(`<
~@16 A B ~@6 A B ~@6 A ~ B ~@6 A B ~@6 A B ~@6 A B ~@6 A ~ B ~@6 A B ~@7 B ~@6 A B ~@6 C ~@8 B ~@5 A ~ B ~@6 A B ~@6 A
B ~@6 C
>`.pickRestart({
A: "x!4", B: "x", C: "x ~ x ~@2 x ~ x",
})).gain(0.44)
// drums · tambourine
const tambourine = s("tb").struct("<~@17 A@16 ~ A@32 ~ A@32 ~@12 A@3 ~ A@24>".pickRestart({
A: "~ x ~ x ~ x ~ x",
})).gain(0.52)
stack(
lead_2_sawtooth, synth_strings_1, brass_section, lead_2_sawtooth_2, bass, synth_brass_1, kick, snare, clap, hihat,
open_hat, crash, tambourine
)
More by E-Rotic
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.