| > On 9/12/07, Michael Gogins wrote:
>> A Python orchestra would be Python code to "compile" the existing C
>> opcodes;
>> a replacement for the orc language. The orc language in Csound is not
>> interpreted; it is "compiled" into a DSP graph (a linked list of
>> instrument
>> instances, each of which is a linked list of opcode instances). All
>> software
>> synthesizers pretty much work this way.
>
> I wasn't aware of this--it does sound similar to the internals of
> supercollider (my understanding, anyway). So this suggests that there
> are two general approaches:
>
> 1. Compile to a DSP graph, which presumably gets executed
> more-or-less entirely in C.
>
> 2. Go ahead and "interpret" by having Python (or whatever) running at
> k-rate.
The next step in my prototype Lua synthesizer is to do just that. I am
sceptical that it will really perform, but we will see.
>
> It seems like the second option might be simpler and more flexible,
> but there would be more worries about performance.
There is a third approach, which is to use a language that has high
performance and a built-in compiler. Examples of such languages are Lisp,
OCaml, and C#. Java also might be considered in this category although the
user would need to install the compiler. Such languages can run 1/2 to 1/3
as fast as C.
I wrote a prototype synthesizer in Java, and it was indeed 1/3 to 1/4 as
fast as Csound. But of course, this would not really be satisfactory.
There are a few complete, working software synthesizers in Java, but they
have never become very popular, almost certainly because of lack of
performance.
But I think this approach could work. Common Lisp Music and Nyquist are both
examples of Lisp-based synthesizers in this category. Some people actually
meke music with CLM. If the synthesizer had built-in parallelization, this
would be an extremely viable approach.
Regards,
Mike
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |