Git Product home page Git Product logo

jsvocalrediso's Introduction

JSVocalRedIso

This is a JSFX (JesuSonic Effect) that Implements the main algorithm in Audacity's VocalRedIso.ny, in realtime.
It can isolate or attenuate the vocals (center panned audio) in a mix, and as such this effect works on stereo tracks only.

Loading the effect:

Reaper

Reaper supports JSFX natively, just copy vocalrediso.jsfx to %AppData%\REAPER\Effects (In a subfolder if preferred)

VST compatible DAW

Instructions for windows

JSFX can usually be run in a vst through ReaPlugs by Cocos.
Download and install ReaPlugs, and pay attention to where it installs.
If you have Reaper installed, ReaPlugs should detect that %AppData%\REAPER exists and use that to load JSFX from %AppData%\REAPER\Effects instead of the local copy. Otherwise, ReaPlugs will load effects from ...\ReaPlugs\JS at the install location
(My install is located at C:\Program Files\VSTPlugins\ReaPlugs\JS). If you want override the location to store JSFX, you should include a file called reajs.ini in the install folder for ReaPlugs, with the following contents:

[ReaJS]
rootpath=\path\to\custom\folder\JS

where \path\to\custom\folder\JS is the path to the JS folder that contains the ColorThemes, Data, Effects and presets folders that you would like ReaJs to use. (For example I run Equalizer APO and when reaper is installed, the audio service tries to load plugins from %AppData%\REAPER\Effects but is denied because of permissions)

Other:

try this fork of ysfx.

JamesDSP

simply load the eel instead of the JSFX. (not eel2)

Using the effect:

  • Vocal Reduction (Karaoke)
    set dry mix to 100%, and centre mix to -100% (subtract the center from the mix), and adjust the Low Cut untill drums/bass instruments are still audible enough, without hearing too much vocals, and adjust the high cut so that it is high enough that the vocals don't bleed through. This is better than the usual subtract one channel from the other approach, as the result is still a stereo signal.

  • Vocal Isolation (Acapella)
    Set dry mix to 0%, and Center mix to -100% or 100%. Adjust low cut and high cut so that vocals sound good, but not to much other elements of the mix leak through (-100% can be used to make a seperate duplicate track that can be faded to blend between different modes).

  • Fine tuning
    Adjust stregth and phase width (how close are the two signals to the same phase) at low cut and high cut to change how much each part of the center signal goes through over the spectrum. "Attenuate if different volume" can sometimes help to reduce artifacts, expect there to be less in the center signal when this is set to 1. I have not done much fine tuning myself, so it helps to experiment to see what helps. Generally each individual track should have it's own fine tuning

  • Messing with phase
    "Phase (degrees)" controls what pan in the stereo track the centre signal will be constructed from. 0 Means exaclty the centre, 45 means panned hard left, -45 means panned hard right. sometimes setting the phase to 90 or -90 (and setting dry mix to 0) can isolate things that are not centre panned and can give a better seperation (e.g. for karaoke wen centre subtraction does not give good results), however it will also only give a mono signal in that case.
    If you set the phase to anything but 0, if dry mix is 0, to have a balanced output it is recommended to enable "undo rotation due to phase", unless you plan to combine the output of the plugin with the original input (compensating for the introduced delay) Phase2 controls the phase offset between both channels, controlled by rotating the left phase by that many degrees. It usually doesn't lead to much good results, but it is left there in case it might be wanted.

A word of caution

Some tracks are mixed in such a way that the results from this plugin will not be so sucessful.
In that case it is best to go find a pre mixed version. You might get away with making an acapella version by aligning and subtracting an instrumental version with the original mix, or vice versa if you have the wrong version. There is a plugin that I've made to get better results with this, but with more artifacts: https://github.com/micsthepick/JSFFTDenoise

Credits

Robert Haenggi for making the original vocalrediso.ny for Audacity, and Neil Bickford for making the Noise Reduction effect which helped me first make the effect, and finally Geraint Luff for the STFT template that I currently use: https://forum.cockos.com/showthread.php?t=225955

jsvocalrediso's People

Contributors

felipezanabria avatar micsthepick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

hl4hck

jsvocalrediso's Issues

CPU usage in v2

Either:

Optimize what's implemented: probably will not make it very far, and will likely never match old usage

and/or

release a simplified version which should take less cpu, but have more artifacts.

Glitchy audio when seeking

When doing a seek with the FX enabled, the audio glitches after a second then reverts back to normal. The glitch usually lasts for a split second but can be quite loud and distracting.

Demonstration: https://streamable.com/qyo7e8

I think this glitch was introduced with the STFT release, I don't remember encountering this issue when using the older versions.

Some noises before a transient

Hello! There is a function in the nyquist plugin that is worth putting in to avoid that problem. First of all, you have to adjust the step size (hop), which determines the jumps by the size of fft. In vocalRediso.ny the size of fft is 16512, =8192. The hop is 5127, there is a zero padding, which is hop2, and finally, the windows are adapted to the previous functions.
The an window, which is the simplest and best is:
sequence two sounds, Set the frequency of the control signal in size.
Inside the sequence we place an lfo that oscillates between 0 and 0.5 with these data:
in the frequency parameter: size/(hop
2.0).
Duration parameter: size-zeros/size. The waveform is sine.
The phase is 270 degrees.
The second element of the sequence is a constant signal of amplitude 0, its sample rate is size, floatZeros/size.

Automated dll Build

Create a .github/workflows file that

  • pulls in the compiler environment for VisualCodeBase
  • builds a dll for x86_32 x86_64 and aarch64
  • publishes dlls

silence is not silent

with both sliders set to 0, some sound still goes through, according to the meter, but it doesn't seem to be audible, so I guess it's nyquist frequency noise?

Either way, it must be eradicated.

eel is out of sync with main

I noticed that there are some lines that are different in the eel version that are different, due to updating the main edition but not updating the older version. It should be relatively easy to update the file by doing a side by side comparison in e.g. vscode and updating where appropriate (not where it is intentionally different, such as code that has been moved or deleted, like @slider and @serialize

Consolidate Branches

There are far too many floating branches, need to do the following:

consolidate into the following branches:

  • dev
  • main

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.