Hi all, I have been working on an experimental "pd workalike" for a little while with just the intention of exploring some ideas about visual programming, getting familiar with all the current audio APIs for Linux, and generally having fun with a spare time programming project.
I am really excited that I have some basic functionality now working and I wanted to share with the only community that would understand these screenshots :) These patches actually work as you would expect, producing audio and all; the only "cheating" in the screenshots is that you can't save patches, only create them on the fly. Still quite early in the development process!
As you can guess from the things that look "surprising" to pd users, the program is implemented in Python with C extensions. Objects that get passed between control processors are just Python objects, and literals in creation args are passed to the Python evaluator.
The signal-processing part is a thin wrapper on Jack, with (at this point) no separate blocking other than the Jack block, so latencies between the control-rate side and the signal-rate side are pretty high unless you have a very low-latency audio system... but the complexity of a separate blocking system were too high to address right away.
It uses a multiple-process model to separate the garbage-collected python stuff (control-rate processing) from real-time audio stuff (in the C extension). The UI is done in Clutter (in a third process), and is heavy on keyboard shortcuts. Everything can be done without a mouse.
When this gets a little more baked there will be public git, wiki, etc but it's just a toy yet... I just wanted to throw these screenshots out there.
Thanks, Bill Gribble
2010/6/15 Bill Gribble grib@billgribble.com
When this gets a little more baked there will be public git, wiki, etc but it's just a toy yet... I just wanted to throw these screenshots out there.
Bill, it's amazing. I'm waiting for the code.
Congrats.