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