Skip navigation
1662 Views 4 Replies Latest reply: Apr 29, 2011 12:36 PM by audioartillery RSS
MusicalCircuitry Just Startin' 29 posts since
Nov 15, 2010
Currently Being Moderated

Apr 24, 2011 1:37 AM

New ToneCore DSP Effect: DistortKit

I've been enjoying working with the ToneCore DSP, and finally have a finished effect. I've called it DistortKit, since it implements a bunch of different distortion features. It includes a tweakable distortion algorithm, soft and hard fuzz, half and partial rectification, level control, and bass and treble EQ.

 

If you're reading this, you're likely a developer or at least interested in it, so I'll list some of the techniques I've used:

 

  • Oversampling to cut down on aliasing and other noise
  • Low pass IIR filters to accomplish the upsampling and downsampling
  • IIR filters are implemented with two cascaded biquads to achieve a 4th order filter
  • TPDF dithering to reduce distortion as a result of re-quantization
  • LFSR random number generator for the dithering
  • Shelving stave variable filter
  • Use of mixed number (MN) format to represent real numbers in range -128.0 ≤ MN < 128.0 (which constitutes re-quantization, creating the need for dithering)
  • 24 bit signed fraction/integer division

 

I've created a SourceForge project for this and released the source code. You can browse the SVN repository:

 

http://tonecore-dsp-fx.svn.sourceforge.net/viewvc/tonecore-dsp-fx/DistortKit/

 

If you have a SVN client, you can grab the entire source easily:

 

svn co https://tonecore-dsp-fx.svn.sourceforge.net/svnroot/tonecore-dsp-fx tonecore-dsp-fx

 

At some point I'll create a proper website for the project, including more documentation, a module faceplate, etc, but for now you can look over the source and try out the .cld file yourself. The source is fairly well commented, both for my own benefit and to help out anyone else who'd like to take a stab at this. The controls are documented in the code, but if you just want to try out the .cld, here's what the knobs do:

 

Knob_1: Output_Level   (overall output level)
Knob_2: Bass_Eq_Gain   (bass EQ control)
Knob_3: Distort_K      (controls amount of distortion)
Knob_4: Fuzz_Threshold (controls gain for fuzz)
Knob_5: Treb_Eq_Gain   (treble EQ control)
Knob_6: Rectify_A      (controls extent of partial rectification)

Switch_1:
  0: Fuzz off
  1: Soft fuzz
  2: Hard fuzz

Switch_2:
  0: Rectification off
  1: Half rectification
  2: Partial rectification

 

The distortion algorithms themselves won't clip the 24 bit result and are well behaved. You can induce some unwanted clipping though, if you max out the distortion and then apply enough positive EQ. If this happens, I have indicated it by activating the red LED. As has been documented elsewhere in the forums here, the default code in the MCU disables the red LED, so this will seem quite faint. You can fix this by commenting out a line in the MCU code, in main.c. This is explained better in the forum archives, but the line you need to disable is:

 

LED_RED_PIN = 0;                  /*We are not currently controlling the RED LED via the DSP, it is been used only when the battery is low*/

 

Feedback on the effect itself and the source are welcome. If time permits, I'd like to try implementing another effect or two, we'll see how that goes.

 

Enjoy!

  • audioartillery Just Startin' 80 posts since
    Apr 18, 2008
    Currently Being Moderated
    Apr 25, 2011 8:19 PM (in response to MusicalCircuitry)
    Re: New ToneCore DSP Effect: DistortKit

    It's good to see some people getting code out there.  I've got a couple interesting effects but haven't had time to polish them up to this level.

     

    A demo recording would be awesome.  I think if enough interesting effects come out of this platform it might jumpstart things a bit (or convince Line6 to release another devkit down the road).

More Like This

  • Retrieving data ...

Bookmarked By (0)