Csound Csound-dev Csound-tekno Search About

[Cs-dev] New Csound5 release for Win32, with sources and manual

Date2005-11-09 18:25
FromIstvan Varga
Subject[Cs-dev] New Csound5 release for Win32, with sources and manual
The package includes single and double precision binaries, plugin
libraries, source code and manual, and is available at:

   http://csound.sourceforge.net/csound5-2005-11-09.zip

Changes in this version
-----------------------

   * made creating and deleting ftables less verbose on low
     message levels
   * new opcodes for a software bus that can be used to control
     the orchestra from a Csound host application:
       chn_a, chn_k, chn_S
       chnexport
       chnget
       chnset
       chnparams
   * renamed loop_l to loop_lt, and loop_g to loop_gt
   * restored xyin opcode and table displays using FLTK (not safe
     to use with widget opcodes)
   * new real time MIDI drivers (-+rtmidi=mme and -+rtmidi=alsa)
   * tableng: allow use of tables with non power of two length
   * new opcodes for first, second, and third order Ambisonic encoding
     and decoding:
       bformenc
       bformdec
   * added new file formats to fout and foutk (see manual for details)
   * new ATS opcodes (see also http://sourceforge.net/projects/atsa/):
       ATSread
       ATSreadnz
       ATSadd
       ATSaddnz
       ATSsinnoi
       ATSbufread
       ATSpartialtap
       ATSinterpread
       ATScross
       ATSinfo
   * added wrapper interfaces for C++, Python, and other languages;
     the Csound API can be accessed from Python by importing the 'csnd'
     module
   * improved checks for plugin compatibility
   * restored logging to file (-O and --logfile); only available in
     command line frontends (csound.exe and csound32.exe)
   * replaced use of rand() for random numbers
   * a number of bug fixes and API changes

Installation
------------

Unzip the package to a directory, and set the following environment
variables (note: all the examples below assume that the zip file was
unpacked to C:\; obviously, you need to change the path names for a
different installation directory):

OPCODEDIR=C:\csound5\lib
OPCODEDIR64=C:\csound5\lib64

also, add C:\csound5\bin to PATH. The following environment variable
is optional, and can be used to specify a file which stores default
command line options:

CSOUNDRC=C:\csound5\.csoundrc

If you want to use the 'csnd' Python module for calling the Csound
API from Python scripts, and have Python 2.3 installed, also add
C:\csound5\bin to PYTHONPATH.
Note: make sure that the new installation does not conflict with a
previous version of Csound.

Most binaries in this package (including the Python interface) are
compiled with double precision floats, but the following executables
are available for fast 32 bit rendering (note that these use SSE
instructions and will not run on a CPU older than a Pentium III):

csound32.exe
cvanal32.exe
hetro32.exe
lpanal32.exe
pvanal32.exe

Real time audio and MIDI
------------------------

By default, real time audio uses PortAudio with the
portaudio.dll.0.0.19 file from Victor Lazzarini's Csound 5 MSVC
package. This module includes support for MME, DirectSound, and ASIO;
the available devices can be listed by using -i adc or -o dac with an
out of range device number (e.g. -o dac100). In most cases, MME
devices are listed first, followed by DirectSound, and ASIO devices
are listed last; thus, the default device is usually MME.
As the default PortAudio DLL is somewhat old, if there are problems
with real time audio, you may try using the DirectSound-only DLL file
from csound5\pa_dx (replace the file in bin\ with it), or the native
MME plugin which is enabled by the -+rtaudio=mme command line option.

Real time MIDI can use PortMidi (the default), or MME (if -+rtmidi=mme
is specified on the command line). In both cases, MIDI input is
enabled by -M devnum, and MIDI output is -Q devnum; 'devnum' is a
device number, which, if out of range, will result in an error and
listing of available devices.

Python opcodes
--------------

To use the Python opcodes, you need to install Python 2.3 from
http://www.python.org/. Note: unless the orchestra is performed
from the Python interpreter using the 'csnd' module, the 'pyinit'
opcode should be called from the orchestra header to initialize
Python.

Developing frontends and plugin opcodes
---------------------------------------

As the package includes the Csound library as DLLs (with single and
double precision floats), as well as any required header files, it is
possible to build a host application or plugin opcodes without having
to compile Csound. In the first case, you need to #include csound.h
(for a C interface) or csound.hpp (for C++), and link against the
Csound API library; the MinGW compiler can use csound32.dll or
csound64.dll directly, while other development tools may require
creating an import library. A plugin library should include csdl.h,
and does not need to link against the Csound library.
Note: for compiling with double precision, define the macro USE_DOUBLE
before including any of the above mentioned header files.


-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/csound-devel

Date2005-11-09 19:47
FromDavid Akbari
SubjectRe: New Csound5 release for Win32, with sources and manual
On Nov 9, 2005, at 1:25 PM, Istvan Varga wrote:

> The package includes single and double precision binaries, plugin
> libraries, source code and manual, and is available at:
>
>   http://csound.sourceforge.net/csound5-2005-11-09.zip

This release is now also currently reflected on cSounds.com as well as 
the archive itself mirrored; for maximum circulation, redundancy 
security to ensure the integrity of the data, etc ...

http://www.csounds.com/resources/csound5-2005-11-09.zip



-David

Date2005-11-10 00:05
FromMartin Peach
Subjectusing the new csound5 release to build csoundapi~ for pd
Hi,
So my extremely long march towards getting a functional csoundapi~ that 
works continues.
I'm doing this on a version of  Visual C++ 2005 Express Edition Beta 
because it's free and I had a lot of problems using cygwin gcc to 
compile pd objects.
Maybe MinGW is what I need?
The first attempt today failed because cs.h was not found. So I 
commented out the include "cs.h" on line 28 of csoundapi_tilde.c because 
there is no such file that I am aware of.
Anyhow, this is my output so far:

------ Build started: Project: csoundapitilde, Configuration: Debug 
Win32 ------
Compiling...
csoundapi_tilde.c
c:\csound5\include\sysdep.h(182) : warning C4142: benign redefinition of 
type
c:\csound5\include\sysdep.h(183) : warning C4142: benign redefinition of 
type
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(134) : warning 
C4090: 'function' : different 'const' qualifiers
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(134) : warning 
C4028: formal parameter 2 different from declaration
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(135) : warning 
C4090: 'function' : different 'const' qualifiers
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(135) : warning 
C4028: formal parameter 2 different from declaration
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(145) : warning 
C4996: 'strdup' was declared deprecated
        c:\program files\microsoft visual studio 
8\vc\include\string.h(170) : see declaration of 'strdup'
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(151) : warning 
C4996: 'strdup' was declared deprecated
        c:\program files\microsoft visual studio 
8\vc\include\string.h(170) : see declaration of 'strdup'
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(152) : warning 
C4996: 'strdup' was declared deprecated
        c:\program files\microsoft visual studio 
8\vc\include\string.h(170) : see declaration of 'strdup'
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(208) : warning 
C4312: 'type cast' : conversion from 'int' to 't_csoundapi *' of greater 
size
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(312) : warning 
C4996: 'strdup' was declared deprecated
        c:\program files\microsoft visual studio 
8\vc\include\string.h(170) : see declaration of 'strdup'
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(318) : warning 
C4996: 'strdup' was declared deprecated
        c:\program files\microsoft visual studio 
8\vc\include\string.h(170) : see declaration of 'strdup'
c:\documents and settings\martin\my documents\visual studio 
2005\projects\csoundapitilde_pd_object\csoundapi_tilde.c(319) : warning 
C4996: 'strdup' was declared deprecated
        c:\program files\microsoft visual studio 
8\vc\include\string.h(170) : see declaration of 'strdup'
Linking...
C:\csound5\bin\csound32.dll : fatal error LNK1107: invalid or corrupt 
file: cannot read at 0x290
Build log was saved at "file://c:\Documents and Settings\Martin\My 
Documents\Visual Studio 
2005\Projects\csoundapitilde_pd_object\csoundapitilde\csoundapitilde\Debug\BuildLog.htm"
csoundapitilde - 1 error(s), 13 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

...so first it looks like the API has changed again and the function 
calls are different. The strdup can be ignored for now at least as it 
seems Microsoft has decided that most of string.h is insecure and needs 
to be replaced with its own functions (which conveniently also helps to 
separate MS from the rest of the universe as they are wont to do).
Lastly in the link stage it seems like I can't link against 
csound32.dll. Does anyone know which library I should link against for 
csoundapi~? Could this work if I somehow used the associated .def file?

Martin


Date2005-11-10 09:03
FromIstvan Varga
SubjectRe: using the new csound5 release to build csoundapi~ for pd
Martin Peach wrote:

> Maybe MinGW is what I need?

You would probably have better chances of successfully compiling with
MinGW, but if you can create an import library for csound32.dll and/or
csound64.dll, and use the same structure alignment etc. settings as
the defaults of MinGW, then the Microsoft compiler should work too.

> The first attempt today failed because cs.h was not found. So I 
> commented out the include "cs.h" on line 28 of csoundapi_tilde.c because 
> there is no such file that I am aware of.

What version of csoundapi~ is this ? You should use the one included
with the package in csound5\src\frontends\csoundapi_tilde\, and Csound
header files in csound5\src\include\.

> ...so first it looks like the API has changed again and the function 
> calls are different.

Again, use csoundapi_tilde.c from the package. It should be compatible
with the latest changes to the API.

> Lastly in the link stage it seems like I can't link against 
> csound32.dll. Does anyone know which library I should link against for 
> csoundapi~? Could this work if I somehow used the associated .def file?

You probably need to create a csound32.lib file (possibly with using
csound32.def), and then link against that. I do not know about the
details, or even if it is actually possible with the MS compiler, as
I do not use it, but perhaps others can help ?

Date2005-11-10 09:20
FromRichard Dobson
SubjectRe: using the new csound5 release to build csoundapi~ for pd
Martin Peach wrote:
> ...so first it looks like the API has changed again and the function 
> calls are different. The strdup can be ignored for now at least as it 
> seems Microsoft has decided that most of string.h is insecure and needs 
> to be replaced with its own functions (which conveniently also helps to 
> separate MS from the rest of the universe as they are wont to do).
> Lastly in the link stage it seems like I can't link against 
> csound32.dll. Does anyone know which library I should link against for 
> csoundapi~? Could this work if I somehow used the associated .def file?
> 

Strdup is not an ANSI C function (should not be being used in Csound), and it is 
more the case with VS Express that MS are (at last) trying to be more compliant 
with the C (and C++) standards.

Richard Dobson

Date2005-11-10 09:34
FromIstvan Varga
SubjectRe: using the new csound5 release to build csoundapi~ for pd
Richard Dobson wrote:

> Strdup is not an ANSI C function (should not be being used in Csound), 

It is not used in the Csound API library, or any of the opcodes,
I have found strdup in the following files:

   frontends/CsoundVST/Conversions.cpp
   frontends/CsoundVST/CsoundVST.cpp
   frontends/CsoundVST/System.cpp
   frontends/csoundapi_tilde/csoundapi_tilde.c
   frontends/tclcsound/commands.c
   interfaces/CsoundFile.cpp

These are mostly optional frontends included with the package
(CsoundVST, csoundapi~ for PD, and TclCsound), although the last file
is part of the wrapper library for high level languages.
It should be easy to remove the use of strdup(), though, as only
a few files are affected.

However, returning to the subject of this thread, is it possible
to create an import library for the Csound DLL using the MS development
tools if a .def file is available ?

Date2005-11-10 09:41
FromVictor Lazzarini
SubjectRe: using the new csound5 release to build csoundapi~ for pd
So we have to take all strdup calls in csound5.

By the way, I have downloaded this morning pd-0.38 and rebuilt csoundapi~. 
Tested
it with trapped.csd on both 0.38 and 0.37. For some reasons, this new build,
linked against pd.lib 0.38 (pd.dll), seems to run fine on 0.37 but I'm 
getting some
occasional dropouts on 0.38. So this suggests that 0.37 might be better 
than 0.38.
Besides, from looking at www.pd.org, it seems that the library bundle 
(pd-extended)
is only fully supported on 0.37 (there is 0.38 test there, though).

If there is a csoundapi~.dll in Istvan's binary distribution, I'd suggest 
using it instead
of building it yourself. Don't forget to set your OPCODEDIR.

Victor

At 09:20 10/11/2005, you wrote:
>Martin Peach wrote:
>>...so first it looks like the API has changed again and the function 
>>calls are different. The strdup can be ignored for now at least as it 
>>seems Microsoft has decided that most of string.h is insecure and needs 
>>to be replaced with its own functions (which conveniently also helps to 
>>separate MS from the rest of the universe as they are wont to do).
>>Lastly in the link stage it seems like I can't link against csound32.dll. 
>>Does anyone know which library I should link against for csoundapi~? 
>>Could this work if I somehow used the associated .def file?
>
>Strdup is not an ANSI C function (should not be being used in Csound), and 
>it is more the case with VS Express that MS are (at last) trying to be 
>more compliant with the C (and C++) standards.
>
>Richard Dobson
>
>--
>Send bugs reports to this list.
>To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk

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

Date2005-11-10 09:48
FromVictor Lazzarini
SubjectRe: using the new csound5 release to build csoundapi~ for pd
I will take it out of csoundapi_tilde.c and commands.c

Victor

At 09:34 10/11/2005, you wrote:
>Richard Dobson wrote:
>
>>Strdup is not an ANSI C function (should not be being used in Csound),
>
>It is not used in the Csound API library, or any of the opcodes,
>I have found strdup in the following files:
>
>   frontends/CsoundVST/Conversions.cpp
>   frontends/CsoundVST/CsoundVST.cpp
>   frontends/CsoundVST/System.cpp
>   frontends/csoundapi_tilde/csoundapi_tilde.c
>   frontends/tclcsound/commands.c
>   interfaces/CsoundFile.cpp
>
>These are mostly optional frontends included with the package
>(CsoundVST, csoundapi~ for PD, and TclCsound), although the last file
>is part of the wrapper library for high level languages.
>It should be easy to remove the use of strdup(), though, as only
>a few files are affected.
>
>However, returning to the subject of this thread, is it possible
>to create an import library for the Csound DLL using the MS development
>tools if a .def file is available ?
>--
>Send bugs reports to this list.
>To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk

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

Date2005-11-10 09:50
FromIstvan Varga
SubjectRe: using the new csound5 release to build csoundapi~ for pd
Victor Lazzarini wrote:

> If there is a csoundapi~.dll in Istvan's binary distribution, I'd 
> suggest using it instead
> of building it yourself. Don't forget to set your OPCODEDIR.

No, it is not included because I do not have PD for Windows, only
the Linux version. So, the main issue here is compiling the PD
object with MSVC, and use the Csound DLL file included with the
package somehow; is it possible to create a csound32.lib for
csound32.dll if csound32.def is available ? If not, then the
solution is probably to do a full build of Csound with SCons.

Date2005-11-10 10:03
FromVictor Lazzarini
SubjectRe: using the new csound5 release to build csoundapi~ for pd
I don't think so, you have to have the link library first. Unless mingwin
can generate it with some linker option.

Victor

At 09:50 10/11/2005, you wrote:
>Victor Lazzarini wrote:
>
>>If there is a csoundapi~.dll in Istvan's binary distribution, I'd suggest 
>>using it instead
>>of building it yourself. Don't forget to set your OPCODEDIR.
>
>No, it is not included because I do not have PD for Windows, only
>the Linux version. So, the main issue here is compiling the PD
>object with MSVC, and use the Csound DLL file included with the
>package somehow; is it possible to create a csound32.lib for
>csound32.dll if csound32.def is available ? If not, then the
>solution is probably to do a full build of Csound with SCons.
>--
>Send bugs reports to this list.
>To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk

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

Date2005-11-10 10:10
FromVictor Lazzarini
SubjectRe: using the new csound5 release to build csoundapi~ for pd
I didn't realise that. I will put up a MSVC build from the latest
sources as soon as possible.

Victor

At 09:50 10/11/2005, you wrote:
>Victor Lazzarini wrote:
>
>>If there is a csoundapi~.dll in Istvan's binary distribution, I'd suggest 
>>using it instead
>>of building it yourself. Don't forget to set your OPCODEDIR.
>
>No, it is not included because I do not have PD for Windows, only
>the Linux version. So, the main issue here is compiling the PD
>object with MSVC, and use the Csound DLL file included with the
>package somehow; is it possible to create a csound32.lib for
>csound32.dll if csound32.def is available ? If not, then the
>solution is probably to do a full build of Csound with SCons.
>--
>Send bugs reports to this list.
>To unsubscribe, send email to csound-unsubscribe@lists.bath.ac.uk

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

Date2005-11-10 10:52
FromVictor Lazzarini
SubjectAlternative Windows Csound5 binary package (with csoundapi~)
Here's an alternative (MSVC-built) windows csound5 binary
package. Includes csoundapi~, tclcsound, but no Java or Python
wrappers.

http://www.nuim.ie/academic/music/musictec/csound/main.html

Csoundapi~ was built against pd.lib 0.38, but was tested on 0.37 as
well.

Don't forget to set OPCODEDIR

Victor


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

Date2005-11-10 10:56
FromIstvan Varga
SubjectRe: using the new csound5 release to build csoundapi~ for pd
Victor Lazzarini wrote:

> I don't think so, you have to have the link library first.
 > Unless mingwin can generate it with some linker option.

Actually, it may be possible to generate the .lib files from
.def's, according to the MinGW FAQ, with these commands in
csound5\bin:

   lib /machine:i386 /def:csound32.def
   lib /machine:i386 /def:csound64.def
   lib /machine:i386 /def:_csnd.def

This should generate the files csound32.lib, csound64.lib, and
_csnd.lib, which can be used by MSVC.

It may still be possible that this line in csound.h

#  define PUBLIC        __declspec(dllexport)

needs to be replaced with

#  define PUBLIC        __declspec(dllimport)

when compiling code that links against the Csound library with
MSVC.

Date2005-11-11 14:29
FromHector Centeno-Garcia
SubjectRe: New Csound5 release for Win32, with sources and manual
Istvan Varga wrote:

> The package includes single and double precision binaries, plugin
> libraries, source code and manual, and is available at:
>
>   http://csound.sourceforge.net/csound5-2005-11-09.zip
>
> Changes in this version
> -----------------------
>
>
>   * new real time MIDI drivers (-+rtmidi=mme and -+rtmidi=alsa)


Hello,

I was wondering if this -+rtmidi=alsa means that in Linux realtime midi 
can be used without using portmidi (a friend of mine is having big 
trouble building portmidi in his 64 bits Linux)? I guess this change 
would be also available in the CVS checkout, am I right?

Thanks!


Hector

Date2005-11-11 14:33
FromIstvan Varga
SubjectRe: New Csound5 release for Win32, with sources and manual
Hector Centeno-Garcia wrote:

> I was wondering if this -+rtmidi=alsa means that in Linux realtime midi 
> can be used without using portmidi (a friend of mine is having big 
> trouble building portmidi in his 64 bits Linux)? I guess this change 
> would be also available in the CVS checkout, am I right?

Yes, with -+rtmidi=alsa you can use real time MIDI without having
PortMidi installed. To read from the device /dev/snd/midiCxDy, use
-M hw:x,y (of course, x and y should be replaced with numbers);
output devices are selected with -Q in the same format.

Date2005-11-12 03:34
FromHector Centeno-Garcia
SubjectRe: New Csound5 release for Win32, with sources and manual
Istvan Varga wrote:

> Hector Centeno-Garcia wrote:
>
>> I was wondering if this -+rtmidi=alsa means that in Linux realtime 
>> midi can be used without using portmidi (a friend of mine is having 
>> big trouble building portmidi in his 64 bits Linux)? I guess this 
>> change would be also available in the CVS checkout, am I right?
>
>
> Yes, with -+rtmidi=alsa you can use real time MIDI without having
> PortMidi installed. To read from the device /dev/snd/midiCxDy, use
> -M hw:x,y (of course, x and y should be replaced with numbers);
> output devices are selected with -Q in the same format.

Great! Thanks a lot.

Hector.