Author |
Message |
Axiom
Joined: Feb 19, 2005 Posts: 288 Location: Italy
Audio files: 4
G2 patch files: 28
|
Posted: Thu Sep 28, 2006 3:29 pm Post subject:
Analog modeling techniques |
 |
|
Hi folks,
lately i'm studying analog modeling, trying to figure out the behaviour of analogue synthesizers and trying to reproduce them in the digital domain.
I'm trying different environments such as Synthedit, Synthmaker, Reaktor and G2X.
Actually i'm using some tricks... some of them are well known on that board and i wish to thank you all for knowledge sharing
I would like to discuss with you about those techniques and trying to develop new ones. Here's what i've used so far:
- Ciruitry noise: Seems that noise generated by analog circuitations interact with all components giving well known jitter on oscillators and more "instability" to filters. I've accomplished that injecting white noise, with very low amplitude, into oscillators and filters frequency. For oscillators i've modified this technique after saw my doepfer oscillator into a frequency analyzer. The frequency spectrum seems "live" compared to digital one. I've achived a better emulation injectin noise into oscillator phase-mod input. It sounds more live and clean compared to frequency injection.
- Waveoform hi-end cleaning: Even if analog devices seems to have something like "fixed" content into high end (seen with a spectrum analyzer.. seems there are a costant content starting from 6Khz), i've choose to cut down high-end as a lame way to reduce digital aliasing. Just add an hipassed copy of original signal to itself. This will also modify your waveforms, making them "imperfect".
- Bass boost: Mixing a quiet lowpassed signal after the filter will add a little warm to the sound.
- Soft Clipping: Adding a soft clipper after the VCA will smooth loud signals, giving warmth to the sound. I've coded a synthedit module based on an algorithm found on musicdsp.org. It's cool since it goes from a smooth soft clipping to harsh distortion.
Code: |
k = 2*amount/(1-amount);
if (amount != 0.0f)
{
result = (1+k)*input1/(1+k*abs(input1));
}
else {
result = input1;
}
if (result > 1.0f || result < -1.0f) {
result = (result*2)/3;
}
|
- Rob H. Warmth Trick: a couple of tuned allpass in series that will shift the signal in order to delete some high frequencies. The overall sound will be more warm.
I've not implemented yet bandlimited oscillators (BLIT, BLEP, minBLEP) since i'm too lame on c++ programming.. but i've tested some 3rd part modules and they sounds very good to me... their spectrum is very close to my doepfer one. I've also read about intermodulation distortion on this forum, if i remember correctly. This is another nice thing to study and understand
Now... what kind of technique do you use to make your digital designs sounding more "analoguish"?
Cheers,
Luca _________________
 |
|
Back to top
|
|
 |
Tusker

Joined: Feb 03, 2005 Posts: 110 Location: Texas
|
Posted: Sat Sep 30, 2006 8:12 pm Post subject:
|
 |
|
Thanks for your post Luca,
I would add a few relating to pitch and filter.
Instead of detuning the oscillators evenly across the note spectrum, I detune them more radically on the lower notes and less so, on the upper. This allows more of a pleasing chorusing on low notes without speeding up the beating to annoying levels on the high notes. I find it opens up the sound.
I do inject lowpass filtered noise into the pitch modulation inputs of oscillators. I also sometimes do a pitch random on key attack (depends on the synth), just to give successive note-ons different characteristics.
For the filter, I slightly increase resonance with note #. This seems to be a Moog charctereristic, but I find it works very well for 12db/octave Obie sounds as well. If I have mod routings to spare I also modulate cutoff with a random # upon key on, just to add slop.
For the filter, I sometimes add an overdriven version of the signal pre-filter, and possible additional waveshaping in the middle or end of the filter process. I sometimes LPF the signal that is going into the wavehaper, so that focus is on low order harmonics.
In a general sense, I find that adding slop in one or two dimensions (pitch or filter for example) goes a long way. I don't have to make it super-complex. I'd like to hear about any more techniques people are using.
Jerry |
|
Back to top
|
|
 |
|