Two weeks ago, I’ve reviewed Michael Hewitt’s second book, Composition for Computer Musicians. I’ve decided to go for Hewitt’s first book, dedicated to the explanations of music theory.
Continue reading Book review: Music Theory for Computer Musicians
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.
Continue reading Book review: Composition for Computer Musicians
After my last post on QtAgain, I’ve decided to test a few simple digital filters. I’ve tried to make them as generic as possible, and with a VST interface.
Continue reading QtVST: a Chamberlin Variable Filter
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:
- 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
- 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
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:
- 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!
In a previous post, I’ve tried to use Qt for the editor window of a VST plugin. The thing is, I want to do more than just play with a GUI, I also want to see what is done to an audio stream by a plugin.
To do so, I’ve decided to expose the VST interface to Python. There are some implementation I’ve heard of, but they are based on Cython or other wrapping tools. Ctypes has the advantage of not needing a compilation step. There are also every functionality needed, as callback creation (plugins use a callback to ask the host some stuffs), and Python provides the additional mathematical tools to display what the plugin does. It may not be perfect, but it will be enough for a starter.
Continue reading PyVST: another ctypes-based Python VST wrapper
Years ago, I’ve tried to use the GPL version of Qt, but it couldn’t be done without a Qt Solution that was at the time non-free. Now, Nokia has freed and Qt and the appropriate Qt Solution.
I’ve searched if someone has already used this new version to create a VST plugin. The only blog post I’ve found does not use the Qt Solution and is not perfect. According to the documentation what is missing in this solution is precisely what the Solution should do. So let’s try it.
Continue reading VST plugin AGain reloaded with a Qt GUI