Hi all,
I've updated PeRColate to version 0.05. It includes some bugfixes and some new objects.
The source distribution also includes the code for objects that haven't been ported yet. There are 8 objects coming from RTcmix and terrain~ (interpolates between two or more wavetable 'frames' stored in a buffer) plus some PhISM objects. Most of the RTcmix objects and terrain~ use Max's t_buffer, I just don't know how to implement this in Pd... In case someone is interested in getting them ported feel free to do so or give me a hint how to do it.
http://www.akustische-kunst.de/puredata/percolate.html
BTW on Monday I fixed a bug in patcher~ (the first inlet allways got connected to all outlets). In case you downloaded it earlier, please update.
Olaf
hi Olaf,
the closest look-alike of t_buffer is t_garray (but it is only single channel...)
In terrain~.c try to
+#define t_buffer t_garray
then make
if (!b->b_valid) goto zero;
tab = b->b_samples;
frames = b->b_frames;
nc = b->b_nchans;
into
if (!garray_getfloatarray(b, &frames, &tab)) goto zero;
nc = 1;
and replace
if ((b = (t_buffer *)(s->s_thing)) && ob_sym(b) == ps_buffer) {
with
if ((b = (t_buffer *)pd_findbyclass(s, garray_class))) {
also do not forget about
inlet_new(&x->l_obj, &x->l_obj.ob_pd, &s_signal, &s_signal);
Krzysztof
btw. is linux port of Pd/PeRColate anywhere available (or planned)?
Olaf Matthes wrote: ...
plus some PhISM objects. Most of the RTcmix objects and terrain~ use Max's t_buffer, I just don't know how to implement this in Pd... In case someone is interested in getting them ported feel free to do so or give me a hint how to do it.
Hi Krzysztof,
most of the changes you suggested seem to work. I got terrain~ compiled and can create the object. Only
if ((b = (t_buffer *)(s->s_thing)) && ob_sym(b) == ps_buffer) {
if ((b = (t_buffer *)pd_findbyclass(s, garray_class))) {
makes problems. b is always 0.... I'm not quite shure about what has to happen here but I think we need to create (?) a new t_garray with the name (t_symbol) entered by the user. Right?
I've uploaded the new sources of terrain~ as a zip to ftp://ftp.muart.de/akustische-kunst/pd/PeRColate/ in case someone want's to have a look at it.
btw. is linux port of Pd/PeRColate anywhere available (or planned)?
Yves once said that only minor changes were necessary to get PeRColate compiled for Linux. I don't have access to a Linux box so somebody else would have to do it. On the other hand he also told me about serious problems with crashes. Maybe this has been fixed due to my bug fixes but it might also still happen... One reason for that could be that there is not input checking (as in the original Max version of PeRColate). Everything can be sent to the inlets but some very strange values are likely to cause crashes. All the sources are inlcluded in the PeRColate0.05_sources.zip file... (in case I haven't forgotten anything)
Olaf
hi Olaf (and Chris, Yves, mik...)
Olaf Matthes wrote: ...
but I think we need to create (?) a new t_garray with the name (t_symbol) entered by the user. Right?
right, t_garray of floats is just an ordinary array available somewhere in the patch: [terrain~ <name>...] is similar to, say, [tabread4~ <name>].
...
Yves once said that only minor changes were necessary to get PeRColate compiled for Linux. I don't have access to a Linux box so somebody else would have to do it.
yes, as it seams, making the sources cross-platform is plain easy, esp. without using -Werror, but there need to be at least some way of synchronization with your future efforts.
Krzysztof
Hi again,
Krzysztof Czaja schrieb:
right, t_garray of floats is just an ordinary array available somewhere in the patch: [terrain~ <name>...] is similar to, say, [tabread4~ <name>].
OK, I think it works now. I'm not quite shure what kind of output to expect from terrain~ since I'm not that familiar with that wavetable stuff. Anyway, I've uploaded terrain~ and you can donwload it from the PeRColate site...
...
Yves once said that only minor changes were necessary to get PeRColate compiled for Linux. I don't have access to a Linux box so somebody else would have to do it.
yes, as it seams, making the sources cross-platform is plain easy, esp. without using -Werror, but there need to be at least some way of synchronization with your future efforts.
If someone could do the port and point me to the changes I could try to put an eye on these things in future changes / additions... a short list of common "do's and don't's" for Linux would also be a good starting point. It seems to me that it is basicly a question of how to assign int's.
Olaf