Csound Csound-dev Csound-tekno Search About

[Cs-dev] Csound 5 Reference Manual

Date2005-11-15 12:20
FromVictor Lazzarini
Subject[Cs-dev] Csound 5 Reference Manual
I would like to start discussing a structure for the Csound 5 Manual,
which also might spark the debate on what should be included in the
standard distribution.

My idea is to first put together a lean, but updated and correct,
Reference Manual, excluding most of the user's guide text, which can
be compiled as a separate document. An initial structure for
such manual is proposed as:

Csound 5 Reference Manual

1. Csound Language
         1.1  Frontends
                 1.1.1        Csound command-line program
                 1.1.2        CsoundVST
                 1.1.3        Csoundapi~
                 1.1.4        FlCsound
                 1.1.5        TclCsound
         1.2  Orchestra Language
         1.3  Score Language
2. Csound Utilities
         2.1  Analysis utilities
         2.2  File and soundfile utilities
         2.3  Score utilities
3. Csound Host API
         3.1  The C Language API
         3.2  Language Wrappers
                 3.2.1        Python
                 3.2.2        Java
                 3.2.3        Common Lisp
                 3.2.4        Tcl/Tk
4. Csound Module API

I have included everything that seems to be working on all three platforms
(with the exception of CsoundVST I suppose). In moving towards deciding
what goes in to the standard distribution, I would like to make sure we only
include stuff that works in all platforms. Platform-dependent components,
such as frontends or plugin libraries can be distributed separately. This 
excludes
of course the platform-specific IO modules, for which an exception should
always be made.


Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth 



-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-15 13:53
FromIstvan Varga
SubjectRe: [Cs-dev] Csound 5 Reference Manual
Victor Lazzarini wrote:

> Csound 5 Reference Manual
> 
> 1. Csound Language
>         1.1  Frontends
>                 1.1.1        Csound command-line program
>                 1.1.2        CsoundVST
>                 1.1.3        Csoundapi~
>                 1.1.4        FlCsound
>                 1.1.5        TclCsound
>         1.2  Orchestra Language
>         1.3  Score Language
> 2. Csound Utilities
>         2.1  Analysis utilities
>         2.2  File and soundfile utilities
>         2.3  Score utilities
> 3. Csound Host API
>         3.1  The C Language API
>         3.2  Language Wrappers
>                 3.2.1        Python
>                 3.2.2        Java
>                 3.2.3        Common Lisp
>                 3.2.4        Tcl/Tk
> 4. Csound Module API

Most of 1. and 2. (with the exception of the special frontends)
is already in the CVS manual, although it may need to be better
organized to improve the usability of the manual. However, 3. and
4. are largely undocumented at this time, so a lot of work is
needed to add up to date API documentation. I would offer help in
writing manuals, but the basic structure of the API documentation
needs to be created first (perhaps with initially empty manual
templates for each function first, which can be easily completed
later by whoever has enough information on a particular issue).


-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-15 14:04
FromVictor Lazzarini
SubjectRe: [Cs-dev] Csound 5 Reference Manual
At 13:53 15/11/2005, you wrote:
>Victor Lazzarini wrote:
>
>>Csound 5 Reference Manual
>>1. Csound Language
>>         1.1  Frontends
>>                 1.1.1        Csound command-line program
>>                 1.1.2        CsoundVST
>>                 1.1.3        Csoundapi~
>>                 1.1.4        FlCsound
>>                 1.1.5        TclCsound
>>         1.2  Orchestra Language
>>         1.3  Score Language
>>2. Csound Utilities
>>         2.1  Analysis utilities
>>         2.2  File and soundfile utilities
>>         2.3  Score utilities
>>3. Csound Host API
>>         3.1  The C Language API
>>         3.2  Language Wrappers
>>                 3.2.1        Python
>>                 3.2.2        Java
>>                 3.2.3        Common Lisp
>>                 3.2.4        Tcl/Tk
>>4. Csound Module API
>
>Most of 1. and 2. (with the exception of the special frontends)
>is already in the CVS manual, although it may need to be better
>organized to improve the usability of the manual.

That was my idea.

>However, 3. and
>4. are largely undocumented at this time, so a lot of work is
>needed to add up to date API documentation. I would offer help in
>writing manuals, but the basic structure of the API documentation
>needs to be created first (perhaps with initially empty manual
>templates for each function first, which can be easily completed
>later by whoever has enough information on a particular issue).

Yes, that information is not generally available, apart from the
comments in the header files. What would be the most suitable
format? Something akin to man pages (section 3)? I agree that
we should have an unified format.

However, I am not too keen on using Doxygen-type documentation. I
think it would be better and more complete to do it by hand. I can offer
to do bits of it, if needed.



Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth 



-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-15 14:23
FromAndy Baxter
SubjectRe: [Cs-dev] Csound 5 Reference Manual
AttachmentsNone  

