First Plugin Beta (Feedback Wanted!) (JUCE + Faust)


#1

Hey folks,

I just finished my first audio effect plugin after many questions asked and answered on these forums. It’s a simple distortion plugin with what I think might be a relatively unusual algorithm (maybe? :D). It uses an audio-rate modulated allpass filter to produce a phase distortion and let’s you mix in a tanh waveshaper saturation.

It’s also built with JUCE + Faust which I know is a combination that has raised some how-to questions lately, and I think my implementation to bridge the two is pretty simple.

The code is open source at https://github.com/creativeintent/temper, and I’m happy to pass along a build (Win/OSX, VST/VST3/AU) if you’d like to try it (DM me with your email address).

I’m not sure if this kind of post is welcome, so mods please feel free to close it, but I would love to hear your feedback on this– implementation, product, algorithm, etc. Thanks for all of your help so far, these forums have been so useful.

Cheers,
Nick


#2

The ui seems very well thought and layed out for a first plugin. great job!

Before begging for a build I’ll try to build it myself to get a grip on juce+faust.


#3

yeah, whoever did the artwork did a great job!!


#4

Thanks guys! Yea, a good friend of mine did the artwork, I love it.

@fefanto let me know how it goes building it yourself! If you hit any troubles I’d be happy to help, and happy to take any pull requests :smiley:

Another option, wish I had thought of this sooner, here’s a download link for a build of the current beta (including Win/OSX, VST, VST3, AU): https://ci-temper.s3.amazonaws.com/Temper-v1.0.0-beta2.zip?AWSAccessKeyId=AKIAJCWZQWRGWDG335JA&Expires=1496023751&Signature=TPeUTLV%2F5oWEKKyYGQvrtNxnR7I%3D

That link will expire in 72 hours, after which just send me a private message and I’ll email you a copy.

I’d love to hear your thoughts, any feedback is super helpful!


#5

One more quick bump :slight_smile:

Thanks to those who’ve reached out already, it’s super helpful. I’d love to gather a little more feedback before I take the next step here. The only question I really have still is– would you use it? Why or why not?

Cheers!


#6

I don’t know if I would use it all of the time, right now I am more of a sound designer than making tracks.

But, the one unique attribute I found it has is a very nice harmonic feedback in the upper frequencies at certain settings.

There seems to be a sweet spot you can dial in that does probably what you intended but it’s pretty hard to get. I think I found it when I put a bit more resonance on a pre filter before it got to your plugin.

EDIT: I would say the sound is like a ring modulation, hollow in sound, very cool tonal harmonics.


#7

Wonderful, thank you! That’s very helpful. I’m really glad you called out the harmonic character in the upper frequencies, that’s indeed what I was going for :D. I’m curious to know what kind of pre-filter you were using?


#8

Ah, I was just talking about a pre filter relative to the plugin. In this case it was just the resonance of the Polysynth filter in Bitwig that I was using.

So I guess it makes sense that the more harmonics added pre signal, the more your plugin smiles. :wink:


#9

That’s great!
Did you started with a Faust to Juce conversion on the FAUST online compiler?
Can you outline a brief tutorial on the sequence you used?
best!


#10

@TeotiGraphix interesting :slight_smile: . The Cutoff/Resonance knobs in Temper control a resonant lowpass filter before the distortion unit. Maybe I should have given a little more flexibility there over filter type, etc.

@alfonso nope, as far as I could tell, faust2juce was still in development when I was looking to bridge the two. But have a look at the Makefile in my project root to see the Faust compilation step. Then I wrote a small bridge to map Faust parameters to AudioProcessorValueTreeState parameters/listeners: https://github.com/creativeintent/temper/blob/master/Source/FaustUIBridge.h (and it’s usage here https://github.com/creativeintent/temper/blob/master/Source/PluginProcessor.cpp#L41).

I’ll write up a proper tutorial shortly. I intend to continue using this method, it’s been great so far.

Thanks again for the feedback all!


#11

IIRC Your filter is not so strong, what kind of filter is it?

Also, it seemed like I had to really overdrive the signal pre to get that harmonic, so maybe in your plugin you could have something in it that amps the signal up in a certain way.

Again, this is coming from my naive understanding of how the DSP works in it. :slight_smile:


#12

Yea, it could be weak; my knowledge of potential alternatives isn’t very strong. I’m using a simple second order lowpass filter with corner resonance: https://github.com/grame-cncm/faust/blob/master-dev/libraries/filters.lib#L1275

I have seen some other distortion plugins which use a peak filter before the distortion unit so that you can color part of the spectrum without necessarily cutting another part of the spectrum. Were you using something more like that?

I’ve felt similarly as well about having to drive really hard. I have some min/max kind of clamping that I should maybe reconsider.

Cheers again, this is so helpful!


#13

Well not really, but I was using the resonance which is basically doing the same thing. But that would also explain why it was really hard to get. Since resonance is only affecting a minute part of the cutoff frequency.

So in essence it was acting as sort of a peak filter, so maybe a peak filter to push up the frequency around the cutoff value of your plugin would help.