Menu

CPS

CPS adds a powerful MIDI & VST development system to Babya Logic.

Features of CPS :
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.

Examples usages

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.

Posted by A.A. Fussy 2006-06-02

Log in to post a comment.