General information about CPS
CPS is Freeware
In 2000 CPS started as a commercial package, and it became freeware in May 2006.
After several years of progressive development and making sure that many artists -in music and in animation-
could create beautiful interactive tools with CPS, it was time to give CPS to the community for free.
In these years, I had the chance to experience the kindness and the respect of the many musictechnology people
around the globe - something which is unique for that community. CPS is still being developed, only the
frequency of the updates is low. The helpdesk is still as avaible as it always has been.
I'm proud to say that in the commercial years, CPS was bought by and
in general intensively used at the following university's around the world: the Utrecht School of the Arts (Netherlands),
Center for Electronic Music (Amsterdam/Netherlands), Waseda University (Japan), Istituto Gramma (Italy),
Conservatorio of L'Aquila (Italy), Middlesex University (UK), Rensselaer Polytechnic Institute (New York/USA),
School of Creative Media - City University of Hong Kong (China), City University of London (UK),
Nederlandse Film & TV Academie (Netherlands), Leeds Metropolitan University (UK), and many others.
A lot of individual artists use CPS, but there are also several multimedia, online-gaming and artistic companies customer of CPS,
like The Media Center (Huddersfield/UK), Amatic Industries Gmbh (Austria), Kongsberg Defense & Aerospace (Norway), and so
on and so on.
What is CPS?
CPS is a realtime interactive programming environment for audio, MIDI and other media & I/O. Patches are build by placing objects and making wires between them. Areas of interest are sound design, algorithmic composition, DSP, electronic/computer music and education. CPS can be used in any realtime situation where sound plays a role.
Build-in objects allow you low-level access to audio MIDI and other I/O, and any processing in between. Objects include audio and MIDI (hardware&file) I/O, fourier analyse, filters, noise generators, envelopes, delays, lfo's, effects, and much more objects like tables which you can fill with 'generators' (a feature which derives directly from Csound), several network options, joystick, serialport, video processing units (through Quicktime) for layered playback of video & images, VST hosting of VST plugins/instruments, MP3 decoding, and all MPEG-4 Structured Audio opcodes (which are on their turn based on Csound). The best of as well graphic and text editing comes together inside CPS. There is a list of all objects in the manual.
CPS is not only a realtime toolkit; it is also a friendly graphical user environment. CPS has a subpatch architecture (of unlimited depth), with which you can put parts of you patch within one object. Furthermore, objects in CPS have a dynamic number of in- and outputs at runtime. Of course, it has full Undo/Redo, all objects have tooltips (including subpatches) and online help, working with subpatches does not slow down your patch, etc.
CPS has several features to support the user in making bugfree patches. The graphical positioning of objects does not affect the way your patch works; if something goes wrong you can see where it happens in your patch (the color of the object with the error changes); CPS has a strict visual separation between signals on audiorate (left-right) and controlrate (above-below) so that a patch idealy looks like a raster, etc.
Some example usages of CPS are:
- interactive realtime sound for art installations
- use CPS as a game audio engine inside your program
- sound design
- algorithmic composition
- create interactive sound-tracks for games or art related software
- create realtime sound effects and instruments
- generate and process realtime MIDI events
- education in audio processing, MIDI protocol, and logic programming
CPS is _not_ an environment with, by default, a few fat analog synthesizers and high-end effects, it's an environment to build them your own. In contrast to some other software with analog synthesizers and end-user effects (which are of course possible to build with CPS, and at some level also present in CPS), CPS blinks out in extremely good realtime controlrate processing (MIDI and logics in realtime) and audio processing with which you exactly know what's happening. CPS is still unique in controlrate processing at the windows platform, which makes it perfectly suitable for electronic music and interactive art installations.
More specificly you can also:
- use VST2-instruments/plugins and MP3 files in your patch
- make sound for webpages with the CPS Browser plugin
- process realtime MIDI input and generate realtime MIDI output for on stage
- exchange data for sound through the internet
- make an audio effect and make a stand alone application of it (C++/Java/Director/Shockwave)
- use self-made sensors on your serial port
- make sounddesign patches with true 'sampleprecision' (feedback loops of one sample)
- make algorithmic patches which generate MIDI output
- trigger video and images, layered on a screen and show it with a beamer
- learn how MPEG-4 Structured Audio opcodes work
- learn more about ANSI C++ programming, Java programming and plugins
CPS standAlone: VST Plugin, Director, Shockwave, C++ and Java
CPS is not only a standalone program, but it can be used as several other interesting ways. First of all, CPS can be used as VST plugin (or as VST Instrument, and also as DirectX plugin), and without graphical interface as extremely big audio toolkit inside MacroMedia Director, MacroMedia Shockwave (online in a webbrowser), any C++ program, or any Java program. Finally, art programmers (Director) and music engineers (VST) can use the same tool. Without the graphical interface, you can access/trigger/control CPS through classes (C++/Java) or through only a few simple functions (Director/Shockwave) and use CPS as 'engine' inside your own program or game or webpage. Everything is provided with documentation and some examples. Much more details can be found in the (online) manual in chapter 5.
CPS Plugins: C++ and Java
CPS has also several features for programmers. You can easily build a plugin (your own 'objects') for CPS. It is extremely easy because the 'plugin SDK' is very small, no platform-depedent code is used, and you only need to know basic ANSI C/C++. Because of the simplicity, the plugin SDK is ideal for education too. Within no time you have created a plugin which, for example, works with streaming audio and reacts on MIDI too.
It's also possible to build a graphical interface for your plugin in the platform-independent language 'Java'. You can directly communicate with your C++ - plugin fromout the graphical interface. If needed, you can also save as many data within your plugin as you want, and even define your own classes for storage.
Read on for more information on specific subjects in the online manual.