Need help building a plugin from source code in JUCE

DSP, Plug-in and Host development discussion.
Izak Synthiemental
KVRian
772 posts since 4 Aug, 2010

Post Mon Dec 09, 2019 12:05 pm

So, I was looking for papers about analog tape machine modelling and found a recent and promising one by Jatin Chowdhury.

From the writing contained in the paper it appeared as if this plugin has been coded, so I searched the web and did indeed find a corresponding Github project with the source code. It's released under GNU GPL, but it seems there is no binary available yet (despite the Github description saying so, but there is only a binary for another distortion plugin named "Chow" after the developer). You can find the Github repository here.

Could someone who has the required JUCE and Projucer set up please attempt to build the binary / VST plugin file (preferably Windows version)? Strictly for personal use under GNU GPL of course!

Thanks
http://soundcloud.com/samaritageto

Proper Education Always Corrects Errors

quikquak
KVRian
631 posts since 6 Aug, 2005 from England

Re: Need help building a plugin from source code in JUCE

Post Mon Dec 09, 2019 1:22 pm

That repo already has a VST / VST3 plug-in, made in Juce. The .dll and .vst3 files are both there already - in "AnalogTapeModel/Plugin/Bin/Win/" I've just played them in FL Studio on Windows.
*edit* it's very expensive on the CPU though...

Izak Synthiemental
KVRian
772 posts since 4 Aug, 2010

Re: Need help building a plugin from source code in JUCE

Post Mon Dec 09, 2019 1:36 pm

quikquak wrote:
Mon Dec 09, 2019 1:22 pm
That repo already has a VST / VST3 plug-in, made in Juce. The .dll and .vst3 files are both there already - in "AnalogTapeModel/Plugin/Bin/Win/" I've just played them in FL Studio on Windows.
*edit* it's very expensive on the CPU though...
Edit: Indeed, not finished / optimized yet, but rather a prototype. Could not test it on material because one instance maxed out my CPU cycles entirely. It's probably due to the fixed 16x oversampling and the sophisticated component modelling going on under the hood. Maybe I shouldn't explore Github repos but rather wait for official release next time :lol:
http://soundcloud.com/samaritageto

Proper Education Always Corrects Errors

quikquak
KVRian
631 posts since 6 Aug, 2005 from England

Re: Need help building a plugin from source code in JUCE

Post Mon Dec 09, 2019 2:07 pm

Perhaps it's in debug. Why not just ask them?

Izak Synthiemental
KVRian
772 posts since 4 Aug, 2010

Re: Need help building a plugin from source code in JUCE

Post Mon Dec 09, 2019 4:08 pm

quikquak wrote:
Mon Dec 09, 2019 2:07 pm
Perhaps it's in debug. Why not just ask them?
Yup, I will try to get in touch with them later this week.
http://soundcloud.com/samaritageto

Proper Education Always Corrects Errors

User avatar
BertKoor
KVRAF
11411 posts since 8 Mar, 2005 from Utrecht, Holland

Re: Need help building a plugin from source code in JUCE

Post Mon Dec 09, 2019 11:29 pm

To get in touch, simply fill in the form on github's issue tracker:
https://github.com/jatinchowdhury18/Ana ... del/issues
(you need to log in, thus create an account first)
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is back online!!

Izak Synthiemental
KVRian
772 posts since 4 Aug, 2010

Re: Need help building a plugin from source code in JUCE

Post Tue Dec 10, 2019 8:19 am

BertKoor wrote:
Mon Dec 09, 2019 11:29 pm
To get in touch, simply fill in the form on github's issue tracker:
https://github.com/jatinchowdhury18/Ana ... del/issues
(you need to log in, thus create an account first)
I indeed have an Github account, though I'm not really well experienced. I managed to file an issue! Thanks
http://soundcloud.com/samaritageto

Proper Education Always Corrects Errors

chowdsp
KVRer
6 posts since 18 Jan, 2019

Re: Need help building a plugin from source code in JUCE

Post Tue Dec 10, 2019 9:28 am

Hi All,

Thanks for checking out my plugin! My tape modelling plugin was designed more as research project than as a plugin to be used for mixing/mastering etc. With that in mind, there were things that I could have "fixed", but chose not to, partly to show the limitations of certain modelling techniques. That said, hopefully in the next week or so I'll have some time to optimize my code a bit more, and upload some new builds. I'll update this thread when that happens.

Thanks,
Jatin

quikquak
KVRian
631 posts since 6 Aug, 2005 from England

Re: Need help building a plugin from source code in JUCE

Post Tue Dec 10, 2019 12:49 pm

Nice one, Jatin! 😀

Izak Synthiemental
KVRian
772 posts since 4 Aug, 2010

Re: Need help building a plugin from source code in JUCE

Post Tue Dec 10, 2019 1:51 pm

chowdsp wrote:
Tue Dec 10, 2019 9:28 am
Hi All,

Thanks for checking out my plugin! My tape modelling plugin was designed more as research project than as a plugin to be used for mixing/mastering etc. With that in mind, there were things that I could have "fixed", but chose not to, partly to show the limitations of certain modelling techniques. That said, hopefully in the next week or so I'll have some time to optimize my code a bit more, and upload some new builds. I'll update this thread when that happens.

Thanks,
Jatin
Thanks Jatin,

