Re: [Csnd-dev] [EXTERNAL] [Csnd-dev] strange string behaviour
Victor Lazzarini <[email protected]> Sun, 14 Sep 2025 00:15:52 +0000
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <[email protected]> |
There is no issue, the printout is what I would have expected. Snew runs only at i-time, sprintfk/strcatk run at i-time and perf-time, printf only at perf-time. i-time: Snew >>>> "" Sline >>>> "1\n" Snew >>>> "1\n" p-time: Sline >>>> "1\n1\n" Snew >>>> "1\n1\n1\n" Sline = 1 1 Snew = 1 1 1 turnoff Prof. Victor Lazzarini Maynooth University Ireland > On 14 Sep 2025, at 01:01, joachim heintz <[email protected]> wrote: > > yes but there is only one cycle because of the turnoff. > so why is it repeating the string? > > this code gets the same result although it clearly should only run one cycle: > Snew = "" > if timeinstk() == 1 then > Sline = sprintfk("%s%d\n",Snew,1) > Snew = strcatk(Snew,Sline) > printf("Sline = \n%s\n",1,Sline) > printf("Snew = \n%s\n",1,Snew) > endif > > i tried several versions and it has something to do with the line > Snew = "" > > i will try to get closer and then file an issue. > >> On 13/09/2025 23:35, Victor Lazzarini wrote: >> is printf running at perf time? the string opcodes are "k" >> Prof. Victor Lazzarini >> Maynooth University >> Ireland >>>> On 13 Sep 2025, at 15:11, joachim heintz <[email protected]> wrote: >>> >>> due to strange problems with an old csd i came to this: >>> >>> instr 1 >>> Snew = "" >>> Sline = sprintfk("%s%d\n",Snew,1) >>> Snew = strcatk(Snew,Sline) >>> printf("Sline = \n%s\n",1,Sline) >>> printf("Snew = \n%s\n",1,Snew) >>> turnoff >>> endin >>> schedule(1,0,1) >>> >>> i expect Sline to be 1 and Snew also. but as printout shows: >>> Sline = >>> 1 >>> 1 >>> Snew = >>> 1 >>> 1 >>> 1 >>> >>> am i doing something silly, or what is happening here?