Bandlimited impulse train - again

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

I want to synthesise an alias-suppressed impulse train, that can be easily "modulated" - in terms of offsetting, fm etc. Moreover the transitions should sum up to a constant.

- I want to use an analytic form and not to use memory too much - so no bleps.
- DSF - sin/cos are expensive, zero denominator problem - must be hard to modulate

Polybleps fit perfectly my needs, but after integration they don't sum up to constant. (I need the signal as an integrator source). Is there a sensible polyblep formula that meets this requirement?
giq

Post

Ok, stupid me.. I can differentiate polyblep and use it as a source for integrator. But.. maybe better solutions?
giq

Post

itoa wrote:I want to synthesise an alias-suppressed impulse train, that can be easily "modulated" - in terms of offsetting, fm etc. Moreover the transitions should sum up to a constant.

- I want to use an analytic form and not to use memory too much - so no bleps.
- DSF - sin/cos are expensive, zero denominator problem - must be hard to modulate

Polybleps fit perfectly my needs, but after integration they don't sum up to constant. (I need the signal as an integrator source). Is there a sensible polyblep formula that meets this requirement?
I experimented with analytical BLITs and i think that it not suitable for any kind of fast modulation (fm , pwm). For fast modulations, sum of windowed sincs is better.

Post

itoa wrote:Ok, stupid me.. I can differentiate polyblep and use it as a source for integrator. But.. maybe better solutions?
Is there some particular reason why you want to integrate in the first place? I mean.. pretty much whatever you do, you'll need to deal with DC offsets once you modulate it.

Post

I am playing with different oscillator models. I wanted to simulate a nonlinear capacitor model. Impulses are used for loading/unloading. DC blocker is not a problem here (it exists in analog synths as well). bt. It works pretty well with differentiated polybleps. Whats interresting, FM sounds very different. Spectrum is more flat (depending on frequency/unloading curve). Just looking for interesting oddities :)
giq

Post

btw. Mystran - additional question especially to you :)

Lot of analog synths produces this kind of saw for lower notes:
http://www.tone2.com/assets/images/analog_saw.gif

This exponential tooth comes from capacitor loading, but the curve folds back. I suppose it's caused by DC remover filter? Am I right?
giq

Post

itoa wrote:btw. Mystran - additional question especially to you :)

Lot of analog synths produces this kind of saw for lower notes:
http://www.tone2.com/assets/images/analog_saw.gif

This exponential tooth comes from capacitor loading, but the curve folds back. I suppose it's caused by DC remover filter? Am I right?
In about 99% of cases, if you plug an oscillator probe right inside the VCO directly, you'll see a remarkably straight saw-wave. You actually kinda need that in a saw-core circuit to build a VCO that tracks properly. But in practice, once the straight-line saw-wave has been produced, before it actually comes out of the synth the other end of filters and VCA (or in some cases even from a direct "saw output" jack)... it usually goes through at least a couple of AC coupling capacitors that result in various amounts of high-pass filtering.

Post

Thanks, that was extremely important information to me. (However leaky integrated impulse plays so nice with resonant filters).

So, in 99% capacitor is not saturated and operates in its linear part?

A side note: in the nature most of exciters are exponential :)
giq

Post

itoa wrote: So, in 99% capacitor is not saturated and operates in its linear part?
Well, I guess if you start worrying about capacitor saturation, you might want to first worry about the active components involved.. but really at that point you need to pick a specific circuit and start analyzing / measuring it.

Anyway, the method used in a classic saw-core VCO is to feed a voltage controlled current into an integrator. This produces a (theoretically) straight-line with the slope controlled by the current. Then it's sent to a comparator that shorts the capacitor for a short-time once the voltage reaches some threshold value, so the capacitor discharges and the integration starts over. Sometimes the reset can also be triggered from external source, which is how you'd hard-sync. This isn't the only known way to build analog VCOs, but it's by far the most common.

Assuming the control current tracks perfectly over 1V/oct (or whatever), and assuming the integrator is perfect and the reset time approaches zero.. you have a theoretically perfect saw-wave oscillator. In practice this isn't reality, but if you deviate too far in any direction, you'll find your oscillator will have quite limited tracking range or other problems and it'll still usually look like a perfectly fine saw-wave when you look at it in a scope.