I read your paper and recommended it to another developer. I'm also the guy who filed the bug report on Github and I'm looking forward to the improved build. Your approach to modelling the tape intricacies seems really thorough and solid.

One small issue: in the current version (which was overtaxing my CPU) I realized that the current implementation of noise / hiss seemed rather static than dynamic / fluctuating over time. Is that on purpose or do you plan to implement a more dynamic noise model?
http://soundcloud.com/samaritageto

Proper Education Always Corrects Errors

chowdsp
KVRer
6 posts since 18 Jan, 2019

Re: Need help building a plugin from source code in JUCE

Post Tue Dec 10, 2019 7:24 pm

Izak,

Thanks man. The "whining" noise that you're hearing is actually an aliasing artifact of the bias signal. Because of the method I was using for doing the nonlinear processing, even 16x oversampling had some pretty bad aliasing artifacts left over. I've since figured out a new way to model the "dropout" effects that come from underbiased tape, which will be in the new version. I've actually had some time to work on it today, so hopefully I can get something new for you to try in a day or two.

If you're curious, I have a new project where I write about some nonlinear signal processing ideas, and make simple plugins to demonstrate those ideas: https://github.com/jatinchowdhury18/Com ... inearities. I did a generalized version of hysteresis as part of that project (https://medium.com/@jatinchowdhury18/co ... eb2cd3e3f6). The "width" of the hysteresis curve can be adjusted to model underbiasing.

Thanks,
Jatin

mystran
KVRAF
5531 posts since 12 Feb, 2006 from Helsinki, Finland

Re: Need help building a plugin from source code in JUCE

Post Wed Dec 11, 2019 3:52 am

chowdsp wrote:
Tue Dec 10, 2019 7:24 pm
Izak,

Thanks man. The "whining" noise that you're hearing is actually an aliasing artifact of the bias signal. Because of the method I was using for doing the nonlinear processing, even 16x oversampling had some pretty bad aliasing artifacts left over.
While I've never done any serious tape modelling, I remember experimenting with biasing non-linearities years ago. Something one can do to try to mitigate aliasing of the bias signal perceptually is to tune the bias signal to an exact multiple of the base Nyquist rate. This way the direct harmonic products will alias at either Nyquist or DC, rather than in the middle of the audible band.

Going further, one could also try to spread the spectrum of IMD products to whiten the noise floor, by either using band-pass noise as the bias signal or (probably more realistic in practice) randomly (eg. using blue noise or something) modulating the frequency of bias signal slightly. The idea here is that slight variation in the bias frequency doesn't necessarily has much impact in the audible band, but as the bandwidth of the products grows proportional to the frequency, the higher order IMD products (ie. those that will actually alias) are spread out more. Ideally, by the time they alias, they as spread out enough that they combine into something approximating a white noise floor.

One can actually turn any and all aliasing into (approximately white) noise by using additive random sampling (which again effectively spreads the aliasing around), although high-quality real-time reconstruction of such signals is somewhat challenging.
If you'd like Signaldust to return, please ask Katinka Tuisku to resign.

s28
KVRist
363 posts since 9 Aug, 2017

Re: Need help building a plugin from source code in JUCE

Post Wed Dec 11, 2019 8:20 am

chowdsp wrote:
Tue Dec 10, 2019 9:28 am
Hi All,

Thanks for checking out my plugin! My tape modelling plugin was designed more as research project than as a plugin to be used for mixing/mastering etc. With that in mind, there were things that I could have "fixed", but chose not to, partly to show the limitations of certain modelling techniques. That said, hopefully in the next week or so I'll have some time to optimize my code a bit more, and upload some new builds. I'll update this thread when that happens.

Thanks,
Jatin
Hi Jatin,

Just came across this thread and checking out your tape model. Wow is all I can say, this is sounding great, look forward to the new build. Whilst the GUI might just be temporary and isn't the important factor; just want to say I really like it, nice and functional. This is exciting, thank you!

chowdsp
KVRer
6 posts since 18 Jan, 2019

Re: Need help building a plugin from source code in JUCE

Post Wed Dec 11, 2019 5:29 pm

Alright folks, just finished with a build for version 2.0, I'd love to have y'all try it out! New builds are available on GitHub: https://github.com/jatinchowdhury18/Ana ... /tag/2.0.0. I'm not currently able to "codesign" the mac builds, so I'm not sure if those will work, but the Windows builds should be good to go.

@mystran: Thanks for the ideas, definitely a bunch of things that are worth trying!

@s28: Glad you like it, the GUI is like that mostly because it was easy for me add knobs as I adjust the DSP. But yeah, it's functional and doesn't have any extra bells/whistles :).

Thanks to everyone for showing their interest, I probably wouldn't have continued maintaining this project otherwise!

Izak Synthiemental
KVRian
772 posts since 4 Aug, 2010

Re: Need help building a plugin from source code in JUCE

Post Thu Dec 12, 2019 2:02 am

^ Thanks @chowdsp !!!

Great how you got involved immediately and managed to pull this off! As soon as I can I will check the new tape model. Now that you are on our radars I will definitely follow your academic and practical DSP work and hope you will find the time to implement some of your other ideas in plugin form!
http://soundcloud.com/samaritageto

Proper Education Always Corrects Errors

Return to “DSP and Plug-in Development”