Hello and welcome to Tobybear MadShifta!
This is a VST plugin (PC only) by Tobybear (www.tobybear.de) and
Bram (www.smartelectronix.com) with full Delphi source included!
It is available on Bram's truly excellent DSP source code page
www.musicdsp.org!
1. What does it do?
Well, as Bram puts it: it is a "ultrafast and lofi pitchshifter",
where the pitch of the audio is changed in realtime while the
tempo is preserved.
You can adjust the pitch in semitones (+/- 24 semitones) and
with finetuning. Furthermore a delay line with feedback is
included and the obligatory LP/HP filter with resonance!
Extra special feature: you can use MIDI note messages to pitch
the audio in realtime up or down, relatively to a root key.
Furthermore a randomizer, dry/wet and output adjustments enhance
the fun :-)
Note: Our main intention here was to make clear how such an algorithm
could be implemented, but the way it is presented here may not
necessarily be the most performance-oriented way, so there is always
room for improvement.
2. The controls:
tune: pitch audio stream up/or down with up to 24 semitones
fine: fine tuning of the pitching
root: root note, if MIDI "Note on" messages are received the
audio is pitched relatively to that note in semitones
hold/back: describes MIDI behaviour: "hold" means the relative
distance between root and current note stays the current pitch,
if "back" is set, it falls back to the original pitch once a "note off"
is received
delay: delay amount, logarithmic scale
feedback: feedback amount of the delay
cutoff: filter cutoff
resonance: filter resonance
LP/HP: sets filter type (lowpass or highpass)
dry/wet: controls amount of processed (pitched) signal in relation
to the original signal
outvol: the output volume
Click on "VS" to switch text display on/off
Click on the bear to the left to randomize all parameters
Click on the note to the right to randomize only pitch
3. Why is the source code in Delphi?
Well, Delphi is still a very underestimated and underrated DSP langauge,
but it is in my opinion equally powerful as C++. Check out my other plugins
at www.tobybear.de, they are all coded in Delphi too.
So, first of all, to show people that it is also possible to compile
VST plugins without a C++ compiler, secondly because there aren't that
much Delphi open source DSP codes floating around.
4. What can I do with the source code?
Look through it, learn from it, enhance it, add new features, but always
give proper credits to both of us! I say it again: this plugin and its
source code are mainly meant as a learning resource!
Some possible extensions:
- stereo mode/delay
- variable buffer sizes
- other filter modes
- sync to host
- filter/delay routing
- longer delay times
- LFOs
5. What do I need to compile this plugin?
A Delphi version, naturally :-), 3.0 or above should work. I coded it
with the Delphi 6 PE Edition that is available for free at
www.borland.com (150MB though!). This is the whole compiler/editor/IDE
with no restrictions, but just for personal use, you are not allowed to
sell any programs created with it.
Furthermore you need to install the tobygauges.pas component also
included with this package before attempting to compile the MadShifta
project. Just use "Component - Install Component", enter path to
tobygauges.pas in "Unit file name", then "OK". This component adds
mouseover and mousedown events to the standard Delphi gauge as well as
eliminating the need for the trunc() function.
6. Final words
None of us is responsible if anything goes wrong with this plugin, you
use it at your own risk. Of course we tried to prevent any possible harm,
after all it is just a simple pitchshifter :-)
Contact:
tobybear@web.de
bram@smartelectronix.com
www.tobybear.de
www.smartelectronix.com
www.musicdsp.org