***************************************************************
                SendKeys for Cakewalk / Sonar
                      September 2002
***************************************************************
(c) Copyright 2002 Automation Services Company, Inc.
    All rights reserved.

***************************************************************
Contents
***************************************************************
1.0 Introduction
2.0 Installing SendKeys
    2.1 System Requirements
3.0 Notes and Guidelines
    3.1 Supported Versions of Cakewalk / Sonar
    3.2 How to Use SendKeys
    3.3 Supported Key Combinations
    3.4 Tips for Recording Macros
4.0 Questions and Comments


***************************************************************
1.0 Introduction
***************************************************************
SendKeys provides additional functionality for users of 
Cakewalk and Sonar. SendKeys offers these exciting new
features:

* Extended Key Bindings for Missing Menu Items
  Use Cakewalk's Key Bindings to bind key combinations to 
  SendKeys-extended CAL files. By doing so, you can bind to ANY
  available menu item accessible with the keyboard.

* Extended Key Bindings for Dynamic Menu Items
  Cakewalk dynamically updates menu items based on installed DXi 
  components. Because of this, Cakewalk's Key Bindings do not 
  contain every menu item available in your setup. With SendKeys, 
  you can extend your key bindings to ANY dynamic menu item.

* Extended Key Bindings for Hardware Control Surfaces
  Extend customized key bindings to any Hardware Control
  Surface, Programmable Controllers, or customized StudioWare 
  panel that supports CAL programs. Control surfaces like 
  Peavey's StudioMix can now be used to automate ANY menu item.


***************************************************************
2.0 Installing SendKeys
***************************************************************
Double-click the included setup program to begin installation 
(Setup.exe). Follow the on-screen prompts to complete the
installation. 

The SendKeys installation program copies the following DLLs
into the following folders:

* C:\Program Files\SendKeys:
  * SendKeys.dll

* Winnt\System32 (or Windows\System):
  * SendKeys32.dll

The installation program also copies several CAL programs to
the install folder (default is C:\Program Files\SendKeys). For
these CAL files to appear in the list of CAL programs, copy them
to your default CAL directory.

-----------------------
2.1 System Requirements
-----------------------
* You can install SendKeys on computers running the 
  Microsoft Windows 98, Windows Millennium, Windows NT 4.0, 
  Windows 2000, or Windows XP operating system. 


***************************************************************
3.0 Notes and Guidelines
***************************************************************
This section includes important information about SendKeys.

-----------------------------------------------
3.1 Supported Versions of Cakewalk / Sonar
-----------------------------------------------
SendKeys is compatible with any version of Cakewalk that 
supports the CAL language. This includes Cakewalk Pro Audio, 
Cakewalk Professional, Sonar 1.0, and Sonar 2.0.

---------------------------------
3.2 How to Use SendKeys
---------------------------------
SendKeys relies on the "DLL" function in the CAL programming
language. Through the use of this call, you can write custom
CAL programs to play back any valid sequence of keystrokes. All
Cakewalk and Sonar commands accessable via the keyboard can
now be automated with CAL.

To begin writing custom CAL programs, see the included samples.
There are a few important points to remember:

* Key combinations utilizing the CTRL key do not work.
  However, there is usually a work-around using a combination
  of ALT and arrow keys (see the SendKeys_NextWindow.CAL)

* Each SendKeys-enabled CAL ** MUST ** have a delay time
  When a CAL program is launched, either through CTL+F1 or
  a button binding, a DELAY statement must be processed
  for successful key playback. See the CAL samples provided.

* Delay times may need to be adjusted
  You may need to adjust the delay times (in milliseconds) to
  work with your computer's processor's speed. The delay times
  in the samples were calibrated and tested on a PIII 1MHz
  machine and a PIII 450MHz machine.

