-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 2012-10-24 02:56, Miller Puckette wrote:
I think the most nearly correct thing to do would be to change the signal structure to add an ?allocated-size" field, and put what is now calcsize in the s_n field of the signal.
<m_pd.h> typedef struct _signal { int s_n; /* number of points in the array */ t_sample *s_vec; /* the array */ t_float s_sr; /* sample rate */ int s_refcount; /* number of times used */ int s_isborrowed; /* whether we're going to borrow our array */ struct _signal *s_borrowedfrom; /* signal to borrow it from */ struct _signal *s_nextfree; /* next in freelist */ struct _signal *s_nextused; /* next in used list */ int s_vecsize; /* allocated size of array in points */ } t_signal; </m_pd.h>
now i haven't recently checked the mechanics how all these variables are used internally, but according to the comments i would have guessed that, "s_vecsize" is the "allocated-size" field, and "s_n" is the actual (to-be-computed) vectorsize.
I'm not 100% sure I can change the size of the signal structure without breaking binary compatibility with older objects.
i think that "t_signal" is used by reference everywhere, which would grant binary compatibility, as long as you only add the end of the struct.
However, there's other stuff I want to add (to support objects being able to detect when there's no signal connected to an input). I think when I make that change I can
more important for me would be fields to separate overlap/resampling/samplerate. PLLLLLEAASE!
try making the non-power-of-two thing work too. But I'm not sure anyone will ever use it - there are other ways to process images these days :)
there have been other ways to process images before... i still would love to see non-2^n blocksizes, ideally allowing reblocking to sub-patches if one blocksize is an integer multiple of the other.
mfgasdr IOhannes