[Top: John S. Allen's Home Page]
[Up: Event types]
[Previous:]
[Next:]

[contact John S. Allen by e-mail]

Site logo (2 KB GIF)Bikexprt.com Web Site


How I discovered the
Undocumented Cakewalk Event Types

John S. Allen

I wanted to write a replacement in CAL for the Cakewalk Length function. The Length function works only by percentage points. I've gone into that problem in another article on this site.

I succeeded in writing my CAL program, and it worked for the documented Cakewalk event types. I also noticed that it was also moving the start points of audio events, though it wouldn't stretch audio.

Since my program moved audio events using a (forEachEvent ) loop, I reasoned that CAL must regard Audio clips as events. Then there were two possibilities: either CAL has an "undefined, default event type" category, or else Audio is an actual event type.

I ran the CAL recorder on the Cakewalk Event Filter, checking "select none." The following code appeared in the CAL view, listing all of the "Kind of Event Constants":

(ResetFilter 1 1)
(SetFilterKind 1 NOTE 0)
(SetFilterKind 1 KEYAFT 0)
(SetFilterKind 1 CONTROL 0)
(SetFilterKind 1 PATCH 0)
(SetFilterKind 1 CHANAFT 0)
(SetFilterKind 1 WHEEL 0)
(SetFilterKind 1 RPN 0)
(SetFilterKind 1 NRPN 0)
(SetFilterKind 1 SYSX 0)
(SetFilterKind 1 SYSXDATA 0)
(SetFilterKind 1 TEXT 0)
(SetFilterKind 1 LYRIC 0)
(SetFilterKind 1 WAVE 0)
(SetFilterKind 1 MCI 0)
(SetFilterKind 1 EXPRESSION 0)
(SetFilterKind 1 CHORD 0)
(SetFilterKind 1 HAIRPIN 0)
(SetFilterKind 1 RPN 0)
(SetFilterKind 1 NRPN 0)

 The seven "kind of event constants" in brown are capitalized and spelled the same as Event.Kind parameters. Is this trying to tell me something?

I'll find out. I write a short CAL routine using the expression (If (Event.Kind WAVE ) ...). I run it on a file with audio clips in it. No error message appears. CAL accepts WAVE as an event type!!! When I use (If (Event.Kind WAVE ) ...) to count the audio clips in the file, CAL counts them!!!!

Then I write a program testing all of the "Kind of Event Constants." I find that all of the Kind of Event Constants are also Event Types.

The only thing I can't figure out is why Cakewalk has not documented this. Many software companies like to tell you about features to be added in the next upgrade. Here, it turns out, are some powerful features which have been around for quite a while and never documented. Why the modesty, guys?

Well, anyway now I can put the frosting on the cake, so to speak, with my LENGTH.CAL program. By calling the Cakewalk Fit to Time command, I can stretch the audio clips. What would be even more elegant is if there is an undocumented audio stretching command parameter in CAL. Cakewalk Technical Support: is there one? Or if not, maybe in the next upgrade?


[Top: John S. Allen's Home Page]
[Up: Event types]
[Previous:]
[Next:]

[contact John S. Allen by e-mail]

Contents 1998 John S. Allen

Last revised 18 April 1998