[Csnd] Computation difference between Zak and Audio Arrays

Hello everybody,

Since I use the ambisonic Udos from Martin Neukom where he uses the ZAK system over creating audio arrays, I was wondering if there is a significant performance difference between using global audio arrays and the zak system.
Somewhere I heard that audio arrays are quite problematic because of a lot copying pasting data around.

Can someone give me a insight?
Greetings
Philipp
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        Issues · csound/csound · GitHub
Discussions of bugs and features can be posted here

Zak is quite an antiquated system, I would use bus channels instead.

The copying issue is only to do with UDOs, but zak would also involve copying stuff so no gain there.

Prof. Victor Lazzarini
Maynooth University
Ireland

You mean the chnset and chnget opcodes? I never used them, will investigate.

And there is no performance problem when I send a array made with chnset to an Udo?

There should be no problem if ksmps, sr etc is all the same between udo and source. If they aren't you can't use global objects like channels or global variables, you need to pass them as inputs to the UDO.

Prof. Victor Lazzarini
Maynooth University
Ireland

But is there a difference in computation using channels over global variables?
Or is this a style question?
Is a channel doing something different on the c side then creating a vector of size ksmps?

Very little difference, and it's tidier.

Prof. Victor Lazzarini
Maynooth University
Ireland

actually i always wanted to see a version of martin neukom's UDOs with chnset/chnget. i have the same opinion as victor about the zak opcodes, and i think martin just used them because he was familiar with them from old times.

I already rewrote the encoding Udo with audio arrays. When I will have time in the next weeks I will rewrite some of them with chnset/chnget and will share them.

So it’s possible wo just use the channel name as string as input to an Udo?

Audio arrays are probably OK too.

great. please send me; i will be happy to review the code, and then we can put it in the new version of the flossmanual.

That would be great!