March 9th 2010

Annoucement: PyVST 0.1

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

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

No Comments yet »

March 2nd 2010

Fixing the QtAGain plugin

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

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!

No Comments yet »

February 25th 2010

Optimization scikit: Structure and implementation

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Some weeks ago, the first release of the optimization scikit was done. I’d like to expose here the internal structure and the way the implementation was thought.
Continue Reading »

No Comments yet »

February 16th 2010

Book review: Inside Cyber Warfare

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

It’s funny I’ve started reading this book shortly before Google announced it withdraws from China because of a cyber attack. Well, this book is about this new theater of operations and explains what everyone should be ready for.
Continue Reading »

No Comments yet »

February 9th 2010

PyVST: another ctypes-based Python VST wrapper

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

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 »

3 Comments »

February 2nd 2010

Annoucement: scikits.optimization 0.1

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading ... Loading ...

I’m pleased to announce the first release of one of my projects. This scikits is based on a generic framework that can support unconstrained cost function minimization. It is based on a separation principle and is also completely object oriented.

Several optimizers are available:

  • Nelder-Mead or simplex minimization
  • Unconstrained gradient-based minimization

The usual criterias can be used:

  • Iteration limit
  • Parameter change (relative and absolute)
  • Cost function changer (relative and absolute)
  • Composite criterion generation (AND/OR)

Different direction searches are available:

  • Gradient
  • Several conjugate-gradient (Fletcher-Reeves, …)
  • Decorators for selecting part of the gradient
  • Marquardt step

Finally several line searches (1D minimization) were coded:

  • Fibonacci and gold number methods (exact line searches)
  • Wolfe-Powell soft and strong rules
  • Goldstein line search
  • Cubic interpolation

Additional helper classes can be used:

  • Finite difference differentation (central and forward)
  • Quadratic cost (for least square estimation)
  • Levenberg-Marquardt approximation for least square estimation

Although it is the 0.1 version, the code is quite stable and is used in the learn scikit.

The package can be easy-installed or can be found on PyPI.

Several tutorials are available or will be available on the future at the following locations:

2 Comments »

January 26th 2010

Fun book: Dreaming In Code

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

I’ve decided for once to read a novel about software. This book is about the story of Chandler, a piece of software that was a dream that didn’t quite came true.
Continue Reading »

1 Comment »

January 19th 2010

Book review: Software Project Secrets: Why Software Projects Fail

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

There are more stories of failed software projects than of failed insert_another_field projects. But why is that so? Of course, software management is young, contrary to the other fields, but there are a set of management practices that should help project managers in their jobs. Why are they failing? Is it because they are not applied? Because the field is really too young? Or something else?
Continue Reading »

1 Comment »

January 5th 2010

Thinking of good practices when developing with accelerators

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Due to the end of the free lunch, manufacturers started to provide differents processing units and developers started to go parallel. It’s kind of back to the future, as accelerators existed before today (the x87 FPU started as a coprocessor, for instance). If those accelerators were integrated into the CPU, their instruction set were also.

Today’s accelerators are not there yet. The tools are not ready yet (code translators) and usual programming practices may not be adequate. All the ecosystem will evolve, accelerators will change (GPUs are the main trend, but they will be different in a few years), so what you will do today needs to be shaped with these changes in mind. How is it possible to do so? Is it even possible?
Continue Reading »

No Comments yet »

December 29th 2009

Book review: The Passionate Programmer

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

It’s all about passion. The second edition of the book saw its title changed (it was called My Job Went To India) to something less depressing and more adequate to what we all should do: be passionate about our work and be happy to do it (it also applies to other job than developers!).
Continue Reading »

No Comments yet »

Next »

  • Categories

  • Archives

  • Advertisement

Performance Optimization WordPress Plugins by W3 EDGE