| I appreciate the lack of C++ on many platforms and do not suggest it.
However, there are some things that could be done that would improve the
Csound code greatly.
I have harped sufficiently on plugin opcodes, so won't do more than mention
it.
Csound should be rebuilt with type double everywhere instead of type float.
The machines are big enough now that this should not bulk up the code, and
most FPUs by default take and return doubles, so this is really the native
type for computer math. It should actually be a bit faster on many
machines. I bet we would distinctly hear a favorable difference. I think
audio quality should be our number one object, especially now that that
professional audio is moving to higher quality, e.g. 24 bits.
Similarly the score and orchestra parsers should be able to read number
strings with 15 digits.
Although Csound should not be rewritten in C++, it could be rewritten with
classes. What I mean is structures that collect data used for some purpose
and work with functions of the form function(class *ptr). There are
already, implicitly, a number of classes in Csound. They should be made
more regular. This would help when it comes to making Csound re-entrant.
This I fear is a dismaying task and certainly requires either mucho time or
someone intimately familiar with what is really going on in there.
The class reorganization should make it possible to have a cleaner
separation of layers between the orchestra compiler, the score compiler,
the DSP stuff, and the input and output stuff, which in turn would make
maintaining the code base for so many platforms easier.
I do not particularly care one way or the other about changing the syntax
of the orchestra as some have suggested. If it is changed of course it is
vital that all the old syntax be kept for backward compatibility.
Well, that's my 2 cents again.
|