CPS 1.3 to 1.4
- Introduced Mac OS X support. All .cps files are exchangable. Holding the mouse down equals the popup-mousebutton, CTRL + H equals F1 for help, and the +/- keys equal page-up/down.
- Introduced AIFF/AU/SF/W64/... support by adding the libsndfile library to CPS. 'audioFromDisk' and 'table' read the formats, and audioToDisk also writes AIFF with a custom bitdepth.
- Introduced Tutorials. There are three tutorials: General, MIDI and Audio. The tutorials should give decent practical start, and form a decent base for novice users, together with the manual.
- Introduced 'OSCparam' which is able to send and receive parameters in the OpenSoundControl format over a network through TCP or UDP. OSCparam can also be used as an advanced network object in standAlone mode. cpsChat can not be used in standAlone but it can be used with a group of users. OSC will in the future be used for CPS remote control which does not only send 'parameters' but also patching data).
- Introduced 'HTTParam' which sends and receives parameters from a web server (php example included).
- Introduced System Exclusive support, inside the midiMessage object (see it's helptext); added a few I-CubeX sys-ex examples as well.
- Introduced an URL-cacher, for Shockwave/audioFromDisk/table/midiFromDisk. From now on you can use 'http://...' addresses for filenames inside CPS. The first time you give such a http-address, CPS automaticly begins downloading the file and will (as normally) complains that it can't find the file. But when the file is completely downloaded, it simply starts playing/reading the file without complaining. Cached files keep being cached during the whole CPS session, except when you do cleanall inside Director/Shockwave. If you want to cache files in the beginning of your program in standAlone mode, you should do so by conversating all your URL's to an unused table ('sample -1 http://....'), or conversate them one by one.
- Director: added getting runtime and patching errors, which makes it easier to trace problems. Also introduced a version number.
- Graphical User Interface: added interpolation quality, so now you can now also select high-quality interpolation for tables. Also added several options, like selecting the background image (the 'comment' is now 100% transparant as well), how many files there are in the recent-file list and the default color for new objects.
- presetManager: you can now also make presets with a k-rate input instead of using the presetManager's window. This does not function in standAlone mode though.
Small changes to make your SDK-code work on Mac OS X
- midiIn: added a warning for bad incoming MIDI messages, for example when continuous midi messages are received but not the first midi message (what happens sometimes with the I-CubeX).
- timer: works slightly more accurate now: not relatively to the last input but relative to time.
- SDK: added examples for the pluginSDK, standAloneSDK and VST. One example shows reading/writing MIDI events directly from midiIn without creating a CPS patch (for Java, C++ and Director). Added a state-variable filter to the plugin SDK. Added an example which shows how to read information fromout Director.
- tabledit: added an 'enage'-button for when new table arguments depend on each other; this also fixes minor table-error-messages inside envelope subpatches. All envelope subpatches have changed accordingly.
- tableread/tablewrite: if you select it and press PAGE_UP, you can use one object to read/write multiple values with one object.
- tline: if the sustain time equals the release time and is the end of the table, looping is disabled without a 'release' trigger (prevents playback of the table's tale when release-time is changed for AD-envelopes)
- all *FromDisk and *ToDisk objects: removed all irritating filename-length restrictions
- audioFromDisk: mono mp3's are now read out normally (like before 1.30), and it does interpolate normally, and you can also adjust the playback speed (a little).
- numberField&constant: also bigger when the font size is bigger.
- plugin C++: replace all 'catch(char*)' appearences with 'catch(const char*)'
- plugin Java: add 'public' before 'class ..', add a public (empty) constructor, and rename the .java file to the classname.
- standAlone C++: the CPScpp library is now dynamicly linked instead of staticly; so, generate an empty .cpp file and simply add the extra code in the beginning, add 'dlclose(lib);' at the end, and also replace 'catch(char*s) with 'catch(const char*s)'. It's easier to generate new code though ;)
- VST: more VST graphical interfaces open normally now!
- presetManager: dragging and doubleclicking in the interface is fixed for several cases, and it also generates correct quotes for a table's argument line for Director.
- midiIn: fixed hanging CPSDistr.exe after quitting with specific Director and MIDI usage.
- multiply: audio with controlrate inside the multiply object works correctly now.