Introduced a presetManager, so that you can switch, store and reload settings. Has a normal control input for switching presets while the patch is running.

Introduced 'Save as .cpp' and 'Save as .java'; you can run a patch without the interface of CPS and use the engine of CPS in your own program! The API for C++ is the same as in Java. You can use any Java 1.0 compliant environment.

Introduced serial port access. You can also use this object to link two computers to each other. The polling goes automaticly and does not have to be done manually.

Introduced a 'voiceAllocator' for allocating voices for multitimbral instruments.

Introduced filters with resonance.

Introduced MIDI file I/O.

Introduced 'weak references' in subpatches, so that you can make a set of usefull subpatches which are always used in all other patches.

Introduced 'save as group': instead of saving things in one object (a traditional subpatch), you can save a selected set of objects and load them at once.

Introduced a subdirectory architecture in the user Macro's. Works with subpatches as well as with 'groups'; is updated after file-load or file-new. Also added a lot of macro's, including a lot of MIDI macro's.

Small changes

Enlarged the sensitive area for dragging wires outside objects

You can change visual settings (font, size, colors) for objects

You can assign a color for each object (including Display objects)

added the 'autoStart' object

table: added 'Use audio File' shortcut

improved printing

helptext now appears quickly

added support for arrow keys

gave the 'loscil' opcode a 'retrigger' input

Depreciated

audioIn&audioOut: selection of audio hardware has simplified

keyboard: it gives a normal 'midiMessage' instead of single bytes.

Bugs Fixed

startup: because some Microsoft VM's were not 1.1 compatible but generated no warning, making a new object caused the window to get resized to zero. The checks on wrong VM's has been improved accordingly.

startup: Microsoft has some debug info being printed out in recent DirectX versions. This caused CPS to be started twice if it was the first program that used DirectX. There's a work-around build-in for this DirectX bug.

tableread and tablewrite: reading/writing the last item was not always possible.