If the synth has DCOs, then usually that means the control current is some approximation, and the actual resets are triggered by a digital clock source. In this case the wave-shape could be pretty much anything as the oscillator no longer relies on proper integration directly... but I'm not really a fan of DCOs, so better ask someone else for more details about those..

Post

Yes, the most interesting phenomenon occurs near reset point. I think the comparator has some hysteresis and noise. I observed my MS20 ,besides of "dancing reset point", it's saw has a small spike near the reset point (about 0.3 ms long). This spike is quite irregular over time. This results in a series of small combs at the end of spectrum + some noise. It's the analog vco mojo :) far more important that a wave shape.
giq

Post

itoa wrote:Yes, the most interesting phenomenon occurs near reset point. I think the comparator has some hysteresis and noise. I observed my MS20 ,besides of "dancing reset point", it's saw has a small spike near the reset point (about 0.3 ms long). This spike is quite irregular over time. This results in a series of small combs at the end of spectrum + some noise. It's the analog vco mojo :) far more important that a wave shape.
Gibbs ripples from ADC ?

Post

itoa wrote:Yes, the most interesting phenomenon occurs near reset point. I think the comparator has some hysteresis and noise. I observed my MS20 ,besides of "dancing reset point", it's saw has a small spike near the reset point (about 0.3 ms long). This spike is quite irregular over time. This results in a series of small combs at the end of spectrum + some noise. It's the analog vco mojo :) far more important that a wave shape.
Yeah, my hypothesis for years has been that the much of the "character" of a VCO has to do with uncertainty in reset timing (and I have probably at least half a dozen different versions of models that try to approximate that) and there can be all kinds of oddities, but as long as the uncertainty averages out over time you mostly get a bit of phase-drift so it doesn't really cause as many actual tracking problems as integration issues would.

One funny thing I've noticed though: BLEP oscillators (or similar, but BLEPs are easy way to model this stuff) with noisy reset levels (ie "dancing reset points") are great for show-casing the limitations of lossy compression like mp3.. it's rather easy to synthesize stuff that sounds great in a .WAV and cause horrible high-freq problems once you throw compression on it. ;)

Anyway, with regards to DC after integrating an impulse train: if you have an unipolar impulse-train, then you might also want to integrate (opposite polarity) DC between impulses, such that it averages out to zero in theory (essentially as a VCO would, with the impulses being the reset pulses). You still need the integration to be a bit leaky if you don't trigger the impulses from the integrated value (like in a BLEP osc), but if you just integrate pure impulses, you'll run into problems with modulation as the DC level keeps changing depending on impulse timing.. and probably need a two-pole high-pass (eg butterworth) or something similar to deal with it reasonably without losing low-frequencies completely.

Post

2DaT wrote:
itoa wrote:Yes, the most interesting phenomenon occurs near reset point. I think the comparator has some hysteresis and noise. I observed my MS20 ,besides of "dancing reset point", it's saw has a small spike near the reset point (about 0.3 ms long). This spike is quite irregular over time. This results in a series of small combs at the end of spectrum + some noise. It's the analog vco mojo :) far more important that a wave shape.
Gibbs ripples from ADC ?
I suspect this too. Dependent on the converter, there's plenty of artefarcts even when recording a digital sawtooth.

Richard
Synapse Audio Software - www.synapse-audio.com

Post

mystran wrote: One funny thing I've noticed though: BLEP oscillators (or similar, but BLEPs are easy way to model this stuff) with noisy reset levels (ie "dancing reset points") are great for show-casing the limitations of lossy compression like mp3.. it's rather easy to synthesize stuff that sounds great in a .WAV and cause horrible high-freq problems once you throw compression on it. ;)
This is interesting. Was the modulation signal a white/pink noise? Have you tried to use lower frequency drift? Like some harmonics from power supply or lorenz sampled at transition point? I see in most cases the spectrum tail is flapping rather slowly.. (0.1-0.5hz)

Nevertheless this effect can be scaled. I gonna do some measurements.
giq

Post

The waveform you linked is two or more highpass filters in series. Couldn't possibly be more simple.

Here is an identical waveform created with Xhip:

Image

All I've done is play a very low note. Standard mixer highpass, then output highpass.

This is a common topic discussed in threads about "analog" waveforms. This is merely blind leading the blind. Nothing about this waveform is analog at all.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post Reply

Return to “DSP and Plugin Development”