| In general, I think this kind of requirement leaves the scope of Csound and enters the scope of a new software synthesis system.
Recently, James McCartney, the author of SuperCollider, expressed a wish that he had not designed a new language from scratch, but had embedded his synthesis engine into, and made his synthesis engine programmable in, another, more standard, more widely used high-level language.
In my view, this could now be done in a widely used, object-oriented scripting language such as Scheme, Python, or Lua with a DSP graph in C++ and unit generators from the STK, CLAM or some other usable C++ synthesis class library wrapped up in the scripting language. My experience suggests that getting this to work well is about 6 to 12 man-months of work. I currently am working on a new version using the STK in either Python or Lua, but I also plan to take a close look at Scheme. Lua is attractive because it is reasonably fast and the whole language can be embedded in a single small C library. Lua also has a working just-in-time compiler for Intel assembler!
I am not certain whether I will finish this stuff -- I have too much to do in other areas. But it's fun to poke around in.
For a sample of this approach, see the presentation at the recent Lua conference, "Audio Scripting with Lua" (google should find it).
At various times I have coded parts or most of such a new system, but I was never really happy about enough of the details. The basic concepts have to be worked out extremely well. I have a new respect for Barry Vercoe, Paul Lansky, James McCartney, Bill Shottstaedt, Perry Cook, Miller S. Puckette, and the others who have developed usable systems of this sort.
The real problem with doing something new like this is leaving behind all the orcs and scos, the community, the user-defined opcodes, the textbooks, the classes, etc., etc., etc.
Still, by building on experience and using carefully chosen open source foundations, it should be possible to create something that is simpler, more flexible, faster, and easier to build than any of the existing systems.
Regards,
Mike
-----Original Message-----
From: Istvan Varga
Sent: Oct 28, 2005 4:28 AM
To: csound-devel@lists.sourceforge.net
Subject: Re: [Cs-dev] OSX CsoundVST issues
Victor Lazzarini wrote:
> I would add another one to the list: possibility of loading, initialising
> and running opcodes from the API only.
This may be tricky as the opcodes depend on a global environment, that is,
various members of the CSOUND structure, and expect the presence of a parent
instrument instance (for run-time parameters like the release flag, MIDI
channel, etc.) and instrument text (for compile time parameters like the
count, name, and type of arguments - a common example is the use of the
p->INOCOUNT and similar macros). So, to run an opcode directly through the
API, a fake environment with an instrument and instrument instance needs
to be set up, as well as several variables in CSOUND should be initialized;
this mode of operation probably cannot be mixed with normal performance on
the same Csound instance.
Nevertheless, some simple opcodes may work without problems (obviously,
there are many that do not make sense, like goto and anything related to
instument control).
-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.
Get Certified Today * Register for a JBoss Training Course
Free Certification Exam for All Training Attendees Through End of 2005
Visit http://www.jboss.com/services/certification for more information
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel
-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.
Get Certified Today * Register for a JBoss Training Course
Free Certification Exam for All Training Attendees Through End of 2005
Visit http://www.jboss.com/services/certification for more information
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |