Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation error (version differences?) #1

Closed
micsthepick opened this issue Jun 10, 2020 · 8 comments
Closed

Compilation error (version differences?) #1

micsthepick opened this issue Jun 10, 2020 · 8 comments

Comments

@micsthepick
Copy link
Contributor

micsthepick commented Jun 10, 2020

attempting to compile the plugin with the ReaJS 236 VST 2 from ReaPlugs, on Windows fails with the error

@sample: 121 'fft_real' undefined: 'fft_real(bufferI1L, SIZE)'

image

I suspect the issue is that fft_real is a newer function, and that that ReaPlugs is just outdated. It looks like fff and ifft are both valid functions, but fft_real is not. I also tried fftr, but that is also undefined

@Nbickford
Copy link
Owner

Nbickford commented Jun 10, 2020 via email

@Nbickford
Copy link
Owner

Quick update: I haven't had the chance to work on this yet, unfortunately, but have been able to confirm that this breaks on fft_real as you describe on the most recent version of ReaPlugs (2016) in Ableton. I'll see if I can send Cockos an email, and modify the JS code to use fft instead of fft_real.

@micsthepick
Copy link
Contributor Author

ok, thanks for your help!

Nbickford added a commit that referenced this issue Jul 2, 2020
@Nbickford
Copy link
Owner

Hi micsthepick! I think commit 80c825a should hopefully fix this - it replaces fft_real with a complex-valued FFT with some logic to convert between buffers of real values and buffers of complex values. This seems to fix the compatibility issue for me when running ReaPlugs inside Ableton 10! The blog post has also been updated to let readers know that it will be updated.

Let me know if this works for you (sorry for the delay)!

@micsthepick
Copy link
Contributor Author

micsthepick commented Jul 3, 2020

That seems to work well. Thanks for your help.

I was wondering if you would be interested in helping me make a JSFX plugin that uses the fft with the mid and side channels to make a weighted center channel for vocal reduction or isolation?

@Nbickford
Copy link
Owner

That's fantastic to hear!

I've unfortunately got a bit much on my plate on the moment, but there are a couple of things you can do! One not too tricky way to do this (which I think is similar to how Audacity's Vocal Reduction and Isolation plugin does it, although I'm not 100% sure - you can find the source code for Audacity's Vocal Reduction and Isolation at https://github.com/audacity/audacity/blob/master/plug-ins/vocalrediso.ny) is to convert the stereo L/R signal into mid-side format. Then treat the side channel as noise and apply this denoising algorithm to the mid signal to isolate the content of the mid channel from the side channel content.

I think the current state-of-the-art for this is to use a neural sound source separation approach - although this is a very active area of research and most papers on it don't seem to release their trained models, Deezer recently released their sound source separation engine (https://deezer.io/releasing-spleeter-deezer-r-d-source-separation-engine-2b88985e797e), and yan/azuki and Guillaume Vincke turned this into a VST: https://github.com/diracdeltas/vstSpleeter

Hope this helps!

@micsthepick
Copy link
Contributor Author

I was aware of and have started to port the Audacity vocal reduction filter that you linked to to JSFX, the idea being that I can use it live, instead of just with recordings. I'm basing my code off of your filter. I might open a repo for the code, then you can look at it when you like.

@micsthepick
Copy link
Contributor Author

I've implemented the algorithm as it's own repository, instead of forking this one. https://github.com/micsthepick/JSVocalRedIso . Looks like I didn't need help after all, since I managed to get it to work fine. Thanks for making this plugin!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants