[music-dsp] Hi list -- some questions
rempelm at nethere.net
Mon May 12 12:20:04 EDT 2003
Try filtering odd order harmonics a bit.
The first and third contribute to harshness and fullness, while higher
harmonics contribute to brassyness.
The second contributes warmth or covering.
I dont remember what the saw's harmonic distribution looks like, but the
character of a given sound is imparted by harmonic content.
The original saw may have been warmed up by putting it through a slightly
distorting tube amp. If that is the case, the warmth comes from this kind of
BTW does anyone know of a filtering algorithm that has this kind of tube
I am very interested in a harmonic filtering algorithm. I can see building
one by detecting the fundumental and applying manually calculated FIR
filters but I was wondering if there was an IIR or other variant that would
save me the work.
From: music-dsp-admin at aulos.calarts.edu
[mailto:music-dsp-admin at aulos.calarts.edu]On Behalf Of nickt
Sent: Monday, May 12, 2003 10:09 AM
To: music-dsp at aulos.calarts.edu
Subject: Re: [music-dsp] Hi list -- some questions
On Mon, 2003-05-12 at 11:59, Nigel Redmon wrote:
> Keep in mind that a capacitor is just a basic component, and it's
> depends on how it's is being used. For instance, charging a capacitor
> from a constant voltage source and a constant current source are two
> different shapes.
I'm pretty dumb with EE stuff. What I had read is that an oscillator
circuit uses a capacitor to shape the waveform. A sawtooth juices up the
capacitor, it makes a sawtooth.I *think* it is an integrator, it keeps
adding up all the voltages. At the end of the cycle, the capacitor is
shunted, and it discharges the juice out and than the process starts
again. A pulse wave is formed when you juice the capacitor backwards,
causing it to go negative ( I think...)
Now the capacitor has some shaping effect on the sawtooth. That is what
I am trying to discover. I have all sorts of sawtooth generator
algorithms (band limited) but they all produce ideal waveforms. A real
synthesizer does not ever really produce perfect waveforms - they are
bent or smoothed, or they do not always start at the same bias level. A
perfect sawtooth generator sounds to acidified imho. It needs some
loving smoothness to make it sound warmer. This is caused by imperfect
capacitor and unloading from the circuit. The capacitor itself has an
impact on the waveform. It is a filter but how it works is mysterious to
I am trying out the simple Low pass equation on it, and even though I
have not looked at the waveform yet, it is sounding smoother :)
For c I just fudge some weird random number every period, and it works
Now I think I can go back to using the BLIT-SWS, but if I could just
figure out how to make a leaky integrator, I would have a perfect
real-time generator. Also, I need to figure out how to normalize the
amplitude so it is always consistent.
> Also, there's no aliasing problem with analog circuits, so it doesn't
> necessarily follow that converting an analog process to discrete time
> will sound good (especially for generators such as oscillators).
I only know of the z transform (bilinear) but I only know how to use it
to convert a la place transform filter function. I suppose if I could, I
could convert the entire circuit into a laplace transform and than
bilinear it, but how the hell I'd use it from there I don't know (I'd
make a filter with it...).
Now if I understand you can use a FIR filter to convolve any impulse
with it. So if I modelled the impulse of the circuit, could a FIR filter
faithfully reproduce that circuit?
In theory I should be able to model my circuit using blips (impulse
train) voltages at any instant, and than jitter it to the sample instant
so it doesn't alias. Stilsons says it can be done, but I have to re-read
the paper many times to understand it. I have no EE background and
basically taught myself all this stuff because i want to build an analog
synhesizer on the computer (I am too poor to afford them :( )
My synthesizers sound pretty good but it still needs some more tender
warmness to it. I am pretty sure it has something to do with capacitor
smoothing of the waveforms, and not just a filter. I took the moog vcf
equation and bilinear it and it sounds really really good like a real
moog. I didn't understand the paper what he was getting at in his
z-transform, I didn't understand his formulas (he has z in it, but there
are like 30 z's in the paper, so which one does he mean? The h(z)
transform, or zero, or whatever). But I directly took the h(s) transform
and with some hacking it works really well with bilinear to an IIR
filter. The nice thing is with this simple 1 pole I can make any pole
moog filter I want, I have 2, 3, 4, and I can make 6,7 8 or whatever by
cascading them all togethor.As a bonus I modelled the high pass from the
z transform, so I can also make bandpass by cascasing a low/high moog
togethor (wide bandpass)
The other filters I used were just Butterworths and I fudged them to
have resonance which sounds ok but kind of raspy and not real warm. I
had some strange problems with high order filters not working correctly
at low cutoffs (they'd blow up!). So I fudged it by modelling 2nd order
sections and cascading them, and it works! The main problem with the
butterworth is that the 1st pole is always real, and I have not found a
way to get a 1pole butterworth to resonate. Thus any odd ordered
butterworth has some problems with resonance, so I hacked it so that the
odd ordered 1 pole has no resonance, and the cascaded sections do. So
than resonance works, although it has some strange effects I don't
I can sucessfuly model up to 3 poles with a filter using z-transform.
After that they all blow up and I have to resort to cascading second
order sections together. But anyways, the math gets pretty hairy beyond
3 sections so it's much easier to do a 1 or 2 pole sections and cascade
them to get higher order sections from them. I *think* they still will
make a higher order filter. It seems to work, but I have no idea if they
are ideally doing what I think they are doing. It sounds like a 4 pole
filter to me anyways.
Ok well thanks for the help all.
dupswapdrop -- the music-dsp mailing list and website: subscription info,
FAQ, source code archive, list archive, book reviews, dsp links
More information about the music-dsp