Re: [Csnd-dev] [EXTERNAL] [Csnd-dev] New API progress report
Tarmo Johannes <[email protected]>
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <CAPvdOzBrtXHd7x2VJQCA9srUKZ=yfqdU=+KrWgQZiDAejopjXw@mail.gmail.com> |
Hi Victor,
Regarding your issue, make sure the call is always after csoundStart()
>
Yes, that was it! I added it before starting the perfromance thread. Now
sound works, only thing is that is exit
CsoundQt crashes when destroying the circular buffer.
csoundDestroyCircularBuffer(ud->csound, ud->midiBuffer);
I tried to build Csound in debug mode to look into it (unchecked
BUILD_RELEASE) but somehow CsoundQt did not find the plugins any more after
that.
Most likely the problem is in CsoundQt code and I guess now the Csound
object gets destroyed before. I will test more later.
Anyway - it is a step forward!
tarmo
Kontakt Victor Lazzarini (<[email protected]>)
kirjutas kuupäeval L, 27. juuli 2024 kell 12:20:
> Hi Tarmo,
>
> that’s great, this is one of the reasons we needed your input, so the API
> can be tailored to the
> needs of users.
>
> Regarding your issue, make sure the call is always after csoundStart(),
> otherwise the spout will
> not have been created. Here’s a simple test to show it
>
> csoundStart(Csound);
> MYFLT *spout = csoundGetSpout(Csound);
> printf("spout = %p \n", spout)
>
> best
> ========================
> Prof. Victor Lazzarini
> Maynooth University
> Ireland
>
> > On 27 Jul 2024, at 09:31, Tarmo Johannes <[email protected]> wrote:
> >
> > Hi Victor!
> >
> > Thank you for the changes, it helps a lot.
> >
> > > csoundGetModule
> > > csoundSetMIDIModule
> > > csoundSetRTAudioModule
> >
> > Are used in config dialog to populate a menu to list the available
> modules. Now it works fine again.
> > I reverted some of my changes, left libcsnd out of libraries (this is
> good news that it is not needed any more!) and CsoundQt build fine.
> >
> > I still get crash when running a csd.
> > MYFLT *outputBuffer = csoundGetSpout(udata->csound);
> > returns 0 in some reason, I will see if I can figure out the reason
> later.
> >
> > Thanks!
> > tarmo
> >
> > Kontakt Victor Lazzarini (<
> [email protected]>) kirjutas kuupäeval L,
> 27. juuli 2024 kell 00:55:
> > Hi Tarmo,
> >
> > I put back
> >
> > > csoundGetModule
> > > csoundSetMIDIModule
> > > csoundSetRTAudioModule
> >
> > plus the set global env and the circular buffer functions. It’s in the
> repo now.
> >
> > Best
> >
> > Victor
> >
> > > On 26 Jul 2024, at 20:29, Tarmo Johannes <[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.
> > > Hi!
> > >
> > > I tried out the new API from feature/newapi branch.
> > >
> > > Building csound7 went fine, I installed it to $HOME/.local (Linux) and
> added $HOME/.local/lib to ldconfig libraries' path.
> > >
> > > First I tried it with a relatively simple Qt project using Csound C++
> API (csound.hpp). After some changes everything worked fine. One question:
> > >
> > > when before there was Csound::stop() / csoundStop() , how is it now
> the proper way to end Csound's work? Also csoundCleanup() is gone. is
> csoundReset() it that does it all?
> > >
> > > Then I went to CsoundQt and of course that is much, much more complex
> case.
> > >
> > > First - I guess libcsnd7 is not is built by default? Is it still
> existing, how should I configure it? CsoundQt uses that for recording.
> Maybe there is now a better way to rewrite the recording part.
> > >
> > > CsoundQt used the following functions that are not to be there any
> more:
> > >
> > > csoundGetModule
> > > csoundSetMIDIModule
> > > csoundSetRTAudioModule
> > >
> > > I commented these lines out for now to move on. What covers their
> functionality?
> > >
> > > There is no more circular buffer functions:
> > > csoundCreateCircularBuffer
> > > csoundReadCircularBuffer
> > > etc
> > >
> > > CsoundQt leaned heavily on them for internal MIDI handling. What is
> the correct way to handle it now?
> > > For example reading MIDI data one should set the callback like:
> > > csoundSetExternalMidiReadCallback(ud->csound, &midiReadCb);
> > >
> > > CsoundQt used to have such a function for the callback:
> > >
> > > int CsoundEngine::midiReadCb(CSOUND *csound, void *ud_, unsigned char
> *buf, int nBytes)
> > > {
> > > CsoundUserData *ud = (CsoundUserData *) ud_;
> > > Q_UNUSED(csound);
> > > int count, countVirtual;
> > > count = csoundReadCircularBuffer(ud->csound, ud->midiBuffer, buf,
> nBytes);
> > > countVirtual = csoundReadCircularBuffer(ud->csound,
> ud->virtualMidiBuffer, buf + count, nBytes - count);
> > > return count + countVirtual;
> > > }
> > >
> > > Should the host implement writing to the buffer and handling the index
> itself?
> > >
> > > Is it so that csoundSetHostImplementedMIDIIO is replaced now with
> > > PUBLIC void csoundSetHostMIDIIO(CSOUND *csound);
> > >
> > > How to deal with global variables?
> > > csoundQueryGlobalVariable
> > > csoundCreateGlobalVariable
> > > are gone,
> > >
> > > csoundGetEnv is there but no csoundSetEnv, csoundSetGlobalEnv or
> similar?
> > >
> > > at the moment I replaced them with Qt specific functions to deal with
> environment variables.
> > >
> > > What is the correct environment variable for the plugins directory,
> OPCODE7DIR64?
> > >
> > > I got CsoundQt building but it crashes when I run a file. I did not
> have time yet to dig into it, there are many possible reasons. I hope to
> continue tomorrow.
> > >
> > > Exciting!
> > > tarmo
> > >
> > > Kontakt Victor Lazzarini (<
> [email protected]>) kirjutas kuupäeval N,
> 25. juuli 2024 kell 18:27:
> > >
> > > Just another progress report for the feature/newapi branch
> > >
> > > - I have now mainlined the new API in csound.h
> > > - Updated the csound.hpp wrapper
> > > - Updated the csPerformanceThread code
> > > - Modified frontends to use it
> > > - Modified the C++ test suite
> > >
> > > It is all working, I guess frontend developers can take a look and see
> what they
> > > think.
> > >
> > > François: could you take a look at the Python wrapper? It is out of
> sync now.
> > >
> > > Victor
> > >
> > >
> >
>
>