Re: [Csnd-dev] [EXTERNAL] [Csnd-dev] instr0 non-globals affecting variable assignment in instruments

Richard Knight <[email protected]> Mon, 8 Dec 2025 11:33:40 +0000
Newsgroups gmane.comp.audio.csound.devel
Organization 1bpm
Message-ID <[email protected]>
Hi,

Appreciate you both looking into this and the other issue so quickly.
I'm moving a quite large codebase and plugins to Csound 7 and have a 
performance on Thursday so hoping to take it out in public then :)

Thank you all for your efforts and work, I'm excited to finally get 
round to using CS7 in earnest.
RK

On 2025-12-08 10:03, Victor Lazzarini wrote:
> Hi Richard,
> 
> I found the bug and sent in a PR
> 
> https://github.com/csound/csound/pull/2380
> 
> fixing this. Thanks for reporting it.
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
> 
>> On 7 Dec 2025, at 23:54, Richard Knight <[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.
>> 
>> I'm moving to Csound 7 and some of my collection of UDOs don't work -
>> there are some patterns such as the one below in some files, which
>> caused compilation to fail with the following error:
>> 
>> error: Array variable name 'Sresult' used before as a different type 
>> at
>> line 14
>> SEMERR: Array variable name 'Sresult' used before as a different type 
>> at
>> line 14
>> 
>> I can see why this is happening (conflicting types of Sresult) and how
>> to work around, but is this expected behaviour?
>> Notably this seems to only occur only in opcodes and if arrays are
>> involved - if I move the contents of the opcode into an instr then it
>> works OK, and numeric/string primitives work OK in this pattern.
>> 
>> 
>> Sresult = "anything"
>> 
>> opcode test1, S[], 0
>>        Sresult[] fillarray "t1", "t2"
>>        xout Sresult
>> endop
>> 
>> instr 1
>>        Sresult[] test1
>> endin