Re: [Csnd-dev] [EXTERNAL] Re: [Csnd-dev] expression with multiple outputs
Victor Lazzarini <[email protected]> Mon, 22 Sep 2025 12:55:40 +0000
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <DU0PR02MB83385206D4C8FB0C6CF5E2F08B12A@DU0PR02MB8338.eurprd02.prod.outlook.com> |
Yes, I think so. Can you open a ticket for enhancement? ________________________________ From: Csound-developers <[email protected]> on behalf of joachim heintz <[email protected]> Sent: Monday 22 September 2025 13:45 To: [email protected] <[email protected]> Subject: Re: [Csnd-dev] [EXTERNAL] Re: [Csnd-dev] expression with multiple outputs yes what you say is what i had in mind: "There could be a section in the manual on inlined opcodes giving examples where it can be noted that only opcodes with one output may be inlined." in the case of pan2: might it be an idea to add an array output, as eduardo mentioned? On 22/09/2025 20:42, Victor Lazzarini wrote: > What do you have in mind in terms of documentation? > > There could be a section in the manual on inlined opcodes giving examples where it can be noted that only opcodes with one output may be inlined. > > Note that this is a common approach in other languages that have multiple outputs. In Python tuples are used to handle this, > > def fun(): return 1, 2 > > fun() > (1,2) > > def fun2(a,b): return a, b > > fun2(fun()) > TypeError: fun2() missing 1 required positional argument 'b' > > fun2(fun()[0], fun()[1]) > (1,2) > > In Csound we can do similarly with arrays. > > Prof. Victor Lazzarini > Maynooth University > Ireland > >> On 21 Sep 2025, at 23:13, joachim heintz <[email protected]> wrote: >> >> ok --- thanks to all for the explanations and thoughts. >> i wonder where is a good place to document it. >> or is it already anywhere documented? >> >>> On 22/09/2025 04:41, Victor Lazzarini wrote: >>> It's a can of worms. I have discussed this with Steven and we concluded it's a bad idea. >>> Prof. Victor Lazzarini >>> Maynooth University >>> Ireland >>>>> On 21 Sep 2025, at 19:25, Hlöðver Sigurðsson <[email protected]> wrote: >>>> >>>> >>>> in theory the out could infer the [a,a] after I finish this behemoth change regarding struct arrays I could take a look at this >>>> >>>>> On Sun, 21 Sept 2025 at 17:17, Victor Lazzarini <000010b17ddd988e- [email protected] <mailto:000010b17ddd988e-dmarc- [email protected]>> wrote: >>>> >>>> No, we don't have that syntax and we have decided a while ago that >>>> we would not try to implement it. >>>> >>>> So in summary, a multi-output opcode cannot be used inline like this. >>>> >>>> Prof. Victor Lazzarini >>>> Maynooth University >>>> Ireland >>>> >>>> > On 21 Sep 2025, at 14:35, joachim heintz <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> > >>>> > *Warning* >>>> > >>>> > This email originated from outside of Maynooth University's Mail >>>> System. Do not reply, click links or open attachments unless you >>>> recognise the sender and know the content is safe. >>>> > >>>> > my assumption was that if out(a1,a2) works, it should also work >>>> if the >>>> > two arguments are the outputs of an expression, like here. >>>> > >>>> > >>>> >> On 21/09/2025 22:28, Eduardo Moguillansky wrote: >>>> >> pan2 returns two outputs, not an array. So I would say that it is a >>>> >> limitation in the sense that for that to work one would need to >>>> add a >>>> >> variant of pan2 which returns an array. >>>> >> >>>> >> On Sun, Sep 21, 2025 at 3:18 PM joachim heintz >>>> <[email protected] <mailto:[email protected]> >>>> >> <mailto:[email protected] <mailto:[email protected]>>> wrote: >>>> >> >>>> >> nchnls = 2 >>>> >> 0dbfs = 1 >>>> >> >>>> >> instr 1 >>>> >> sound:a = pinkish(.1) >>>> >> out(pan2(sound,random:i(0,1))) >>>> >> endin >>>> >> schedule(1,0,1) >>>> >> >>>> >> error: opcode 'pan2' for expression with arg types ai >>>> returns out-args >>>> >> != 1, line 14 >>>> >> >>>> >> is this a limitation, or is it supposed to work? >>>> >> >>>> >> thanks - >>>> >> joachim >>>> >> >>>>