Re: [Csnd-dev] UDO problem in latest develop
Dave Seidel <[email protected]> Mon, 10 Nov 2025 12:25:58 -0500
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <CAMnrweBQho77555=mHit9J_-kKng5hGrD72P_H697=Fmq_Em5g@mail.gmail.com> |
I can confirm that the problem is not present if I use the SHA Joachim pointed at. On Mon, Nov 10, 2025 at 12:21 PM Dave Seidel <[email protected]> wrote: > Thanks, Joachim, I will try that. And thanks Victor, I missed Joachims's > original report. > > On Mon, Nov 10, 2025 at 12:19 PM joachim heintz <[email protected]> > wrote: > >> hi dave - >> i have opened a ticket for a related issue. >> i have no problems when i checkout commit >> 728c8e4fdc6f1ca30da9577bed651ec79af59057. >> perhaps this is an option for you, too. >> best - >> joachim >> >> On 10/11/2025 18:08, Dave Seidel wrote: >> > But I am grateful to have a workaround! >> > >> > On Mon, Nov 10, 2025 at 12:06 PM Dave Seidel <[email protected] >> > <mailto:[email protected]>> wrote: >> > >> > My piece actually contains 5 UDOs, all of which were written using >> > the new style, and none of them work. Hopefully there will be a >> > testable fix soon so I don't have to rewrite a substantial part of >> > the code. :-) >> > >> > On Mon, Nov 10, 2025 at 11:59 AM Dave Seidel <[email protected] >> > <mailto:[email protected]>> wrote: >> > >> > To confirm, the UDO works if defined and invoked using the old >> > syntax. >> > >> > On Mon, Nov 10, 2025 at 11:55 AM Dave Seidel >> > <[email protected] <mailto:[email protected]>> wrote: >> > >> > Thanks, Hlöðver. >> > >> > On Mon, Nov 10, 2025 at 11:52 AM Hlöðver Sigurðsson >> > <[email protected] <mailto:[email protected]>> wrote: >> > >> > I made a reproducible test here, it fails in instr 2, >> > instr 1 works, so you have a workaround for now, by >> > placing the arguments positionally "old-style" while I >> > make a fix >> > >> > <CsoundSynthesizer> >> > <CsOptions> >> > -n -d >> > </CsOptions> >> > <CsInstruments> >> > sr = 44100 >> > ksmps = 64 >> > nchnls = 2 >> > 0dbfs = 1 >> > >> > giSine ftgen 0, 0, 4096, 10, 1 >> > >> > opcode TestXout, aa, ikai >> > ifreq, koff, aamp, itbl xin >> > koff1 = koff >> > koff2 = 2 * koff >> > >> > a1 poscil aamp, ifreq+koff1, itbl >> > a2 poscil aamp, ifreq+koff2, itbl >> > a3 poscil aamp, ifreq-koff1, itbl >> > a4 poscil aamp, ifreq-koff2, itbl >> > >> > aL = a1 + a3 >> > aR = a2 + a4 >> > >> > xout aL, aR >> > endop >> > >> > instr 1 >> > ifreq = 440 >> > koff = 0.004 >> > aenv linen 0.5, 0.01, p3, 0.01 >> > >> > ; This should work - unpacking the outputs >> > aL, aR TestXout ifreq, koff, aenv, giSine >> > out aL, aR >> > endin >> > >> > instr 2 >> > ifreq = 440 >> > koff = 0.004 >> > aenv linen 0.5, 0.01, p3, 0.01 >> > >> > ; This tests the regression - calling UDO with >> > multiple outputs directly in out statement >> > out TestXout(ifreq, koff, aenv, giSine) >> > endin >> > >> > </CsInstruments> >> > <CsScore> >> > i 1 0 0.1 >> > i 2 0 0.1 >> > </CsScore> >> > </CsoundSynthesizer> >> > >> > On Mon, 10 Nov 2025 at 18:51, Dave Seidel >> > <[email protected] <mailto:[email protected]>> >> > wrote: >> > >> > This is how it's being used in context: >> > >> > instr Drone >> > idur = p3 >> > iamp = ampdb(p4) / 7 >> > ifreq = p5 >> > >> > icps = ifreq / 4 >> > icps2 = icps * 1.5 >> > icps3 = icps * 2 >> > prints("drones: %f, %f, %f\n", icps, icps2, >> icps3) >> > >> > aenv = linen(iamp, 3, idur, 3) >> > >> > a1L, a1R = RissetHarmOsc(icps, 0.004, aenv, >> > giPrime) >> > a2L, a2R = RissetHarmOsc(icps2, 0.005, aenv, >> > giPrime) >> > a3L, a3R = RissetHarmOsc(icps3, 0.006, aenv, >> > giPrime) >> > ga_drone_L += a1L+a2L+a3L >> > ga_drone_R += a1R+a2R+a3R >> > >> > printks("drone %f, %f\n", 2, ga_drone_L, >> > ga_drone_R) >> > endin >> > >> > >> > On Mon, Nov 10, 2025 at 11:48 AM Dave Seidel >> > <[email protected] >> > <mailto:[email protected]>> wrote: >> > >> > I'm not getting any error message at all. >> > >> > On Mon, Nov 10, 2025 at 11:45 AM Hlöðver >> > Sigurðsson <[email protected] >> > <mailto:[email protected]>> wrote: >> > >> > this is the error you are seeing? >> > >> > > error: opcode 'RissetHarmOsc' for >> > expression with arg types icai returns out- >> > args != 1, line 43 >> > >> > On Mon, 10 Nov 2025 at 18:41, Hlöðver >> > Sigurðsson <[email protected] >> > <mailto:[email protected]>> wrote: >> > >> > I'm taking a look at this now, I don't >> > know if my changes had anything to do >> > with it, not unlikely >> > >> > On Mon, 10 Nov 2025 at 18:39, Dave >> > Seidel <[email protected] >> > <mailto:[email protected]>> wrote: >> > >> > The following UDO does not work with >> > the latest develop sources. The >> > print statement shows that all four >> > inputs argos are coming in at 0; If >> > I revert to the 7.0.0-beta.9 tag, it >> > works fine. >> > >> > opcode >> > >> RissetHarmOsc(freq:i,ofs:k,amp:a,tbl:i):(a,a) >> > koff1 = ofs >> > koff2 = 2 * ofs >> > koff3 = 3 * ofs >> > koff4 = 4 * ofs >> > >> > printks(">> RissetHarmOsc ->%f >> > %f %f %f\n", 5, freq, ofs, amp, tbl) >> > >> > ; a1 = poscil3(kamp, freq, tbl >> > a2 = poscil3(amp, freq+koff1, >> tbl) >> > a3 = poscil3(amp, freq+koff2, >> tbl) >> > a4 = poscil3(amp, freq+koff3, >> tbl) >> > a5 = poscil3(amp, freq+koff4, >> tbl) >> > a6 = poscil3(amp, freq-koff1, >> tbl) >> > a7 = poscil3(amp, freq-koff2, >> tbl) >> > a8 = poscil3(amp, freq-koff3, >> tbl) >> > a9 = poscil3(amp, freq-koff4, >> tbl) >> > aL = a2+a4+a6+a8 >> > aR = a3+a5+a7+a9 >> > >> > aoutL, aoutR = reverbsc(aL, aR, >> > 0.4, 4000) >> > xout(aoutL+aL, aoutR+aR) >> > ; xout(aL, aR) >> > endop >> > >> > example calling statement: >> > >> > a1L, a1R = RissetHarmOsc(icps, >> > 0.004, aenv, giPrime) >> > >> > Has something changed to make my UDO >> > invalid in some way? I'm using this >> > code in as performance on Saturday >> > and I'm focused on preparing, but I >> > can follow up with a minimal >> example. >> > >> > >> > >> >