check these objects, they perform simple tasks and maybe one of them helps you with what you want...

https://github.com/pure-data/pure-data/blob/c0a7c16c63e86ccc8ce05c8273ccd8aec7ae044c/src/d_ugen.c#L1358

moreover, all these deal with MC in some way as well... Added MC (multichannel connection) support for some objects (very few gained it out of the box for being abstractions, lke [gain~]), they are: [ceil~], [floor~], [rint~], [trunc~], [sin~], [cents2ratio~], [ratio2cents~], [db2lin~], [lin2db~] (now a compiled object), [gain~], [samps2ms~], [ms2samps~], [mag~], [pol2car~]/[car2pol~] (now compiled objects), [bitnormal~], [op~], [sig2float~], [float2sig~] (now an abstraction), [rescale~], [fold~], [wrap2~], [quantizer~], [dust~], [dust2~], [oscbank~], [oscbank2~], [bpbank~], [resonbank~], [resonbank2~], [slew~], [slew2~], [glide~], [glide2~], [lag~], [lag2~], [rand.i~], [rand.f~], [meter2~], [meter4~], [meter8~] and [xgate~].

Em dom., 10 de set. de 2023 às 16:29, Alexandre Torres Porres <porres@gmail.com> escreveu:


Em dom., 10 de set. de 2023 às 16:27, Alexandre Torres Porres <porres@gmail.com> escreveu:
Em dom., 10 de set. de 2023 às 15:47, Alexandros Drymonitis <adrcki@gmail.com> escreveu:

I've installed else from deken, but I can't find the source files, plus I don't know which objects are mc aware, there doesn't seem to be such a prefix. What about the perform routine of [snake_in~], where is this located?



which calls this one next, which is a simple loop that copies the signal vector...

 
 

On 9/10/23 21:41, Alexandre Torres Porres wrote:
Check many of my mc aware objects in else. Snake uses a perform routine, but a very simple one and you can also look for that copy function in the code. There is no real difference and you just have to split the vector in different chunks of block sizes to get different channels. Other vanilla objects that are mc aware also do this



On Sun, 10 Sep 2023 at 15:17 Alexandros Drymonitis <adrcki@gmail.com> wrote:
I want to experiment with the new Pd feature of the
[snake_in~]/[snake_out~] objects, specifically with [snake_in~]. In Pd's
source files (in d_misc.c) I read the following in [snake_in~]'s dsp
routine:

```
static void snake_in_tilde_dsp(t_snake_in *x, t_signal **sp)
{
     int i;
         /* create an n-channel output signal. sp has n+1 elements. */
     signal_setmultiout(&sp[x->x_nchans], x->x_nchans);
         /* add n copy operations to the DSP chain, one from each input */
     for (i = 0; i < x->x_nchans; i++)
          dsp_add_copy(sp[i]->s_vec,
             sp[x->x_nchans]->s_vec + i * sp[0]->s_length, sp[0]->s_length);
}

```

There is no perform routine, so my question is, how do I deal with snake
signals in a perform routine? How do I unpack them? Where is this
happening in Pd's source code, so I can have a look?




_______________________________________________
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev
_______________________________________________
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev