Re: [Csnd-dev] new API
Michael Gogins <[email protected]>
| Newsgroups | gmane.comp.audio.csound.devel |
|---|---|
| Message-ID | <CAFswGP1WK80KEGyRdNOeDqre_TK9UPkLXW=qSJGqDZ9+Z7G1Jw@mail.gmail.com> |
Looks OK to me. My main concerns: (1) Be able to compile a CSD as a text blob as well as from a filename. Using a flag in csoundCompileCsd looks like it should do that, and may be better in that it allows changing the CSD from blob to filename at run time. (2) Keep all API calls easy to wrap in other language interfaces, especially Python and JavaScript. That doesn't seem to have changed. I may have suggested that the function pointers in the CSOUND_ struct should really be in an array, as in a C++ class, such that adding to this array does not change the size of the actual CSOUND_ struct. Please give that a thought. Best, Mike ----------------------------------------------------- Michael Gogins Irreducible Productions http://michaelgogins.tumblr.com Michael dot Gogins at gmail dot com On Wed, Jul 24, 2024 at 12:32 PM vlz <[email protected]> wrote: > Hi all, > > I started work on the new API following some of François’ recommendations. > The idea is to consolidate the > interface, make it simpler and start removing functionality that has not > been used by hosts since 6.x. > > I have completed a minimal set in the feature/moduleapi branch. The > relevant files are csound_new.h > (the API proper) and csoundCore_new.h (with some additions relating to > changes). > > Not all of the API is implemented (I will start working on it next), but > it’s out there now for comment. > > Most notably, the following things have changed: > > 1) The number of compilation function variants is reduced. > > 2) We are not exposing the buffering anymore, so csoundPerformBuffer() is > gone. This has been > hardly used, host developers seem to prefer access to spin/spout. The > single-short csoundPerform() is > also gone, it is easily duplicated by csoundPerfomKsmps() in a loop. > > 3) Audio IO callback setting has been removed, for similar reasons. > > 4) MIDIO IO callback setting has been consolidated into a single function. > > 5) Functions for events and table access were consolidated. Graphing > callbacks etc are also removed since > hosts can just read from tables and do their own displays as they see fit. > > 6) Interfaces to threading, circular buffers, etc are gone. > > 7) Cscore functions are gone. > > 8) UDP server functions are gone (this functionality is offered by > options, so there is no need to duplicate it here). > > The idea is to make it less overwhelming for host developers. > > Victor >