About

A discussion of topics related to audio DSP, with an emphasis on useful and practical information.

34 Responses to About

  1. Devon says:

    This blog has been so helpful, I will be patiently awaiting your next post!

  2. Dallas Hodgson says:

    Here here, I second that. It would also be great to read some articles related to amp simulation, your area of specialty!

    • Nigel Redmon says:

      Thanks for stopping by, Dallas—I’ll put your request on my to-do list 😉

      • Sinan says:

        Hello Nigel,I am planning to imlpement a Biquad IIR filter on an FPGA platform. Right now, I’m searching for a simple yet useful Audio Application for the biquad filter. I would like to ask for your suggestions.Thanks,Marika

        • Nigel Redmon says:

          As for applications, I suggest that searching the internet will give a better answer than I can in short space. However, I do suggest that you pay close attention to your math precision—the standard biquads can be very sensitive to coefficient rounding and math precision, especially when set to lower frequencies.

  3. Aristotel says:

    Great blog! Thanks!

  4. Aaron Oxford says:

    Ear Level Engineering rocks! It’s the best link between the maths of DSP and implementable DSP algorithms/concepts I’ve ever found!

    • Aaron Oxford says:

      PS After all those great articles on dithering and resampling, can you do a post on bandlimited oscillators? 😉

  5. Salah says:

    Thanks for sharing your knowledge and providing such helpful and easy to understand examples.
    I found your dithering video very helpful and understandable. I was wondering if you’re going to post another video on the applications of dithering please?
    By the way, is dithering done in data acquisition devices? Or its the natural, random noise on the signal that somehow makes it looks like its dithered, specially when the input signal is below the resolution of the device?
    Once again, thanks a lot for sharing and posting amazing stuffs 😉

  6. Awesome professional content and great widgets! Thank you!

    I found this stuff useful in my servo motor drive project where filters are used to control vibration and noise.

    Same signal processing stuff I learned in university signal processing courses but the implementations here help saving a lot of time when utilizing those theories.

  7. Josh Marler says:

    I am an absolute super fan of this blog. The wave table oscillator articles made a huge impact on my understanding of DSP for audio plugin development. They gave me a quality building block to start off with in my first forays into plugin development with the excellent JUCE framework.

    Nigel are their any plans for any more articles in the loop ?

    I must check this blog three time a week to see if any new gems have been posted.

    Cheers

    Josh

    • Nigel Redmon says:

      So sorry for the lack of development here in 2015! Product development, on top of my regular job, has my spare time tied up until it’s ready to ship. I have a really cool (and important, I think) video on sampling theory that presents it from a different viewpoint than I’ve seen before, but I couldn’t quite finish it before getting tied up. Also, I’ve been thinking lately to post some shorter articles in the meantime on points of interest, while I can’t take on the big ones.

      I’ve worked just a bit with JUCE in the past, which is awesome, and a bit more (the dither plug-in, and current projects) with wdl-ol…

  8. Persian Byte says:

    Thanx for the great and helpful information. been looking for some stuff about filters and got them here. Very clear, well-written and informative posts.

    Thanx god for having Internet, and more Important , people like you who share their knowledge with others.

    Keep it up man.

  9. Felipe says:

    Nigel,

    I was reading your wavetable articles because i want to build an LFO for a synth i’m building for the teensy microcontroller. I’m very new to dsp so i was thinking on what approach i could take or a book to start (a very basic one).

    Thanks

    • Nigel Redmon says:

      I’m not the best person to ask, as I really haven’t read a synth-design book in decades. But Will Pirkle’s book are probably the best place to start (I have his synth book in electronic form, but have lacked time to read it).

      LFOs are pretty easy because, in general, you don’t have to consider aliasing. Essentially, you have way more than enough time resolution at audio rates for low frequency oscillators, so you can just code “naive” oscillators (sawtooths that count up until reset, squares that toggle between max and min, etc.).

  10. Dom Smat says:

    Thank you Nigel for providing an incredibly useful resource! I’m just starting out with C++ and plugin design, and your writings have been very helpful.

  11. Susan Clarke-Romero says:

    Hi Nigel! Just found and read your article on dithering. Huge help in understanding why I’m doing this. I’m new to audio recording and am simply following instructions for saving files intended for internet broadcast, or in my case, intranet.

    Can you suggest a book or web site that is a beginners spot to learn about digital audio? Your dithering article made sense to me because of you hand-waving analogy, so you can imaging my level of knowledge!

    Thank you!

    • Nigel Redmon says:

      Since I don’t teach, I haven’t looked at beginner books for a long time. Also, it depends on the depth (learning about digital audio as a user, as curious about the technology, as wanting to develop products). But, an excellent free book that is free to browse or download is http://www.dspguide.com.

  12. Michael says:

    Hi.
    Your Biquad calculator is very helpful.
    Thank you!

  13. Skyler says:

    Hey, I am really interested in the Biquad calculator specifically the highshelf filter. Where could I find the equation for this?

    Thanks,

  14. Chandler Lau says:

    So cool!

  15. GuoGuo says:

    Hi Nigel!
    Your Biquad calculator is very helpful.
    Do you have real-time noise reduction embedded source code? Similar LogMMSE, but less computational complexity.
    Thank you!

  16. Karl says:

    Been reading through your great wavetable series of articles. Thanks for the interesting read. A question regarding code:

    There are quite a few attachments of various codes in various versions scattered around the articles. Is there a single place, e.g. a repo, where we can access the most recent version of the wavetable code?

    • Nigel Redmon says:

      Sorry to say, I’m not that organized. I really need a new home page that has better access to various topics. However, you can scroll down to Categories on the right side, and click Source Code, that should make it easier to find the latest. Also, Widgets is a handy category, which you can also get to with the Widgets tab above.

  17. Alex says:

    Dear Nigel,

    Thank you for your efforts. This helps a lot in learning and understanding how filters work. But unfortunately, I ran into it. with such a filter, I don’t know how to implement it. Could you tell me where I can read about it or do you know how it is implemented? Thanks!

    https://www.kvraudio.com/forum/viewtopic.php?f=33&t=571675

  18. Tom Chen says:

    Hi Nigel,
    Thanks for the useful tool for the digital filter application. From “The bilinear z transform” section, the s domain transfer function of a second order lowpass filter is provided for the example. Since there is difficult to find the peak filter of s domain transfer function, could you provide the s domain transfer function of peak filter type or how to change the forms from the lowpass filter example.

    Many thanks!

    • Nigel Redmon says:

      The definition of a Butterworth lowpass and highpass are clear, shelving and peaking filters can be different. For my biquad source code and calculators, I use Udo Zölzer’s definition, which is H(s) = (s^2 + s*(V/Q) + 1) / (s^2 + s/Q + 1) for boost, H(s) = (s^2 + s/Q + 1) / (s^2 + s*(V/Q) + 1) for cut.

Leave a Reply to Nigel Redmon Cancel reply

Your email address will not be published. Required fields are marked *