[PD-dev] snake_in~ tutorial?

Alexandre Torres Porres porres at gmail.com
Sun Sep 10 21:30:54 CEST 2023


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 at gmail.com> escreveu:

>
>
> Em dom., 10 de set. de 2023 às 16:27, Alexandre Torres Porres <
> porres at gmail.com> escreveu:
>
>> Em dom., 10 de set. de 2023 às 15:47, Alexandros Drymonitis <
>> adrcki at 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?
>>>
>>
>> it class this function
>> https://github.com/pure-data/pure-data/blob/c0a7c16c63e86ccc8ce05c8273ccd8aec7ae044c/src/d_ugen.c#L1396
>>
>
> 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 at 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 at lists.iem.at
>>>> https://lists.puredata.info/listinfo/pd-dev
>>>>
>>> _______________________________________________
>>> Pd-dev mailing list
>>> Pd-dev at lists.iem.at
>>> https://lists.puredata.info/listinfo/pd-dev
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20230910/84dcea7c/attachment-0001.htm>


More information about the Pd-dev mailing list