Linux vessel [was: L Re: [Lua-av] Hi there]

Frank Barknecht fbar at footils.org
Sun Dec 16 04:25:20 PST 2007


Hallo,

so, my bug squashing sessions have been quite sucessful so far and now
I've got a running vessel-interpreter for Linux here. It's very
satisfying to be able to hear the Lua examples. My portaudio crashes
were related to a bug in Portaudio's ALSA backend, where I could make
a workaround, which made the vessel-"tool"  finally run.  Changing
"argv * char"  to "argv ** char" in tool/main.cpp and using "filepath"
instead of "scriptpath" even lets me run different files supplied as
command line options, hooray. ;) For compiling I use scons with the
SConstruct file as posted instead of bothering with a Makefile. 

Graham Wakefield hat gesagt: // Graham Wakefield wrote:

> On Dec 13, 2007, at 11:57 AM, Frank Barknecht wrote:
> >
> >I've actually read your fine thesis yesterday!
> 
> Oh ok, I hope it made sense! Actually, I'd welcome any comments.

It made a lot of sense, and I agree with a lot of what you wrote,
especially with one of your main points: I never relly liked
having to write music/sound code in domain specific languages. At
least not full programs (it's okay for specific tasks like writing DSP
algorithms in Faust or so.)

I believe, in your short presentation of the Max family (sect. 2.1)
some points are rather specific to Max/MSP and aren't valid for Pd. In
Pd, messages actually can be scheduled with (sub)sample accuracy. For
one, the speed of message passing is not related to the audio block
size in Pd. Unlike in Max, you don't get worse response times with
messages when you run a bigger block size: messages are always passed
along every 64 samples regardless of block size.

Additionally Pd supports so called "clock-delayed" messages, as they
are generated by e.g. metro, delay or similar time-objects. These
messages can be evaluated without the 64-samples quantization to
(sub)sample accuracy, but you need to use special objects to evaluate
the additional info when converting control streams to signals, e.g.
you use "vline~" instead of "line~" etc. So it's possible to make an
accurate copy of "phasor~" using a fast "metro" and "vline~".

Chapter 3: "Audio and control computations" in Miller Puckette's book
has some more details on this stuff.

It probably would make sense to let the vessel Pd object deal with
these clock-delayed messages correctly right from the start, though
this requires some more work in the code. 

Ciao
-- 
 Frank Barknecht                                     _ ______footils.org__



More information about the Lua-av mailing list