Open Sound World, or OSW, is a scalable, extensible programming environment that allows musicians, sound designers and researchers to process sound in response to expressive real-time control. OSW combines a familiar visual patching paradigm with solid programming-language features such as a strong type system and hierarchical name spaces.
OSW also includes an intuitive model for specifying new components using a graphical interface and high-level C++ expressions, making it easy to develop and share new music and signal-processing algoritms.
This question should really be "why do all music languages end up being visual patching languages?" The visual-patching paradigm actually has its routes in signal processing textbooks and early analog hardware (i.e., analog synthesis, analog computers, etc.) and is thus a natural means for expressing constructs that are ultimately signal processors and controllers. Even systems that originally started out as text based, such as Csound, now boast visual front-ends.
OSW has a similar history, starting out as a collection of highly-optimized C++ classes with a framework that was quite different from other real-time music systems. It included scripting interface that eventually incorporated a visual patching interface. However, OSW has attempted to push the envelope and make visual patching easier to use through features such as gestural editing. These features were developed from useability tests. Although there is still a lot of work to be done in this direction, the emphasis on increased useability is a key differentiating factor.
One of the most frequently asked questions! Max/MSP, Pd and jMax are all descendants of the Max system developed by Miller Puckette and others at IRCAM in France. These systems have been used successfully in computer-music compositions and research projects for a long time. Among computer musicians, they have also been synonymous with the visual patching paradigm.
OSW started out as very different beast, emphasizing optimzed high-level C++, extensible type system, ease of adding features, and a flexible real-time scheduler. It adopted the successful visual-patching interface for reasons outlined in the previous question.
More information on the history of OSW can be found at http://osw.sourceforge.net/oswhistory.php.
OSW is availabe from osw.sourceforge.net or www.opensoundworld.com. You can download OSW either as source code or binaries for Windows and Linux. There are also instructions on how to install or compile OSW on your platform.
OSW is Open Source software and available free of charge. It is released under the Open Sound World Public License, which is similar to the Mozilla public license.
OSW was begun as research project by Amar Chaudhary, Adrian Freed and Matthew Wright at the Ceneter for New Music and Audio Technologies (CNMAT) at the University of California at Berkeley. It is currently maintained as an open source software project lead by Amar Chaudhary.
The current version is 1.2.3 for Windows and Linux, and version 1.2.4 for Mac OS X.
OSW surrently runs on Windows (2000 and XP), Linux, Mac OS X and SGI Irix platforms.
Porting to any and all platforms is strongly encouraged. We expect most of the OSW code to be portable across platforms. Plus, the GUI written in Tcl/Tk should run on many platforms. Please contact peoplestank at users dot sourceforge dot net for more info.
Any soundcard with Windows WDM or ASIO drivers should work with OSW. Virtually every sound device supported in Windows 2000 or XP will include a WDM driver, and many mid-level and professional cards have ASIO drivers.
Again, any MIDI device that uses the Windows MIDI driver interface. This includes just about everything from those old MPU-401 cards to the trendy USB MIDI interfaces and MIDI keyboards.
Yes, ASIO is supported is OSW.
Generally speaking, you will better performance and flexibility for multichannel I/O with ASIO, so it is the recommended interface.
Yes! You can download the VST adapter external from our contributions page.
OSW currently is only supported on Windows 2000 or XP. It might run on some Windows 98 or ME systems, but it might not. If you are running Windows 98, we recommend that you upgrade to an operating system from this century.
OSW should work with most current versions of Linux, but the Linux world is so fragmented that it's hard to say for sure.
We recommend at least a 2.4.x kernel, preferably with real-time patches.
There are several patches for the Linux kernel that improve performance in real-time audio applications. In particular, these patches alter the scheduler to support a "policy" that allows audio processes to run at fixed rate and priority, which is essential for low-latency audio with no dropouts.
A much more detailed discussion of tuning Linux for audio can be found at Planet CCRMA: Tuning the System. Users wishing to do a lot of audio work under Linux are encouraged to visit Planet CCRMA if they have not already done so.
Any soundcard supported by the standard OSS drivers or by the Advanced Linux Sound Architecture (ALSA) should work with OSW.
We STRONGLY recommend using ALSA, it has much better latency performance and multichannel support. We mainly support OSS for legacy purposes are for sound hardware that hasn't yet been ported to ALSA.
Visit the ALSA Web Site for more information. There is a section for new users that includes a document called "Getting started with ALSA"
Alsa may both mute and turn down all audio channels on installation. Run alsamixer and make sure that you BOTH unmute and turn up the relevant channels.
Alsa allows each soundcard to define its own mixer according to the card's harware capabilities. So, not all sound cards have mute switches. In fact, the different cards used by different members of OSW development team behave differently in this respect.
First, try to play a sound file using aplay, and if that works try another program from the supported list on the ALSA (e.g., Audacity) page and see if it works as well. If not, you likely have an ALSA problem.
It might very well be. If you continue to have trouble getting OSW to work, you can submit a Support Request or send a question to the osw-users mailing list. Both are available for your convenience on the OSW Community Page.
You might have a version of Tcl/Tk without multithreading support. Refer to the INSTALL.linux documentation with your OSW distribution for info.
Yes, you must use gcc 3.2.x or better. OSW makes use of many advanced C++ features which are natively supported in gcc 3.2.x but not in previous versions.
At this time, OSW has only been verified to run on OS X 10.3 (Panther). We're pretty sure that 10.4 (Tiger) works as well.
Any soundcard with CoreAudio drivers should work with OSW, though as this writing few have been officially tested. If you have experience with a particular soundcard under OS X, please let us know.
The "BI" (batteries included) 8.4 version of Tcl/Tk Aqua is required for OSW. To load and install Tcl/Tk Aqua, go to tcltkaqua.sourceforge.net and download the TclTkAquaBI-8.4.x.dmg file.
If you installed from the official binary, you can uninstall as follows:
Anything that appears as a standard SGI audio device should be supported. This is most likely the built-in audio of your workstation unless you have one of those super-fancy multi-channel cards they made.
There is currently no MIDI support under Irix.
Try running root-osw, which enables/disables some features that greatly improve audio performance. Of course, you need to be able to run as root to do this.
Read the documentation. Make sure to check the documentation specific to your platform. If it doesn't answer your question, visit the website, post to the discussion forums, or review the bugs or support requests. You can post to one of these resources if your problem has not been addressed.
You should post bugs to the bug tracker at osw.sourceforge.net. Click on "Community" on the left bar and select "Bugs" to bring up the bug tracker. Before you submit a bug report, please make sure it has not already been reported by someone else.
Go to osw.sourceforge.net and click on downloads. Follow the instructions to download the source distribution.
Unpack the source file (using gunzip/tar or a Windows equivalent) into a directory of your choice. From that directory proceed to the "src/xxx" directory where "xxx" is the name of your platform (win, linux or sgi). In that directory, you will find a file "COMPILE.xxx" with instructions for building OSW on your platform.
Those windows are part of the Externalizer, which is used to build OSW transforms from high-level descriptions. The build processes automatically invokes the Externalizer to build the transforms included in the distributions. This should only happen under Windows, other platforms have a "nogui" mode used when making the externals.
The Externalizer is a graphical interface for creating new OSW transforms from high-level specifications and fragments of C++ code. It does most of the dirty work of creating a C++ class for your transform, as well as compiling and installing it.
Read the OSW Transform Writer's Guide.
Actually, it's not quite available yet. It's very high on my to-do list. Really, it is.
We encourage most extensions to be written as transforms, even if they have no inlets or outlets. However, some elements, such as data types, can also be developed. Refer to the Spectrum data type in the externals sources for more info.
There are many different ways you can help. Simply downloading and using OSW, and participating in the community of users helps keep the open source project going. And don't forget to tell your friends to try it, too!
There are also several ways one can contribute as a developer: extending the core system, porting to a new platform, or writing new transforms. Writing new transforms is the easiest way to contribute new features to OSW, and is strongly encouraged. Those who wish to extend the core system or try porting to a new platform can download the source code and submit patches.
If you plan to make a major long-term contribution to the development, such as porting to a new platform, you might consider joining as a developer.
Yes! You can now donate to the OSW project via our web page. Contributing money to the Open Sound World project will help us to purchase additional systems (hardware and software) for compatibility testing and clean release environments. Such testing and development will result in more robust versions of our software that is usable by a wider community of users.
If your question was not answered in this document, you can post to one of the forums or mailings (see the website osw.sourceforge.net for more info). You can also contact the developers with questions. You might very well find your question added to this document as a result.