Sending keystrokes through CAL

Author
luckyg
Max Output Level: -89 dBFS
  • Total Posts : 71
  • Joined: 2004/05/19 20:15:20
  • Status: offline
2005/06/20 19:55:36 (permalink)

Sending keystrokes through CAL

Does anyone know if there's a way to send a series of keystrokes to Sonar using a CAL script? Would be useful for calling up menu commands that aren't available for key binds. I haven't found anything online that talks about this. Except that earlier versions of Cakewalk suggest that you could record CAL scripts much like recording a macro.

...everything is fine, nothing is ruined...
#1

4 Replies Related Threads

    jm24
    Max Output Level: -54 dBFS
    • Total Posts : 2127
    • Joined: 2003/11/12 10:41:12
    • Status: offline
    RE: Sending keystrokes through CAL 2005/06/20 22:48:56 (permalink)
    Yes using

    SendKeys

    and the Universal Control Surface macro facility.

    On the morrow I will elucidate.

    J
    #2
    luckyg
    Max Output Level: -89 dBFS
    • Total Posts : 71
    • Joined: 2004/05/19 20:15:20
    • Status: offline
    RE: Sending keystrokes through CAL 2005/06/21 07:00:09 (permalink)
    Ah ha... I thought there must be some way. I eagerly await your response...

    ...everything is fine, nothing is ruined...
    #3
    jm24
    Max Output Level: -54 dBFS
    • Total Posts : 2127
    • Joined: 2003/11/12 10:41:12
    • Status: offline
    RE: Sending keystrokes through CAL 2005/06/21 09:04:10 (permalink)
    Tuesday Morning

    I use two programs. I like each one for different actions.

    The UCS does NOT wait for each dialog to close before displaying the next; Sendkeys does.

    So, the UCS "insert an audio track " macro is arranged in reverse order to have the dialogs "stacked" in the order I want to enter info. I prefer the Sendkeys version of this macro.

    But, the UCS macro could be written to enter info in the dialogs. Sendkeys does not work in the dialogs. Weird but true.

    =======================================
    SendKeys

    "SendKeys for Cakewalk Sonar
    SendKeys provides additional functionality for users of Cakewalk Sonar. SendKeys extends the CAL programming language by enabling users to define customizable keyboard macros. Now, any menu item accessible through the keyboard is available to key bindings and hardware control surfaces supporting CAL programs. Automate multiple commands through one key binding."

    Sendkeys cost $15 from http://ascmo.com/sendkeys.htm.
    Demo is available.


    The following is from a file that inserts an audio track, displays (sequentially) the inputs dialog, the output dialog, the name dialog, sets input monitoring on, and arms the track for recording. The interleave is determined by the selected input.


    SendKeys_NewTrack.CAL

    (do
    ; insert audio track, arm for recording, input monitoring,
    ; display input, output, and name dialogs

    (delay 500)
    (DLL "SendKeys32" "SendKeysA" "%ia") ; insert track

    (DLL "SendKeys32" "SendKeysA" "%tpi") ; inputs

    (DLL "SendKeys32" "SendKeysA" "%tpo") ; outputs

    (DLL "SendKeys32" "SendKeysA" "%tpn") ; name

    (DLL "SendKeys32" "SendKeysA" "%ti") ; input monitoring

    (DLL "SendKeys32" "SendKeysA" "%tr") ; arm for recording

    )


    This file is keymapped to ctrl-shft-v.

    ========================================================

    Universal Control Surface (UCS)

    This software is "free." It is much MORE complicated than the Sendkeys program.
    It also is more powerful as it can affect Sonar is ways the Sendkeys program cannot.


    http://groups.yahoo.com/group/universalcontrolsurface
    This group discusses the development of the "UCS", a universal control surface
    being developed by Marc(mbncp). The UCS is an advanced full duplex control
    surface for use with Cakewalk Sonar.

    The project has been apparently abandoned. But it is mostly functional. I am using it to control Sonar with a Fostex VM-200 mixer.

    The UCS has a macro capability that is very flexible. It includes the Sendkeys functions for menus, and Commands such as Auto-Punch Toggle, Set Loop

    Points To Selection, SendEnable,....


    A zip file that describes my use of the UCS and the install files, description of the install process, and of macros, is available at the UCS website and also

    here: http://lansing.com/audiostuff/vm200_UCS.zip

    Included are descriptions of the MACROS, using a Fostex VM-200, and using a BCF controller.


    The UCS can map any midi message/ computer keyboard combination, to a Sonar keybinding, menu item, command, and/or series of such.

    Example UCS macro: (I coded this one) using SHIFT+WIN+i
    (NOTE: UCS keymaps occur in the macro file, NOT with Sonar's keymap function.)

    ; insert new audio track: display dialogs for name/input/output, set input monitoring on, arm for recording

    sw,i Command Insert | Audio Track
    sw,i Command Track | Property | Name
    sw,i Command Track | Property | Inputs
    sw,i Command Track | Property | Outputs
    sw,i Command Track | Input Monitor / Echo
    sw,i Command Track | Arm for Recording


    Another example: (from the help docs)

    ; Loop 1-300 using SHIFT+WIN+L

    1 sw,L TransportTime LoopIn MoveTo MBT 1,0,0
    1 sw,L TransportTime LoopOut MoveTo MBT 300,1,0
    1 sw,L Command Loop On/Off
    1 sw,T BankShift Active Right


    All actions responding to the same HotKey will be played sequentially at the ‘same’ time, the top action being played first.
    As you see in the previous example pressing SHIFT+WIN+L will set the LoopIn transport time to Bar 1, LoopOut to bar 300 and will toggle Loop On/Off.

    (From the program author: "This is a macro I use on new project, as this allow me to run playback without any data.")

    =========================================
    Backup the INI file before changing.

    FOR MACRO'S ONLY: rename the UCS_beta3.ini file to UCS_beta3.vm200.
    Rename the macros only UCS_beta3.ini file to UCS_beta3.ini

    ==================================
    The UCS is a MACRO editor / player: NOT a recorder.

    See:
    UCS Help 1003d WordPad format.doc for Sonar parameters: TransportTime, TransportState,...
    Command Actions for Sonar 3 PE.txt, Command Actions for Sonar 4 PE.txt for menu items,...
    And: review the INI and other docs for examples.

    ==================================

    The included INI file is configured to control:

    Sonar Tracks: (in VM200 channel mode)
    Fader
    Pan
    Solo

    Send 1 volume (in VM200 effect 1 mode)
    Send 2 volume (in VM200 effect 2 mode)


    Sonar Buses: (in VM200 channel mode)
    Fader
    Pan
    Solo

    Send 1 volume (in VM200 effect 1 mode)
    Send 2 volume (in VM200 effect 2 mode)


    Fostex Master (red) Fader in channel mode
    Sonar Master Volume


    Fostex Master (red) fader when in various modes (not enabled/assigned in current INI file)
    Aux1 Master Volume
    Aux2 Master Volume
    Aux3 Master Volume
    Aux4 Master Volume
    Effect1 Master Volume
    Effect2 Master Volume


    Fostex Master Channel ON button switches between the track and bus panes.

    =============================================
    MACROS: current macros in INI file

    Shift + Windows + U
    Open the UCS dialog, load default ini file

    Shift + Windows + i
    load default ini file


    Shift + Windows + Left Arrow
    Move Track Bank left

    Shift + Windows + Right Arrow
    Move Track Bank right


    Shift + Windows + Up Arrow
    Control Tracks

    Shift + Windows + Down Arrow
    Control Buses


    Shift + Windows + i
    Insert new audio track
    Then: Display Name, Inputs, and Outputs dialogs
    Set input monitoring on
    Arm for recording

    Shift + Windows + d
    insert new MIDI track
    Then: Display Name, Channel, Outputs, Bank, and Patch dialogs
    Arm for recording


    =============================================
    TO INSTALL

    Using Windows Explorer expand the VM200.zip file to the c:\ folder.
    This will create these folders:
    C:\AudioCommon\UCS\ucs_stuff
    and copy all the files to these folders

    ================================================

    UCS setup:

    Double click the "Register.bat" file in the c:\AudioCommon\UCS folder.
    (Do this only once.)

    ((
    Note: The C:\AudioCommon folder is where I install programs and shared content
    I want quick access to without having to explore to an annoyingly buried folder.
    E.G., C:\Program Files\Cakewalk\Sonar4\shared content\templates\,....

    Also: I have installed programs such as Sonar1,2,3,4 to folders in the C: folder:
    i.e., C:\Sonar1, C:\Sonar2, etc.,...
    ))


    Click: Options | Control Surfaces
    Add the UCS
    choose MIDI In / Out ports (if not using a controller, no ports may work)
    click OK to exit dialogs

    Press Shift + Windows + U
    To open the UCS dialog, and load default ini file.
    (Only 1 preset at this time.)

    (If this does not work:
    Click Tools | UCS
    Click Edit
    Click File | Save and Update
    Click X to close editor.)

    Test


    =======================================


    J


    #4
    luckyg
    Max Output Level: -89 dBFS
    • Total Posts : 71
    • Joined: 2004/05/19 20:15:20
    • Status: offline
    RE: Sending keystrokes through CAL 2005/06/21 20:16:27 (permalink)
    oh, my!! Now there's a bit of reading! I think I caught the general aspects of setting it up. I'll come back if I'm stuck. Thanks for all the info!!

    ...everything is fine, nothing is ruined...
    #5
    Jump to:
    © 2025 APG vNext Commercial Version 5.1