Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] Re: [Csnd] Expseg, Line, Expon, etc... BUG

Date2005-01-25 14:59
From"Art Hunkins"
SubjectRe: [Cs-dev] Re: [Csnd] Expseg, Line, Expon, etc... BUG
I agree with Istvan completely on this issue.

In summary: leave (especially the most-used) opcodes as is that are
consistent with their documentation. Assuming that the documentation is
clear, adjust (if absolutely necessary) opcode performance to what the
documentation says - because otherwise we have a "bug."

With regard to, for example, line and linseg: although current behavior may
*seem* inconsistent and counterintuitive, there are alternative ways of
conceptualizing them: line may be thought of as setting a vector or slope
independent of actual duration, whereas linseg is essentially slices of time
and ways of getting to new values at points in time smoothly. At any rate,
there *is* understandable logic behind the way things are.

I for one don't relish having to go through all my Csound compositions and
multiple versions (up to 16 per composition) to see if they still work. If
they worked properly at the time of their composition, I'd like them to work
now - and in the future.

Art Hunkins

----- Original Message -----
From: "Istvan Varga" 
To: ; 
Sent: Tuesday, January 25, 2005 4:26 AM
Subject: [Cs-dev] Re: [Csnd] Expseg, Line, Expon, etc... BUG


> jlato@mail.utexas.edu wrote:
>
> > In my opinion, line and expon should behave the way they currently do
(and I
> > think linseg and transeg should work in the same manner to be
consistent).
>
> Linseg and expseg do behave the same way as line and expon (i.e.
> continuing the last segment indefinitely). In fact, line and expon
> are just linseg and expseg limited to a single segment. There is
> nothing to be changed here, as all the opcodes are consistent with
> the documentation.
> Changing opcodes in an incompatible way is generally a bad thing:
> the change must either be fully backward compatible (e.g. adding new
> optional arguments), or attempts to use the opcode in the old way
> should result in an immediate fatal error so that the user at least
> has a chance to know about the change. It is very difficult to debug
> problems caused by opcodes of which the behavior was changed in a
> subtle way. So, the suggested solutions are (in decreasing order of
> preference):
>    1. if there is no actual bug - the behavior of the opcode is simply
>       not intuitive to new users or the documentation is confusing,
>       the documentation should be made consistent with the opcode,
>       and not vice versa (unfortunately this is not what was done in
>       the case of vco and FLjoy)
>    2. make changes in a backward compatible way, by adding new optional
>       arguments, or creating a new opcode
>    3. make incompatible changes that will make an orchestra that uses
>       the opcode in the old way fail, by printing a syntax error message
>       and terminating compilation. This way, it is possible to know
>       about the change, and after checking a recent manual, the orchestra
>       can be fixed easily.
>    4. make incompatible changes that will make the opcode behave in a
>       subtly different way; *never do this*, debugging and fixing
>       problems caused by this type of change can be very difficult
>       (think of one changed opcode in a >100k .orc file: everything would
>       seem to work OK, just bad sound is generated, and you do not know
>       why). There is never a real reason to choose this solution instead
>       of the above mentioned ones.
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
> Tool for open source databases. Create drag-&-drop reports. Save time
> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> Csound-devel mailing list
> Csound-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/csound-devel



-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net