Welcome

Welcome to Teragon Audio, provider of audio plugins, utilities, and guides for those looking to develop their own audio software. This is the development blog, if you are looking for the official website please visit http://www.teragonaudio.com.
Showing posts with label notnotchfilter. Show all posts
Showing posts with label notnotchfilter. Show all posts

Release day!

As promised, I finally got around to polishing up and releasing all the plugins I've been working on during the holidays. Specifically, ChaosChimp, NotNotchFilter, and ExtraNotes all got updates pushed. I'm holding back on HiLoFilter because I'm still not happy about the clicking noise which happens around the dead zone.

Anyways, here are some screenshots from the final versions of all plugins. Click on the thumbnails to see a full-sized screenshot:

BeatCounter 2.1

ChaosChimp 1.0.0

ExtraNotes 3.0.0 (text editor view)

ExtraNotes 3.0.0 (image editor view)

NotNotchFilter 2.0.0

Death to boilerplate

I made some good progress on ExtraNotes yesterday, it can now save the note correctly and serialize the image data to a base64-encoded string. It's pretty much ready to be released, but when I was testing it I realized what a pain in the ass it's going to be to make it compatible with all hosts. Text input in VSTs is always somewhat tricky, since many hosts like to intercept the keystrokes for themselves. Anyways, I'm just going to test under the ones that I already have, and wait for the bug reports to trickle in. :)

In doing the XML serialization work, I had the idea to make a common base class for the Teragon plugins, since they all have a bunch of identical boilerplate code in them. This wasn't such a bother for the parameter handling, since all of those functions were simple one-liners, but the serialization routine was starting to get rather complex and it pained me to keep copy-pasting it between plugins. So, I introduced a new abstract base class which extends AudioProcessor and takes care of all the PluginParameters related stuff. Doing this eliminates a ton of boilerplate code from all the plugins, making them much simpler to maintain and understand.

Also, today I fixed a nasty bug in NotNotchFilter where a small (but audible) click could be heard when moving from bypass to filter states. The reason for this is that the first "tick" of the knob ended up being a few hundred Hertz, which is quite an extreme difference to apply suddenly to a filter. Exponential scaling didn't work very well in practice for NotNotchFilter, because the frequency range goes from 0-20kHz, so the first half of the knob's motion would only cover ~10Hz, and the second half would race through all remaining frequencies.

So today, I busted open the venerable yet forgotten "Grapher" program which ships with Mac OSX. I discovered (or perhaps forgot) that one of the lesser-known features of this program is that you can generate a point set, and then interpolate through them. So I crafted a curve which would work well with the knob's range, and generated a 5th-degree polynomial equation to fit the points. The result is that now the knob is very comfortable to use, and the click is gone! I'll probably need to generate another set of curves for HiLoFilter, which has a similar problem but a different knob action.
Yay for math!

We wish you a GUI Christmas

Please forgive the kitschy title, I have never really gotten much into the Christmas spirit. Anyways, I'm stuck in Stockholm this Christmas, thanks to a last-minute flight cancellation, but I'm making the best of it. Hence, the enormous progress made on TeragonGuiComponents and associated plugins in the last few days. And really, a few uninterrupted days of coding, what more could I possibly ask for?

Yesterday I made big progress doing GUI work for several plugins. Now that I've pinned down a good workflow for doing layout with Pixelmator/Introjucer, I can really just bang them out. Specifically, I finished new GUIs for BeatCounter, HiLoFilter, and NotNotchFilter. I did some casual testing with 64-bit Ableton Live and all of the plugins seem to perform beautifully with their new shiny GUIs. I expect that I will have released new versions of each of these plugins by the end of the week.

I also busted out the old Windows laptop and fixed a few minor issues and got TeragonGuiComponents building with Visual Studio 2013. However, my idea of a nice and relaxing Christmas doesn't exactly include fighting with the retardedness that is Windows development, so I'll likely wait a few days before attempting to port and release the above plugins.

Today I made a GUI for ChaosChimp, a plugin I haven't talked about much here. It's still in beta but will be ready for a 1.0 release soon. Inspired by the Netflix Chaos Monkey, the plugin is designed to make bad things happen to your sequencer. Why on earth would anybody want this? Well, I see ChaosChimp having two main uses:

  1. Providing a tool for sequencer developers to simulate naughty plugins in their host.
  2. For DJs/Performers to simulate bad things happening to their computer and react accordingly.
That second point is originally why I developed the software. As technology improves, music setups become more complex, and the more complex things get, the more likely they can go wrong. Having backup plans can be the difference between a small glitch and an embarrassing evening.

For instance, one of the things ChaosChimp can do is attempt to crash the host. An easy "backup" for this is having an iPod (or whatever) playing on shuffle on a muted mixer channel. So instead of freaking out when something crashes, one can calmly cross-fade to the MP3 player and restart the sequencer in the meantime. It won't be the best mix of the evening, but it sure beats 60 seconds of silence, right? :)

Anyways, ChaosChimp currently has five different chaos providers, and some basic controls to how often and long the chaos lasts. Before today, this could only be controlled with the sequencer's built-in sliders, but with the new TeragonGuiComponents I was able to whip up a fully-functional GUI in about 2 hours (yes, I timed it).

Enter the chimp
Expect a 1.0 version (along with the releases of the other plugins) sometime after Christmas.

Preview of NotNotchFilter GUI

NotNotchFilter will have the honor of being the first plugin redone with the new TeragonGuiComponents graphics kit. Here's a preview screenshot: