Coder Social home page Coder Social logo

dozius / dtblkfx Goto Github PK

View Code? Open in Web Editor NEW
160.0 8.0 7.0 6.87 MB

Fast-Fourier-Transform (FFT) based VST plug-in

License: GNU General Public License v3.0

C++ 95.34% C 0.62% Fortran 3.05% Scilab 0.79% Perl 0.04% MATLAB 0.01% Objective-C 0.14%
vst vst2 audio dsp c-plus-plus plugins

dtblkfx's Introduction

DtBlkFx Audio FX Plug-in

DtBlkFx is a Fast-Fourier-Transform (FFT) based VST plug-in.

Download Latest Github All Releases Donate

This is a fork of the original DtBlkFx by Darrell Tam. The original source was not ready for public consumption. I have spent a considerable amount of time getting this ready for a Github release.

Despite a major overhaul of the project structure, I have only made very small changes to the source itself to enable x64 builds on windows. There is still a long way to go to making it clean and easy to hack on.

That being said, anyone with a reasonable amount C++ experience shouldn't find it too difficult to get started. I am glad to accept pull requests and any other help I can get.

Usage examples

  • Precision parametric equalizing with sharp-roll off
    • Set the frequencies so accurately that you can adjust individual harmonics of a sound
    • Frequency resolutions of up to 0.7 Hz
  • Harmonic based (or comb) filtering
    • Set a fundamental frequency and adjust the level of it and its harmonics - you can even remove the pitched component of a voice
    • Active harmonic tracking - let DtBlkFx automatically track a sound and adjust the level of it's harmonics
  • Various types of noise control
    • Change the "contrast" between loud and soft frequencies
    • Adjust only those frequencies below or above a particular threshold
    • Clip frequencies above a particular threshold
    • Sound smearing (phase randomizing)
  • Frequency shifting
    • Harmonic shifting by a fixed number of notes
    • Non-harmonic shifting by a fixed frequency
    • Active harmonic repitch - the pitch of your sound is monitored and shifted to a destination note (or matched to another channel)
  • Various methods of mixing left and right channels
    • Standard Vocoding (frequency enveloping) - make your trumpet rap, string section sing or synthesizer talk
    • Harmonic based vocoding - harmonics in one channel are power-matched to those in the other (or some predefined waveforms) for a new vocoding sound
    • Convolution-like mixing
    • 2 new mixing algorithms
  • Frequency masking
    • A harmonic or threshold mask may be set for any effect (apart from vocoding) - for example only shift frequencies that are below the threshold

You can select up to 8 of the above effects to be run in series! Combining the effects in this way allows you to make completely new and surprising sounds.

dtblkfx's People

Contributors

dozius avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dtblkfx's Issues

Port DSP to JUCE

Goals

  • Port all sound processing code to the JUCE project
  • Ensure processing is fully functional within the new framework

Possible GPLv3 Compliance Issues

The Problem

This plugin uses the VST 2 SDK. From what I know the VST 2 SDK is proprietary and depreciated. That makes legally it impossible to share the full source code, which is required for GPLv3 compliance.

Possible Solutions

  • Move the project to a different license like Apache 2 or the MIT license. Note: This requires to ask all contributors/copyright holders for permission first.
  • Upgrade from VST 2 to VST 3. VST 3 offers a licensing option that is compliant with the GPLv3.

Id be willing to help out with the upgrade. However I haven't worked with VST as of yet, so I dont know how long it will take. Also due to the in-compliance the legal situation of making a fork is a bit unclear to me. Getting a confirmation of the copyright holders that this is OK for me to do would be nice.

Port GUI to JUCE

Goals

  • Port UI to the JUCE project
  • UI should be resizable to meet modern plugin expectations, possibly move to 100% vector based.

Create JUCE project

Goals

  • Create a basic JUCE project as a starting point to port to JUCE.
  • Use cmake as the build system
  • Use vcpkg to manage external dependencies (i.e. fftw)

Use vcpkg for FFTW library dependency

The plugin depends on FFTW. It would be nice to be able to download, build and statically link this in a cross platform way. Vcpkg seems like a good option.

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.