---------------------------------
3.3 Supported Key Combinations
---------------------------------
Each key is represented by one or more characters. To specify a
single keyboard character, use the character itself. For
example, to represent the letter A, use "a" for string. To
represent more than one character, append each additional
character to the one preceding it. To represent the letters A,
B, and C, use "abc" for string.

* IMPORTANT: Use lower-case letters in all combinations.

The plus sign (+), caret (^), percent sign (%), tilde (~), and
parentheses ( ) have special meanings. To specify one of these
characters, enclose it within braces ({}). For example, to
specify the plus sign, use {+}.

To specify characters that aren't displayed when you press a
key, such as ENTER or TAB, and keys that represent actions
rather than characters, use the codes shown below:

Key Code 
BACKSPACE 	{BACKSPACE}, {BS}, or {BKSP} 
BREAK 		{BREAK} 
CAPS LOCK 	{CAPSLOCK} 
DEL or DELETE 	{DELETE} or {DEL} 
DOWN ARROW 	{DOWN} 
END 		{END} 
ENTER  		{ENTER}or ~ 
ESC 		{ESC} 
HELP 		{HELP} 
HOME 		{HOME} 
INS or INSERT 	{INSERT} or {INS} 
LEFT ARROW 	{LEFT} 
NUM LOCK 	{NUMLOCK} 
PAGE DOWN 	{PGDN} 
PAGE UP 	{PGUP} 
RIGHT ARROW 	{RIGHT} 
SCROLL LOCK 	{SCROLLLOCK} 
TAB 		{TAB} 
UP ARROW 	{UP} 
F1 		{F1} 
F2 		{F2} 
F3 		{F3} 
F4 		{F4} 
F5 		{F5} 
F6 		{F6} 
F7 		{F7} 
F8 		{F8} 
F9 		{F9} 
F10 		{F10} 
F11 		{F11} 
F12 		{F12} 
F13 		{F13} 
F14 		{F14} 
F15 		{F15} 
F16 		{F16} 


To specify keys combined with any combination of the SHIFT,
CTRL, and ALT keys, precede the key code with one or more of 
the following codes:

Key 	Code 
SHIFT 	 + 
CTRL  	 ^ (NOTE: this does not work in Cakewalk or Sonar)
ALT 	 % 

To specify that any combination of SHIFT, CTRL, and ALT should
be held down while several other keys are pressed, enclose the
code for those keys in parentheses. For example, to open the
File, Open dialog, which is accessed via the keyboard by 
pressing ALT+F, then O, use "%fo". Remember to use lower-case 
letters in all combinations.

To specify repeating keys, use the form {key number}. You must
put a space between key and number. For example, {LEFT 2} means 
press the LEFT ARROW key 2 times; {h 10} means press H 10
times.

---------------------------------
3.4 Tips for Recording Macros
---------------------------------
SendKeys does not contain a macro-recording component. You
need to work out your key combinations first, then create a
new CAL program to call SendKeys with the valid key sequence. 
Here are a few tips to help you.

* Use ALT key combinations for menu items
  Many menu items have an associated shortcut key (for example,
  File, Open can be accessed through CTRL+O), but since the
  CTRL key is not supported, you can access it through ALT+F,
  then pressing O. Notice that many menu items have ALT key
  shortcuts; you can tell by the underlined character.

* Use ALT keys and letters rather than arrow keys
  Since menu item placement may vary with the version of 
  Cakewalk or Sonar, and since some items are dynamically added
  to the menu (e.g. audio and MIDI effects), use ALT key
  combinations or the starting letter of menu items.

* Use the ALT key only to select the top-level menu item.
  As another example, "%fo" and "%(fo)" may work, but there is
  no real need to hold down the ALT key while pressing the O.


***************************************************************
4.0 Questions and Comments
***************************************************************
Newsgroup support for this release is available at: 
news.cakewalk.com.developer.CAL.

If you have any comments, questions or suggestions, please contact 
info@ascmo.com via E-Mail. We reserve the right to provide free 
technical support only to registered users. 
