I’ve just up-loaded the source, data, and documentation files for the CREATE Signal Library (CSL) 5.0, a major new release that’s faster, more portable, smaller, and easier to use!
CSL (pron. “sizzle”) is a cross-platform general-purpose software framework for sound synthesis and digital audio signal processing. It is implemented as a C++ class library to be used as a stand-alone synthesis server, or embedded as a library into other programs.
The main new feature in CSL 5.0 is that CSL now uses the JUCE framework (V 1.50) for almost all external functions, especially:
[list] real-time sound I/O;
sound file I/O;
MIDI I/O; and
GUI construction.
[/list]
CSL 5.0 also includes its own FFT, so users do not need to have FFTW installed (although it’s still supported by the FFT_Wrapper class).
The above items mean it’s much easier for a new user to install and learn CSL; you just need to install JUCE (and the CSL patches to it), and you cal build the CSL examples, as in the screenshot below.
All the source, data, and documentation files are available from the CSL home page at
I’m not certain what the difference is with using juce amalgamated; the CSL code requires JUCE 1.50 with the audio IO format extensions in this small tarball to support floating-point and many-channel sample I/O.
I’m not certain what the difference is with using juce amalgamated; the CSL code requires JUCE 1.50 with the audio IO format extensions in this small tarball to support floating-point and many-channel sample I/O.
To celebrate the release of CSL 5.0, and make it easier for new users, I’ve prepared a set of 3 screencasts introducing the CREATE Signal Library C++ framework for music/audio synthesis and processing.
Looks very interesting, but hard time getting it to compile here.
“Sndfile.h : No such fule or directory”
Couldn’t I use juce audio file format instead and avoid using libsndfile ?
I tried to download libsndfile, but the adress you mention in the read me is broken : http://www.zip.com.au/~erikd/libsndfile
then I found libsndfile-1.0.20 on the web, and manage to configure it to get the “sndfile.h”.
Now it seems to compile everything but link error :
ld: library not found for -lmad
collect2: ld returned 1 exit status
Command /Developer/usr/bin/g+±4.2 failed with exit code 1
I guess libsndfile is not well configured here. Any tips ?
Any way to use juce instead ?
Thanks,
Yes, I did understood from reading that USE_JSND should avoid to use libsndfile.
But I kinda expected this to be set already, as default setting straight from the download…
In the target settings, I can see a preprocessor macro which contain : USE_JUCE
USE_JSND
USE_FFTREAL
…
Could you please lead me to where else should I define USE_JSND ? (xcode settings are hudge, and I’m new with this)
CSL 5.0 can be compiled with JUCE as the only other API, or it can use 3rd-party APIs for the following features
Sound file I/O
[list]LibSndFile (supports many other file formats) - -DUSE_LSND
this also required libMAD for MP3 decoding if you define USE_MP3
CoreAudio (works on iPhone) - -DUSE_CASND
JUCE sndfile I/O - -DUSE_JSND
[/list]
FFT
[list]libFFTW (really fast) - -DUSE_FFTW
FFTReal (includfes with CSL) - -DUSE_FFTREAL[/list]
Threads (in the newest versions)
[list]PThreads - -DUSE_PTHREADS
JUCE threads - -DUSE_JTHREADS[/list]
I still have to port the MIDI support over.
These macros are not defined in the header files (though they could be), so that different applications can have different settings (i.e, some apps use MP3 files, and thus require libSndFile).
On the Mac, these options are set in the XCode target preferences (preprocessing::preprocessor macros). OnLinux, they can be set in the Makefile.
Also note that you don’t normally include all the CSL source files in a build; some (like SoundFileJ.cpp and SoundFileL.cpp) are orthogonal; include the one or the other depending on the API you want.