Skip to content

Destroy FX is a music software project of Sophia Poirier and Tom Murphy 7. Mostly we make audio effect plugins that destroy your sound. Supported plugin APIs include Audio Unit and VST. Includes the DfxPlugin and DFX GUI frameworks.

License

Notifications You must be signed in to change notification settings

sophiapoirier/destroyfx

Repository files navigation

            Super Destroy FX Plugin Sources

These are some of the plugins that are part of the Destroy FX plugin
pack (DFX). All of them use the VST plugin standard, and should be
(nearly) source-portable to any platform which supports that. Some
advanced features may not work on all platforms or in all hosts.

Unfortunately, C++ is currently the only appropriate language for
creating VST plugins. Thus, all of these are written in C++. You'll
need a C++ compiler for your platform in order to compile them. You'll
also need an appropriate version of the VST SDK. Right now, this means
that you'll be able to easily compile with Visual C++ for Windows,
and somewhat easily with CodeWarrior for the Macintosh, and that it
will be pretty difficult for any other platform.

These plugins are Copyright (c) Tom Murphy 7 and Marc Poirier. You can
use them in your music however you like, without royalties. You can
also modify them to your liking. However, if you distribute them (or
derivative/modified versions of them) then you must also distribute
the source package in order to be in compliance with the license (see
the file COPYING).

This software comes with no warranty (see the file COPYING). In fact,
it is likely that some of these crazy effects could crash hosts (by
sending out-of-range samples or taking too much time to process), so
you should be careful to save your work when using them in important
songs. Tom uses Wavelab on the PC, and Marc uses Logic on the Mac, so
the plugins are likely work properly in those programs, at least.

Pre-packaged versions of (some of) these with fancy GUIs are available
at the Super Destroy FX web page:

http:https://destroyfx.org/

If you are simply interested in making music, you should check there
first. If you want to get your feet wet making your own VST effects,
this might be a good place to start. (You can also see and play with
our effects before they're finished!)

Here's a description of each of the plugins included. First, we have
our "premiere" plugins; these have been released, have fancy GUIs,
and are pretty thoroughly tested:

transverb/

        Fun simple plugin; sort of like a tape-loop with
        independently-moving read/write heads. Lots of great effects
        in this one.

scrubby/

        A nice plugin that zips around the audio buffer like a
        DJ (or robot DJ) scratching a record. Has the ability
        to control the scratch speeds using a MIDI keyboard,
        among other advanced features.

bufferoverride/

        Reads data into a buffer that might be smaller or larger
        than the host buffer size, and then keeps repeating that
        buffer over and over. Gives a sort of robotic or
        stuttering effect to your sound, though many twisted
        uses are possible.

skidder/

        Turns your sound on and off at regular or random intervals.
        Practically every facet is controllable by a parameter.
        Skidder also features the possibility for extreme settings
        and MIDI control.

geometer/

        A laboratory for waveform geometry. All sorts of crazy
        effects are possible with this thing, and sports a neat
        visual display of what's happening to your sound.

monomaker/

        Monomaker is just a simple stereo utility.  It can do 
        panning and stereo merging (i.e. merging a stereo signal 
        to mono).  The panning is equal-power / -6 dB law (sort of).


These plugins are somewhat mature, but are lacking GUIs and thorough
testing:

brokenfft/

        One of my favorite plugins; this converts to the frequency
        domain using the FFT, and then does a number of crazy effects.
        This one has an almost limitless variety of sounds that will
        come out of it...


These plugins are in the beginning stages, may be buggy, but we plan
on finishing them eventually:

vardelay/

        Allows for short delays of each sample, but the amount of
        delay is dependent on the amplitude of the sample. (Several
        bands are individually adjustable).

trans/

        Converts to and from other domains (sin, tan, derivative, e^x,
        fft); the idea is that you run this and its inverse with some
        other plugins in-between.

slowft/

        The "slow fourier transform." Not sure what this is about yet. ;)

These plugins are not in development, perhaps because their functionality
has been subsumed by another plugin:

decimate/

        Reduces bit depth and sample rate in order to produce
        artifacting. Extreme settings. Also includes a bonus "DESTROY"
        effect. Geometer is much more flexible and beautiful than
        this oldie.

intercom/

        Adds noise to your sound based on its RMS volume; can also
        swap samples around. Again, Geometer probably has more
        flexible effects that are similar in sound.