Date2005-11-15 14:34
FromIstvan Varga
SubjectRe: [Cs-dev] Csound 5 Reference Manual
Victor Lazzarini wrote:

> Yes, that information is not generally available, apart from the
> comments in the header files. What would be the most suitable
> format? Something akin to man pages (section 3)? I agree that
> we should have an unified format.

Yes, that is what I have thought of, and the opcode manuals
also have a similar structure to man pages. A manual for an
API function is expected to have sections like name (with a
one-line summary of the function), synopsis (prototype with
argument names and required header file), description (this
is where the use of the function is explained in detail,
perhaps with a separate section for documenting each argument),
return value (with information about possible error codes),
notes/bugs (any special limitations or quirks), example (if
any), see also, and maybe author. In the case of the plugin
API, it should be noted if a function possibly does not return
(i.e. may call longjmp on some errors), and for callback
functions it should be documented if calling csound->Die()
or csound->LongJmp() is allowed.
In addition to the API reference, it would be useful to have
general documentation on some topics, like how to create a
plugin library or a simple host application, etc.


-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-15 14:44
FromVictor Lazzarini
SubjectRe: [Cs-dev] Csound 5 Reference Manual
Perhaps the extensions to the csound language text can be adapted
for the plugin example. Iain Duncan was doing something for a host
api as well.

At 14:34 15/11/2005, you wrote:
>In addition to the API reference, it would be useful to have
>general documentation on some topics, like how to create a
>plugin library or a simple host application, etc.

Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth 



-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-15 15:03
FromVictor Lazzarini
SubjectRe: [Cs-dev] Csound 5 Reference Manual
How does this look like as an example of  host API manual page?
==============================================================
csoundCreate()

Creates an instance of Csound.

SYNOPSIS:

CSOUND *csoundCreate(void *hostData)

void *hostData: pointer to host supplied data.

RETURN VALUE:

On success, the function returns a pointer to the CSOUND structure defining 
the new Csound instance.

DESCRIPTION:

This function creates in memory an instance of csound. It takes, 
optionally, a pointer to the host dataspace, but this parameter can also be 
NULL. This function returns a pointer to the CSOUND structure, which is 
then used in further calls to the Csound host API, such as csoundCompile() 
or csoundPerform().

EXAMPLE:

CSOUND *csound;

csoundInitialize(NULL, NULL, 0);
csound = csoundCreate(NULL);

AUTHORS:
John ffitch, Istvan Varga.
==============================================================================



At 14:34 15/11/2005, you wrote:
>Victor Lazzarini wrote:
>
>>Yes, that information is not generally available, apart from the
>>comments in the header files. What would be the most suitable
>>format? Something akin to man pages (section 3)? I agree that
>>we should have an unified format.
>
>Yes, that is what I have thought of, and the opcode manuals
>also have a similar structure to man pages. A manual for an
>API function is expected to have sections like name (with a
>one-line summary of the function), synopsis (prototype with
>argument names and required header file), description (this
>is where the use of the function is explained in detail,
>perhaps with a separate section for documenting each argument),
>return value (with information about possible error codes),
>notes/bugs (any special limitations or quirks), example (if
>any), see also, and maybe author. In the case of the plugin
>API, it should be noted if a function possibly does not return
>(i.e. may call longjmp on some errors), and for callback
>functions it should be documented if calling csound->Die()
>or csound->LongJmp() is allowed.
>In addition to the API reference, it would be useful to have
>general documentation on some topics, like how to create a
>plugin library or a simple host application, etc.
>
>
>-------------------------------------------------------
>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. For more info visit:
>http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
>_______________________________________________
>Csound-devel mailing list
>Csound-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/csound-devel

Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth 



-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-15 15:18
FromIstvan Varga
SubjectRe: [Cs-dev] Csound 5 Reference Manual
Victor Lazzarini wrote:

This is generally OK, although it should be noted that
csoundCreate() will implicitly call csoundInitialize(NULL,NULL,0)
if it was not already done. I think RETURN VALUE is usually
after DESCRIPTION, and the required header file could be mentioned
in SYNOPSIS, but these are minor details.

> How does this look like as an example of  host API manual page?
> ==============================================================
> csoundCreate()
> 
> Creates an instance of Csound.
> 
> SYNOPSIS:
> 
> CSOUND *csoundCreate(void *hostData)
> 
> void *hostData: pointer to host supplied data.
> 
> RETURN VALUE:
> 
> On success, the function returns a pointer to the CSOUND structure 
> defining the new Csound instance.
> 
> DESCRIPTION:
> 
> This function creates in memory an instance of csound. It takes, 
> optionally, a pointer to the host dataspace, but this parameter can also 
> be NULL. This function returns a pointer to the CSOUND structure, which 
> is then used in further calls to the Csound host API, such as 
> csoundCompile() or csoundPerform().
> 
> EXAMPLE:
> 
> CSOUND *csound;
> 
> csoundInitialize(NULL, NULL, 0);
> csound = csoundCreate(NULL);
> 
> AUTHORS:
> John ffitch, Istvan Varga.


