It doesn't happen every cycle, it happens every sample. The hint is aimed at people with little circuit experience to start breaking it down in an approachable way to gain more insight into how it functions.JCJR wrote:Apologies belaboring a "minor" point-- Perhaps plotting with different-valued resistors would get close enough, but this wild "effective resistance" swing happens during every cycle, and so the simple plotting of different linear frequency responses for different static resistance substitutions, might not be very close at all to reality. Dunno how dramatic would be the variance, having never tried solving it.andy-cytomic wrote:The hint here is to realise that the diode is just a voltage controlled resistor, when there is a small voltage across them they are a very large resistor, when the voltage over them is large they are a small valued resistor. So try replacing the diode with various values of resistor and plot what happens to the frequency response.
Diode clipper simulation instability
- KVRAF
- 2636 posts since 3 Dec, 2008
The Glue, The Drop - www.cytomic.com
-
- KVRAF
- 3080 posts since 17 Apr, 2005 from S.E. TN
A I said, DURING every cycle.andy-cytomic wrote:It doesn't happen every cycle, it happens every sample. The hint is aimed at people with little circuit experience to start breaking it down in an approachable way to gain more insight into how it functions.JCJR wrote:Apologies belaboring a "minor" point-- Perhaps plotting with different-valued resistors would get close enough, but this wild "effective resistance" swing happens during every cycle, and so the simple plotting of different linear frequency responses for different static resistance substitutions, might not be very close at all to reality. Dunno how dramatic would be the variance, having never tried solving it.andy-cytomic wrote:The hint here is to realise that the diode is just a voltage controlled resistor, when there is a small voltage across them they are a very large resistor, when the voltage over them is large they are a small valued resistor. So try replacing the diode with various values of resistor and plot what happens to the frequency response.
- KVRAF
- 12554 posts since 7 Dec, 2004
Why wouldn't one use a tried and tested solution for this (generating the table) such as what would be generated by an existing spice implementation?
Sure, you can write your own solutions too if you like putting in all the extra effort but unless you're actually going to have that code used dynamically (actually changing current into the diodes, for example as in the steiner sallen-key filter implementation) it is hard to justify based upon the results.
In the case of even the steiner sallen-key filter or various diode ladders the audible difference in timbre due to these effects is minor when compared to a system tweaked to emulate them.
Sure, you can write your own solutions too if you like putting in all the extra effort but unless you're actually going to have that code used dynamically (actually changing current into the diodes, for example as in the steiner sallen-key filter implementation) it is hard to justify based upon the results.
In the case of even the steiner sallen-key filter or various diode ladders the audible difference in timbre due to these effects is minor when compared to a system tweaked to emulate them.
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
- 2636 posts since 3 Dec, 2008
aciddose wrote:Why wouldn't one use a tried and tested solution for this (generating the table) such as what would be generated by an existing spice implementation?
Sure, you can write your own solutions too if you like putting in all the extra effort but unless you're actually going to have that code used dynamically (actually changing current into the diodes, for example as in the steiner sallen-key filter implementation) it is hard to justify based upon the results.
In the case of even the steiner sallen-key filter or various diode ladders the audible difference in timbre due to these effects is minor when compared to a system tweaked to emulate them.
Why implement anything? Most things are already done to death in music dsp, but there are also (twisted ?) people like myself that actually think it is fun to solve this stuff even if it never gets used in a product.
Last edited by andy-cytomic on Tue Oct 21, 2014 5:57 am, edited 1 time in total.
The Glue, The Drop - www.cytomic.com
- KVRAF
- 12554 posts since 7 Dec, 2004
Well that is true. I'm speaking of course though from the point of view of what is practical for real-time audio. There will always be room also for experimental physical simulations and these might even see use in generating samples or offline processing of audio tracks.
In terms of real-time audio however we barely have the power to do this sort of thing at all, even these days with modern equipment. Minimizing the amount of processing power required is absolutely essential in order to provide for adequate anti-aliasing and performance.
For example I use a diode clipper based upon a table in my filter implementations rather than a limit/hard-clip. This is important due to the variation in dynamics you get with highpass/diode clamp on feedback vs. a simple limit() function. Given SSE implementation of the filter core the diode is twice as expensive as the filter itself, with table look-up and linear interpolation alone!
It is possible to approximate the diode saturation characteristic but very difficult to achieve the same linearity below the saturation threshold combined with efficiency given any other method. The very high linearity of a diode clamp is critical in order to get the low harmonic content of a lowpass filter oscillating below unity feedback.
Efficiency is critical as I am trying to run 64 or more voices at once on a single core.
https://soundcloud.com/aciddose/saww
Even in 2010 this was unimaginable. 1/2 of the way to analog at this point. We only need CPUs to be 100x as powerful
In terms of real-time audio however we barely have the power to do this sort of thing at all, even these days with modern equipment. Minimizing the amount of processing power required is absolutely essential in order to provide for adequate anti-aliasing and performance.
For example I use a diode clipper based upon a table in my filter implementations rather than a limit/hard-clip. This is important due to the variation in dynamics you get with highpass/diode clamp on feedback vs. a simple limit() function. Given SSE implementation of the filter core the diode is twice as expensive as the filter itself, with table look-up and linear interpolation alone!
It is possible to approximate the diode saturation characteristic but very difficult to achieve the same linearity below the saturation threshold combined with efficiency given any other method. The very high linearity of a diode clamp is critical in order to get the low harmonic content of a lowpass filter oscillating below unity feedback.
Efficiency is critical as I am trying to run 64 or more voices at once on a single core.
https://soundcloud.com/aciddose/saww
Even in 2010 this was unimaginable. 1/2 of the way to analog at this point. We only need CPUs to be 100x as powerful
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.