I’m pleased to announce the 1.0 version of QtSimpleEQ, a plugin with one low-pass, two peak and one high pass second-order filters. Nothing fancy in the algorithms, it’s mainly another show case for Qt VST plugins.

The code is available under the GPL2 on github and on Sourceforge.

The plugin can be download on the Sourceforge project page.

The plugin was tested with Tracktion 3 (Windows XP).


QtSimpleEQ UI

Buy Me a Coffee!
Other Amount:
Your Email Address:

Today, I wanted to announce my new plugin, a 4-bands EQ, but when I started a test with pyVST, I encountered strange things:

  • The first is my fault, as the code of the EQ disappeared from my Git repository, so I have to code it again. Mainly it is just plugin the correct actions between the filters and the GUI.
  • The second is an error at the end of the test. I’ve updated my Qt version from 4.7.1 to 4.7.4, and since this update (or perhaps since I updated to Python 2.7 for pyVST), I found that even a recompiled QtSimpleOverdrive has the same behavior. It did not when I released it. It seems that Qt is complaining about events that are bounced between different threads, but the actual error message is more cryptic, and impossible to debug the application at this point.

I hope to fix these mistakes this month, I really hope I can get QtVST to work again.

Buy Me a Coffee!
Other Amount:
Your Email Address:

I’m pleased to announce the 1.2 version of QtSimpleOverdrive.

Since last version, the GUI was changed, and mainly the automation has been fixed. As such, old parameters are no longer valid, sorry…

The code is now available under the GPL2 on github and on Sourceforge.

The plugin can be download on the Sourceforge project page.

Buy Me a Coffee!
Other Amount:
Your Email Address:

I’m pleased to announce the release of my first VST plugin (Windows 32bits), based on the simple overdrive prototype.

It is a mono filter, with an oversampling of 2 to 32, based on polyphase filters, and the undersampling is done after an 8th order Butterworth lowpass filter with a cut frequency of 22kHz.

The source code will be available (under the GPL) in the future if there is interest in the plugin and its support. The exact way it works will be explained in a future blog post.

The audio plugin is available on Sourceforge: https://sourceforge.net/projects/qtvst/files/QtSimpleOverdrive/

If you find any issue, please submit it on Github: https://github.com/mbrucher/qtvst

Please note that the oversampling can be quite CPU intensive (on my laptop, an Intel Core2 T7200, using an oversampling of 4 at 96kHz uses the full power of one core).

Buy Me a Coffee!
Other Amount:
Your Email Address:

I’ve set up a SourceForge project where I will put all the binaries for this project.

The source code is still on Github (https://github.com/mbrucher/QtVST), but it won’t always contain the source code for each VST plugin. The next plugin I’m working on is based on the overdrive I’ve blogged about some months ago.

The download page: https://sourceforge.net/projects/qtvst/files/

My biggest hobby remains music. As a former trumpet player, current drummer and bass player, I spent a lot of time studying solfege, and a little bit of composition. Besides this, I’ve mixed an album for one of my former bands, mastered some tracks for others (and my current one), so I’m also a computer musician. This is why this book from Michael Hewitt was of high interest to me.

Read More

Annoucement: PyVST 0.1

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 3.00 out of 5)

I am pleased to announce the first release of PyVST.
PyVST is a ctypes-based wrapper for the (open) VST standard developed by Steinberg for audio processing.

Version 0.1 provides basic access to the VST interface, as well as a script to analyze and display the audio process of a plugin. It can be easy-installed or downloaded on its Launchpad page.

Changelog for 0.1:

  • Uses the VST dispatcher for several functions:
    • processReplacing
    • processDoubleReplacing
    • open/close the plugin
    • open/close the GUI editor
    • returns the GUI rectangle
    • set the sample rate
    • set the block size
    • get name/vendor/product
    • handle programs
    • handle parameters
    • suspend/resume
  • set/get a parameter
  • get number of programs
  • get number of inputs
  • get number of outputs
  • display.py script
    • can load any plugin
    • displays the editor, if it exists
    • uses a stereo sine-sweep
    • displays a spectrogram of the process of the stereo sine-sweep
    • dumps properties information
Buy Me a Coffee!
Other Amount:
Your Email Address:

Some months ago, I’ve modified the AGain plugin sample from the VST SDK to add a Qt window. At that time, I encountered an issue with Vsthost, which is a common VST host. The issue was that in windowed mode, the plugin’s UI wasn’t displayed. With Traktion, I didn’t have this problem, but the minihost (a sample from the SDK) also didn’t use the UI size.

When developing pyvst, I has to implement the retrieval of the size of the plugin, and I’ve decided to add this to QtAGain. I was surprised to see that it actually work with just giving back the UI size (so fixing this was less than 5 lines).

So now, I know that to impelment an UI for a VST plugin, I have to implement:

  • open()
  • close()
  • but also getRect()

Don’t make the same mistake as I did, do implement all three of them, even if your favorite VST host can live without getRect().

P.S.: Mixing Qt for VST UIs and wxPython for pyvst works really fine!