The Modulator 2

by ndc Plugs (http://www.niallmoody.com/ndcplugs)


Version : 1.06

Author : Niall Moody (niallmoody@yahoo.co.uk)

Format(s) : PC VST

Created with : C++

CPU Usage : ~4%? (tested on a 2.8GHz P4)


Description :

The Modulator 2 is a comprehensive audio modulation effect, offering 3 forms of modulation: Amplitude Modulation, Ring Modulation, and Frequency Modulation. Three audio sources are provided, all of which can be used as either the modulating signal, or the carrier:

Audio Input : The stereo input audio signal. Can be reversed (because of the real-time nature of the software, you may hear clicks), and pitched up and down with the Speed control . When it is used as the modulating signal, you can also use the amplitude envelope of the input signal. The Channel control specifies which channel of the input signal is used as the modulator. The Audio Input is the only audio source which may be used to modulate itself - in this case, all the controls correspond to the modulating channel. You can also now choose between MadShifta-type pitch-shifting (courtesy of Toby Bear and Bram from SmartElectronix releasing the source code to their fantastic plugin) and the old-style (i.e. It was in the beta) read-through-speed modulation. The difference here is that MadShifta-style will keep the output audio in sync with the input, while read-through-speed will not (although the plugin will reset itself when you change modes).

Oscillator : A fairly simple oscillator with 4 waveforms; Sine, Saw, Square and Sample & Hold, and a range of 0-2000Hz. The default Saw and Square waveforms are very simplistic, and as such come complete with aliasing. The Nice buttons switch to additive synthesis versions, which take up more CPU, but shouldn't alias. Tempo Sync calculates the frequency in terms of beats, rather than in Hz. Host Sync resets the waveforms to 0 at the start of each bar. You can also set the frequency of the oscillator using MIDI notes with the specified button.

Wave File : A mono .wav file player (it will accept stereo files, but it'll only use the left channel). Most of the controls are self-explanatory - Host Sync starts playing the file from it's beginning at the start of every bar. Linear Interpolation can be used to avoid aliasing incurred when the speed at which the wave file is played back is changed away from 1x. You can also trigger the wave file to start playing at it's beginning via MIDI notes, using the button.

The Nice button above the Output fader is an attempt to make the output sound 'nicer', though it may be subjective. The 2 'Speed' dials may be centred by right-clicking on them (their range is 0.25x – 4x). The buttons at the top-right of each of the sources let you hear the output of that source (though these are hard-wired so that you will never get the envelope signals from them). Also, unlike it's predecessor, The Modulator 2 will save the filepath of any wave files you've loaded when you save a preset.


MIDI CCs :

Output Level

7

Modulator Level

1

Carrier Level

45

Mix

46

Modulation Type

47

Modulation Source

48

Carrier Source

49

'Nice' Output

50

Wave File Read-Through-Speed

51

Wave File Envelope

52

Wave File Reverse

53

Wave File Linear Interpolation

54

Wave File Looping

55

Wave File Host Sync

56

Wave File Listen

57

Oscillator Waveform

58

Oscillator Saw Nice

59

Oscillator Squ Nice

60

Oscillator Tempo Sync

61

Oscillator Host Sync

62

Oscillator Listen

63

Audio Input Pitch

75

Audio Input Envelope

76

Audio Input Reverse

77

Audio Input Channel

78

Audio Input Listen

79

MIDI->Osc Freq

85

MIDI->WF Trigger

86

Audio Input Old Mode

87



...And MIDI notes can control the pitch of the Oscillator, and the triggering of the Wave File Player.

Oh, and it will also respond to MIDI program change messages.


Credits :

The code used to change the pitch/frequency of the audio input comes from the open source MadShifta code, by Toby Bear (http://www.tobybear.de) and Bram of Smartelectronix (http://www.smartelectronix.com). We are obviously extremely grateful to them for releasing the code, and if you haven't seen it yet, you really should check MadShifta out (http://www.musicdsp.org).

The GUI was made by Tomasz from RedShiftMedia (http://www.redshiftmedia.com).

VST is a trademark of Steinberg Media Technologies AG.


Installation :

Copy the themodulator2.dll file into your vst plugins directory.


Hosts tested on :

Tracktion v1.4.0.153

Fruity Loops Studio - demo

ModPlug Tracker (there sometimes seems to be a dc problem with this host, but we haven't been able to track down what's causing it, and it doesn't seem to appear in any other hosts)

Cubase SX - demo

Sonar v1.31 - demo & Fxpansion VST-DX Adapter v3.3 - demo

Chainer v1.03 - demo

AudioMulch v0.9b14

Orion v4.10 - demo


Version History :

1.06 - Fixed plugin crashing various hosts on start-up.

1.05 - Coded a work-around to get the wave file loader working in AudioMulch.

1.04 - Fixed wave file loader crashing in Chainer (there was a pretty serious memory leak in the wave file loader).

1.03 - When loading presets that don't have a wave file path, the plugin forgot to get rid of the last preset's wave file. Now fixed. Also added code so that when the dc thing occurs in ModPlug, the output is automatically set to zero, so you don't destroy your speakers.

1.02 - Added buttons on the GUI to switch between MadShifta-style pitch-shifting and the beta-style read-through-speed.

1.01 - Wave File Loader now passes an empty string to the host - this should stop it crashing in some hosts.

1.00 - First full release - Tomasz' GUI, Madshifta pitch-shifting code, numerous other enhancements & fixes.

beta - First public release.