Giter Site home page Giter Site logo

prof-spock / sox-plugins-jsfx Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 2.93 MB

SOX Plugins for Reaper DAW in JSFX Language

License: GNU General Public License v3.0

Batchfile 100.00%
audio-processing filter audio compander overdrive daw reaper jsfx phaser tremolo

sox-plugins-jsfx's Introduction

JSFX SoX Plugins for Reaper DAW

Overview

The JSFX-SoX software package provides JSFX (Jesusonic) plugins for being used in the Reaper DAW; they implement some of the audio processing effects from SoX. It is also possible to use them in any VST compatible DAW using the freely available ReaJS VST plugin that is able to interpret JSFX files.

SoX is a command line audio processing tool for Unix, Windows and Mac OS that transforms source audio files in several formats into other audio files.

The effects provided here are a complete rewrite of the SoX algorithms for producing (bit-exact) identical renderings in the DAW. This can easily be checked by rendering some audio externally with SoX and internally with the plugins and subtracting the results. Apart from roundoff errors (SoX often uses 32bit integer processing, while JSFX always uses double floating point processing) the results cancel out with typically a residual noise of -140dBFS.

The main motivation for this package is to be able to play around with effects in Reaper and be sure that the external rendering by SoX will produce exactly the same results. Although SoX does not always provide the "best" effects, it still is a reliable and well-defined audio tool.

Because SoX has rich command line options for its effects, not every effect configuration from SoX can be transported into the slider oriented GUI for JSFX. E.g. the compander of SoX allows the definition of a transfer function having multiple segments. Although the internal engine of the JSFX compander implements exactly the same internal segment logic, the user interface only allows the typical definition of a threshold and a compression ratio (with three segments).

Note also that a spiffy user interface is not at all a priority in this project.

The SoX effects have been rewritten and restructured for easier maintenance, because in the original source there is some redundancy and unnecessary complexity due to its several contributors. Nevertheless the effects provided here faithfully model the SoX processing.

Available Effects

The following effects are available in this package:

  • allpass: a biquad allpass filter two-poled with filter frequency and the filter bandwith (in several units)

  • band: a biquad bandpass filter with center filter frequency and the filter bandwith (in several units) and an option for unpitched audio

  • bandpass/bandreject: a biquad filter for bandpass or bandreject with center filter frequency and the filter bandwith (in several units)

  • bass/treble: a biquad filter for boosting or cutting bass or treble with a shelving characteristics with settings for filter frequency and the filter bandwith (in several units)

  • biquad: a generic biquad (iir) filter with 6 coefficients b0, b1, b2, a0, a1 and a2

  • compand: a compander with attack, release, input gain shift, threshold and compression and soft knee; this is a reduced version of SoX compand with only a simple transfer function

  • equalizer: a biquad filter for equalizing with settings for the pole count, the filter frequency and the filter bandwith (in several units)

  • gain: a volume changer by exact decibels...

  • lowpass/highpass: a biquad filter for either lowpass or highpass with settings for the pole count, the filter frequency and the filter bandwith (in several units)

  • mcompand: a multiband compander with a Linkwitz-Riley crossover filter and for each band a compander with attack, release, input gain shift, threshold and compression and soft knee; again the companders only allow a simple transfer function

  • overdrive: a simple tanh distortion with gain and colour specification

  • phaser: a phaser effect with sine or triangle modulation

  • reverb: a reverb effect (based on Freeverb) with several parameters for the room (like size and HF damping) as well as a possible predelay

  • tremolo: a tremolo effect with sine modulation using a double-sideband suppressed carrier modulation

Installation

The installation is as follows:

  1. Close the Reaper application or your DAW using ReaJS (if open).

  2. Make a subdirectory "Dr_TT" in either the "Effects" directory of the Reaper installation (typically in "\Program Files\Reaper\Effects") or - if your DAW uses some different directory for JSFX files - in that directory.

  3. Copy over all *.jsfx and *.jsfx-inc files from the distribution into this directory. If helpful, also add the documentation from the root directory.

  4. Restart Reaper (or your other DAW). You should now be able to select the plugins from the JSFX folder (they are all prefixed with "SoX").

Alternatively - and much easier! - you can use the ReaPack plugin and do an automatic install via the index.xml file in this repository.

After the installation via ReaPack all the effects can be found in the effects list of the Reaper installation.

Testing the Plugins

If you want to run the test, you also have to have a SoX installation. The test script "makeTestFiles.bat" in the Test directory assumes that SoX is available in the program search path.

The test script produces several sound and noise files and applies SoX audio effects to produces result audio files.

The Reaper project file "testSoxPlugins.rpp" references those test and result files and applies the corresponding effect plugins. Ideally (because the result files have inverted phase), everything should cancel out.

Details

The detailed user manual can be found here.

sox-plugins-jsfx's People

Contributors

prof-spock avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

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.