nSLAM audio suite Release 2.0 Feb. 2006 developed by the SAT Audio Group for the SAT Software Developer Kit the SAT Audio Group: Zack Settel Jean-Michel Dumas Simon Piette look inside the "doc" subdirectory for more documentation What is nSLAM? Current version: 2.0 nSLAM is an open-source audio suite for multi-channel audio application development, developed by the SAT Audio Group. It is written for the PD (Pure Data, by M. Puckette) environment and includes a library of low-level DSP objects called ÒxjjimmiesÓ (also running in Max/MSP), online help, and example applications for multi-channel audio streaming and immersive audio, among others. The nSLAM project draws on the xjimmies library, which is a continuation of ÒxjimmiesÓ and the original ÒjimmiesÓ library, developed for the ISPW (Ircam Signal Processing Workstation) and then ported to MAX/MSP. Several of the xjimmies objects and abstractions are derived from the original sources in the IRCAM Jimmies release (1994), with the authorization of IRCAM (nSLAM is also made available on the IRCAM Forum site (http://forum.ircam.fr), as an incentive to PD users to join and contribute to Forum IRCAM). The ÒxjimmiesÓ library included with nSLAM v2.0 offers new functionality not defined in the original ÒjimmiesÓ running under Max/MSP. Specifically, a number of new objects have been added for working with multichannel sound, sound source simulation and immersive audio. The name of the library, formerly ÒjimmiesÓ, was changed to ÒxjimmiesÓ, since the ÒXÓ-platform library runs in both PD (Windows/OS-X/Linux) and now, in Max/MSP (Windows/OS-X). nSLAM includes some example applications, for didactic and practical purposes; the applications can be easily cannibalized by users looking for spare parts, or wishing to develop their own custom applications. Applications for multi-channel streaming and sound processing are offered. note: xjimmies for Max/MSP are also available (see http://www.tot.sat.qc.ca/eng/nslam.html) Future Direction: We are now working on the next version of xjimmies, which will begin to provide low-level support for immersive (3-d) audio. The next release of xjimmies will be included in a new audio suite called "AudioTwist"; The NSLAM suite will continue, but will focus mainly on streaming, while AudioTwist will provide a framework, and example applications for 3-D immersive audio and audiovisual applications, with links to the SAT's "LightTwist" immersive environment platform. Both nSLAM and AudioTwist will use the xjimmies lib. -Z. Settel 2/2006 __________________________________ The release is structured as follows: somePlace/nSlam doc examples externs README resources src unsupported xjimmies "doc" contains user manual etc... (html, pdf and OpenOffice) "examples" contains applications written in pd, which use the xjimmies library, and other resources. "externs" contain binary code objects, which are required by items in the: "xjimmies", "examples", and "unsupported" directories. These objects are provided with the release, but can be updated (recompiled and overwritten) as necessary. "xjimmies" contains a library of low-level DSP objects (including some external code objects) and help corresponding help files. This library is self-contained and does not require any itemes located outside of the xjimmies directory. "src" contains the source code projects for the externals required for the xjimmies library. Note: in order for the makefiles to work properly, the subdirectory layout of the nChan relase should not be changed (don't move or rename anything); this way, the makefiles for each external will automatically copy the "made" external to the correct "externs/(YOUR_OS)" subdirectory. "resources" contains items (NOT FOR THE XJIMMIES) which are required by certain example applications or "unsupported" items, such as streaming servers, or sources (or links to sources) for objects used by the applications and audio encoder/decoders etc. Sources are provided, except for the "jroar" server. note: Developers can install the "nSlam" directory in the same directory where the pd release is installed so that the references in the default makefile paths work without fuss. For example: somePlace/nSlam somePlace/pd note: On the nSLAM download page (http://www.tot.sat.qc.ca/eng/nslam.html), A "release extra" called "nSLAM-extra-0.n" is available; it contains two stand-alone applications (osx only) which are "plug-n-play" versions of the corresponding examples in the "examples" directory. There is also a nSlam MAX/MSP "sub-release" which contains ported items including the ported xjimmies library and other stuff. ****************************************************** GENERAL INSTALLATION instructions for OS X and Linux nSlam requires the Pure-Data (pd) environment to run in. Thus, you must install pd first. Sources and/or binaries are available at: http://www-crca.ucsd.edu/~msp/software.html --------------------------- INSTALLING THE PURE DATA ENVIRONMENT --------------------------- FOR OS X Non-developers: Locate a suitable PD binary: e.g. go to Miller P.'s site http://www-crca.ucsd.edu/~msp/software.html and download a pre-compiled version of PD. e.g: Pd version 0.39-2 compiled for Macintosh (or whatever is almost current). (http://www-crca.ucsd.edu/~msp/Software/pd-0.39-2.mac.tar.gz) proceed to "INSTALLING THE NSLAM RELEASE" .................................. Developers and LINUX users go to a suitable site, e.g. Miller P.'s site http://www-crca.ucsd.edu/~msp/software.html download the sources (e.g. Pd version 0.39-2 source etc...) FOR OSX you will also have to install the TLC/TK package at: http://tcltkaqua.sourceforge.net/ Try version 8.4.9Ê (or newer) for Mac OS 10.3 and later -- TclTkAqua-8.4.9 Compile and install the PD application. LINUX users: see "doc/linux how-to.pdf" for more information proceed to "INSTALLING THE NSLAM RELEASE" ........................................ -------------------------------------------- "INSTALLING THE NSLAM RELEASE" ---------------------- Once PD is installed and running, you can install nSLAM. Expand the nSlam archive "nSLAM-2.0.zip" or "nSLAM-2.0.dmg" (which you obviously must have done to be reading this) Copy the directory "nSlam" to any location on your hard disk; copying to your home directory is fine. note: developers may wish to copy nSlam to the same directory where PD is located (see src/README or resources/README). _______________________________ Using nSLAM: In order for the nSlam release to work properly, you will need to tell PD where it is. Specifically, you must specify TWO search paths: ...../nSlam/xjimmies and ...../nSlam/externs// This can be done a number of ways: 1. You may run pd from the command line, using the paths as shown below: FOR OSX pd -path YOUR_WORLD/nSLAM-0.0n/xjimmies -path YOUR_WORLD/nSLAM-0.0n/externs/darwin OR FOR LINUX: pd -path YOUR_WORLD/nSLAM-0.0n/xjimmies -path YOUR_WORLD/nSLAM-0.0n/externs/linux 2. Click on the PD icon (or launch it from a terminal), locate the "preferences" and select: "path...", enter the two paths below, then hit "save all settings". The paths will be used by pd and valid, unless anything is renamed, or moved. FOR OSX YOUR_WORLD/nSLAM-0.0n/xjimmies YOUR_WORLD/nSLAM-0.0n/externs/darwin OR FOR LINUX: YOUR_WORLD/nSLAM-0.0n/xjimmies YOUR_WORLD/nSLAM-0.0n/externs/linux 3. (more for developers) In your .cshrc or .bashrc file you can define the following to make things easier: set NSLAM_PATH = the directory that the nSlam directory is in set PD_PATH = the directory that the "pd" directory is in #FOR OSX alias mypd "$PD_PATH/bin/pd -path $NSLAM_PATH/xjimmies -path $NSLAM_PATH/externs/darwin" #FOR LINUX alias mypd "$PD_PATH/bin/pd -path $NSLAM_PATH/xjimmies -path $NSLAM_PATH/externs/linux" 4. --- OR just create a file ".pdrc" in your home directory, and add the following line to it: #FOR OSX: -path YOUR_PATH_TO_NSLAM/nSlam/xjimmies:-path YOUR_PATH_TO_NSLAM/nSlam/externs/darwin #FOR LINUX: -path YOUR_PATH_TO_NSLAM/nSlam/xjimmies:-path YOUR_PATH_TO_NSLAM/nSlam/externs/linux