Re: [Csnd-dev] [EXTERNAL] [Csnd-dev] New API progress report
Rory Walsh <[email protected]>
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <CAMJR=HMA+_0NCcVuyx1j+dpwGZXGd7KCBhj3f9F59mc2BLH5XA@mail.gmail.com> |
I can access host data using the CPOF? I never thought of this. On Sat, 27 Jul 2024 at 12:51, vlz <[email protected]> wrote: > I think you should use hostdata for passing anything from host to Csound > and vice-versa. > > It is probably more straightforward as you just pass the pointers > directly. Would that be a problem? > > Prof. Victor Lazzarini > Maynooth University > Ireland > > On 27 Jul 2024, at 11:12, Rory Walsh <[email protected]> wrote: > > > With regards to: > > > csoundQueryGlobalVariable > > csoundCreateGlobalVariable > > I have been using these methods to pass custom data structs between my > opcodes and my host. I should have mentioned this earlier, but they slipped > my attention. For example, some of my Csound opcodes can access widget > classes owned by Cabbage. Perhaps it was never meant to be used in this > way, but it's super powerful. I'm not sure how I can do this without them? > > On Sat, 27 Jul 2024 at 11:20, Victor Lazzarini < > [email protected]> wrote: > >> 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 >> > > >> > > >> > >> >>