-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-15 16:03
FromVictor Lazzarini
SubjectRe: [Cs-dev] Csound 5 Reference Manual
I suppose in keeping with the current CVS manual pages,
we'll have to do these pages as xml files, will we not?

Victor

At 15:18 15/11/2005, you wrote:
>Victor Lazzarini wrote:
>
>This is generally OK, although it should be noted that
>csoundCreate() will implicitly call csoundInitialize(NULL,NULL,0)
>if it was not already done. I think RETURN VALUE is usually
>after DESCRIPTION, and the required header file could be mentioned
>in SYNOPSIS, but these are minor details.
>
>>How does this look like as an example of  host API manual page?
>>==============================================================
>>csoundCreate()
>>Creates an instance of Csound.
>>SYNOPSIS:
>>CSOUND *csoundCreate(void *hostData)
>>void *hostData: pointer to host supplied data.
>>RETURN VALUE:
>>On success, the function returns a pointer to the CSOUND structure 
>>defining the new Csound instance.
>>DESCRIPTION:
>>This function creates in memory an instance of csound. It takes, 
>>optionally, a pointer to the host dataspace, but this parameter can also 
>>be NULL. This function returns a pointer to the CSOUND structure, which 
>>is then used in further calls to the Csound host API, such as 
>>csoundCompile() or csoundPerform().
>>EXAMPLE:
>>CSOUND *csound;
>>csoundInitialize(NULL, NULL, 0);
>>csound = csoundCreate(NULL);
>>AUTHORS:
>>John ffitch, Istvan Varga.
>
>
>-------------------------------------------------------
>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. For more info visit:
>http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
>_______________________________________________
>Csound-devel mailing list
>Csound-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/csound-devel

Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth 



-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net

Date2005-11-15 16:16
FromVictor Lazzarini
SubjectRe: [Cs-dev] Csound 5 Reference Manual
In which case, would this be the xml version (sorry, I am guessing here)

 csoundCreate() 

Creates an instance of Csound. 


 #include 

CSOUND *csoundCreate(void *hostData)


void *hostData: pointer to host supplied data.





This function creates in memory an instance of csound. It takes, 
optionally, a pointer to the host dataspace, but this parameter can also be 
NULL. This function returns a pointer to the CSOUND structure, which is 
then used in further calls to the Csound host API, such as csoundCompile() 
or csoundPerform(). This function will can csoundInitialize(), if not 
already called.




On success, the function returns a pointer to the CSOUND structure defining 
the new Csound instance.




CSOUND *csound; 
csound = csoundCreate(NULL);




John ffitch, Istvan Varga.



At 16:03 15/11/2005, you wrote:
>I suppose in keeping with the current CVS manual pages,
>we'll have to do these pages as xml files, will we not?
>
>Victor
>
>At 15:18 15/11/2005, you wrote:
>>Victor Lazzarini wrote:
>>
>>This is generally OK, although it should be noted that
>>csoundCreate() will implicitly call csoundInitialize(NULL,NULL,0)
>>if it was not already done. I think RETURN VALUE is usually
>>after DESCRIPTION, and the required header file could be mentioned
>>in SYNOPSIS, but these are minor details.
>>
>>>How does this look like as an example of  host API manual page?
>>>==============================================================
>>>csoundCreate()
>>>Creates an instance of Csound.
>>>SYNOPSIS:
>>>CSOUND *csoundCreate(void *hostData)
>>>void *hostData: pointer to host supplied data.
>>>RETURN VALUE:
>>>On success, the function returns a pointer to the CSOUND structure 
>>>defining the new Csound instance.
>>>DESCRIPTION:
>>>This function creates in memory an instance of csound. It takes, 
>>>optionally, a pointer to the host dataspace, but this parameter can also 
>>>be NULL. This function returns a pointer to the CSOUND structure, which 
>>>is then used in further calls to the Csound host API, such as 
>>>csoundCompile() or csoundPerform().
>>>EXAMPLE:
>>>CSOUND *csound;
>>>csoundInitialize(NULL, NULL, 0);
>>>csound = csoundCreate(NULL);
>>>AUTHORS:
>>>John ffitch, Istvan Varga.
>>
>>
>>-------------------------------------------------------
>>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. For more info visit:
>>http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
>>_______________________________________________
>>Csound-devel mailing list
>>Csound-devel@lists.sourceforge.net
>>https://lists.sourceforge.net/lists/listinfo/csound-devel
>
>Victor Lazzarini
>Music Technology Laboratory
>Music Department
>National University of Ireland, Maynooth
>
>
>-------------------------------------------------------
>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. For more info visit:
>http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
>_______________________________________________
>Csound-devel mailing list
>Csound-devel@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/csound-devel

Victor Lazzarini
Music Technology Laboratory
Music Department
National University of Ireland, Maynooth 



-------------------------------------------------------
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. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net