Re: [Csnd-dev] is this also a new-style UDO issue?
joachim heintz <[email protected]> Sat, 27 Sep 2025 18:01:27 +0900
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <[email protected]> |
yes i noticed this, too, and here again the version from my last email:
still i don't understand why this code returns "False":
opcode one3(arrr:k[]):(B)
ans:B init true
for el in arrr do
if el != 1 then
ans = false
kgoto end
endif
od
end: xout(ans)
endop
instr 1
a:k[] = [1,1,1]
if one3(a) then
printks("True\n",0)
else
printks("False\n",0)
endif
turnoff
endin
it also returns "False" when i set in the UDO:
ans:B = true
On 27/09/2025 16:17, vlz wrote:
> b is an i-time boolean, so you should use prints not printks. B is k-time instead.
>
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
>> On 27 Sep 2025, at 02:13, joachim heintz <[email protected]> wrote:
>>
>> it seems to be more related to the init opcode --- either not working properly for booleans, or used in a wrong way?
>> this version with assignment works:
>>
>> opcode one3(arrr:k[]):(b)
>> ans:b = true
>> xout(ans)
>> endop
>>
>> instr 1
>> a:k[] = [1,1,1]
>> if one3(a) then
>> printks("True\n",0)
>> else
>> printks("False\n",0)
>> endif
>> turnoff
>> endin
>>
>>
>>> On 27/09/2025 09:51, joachim heintz wrote:
>>> opcode one3(arrr:k[]):(b)
>>> ans:b init true
>>> //here is of course other code
>>> xout(ans)
>>> endop
>>> instr 1
>>> a:k[] = [1,1,1]
>>> if one3(a) then
>>> printks("True\n",0)
>>> else
>>> printks("False\n",0)
>>> endif
>>> turnoff
>>> endin
>>> it should print "True" but it prints "False".
>>> it works when i write
>>> if true then
>>> ...
>>> by the way: how can i print the boolean value?
>>> joachim