In the source package, each plugin has a corresponding directory, as
well as a corresponding plugin_win32 directory containing MS VC++
project files. In these directories, a batch file called "make.bat"
can be used from the command line to build the plugin, provided that
the Visual Studio tools are in your path. Some directories have
Visual Studio project files, but these are no longer supported.

Some of these plugins have plugin_mac directories with stuff for 
building Audio Unit versions of our plugins.  The plugin.pbproj 
"files" (well, they are bundles, and might appear like directories, 
which is what they really are) are Project Builder projects.  The 
plugin.r files are resource files for Rez (although most of our 
plugins actually rely on prefix headers and dfxplugin.r for resource 
building).  The plugin.exp files are the entry point files.

In order to build Audio Units, you need Mac OS X 10.2 or higher and 
you need the Apple Developer Tools and CoreAudio SDK installed.  The 
Developer Tools CD comes with the OS X 10.2 CDs and the CoreAudio SDK 
is available at http:https://connect.apple.com/   Currently, you need to be 
an Apple Developer Connection member to download it (I don't know 
why), but the minimum membership is free.  Project Builder (if you 
care to use that IDE) is included with the Developer Tools.  Note 
that the Project Builder projects files here assume use absolute 
paths for the Apple-provided base API files; they assume that the 
files are located in the places where the CoreAudio SDK installer 
places them.  If you've moved those files, you'll have to change the 
paths in the project settings.  Also note that Marc works with a 
rather modified set of the CoreAudio SDK files.  All of the changes 
that Marc has made will make it into the next SDK revision, so 
they're kind of legit, but just so that you know...  All of the 
modifications are things that have been discussed/proposed/etc. on 
the CoreAudio API listserv.

for building VST Mac versions:
Some plugins have plugin_mac directories with *def-vst.h "prefix" files.  
You can use these to set various #defines in your CodeWarrior projects 
to build the plugins in different ways.  This is because CW does not 
allow you to specify preprocessor #defines in the project target 
settings (this is true as of v8.2, although Metroworks say they will 
eventually implement this long-missing feature).  In your CW project 
target settings, you go to the C/C++ Language tab specify the 
appropriate file in the "prefix file" field.  This means that CW will 
preprocess this file before everything else and use the preprocessor 
stuff globally for the whole build process.  Usually you would use 
vstplugsmac.h (for classic Mac OS builds) or vstplugscarbon.h (for 
carbon builds) as the prefix file.  Those files come with Steinberg's 
VST SDK distribution and include a few basic, necessary #defines.  
Our prefix files #include those files so that you still get those 
defines.  With our prefix files, those that end in def.h are for 
classic builds, defcarbon.h are for carbon builds, eatdef.h are 
for Marc's fancy "food" workaround for some plugs for Logic 4 Mac, 
and some also have the word "stereo" to mean that they define 
stereo processing for plugins that have both mono and stereo version 
builds.


Here is a description of each of the remaining directories in the
source distribution:

windowingstub/

        Sources for starting a new plugin with buffering and
        windowing. This is important when discontinuities at the
        beginning and end of processing buffers translate into audible
        artifacts in the output. (For example, when doing FFT.) This
        adds certain overhead and extra complexity, and requires
        running twice as much effect processing. In addition, some
        effects do not fit the model well (a memory-driven delay
        plugin, for instance). If your plugin does not need this, use
        stub-plugin below instead.

fftw/

        "Fastest Fourier Transform in the West", which actually comes
        from the East at MIT. A very fast FFT routine (GPL).

fft-lib/

        FFT Library from Don Cross. Public Domain.

vstsdk/

        SDK from Steinberg for creating VST plugins. There is no code
        in this directory; you should get the headers and class stubs
        from Steinberg's site.

vstsdk_win32/

        Binary libraries for the VST GUI. There's nothing in here
        except for directions on where to get the library from Steinberg's
        site.

stub-plugin/

        Sources for starting a new plugin. Much nicer than the
        Steinberg examples (in my opinion).

docs/

        The documentation for users.  We include these in the 
        binary distributions of our plugins.

About

Destroy FX is a music software project of Sophia Poirier and Tom Murphy 7. Mostly we make audio effect plugins that destroy your sound. Supported plugin APIs include Audio Unit and VST. Includes the DfxPlugin and DFX GUI frameworks.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published