[Cs-dev] New Csound5 release for Win32, with sources and manual
Date | 2005-11-09 18:25 |
From | Istvan 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 |
Date | 2005-11-09 19:47 |
From | David Akbari |
Subject | Re: 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 |
Date | 2005-11-10 00:05 |
From | Martin Peach |
Subject | using 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 |
Date | 2005-11-10 09:03 |
From | Istvan Varga |
Subject | Re: 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 ? |
Date | 2005-11-10 09:20 |
From | Richard Dobson |
Subject | Re: 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 |
Date | 2005-11-10 09:34 |
From | Istvan Varga |
Subject | Re: 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 ? |
Date | 2005-11-10 09:41 |
From | Victor Lazzarini |
Subject | Re: 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 |
Date | 2005-11-10 09:48 |
From | Victor Lazzarini |
Subject | Re: 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 |
Date | 2005-11-10 09:50 |
From | Istvan Varga |
Subject | Re: 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. |
Date | 2005-11-10 10:03 |
From | Victor Lazzarini |
Subject | Re: 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 |
Date | 2005-11-10 10:10 |
From | Victor Lazzarini |
Subject | Re: 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 |
Date | 2005-11-10 10:52 |
From | Victor Lazzarini |
Subject | Alternative 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 |
Date | 2005-11-10 10:56 |
From | Istvan Varga |
Subject | Re: 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. |
Date | 2005-11-11 14:29 |
From | Hector Centeno-Garcia |
Subject | Re: 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 |
Date | 2005-11-11 14:33 |
From | Istvan Varga |
Subject | Re: 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. |
Date | 2005-11-12 03:34 |
From | Hector Centeno-Garcia |
Subject | Re: 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. |