The Cakewalk Application Language is not very well documented. Documentation is very dependent on the Cakewalk version. E.g. in the SONAR help files you will not even find any information about the language, but only how to run a CAL program.
Glen Gardenas has created a very good WEB-site - the Cakewalk Application Language tutorial - with a lot of information about CAL. The information was based on the experience he had build up with several levels of CAL.
Unfortunately, his WEB-site is not up to date anymore. However, Glen gave me his permission to use his material for my programming guide. I restructured the tutorial, updated it for SONAR, and added specifics based on my experience with the language. Who knows Glen's WEB-site will still recognize a lot of his text. Overtime, more updates will follow, and I expect that at the end, it will be a new up to date guide about this nice feature of Cakewalk.
Let us all hope that Twelve Tone Systems will keep this baby alive.
Together with the guide I have created a couple of simple examples to show how programming must be done within CAL.
I have made my library of CAL include programs available. I will expand this library over time.
In addition, a lot of CAL programming techniques can be found in the CAL programs, which are part of the MIDI-Kit.
For starters with CAL, I recommend the short
CAL course.
CAL programs can be used within SONAR Studio,
SONAR Producer, and SONAR Home Studio. To
be able to use CAL programs within SONAR
Home Studio you must hit CTRL+F1. You will
get a window for selecting a CAL program.
The document: Cakewalk Application Language Programming
Guide (2 MB) (last update: Version 2.1, July 27, 2006);
The examples zip file: CAL program samples (2 kB) (last update May 31, 2005). These examples are used in the CAL programming
guide;
The library zip file: MIDI-Kit library (13 kB) (last update: November 20, 2006). The library routines are explained in the
CAL programming guide.
| Library contents | ||
| +2-2 meter | Version 1.0 | February 2005 |
| Creates changes in the velocity of marked notes according to the position in a measure with 2/2 meter. | ||
| +3-4 meter | Version 1.0 | November 2004 |
| Creates changes in the velocity of marked notes according to the position in a measure with 3/4 meter. | ||
| +4-4 meter | Version 1.0 | November 2004 |
| Creates changes in the velocity of marked notes according to the position in a measure with 4/4 meter. | ||
| +6-8 meter | Version 1.0 | August 2005 |
| Creates changes in the velocity of marked notes according to the position in a measure with 6/8 meter. | ||
| +9-8 meter | Version 1.0 | October 2004 |
| Creates changes in the velocity of marked notes according to the position in a measure with 9/8 meter. | ||
| +Constant | Version 1.0 | October 2004 |
| Provides project constants which are not standard included within CAL. Not for new development. See '+Meter'. | ||
| +Controller | Version 1.3 | February 2006 |
| Inserts or replaces MIDI controllers at the marked area. | ||
| +Events marked | Version 1.0 | October 2004 |
| Counts number of specified type of events within marked area. | ||
| +Meter | Version 1.2 | November 2006 |
| Provides meter information which is not standard included within CAL. | ||
| +Meter declarations | Version 1.0 | October 2004 |
| Declares the public variables for the program '+Meter'. | ||
| +need version | Version 1.1 | August 2005 |
| Test whether the version number is equal or higher than the indicated version number. | ||