Re: [Csnd-dev] [EXTERNAL] Re: [Csnd-dev] expression with multiple outputs
joachim heintz <[email protected]> Mon, 22 Sep 2025 22:08:08 +0900
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <[email protected]> |
great, thanks! (i will look what you do and learn =) On 22/09/2025 21:53, Eduardo Moguillansky wrote: > I can add a variant of pan2, if needed > > On Mon, Sep 22, 2025 at 2:45 PM joachim heintz <[email protected] > <mailto:[email protected]>> wrote: > > 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] > <mailto:[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] <mailto:[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:dmarc- > [email protected]> <mailto:000010b17ddd988e-dmarc- > <mailto:000010b17ddd988e-dmarc-> [email protected] > <mailto:[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]> > >>>> <mailto:[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]>> > >>>> >> <mailto:[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 > >>>> >> > >>>> >