This project has moved and is read-only. For the latest updates, please go here.

WaveStorm by komorra

Dec 30, 2010 at 8:19 PM

Hi. I make this thread to share my new effect plugin. Thank you obiwanjacobi for all your help :) (and library of course). Due to the fact, that this is my first VST plugin, it is very simple and in alpha phase now (GUI & Audio processing are 99% implemented, just few tweaks left). This effect includes all in Live-Mode features:

  • 4-voice delay
  • Tape-Stop with adjustable sensitivity
  • Shuffle (now need to be fixed somehow - it produces not quite perfect shuffles)
  • Retrigger with speed/pitch adjustment
  • Gate with rate & with adjustment and flexible stereo gate effect
  • Quantizer - makes sound sounds like 8-bit and less old video games
  • Virtual Vinyl Scratcher - you can adjust how much sample is taken, the way of comming back to default position and sensitivity of device

Video presentation & plugin for download will be posted here soon.

Dec 31, 2010 at 6:03 PM
Edited Dec 31, 2010 at 6:10 PM

Plugin demonstration:

http://www.youtube.com/watch?v=szhXwMIwrNU

If you have any sugestions, opinions, comments about this plugin I'd love to see it here.

PS. I need some time to fix few little bugs, and plugin will be ready to post its download link here.

Jan 4, 2011 at 7:05 PM
Edited Jan 4, 2011 at 7:06 PM

Ok. It's done. You can download my plugin there:

http://www.easy-share.com/1913469103/komorra_wavestorm.zip

Jan 5, 2011 at 9:14 AM

Congratulations!

I saw the youtube demo and it looked nice. Not sure if I would be looking for these effects, but I'm sure other people would like them ;-)

I took the liberty of looking at your implementation and have some questions on why you've implemented it the way you did.

Would you like to take this offline (by email) or is it okay to talk about it here? I think the discussion could be beneficial to others as well.

BTW: I didn't really like the download experience by easy-share. I would personally not make my 'customers' have to go through that ;-)

Jan 5, 2011 at 12:59 PM

OK. Here is alternative download link:

http://mkinfo.i8p.eu/vst/komorra_wavestorm.zip

And plugin sources:

http://mkinfo.i8p.eu/vst/WaveStormSRC.zip

We can talk about it here online, but my code is very bad looking (you have been warned! :D)

Next plugins will be more "code-friendly". I also plan to prepare some Visual C# 2008 Project Templates for VST Instrument and VST Effect.

Jan 5, 2011 at 3:18 PM

Thats a nice idea to create a VS project template with the basics all setup. That would be a great addition to VST.NET ;-)

Thank you for sharing the source code.

My first question would be:

- Why did you overload so many methods on the PluginCommandStub?

If you look at the Delay sample, you can see how Parameters and Programs can be managed by the Framework.

As a side note: I would derive the PluginCommandStub from the StdPluginDeprecatedCommandStub class. That would allow your plugin to be loaded into hosts that only support < VST 2.4.

My Second question would be:

- Why did you not implement an AudioProcessor?

Looking forward to your answers and ideas.

Jan 7, 2011 at 10:09 AM

1. Why did you overload so many methods on the PluginCommandStub?

I think, I overload only neccessary parts. Methods resposible for handling parameters stuff are all implemented because they're used in automation.

2. Why did you not implement an AudioProcessor?

I think, it is unneccessary, because i overload one method ProcessReplacing. What are benefits of implementing one more class?

I'am a 'wild' programmer and I write 'wild' code, so I'm often do many things in my own way, but this is sometimes waste of time/code.

Another strange thing is that when I see "Deprecated" somewhere, I think "don't touch this, problems will soon arrive"

I think, next plugin will be more smart and clear-coded. Correct me if I do something wrong with your library :) it will be good lesson for me.

Jan 7, 2011 at 11:07 AM

Your 'deprecated' remark is a good one. I can understand that this puts you off. In this context it is an indication for deprecated VST functionality. With the introduction of VST 2.4, Steinberg deprecated parts of the VST interface. However a pure VST 2.4 plugin can only run in a VST 2.4 Host. Older hosts may not load the Plugin. For instance: I have an old Cubase version (VST 2.3) and it will not load pure VST 2.4 plugins (needs the Identify method). For that reason I introduced explicit support for these deprecated features in the VST spec. Explicit, so you can/have to make a deliberate decision about it. So in this case you'll always want to use the Deprecated version unless you explicitly want to only support VST 2.4. See also the Samples, they all use the Deprecated functionality.

The Framework has a mechanism that handles Parameters (and Programs if you like to support that). It would be interesting to see how your code would look when implementing Parameters using the Framework mechanism (see also the Delay sample).

The design of VST.NET was made with Object-Orientation in mind. This brings in the "overhead" of more classes, but in return you can seperate and concerns and responsibilities into separate 'units' (classes). The actual runtime overhead of an extra class is minimal, it is foremost a feeling of having yet another class in your project that most people experience as overhead.

Thanx for sharing your view.