Roland D50 "filters".

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

One thing that bothered me to no end since 1987 is why the D50 had filters on the "analog" oscillators and not on the sample oscillator. It seems like such a stupid omission.

I've recently found out the reason. They're not filters at all! According to randomguyontheinternet filters were way to expensive so they "cheated". Apparently they just calculate the oscillators differently according to the "filter" settings and that's why the samples has no filters.

Any idea how this is done ? How do you solve the resonance ? Mixing in a sampled (or whatever) sinewave ? That's not really enough is it ?

Post

I had a thread on doing faked resonance a little bit ago.. you can use something similar to a the Casio CZ/FOF method. What has been bugging me is how the waveform generators worked, because before you can add the resonance you have to produce a filtered sounding wave. I wrote a routine a little bit ago which inserted halves of sinewaves at various pitches for the discontinuities. This would produce filtered square/saw tones with predictable amounts of high frequencies so that the resonance can track the cutoff reasonably. It doesn't sound as good as my MT-32 though (another LA synth)

But, yeah, if anyone has any information on how the specific Roland implementation worked, I'd love to know! I know there is a diagram of the saw being derived from a square via a multiplication function floating around, but the hurdle imo is producing the "filtered" square in the first place.
OPL2 is forever

Post

I always liked the D-50 filter type sweep, and glass voice is one of my favourite all time presets.

I did think how come the D-50 digital filter sounds so nice yet was done on so little dsp..... it must have been down to the implementation you described.

Post

LouisG wrote:Casio CZ/FOF method
What does FOF mean? Never heard that term... :oops:

Post

i want to hear that, i've never heard of that Roland synth
any samples?

btw, just by reading here, i guess a "sawtooth with a resonant LP filter" could be fully synthesized by sine-wave synthesis you know..
you just have to figure the nasty algo, which i guess wouldn't be so nasty
the nasty part will be adding all the sine-waves needed to fill up the spectrum up to Nyquist (which will eat a lot of CPU there)
tho, this might not be a problem if the roland synth was digital (with dedicated DSP processor or something)

still wanna hear it ;]
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

http://www.vintagesynth.com/roland/d50.php

I am surprised you haven't heard of it, it's one of the milestones of digital synthesis I reckon. Not quite as famous as the M1 or the DX7, but it's up there.

Edit:
http://www.synthmania.com/Famous%20Sounds.htm
..scroll down a ways for some classic D50

Post

Are the d50 transient samples around as downloads somewhere?
Swing is the difference between a drum machine and a sex machine.

Post

From looking at the waveform, it looks it does resonant pulse with exponentially decaying sinewaves, plus a "magic junction" to remove the buzzing noise you'd get if you had a jump.

It looks like phase distortion synthesis at 0 resonance, since it basically turns pulse into sine.

Hypothetical process:

1) Start with cosine wave. Sync the phase to get a positive peak every time you get a positive pulse edge, and a negative peak every time you get a negative pulse edge.

2) Multiply (ring mod) by an exponential or quasi-exponential waveform, the shape of which depends on the resonance.

3) Bias the signal so that the next edge level is 0

4) Generate an extra half sine segment that goes from 1 to 0 at the end to eliminate buzz/edges. The duration of this segment is determined by cutoff. Multiply (ring mod) the incoming signal by this segment.

5) Re-bias the waveform so that the positive and negative segments line up and form a pulse wave.

6) If the waveform is saw wave, ringmod by an extra sine.


This has many steps and convoluted parts so there might be a simpler way. Also note that this process was probably done with only 1 ramp/saw wave oscillator, so the "sync" parts are probably done with multiplications and stuff.

Post

Urs wrote:
LouisG wrote:Casio CZ/FOF method
What does FOF mean? Never heard that term... :oops:
FOF = "fonction d'onde formantique''. It's a kind of granular synthesis method for formant voice synthesis. There's info on it in Perry Cook's "Real Sound Synthesis" book and Curtis Roads' "Microsound".

Post

well, i really liked the "Glass voice" preset thing.. really big one
tho, i don't know what to say about it, what i heard was not just a "LP-filtered sawtooth" .. ;]
EDIT: oh, and, um.. i don't know much about the popular hardware synths, since i've never saw one
i never knew about the D-50 :?
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

jupiter8 wrote:They're not filters at all! According to randomguyontheinternet filters were way to expensive so they "cheated". Apparently they just calculate the oscillators differently according to the "filter" settings and that's why the samples has no filters.
Physical filters, and/or their costs? No. Roland was able to do poly synths with filters for less than the price of the D-50.

The D-50 partials which utilized TVFs were essentially Roland's 1st-gen DSP algorithms.

To say the filters are fake is a misnomer. They are every bit as much a filter as similarly-functioned filters in Kurzweil's VAST implementations. They are filter functions applied in a digital domain, just like every other function in modern synths.

Unless you're going to say that digital synthesizers don't have filters. They don't have any amps, envelopes or LFO's either, if that is your position.

The reason D-50 didn't apply TVFs to samples is because that level of processing power was not available affordably, and would not be for 3 more years when the K2000 hit the market.

FWIW, I was Roland product specialist in the days of the D-50. It was Roland's attempt to do a fully digital synthesizer to combat the domination of the DX-7 and resulting products which started 4 years previously. Given the popularity of the 50/550 and the number of spinoff products they were able to sell, the development of that technology cannot be considered anything less than a rousing success.
"Talking about music is like dancing about architecture" - Buckminster Fuller

"I needs me one of them equametric paralyzers" - Anonymous

Post

Vøltz wrote:
jupiter8 wrote:The reason D-50 didn't apply TVFs to samples is because that level of processing power was not available affordably, and would not be for 3 more years when the K2000 hit the market.
Well yeah, but that just takes us back to the start doesn't it? Why would it have processing power for filters on the "analog" oscillators and not the samples?
Last edited by jupiter8 on Sat Mar 31, 2018 5:21 pm, edited 1 time in total.

Post

bork

Post

I sold my D50, I didn’t regret it. Perhaps some of the wave samples simply had prefiltered tables that were looked up depending on filter value? There may have been enough cpu available to mix two lookups together for smoothing.
My reasoning is, a simple oscillator would only need one cycle per coefficient, whereas a whole sample would take up far too much room.

Post

Munt implements "classic" partials like this:
https://github.com/munt/munt/blob/maste ... r.cpp#L117

The code looks to be similar to what LouisG and MadBrain explained above: half-cosine interpolated trivial pulse, ring-modulated with a sine in case of a sawtooth. Filter cutoff is simulated with variable sloped half-cosines in the interpolation step, and resonance is added in using a decaying sinusoid.

Post Reply

Return to “DSP and Plugin Development”