Csound Csound-dev Csound-tekno Search About

[Cs-dev] Documentation

Date2005-10-09 17:07
Fromjpff@codemist.co.uk
Subject[Cs-dev] Documentation
I have done a search over the entry[12].c against the manual and the
following are not obviously accounted for

cggoto
cogoto
goto
loop_g
loop_ge
loop_l
loop_le
mod
nlalp           Is this not subject to a patent???
printf
printf_i
soundouts
sprintfk
strcatk
strcmpk
strcpyk

and the following are probably OK but it was not obvious

!=
$label
&&
:a
:i
:k
<
<=
=
==
>
>=
a
add
div
k
mul
sub
||

==John ffitch


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-10-09 18:56
FromIstvan Varga
SubjectRe: [Cs-dev] Documentation
jpff@codemist.co.uk wrote:

> I have done a search over the entry[12].c against the manual and the
> following are not obviously accounted for
> 
> cggoto
> cogoto

Internal opcodes to which some specific uses of if..then expand.
cggoto evaluates the boolean expression both at init and perf time,
and jumps to the label if the condition is true. cogoto jumps at
i-time if the condition is not true, and always jumps at performance
time.
Not sure if these should actually be documented.

> goto

Well, I would have assumed this one to be already documented !

> loop_g
> loop_ge
> loop_l
> loop_le

Were discussed on the lists a few times, and a copy of an earlier
message explaining the syntax of these and some other new opcodes
is included below.

> mod

This is an internal opcode that implements the % operator, and
should not necessarily be documented.

> nlalp           Is this not subject to a patent???

If I recall correctly, this opcode was removed at some point in time,
but was added again as part of a group of opcodes ported from CsoundAV
by Andres Cabrera this year.

> printf
> printf_i

Also documented below.

> soundouts

Same as soundout, but stereo:

     soundouts a1, a2, ifilcod, iformat

> sprintfk
> strcatk
> strcmpk
> strcpyk

These are already documented as sprintf, strcat, strcmp, and
strcpy, respectively, and the "k" versions that are mentioned
in the manual differ only in running both at i- and k-rate,
as opposed to running at i-rate only.

> and the following are probably OK but it was not obvious
> 
> !=
> $label
> &&
> :a
> :i
> :k
> <
> <=
> =
> ==
> 
>>=
> 
> a
> add
> div
> k
> mul
> sub
> ||

Most of the above are either well known and already documented
basic arithmetic, logical, and relational operators, or their
internal representation which is probably best to keep undocumented.
For example, the following expression
   ifoo * ibar
is expanded by the parser to something like
   #i0   mul.ii ifoo, ibar

-------------------------------------------------------------------

jpff@codemist.co.uk wrote:

 >  Istvan>      ftfree    ifno, iwhen

Deletes function table "ifno", at init time if iwhen is zero,
otherwise registers the table number for being deleted at note
deactivation.

 >  Istvan>      ftgentmp  ifno, ip2dummy, ilength, igen, iarg1, ...

The correct syntax is:

ifno    ftgentmp ip1, ip2dummy, ilength, igen, iarg1, ...

This opcode is the generally the same as ftgen, but if an automatic
table number is requested with ip1=0, the table will be deleted at
note deactivation.

 >  Istvan>      loop_g    indx, idecr, imin, label

Is equivalent to, but is shorter and faster than:

indx    =  indx - idecr
         if (indx > imin) igoto label

 >  Istvan>      loop_g    kndx, kdecr, kmin, label

kndx    =  kndx - kdecr
         if (kndx > kmin) kgoto label

 >  Istvan>      loop_ge   indx, idecr, imin, label

indx    =  indx - idecr
         if (indx >= imin) igoto label

 >  Istvan>      loop_ge   kndx, kdecr, kmin, label

kndx    =  kndx - kdecr
         if (kndx >= kmin) kgoto label

 >  Istvan>      loop_l    indx, iincr, imax, label

indx    =  indx + iincr
         if (indx < imax) igoto label

 >  Istvan>      loop_l    kndx, kincr, kmax, label

kndx    =  kndx + kincr
         if (kndx < kmax) kgoto label

 >  Istvan>      loop_le   indx, iincr, imax, label

indx    =  indx + iincr
         if (indx <= imax) igoto label

 >  Istvan>      loop_le   kndx, kincr, kmax, label

kndx    =  kndx + kincr
         if (kndx <= kmax) kgoto label

 >  Istvan>      printf    Sformat, ktrig, ...

Prints at control rate whenever ktrig is both greater than zero and
different from the previous value which is assumed to be zero at note
initialization. The format string and argument list are similar to
the C function.

 >  Istvan>      printf_i  Sformat, itrig, ...

Prints at i-time if itrig is greater than zero.

 >  Istvan> In addition, the sources include the new LADSPA/DSSI plugin host
 >  Istvan> opcodes by Andres Cabrera.
 >
 > Are these all described in the manual?

I did not write those opcodes, but I think they are not finished yet,
and some functionality is not implemented.


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-10-10 08:15
Fromjpff@codemist.co.uk
SubjectRe: [Cs-dev] Documentation
I have added some documentation for more of the missing opcodes.
I am however concerned about the opcode add.  This is supposed to be
internal, but could clash with a valid signal name.  Apart from the
new parser it might be a good idea to rename this.
==John ffitch


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-10-10 08:46
FromIstvan Varga
SubjectRe: [Cs-dev] Documentation
jpff@codemist.co.uk wrote:

> I have added some documentation for more of the missing opcodes.
> I am however concerned about the opcode add.  This is supposed to be
> internal, but could clash with a valid signal name.  Apart from the
> new parser it might be a good idea to rename this.

I think the opcode only exists with names like add.ii, add.kk, etc.,
and not directly as "add". So, it may not actually conflict with an
a-rate variable named "add".


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net