[Csnd] Plugin Opcode API - Arrays of audio signals
| Date | 2019-12-01 14:37 |
| From | Johann Philippe <000002c2c0737523-dmarc-request@LISTSERV.HEANET.IE> |
| Subject | [Csnd] Plugin Opcode API - Arrays of audio signals |
Dear all,
I'm working on a plugin opcode with C++ API "csound/plugin.h". As I saw in
articles about that, inargs and outargs can work with arrays at i and
k-rate. But there is nothing about arrays of audio signals.
In my case, I need variable number of arguments for input, and Csound array
is a very simple way to manage it. Opcode is supposed to work at i, k and
a-rate. Is there any way/workaround to get values of an array of audio
signals in a plugin ?
I wish it could work like this :
aargs[] init 2
aargs fillarray 3.56,12
ares = myopcode(aargs)
Thanks
Johann PHILIPPE
--
Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here |
| Date | 2019-12-01 16:02 |
| From | john |
| Subject | Re: [Csnd] Plugin Opcode API - Arrays of audio signals |
There is nothing stopping you having an audio array. There are opcodes
that accept and/or return such.
==John ff
On Sun, 1 Dec 2019, Johann Philippe wrote:
> Dear all,
>
> I'm working on a plugin opcode with C++ API "csound/plugin.h". As I saw in
> articles about that, inargs and outargs can work with arrays at i and
> k-rate. But there is nothing about arrays of audio signals.
>
> In my case, I need variable number of arguments for input, and Csound array
> is a very simple way to manage it. Opcode is supposed to work at i, k and
> a-rate. Is there any way/workaround to get values of an array of audio
> signals in a plugin ?
>
> I wish it could work like this :
> aargs[] init 2
> aargs fillarray 3.56,12
> ares = myopcode(aargs)
>
> Thanks
>
> Johann PHILIPPE
>
>
>
> --
> Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
> https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here
>
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here |
| Date | 2019-12-01 18:29 |
| From | Richard Knight |
| Subject | Re: [Csnd] Plugin Opcode API - Arrays of audio signals |
|
hi There are some useful examples here: https://github.com/csound/examples/blob/master/plugin/opcodes.cpp The c++ lets you get/set the array data as a vector eg, inargs.vector_data<MYFLT>(n) , as in those examples, or it is also possible to cast to the 'old' ARRAYDAT struct eg (ARRAYDAT*) inargs(n) best, On Sun, 1 Dec 2019 07:37:54 -0700, Johann Philippe wrote: Dear all, I'm working on a plugin opcode with C++ API "csound/plugin.h". As I saw in articles about that, inargs and outargs can work with arrays at i and k-rate. But there is nothing about arrays of audio signals. In my case, I need variable number of arguments for input, and Csound array is a very simple way to manage it. Opcode is supposed to work at i, k and a-rate. Is there any way/workaround to get values of an array of audio signals in a plugin ? I wish it could work like this : aargs[] init 2 aargs fillarray 3.56,12 ares = myopcode(aargs) Thanks Johann PHILIPPE -- Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here -- http://rk.1bpm.net/ |
| Date | 2019-12-02 07:52 |
| From | Johann Philippe <000002c2c0737523-dmarc-request@LISTSERV.HEANET.IE> |
| Subject | Re: [Csnd] Plugin Opcode API - Arrays of audio signals |
There is still one point I'm not sure to understand. Since audio signals are themselves vectors, shouldn't the inargs.vector_data(0) return a vector of vector like csnd::Vector< csnd::Vector <MYFLT> > ? What I need to do is accessing values in every audio signal in the array - something like this : for(int i = 0; i < arraysize; i++) { for(int aidx=0; aidx < nsmps; aidx++) { doSomething( in[i][aidx] ) ; } }
Le dimanche 1 décembre 2019 à 19:30:03 UTC+1, Richard Knight <richard@1bpm.net> a écrit :
hi There are some useful examples here: https://github.com/csound/examples/blob/master/plugin/opcodes.cpp The c++ lets you get/set the array data as a vector eg, inargs.vector_data<MYFLT>(n) , as in those examples, or it is also possible to cast to the 'old' ARRAYDAT struct eg (ARRAYDAT*) inargs(n) best, On Sun, 1 Dec 2019 07:37:54 -0700, Johann Philippe wrote: Dear all, I'm working on a plugin opcode with C++ API "csound/plugin.h". As I saw in articles about that, inargs and outargs can work with arrays at i and k-rate. But there is nothing about arrays of audio signals. In my case, I need variable number of arguments for input, and Csound array is a very simple way to manage it. Opcode is supposed to work at i, k and a-rate. Is there any way/workaround to get values of an array of audio signals in a plugin ? I wish it could work like this : aargs[] init 2 aargs fillarray 3.56,12 ares = myopcode(aargs) Thanks Johann PHILIPPE -- Sent from: http://csound.1045644.n5.nabble.com/Csound-General-f1093014.html Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here -- http://rk.1bpm.net/
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here |
| Date | 2019-12-02 14:04 |
| From | Victor Lazzarini |
| Subject | Re: [Csnd] Plugin Opcode API - Arrays of audio signals |
|
Vector is only a thin wrapper over ARRAYDAT.
In the case of audio-rate arrays, the data is arranged in rows of ksmps MYFLT samples,
one for each array item. Once you get the data pointer, you can access each member as data[n + i*ksmps], where n is sample index and i is the array index.
Prof. Victor Lazzarini
Maynooth University
Ireland
|
| Date | 2019-12-02 16:45 |
| From | Johann Philippe <000002c2c0737523-dmarc-request@LISTSERV.HEANET.IE> |
| Subject | Re: [Csnd] Plugin Opcode API - Arrays of audio signals |
It's working great now. Thank you all. Bests Johann PHILIPPE
Le lundi 2 décembre 2019 à 15:04:40 UTC+1, Victor Lazzarini <victor.lazzarini@mu.ie> a écrit :
Vector is only a thin wrapper over ARRAYDAT.
In the case of audio-rate arrays, the data is arranged in rows of ksmps MYFLT samples,
one for each array item. Once you get the data pointer, you can access each member as data[n + i*ksmps], where n is sample index and i is the array index.
Prof. Victor Lazzarini
Maynooth University
Ireland
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
|