Why are almost all digital synthesis techniques based on analog approximations?
- KVRAF
- 12615 posts since 7 Dec, 2004
to just place the poles you literally just place the poles. just convert from one to the other, presto you're done.
the reason most systems use a model of some sort is because it provides a logical method for the filter design process to follow. 99.9999% of all pole configurations produce out of control crap. the one 1/inf pole configuration that is stable still sounds like crap and doesn't really do anything particularly useful.
the 1/inf^inf configurations you get out of the models you can find in various papers actually do something useful.
the reason most systems use a model of some sort is because it provides a logical method for the filter design process to follow. 99.9999% of all pole configurations produce out of control crap. the one 1/inf pole configuration that is stable still sounds like crap and doesn't really do anything particularly useful.
the 1/inf^inf configurations you get out of the models you can find in various papers actually do something useful.
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.
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.
- KVRAF
- 12615 posts since 7 Dec, 2004
it's actually through-zero FM by the differentiated input. that's possible in electronics also, it's just way less practical.zerocrossing wrote:FM is more or less the same kind of thing. Can (and is) done with analog, but Yamaha just figured out a way to do it digitally. There's nothing "digital" about FM itself, it's just a more convenient way of doing it.
for example to get real "dx- style fm" from a software synthesizer you need to use the method i described.
fm = modify the frequency
through-zero fm = allow negative frequencies
differentiated = a square becomes two narrow pulses, cosine becomes sine
-1,-1,1,1 = 0,0,2,0 (take the difference = differentiation)
the way it's done in the dx- synthesizers, the frequency is never touched.
rather than differentiating the input modulation and then adding that to the frequency, the frequency is integrated and the input modulation is added to the integral.
phase += frequency
output = waveform_table[phase + modulation]
that's the same as
phase += frequency + differentiation(modulation)
output = waveform_table[phase]
simple differentiation is just:
difference = modulation - last_modulation
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.
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.
-
tony tony chopper tony tony chopper https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=3103
- KVRAF
- 3561 posts since 20 Jun, 2002
not IFFT, but yes, and you can draw your own filter & resonance shapesThose both look quite interesting are they just directly setting the spectrum and doing short time IFFTs?
DOLPH WILL PWNZ0R J00r LAWZ!!!!
-
- KVRist
- Topic Starter
- 189 posts since 18 May, 2009 from California
So it's just summing up 100's of sines? Wouldn't that be incredibly slow?tony tony chopper wrote:not IFFT, but yes, and you can draw your own filter & resonance shapesThose both look quite interesting are they just directly setting the spectrum and doing short time IFFTs?
- KVRAF
- 12615 posts since 7 Dec, 2004
depends what sort of sines you're dealing with.
yes, though.
yes, though.
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.
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.
-
tony tony chopper tony tony chopper https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=3103
- KVRAF
- 3561 posts since 20 Jun, 2002
no, try itSo it's just summing up 100's of sines? Wouldn't that be incredibly slow?
considering that it's naturally alias-free, it's quite comparable to algos for alias-free waveforms in the time domain.
DOLPH WILL PWNZ0R J00r LAWZ!!!!
-
- KVRist
- Topic Starter
- 189 posts since 18 May, 2009 from California
Will do, I always meant to try it as it would be a super flexible way of generating just about any sound with zero aliasing but I always assumed it would be way too CPU heavy.tony tony chopper wrote:no, try itSo it's just summing up 100's of sines? Wouldn't that be incredibly slow?
considering that it's naturally alias-free, it's quite comparable to algos for alias-free waveforms in the time domain.
*Creates new project folder: FourierSynth*
- KVRAF
- 8476 posts since 12 Feb, 2006 from Helsinki, Finland
Converting (eg using BLT) a continuous time prototype into a z-domain filter just happens to be the easiest way to get sensible filters. The result of placing poles/zeroes on s-plane is kinda more easily predictable than the result of doing the same on z-plane. It's surprisingly messy to place z-plane poles/zeroes in a way that gets you desired gains at multiple frequencies (eg DC, cutoff, Nyquist or whatever else you want) where as it's generally pretty simple in s-plane.GameSmith wrote:Let me ask a slightly more specific question. Is anyone aware of purely discrete time method of designing (placing z-domain poles) a digital filter?
All the usual examples (eg RBJ biquads) involve converting continuous time versions.
There's a bunch of paper on alternatives, but you should be warned that it gets "quite messy quite fast" as far as the math goes.
- KVRAF
- 8476 posts since 12 Feb, 2006 from Helsinki, Finland
Obviously with the caveat that you need a reasonably fast sine-generation method; actually calling sin() a couple of hundred times would be incredibly slow...tony tony chopper wrote:no, try itSo it's just summing up 100's of sines? Wouldn't that be incredibly slow?
-
tony tony chopper tony tony chopper https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=3103
- KVRAF
- 3561 posts since 20 Jun, 2002
yes, the algo that computes a sine based on its previous value & a couple of coefficients. Can't remember the name (or if it has any) but it's popular, & it's just a couple of additions. Plus lots of asm & other tricks.
DOLPH WILL PWNZ0R J00r LAWZ!!!!
-
- KVRAF
- 1607 posts since 12 Apr, 2002
In the end what we hear is a continuous waveform coming out of analog speakers. Any discrete time signal is converted to continuous time by a DAC, which is based on a special conversion formula. This formula in turn works under a number of assumptions which don't necessarily hold etc. So, discrete-time is simply foreign to the nature of the sound. No wonder, it's often easier to design "artifact-less" algorithms in continuous time and then just try to eliminate the artifacts arising during the conversion.
Regards,
{Z}
Regards,
{Z}
-
- KVRist
- 111 posts since 22 Jul, 2010
Um, FM comes to mind as an example of what? A non-subtractive synthesis technique best/more easily implemented in the digital domain?Does anyone know of any purely digital techniques for oscillators or filters that aren't based on trying to emulate an analog circuit? FM is the only one that comes to mind but there must be others
If so, there are heaps of other techniques:
-Wavetable synthesis
-Bezier synthesis
-Wave Terrain synthesis
-Spiral synthesis
-Additive synthesis
-Phase Distortion synthesis
-Granular synthesis
-Z-Plane Synthesis: This is possibly where your question about filters comes in. Conventional synthesizer filters consist of a single section that allows you attenuate a waveform's harmonic content above a single frequency with an optional resonant peak at that frequency. In contrast, a Z-Plane filter consists of multiple sections, each (like a band of parametric EQ) allowing independent control of frequency, bandwidth and degree of peak or notch. So, Z-Plane Filters can model any resonant characteristic; whether that of a tube, an acoustic instrument body, the human vocal tract or stuff that doesn't exist in nature. Then of course Z-Plane synthesis allows you to smoothly interpolate (morph) between resonant models, whether in response to velocity, pressure or whatever, so Z-Plane filters enable you dynamically transform sounds in strange ways
-Segment wiggle synthesis (you won't find much online about this one; it's a method I came up with for my next synth
- KVRAF
- 12615 posts since 7 Dec, 2004
what about bi-planar tiled scanning synthesis?
actually although these "methods" are all arguably "best" implemented in software they're all going to have properties of an analog system. we're converting from some kind of input (the method) to an analog output (audio). there is absolutely no way we can avoid being analog at some point.
well, without putting electrodes directly into our brains and shocking ourselves. yet it would still be analog.
darn reality and all that.
actually although these "methods" are all arguably "best" implemented in software they're all going to have properties of an analog system. we're converting from some kind of input (the method) to an analog output (audio). there is absolutely no way we can avoid being analog at some point.
well, without putting electrodes directly into our brains and shocking ourselves. yet it would still be analog.
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.
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.
-
Music Engineer Music Engineer https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=15959
- KVRAF
- 4379 posts since 8 Mar, 2004 from Berlin, Germany
true. semi-recently, i dabbled with that stuff myself. i drafted a little papaer about how to prescribe the gain at 5 frequencies:mystran wrote:There's a bunch of paper on alternatives, but you should be warned that it gets "quite messy quite fast" as far as the math goes.GameSmith wrote:Let me ask a slightly more specific question. Is anyone aware of purely discrete time method of designing (placing z-domain poles) a digital filter?
All the usual examples (eg RBJ biquads) involve converting continuous time versions.
http://www.rs-met.com/documents/dsp/Dig ... ements.pdf
(the paper is still in draft status). my goal was actually to find some general way to transform an analog biquad into a digital one with prescribed nyquist-frequency gain (similar to the solution by orfanidis for the peaking filter case). and i thought, the procedure above might be useful for that purpose. later, i figured, it would be better to prescribe the gain at 3 frequencies and at one of them additionally prescribe two derivatives. i even got it to work in many cases, but for some settings, there doesn't seem to be a solution and that's where you have to loosen the constraints in a controlled way and that's where it becomes quite messy from an algorithmic point of view (and i eventually moved my erratic attention to yet something else).
-
- KVRist
- 111 posts since 22 Jul, 2010
Huh?what about bi-planar tiled scanning synthesis?
