Copyright: Copyright (c) 1991-1994 by Greg Hendershott.


Contents

Welcome to
Cakewalk Professional 3.0

While using Cakewalk Professional, you may get context-sensitive help -- help about what you're currently working on -- at any time.  Press the F1 function key, or, press the Help button of any dialog box.  This help system will pop up and take you directly to the relevant topic.

You may point and click on any of the following items for help:

• What's New in Version 3.0

• Answers to Common Questions (Save yourself a call to Tech Support!)

• Keyboard Shortcuts

• Glossary

Help on Menus:

File   Edit   View   Insert   Realtime   Mark   GoTo   Track   Settings   Window


New Features in this Version
What's New in Version 3.0?

Cakewalk Professional for Windows 3.0 has the following additions and changes:

• Additional Quantize options: Swing, Window, and Offset.

• Groove Quantize.  Copy the "feel" of a track by applying its timing and velocity to other tracks.  Use and create groove template files.

• The Faders view now has 128 faders: twice as many sliders (32) and knobs (64), plus 32 new buttons to transmit note events for use with automated mixing consoles.  You may move and record faders together using groups.  You may import faders from other files.  You may turn off the Update option which redraws the fader positions to match the most-recent events in tracks, making it easier to work with the Snapshot feature.

• An Insert menu has been added to speed common tasks like inserting bank/patch changes, wave files, tempos and meter/key changes.  The Controller Fill command has been moved to this menu and renamed Insert Series of Controllers.  The new Insert Series of Tempos command lets you create accelerandos and ritards.

• Lyric events.  You may view and edit these using the Staff and Event List views.  A brand new view, the Lyrics view, lets you enter lyrics in a notepad.  They are automatically flowed against note events.  You may choose between two fonts, and with a larger font use this view as a performance teleprompter.

• Instrument definitions.  This is a database of information about your MIDI gear which helps many other new features work automatically:  Bank Select methods, Patch Names, Note Names, Controller Names, percussion editing, and more.

• Full support is provided for MIDI Bank Select.  There is a new Bank track parameter.  Patch events now have a Bank as well as a Patch number.

• Support for Note Names and percussion editing in the Piano Roll view.

• All continuous controllers numbers 0 through 119 are chased (as enabled in the MIDI Out dialog).   Note events are chased on channels that are assigned an Instrument that is an automated mixing device.

• Multiple-level Undo and Redo let you back out of multiple edit operations in a row, as well as redo them.

• Expanded coverage by Undo: adding, deleting, or changing single events in any of the views.  You may make numerous changes and undo and redo each of the changes, step by step.

• MIDI Machine Control (MMC) tape transport support lets you control a tape deck using Cakewalk's play and record buttons.  Use the MIDI Out dialog to enable and configure this feature.

• If a Piano Roll, Controllers, Staff, or Event List view is active, then Edit commands operate only on the track(s) shown by that view, not the tracks selected in the Track/Measure view.  This helps you avoid performing commands on the wrong tracks by mistake.  Instead the commands operate on what you're looking at in the view.

Note:  If you do not like this new behavior and prefer the way version 2.0 works, you may add the line AlwaysTrackViewSelection=1 to the [WINCAKE] section of your WINCAKE.INI file.  You may make this change using the Initialization Files command from the Settings menu, or by using Windows Notepad to edit WINCAKE.INI directly.  Remember to restart Cakewalk Professional for the change to take effect.

• The drawing "tools" have changed in the Piano Roll view.  To insert brand-new notes, you no longer need to hold the CONTROL key.  You may continue to delete notes by clicking on them and pressing DELETE, but you may now also choose the new Erase tool and click on notes.

• In the Piano Roll view, you may drag all notes of a particular pitch to another pitch.  Point to the keyboard/note names pane on the left (the cursor changes to a pointing hand over this area) and double-click.  Hold the mouse the second time you click and drag up or down.   To copy the notes rather than move them, hold the CONTROL key while clicking.

Tip: This action will be recorded in the CAL view if you have CAL recording turned on.  Thus you may easily write a CAL program to reassign pitches.  Simply record yourself performing the actions, save the resulting CAL program, and use it again in the future.

• To draw straight lines in the Controllers and Tempo views, you no longer need to hold the SHIFT key.  Instead, choose the new line-draw tool instead of the plain pencil tool.

• The drawing "tools" have changed in the Staff view.  To insert brand-new notes, you no longer need to hold the CONTROL key.  Scrubbing is now available in the Staff view.  You may continue to delete notes by clicking on them and pressing DELETE, but you may now also choose the Erase tool and click on notes.


Keyboard shortcuts

Function Keys
F1	Help (context-sensitive)
CTRL+F1	Run CAL
ALT+F1	Undo
F2	Copy
CTRL+F2	Cut
SHIFT+F2	Paste
CTRL+SHIFT+F2	Paste To One Track
SHIFT+F3	Step record
CTRL+F4	Close child window
ALT+F4	Exit
F5	(GoTo) Time
ALT+F5	Search Next
(	The F6 keys work only with View|Options|DOS F6 Keys on:)
F6	Switch to Track pane of Track/Measure view
SHIFT+F6	Switch to Measure pane of Track/Measure view
CTRL+F6	Open or switch to Event List view
ALT+F6	Open or switch to Piano Roll view
F7	(GoTo) From
F8	(GoTo) Thru
F9	From=Now
F10	Thru=Now

Other Keys
CTRL+O	Open
CTRL+S	Save
CTRL+Z	Undo
CTRL+A	Redo
CTRL+C	Copy (Also copies text in notepads/dialogs)
CTRL+X	Cut (Also cuts text in notepads/dialogs)
CTRL+V	Paste (Also pastes text in notepads/dialogs)
CTRL+SHIFT+V	Paste To One Track
CTRL+TAB	Next child window.
SHIFT+CTRL+TAB	Previous child window.


README.WRI

This file contains important information about changes since the printed documentation went to press.  You should read this file.

Cakewalk SETUP installs an icon for README.WRI that you can double-click on.

Or, choose the View README.WRI command from the Help menu.


Save changes
Save changes?

You are quitting Cakewalk or loading a new file, but your changes to the current file have not been saved.

•  To save your changes before quitting or loading a new file, press Yes.

•  To simply quit or load another file, press No.  Your changes will be lost.

•  To back out of quitting or loading a new file, press Cancel.


Undo -- cannot do later
Cannot Undo later

The action you are about to take cannot be reversed later using the Undo command.

•  If you are unsure about proceeding and you haven't saved your work, press Cancel.  Use  Save to save your workfile now, then take this action again.

•  To proceed anyway, press OK.


WINCAKE.INI

This file is located in the directory where you installed Cakewalk Professional (if you accepted the directory which Cakewalk SETUP proposed, this is C:\WINCAKE).  It contains information that Cakewalk needs to store between sessions, for example, your preferences.  Many items are stored here from choices you make in Cakewalk's menus and dialog boxes.  But some items can be changed only by directly editing this file using the Windows Notepad application, or, for items in the [WINCAKE] section, by using Initialization Files.

If you make changes to this file, they will not take effect until the next time you start Cakewalk.  Also, when you quit Cakewalk it writes some information about your preferences to this file.  So if you need to directly edit WINCAKE.INI, it is best to quit Cakewalk, make your changes, then restart Cakewalk.

WINCAKE.INI is divided into sections.  The section beginning with the line

[WINCAKE]

is where you should add information if no particular section is mentioned.  For example, if you are advised to, "add the line AskSysxAutoSend=1 to WINCAKE.INI", you should put it on the line under [WINCAKE], like this:

[WINCAKE]

AskSysxAutoSend=1


notepad

When you're using a view that has a standard Windows notepad, remember that you can cut, copy, and paste text between Cakewalk and other programs by using the standard shortcut keys:

CTRL+C	Copy
CTRL+X	Cut
CTRL+V	Paste

These keys work even with small, single-line text boxes in any Windows program.


File menu

The File menu contains mostly commands for relating to files, plus a few others.

New	Wipe out the whole work and start fresh.

Open	Load a work from a disk file

Save	Save a work to a disk file

Save As	Save a work to a disk file under a new name

Merge	Load a work's events into the Scrap buffer

Extract	Save the Scrap buffer into a work file

Info	View comments and other information.

Print Preview	Print the current view to the screen

Print	Print the current view

Print Setup	Change the current printer and/or printer settings

Exit	Exit the program


New
New (File menu)

Use this command to start a new work.  If your current work has changed since you saved it, you will be given a chance to save it first.  Next, pick from a list of file templates to create a new work.

See Also:

File Menu

"New" in the User's Guide for help with templates.


Open
Open (File menu)

Use this command to load Cakewalk workfiles or Standard MIDI Files.

Loading a file replaces the file currently in memory.  If you have made changes since it was last saved, you will be given a chance to save it before loading the new work.

Shortcut
Key:	CTRL+O

System Exclusive auto send banks.

If you load a Cakewalk workfile containing System Exclusive auto send banks, you will be asked whether you want to send them.  Answer "No" if you are loading a file from someone else that may contain unknown System Exclusive data.  Doing so will prevent your synthesizer configuration from being changed.

If you want Cakewalk always to send the banks and never to ask you, add the following line to your Cakewalk initialization file:

AskSysxAutoSend=0

Dropping files from the File Manager

You can also load files by dragging them from the Windows 3.1 File Manager and dropping them anywhere on Cakewalk's window.  If Cakewalk is playing when you drop the file, playback will stop, the new file will be loaded, and playback will be turned back on again.

See Also:

File Menu


Save
Save (File menu)

Use this command to save a changed file under its existing name.

If you created a brand-new work using the New command, it has no name.  In that case, the Save As. dialog appears.

Shortcut
Key:	CTRL+S

See Also:

File Menu


Save As
Save As (File menu)

Use this command to save your work as a Cakewalk workfile or as a Standard MIDI File.

If you do not supply an extension for the file name, the ".WRK" or ".MID" file extension will be automatically appended to your name, depending on the type of file you've selected.

Note: The Standard MIDI File format is in industry standard for moving files between different MIDI programs.   MIDI Files cannot represent all of the information that Cakewalk can store in its own, native files.  Therefore, generally you will want to save your work as Cakewalk files.  Use Save As to create an additional MIDI File on occasions when you need to export your work to another program that reads MIDI Files.

MIDI File Options

These options are stored inside a Cakewalk file (.WRK).  They control how the file is saved when you also save it as a MIDI File (.MID).  Ordinarily you will want to save a MIDI File as Format 1, and not check the Mark for Microsoft Media Player option.  However, please see the "MIDI Files" appendix in the User's Guide for more information about MIDI Files.

See Also:

File Menu


Merge
Merge (File menu)

Use this command to load a file into the clipboard.  Next, use Paste to place the material where you want.

See Also:

File Menu


Extract
Extract (File menu)

Use this command to save the clipboard to a file.   Use this after you have used the Copy or Cut command.

See Also:

File Menu


Info
Info (File menu)

Use this command to set and view special text to describe your work.

Title:  The title for your work.  This text appears at the top of the page when printing the Staff and Event List.

Subtitle:  Also referred to as the "dedication".  This text appears in the Staff view print-out centered below the Title on the first page.

Instructions:  These are performance instructions.  This text appears in the Staff view print-out left-aligned near the top of the first page.

Author:  If you created the work, you probably want to put your name here.  If this field is blank in a file, Cakewalk will use whatever name you provided SETUP.  This text appears in the Staff view print-out, right-aligned near the top of the first page.

Copyright:  A copyright notice.  A default Copyright is proposed based on the name you provided SETUP (like the Author field) and using the current year (e.g. 1995): "Copyright 1995 by <username>").  This text appears in the Staff view print-out below the Author.

Key Words:  Supply any phrases you wish to describe the work or its style.  For example, "RAGTIME JOPLIN".  This will assist searching for files based on the Key Words, using a future feature of Cakewalk or other programs.  This text does not appear when you print, except for printing this file information using the Info dialog Print button.

Comments:  Free-form comments you can write using a notepad.  This text does not appear when you print, except for printing this file information using the Info dialog Print button.

Pop Up on Open:  If this is checked, this Info dialog will be displayed when a user loads the file.

Statistics

This button provides some additional informaton, which is calculated each time you save the file.  A file that has not yet been saved (or not saved with Cakewalk 2.0) won't have this information.  If you use Save As to create a new file -- even if you're writing over an existing file -- this information will be reset.

Editing time:  The total time that you've had the file open in Cakewalk -- from the time it was created to the last time it was saved.  This does not include time spent editing the file since you last saved it; if you want to update this value, save the file.

Revision:  Each time you save a file that's been changed, Cakewalk increases this number.  If you load a file, do not change it, and save it, Cakewalk does not increase the revision number.  You can tell whether a file has changed by looking for an asterisk "*" after its name in the Cakewalk window caption.

Creation time and date.

See Also:

File Menu


Print Preview
Print Preview (File menu)

Use this command to preview printing of the Staff, Event List, and Lyrics views.  Activate the window, then choose this command.

See Also:

File Menu


Print
Print (File menu)

Use this command to print the Staff, Event List, and Lyrics views.  Activate the window, then choose this command.

See Also:

File Menu


Print Setup
Print Setup (File menu)

Use this command to choose which printer you want to use and to configure it.

See Also:

File Menu


Exit
Exit (File menu)

Use this command to exit Cakewalk.  If your work has changed since you last saved it, you will be asked if you want to save it before Cakewalk exits.

See Also:

File Menu


Edit menu

The Edit menu contains commands relating to moving and changing regions of your work.  Regions are events (a) from selected tracks and in the time range specified by the From and Thru markers

Undo	Undo the most recent edit or action.

Redo	Redo the most recent edit or action.

History	Navigate the Undo, Redo history.

Copy	Copy a region to the Scrap buffer.

Cut	Move a region to the Scrap buffer.

Paste	Move scrap buffer back to the work.

Paste To One Track	Move Scrap buffer back to only one track.

Quantize	Round off the starting times of events.

Groove Quantize	Apply the "groove" or "feel" of one track to other tracks.

Length	Change temporal length of region.

Slide	Slide a region ahead or back in time.

Interpolate	Scale values; "search-and-replace".

Retrograde	Reverse the order of events in region.

Transpose	Transpose pitches of Note and/or KeyAft events.

Velocity Scale	Change note velocities over time to a set value or percentage.

Fit to Time	Adjust tempos to make region last specified amount of time.

Fit Improvisation	Insert tempos to fit free-form playing to time grid.

Run CAL program	Run an existing CAL program.


Undo
Undo (Edit menu)

Use this command to reverse the most recent command or operation.

You may choose Undo multiple times in a row to undo a series of actions.

See Also:

Redo

Undo Redo History

Edit Menu


Redo
Redo (Edit menu)

Use this command to redo the most-recently undone action.

You may choose Redo multiple times in a row to redo a series of actions.

See Also:

Undo

Undo Redo History

Edit Menu


History
History (Edit menu)

Use this command to view and navigate the Undo Redo history.

Cakewalk offers multiple levels of Undo capability.  Not only can you undo your most recent command or action, you can wind back even further.  If you find you've backed up too far, you can "redo" actions.  However, once you choose a new command or action, you lose the ability to redo.  The history, in other words, can have only one "future".

The History dialog shows you the series of steps you have taken.  You may pick a point in the history list and press OK.  Cakewalk will perform the necessary number of Undo or Redo actions to get you to that point.

Memory Requirements

Depending on the commands or actions, maintaining the ability to undo multiple times may require a great deal of memory.  The Clear button lets you release this memory if you're sure you won't need to Undo.  In addition, if Windows notifies Cakewalk that it is low on memory, Cakewalk will ask you if you would like to release the Undo history.

Choosing Open or New to begin working with a brand-new file clears the Undo history.

The number of levels of Undo available is subject to available memory and the types of actions you take (which can vary from deleting a single event to quantizing hundreds of thousands of events).  To avoid consuming too much memory, Cakewalk places a limit on the number of levels you can Undo.  Once that limit is reached, each new action pushes out the oldest item in the Undo history.

By default, no more than the 32 most-recent commands or actions may be undone.  However, you may raise or lower this number.  See the User's Guide for more information.

See Also:

Undo

Redo

Edit Menu


Cakewalk Windows Clipboard Formats

The Cut, Copy, and Paste commands work with music data on the Windows Clipboard in several formats.

Standard MIDI Files

One format is MIDI File format: the data on the Clipboard is a memory image of a Standard MIDI File.  Any other application capable of understanding MIDI Files and recognizing this Clipboard format can exchange data with Cakewalk.  You can copy and paste data to and from Cakewalk and the other application.  This is faster than creating an actual Standard MIDI File on disk, and there is no temporary file for you to delete later if it was a temporary transfer.

Note to programmers: Cakewalk calls RegisterClipboardFormat() with the string "Standard MIDI File".  The handle that you put on or get from the Clipboard is a block of memory from GlobalAlloc() that contains nothing more or less than the exact image of a Format 0 or 1 Standard MIDI File.  Please help our mutual customers by supporting this simple protocol for data exchange under Microsoft Windows.

Private format

A private format is recognized by Twelve Tone Systems applications.  For example, if you are running two copies of Cakewalk for Windows at once, and copy-and-paste music data between them, the recipient will use the private format simply because it is faster.


Cut
Cut (Edit menu)

Use this command to remove track events, tempo changes, and meter changes in the time region From..Thru and put them on the Clipboard.

If you check Events, then events from selected tracks are cut.  You can opt to use an Event Filter to further define what events will be cut.  But note that the Delete hole and Use Event Filter options are mutually exclusive: unless you delete all the events in the region, there won't be an empty region to delete.

You cannot Cut meter changes unless the From and Thru markers are set to cover a time range that is an exact number of measures long.  Since a meter defines how long a measure is, by definition you cannot cut other than in units of whole measures.

Shortcut
Key:	CTRL+X

See Also:

Copy

Paste

Paste To One Track

Edit Menu

Cakewalk Windows Clipboard formats


Copy
Copy (Edit menu)

Use this command to copy track events, tempo changes, and meter changes in the time region From..Thru and put them on the Clipboard.

If you check Track events, then events from selected tracks are copied.  You can opt to use an Event Filter to further define what events will be copied.

You cannot cut meter changes unless the From and Thru markers are set to cover a time range that is an exact number of measures long.  Since a meter defines how long a measure is, by definition you cannot cut other than in units of whole measures.

Shortcut
Key:	CTRL+C

See Also:

Cut

Paste

Paste To One Track

Edit Menu

Cakewalk Windows Clipboard formats


Paste
Paste (Edit menu)

Use this command to insert a copy of the Clipboard contents at the current position.  Events are pasted to the same tracks they were originally from which they were originally Cut or Copied.  The pasted material can be repeated any number of times, with the repetitions inserted one after another.  This lets you create repeating themes quickly.

Shortcut
Key:	CTRL+V

See Also:

Paste To One Track

Edit Menu

Cakewalk Windows Clipboard formats


Paste to One track
Paste To One Track (Edit menu)

Use this command like the Paste command, but to forces all the events to be placed in a single track.

With respect to tempo and meter/key signature changes, Paste To One Track works no differently than regular Paste.  The tempo map and the meter/key signature map are still treated as separate "tracks".

Hint: To paste multiple tracks to multiple different tracks, try using the Drag and Drop feature of the Measure pane in the Track/Measure view.

Shortcut
Key:	SHIFT+CTRL+V

See Also:

Edit Menu

Cakewalk Windows Clipboard formats


Quantize
Quantize (Edit menu)

Use this command to round off the starting times and/or durations of note events.

Durations are given a value of the resolution amount minus one.  That way, notes do not run into each other, legato-style, causing problems on some synthesizers. Durations smaller than the resolution amount will be rounded up to the resolution minus one -- not down to zero.

Quantize normally affects only note events in the selected region (selected tracks in the time range From..Thru).  If you use an Event Filter, however, it will operate on whatever kinds of events you have specified there.

Resolution

Quantize lays a grid over your music, then moves your notes to line up on the grid.   The grid spacing is determined by the Resolution option.  For example, a Resolution of an eighth note will use a grid with a point every eighth note.

A rule of thumb is a Resolution matching the smallest note in the region you're quantizing.  If the notes are all sixteenth notes, choose that for the Resolution.  If the notes are a mix of sixteenth and eighth notes, you would still choose sixteenth notes.

Strength

You may control how far Quantize should move notes toward the grid lines.  A Strength of 100% will move the notes fully to the line.  If the Strength is only 50%, the notes will be moved only halfway.

Use a Strength of 100% to make your timing "perfect", but mechanical-sounding.  Use lesser strengths to "tighten" the timing without making it sound as mechanical.

Swing

The timing grid can be "distorted" such that every pair of grid points is spaced unevenly.  If the Swing option is 50% (the default), then every pair is the same size.  If the Swing option is 66%, then the first of each pair is twice as big as the second.   A Swing amount greater than 50% will give you a musical "swing" feel.  When eighth notes are played with a swing feel, the first of each pair lasts longer than the first.

Window

There may be situations where notes that are very far from the grid should not be moved at all.   The Window option lets you say how close to the resolution grid point a note must be for quantize to move it.  A Window of 100% includes all notes.  A Window of 50% includes all notes that are halfway on either side of the grid point.

Offset

Normally the resolution grid is aligned with the start of measures and beats.  You may shift the grid by a number of ticks earlier or later.  If the Resolution is a quarter-note, and you've set the Offset to +3 ticks, then a note near 1:1:0 would end up at 1:1:003 -- three ticks later.

See Also:

Edit Menu


Groove Quantize
Groove Quantize (Edit menu)

Use this command to synchronize events in separate tracks with each other, or with a predefined pattern.

Groove Quantize aligns the start times and durations of events in the selected tracks with events in the groove source.  It can also emphasize accented beats, detected through variations in note velocities.

Timing and accenting can be adjusted to match a sample of music taken from the clipboard data or from a library of predefined grooves.  You can create your own groove patterns and add them to your library.

Durations are given a value of the resolution amount minus one.  That way, notes do not run into each other, legato-style, causing problems on some synthesizers. Durations smaller than the resolution amount will be rounded up to the resolution minus one -- not down to zero.

Groove Quantize normally affects only note events in the selected region (selected tracks in the time range From..Thru).  If you use an Event Filter, however, it will operate on whatever kinds of events you have specified there.

If the groove pattern is shorter than the selected range, it will be repeated as many times as necessary to cover the range.

Groove Source	Strength
Resolution	Define
Window	Tips and Examples


Groove Source (Groove Quantize)

Groove Quantize needs a sample snippet of music to use as the timing and accent reference.  This is the Groove Source.  The source may be material on the Clipboard, or, a pattern in your library.

The Clipboard choice allows you to use the Copy command before using Groove Quantize.  Copy a region of an existing track.  Then choose Groove Quantize and select the Clipboard as the source.   You may think of this like copying a groove from one place, and "pasting" it onto another section.


Resolution (Groove Quantize)

Groove Quantize lays a grid over the groove sample, then moves your notes to line up on the grid.   You specify how often to look for a reference event with the Resolution option.

Use the Resolution option to specify how frequently the tracks should be synchronized.  Cakewalk will interpolate between actual events in the reference material to determine the probable location of notes of a specified duration.

For example, you might have recorded quarter notes, but you would like a run of sixteenth notes to align with it.  By selecting a resolution of "sixteenth", you instruct Cakewalk to determine when you would have played sixteenth notes between the actual reference note events.  This is intended to allow intricate tracks of short notes to be synchronized with more fundamental tracks containing fewer events.  This also allows Cakewalk to compensate when your groove source contains regions of silence where other tracks contain music.

A rule of thumb is to use a Resolution matching the smallest note in the region you're quantizing.  If the notes are all sixteenth notes, choose that for the Resolution.  If the notes are a mix of sixteenth and eighth notes, you would still choose sixteenth notes.


Window (Groove Quantize)

There may be situations where notes that are very far from the reference points should not be moved at all.   Use the Window option to specify how close to the reference point a note must be for quantize to move it.  A Window of 100% includes all notes.  A Window of 50% includes all notes that are halfway on either side of the reference point.

If Outside Window

Use this option to control how events that are between reference points should be handled:

Do Not Change.  Note events that are outside the window of the nearest reference point will be unaffected by the edit operation.

Straight Quantize.  A regular quantization grid will be assumed between actual reference points in the pattern.  The Resolution option controls the spacing of the assumed points.

Move to Nearest.  Ignore the window setting, and move all events toward the nearest reference event, regardless of how far.

Stretch Time.  Uses the error of nearby "in window" points to adjust the gaps proportionally.  The starting times and durations of notes are stretched or compressed to maintain relative spacing to neighboring events.


Strength (Groove Quantize)

You may control how far Groove Quantize should move notes toward the groove points.  A Strength of 100% will move the notes fully to the point.  If the Strength is only 50%, the notes will be moved only halfway.

You can provide strengths for timing, duration, and velocity independent of one another.

Use Strengths of 100% to make your synchronization "perfect", but mechanical-sounding.  Use lesser Strengths to "tighten" the timing without losing all of the original human performance.  Use 0% to disable a particular kind of quantization.

For example, you could make your music sound "about 85% tighter" by setting the Time and Duration percentages accordingly.  Or, you could opt to modify only the note velocities by setting the Time and Duration strengths to 0%.


Define (Groove Quantize)

Use this button save the currently selected groove source to a groove pattern library file.

To create a groove from a portion of the current song:

1.	Copy a portion of a track.

2.	Pick Clipboard as the Groove Source.

2.	Press Define and use the Define Groove dialog.

To copy an existing groove to another libary file:

1.	Pick it as the Groove Source.

2.	Press Define and use the Define Groove dialog.


Tips and Examples (Groove Quantize)

Aligning sloppy tracks with a good one.  Select the portion of the "good" track which you want to apply to the "sloppy" tracks.  Choose the Copy command.  Next, select the portion of the sloppy tracks you want to modify.  Choose Groove Quantize, be sure to pick Clipboard for the Groove Source, and press OK.

Imposing a new feeling on an old tune.  You can impose a real human "feel" onto an otherwise sterile composition.  Any MIDI data that you can get into the clipboard can be cloned into a groove pattern and either used immediately, or saved into a library.  You can capture complex rhythmic nuance in an easily useable and distributable format.  A carefully-defined groove pattern can translate an old song to a new musical genre.

Accenting beats in each measure.  Create a sample measure containing note events at the desired accent points.  Center the velocities around 64, with accented notes having greater velocities and diminished notes having lesser.  Select the measure, choose the Copy command, then choose Groove Quantize.  Make sure the Velocity Strength option is set to a non-zero value.  After you press OK, note event velocities in the selected edit range will be adjusted to be louder or quieter on the specific beats.

Stealing that feeling.  Suppose you have a dry piece that was composed and entered into Cakewalk with a rigid sense of timing.  Then you record a bass line which has exactly the off-beat rhythmic dynamic you'd been searching for.  You'd like to force your other tracks to share that same feel.  Using the bass track as the reference, choose a resolution roughly on the order of the duration of the bass notes, and a window of 100%.  Cakewalk will align the melody note events with the nearest bass notes.  Use the Strength parameter to control the resulting "tightness" of the piece; the higher the strength, the tighter the piece.

Synchronizing rhythm and solo tracks.  If you want to preserve the unique rhythm of each track, but you want to synchronize them together in time, you might use a larger resolution and a smaller window.  For example, suppose you have one track with a highly stylized drum beat, and another track containing a jazz solo with some very nice runs in it.  The drum beats fall primarily on quarter notes, but the solo consists of runs of fast notes that aren't quite 16th triplets.  Using the drum track as the reference, you could use a quarter note resolution and a small window of perhaps 10%.  Cakewalk will align the solo notes near the quarter note drum beats, but will maintain the feel of the solo during the fast runs of notes in between.

Correcting off-tempo tracks.  Suppose you have both rhythm and melody tracks recorded, but the melody was played erratically.  If you use a whole note resolution and a window of around 25%, and select the Stretch Time option, Groove Quantize will synchronize each selected track with the groove source at roughly measure boundaries.  All events in the middle of the measure will be stretched or compressed in time such that they still fill the measure and still have the same rhythm.

You will probably notice that the starting time of note events has more of an effect on the rhythmic feel of the track than does the duration.  For this reason, the Change Starting Times option has a more noticeable effect on most material than does the Change Durations.  However, you will encounter situations where your notes will overlap (legato) or unwanted rests will be inserted (staccato) if you don't opt to change both.

You can experiment with these parameters and then audition the result.  Use Cakewalk's multi-level Undo and Redo capability to try many different quantizations before comitting to one.

See Also:

Quantize

Edit Menu


Define Groove
Define Groove dialog

Use this dialog box to manage a collection of predefined groove patterns.  To create a new entry in your library, choose Groove Quantize, select the desired Groove Source, and press the Define button.

This dialog lets you browse through your collection of groove pattern files.  You can select an existing file or type the name of a new file.  You also can select an existing pattern to replace, or type a new pattern name.  Press OK to write the pattern to the file.

To delete a pattern from your collection, select it and press Delete.

Cakewalk supports two types of groove files:

•	The non-Cakewalk format is compatible with some other software and third-party groove pattern files.

•	Cakewalk's native format allows longer gaps between quantization points, and also allows the storage of velocity accent information.

Cakewalk looks for files with the .GRV extension in the same directory as WINCAKE.EXE.  You may use a different directory by setting "GrooveFilesDir=" in the [WINCAKE] section of your WINCAKE.INI file.  All patterns found in the directory will be available during the Groove Quantize operation.

See Also:

Quantize

Edit Menu


Interpolate
Interpolate (Edit menu)

Interpolate is a powerful command that lets you search for certain events and replace their parameters with new, interpolated values.

This command presents you with two Event Filter dialogs.  The first dialog works like a normal Event Filter, except how you specify the ranges is important.  The second Event Filter is used only for its range fields.  The replacement scales parameter values from the first range to the second range.

See Also:

Edit Menu


Edit Length
Length (Edit menu)

Use this command to stretch or shrink the starting times and/or the durations of note events by a percentage that you pick.  You specify this as a percentage of the original values.  For example, 200% would make things twice as long, 50% would make them half as long.

This command does not change the tempo map.  Instead, it modifies the actual starting times and durations of the events.

See Also:

Edit Menu


Retrograde
Retrograde (Edit menu)

Use this command to reverse the order of events.  The first shall be last and the last shall be first.

See Also:

Edit Menu


Edit Transpose
Transpose (Edit menu)

Use this command to change the pitches of Note and/or KeyAft events up or down by the amount you specify.

Diatonic math option...	The Amount to transpose by is...
Checked	The number of diatonic steps (based on the current key signature)
Not checked	The number of half-steps (chromatic)
Unless you check the Use event filter option to exclude one of the two kinds, both Note and KeyAft events' pitches are affected by Tranpose.

See Also:

Edit Menu


Slide
Slide (Edit menu)

Use this command to move a region earlier or later.  This is similar to the Time+ track parameter, but this permanently changes the event times.

Note:  You cannot slide a region earlier than 1:1:0.  The From time must be at least as big as the amount of time you are sliding.  Otherwise you will simply get an error message.

Example: If From is 1:1:30, you cannot give an amount less than -30.

See Also:

Edit Menu


Velocity Scale
Velocity Scale (Edit menu)

Use this command to change velocities of notes events over time.  The Begin and End values are either velocity values or percentages by which to change existing velocities, depending on whether the Percentages option is checked.

If the Percentages option is not checked, then the Begin and End values are the starting and ending velocities.  A note at the beginning of the time range will have the Begin velocity and a note at the end will have the End velocity.  Notes in between will be changed to values interpolated between Begin and End over the time range.

If the Percentages option is checked, then the Begin and End values are percentages by which to multiply the notes' present velocities. A note at the beginning of the time range will have its velocity multiplied by the Begin percentage and a note at the end will be multiplied by the End percentage.  Notes in between will be multiplied by percentages interpolated between Begin and End over the time range.

You can also edit note velocities by drawing in the velocity pane of the Piano Roll view, which lets you draw shapes other than straight line changes.

See Also:

Edit Menu


Fit To Time
Fit to Time (Edit menu)

Use this command to make a region last a specific amount of real-world time.  Fit to Time changes the absolute-time duration of the region by changing the Tempo map to speed up or slow down, without changing the musical (measure:beat:tick) times of the events in the region.

See Also:

Tempo view

Length

Edit Menu


Fit Improvisation
Fit Improvisation (Edit menu)

Use this command to fit a free-form improvisation into the Measure:Beat:Tick timing grid, without altering how it sounds, by both changing the event times and inserting offsetting tempo changes.   You must record a "reference track" that marks the beats before choosing this command.

See Also:

Edit Menu

"Fit Improvisation" in the User's Guide for a full description of the steps needed to prepare for this command.


Run CAL Program
Run CAL Program (Edit menu)

Use this command to execute a CAL program file.  CAL programs work on events the same way as built-in Cakewalk editing commands: they change events from selected tracks in the From..Thru time region.   CAL programs may also execute certain Cakewalk commands.

See Also:

Creating and modifying CAL programs

Edit Menu


View menu

Cakewalk Professional for Windows has a variety of views.

Track/Measure	View of track parameters and measures.

Tempo	Graphical view of tempo changes.

Meter/Key	List of meter (time signature) changes.

System Exclusive	System Exclusive data generic librarian.

CAL	CAL program editor.

Markers	Markers for times.

Faders	Graphical faders.

Play List	Play a list of songs automatically.

Big Time	Display a window with current time.

Views to edit events in tracks:

Piano Roll	Graphical view of a track's notes.

Event List	List of a track's events (all kinds, not just notes).

Controllers	Graphical view of a track's controller data.

Staff	Notes from multiple tracks transcribed on a staff.

Lyric	Page view of a track's Lyric events.

View options:

Auto Activate	Graphical view of a track's notes.

DOS F6 View Keys	Use Cakewalk for DOS F6 shortcut keys

Remember Layout	Save your window positions and sizes.

Colors


Track/Measure view

The Track/Measure view is your main window in Cakewalk.  It is divided into two halves.

On the left is the Track pane, which lets you view and change track paramaters.

On the right is the Measures pane, which  is useful for getting an overview of your work and performing "global" editing operations.

When you move the cursor over the border between the two panes, it changes to a left/right arrow.  Click and drag the border left or right.

If you double-click on the border, you can toggle the parameters section size between its maximum and whatever other size you had last set by dragging.  (This is similar to maximizing vs. restoring a window.)

See Also:

View Menu


Track parameters
Track pane

Use the Track pane to view and change track parameters.

To Select Tracks

You may select tracks by clicking on the track number in the leftmost column.  A track is selected when its number is displayed in reverse video.  Double-clicking selects or un-selects all tracks.

To Enter New Values

With the mouse	Double-click on a field
Wiht the keyboard	Use the arrow keys to move the highlight to the field, then press ENTER.
This will let you type in new information directly on the screen, or, it may call up the Track parameters dialog.

To Increase and Decrease Values

With the mouse	Click on a field and drag the mouse toward you or away from you.
With the keyboard	Press + and  - to add and subtract by 1. Press ] and [ to add and subtract by 10.
To Customize the Layout

You can arrange the position and width of the columns using the mouse.  Click in the header row to drag a column to a new position.   If you click near the right edge of a column, you can change its width.

To Edit a Track

Click on a track with the right button, and a popup menu will appear listing the different kinds of Cakewalk track editing views.  Select the type you want, and the view will open for that track.  The menu also contains other common commands.

See Also:

Track parameters

Measures pane

View Menu


Measures pane

Use the Measures pane to see in which measures a track has events.  This is useful for getting an overview of your work and performing "global" editing operations.

To Change the Now Marker and/or the Current Track

Click on a cell to set Now (the current position) and the current track (you'll see the highlight in the Parameters pane move, too).

Note: If you click in selected measures -- drawn in reverse video -- you should click and release quickly so you don't start Drag and Drop (see below).

To Open a View Window

Click on a track with the right button, and a popup menu will appear listing the different kinds of Cakewalk track editing views.  Select the type you want, and the view will open for that track.  The menu also contains other common commands.

To Select Measures

Click and drag left and right to set the From and Thru markers.  Selected measures will be drawn in reverse video.  SHIFT+CLICK to extend any existing selection to the point you click.

Note: If you click in selected measures -- drawn in reverse video -- you should click and release quickly so you don't start Drag and Drop.  Tapping quickly will clear the existing selection; then you may drag to make a new selection.

To Drag and Drop Selected Measures

You can drag selected measures to a new position.  Click in the selected measures and hold the button: after a moment, the cursor changes.  Drag to the point where you want the new new upper-left corner to be, and release the mouse button.  You can move measures horizontally and/or vertically this way.

To copy instead of moving, hold down the CTRL key while clicking.  The original selected measures will remain.

To clear the selection without starting Drag and Drop, quickly click and release the button.

When you drop measures, the Drag and Drop Options determine whether the dropped measure replace, blend with, or slide over the existing measures on which you're dropping them.

Drag and Drop can be undone by Undo.

See Also:

Parameters pane

View Menu


Drag and Drop Options dialog

Use this dialog to choose what should happen to existing measures when you Drag and Drop existing material on top of them.  The options are similar to those for the Paste command.

By default, whenever you Drag and Drop you are presented with this dialog.  However, if you always want to drop using the same method, and find this dialog box annoying, simply turn off the Ask This Every Time option.  From then on, whichever method you've selected will be used, without you being asked each time you Drag and Drop.  If you should you ever want to change these options, press the right mouse button in the Measure pane and choose Drag and Drop Options from the menu.

See Also:

Measures pane


Track parameters dialog

Use this dialog box to change many related track parameters.  Double-clicking or pressing ENTER on the Port, Channel, or Patch fields brings up this dialog.

Changes here are effected in realtime.  This dialog is handy for "orchestrating" while a song plays back, because you can hear the results while you change the "destination" -- port, channel, patch -- and also parameters like key and velocity offset, pan and volume.  You can freely experiment with all of them because pressing Cancel restores all of the original track parameters.  Press OK to keep your changes.

Press the Configure button (next to the Patch item) for the Instruments command.


Event List view

Use the Event List view to see and edit events from one or more tracks in an alpha-numeric list format.  It is not graphical, but it packs a lot of information into a small space.  In addition, it is the only view which lets you see and edit all types of events -- notes, controllers, patch changes, wave events, text events, etc.

Shortcut
• To open an Event List from the Track/Measure view:
Mouse:	Press the RIGHT mouse button and choose Event List.

To insert a note

Press the INSERT key.  Change the event properties.

To delete a note

Press the DELETE key.

Multiple tracks

Each Event List includes whatever tracks were selected (including the current track) when you opened the window.  To view a different group of tracks, select them, then open a new Event List window.

To Step Play Events

With the keyboard	Press SHIFT+SPACEBAR to play the highlighted event.  If it's a Note or Wave event, the sound will sustain as long as you hold down the SPACEBAR.  When you release the SPACEBAR, you are automatically advanced to the next event.
With the mouse	SHIFT+click on an event.  If it's a Note or Wave event, the sound will sustain as long as you hold down the mouse button.
See Also:

View Menu


Bank/Patch change dialog

The list of patch names you may pick from depends on the port and MIDI channel of the event.  If the track has a forced MIDI channel, the channel stored for the event is ignored.

You can change which patch names are used for various ports and channels by pressing the Configure button, which calls up the Instruments command.

See Also:

Event list

View Menu


Event kind dialog

Use this dialog box to change an event from one type to another.  If you are inserting events in the Event list view, typically you press the INSERT key to duplicate an existing event, then change its values.

There are various kinds of events.  Cakewalk provides you with standard MIDI events like Notes, Patch changes, and so on.  Plus there are special events that aren't part of MIDI.

MIDI events contain only a small amount of data.  For example, a Note event has a key number (pitch), velocity, and duration.  Cakewalk stores normal MIDI events in such a way that you can cycle among the various kinds without losing data peculiar to a certain kind.  In fact, by temporarily changing a Note event into a KeyAft event, you can get a different view of the same data: you can see the raw MIDI key number instead of Cakewalk's pitch name like "C#4".  You can do this using the plus or minus keys or dragging with the mouse, and avoid calling up this dialog box.

But the special kinds of events require more data -- Wave events, for example, require very large amounts of memory!  Cakewalk cannot preserve this data and must release it when you change to another kind of event.  To make sure that's what you intend, Cakewalk makes you press ENTER and use this dialog box if you want to change an event to or from one of these special event types.

See Also:

View Menu


Wave event dialog
Wave edit dialog

Wave event data cannot be directly edited in Cakewalk.  But you can load and save data in standard .WAV files.  Also Windows has a standard "Wave" Clipboard format.  You can copy and paste the wave event data between Cakewalk and other programs that understand wave data.

The Sound Recorder applet included with Windows 3.1 can Copy wave data to the Clipboard, but it cannot Paste data.  Either save the data to a .WAV file to load in Sound Recorder, or use a more full-featured wave editing application.

Wave events vs. MCI command events

You can play wave data by using a Wave event, or, an MCI command event with the command "PLAY <wavefile>".  There are pros and cons to each:

	Advantages	Drawbacks
Wave events	Because the Wave event contains the data itself, wave playback is triggered with virtually no delay.  Also, you don't have to keep track of one or more separate .WAV files.	Waveform data can grow very large, even for short samples at a low frequency and resolution, making your work and file very large.
MCI command "PLAY *.WAV"	The size of the Cakewalk workfile will be much smaller, because it is storing only the MCI command text, not the wave data itself.  Also, MCI commands can be used to control other media devices.	It takes the MCI interpreter time to parse an MCI command and load the .WAV file.  Putting the event early to compensate for the delay may not help if the delay is unpredictable.
See Also:

Event list

View Menu


Piano Roll view

The Piano Roll window has two main panes (sections): note and velocity.  When you first open a Piano Roll window, the note pane may be full size and the velocity pane hidden at the bottom.  You can double-click on the the gray border bar to "maximize" the velocity pane or drag the gray border to whatever position you wish.

The Piano Roll view shows you whatever was the current track when you first opened it.  To change which track you're viewing, press [image]  or the T key.

Shortcut
• To open a Piano Roll from the Track/Measure view:
Mouse:	Press the RIGHT mouse button and choose Piano Roll.

Working in the note pane

There are several tools available:

Mode	Button	Shortcut Key
Select		S
Draw		D
Scrub		B
Erase		E

  Use Selection mode to set the From and Thru markers.

  Use Draw mode to insert brand-new notes and change existing notes.  The Snap-to button lets you pick a round-off amount for when you drag and change note start times and durations.

To change an existing note:  Which part of the note you click on  -- left, middle, or right -- determines what you can change.

To change...	click on...
Starting time	left third	Drag the note left or right to a new time without affecting the pitch.
Pitch	middle third	Drag the note up or down to a new pitch without affecting the starting time.  In this mode, the note will sound as you move to each new pitch step.
Duration	right third	Drag left or right to change the length of the note.
To copy an existing note:  Hold the CTRL key and click on the existing note.  Drag the copy to the desired location.  The copy will have the same duration and MIDI channel as the original.

  Use Scrub mode to drag horizontally over time to hear notes.  This can be handy to find the time where a bad note is, to test how an entire chord sounds after changing the pitch of one of its notes, or to test notes after adjusting their velocities in the velocity pane (see below).

  Use Erase mode to erase notes. Drag over the events you wish to erase.

To change other note parameters:  Click on a note using the RIGHT mouse button.  A dialog box lets you edit all note parameters, including some that the Piano Roll view doesn't display graphically, like MIDI channel.

Working in the velocity pane:

The velocity pane graphs the velocities of notes appearing above in the note pane.  To modify velocities, click and drag the shape you want.  Remember that velocities are not a separate type of event, they are an attribute of note events, just like pitch and duration.  So in the velocity pane you are shaping the velocities of existing note events, not creating or destroying "velocity events" (there's no such thing).

To draw a straight line:  Hold the SHIFT key while clicking, and you can draw a straight line.

Working with percussion parts

Ordinarily the Piano Roll view shows you a picture of a piano keyboard along the left edge of the screen.  A percussion mode is also available.

	Regular Mode	Drum Mode
Notes	Drawn as horiztonal lines, with varying duration.	Drawn as "diamond" shapes, duration is not displayed.
Labels on the left	A picture of a piano keyboard.	A list of Note Names.
See Also:

Note Names and Drum Mode dialog

View Menu


Note Names and Drum Mode dialog
Note Names and Drum Mode dialog (Piano Roll view)

If you are editing a track that is routed to a percussion instrument, the Piano Roll view will automatically configure itself in drum mode.

Example: Track 5 is assigned to Port 1, Channel 10.  Using the Instruments command, you have assigned Port 1, Channel 10 to use the "General MIDI Drums" instrument definition.  That instrument is a drum instrument.  As a result, when you open a Piano Roll view for track 5, the view will automatically configure itself in drum mode.   In addition, that instrument defines names for notes, which are drum kit parts like "Kick", "Snare", and so on.  So the Piano Roll view will list those names along the left edge of the window, instead of drawing a piano keyboard.

You may override the automatic configuration by pointing to the keyboard (or drum note names) along the left edge of the screen, and pressing the RIGHT mouse button.

In the Note Names and Drum Mode dialog, choose either of two options:

Use the Assigned Instrument Settings.  This is the default when you open a Piano Roll.  The view follows the settings for whatever Instrument definition is assigned to the track's Port and Channel destination.

Use These Settings Instead.  If you choose this option, you can pick a specific list of Note Names to use.  Also, you may turn Drum Mode on or off.  These special settings remain in effect only for the current Piano Roll window.  Whenever you open a new Piano Roll view, the automatic option (Use the Assigned Instrument Settings) is used.

See Also:

Piano Roll view


Controllers view

Use the Conrollers view to edit Control, Pitch Wheel, and Channel Aftertouch events in a graphical format.  Usually these events occur in groups which describe a shape, for example, a series of Pitch Wheel events with increasing values that create an upward pitch bend.

Shortcuts
• To open a Controllers view from the Track/Measure view:
Mouse:	Press the RIGHT mouse button and choose Controllers.

The Controllers view shows you whatever was the current track when you first opened it.  To change which track you're viewing, press [image] or the T key.

There are several tools available:

Mode	Button	Shortcut Key
Select		S
Draw		D
Line		L
Erase		E

  Use Selection mode to set the From and Thru markers.

  Use Draw mode to draw new events of the type and MIDI channel you have selected.  Any existing events of that type are replaced by what you draw.

  Use Straight-line mode to draw straight lines more easily.  Click and drag to draw the line.

  Use Erase mode to erase events.  Drag over the events you wish to erase.

See Also:

View Menu


Staff view

The Staff view presents MIDI sequencer data as staff notation, with interactive editing capabilities.  It is not intended to be a replacement for full-featured music publishing software that addresses the many possible nuances of conventional music notation.  On the other hand, it does an excellent job of converting inexact human performances into notation displaying what you meant, rather than the exact timing of what you played.

Shortcuts
• To open a Staff view from the Track/Measure view:
Mouse:	Press the RIGHT mouse button and choose Staff.

Tools

Simplifying options

Note colors

See Also:

View Menu


Tools (Staff view)

There are several tools available:

Mode	Button	Shortcut Key
Select		S
Draw	see below	see below
Scrub		B
Erase		E
Use Draw mode to insert new notes and change existing ones.  Press one of the note duration buttons or shotcut keys to enter this mode:

Button	Meaning	Shortcut Key(s)
	Whole	O or 1
	Half	H or 2
	Quarter	Q or 4
	Eighth	E or 8
	Sixteenth	S or 6
	Thirty-second	T
	Dotted	PERIOD
3	Triplet	3
To copy an existing note:  Hold the CTRL key and click on the existing note.  Drag the copy to the desired location.  The copy will have the same duration and MIDI channel.

Note: When the 3 button is on to insert triplets, three notes are inserted at once for you -- a complete set of three triplets.  Click where you want the first of the three to be located, and release the mouse button.  Next, drag the other two to whatever pitches you want.

  Use Scrub mode to drag horizontally over time to hear notes.  This can be handy to find the time where a bad note is, to test how an entire chord sounds after changing the pitch of one of its notes, or to test notes after adjusting their velocities in the velocity pane (see below).

  Use Erase mode to erase notes.  Drag over the events you wish to erase.

To change other note parameters:  Click on a note using the RIGHT mouse button.  Use the dialog box to edit all note parameters, including some that the Staff view doesn't display graphically, like the MIDI channel for the note.

Snap-to.  The "Snap-to" checkbox determines whether you will be guided to inserting notes of certain durations at starting times that are multiples of that duration.  For example, if you've selected the quarter-note button, and Snap-to is checked, your inserted notes will be forced to the nearest quarter-note boundary.  This can be handy for entering many notes quickly, but of course you will need to turn this off to enter certain things: for instance, if you want to insert a half-note on the last beat of a measure.

See Also:

Staff view


"Simplifying" options (Staff view)

Several options help you display inexact human performances without making the notation too terribly complex.  You may not want to see very small noteheads (like 32nd notes) or separate layers.  The following options are alternatives to using the Quantize command to round-off the actual times and durations of the notes: you can preserve the human feel without getting horribly complicated notation.

Fill.  Use the Fill option to round durations up to the next beat (if there would otherwise be a rest).  This is especially effective with chords, because the notes may be released at different times.  However, you may want to turn this off if you are entering notes using the mouse.  Otherwise, you may be confused when you insert an eighth-note in 4/4 time and it looks like a quarter-note, at least until you insert another eighth note immediately following it.

Trim.  Use the Trim option to cut off durations if they extend only a little way past the start of the next note.  This technique helps with legato parts.  As with Fill, you may wish to turn off Trim if you're entering notes precisely using the mouse.

Resolution.  This is similar to Quantize, but works on-the-fly without affecting the actual notes' timing for playback.  Also, it uses a different approach to rounding-off the timing that is more appropriate for notation.

See Also:

Staff view


Note colors (Staff view)

Notes change color while they are being played (when you can hear them).  Notes change color this way during playback, and when you drag them or scrub them.

To change the color, choose the View|Options|Colors command.  The Screen Element is called Note that is on.  Whatever color you pick for that will be used to color the notes in the Staff view.

See Also:

Staff view


Staff printing configuration

Engravers have standardized nine sizes of the five-line staff.  The vertical distance between the lines of each staff is called its rastral measurement.  Each rastral size has a number and is used for a specific genre of musical composition by publishers.

The bigger the rastral number, the smaller the size.

	Trade names	Genre usage
0	Commercial or Public	Wire-bound manuscript
1	Giant or English	Elementary band and orchestra books; instruction booklets
2	Regular, Common, or Ordinary	Sheet music, concertos, classics
3	Same as rastral 2	Used for works which contain a greater density of symbols
4	Peter	Folios, works for organ, etc.
5	Large middle	Band/wind ensemble music; sheet music
6	Small middle	Chorals; condensed sheet music
7	Cadenza	Pocket editions; cues in piano parts; military marches
8	Pearl	Thematic advertisement; ossia clarification
See Also:

Staff view

View Menu


Lyrics view

Use this view to create many Lyric events at once, automatically matched to existing notes.  Also use this view as a karaoke "teleprompter" which highlights each syllable during playback.

Lyric events are similar to Text events.  Like any other event, they occur at a particular time.  Like general-purpose Text events, they contain text.  But typically a Lyric event contains only a single word (or syllable of a word), and should be at the same time as a corresponding Note event.  The Lyrics view makes it easy to type text and split it into individual Lyric events matching Note event times automatically.

Typing lyrics

Type your Lyrics, complete with hyphens (-) between syllables.  Use additional hyphens to indicate a syllable sustained over additional notes.

Example:

Oh - say can you see, by the dawn's ear-ly light,
What so proud-ly we hailed, at the twi-light's last gleam-ing?

The hyphen after the word "Oh" indicates that "Oh" is held over the second note, too.  The remaining hyphens in this example simply join the syllables that make up a word.

Example:

Lyrics View:
One - - - Five

Staff view:

The three hyphens after the word "One" indicate that "One" is held over three additional notes.

Example:

Lyrics View:
For--got-ten

Staff view:

The first hyphen after the syllable "For" will be printed in the Staff view.  The second hyphen indicates that "For" should be held over an additional note.  The syllable "got" falls on the third note.

Tip:  Open a Staff view for the same track while you're using the Lyrics view.  As you make changes in either window, the other window will update to reflect those changes.  Rather than be too concerned about exactly how many hyphens to use, simply experiment and you'll quickly learn to get the results you want.

Flowing to match Note events

As you type, Cakewalk waits until you pause for about one second.  Then it automatically creates (or updates) Lyric events in the track.  This way the text in the Lyrics view stays "in sync" with the multiple Lyric events in the tracks.   Similarly, if you add or change events in the track using another Cakewalk view, the Lyrics view will update to reflect the change.

Cakewalk takes each syllable, finds a note event for it, and creates Lyric event at the same time.  If you have more syllables than notes to match them to, Cakewalk simply assigns the extra lyrics times at quarter-note intervals.  After you later add enough note events, return to the Lyrics view and delete any hyphen ('-') placeholders to force the Lyric event times to be rematched.

You may also view and edit Lyric events one by one in the Staff and Event List views.

Fonts

The Lyrics view has two different uses: to edit lyrics and to view them during playback.  Thus you may pick two different fonts, and choose between them quickly.  Typically you will choose a smaller font for editing lyrics, and a much bigger font for viewing them.

Printing

The Print and Print Preview commands are available for the Lyrics view.  All hyphens are automatically removed for printing.

See Also:

View Menu


System Exclusive view

This provides 256 banks for MIDI System Exclusive data.

Each bank can hold any number of System Exclusive messages (up to available memory in Windows 386 Enhanced Mode; up to 1 MB in Windows Standard Mode).

A bank may be marked as Auto, which means it will be automatically sent whenever you load the file.  Usually you will want to mark your patch and configuration data bank as Auto so your instruments are set up automatically for the song.

See Also:

View Menu


CAL view

Use this view to create CAL programs using a notepad.

Creating "macros" using CAL

You may also Record a CAL program, because CAL has many functions which correspond to Cakewalk commands.  For example, press the Record button in the CAL view.  The Record button changes to /Stop/, to indicate that you're recording a CAL program.  Choose the Open command from the File menu, type in the name of a file ("DEMO.WRK"), and press OK.  Now return to the CAL view and press /Stop/.  A statement will appear in the notepad, replacing the current selection:

(FileOpen "DEMO.WRK")

If you now press Run, the Open command will be executed just as if you'd chosen it from the menu and typed in the name of the file.

To assign a shortcut key (either a computer keyboard key or MIDI keyboard key) to a Cakewalk command or to a CAL program file, use the Key Bindings command.

See Also:

CAL Function Reference

View Menu


Markers view

Markers are a way of associating text with a time.  The time can be a normal musical time, or locked to an absolute real-world time so that if the tempo changes, they will still refer to the same real-world time.  Locked times are useful for indicating cue points when creating music to accompany visuals (film scores, ad jingles, multimedia presentations, etc.)

Anyplace that you can enter a time in a Cakewalk dialog box, you may also select from the list of markers by pressing F5.  The predefined Now, From, and Thru markers are in this list along with any markers that you've defined.  Pick a marker and press OK.  The marker time will be supplied.

See Also:

View Menu


Faders view

The Faders view provides graphical faders (sliders, knobs, and buttons) that generate MIDI controller or Note events as you move them.  The events may also be recorded into tracks.

Fader Properties	Recording faders movements
Faders and tracks	Groups
Controller and Note events	Files and Import
Taking Snapshots	Fader labels
See Also:

View Menu


Fader properties (Faders view)

Point to a fader and press the RIGHT mouse button to change its properties:

Track

Controller

Group


Faders and tracks (Faders view)

Each fader is associated with a particular track.  This association has several roles:

(1)  The fader will transmit its MIDI events to the Port and Channel of the track.  If you want to record fader movements into a particular track -- see below -- then you should associate the fader with that track.

Note: A track can be set to no particular MIDI Channel ("---").  A fader assigned to such a track will be disabled.  There must be some particular channel assigned to a track so that the fader knows where to transmit MIDI events.

(2)  If the track contains events of the fader's type (for example, Volume), then the faders will update as the current time changes: either during playback or when you manually move to a new time.  The fader shows the value for the most recent controller value in the fader's track.  (To disable this, you may remove the check from the Update option.)

(3) You may create events in each fader's track in two ways: by taking a snapshot of all the faders or by interactively recording your fader movements.


Controller and Note events (Faders view)

Sliders and knobs transmit Controller events as you move them.

Slider and knobs also have a "preview" feature.  Move the cursor directly over the slider's black slot or inside a knob's circle.  The value will temporarily change to show you what value would take effect if you clicked.  This is handy for making instant jumps without generating lots of events with values in between the old and new positions.

Buttons transmit Note On and Off events.  Automated mixing consoles respond to these by muting and unmuting mixer channels.


Taking a snapshot of fader positions (Faders view)

When you have arranged the faders the way you want, you may take a snapshot of their positions by pressing the camera button [image].  This inserts an event capturing the position of each fader into each fader's track, at the current time.  (If the current time is the beginning, 1:1:0, then faders for Volume or Pan will change their track's corresponding Volume or Pan parameter instead of inserting an event.)

Tip: When you are using the Faders view to create snapshots, remove the check from the Update option.  Otherwise, as you move through your song, the faders may change to show you the values at the various times.   That is undesirable if you are trying to set the fader positions, listen to the settings during playback, then create a snapshot -- because the fader positions may change during playback if Update is enabled.


Recording faders movements (Faders view)

You can record your fader movements into tracks.  To do so, check the Record option in the Faders view.  Start playback.  Now, when you click on a fader, recording starts.  As you drag the fader, each position is recorded into the track as a controller event.  When you release the fader, recording stops.  (Playback continues, so that you may later click to record another series of fader movements.)

If the fader is part of a Group (see below), then all of the other faders in the group will move and be recorded, too.

This recording works in a special "punch-in" mode: controllers of that kind will be muted in the fader's track, and replaced by the new controllers you record.  (Other kinds of events in the track are not muted or replaced, so it's safe to mix controller events and notes in the same track.)  You can click on as many faders as you want; each one will be a separate recording segment for each fader's destination track.


Groups (Faders view)

Each fader may belong to a group.  There are sixteen available groups, named A through P.  Each group may contain any number of faders.  Clicking on any fader that is part of a group will move all of the faders in that group.

Group and Ranges

Each fader has a range.  The range determines how the fader moves in relation to other faders in a group.  As you move one fader through its range, the position of each other fader in the group is "interpolated" based on the ranges.  By setting the range for each fader, you may construct a variety of interesting relationships between the faders in a group (see Examples).

When you first add a fader to a group, its range is set for you automatically:

•	The minimum is set to zero.

•	The maximum is set to whatever is required to produce the fader's current position relative to the rest of the group.

In other words, when you add a fader to a group, its range is set to retain the current position, and arrive at zero with the rest of the group.  If you are working with volumes, that is probably exactly the relationship you want, and you may never need to adjust the range.

To adjust a fader's range.

Use the SHIFT key to click and drag the fader to a new position.  Its range will be recalculated, so that the fader will be in that position whenever the group is at its current position.  Whether its minimum or maximum position is set depends on whether the entire group is closer to its minimum or maximum.

To set a fader to move in the opposite direction.

1.	Move the whole group to its maximum position (for example, the highest slider is 127).

2.	Hold the SHIFT key and click to drag the fader to your desired minimum position (for example, 0).

3.	Move the whole group to its minimum position (for example, the lowest slider is 0).  Use another fader to do this, not the fader whose range you are setting. At this point, the fader may not move at all, because its range may be restricted to a single value.

4.	Hold the SHIFT key and click to drag the fader to your desired maximum position (for example, 127).

As a result, this fader will move in a direction opposite of the rest of the group.  When the group is at its maximum position, this fader will be at its minimum.


Group Examples (Faders view)

Following are some examples of interesting fader relationships.  For simplicity, the examples involve a group containing only two faders.

• Fixed offsets.  The ranges may be offset.

Min	Max
Fader #1	0	63
Fader #2	64	127

As you move Fader #1 from 0 through 63, Fader #2 moves from 64 through 127.

• Fade-outs and fade-ins.  Faders may have different maximum values, but if their minimum values are set to be zero, they will all approach zero and arrive there at the same time.  Similarly, you may drag them all to zero, then drag them up to the maximum levels -- they will all approach their maximum values and arrive there at the same time.

Min	Max
Fader #1	0	127
Fader #2	0	100

As you move Fader #1 down from 127 to 0, Fader #2 moves down from 100 to 0.

• Cross-fades.  The Minimum value may be greater than the Maximum value.

Min	Max
Fader #1	0	127
Fader #2	127	0

As you may Fader #1, Fader #2 moves in the opposite direction.


Faders and files (Faders view)

Faders settings are stored in workfiles.  Each workfile contains one Faders view.  You may store Faders settings in template files like NORMAL.TPL so that each new file you create starts with those settings.

Use the the Import button to steal the Faders view settings from another file.  The faders may be assigned to tracks using an offset.  For example, if the faders in the file are for track 1 through 32, you may specify track 10 as the starting track when you import.  That way, the faders will be assigned to tracks 11 through 42.


Fader labels (Faders view)

A fader is connected to a track.  A track is assigned to a Port and Channel.  Each Port/Channel has an Instrument definition assigned to it.  The Instrument definition provides information about the Controller names the instrument uses.

Example: You are using an XYZ synthesizer.  You have connected it to Port 1 and set it to respond to Channel 16.

(1)	Use the Instruments command to assign the "XYZ" instrument definition to Port 1/Channel 16.  You only need to do this once and it will remain set up for the future.

(2)	Now, create a track and set it to Port 1, Channel 16.

(3)	Any faders for that track will automatically display the XYZ's Controller names.


Tempo view

Use this view to draw tempo changes.

There are several tools available:

Mode	Button	Shortcut Key
Select		S
Draw		D
Line		L
Erase		E

  Use Selection mode to set the From and Thru markers.

Tip: If you do this to prepare for using the Copy or Cut commands, remember to check Tempo Changes in the dialog box, and possibly remove the check from the Track Events and Meter Changes options.  These commands can work on any or all of these.

  Use Draw mode to draw new events of the type and MIDI channel you have selected.  Any existing events of that type are replaced by what you draw.

  Use Straight-line mode to draw straight lines more easily.  Click and drag to draw the line.

  Use Erase mode to erase events.  Drag over the events you wish to erase.

See Also:

View Menu


Meter/Key view

Meter and key signature changes can occur only on measure boundaries.  You can insert, delete, or change any entry in the meter/key map.  The map always has at least one entry, for measure 1, because there must always be some meter and key signature.

Meters

The meter describes how to divide time.  You pick the number of beats per measure, and the value of each beat.

Key signatures

The key signature controls how Cakewalk displays notes.

In the Event List view and some dialog boxes, Cakewalk converts the MIDI pitch number to labels like "C#2", or the C-sharp in the 2nd octave.  (Octave 0 corresponds to MIDI pitch number 0, Octave 1 to pitch number 12, and so on.  You can change this through the BaseOctave variable in the Cakewalk initialization file).

And of course the Staff view  needs to know the key signature.

Changing the key signature only changes how Cakewalk displays notes.  To actually transpose pitches, use the Transpose command.

See Also:

View Menu


Play List view

Use the Play List view to build a list of up to 128 songs.  While one song is playing the next song is pre-loaded from disk, so that it's ready to start without delay when the first one finishes.  Song files may be either Cakewalk files (*.WRK) or Standard MIDI Files (*.MID, *.MFF).

Be sure to check the On item if you want playback to follow the list.  Otherwise, Cakewalk will play the current song -- which appears in the caption of the main Cakewalk window.

Changes to songs are not saved

If you make any changes to a song while the play list is On, you will not be asked if you want to save the changes.  The play list is designed for live performance and will not interrupt list playback to ask this question.  Also, this enables you to make temporary changes to a song while it's playing back for a particular performance, without worrying about changing the actual song file.

For example, you may save a song with a certain section set to Auto Shuttle.  This section may be for an open-ended solo or dancing.  The song will repeat that section indefinitely, until you press the Loop button to turn off Auto Shuttle.  Then the song continues on past the section to finish.  Even though the song is changed, you don't want to save the song with looping turned off, and you don't want Cakewalk even to bother asking you about this.  You want to know the original song file is unchanged, ready for your next performance.

Other options

You may set an initial Delay for each song.  The delay may be for a number of seconds or be a pause until you press a key to begin the song.

While one song is playing, you may stop it and immediately advance to the next song by pressing the Next button.

You may cause Cakewalk to move to a different spot in the list by double-clicking on a particular song.  Whatever song was already loaded and standing by (marked "READY") will be discarded, and the song on which you double-clicked will become the next song instead.  If playback is not underway, then double-clicking simply loads that song as the current song.  You may use the rest of Cakewalk to edit the song.

In addition to using Add and Delete to change the list, you may drag and drop songs to different places in the list.  Click and drag to move a song to a new position.  Hold the CONTROL key while clicking to drag a copy of a song to a new location.

See Also:

View Menu


Big Time view

Use this to display a window with the current time in a large font for high visibility.

To Change the Time Format

Point anywhere in the window and click the left mouse button.  The format will change between musical (Measure:Beat:Tick) and SMPTE/MTC (Hours:Minutes:Seconds:Frames) formats.

To Change the Font

Point anywhere in the window and click the right mouse button.  Enter the name, size, and color of the font.  Other font attributes in this standard Choose Font dialog box are ignored.

See Also:

View Menu


Auto Activate
Auto Activate (View/Options menu)

Normally you activate windows by clicking on them.  With this option enabled, you don't have to click: merely moving the mouse cursor over any window activates it.

You may want to turn off Auto Activate if you don't like this behavior, or if your machine is too slow redrawing the windows as they're activated.  If you are using Windows utility software that already provides auto activation ("floating windows") you will also want to add the line WinEat1stClick=0 to the Cakewalk initialization file.  You may want to put it below the line "WinAutoActivate=<0 or 1>", which is how Cakewalk stores your preference for Auto Activate being off or on.

See Also:

View Menu


DOS F6 View Keys
DOS F6 View Keys (View/Options menu)

This option is intended for people familiar with Cakewalk for DOS.  It makes the F6 keystrokes act like they do in Cakewalk in DOS.  (This emulation isn't perfect because Cakewalk for Windows has more kinds of "views" and many of them can be visible at once.)

Keystroke	Action
F6	If the active window is an Event list or Piano Roll window, it is closed. Activates the parameters pane ("Track View") of the Track/Measure view (the "Track View" and "Measure View" are combined in Cakewalk for Windows).
SHIFT+F6	If the active window is an Event list or Piano Roll window, it is closed. Activates the measures pane ("Measure View") of the Track/Measure view (the "Track View" and "Measure View" are combined in Cakewalk for Windows).
CTRL+F6	Opens an Event list window ("Event View"), or, if one is already open, activates it.
ALT+F6	Opens a Piano Roll window ("Note View"), or, if one is already open, activates it.
___
* Normally in Windows programs, CTRL+F6 takes you to the next window in an application.  That standard meaning is ignored when this option is enabled.

See Also:

View Menu


Remember Layout
Remember Layout (View/Options menu)

While this option is on, whenever you exit Cakewalk it saves the size and position of your windows.  They are restored the next time you start Cakewalk.  (Windows associated with particular tracks for editing -- the Staff, Piano Roll, Event List, and Controller views, are not saved.  These change each time you load a different file.)

When you turn this option off, Cakewalk asks if you want to restore the "factory default" layout.  If you answer Yes, then the "factory default" window positions will be used the next time you start Cakewalk.  If you answer No, Cakewalk use whatever layout was last saved.

To set up a layout and protect it from changing:

1.	Turn on Remember Layout.

2.	Arrange your windows as desired.

3.	Use Exit to quit Cakewalk.

4.	Turn off Remember Layout, and answer No to the "Restore 'factory default' layout?" question.

See Also:

View Menu


Colors
Colors (View/Options menu)

You may choose what colors Cakewalk will use for various kinds of screen elements in many of its views.

The dialog box presents two lists.  The Screen Elements are categories of things that Cakewalk displays on the screen.  Select an element.  Then use the list on the right, Colors, to select which color you want used for that element.

You may restore all of the screen elements to their factory default settings by pressing the Default button.

There are two kinds of colors: direct colors like Black, Blue, and Red, and system colors, like "System Color: Window text" and "System Color: Button Face".  The system colors correspond to some of the colors you set using Windows Control Panel's Colors icon.  For example, out of the box, for the screen element "Window Text" Cakewalk uses the system color "System Color: Window text" .  That way, Cakewalk uses the same color for text as all of your Windows programs.

Screen Elements

Except where noted below, the views which follow this color scheme are the Track/Measure, Piano Roll, Controllers, Event List and Tempo views.  Dialog boxes and other views use their own, hardwired colors, although these usually follow the colors you've set for those kinds of screen elements as defined by Windows in Control Panel.

Tip: Don't set any other screen element to the same color as that used by "Window Background", or you'll make the screen element invisible!

Screen element	Explanation
Window Background	Background color
Window Text	Text color
Rules	Rules (lines used to mark values or time)
Major Rules	Major lines (lines used to mark larger intervals of values or time)
Values	Color of notes and velocities in Piano Roll view, controllers in Controllers view, and tempo changes in Tempo view.
Drawing	Color used to show your drawing in Piano Roll, Controllers, and Tempo views.
Erasing	Color used to show your erasing in Piano Roll, Controllers, and Tempo views.
Event List Note	Color of Note events in Event List view
Event List KeyAft	Color of KeyAft events in Event List view
Event List Control	Color of Control events in Event List view
Event List Patch	Color of Patch events in Event List view
Event List ChanAft	Color of ChanAft events in Event List view
Event List Wheel	Color of Wheel events in Event List view
Event List Sysx	Color of Sysx events in Event List view
Event List 'Special'	Color of other, 'Special' events in Event List view
Note that is on	Color of notes that are highlighted in the Staff view while they are being played
See Also:

View Menu


Insert menu

Commands on the insert menu let you insert things into your song.

Bank/Patch	Insert a Bank/Patch change.

Wave File	Insert a digital audio .WAV file.

Tempo	Insert a Tempo change.

Meter/Key	Insert a Meter/Key change.

Series of Controllers	Insert a series of controller events.

Series of Tempos	Insert a series of Tempo changes.


Insert Bank/Patch
Bank/Patch (Insert menu)

Use this command to add a Bank/Patch change to the current track at the current time.  This is a shortcut for inserting the event in a track using the Event List view.  After you insert an event, you may change or delete it using the Event List view.

Note: If the current time is the beginning of your song -- 1:1:0 -- then this command will change the current track's Bank and Patch parameters.  Using these track parameters is better than inserting an event at 1:1:0.  Cakewalk sends the parameters before playback begins.  This gives your instruments more time to respond and have the desired sound ready.

See Also:

Insert Menu


Insert Wave File
Wave File (Insert menu)

Use this command to add a .WAV file to the current track at the current time.  This is a shortcut for inserting the event in a track using the Event List view.  After you insert an event, you may change or delete it using the Event List view.

See Also:

Insert Menu


Insert Tempo
Tempo (Insert menu)

Use this command to modify the most recent tempo change, or, to insert a brand new tempo at a specified time.

To modify the most recent tempo change

(1) Specify the tempo you want.  Either:

(a) Type a value in the Tempo field

- or -

(b) Click the Click here to tap tempo item at the desired rate.

(2) Choose Change the Most Recent Tempo.

(3) Press OK.

To insert a brand new tempo change

(1) Specify the tempo you want.  Either:

(a) Type a value in the Tempo field

- or -

(b) Click the Click here to tap tempo item at the desired rate.

(2) Choose Insert a New Tempo.

(3) Type a time for it to occur in the Starting at Time item.

(4) Press OK.

You can also create tempo changes by drawing in the Tempo view.  The Insert Series of Tempos command is a way to insert a whole series of tempos, for example, an accelerdano or ritard.

See Also:

Insert Menu


Insert Meter/Key
Meter/Key (Insert menu)

Use this command to insert a single Meter/Key Signature change.

You can also add, change, and delete Meter/Key Signatures using the Meter/Key view.

See Also:

Insert Menu


Series of Controllers
Series of Controllers (Insert menu)

Use this command to insert a series of MIDI controller or pitch wheel events.  The data values can range from one value to another over time.

In the dialog box, you pick a controller type, a MIDI channel, a starting and ending value for the controller, and a starting and ending time (the From and Thru markers are proposed as a default).  Cakewalk inserts a series of controller events so that the value changes smoothly over time from the starting to the ending value.  Controller Fill never inserts more than one event on the same tick.  If there are any existing controllers of that type in the time region, they are deleted before the new ones are inserted.

You can also create controller changes by drawing in the Controllers view.  Drawing is more flexible: you can draw any shape, whereas Controller Fill creates only linear (straight line) changes.  However, Controller Fill can create an even change over a very long period of time, which might be difficult for you to draw by hand.

See Also:

Insert Menu


Series of Tempos
Series of Tempos (Insert menu)

Use this command to insert a series of tempo changes.

In the dialog box, you pick a starting and ending tempo, a step value, and a starting and ending time (the From and Thru markers are proposed as a default).  Cakewalk inserts a series of tempo changes so that the values change smoothly over time from the starting to the ending value.  Series of Tempos never inserts more than one tempo on the same tick.  If there are any existing tempo changes in the time region, they are deleted before the new ones are inserted.

You can also create tempo changes by drawing in the Tempo view.  Drawing is more flexible: you can draw any shape, whereas Series of Tempos creates only linear (straight line) changes.  However, Series of Tempos can create an even change over a very long period of time, which might be difficult for you to draw by hand.

See Also:

Insert Menu


Realtime menu

The Realtime menu contains commands relating to recording and playback.

Play

Record

Rewind

Step Record	Record notes one step at a time

Auto Shuttle	Set rewind, stop, and restart times

Record Mode	Whether recorded material is blended with or overwrites existing material.

Reject Loop Take	Reject the last loop recording take.

Update Patch Cache	Update patches on sound cards which require "caching".

Panic	Turn off all notes, lift all pedals, and center all wheels.

Virtual Piano	Start or switch to the virtual piano.


Play
Play (Realtime menu)

Use this command to start and stop playback.

Shortcuts
Toolbar:
Keys:	SPACEBAR

  The "panic" button on the control bar also stops playback -- plus it turns all notes off and zeroes all continuous controllers.

  The loop button on the control bar is a short-cut for selecting Auto Shuttle, checking all the options (rewind/stop/start), and setting the rewind and stop times to the From and Thru markers, respectively.  In other words, set From and Thru, then click the loop button.  As long as this button is on, if you change From and Thru, the Auto Shuttle times will be automatically be updated.  Double-clicking this button (when it's off) calls up the full Auto Shuttle dialog.

See Also:

Realtime Menu


Record
Record (Realtime menu)

Use this command to start and stop recording.

Shortcuts
Toolbar:
Keys:	R

Anytime during playback, you may press the Record button to begin recording. You may press it again to stop recording but let playback continue.  You may repeat this indefinitely (starting and stopping recording while letting playback continue) to record multiple segments of material.

When you stop recording and playback, if anything was recorded it is automatically kept. You can change your mind using Undo and Redo.

Layered loop recording

If you have full looping set using Auto Shuttle, then you may accumulate many record takes, layering them on top of each other.

If you record anything during a loop, you will hear it play back immediately on the next loop.  Until you record something new (or until you stop recording), that is the most recent take, and you may reject it using Reject Loop Take without stopping recording.

Changing tracks while recording

With both normal and loop recording, you may switch to a new track in the Track view.  Cakewalk will place whatever you record during that segment on that track.  For example, during loop recording you may move the cursor to a new track.  All loop takes from that point on will be destined for that track.  With normal recording, you may move the cursor to a different track for each time you turn on recording.

See Also:

Auto Shuttle

Record Mode

Realtime Menu


Rewind
Rewind (Realtime menu)

Use this command to rewind to the beginning, or, to the optional Auto Shuttle rewind time.  This command also stops playback.

Shortcuts
Toolbar:
Keys:	W

See Also:

Realtime Menu


Step Record
Step Record (Realtime menu)

Use this command to record music one rhythmic step at a time.

Note that you step-record while inside the step-record dialog box.  Once you exit the dialog, you are no longer in step-record mode.

Shortcuts
Toolbar:
Keys:	SHIFT+F3

See Also:

Realtime Menu

"Step Record" in the User's Guide for details.


Auto Shuttle
Auto Shuttle (Realtime menu)

Auto Shuttle provides various options for automatically stopping, rewinding, and restarting playback under certain conditions.

Rewind To rewinds to a time you specify whenever playback or recording is stopped.

Stop At stops playback or recording at a time you specify.

Restart restarts playback whenever it is stopped -- except when you stop playback manually.  For example, it restarts if playback was stopped automatically by Stop At, if the end of the work was reached, or if you pressed the Rewind button.

Full looping

If all three options are enabled, this results in looping of all tracks between the rewind time to the stop time.  This looping may have a slight delay associated with it, especially if you have certain MIDI Out settings turned on.

If you Record with full looping, you may layer multiple takes.

Shortcuts
Toolbar:
Keys:	none

Auto Shuttle and synchronization

If the clock is set to MIDI Sync or SMPTE/MTC Sync, checking the Restart option is handy for a "chase mode": when playback stops, Cakewalk will restart, which means waiting for sync mode.  You can start and stop playback on the tape deck or drum machine and Cakewalk will follow.  (The Stop At and Rewind To are ignored when you are using synchronization.

See Also:

Realtime Menu


Record Modes
Record Mode (Realtime menu)

There are three modes available for recording.

Sound On Sound

Existing material is not erased.  The new material is blended with it.

Overwrite Mode

Existing material is erased.

Auto Punch

Auto Punch is a form of overwrite mode where you specify the times to start and stop recording.  Use this when you want to be careful that you record new material only within a specified time range, and when you want the new material to overwrite the existing material.

Once you have set the Punch In Time and Punch Out Time, you are ready to begin recording:

Press the Record button [image] on the Control bar.

(1) Cakewalk deletes any existing material between the Punch In Time and Punch Out Time.

(2) Even though recording appears to be on, nothing you play on the keyboard before the Punch In Time or after the Punch Out Time will actually be recorded.  Only what you play in between those times is recorded.

When you stop recording, you may decide to change your mind.  Choosing Undo both (1) restores the original events that had been deleted and (2) discards any new events that had been recorded.

See Also:

Realtime Menu


Reject Loop Take
Reject Loop Take (Realtime menu)

If you Record with full looping (using Auto Shuttle), then you may accumulate many record takes, layering them on top of each other.

If you record anything during a loop, you will hear it play back immediately on the next loop.  Until you record something new, that is the most recent take, and you may reject it using Reject Loop Take without stopping recording.

This command is enabled if there is a prior loop take to reject, and you haven't stopped recording and playback.  Once you stop, this command is disabled: then, you may use Undo to reject all of the material you recorded.

Shortcut
Key:	CTRL+SPACEBAR

See Also:

Realtime Menu


Update Patch Cache
Update Patch Cache (Realtime menu)

This command is enabled only if you're using one or more sound cards which require "patch caching".  After making changes to your song which result in patch change events being added, changed, or deleted, you may need to choose Update Patch Cache to force the sound card to load the required sounds from disk storage.

See Also:

Realtime Menu


Panic
Panic (Realtime menu)

Use this command to silence everything.   Panic turns off all notes, lifts the sustain pedal, and centers pitch bend and modulation wheels.

See Also:

Realtime Menu


Virtual Piano
Virtual Piano (Realtime menu)

Use the Virtual Piano's software keyboard to record music when you do not have a MIDI keyboard.

The Virtual Piano is a separate accessory program.  When you choose this command, Cakewalk starts the Virtual Piano.  If the Virtual Piano is already started, Cakewalk activates it.

See Also:

Realtime Menu


Mark
Mark menu

The Mark menu contains commands relating to setting the values of the From and Thru markers.

From Value	Enter a specific value for the From marker

Thru Value	Enter a specific value for the Thru marker

From = Now	Set the From marker equal to Now (the current time).

Thru = Now	Set the Thru marker equal to Now (the current time).

From = Start	Set the From marker to 1:1:0 (the beginning).

Thru = End	Set the Thru marker to the end of the work.


From Value
From Value (Mark menu)

Use this command to enter a specific value for the From marker.

From and Thru markers.

See Also:

Mark Menu


Thru value
Thru Value (Mark menu)

Use this command to enter a specific value for the Thru marker.

The Thru marker is used by many commands, especially editing commands, to indicate the end time of a region.  The From marker indicates the start of the region.  You mark the region before choosing the editing command.

See Also:

Mark Menu


From = Now
From = Now (Mark menu)

Use this command to set the From marker to be equal to the Now marker.  Now always shows the current time.  So, this is useful for setting the From marker, "live," while the work plays back -- especially if you use the F9 shortcut key.

Note: If the current window is the Track/Measure view, then the From time is rounded down to the first tick of the current measure.

Shortcut
Key:	F9

See Also:

Mark Menu

From and Thru markers


Thru = Now
Thru = Now (Mark menu)

Use this command to set the Thru marker to be equal to the Now marker.  Now always shows the current time.  So, this is useful for setting the Thru marker, "live," while the work plays back -- especially if you use the F10 shortcut key.

Note: If the current window is the Track/Measure view, then the Thru time is rounded up to the last tick of the current measure.

Shortcut
Key:	F10

See Also:

Mark Menu

From and Thru markers


From = Start
From = Start (Mark menu)

Use this command to reset the From marker to the start of the work (1:1:0).  Useful when you want the whole work to be included in an edit operation, assuming you also set Thru to the end.

Shortcut
Key:	CTRL+F9

See Also:

Mark Menu

From and Thru markers


Thru = End
Thru = End (Mark menu)

Use this command to reset the Thru marker to the end of the work (the time of the last event from all tracks).  Useful when you want the whole work to be included in an edit operation, assuming you also set From to the beginning.

Shortcut
Key:	CTRL+F10

See Also:

Mark Menu

From and Thru markers


GoTo menu

The GoTo menu contains commands relating to going to a different time in the work.

Time	Enter a specific time to go to

From	Go to the time in the From marker

Thru	Go to the time in the Thru marker

Beginning	Go to the start of the work (1:1:0)

End	Go to the end of the work

Previous Measure	Go to start of this or previous measure

Next Measure	Go to end of this or next measure

Search	Go to the next event that meets criteria you supply

Search Next	Find the next event that meets the criteria you specified in the last Search.


GoTo Time
Time (GoTo menu)

Use this command to enter a specific time to go to.  The Now marker reflects the change.

Shortcut
Key:	F5

See Also:

GoTo Menu


GoTo From
From (GoTo menu)

Use this command to go to the time indicated by the From marker.  In effect, this sets Now equal to From.

Shortcut
Key:	F7

See Also:

GoTo Menu

From and Thru markers


GoTo Thru
Thru (GoTo menu)

Use this command to go to the time indicated by the Thru marker.  In effect, this sets Now equal to Thru.

Shortcut
Key:	F8

See Also:

GoTo Menu

From and Thru markers


GoTo Beginning
Beginning (GoTo menu)

Use this command to go to the beginning of the work (1:1:0).

Shortcut
Key:	CTRL+HOME

See Also:

GoTo Menu


GoTo End
End (GoTo menu)

Use this command to go to the end of the work (the time of the last event from all tracks).

Shortcut
Key:	CTRL+END

See Also:

GoTo Menu


GoTo Previous Measure
Previous Measure (GoTo menu)

If you are in the middle of a measure, this takes you to the start of that measure.

If you are already at the start of the measure, takes you to the start of the previous measure.

Shortcut
Key:	CTRL+PAGEUP

See Also:

GoTo Menu


GoTo Next Measure
Next Measure (GoTo menu)

If you are in the middle of a measure, this takes you to the end of that measure.

If you are already at the end of the measure, takes you to the end of the next measure.

Shortcut
Key:	CTRL+PAGEDOWN

See Also:

GoTo Menu


Search
Search (GoTo menu)

Use this command to find an event at or later than the current time which meets certain criteria that you specify in an Event Filter.

See Also:

GoTo Menu


Search Again
Search Next (GoTo menu)

Use this command to find the next event that matches your previous Search command.

Shortcut
Key:	ALT+F5

See Also:

GoTo Menu


Track menu

Most of the Track commands correspond to parameters in the Track pane of the Track/Measure view.  The advantage of these command equivalents is that they let you change a parameter on many tracks at once.  These topics explain what the track paramteters are:

Name

Status

Archive

Loop

Key+

Vel+

Time+

Port

Channel

Bank

Patch

Pan

Volume

The following commands do not correspond to track parameters.  They are commands that operate on tracks:

Solo	Mute all tracks except the current track.

Un-solo	Restore the muted settings of tracks.

Clone	Back up a track, putting a clone of it on another track.

Wipe	Delete all events; don't reset track parameters.

Kill	Delete all events and reset all parameters to defaults.

Sort	Sort tracks.


Name
Name (Track menu)

Each track has a name, which you may use for any purpose you wish.

Use this command to change the name of all the selected tracks at once.

See Also:

Track Menu


Status
Status (Track menu)

Muted tracks are silent, but may be un-muted instantly during playback.

Use this command to toggle the muted status of all selected tracks at once.  "Toggle" means that non-muted tracks become muted, and vice versa.

See Also:

Archive

Track Menu


Archive
Archive (Track menu)

Archived tracks are "super-muted": they can't be un-muted during playback.

Why would you want to do this?  If you have a large number of muted tracks (for instance, with different versions of solos, or bits of thematic material), you may encounter timing problems.  Cakewalk still processes muted tracks during playback so that it can be ready to un-mute them instantly at your command.  Archiving them means you "promise" not to un-mute those tracks during playback.  Thus they can be ignored, possibly improving performance.

Use this command to toggle the archived status of all selected tracks at once.  "Toggle" means that non-Archived tracks become Archived, and vice versa.

See Also:

Status (muting tracks)

Track Menu


Loop
Loop (Track menu)

Tracks may play from 1 to 9998 times.

9999 has a special meaning: keep looping as long as other, non-looping tracks are still playing -- that is, keep repeating the track along with non-repetitive tracks.

Use this command to change the Loop parameter for all selected tracks at once.

See Also:

Track Menu


Key+
Key+ (Track menu)

The Key+ parameter is an amount added to the MIDI key number (pitch) of all note events in the track.  It is an on-the-fly transposition that does not change the key number that is actually stored for each note event.  Transpose lets you do the latter.

Use this command to change the Key+ parameter for all selected tracks at once.

See Also:

Track Menu


Vel+
Vel+ (Track menu)

The Vel+ parameter is an amount added to the velocity of all note events in the track.  This parameter is an on-the-fly transposition that does not change the velocity that is actually stored for each note event.

Use this command to change the Vel+ parameter for all selected tracks at once.

See Also:

Track Menu


Time+
Time+ (Track menu)

The Time+ parameter is an amount added to the starting time of all the events in the track.  This parameter is an on-the-fly transposition that does not change the time actually stored for each event.  (The Slide command lets you do the latter.)

Use this command to change the Time+ parameter for all selected tracks at once.

See Also:

Track Menu


Port
Port (Track menu)

The Port parameter controls which port tracks will be routed to.  Ports correspond to one or more MIDI Out devices that you've set up using MIDI Devices.

Use this command to change the Port parameter of all selected tracks at once.

See Also:

Track Menu


Channel
Channel (Track menu)

The Channel parameter forces all events in a track to be transmitted to a particular MIDI channel.  Each event has a MIDI channel stored actually stored with it, so the Channel parameter can also be none ("--"), which allows a track to contain events for multiple MIDI channels.

Use this command to change the Channel parameter of all selected track(s) at once.

See Also:

Track Menu


Bank
Bank (Track menu)

The Bank parameter is for transmitting a Bank Select message before playback starts.  Tracks may contain actual bank/patch change events, for example to change sounds midway through a track.  For that, use the Insert Bank/Patch command or the Event List view.  Using the Patch parameter is easier when a track uses the same patch for its entire length.

If you want to use the Bank parameter, you must also give the track a forced MIDI channel using the Channel parameter.  Otherwise Cakewalk won't know what MIDI channel to use for the bank select.

Use this command to change the Bank parameter of all selected tracks at once.

See Also:

Track Menu


Patch
Patch (Track menu)

The Patch parameter is for transmitting a patch change before playback starts.  Tracks may contain actual patch change events, for example to change patches midway through a track.  For that, use the Insert Bank/Patch command or the Event List view.  Using the Patch parameter is easier when a track uses the same patch for its entire length.

If you want to use the Patch parameter, you must also give the track a forced MIDI channel using the Channel parameter.  Otherwise Cakewalk won't know what MIDI channel to use for the patch change.

Use this command to change the Patch parameter of all selected tracks at once.

See Also:

Track Menu


Pan
Pan (Track menu)

The Pan parameter is for transmitting a MIDI Pan (10) controller event before playback starts.  Tracks may contain actual pan events, for example to change panning midway through a track.  For that, use the Controllers view.  But using the Pan parameter is easier when a track needs only a single pan setting for its whole length.

If you want to use the Pan parameter, you must also give the track a forced MIDI channel using the Channel parameter.  Otherwise Cakewalk won't know what MIDI channel to use for the pan event.

Use this command to change the Pan parameter of all selected tracks at once.

See Also:

Track Menu


Volume
Volume (Track menu)

The Volume parameter is for transmitting a MIDI Volume (7) controller event before playback starts.  Tracks may contain actual volume events, for example to change volume midway through a track.  For that, use the Controllers view.  But using the Volume parameter is easier when a track needs only a single volume setting for its whole length.

If you want to use the Volume parameter, you must also give the track a forced MIDI channel using the Channel parameter.  Otherwise Cakewalk won't know what MIDI channel to use for the volume event.

Use this command to change the Volume parameter of all selected tracks at once.

See Also:

Track Menu


Solo
Solo (Track menu)

Use this command to mute all tracks except the current track.

The original track muted settings are restored when you select Un-solo.

Shortcut
Key:	/  (slash key)

See Also:

Track Menu


Un-Solo
Un-solo (Track menu)

Use this command to restore the track mute settings that were in effect before you used Solo.

Shortcut
Key:	\  (backslash key)

See Also:

Track Menu


Wipe
Wipe (Track menu)

Use this command to deletes all events from all selected tracks.

Unlike Kill, Wipe preserves the tracks' parameters like the Name, Port, Patch, and so on.

Like Kill, the events are not Cut to the scrap buffer, they are simply deleted.  The From and Thru markers are ignored -- all events in the selected track(s) are wiped out.

See Also:

Track Menu


Kill
Kill (Track menu)

Use this command to clear all selected tracks.  The events are not Cut to the scrap buffer, they are simply deleted.  The From and Thru markers are ignored -- all events in the selected track(s) are killed.

See Also:

Wipe

Track Menu


Clone
Clone (Track menu)

Use this command to copy the selected track's events and/or all its parameters to another track.

Useful for quickly making a back-up copy of a track before embarking on some major editing operation, or to double a part on a different MIDI channel.

See Also:

Track Menu


Sort
Sort (Track menu)

Use this command to sort tracks using one of the track parameters as the sort key.

Example 1: Pick Name for the key to Sort By and Ascending for the sort Order.  Tracks will be sorted alphabetically by name.

Example 2: Pick Size for the key to Sort By and Descending for the sort Order.  Tracks will be sorted in order from those with the most to those with the fewest events.

Sort uses a "stable" sort method, which means that it tends to preserve the ordering from the previous sort.  For instance, if you performed the two example sorts listed above, tracks would be sorted by decreasing Size, but any two tracks with the same Size would be sorted alphatbetically by Name.  That's because the sort by Size tends to preserve the earlier sort by Name.

Blank tracks -- those with no parameters or events -- are moved to the end when sorting.

See Also:

Track Menu


Window menu

Tile in Rows

Tile in Columns

Cascade

Arrange Icons

Close All

Minimize All


Tile In Rows
Tile In Rows (Window menu)

Use this command to arrange all windows so that they're side-by-side (tiled) in rows.  This way, windows tend to be wider than they are higher.

See Also:

Window Menu


Tile In Columns
Tile In Columns (Window menu)

Use this command to arrange all windows so that they're side-by-side (tiled) in columns.  This way, windows tend to be higher than they are higher.

See Also:

Window Menu


Cascade
Cascade (Window menu)

Use this command to arrange windows stacked over one another but with at least the caption bar of each window visible.

See Also:

Window Menu


Arrange Icons
Arrange Icons (Window menu)

Use this command to arrange icons (minimized windows) so that they're in a neat row starting at the bottom left corner.

See Also:

Window Menu


Close All
Close All (Window menu)

Use this command to close all windows except the Track/Measure view.

See Also:

Window Menu


Minimize All
Minimize All (Window menu)

Use this command to minimize (make into an icon) all windows except the Track/Measure view.

See Also:

Window Menu


Settings menu

The Settings menu contains commands for setting various parameters and options.

Clock

Metronome

Timebase

MIDI Devices

Instruments

MIDI In

MIDI Out

MIDI Thru

Record Filter

Channel Table

Time Format

Key Bindings

Initialization Files

Auto Save


Clock
Clock (Settings menu)

Use this command to change the clock source to one of the following:

Internal Clock

This follows the computer's internal clock.

MIDI Sync

MIDI synchronization makes Cakewalk follow another device that is sending MIDI Sync to the computer's MIDI In port.

SMPTE/MTC

SMPTE/MTC synchronization makes Cakewalk follow another device that is sending SMPTE/MTC timecode to the computer's MIDI In port.  Some MIDI interfaces have a special SMPTE jack to read timecode directly.  You may also use a device that converts SMPTE to MTC for sending over a MIDI cable.

Shortcut
Toolbar:	A single button advances through these options as you click it:
  Internal Clock
  MIDI Sync
  SMPTE/MTC

See Also:

Settings Menu

"Synchronization" appendix in the User's Guide, for a full discussion of synchronization methods.


Metronome
Metronome (Settings menu)

Use this command to control the sound of the metronome.

The left column of items lets you pick various options about when you want to hear the metronome.  (Even if Recording is not checked, the metronome will be heard during the Count-in, if any, then will stop once recording actually begins.)

The right column lets you specify a MIDI note that will be played as a metronome "tick".  The default key number is that used by most drum machines for a closed hi-hat.  MIDI channel 10 is a popular convention for drum machines, so that is also provided as a default.  To disable the MIDI metronome note entirely, specify 0 for the Velocity item.

See Also:

Settings Menu


Timebase
Timebase (Settings menu)

Use this command to set the timing resolution.

The timebase is also known as PPQ: "Pulses Per Quarter-note".  This is the number of clock ticks that a quarter-note is worth.  Generally, higher values provide more precision, but many people are not sensitive to much improvement using a timebase greater than 120 PPQ.  The computer has to work harder to provide higher timebases, so if you cannot hear the difference, it is probably best to stick with the default value of 120 PPQ.

See Also:

Settings Menu


Settings MIDI Devices
MIDI Devices (Settings menu)

Use this command to select MIDI input and output devices.

Input and Output devices

You may pick any number of available MIDI input and output devices.  However:

•  For playback to work, you must select at least one Output device.

•  For recording to work, you must select at least one Input device.

The lists of devices show drivers which you have already installed using the "Drivers" icon of the Windows Control Panel.  Cakewalk lists only MIDI input and output devices, not other kinds of devices.

MIDI Out devices are assigned to Cakewalk port numbers in the order they are listed.  For example, if "MPU-401" is above "Sound Blaster" in the list and you select both, port 1 in Cakewalk is the MPU-401 and port 2 is the Sound Blaster.  To rearrange the order, select one or more items, then press the Move Selected to Top button.

Sync Output Port

This is the port to which Cakewalk sends MIDI Sync, so that another device (for example, a drum machine) may slave to Cakewalk.  If you are using such a device and want to sync it to Cakewalk, be sure to set this item to the number of the port to which the device is connected.

Timing Precision

If you have a 16 MHz 80386, this option will be set to Medium by default and you should change it to Low.  For any other type of computer, you should probably accept Cakewalk's default choice matching the class of your computer.  Choosing a faster option will probably backfire, because it will make your computer work too hard and make the timing worse rather than better.  Avoid the Custom option unless Twelve Tone Systems technical support has recommended specific values to you.

See Also:

Settings Menu

README.WRI file -- which you may view using Help/View README.WRI -- may contain specific instructions and tips for the kind of devices you're using.


Patch Names
Assign Instruments (Settings menu)

Use this command to assign an instrument definition to each port and channel.

Because you may have different kinds of instruments connected to various ports and channels, Cakewalk lets you specify an "instrument definition" for each port and channel.  Once you set this up, a number of features throughout Cakewalk will work automatically.  The instrument definition tells Cakewalk a number of things about the synthesizer, including:

•  What names to use for patches, notes, and controllers.

•  Whether the instrument provides drum sounds.

•  What Bank Select method the instrument uses.

Using the dialog box

You can select more than one item at a time in the Port / Channel list on the left.  If they share the same instrument definition, its name will be selected (highlighted) in the list on right.  To change the assignments, first select one or more items from the Port / Channel list on the left, then click on the desired Instrument on the right.

If your instrument is not in the list, you may want to try using the General MIDI and General MIDI Drums instrument definitions.  You may also create your own instrument definitions, by pressing the Define button.

Many synthesizers have a special channel -- usually channel 10 -- which acts like a percussion instrument.  Be sure to assign a drum instrument (if available) to that channel.

Example:  Assign channel 10 to use the "General MIDI Drums" instrument.  Assign all of the other channels to use the "General MIDI" instrument.

Save changes

If you want your changes to be remembered the next time you run Cakewalk, make sure the Save Changes For Next Session option is checked before pressing OK.  Otherwise, to make only temporary changes, be sure to remove the check from that option.

See Also:

Defining your own instruments

Defining your own names

Settings Menu


Define Instruments
Define Instruments dialog

Use this dialog box to create, change, rename, or delete an instrument definition.

Instrument

Use this dropdown list to select the instrument definition you want to work on.

New.  Use this button to create a new instrument definition.  Supply a title for the new instrument definition.

Copy.  Use this button to create a new instrument definition that is a copy of an existing instrument definition.  Select the instrument definition you want to make a copy of, then press this button.  Supply a title for the new instrument definition.

Rename.  Use this button to give an existing instrument definition a new title.  Select the instrument definition you want to rename, then press this button.

Delete.  Use this button to delete an existing instrument definition.  If the instrument definition is in use by a Port/Channel, you will be warned.  (If you delete it anyway, the Port/Channel will be changed to use the "General MIDI" instrument definition.)

Instrument Definition

An instrument definition describes an instrument in ways that make it easier to work with using Cakewalk.

Remember that MIDI allows an instrument to support up to 16,384 banks of 128 patches each.  Cakewalk permits each instrument to have 16,384 unique sets of Patch Names.  In addition, each patch may have its own set of 128 Note Names, so Cakewalk permits each instrument to have 2 million (16,384 times 128) unique sets of Note Names.  In practice, of course, you are unlikely to come close to these limits.

Mapping of Banks to Patch Names

For each bank, you may select a list of Patch Names to use.  The special choice, [All], lets you specify a Patch Name list to use for all the other banks (the ones which you haven't assigned a specific list.)

Patch Names.  A synthesizer may have one or more banks of patches, with 128 patches in each bank.  Patches may have names, like "Piano" for patch number 0, "Bass" for number 1, and so on.  Because each bank may have a different set of patches, each bank may need a different set of patch names.

Mapping of Patches to Note Names and Drum settings

For each patch, you may select a list of Note Names and whether or not the patch represents a set of drum sounds.  The special choice, [All], lets you specify a Note Name list and Drum attribute to use for all the other patches (the ones which you haven't assigned specifically.

Note Names.  Each patch may have a list of names for notes.  Usually, note names are labels for percussion instruments.  For example, the pitch C3 may really be "Kick Drum", and D3 may be "Snare".  Because a drum machine may provide different drum kits for each patch, Cakewalk lets you specify a different list of note names for each patch.  The Piano Roll and Event List views show you these note names.

Drums?  This attribute is either on or off, and instructs other parts of Cakewalk how to work.  For example, if you open a Piano Roll view for a track, and the track is assigned to a Port and Channel with a drum instrument, the Piano Roll will automatically work in a way that's more appropriate for editing drum notes.

Example 1: On your E-mu Proteus certain patches are drum kits, but most are not.  Any MIDI channel can act like a drum machine (or not) depending on which Patch is selected.   Create a "Proteus" instrument definition.  For the Patch, select "[All]", and make sure the Drum item is not checked.  Next, select each patch which is a drum kit and make sure the Drum item is checked.

Example 2: On your Alesis HR-16 drum machine, all of the patches are drum kits.  For the Patch, select "[All]", and make sure the Drum item is checked.  There is no need to change the Drum attribute for each of the 128 patches.  The "[All]" setting takes care of that.

Example 3: On your Roland MT-32, you configure it to act like a drum machine on a certain channel (the default is channel 10).   The remaining channels do not provide drum sounds.  In effect, the MT-32 acts like two different kinds of instruments, always set to particular MIDI channels, which happen to be in the same box.  Create two instruments definitions, "MT-32" and "MT-32 Drums".  In the "MT-32" definition, select "[All]" for the Patch and make sure the Drum item is not checked.  In the "MT-32 Drums" definition, select "[All]" for the Patch and make sure the Drum item is checked.

Other definition items

The remaining items are the same for an instrument, regardless of which bank or patch is in effect.

Controller Names.  Cakewalk lets each instrument have its own list of names for Controllers.  There is only one list per instrument.

Bank Select Method.  Although an official Bank Select method is now part of the MIDI standard, it wasn't always.  Cakewalk supports several popular methods of bank select.

Once you choose a method here, you can forget about it.  This lets you simply work with bank numbers, and let Cakewalk worry about translating that into whatever the synthesizer requires.

Save changes

If you want your changes to be remembered the next time you run Cakewalk, make sure the Save Changes For Next Session option is checked before pressing OK.  Otherwise, to make only temporary changes, be sure to remove the check from that option.

See Also:

Defining your own names

Settings Menu


Define Names
Define Names dialog

Use this dialog box to create, change, rename, or delete a list of Patch Names, Note Names, or Controller Names for use by instrument definitions.

Type of Names

This dialog lets you work with three different kinds of names.

Patch Names.  Click this button to work with Patch Name lists.   These are names for patches ("timbres") on a synthesizer, like "Piano", "Bass", etc.

Note Names.  Click this button to work with Note Name lists.  These are names for notes (pitches) on a synthesizer.  Note Names are most frequently used to name drum notes, like "Kick", "Snare", etc.

Controller Names.  Click this button to work with Controller Name lists.  These are names for continuous controllers, like "Volume", "Pan", etc.

List

Use this dropdown list to select the list you want to work on.

New.  Use this button to create a new list.  Supply a title for the new list.

Copy.  Use this button to create a new list that is a copy of an existing list.  Select the list you want to make a copy of, then press this button.  Supply a title for the new list.

Rename.  Use this button to give an existing list a new title.  Select the list you want to rename, then press this button.

Delete.  Use this button to delete an existing list.  If the list is being used by an instrument definition, you will be warned.  (If you delete it anyway, the instrument will be changed to refer to another list of names.)

Based On List

Use this to choose a list upon which to base another list.

Frequently a synthesizer will have two sets of names which are mostly the same, except for a small number of names.  For example, two banks may have the same patches 0..100, but patch numbers 101..127 are different.  In that case, you can save time by creating one complete list.  Next, create the second list and base it on the first one.  In the second list, define only the names which differ from the first one.

When a name is not defined in a list, Cakewalk will look at the list it is based on (if any), and use the corresponding name from that list.

Names

Use this listbox to edit the names in the list.  Each list consists of 128 names.

If a list is based on another list, the names will be drawn differently to help you distinguish which names are really defined in the current list from those which come from the base list.  Names that are really defined the current list will be shown in bold type.   Names that come from the base list, it will be shown in non-bold type.

See Also:

Defining your own instruments

Settings Menu


Update Instruments?

You have installed a new version of Cakewalk.

The new version contains new or changed Instrument definitions.  To merge this new information in your instrument database, press Yes.  Otherwise, press No.

If an Instrument definition will replace an existing definition, you will have a chance to approve each replacement individually.  For example, if you have customized a particualr definition, you may choose not to replace it.

See Also:

Instruments


MIDI In
MIDI In (Settings menu)

Use this command to instruct Cakewalk to accept or ignore input on each MIDI channel.  Remove the check for each channel which you want to be ignored.  When input is ignored, it won't be recorded or echoed by MIDI Thru.

See Also:

Settings Menu


MIDI Out
MIDI Out (Settings menu)

Use this command to set various options related to information that Cakewalk sends to the MIDI Out port(s).

Send MIDI Start/Continue/Stop/Clock controls whether Cakewalk will transmit MIDI Sync.  If you are not synchronizng another device like a drum machine to Cakewalk, leave this disabled.

Use Start, Never Continue lets you force Cakewalk to send a MIDI Start even when playback begins from other than the start (1:1:0).

Send MIDI SPP enables sending MIDI Song Position Pointer.  This message lets devices synchronizing to Cakewalk jump to the correct spot.

Locate Delay for SPP Recipient can be set higher than zero to give slow devices more time to jump to the correct spot.

Zero Continuous Controllers sends messages every time playback stops to lift up the sustain pedal, center pitch bend wheels, and zero modulation wheels.  It also sends a "reset all continuous controllers" message.  Because this is sent for every MIDI channel of every port, it can take awhile.

Patch/Controller Searchback makes Cakewalk do some extra work before playback starts.  It searches for the most recent patch change, pitch bend wheel, and controller events on each MIDI channel of each MIDI port and sends them.  This ensures that even if you jump to an arbitrary point in your song, any intervening patch, wheel, and controller settings will be acted on.  This option could take a significant time to complete if your song is very long and you jump near the end and begin playback.

See Also:

Settings Menu


MIDI Thru
MIDI Thru (Settings menu)

Use this command to set options controlling how MIDI input is transformed and echoed to the MIDI output.  Auto mode, the default, is the most convenient.  It routes things based on the Port, Channel, Key+ and Vel+ parameters of the track you currently have the cursor on in the Track/Measure view.

See Also:

Settings Menu

"MIDI Thru" in the User's Guide for a description of all Thru modes and options.


Record Filter
Record Filter (Settings menu)

Use this command to filter out certain kinds of MIDI events.  By default, Aftertouch events are filtered.

See Also:

Settings Menu


Channel Table
Channel Table (Settings menu)

Use this command to map MIDI channels to tracks when recording.

Normally, when you record, events are placed on the current track.  Using this option, events on particular channels will end up on one or more specific tracks.  This is most useful when "dumping" a sequence from another sequencer, or working with a guitar controller that transmits on multiple channels at once.

Note: Cakewalk permits each track to contain events from multiple MIDI channels. You are not required to split things onto separate tracks.  You may find it more convenient.

The dialog box has a checkbox for enabling/disabling the channel table and for assigning a track number to each MIDI channel.  The "Fill" button can save you typing: it looks at the number in the field you have the cursor on, and fills in the remaining fields with increasing values.

See Also:

Settings Menu


Time Format
Time Format (Settings menu)

Use this command to select a SMPTE/MTC format.

The "Offset" option lets you specify a SMPTE time that will correspond to the beginning of your work.  In other words, this is the SMPTE time corresponding to musical time 1:1:0.

Hint: If you are syncing to SMPTE/MTC, you should stripe your tape beginning with SMPTE/MTC time 0:0:0:0 and set an offset of at least 2-3 seconds, or 0:0:3:0.  This gives the SMPTE tape reader enough time to establish a good sync lock-up before your song starts.

See Also:

Settings Menu

"Synchronization" Appendix in the User's Guide, for a full discussion of synchronization methods.


Key Bindings
Key Bindings (Settings menu)

Use this command to assign commands and CAL programs that you frequently use to keys.

There are two types of "keys" you may use: computer keyboard keys and MIDI keyboard keys.  When you bind computer keyboard keys to commands, this is like the kind of "macro hotkey" feature you may be familiar with in other software.  Using your MIDI keyboard is more novel, but the same basic idea: it provides "remote control" of Cakewalk from your MIDI keyboard.

You make both types of key bindings using the same dialog box: select which set you want to work with by picking one of the radio buttons at the top.

Computer keys

The available hotkeys include CTRL in combination with the A through Z keys, and the function keys (F1 through F12) by themselves or with CTRL or ALT pressed also.  If you use choose a hotkey which Cakewalk has already assigned to a command, your binding will override Cakewalk's.

These bindings execute the command they're assigned to only when you could choose the command normally from the menu.  If Cakewalk's menu is not available (for example when you're in a dialog box) or if the command is disabled, then the keys won't work either.

MIDI keys

The MIDI option uses a "shift" event to signal whether your MIDI keys should be treated as hotkeys.  That way, you can still use all the MIDI keys to play notes.  For this shift event, you may choose to use either a MIDI key (typically, the very lowest or highest key on your MIDI keyboard) or a controller event (typically, one of the pedals).

You may also temporarily disable MIDI macros by un-checking the Enable box, without having to clear all of the MIDI bindings.

Temporary changes

If you want your changes to be remembered the next time you run Cakewalk, make sure the Save Changes For Next Session option is checked before pressing OK.  Otherwise, to make only temporary changes, be sure to remove the check from that option.

See Also:

Settings Menu


Initialization Files
Initialization Files (Settings menu)

Use this command to view and change certain options in Cakewalk initialization files.  You may also change initialization files by opening and editing them in Windows Notepad, but you may find using Initialization Files easier.

To set or delete an option:

1.	Pick the initialization file containing the option you wish to set or delete, by clicking one of the radio buttons in the File section of the dialog box.

2.	Type the name of the option in the Option field.

If the option already exists, you may pick it in the list of Current Settings, and that will fill in the Option and Value fields for you.

3.	If you want to delete the option, press the Delete button.
or
If you want to set the option, type in the value for it in the Value field, then press the Set button.

4.	When you are done viewing or changing options, press the Close button.

IMPORTANT:  For most of these settings, Cakewalk looks at the initialization files only when it starts up.  Therefore, to ensure that all of your changes take effect, you must exit Cakewalk and restart it.

See Also:

Settings Menu


Auto Save
Auto Save (Settings menu)

Use this command to automatically save your work to a special back-up file, named AUTOSAVE.WRK.  You may control this using two options.

Use the Minutes item to say how many minutes may pass before Cakewalk automatically saves your file (assuming it's changed since last saved).  Set Minutes to zero to disable this.

Use the Changes item to say how many changes you may make to the file before Cakewalk automatically saves it.  Set Changes to zero to disable this.

If both Minutes and Changes are set to zero, no automatic save will occur.  If both items are set to something other than zero, than whichever condition becomes true first will cause an automatic save to occur.

Your work is saved to a work file called AUTOSAVE.WRK.  If you should need to retrieve your work after an error or system crash, use Open to load AUTOSAVE.WRK.  You may then use Save As to save this using the name of the file you were originally working on.   Warning: If you don't re-save soon, then Auto Save may write over AUTOSAVE.WRK!  To avoid this possibility completely, you may wish to rename AUTOSAVE.WRK before restarting Cakewalk at all, using the Windows File Manager or the DOS RENAME command.

See Also:

Settings Menu


This electronic help document is Copyright © 1992-1995 by Greg Hendershott.  All rights reserved.

Cakewalk, Cakewalk Home Studio, Cakewalk Professional, and Cakewalk Professional for Windows are trademarks of Twelve Tone Systems, Inc.

All of us here work hard to provide powerful but affordable software.  From the day in 1987 when Cakewalk for DOS 1.0 first shipped, we have never used copy-protection.  We thank you for your purchase of this product!


Glossary

activate

CAL

controller

event filters

From and Thru markers

layers

Now marker

patch changes

synchronization

System Exclusive

velocity


activate

Activating a window means to make it the topmost, current window.  The window caption changes to show that it is the active window.  If an application's main window is active, then one of its "child" windows may be active, too.


event filters

Event filters let you specify criteria that an event must meet in order to be affected by some operation.  Each row specifies a kind of event to include or not.  If you check including a kind of event, the rest of the row indicates certain values that an event must have to still be included.


velocity

In MIDI, how fast you strike a key is called the velocity.  Each note event has a velocity stored with it.  Usually the velocity controls how loud and/or "bright" the sound of the note is, just like with a real piano.  But this depends on the synthesizer or sound card: velocity can sometimes have no effect (as with an "organ" patch) or set to control other characteristics of the sound.


patch changes

A type of MIDI command that tells an instrument to use a different sound.  Numbers from 0 to 127 each select a different sound -- what sound depends on the synthesizer: MIDI doesn't require that certain numbers mean certain kinds of sounds.  This flexibility has many benefits.  But an optional "General MIDI" specification does assign sounds (like "Grand Piano") to particular numbers, making it easier to distribute MIDI Files that will sound similar on different equipment.

Note that manufacturers use an incredible variety of jargon for "patch", including "program", "voice", "preset", and other terms.  We stick with "patch" because it's one of the oldest phrases and one which doesn't have other meanings for electronic music.


synchronization

A mode of playback where Cakewalk follows an external source of timing instead of its internal clock.


From and Thru markers

This pair of times let you tell most Cakewalk editing commands what region of time you want changed.


Now marker

Shows the current time.  As you play or record, this will change to reflect the current time.  While not playing or recording, as you move through screens you will change the current time.  Some editing commands -- like Paste -- also propose using the Now marker for a time.


CAL

Cakewalk Application Language.  CAL is an interpreted language for writing custom editing commands.  CAL programs can get user input, display messages, and insert, delete, and modify events in tracks.


controller

MIDI uses controller messages for a variety of things.  Each controller message has a number for what it controls.  The MIDI spec assigns many controller numbers to standard functions.  For example, controller 1 is the Modulation Wheel, controller 7 is Volume, controller 10 is Pan, and controller 64 is sustain pedal.  However, not every synthesizer responds to every assigned controller number.  And some synthesizers have special functions assigned to other numbers.  You need to check the manual for a synthesizer to see what it responds to.  Each controller message also has a value.  For instance, 0 for Modulation Wheel means no modulation, and 127 means full modulation.  The Sustain Pedal is an "on/off" controller, so 0 means no pedal and anything else means the pedal is down.


System Exclusive

MIDI data that is understood only by a particular brand/model of synthesizer and ignored by everyone else.  Each manufacturer gets a unique ID code with which to tag their System Exclusive messages.  Typically used to save/restore data describing patches (sounds) and/or configuration information for a synthesizer.  Cakewalk can receive this data, store it, and transmit it, but cannot understand what it means.


layers (Staff view)

When a staff contains other than chordal harmony -- that is, overlapping notes with different durations -- separate layers must be created.   Each layer has its own stem direction, beaming, and rests.  Cakewalk has no internal limit to the number of layers, but aesthetics will impose a practical limit.  If too many notes, too close in pitch are crammed together; Cakewalk cannot resolve these "aesthetic errors".  You can help by moving parts to different tracks, so they can have a staff to themselves.


Answers to common questions

Here are answers to some of the most common questions about Cakewalk Professional.  Checking this list may save you a phone call to technical support!

Setup

•  Why can't I hear anything on my synthesizer (no MIDI output)?  Answer

•  Why can't I record anything? (no MIDI input)?  Answer

•  How do I get a driver for my brand of MIDI interface?  Answer

Printing

•  Why do I get a "General Protection Fault" when I try to print?  Answer

•  How can I print to a file? Answer

Customization

•  How do I create my own set of Patch Names?  Answer

•  How do I use my own Patch Names I created with version 1.0 or 2.0?  Answer

•  How and why should I use the Microsoft MIDI Mapper?  Answer

Wave Audio

•  How do I play back wave audio (.WAV files) files in my song?  Answer

•  Why can't I play wave audio with my Sound Blaster?  Answer

•  Why can't I play wave audio using my MPU-401 or other MIDI interface card?  Answer

Synchronization

•  Why won't my drum machine won't sync to Cakewalk?  Answer

Miscellaneous

•  Why do I get the error message, "Cannot open timer", when I start Cakewalk?  Answer

•  What is the meaning of life?  Answer


"Cannot open timer"

If you start Windows from a directory containing Cakewalk 4.0 (for DOS), then Windows will mistake Cakewalk 4.0's TIMER.DRV file for its own TIMER.DRV file located in the Windows system directory.  Windows silently fails to load its timer driver, and you discover the failure only when trying to use a program that needs the timing services, like Cakewalk for Windows.

To work around this problem with Windows, simply start Windows from another directory (for example, from the root directory or the Windows directory).

This message may also be caused if you are using the OS/2 operating system.  Contact IBM for a maintenance update.  (You may also try replacing the TIMER.DRV file supplied with older revisions of OS/2 with the original TIMER.DRV file supplied with Windows.)

Other common questions....


"General Protection Fault" (GPF) while printing

Solution: Contact the manufacturer of your printer and make sure you have the most recent version of their driver for Windows.  If not, obtain and install it.

Explanation: When Cakewalk prints, it uses the printer driver that you've installed in Windows.  Many printer drivers have problems ("bugs") which appear only when certain applications use them, even when the application is using them correctly.  Unfortunately, Cakewalk's intensive use of TrueType fonts may flush out a problem with a printer driver which is not apparent when you're using other programs.  The printer driver may crash.  You can tell this because the error message identifies the printer driver as the program which crashed, not Cakewalk.

We have investigated this problem thoroughly.  In all cases so far, we have not found any way in which to modify Cakewalk to avoid a printer driver problem.  The only solution, unfortunately, is to obtain a fixed version of the driver.  The good news is that many printer manufacturers update their drivers frequently, and newer versions of many will work fine with Cakewalk.

Hint: Sometimes a driver for a similar printer will work and will not cause a GPF.

Example:  A manufacturer makes similar ink jet printers.  One printer is black & white only, the other is color.  The color printer is "backward compatible" with the B&W one, so the driver for the B&W one will also print correctly with the color printer.  The B&W driver does not cause a GPF crash.  Solution:  Use the B&W driver to print from Cakewalk to the color printer.  Music notation is all black & white anyway!

This does not mean you lose the ability to print in color from other programs when you need to.  Windows lets you install more than one printer driver for the same printer port.  You may choose among drivers from each Windows program's Print Setup dialog.  Install both the B&W and color drivers.  Choose the B&W driver when printing from Cakewalk and choose the color driver when you need to print in color from other programs.

Example:  If you have a printer "model number 4", the driver for "model number 3" may work with model 4 and may not cause a GPF.  As described in the previous example, you may install both drivers and select either as needed.

Please see README.WRI.  There may be additional information about specific printer models and driver version numbers.

Other common questions....


Wave events and Sound Blaster

Certain older models of the Sound Blaster cannot do both MIDI input and wave output at the same time.  (However, the latest Sound Blaster cards, such as the Sound Blaster 16, are fully capable of performing MIDI input and wave output simultaneously.)  Using such a card, if you've selected "Creative Labs" as a MIDI In device in Cakewalk's MIDI Devices dialog, wave audio won't work.  This includes Cakewalk's special Wave and MCIcmd events as well as wave audio attempted by any other Windows application running while the "Creative Labs" MIDI In device is open.  This is not a limitation of Cakewalk: while any program is using the older "Creative Labs" MIDI In device, wave audio will not work.

Note that MIDI output will work fine along with wave audio: you can select "Creative Labs" from the list of MIDI Out devices.  The problem occurs only when you've selected the "Creative Labs" MIDI In device.

Other common questions....


Required hardware for wave audio

There are basically three functions that multimedia audio hardware can provide:

  (1) MIDI interface (cable connection to external synthesizers)

  (2) Tone generators (on-board synthesizers)

  (3) Digital audio (wave audio, like a CD or DAT recorder/player)

Various multimedia audio cards provide one or more of these three functions.  MIDI interfaces like the MPU-401 provide only the first.  Products like Sound Blaster combine all three functions in a single card.

Wave events require the third function, digital audio.  To use Wave events, you must install a sound card with digital audio capabilities and install a wave driver for the card using Windows Control Panel.  For more information, consult the manufacturer of the sound card you own or are considering purchasing.

Other common questions....


No MIDI output

If you aren't getting any MIDI output, please run through this checklist:

1.	Make sure you've connected your cables properly.  See the instructions in the Cakewalk Installation Guide.

2.	Make sure you install a MIDI driver for your interface using Windows Control Panel.  See the instructions in the Cakewalk Installation Guide.  Make sure you specify the correct configuration information -- like IRQ and base port address -- in the driver's setup dialog box.

3.	Now the driver is available for Windows programs to use.  Next, you need to tell Cakewalk to use it. Choose the MIDI Devices command on the Settings menu and make sure the device is selected (highlighted) in the MIDI Out list.  Click on the device name to be sure it is selected; if the name only has a dotted box around it but isn't drawn in reverse video, then it is not selected!

4.	Try loading and playing a sample workfile included with Cakewalk.  Make sure that each track is set to a Port and Channel to which you've connected a synthesizer.  Because you can change the Port and Channel during playback, you can experiment with different settings easily until you hear a sound.

Other common questions....


No MIDI input

If you aren't getting any MIDI input, please run through this checklist:

1.	Make sure you've connected your cables properly.  See the instructions in the Cakewalk Installation Guide.

2.	Make sure you install a MIDI driver for your interface using Windows Control Panel.  See the instructions in the Cakewalk Installation Guide.  Make sure you specify the correct configuration information -- like IRQ and base port address -- in the driver's setup dialog box.

3.	Now the driver is available for Windows programs to use.  Next, you need to tell Cakewalk to use it. Choose the MIDI Devices command on the Settings menu and make sure the device is selected (highlighted) in the MIDI In list.  Click on the device name to be sure it is selected; if the name only has a dotted box around it but isn't drawn in reverse video, then it is not selected!

Other common questions....


Microsoft MIDI Mapper

The Microsoft MIDI Mapper is intended to help make MIDI song files be "portable" from one system to the next by mapping patch numbers, key numbers, and so on from a standard General MIDI layout to whatever synthesizer a particular user has.  If you are not preparing or using MIDI song files for multimedia distribution purposes, you may not need to use the MIDI Mapper at all: it may be solving a problem that you don't have and needlessly complicating your setup.

If you do need the Microsoft MIDI Mapper, be sure to read Microsoft's documentation for it.  Also, feel free to call Microsoft Windows Technical Support for assistance using their product.

To get you started, however: One key point is that you have Cakewalk use the MIDI Mapper instead of directly using the device.  The whole idea is for the MIDI Mapper to sit between Cakewalk and the device and map data on the way.  For example, in Cakewalk's MIDI Devices list you would select "Microsoft MIDI Mapper" but not select "Sound Blaster".  Instead, select "Sound Blaster" in the MIDI Mapper, using the Windows Control Panel.  So you set up a chain: Cakewalk sends data to the MIDI Mapper, the MIDI Mapper transforms the data and sends it to the Sound Blaster.

Other common questions....


Creating your own patch names list

Use the Instruments command on the Settings menu to create custom patch names.

Using Patch Names in your PATCHES.INI from version 1.0 or 2.0

This section matters only if you created your own patch name lists for version 2.0 or earlier.   This section tells you how to move those lists into version 3.0.

Version 3.0 has a more sophisticated feature.  The Settings | Patch Names command has been replaced with Settings | Instruments.  Instrument definitions include a set of patch names, plus other information like controller names and note names (see the User's Guide for a full explanation).

To move your custom patch name lists into version 3.0:

Overview:  MASTER.INS is a new file used by version 3.0 that contains all patch names, controller names, note names, and bank select information.  In other words, MASTER.INS contains complete instrument definitions.

When converting custom patch name lists from your PATCHES.INI file to be included in MASTER.INS, you will need to use a text editor.

Following are the steps you need to take:

1.  Copy your PATCHES.INI to a file with an .INS extension.  For example, OLD.INS.

2.  Open the file in a text editor to perform the remaining steps.

3.  Delete everything from the file except the patch names you created.  In other words, delete all the patch name lists that were supplied with version 2.0, leaving behind only the patch name lists that you added.  This will save time in the following steps.

Note: You may also wish to check whether version 3.0 supplies patch names that you needed to create for version 2.0.  A number of new ones have been added.

4.  Add this line to the very start of the file -- before all of your patch name lists:

.Patch Names

It is important that you include the period ('.') at the start of the phrase, and place this line at the very start of your file.

5.  Add this line to the very end of your file -- after all of your patch name lists:

.Instrument Definitions

It is important that you include the period ('.') at the start of the phrase, and place this line at the end of the file.

6.  Below the .Instrument Definitions line, you must add a small instrument definition for each patch name list.   For example, if you have a patch name list titled "Whizbang 100", add the following instrument definition:

[Whizbang 100]
Patch[*]=Whizbang 100

The character between the brackets [ ] is an asterisk: *.

Now, you have created an instrument definition that uses your patch name list.  You may use the same title ("Whizbang 100") both for the patch name list and for the instrument definition.

Repeat this step for each patch name list represented in the .Patch Names section.

7.  Once you have completed step 6, start Cakewalk Professional 3.0 and import the file:

(a) Choose Settings | Instruments.

(b) In the Assign Instruments dialog, press the Define Instruments button.

(c) In the Define Instruments dialog, press the Import button.

(d) Supply the name of your file.  In our example, this is OLD.INS.

(e) Press OK.

(f) If the titles of any of your own instrument definition or patch name lists have the same name as those supplied with version 3.0, you will be asked if you want to replace the existing definition.  You may wish to answer No.  Version 3.0 supplies instrument definitions that are more complete than simply a set of patch names.

(g) When the import completes, press OK to return to the Assign Instruments dialog.  Assign your new instrument definition(s) to whatever Port/Channels you wish.  Press OK.

Other common questions....


Devices and drivers

Windows 3.1 provides the Multimedia Extensions.  Manufacturers of MIDI interfaces, sound cards, and other multimedia hardware can create drivers.  Any Windows program can use these drivers to know how to work with a particular model of sound device.  Cakewalk uses these standard drivers.

We have supplied a couple drivers with Cakewalk only as an interim provision to help the owners of a few of the most popular MIDI interfaces.  Eventually even these drivers will be available directly from the maker of the MIDI interface.

If your MIDI interface is not in this list, you need to contact its manufacturer to obtain a Windows driver for it, otherwise Cakewalk will not know how to work with it.

Other common questions....


Using wave audio (.WAV files)

Cakewalk lets you trigger playback of digital audio at various times in your song.  You must have installed a digital audio sound card and installed a wave driver for it using the Windows Control Panel "Drivers" icon.

You trigger digital audio playback by inserting a special kind of event in a track at the time you want.  There are two kinds of events you may use, Wave or MCIcmd.  There are pros and cons for each.

You may find it easiest to keep these special events on a track all by themselves.  Here are step-by-step instructions:

To insert a Wave event:

1.	In the Track/Measure view, put the cursor on the track you want the wave event to go on.

2.	From the Insert menu, choose Wave File.

3.	Supply the name of the wave file and press OK.

To insert an MCIcmd event:

1.	Open an Event List view for the track in which you want to insert the event.

2.	Press INSERT to add a new event.

3.	Move the cursor to the Kind column and press ENTER (or, double-click on the Kind cell with the mouse.)

4.	In the Event Kind dialog, choose MCI Command, and press OK.

5.	Type the text for the MCI command in the Event-list view.  Move the highlight one cell to the right -- press the RIGHT key once -- and press ENTER.  Enter the MCI command, "PLAY <filename>", where <filename> is a .WAV file.  For example, you could use the command, "PLAY C:\WINDOWS\CHIMES.WAV", to play the CHIMES.WAV file included with Windows 3.1 and located in the C:\WINDOWS directory.

Tip: To test your new event, you may step-play it, as explained in the help topic for the Event List view.

Tip: During playback, only events from checked (non-muted) tracks are played.  Make sure you change the track Status in the Track/Measure view to hear your Wave or MCIcmd event.  If the track has an "m", it's muted, so double-click on the "m" to change it to a checkmark.

Other common questions....


Slaving drum machines to Cakewalk's MIDI Sync

Cakewalk can either slave to MIDI Sync, or be the master providing MIDI Sync for something else to sync to.  For the latter -- for example, if you are using a drum machine which you want to follow Cakewalk -- go through the following checklist:

1.	On most models of drum machines, you can select whether or not it should slave to MIDI Sync.  If this can be switched off, make sure it's switched ON.

2.	Double-check the connection from your computer's MIDI OUT jack to the drum machine's MIDI IN.

3.	If you are using more than one MIDI output port on your computer, you need to tell Cakewalk which of these ports to send MIDI Sync info to.  Do this in the MIDI Devices dialog's Sync Output Port item: specify the port to which you've connected the drum machine.

4.	Choose MIDI Out, and make sure the Transmit MIDI Start/Continue/Stop/Clock option is ON.  This must be turned on for each new workfile you create: it is off by default.

Other common questions....


How can I print to a file?

There may be situations where you want to print from Cakewalk, but don't have a printer connected to your computer.  If so, you can print to a file.  You can take this file to a computer which does have a printer attached, and print from there.  This other computer does not need to have Cakewalk installed.

This technqiue may be used with any Microsoft Windows program, not just Cakewalk.  It is explained in your general Microsoft Windows documentation, but we will explain it here for your convenience.

One-time step: Install a printer driver

You must perform the following steps once to install a special printer choice.  When you choose this printer, Cakewalk will print to a disk file instead of to a real printer port like LPT1.

1. Determine the make and model of the printer to which you want to print.

2. Start Windows Control Panel.

3. Double-click the Printers icon.

4. Press the Add button.

5. Select the driver that most closely matches your printer and press OK.

Note: Control Panel will probably ask you to insert one of your original Windows diskettes.

Tip: If you are not sure which printer to pick, see what printer driver is installed in Windows on the machine to which the printer is connected.  Use the same driver on your machine.

6. Once the printer driver has been installed, select this driver in the Printers dialog and press the Connect.. button.

7. Under Ports, select FILE:, press OK, and then press Close.  This will add FILE: to the end of the printer driver name.

This completes the one-time installation.

Printing to a file from Cakewalk

Whenever you want to print to a disk file, perform the following steps:

1. Choose the Print command from the File menu.

If the printer you installed above isn't listed as the default Printer, press the Setup button to pick it.

2. Press OK.

3. You will be asked for a file name, to which Cakewalk will print.  For example, supply the name, MYFILE.PRN.  Press OK.

Printing from a file

1. Insert the floppy disk into the computer.

2. At the DOS Prompt prompt, type:

COPY A:\MYFILE.PRN LPT1

This example assumes the printer is connected to the LPT1 port.

Note: You must ensure that you have the appropriate print driver selected.  For example, if you print to a file based using the HP LaserJet 4 driver, you can only print on computers connected to a HP LaserJet 4.  Choosing a driver that is not consistent with the printer connected may result in garbage output on the printer.

Other common questions....


What is the Meaning of Life?

Just seeing if you're paying attention.

This is indeed a very common question, but the answer is not available with this version of Cakewalk.  We hope to include it in a future version.  Please return your registration card today so we will be able to contact you.

Other common questions....


CAL Function Reference

General CAL functions

CAL data types

Math functions

Relational functions

Boolean functions

Assignment functions

(forEachEvent)

Event parameter variables

Marker variables

Buffer functions

Musical time functions

Output functions

Input functions

Control flow functions

(include)

(DLL)

(sendMIDI)

(delay)

CAL functions corresponding to Cakewalk user commands

File menu

Edit menu

GoTo menu

Track menu

Settings menu

See Also:

CAL view


File menu CAL functions

FileNew

FileOpen

FileSave

FileSaveAs

FileMerge

FileExtract

These correspond to commands available on the File menu.

See Also:

CAL Function Reference


{CAL function} FileNew
(FileNew)

(FileNew [<szTemplate>])

If szTemplate argument is omitted, then the user is prompted for the name of a template.  The szTemplate argument is a string and should contain only the base name of the template, without an extension.  For example "Normal" is correct but "NORMAL.TPL" is not.

Returns: FALSE if the template was not found and loaded.  This could be either because of an error reading the file or because the user pressed Cancel in the dialog.  The "Normal" template always works: if no NORMAL.TPL file is found, a blank work is created with the normal program defaults.

See Also:

New

CAL Function Reference


{CAL function} FileOpen
(FileOpen)

(FileOpen [<szPathname>])

If  szPathname argument is omitted, then the user is prompted for the name.

Returns: FALSE if file was not loaded.  This could be either because of an error reading the file or because the user pressed Cancel in the dialog.

See Also:

Open

CAL Function Reference


{CAL function} FileMerge
(FileMerge)

(FileMerge [<szPathname>])

If szPathname argument is omitted, then the user is prompted for the name.

Returns: FALSE if file was not loaded.  This could be either because of an error reading the file or because the user pressed Cancel in the dialog.

See Also:

Merge

CAL Function Reference


{CAL function} FileSaveAs
(FileSaveAs)

(FileSaveAs [<szPathname>])

If szPathname argument is omitted, then the user is prompted for the name.

If szPathname already exists, then user is warned and given the ability to enter a different name.

Returns: FALSE if file was not saved.  This could be either because of an error writing the file or because the user pressed Cancel in the dialog.

See Also:

Save As

CAL Function Reference


{CAL function} FileSave
(FileSave)

(FileSave)

Returns: FALSE if file was not saved due to an error writing the file.

See Also:

Save

CAL Function Reference


{CAL function} FileExtract
(FileExtract)

(FileExtract [<szPathname>])

If szPathname argument is omitted, then the user is prompted for the name.

If szPathname already exists, then user is warned and given the ability to enter a different name.

Returns: FALSE if file was not saved.  This could be either because of an error writing the file or because the user pressed Cancel in the dialog.

See Also:

Extract

CAL Function Reference


Edit menu CAL functions

EditCopy

EditCut

EditPaste

EditPasteToTrack

EditQuantize

EditSlide

EditTranspose

EditLength

EditRetrograde

EditControlFill

EditVelocityScale

EditFitImprov

EditFitToTime

EditInterpolate

ResetFilter

SetFilterKind

SetFilterRange

These correspond to commands available on the Edit menu.

Most of the Edit menu command functions share certain arguments, which will be explained only here.

(An "argument" is one of the parameters passed to a function.)

tFrom corresponds to the "From:" item.

tThru corresponds to the "Thru:" item.

bEvents corresponds to the "Events" checkbox, either TRUE or FALSE.

bEvtFilt corresponds to the "Use Event Filter..." checkbox, either TRUE or FALSE.

bTempos corresponds to the "Tempo Changes" checkbox, either TRUE or FALSE.

bMeters corresponds to the "Meter/Key Changes" checkbox, either TRUE or FALSE.

All of the arguments to a command function correspond to items in the dialog box, and you can generally easily guess which by the name used to describe the argument here.

See Also:

CAL Function Reference


{CAL function} EditCopy
(EditCopy)

(EditCopy [<tFrom> <tThru> <bEvents> <bEvtFilt> <bTempos> <bMeters> <bMarkers>])

See Also:

Edit menu CAL functions

Copy

CAL Function Reference


{CAL function} EditCut
(EditCut)

(EditCut [<tFrom> <tThru> <bEvents> <bEvtFilt> <bTempos> <bMeters> <bMeters> <bDelHole>])

See Also:

Edit menu CAL functions

Cut

CAL Function Reference


{CAL function} EditPaste
(EditPaste)

(EditPaste [<tTo> <wReps> <nHoleKind> <bEvents> <bTempos> <bMeters><bMarkers>])

nHoleKind is

0	blend with existing material

1	replace existing material

2	slide over existing to make a hole for new material

See Also:

Paste

Edit menu CAL functions

CAL Function Reference


{CAL function} EditPasteToTrack
(EditPasteToTrack)

(EditPasteToTrack [<tTo> <wReps> <nHoleKind> <bEvents> <bTempos> <bMeters> <bMarkers> <nTrack>])

nHoleKind is

0	blend with existing material

1	replace existing material

2	slide over existing to make a hole for new material

nTrack varies depending on nMode.

multi-track mode:	paste tracks back shifted by this amount

single track mode:	paste all track to this track number

See Also:

Paste To One Track

Edit menu CAL functions

CAL Function Reference


{CAL function} EditQuantize
(EditQuantize)

(EditQuantize [<tFrom> <tThru> <bEvtFilt> <wRes> <nPct> <bTimes> <bDurs>])

See Also:

Quantize

Edit menu CAL functions

CAL Function Reference


{CAL function} EditSlide
(EditSlide)

(EditSlide [<tFrom> <tThru> <bEvtFilt> <nAmount> <bUnitTicks>])

If bUnitTicks is TRUE, then nAmount is treated as ticks; otherwise it is treated as measures.

See Also:

Slide

Edit menu CAL functions

CAL Function Reference


{CAL function} EditTranspose
(EditTranspose)

(EditTranspose [<tFrom> <tThru> <bEvtFilt> <nAmount> <bDiatonic>)

See Also:

Transpose

Edit menu CAL functions

CAL Function Reference


{CAL function} EditLength
(EditLength)

(EditLength [<tFrom> <tThru> <bEvtFilt> <nPct> <bStart> <bDur>])

See Also:

Length

Edit menu CAL functions

CAL Function Reference


EditRetrograde
(EditRetrograde)

(EditRetrograde [<tFrom> <tThru> <bEvtFilt>])

See Also:

Retrograde

Edit menu CAL functions

CAL Function Reference


{CAL function} EditControlFill
(EditControlFill)

(EditControlFill [<tFrom> <tThru> <nCtrl> <nChan> <nBeg> <nEnd>])

nChan is from 1..16.

nBeg and nEnd must be 0..127.

See Also:

Series of Controllers

Edit menu CAL functions

CAL Function Reference


{CAL function} EditVelocityScale
(EditVelocityScale)

(EditVelocityScale [<tFrom> <tThru> <bEvtFilter> <nBeg> <nEnd> <bUnitsPercent])

bUnitsPercent if TRUE indicates that nBeg and nEnd are percentages, otherwise if FALSE that they are velocity values.

See Also:

Velocity Scale

Edit menu CAL functions

CAL Function Reference


{CAL function} EditFitImprov
(EditFitImprov)

(EditFitImprov [<nReferenceTrack>])

See Also:

Fit Improvisation

Edit menu CAL functions

CAL Function Reference


{CAL function} EditFitToTime
(EditFitToTime)

(EditFitToTime [<tFrom> <tThru> <tNewThru> <nMethod>])

See Also:

Fit To Time

Edit menu CAL functions

CAL Function Reference


{CAL function} EditInterpolate
(EditInterpolate)

(EditInterpolate)

This never presents dialog boxes to the user.  It presumes the search (1) and replace (2) filters have already been set as desired.

See Also:

Interpolate

ResetFilter

SetFilterKind

SetFilterRange

Edit menu CAL functions

CAL Function Reference


{CAL function} ResetFilter
(ResetFilter)

(ResetFilter <nFilter> <bEverything>)

nFilter is one of the following:

0	Used in all Edit menu commands except Interpolate

1	Interpolate's Search filter

2	Interpolate's Replace filter

See Also:

Edit menu CAL functions

CAL Function Reference


{CAL function} SetFilterKind
(SetFilterKind)

(SetFilterKind <nFilter> <nKind> <bInclude>)

nFilter is one of the following:

0	Used in all Edit menu commands except Interpolate

1	Interpolate's Search filter

2	Interpolate's Replace filter

nKind is one of the following kind-of-event constants:

NOTE

KEYAFT

CONTROL

PATCH

CHANAFT

WHEEL

SYSX  [new in 3.0]

TEXT  [new in 3.0]

LYRIC  [new in 3.0]

WAVE  [new in 3.0]

MCI  [new in 3.0]

bInclude says whether to include this kind of event.

See Also:

Edit menu CAL functions

CAL Function Reference


{CAL function} SetFilterRange
(SetFilterRange)

(SetFilterRange <nFilter> <nRange> <bInRange> <wMin> <wMax>)

nFilter is one of the following:

0	Used in all Edit menu commands except Interpolate

1	Interpolate's Search filter

2	Interpolate's Replace filter

nRange is one of the following:

0	Note - Key

1	Note - Velelocity

2	Note - Duration

3	Keyaft - Key

4	Keyaft - Amount

5	Control - Controller Number

6	Control - Value

7	Patch - Patch Number

8	ChanAft - Amount

9	Wheel - Value

10	Channel

11	Beat

12	Tick

13	Patch - Bank Number	[ new in 3.0 ]

bInRange is the opposite of the Not checkbox: FALSE means Not is checked, TRUE means it's not checked.

wMin, wMax are the minimum and maximum values for the range.

See Also:

Edit menu CAL functions

CAL Function Reference


GoTo menu CAL functions

GotoSearch

GotoSearchNext

Most GoTo menu commands change the current position, which is the Now marker.  CAL expresses these simply as changes to the value of its corresponding Now variable.  For example:

(=Now 0)

is the same thing as the GoTo Beginning command, since this command sets the Now marker to the earliest time, 0.

See Also:

CAL Function Reference


{CAL function} GotoSearch
(GotoSearch)

(GotoSearch [<NoPrompt>])

The NoPrompt argument is simply a syntactic placeholder.  It can be anything.  If there is any argument, the user will not be prompted with the Search dialog.  Instead, Cakewalk will perform the search using the Search Event Filter as-is.

When Cakewalk records this command for you into the CAL notepad, it first uses one or more calls to the ResetFilter, SetFilterKind, and SetFilterRange functions, all using the filter number 1.  Then it adds:

(GotoSearch 1)

The dummy argument "1" means not to prompt the user.

If you are writing a CAL program where you want the user to complete the Search dialog, then call GotoSearch with no arguments:

(GotoSearch)

See Also:

GotoSearchNext

Search

Edit menu CAL functions

CAL Function Reference


{CAL function} GotoSearchNext
(GotoSearchNext)

(GotoSearchNext)

Repeats the last search.

See Also:

GotoSearch

Search Next

CAL Function Reference


Track menu CAL functions

TrackName

TrackLoop

TrackActive

TrackArchive

TrackKey+

TrackVel+

TrackTime+

TrackPort

TrackChan

TrackBank

TrackPatch

TrackVolume

TrackPan

TrackSelect

These generally correspond to commands available on the Track menu which are related to specific track parameters.

All of these have a third argument, nTrack, which is optional.  If omitted, then all selected, non-blank tracks are affected -- just as the Track menu commands work.  If a specific track number argument is supplied, then only that track is affected, and if the track is blank, it is created prior to applying the setting.

Note: Track numbers are 0 through 255 when you're writing a CAL program, not 1 through 256.

Example 1:  Set the Key+ parameter of all selected, non-blank tracks, to -10.

(TrackKey+ -10)

Example 2:  Set the Key+ parameter of track 0 only to -10.

(TrackKey+ -10 0)

See Also:

CAL Function Reference


{CAL function} TrackName
(TrackName)

(TrackName [<szName> [<nTrack>]])

szName is either a string literal or a string created by the (format) function.

nTrack is a number from 0 to 255.

Example: Set the name of  a track to something including its number in the name:

(int nTrack 1)

(getInt nTrack "Number of track to name?" 1 256)

; Give the track the name "Track N", where N is the track number.

; Note that (TrackName) expects a number in the range 0..255, not 1..256.

(TrackName (format "Track " nTrack) (- nTrack 1))

See Also:

Name

CAL Function Reference


{CAL function} TrackLoop
(TrackLoop)

(TrackLoop [<nReps> [<nTrack>]])

nReps must be 1..9999.

See Also:

Loop

CAL Function Reference


{CAL function} TrackActive
(TrackActive)

(TrackActive [<nActive> [<nTrack>]])

nActive must be be one of the following:

1	playing

0	mute

-1	toggle

See Also:

Status

CAL Function Reference


{CAL function} TrackArchive
(TrackArchive)

(TrackArchive [<nArchive> [<nTrack>]])

nArchive must be be one of the following:

1	archive

0	un-archive

-1	toggle

See Also:

CAL Function Reference


{CAL function} TrackKey+
(TrackKey+)

(TrackKey+ [<nAmount> [<nTrack>]])

nAmount must be -127..127.

See Also:

Key+

CAL Function Reference


{CAL function} TrackVel+
(TrackVel+)

(TrackVel+ [<nAmount> [<nTrack>]])

nAmount must be -127..127.

See Also:

Vel+

CAL Function Reference


{CAL function} TrackTime+
(TrackTime+)

(TrackTime+ [<lAmt> [<nTrack>]])

See Also:

Time+

CAL Function Reference


{CAL function} TrackPort
(TrackPort)

(TrackPort [<nPort> [<nTrack>]])

nChan must be 0..15.

See Also:

Port

CAL Function Reference


{CAL function} TrackChan
(TrackChan)

(TrackChan [<nChan> [<nTrack>]])

nChan must be 0..15.

See Also:

Channel

CAL Function Reference


{CAL function} TrackBank
(TrackBank)

(TrackBank [<nBank> [<nTrack>]])

nBank must be -1..16384.

See Also:

Bank

CAL Function Reference


{CAL function} TrackPatch
(TrackPatch)

(TrackPatch [<nPatch> [<nTrack>]])

nPatch must be -1..127.

See Also:

Patch

CAL Function Reference


{CAL function} TrackVolume
(TrackVolume)

(TrackVolume [<nVolume> [<nTrack>]])

nVolume must be -1..127.

See Also:

Volume

CAL Function Reference


{CAL function} TrackPan
(TrackPan)

(TrackPan [<nPan> [<nTrack>]])

nPan must be -1..127.

See Also:

Pan

CAL Function Reference


{CAL function} TrackSelect
(TrackSelect)

(TrackSelect <nState> <nTrack>)

nState must be one of the following:

1	select

0	un-select

-1	toggle

See Also:

CAL Function Reference


 Settings menu CAL functions

SettingsMetronome

SettingsMidiIn

SettingsMidiThru

SettingsMidiOut

SettingsRecordFilter

SettingsChannelTable

These correspond to some of the commands available on the Settings menu.

See Also:

CAL Function Reference


{CAL function} SettingsMetronome
(SettingsMetronome)

(SettingsMetronome [<bPlay> <bRec> <bAcc> <nCount> <nPort> <nChan> <nKey> <nVel> <wDur> <bBeep>])

See Also:

Metronome

CAL Function Reference


{CAL function} SettingsMidiIn
(SettingsMidiIn)

(SettingsMidiIn [<n1> <n2> <n3> <n4> <n5> <n6> <n7> <n8> <n9> <n10> <n11> <n12> <n13> <n14> <n15> <n16>])

n1 through n16 are MIDI channels.  A value of zero means the channel is not recorded or echoed.  A value of one means that it is.

See Also:

MIDI In

CAL Function Reference


{CAL function} SettingsMidiThru
(SettingsMidiThru)

(SettingsMidiThru [<nMode> <nPort> <nChan> <nKey> <nVel> <nLocalOnPort>])

These arguments correspond to the similarly-named items in the MIDI Thru dialog box.

See Also:

MIDI Thru

CAL Function Reference


{CAL function} SettingsMidiOut
(SettingsMidiOut)

(SettingsMidiOut [<bTxMidiRt> <bSendCont> <bSendSPP> <nSPPDelay> <bCtrlZero> <bCtrlChase>])

These arguments correspond to the similarly-named items in the MIDI Out dialog box.

See Also:

MIDI Out

CAL Function Reference


{CAL function} SettingsRecordFilter
(SettingsRecordFilter)

(SettingsRecordFilter [<bNote> <bKeyAft> <bControl> <bPatch> <bChanAft> <bWheel>])

These arguments correspond to the similarly-named items in the Record Filter dialog box.

See Also:

Record Filter

CAL Function Reference


{CAL function} SettingsChannelTable
(SettingsChannelTable)

(SettingsChannelTable [<bOn> <n1> <n2> <n3> <n4> <n5> <n6> <n7> <n8> <n9> <n10> <n11> <n12> <n13> <n14> <n15> <n16>])

n1 through n16 are track numbers, 0..255.

See Also:

Channel Table

CAL Function Reference


Comment character, for CAL programs
; (semi-colon)

Use the semi-colon character to place comments in your CAL program.  CAL ignores the semi-colon and everything following it on the same line.

See Also:

CAL Function Reference


NIL

This is a CAL expression that does nothing and has no value.  It may be used as a "place-holder" where CAL syntax requires some expression but you have none that you want to supply.

See Also:

CAL Function Reference


CAL Data Types

int

An int is a 16-bit signed integer.  Values range from 32676 to 32767.  (Just like an int in C or an integer in PASCAL.)

word

A word is a 16-bit unsigned integer.  Values range from 0 to 65536.  (Just like an unsigned short int in C.)

long

A long is a 32-bit signed integer.  Values range from about negative 2 billion to positive 2 billion.  (Just like a long int in C.)

dword

A dword is a 32-bit unsigned integer.  Values range from 0 to over 4 billion.  (Just like an unsigned long int in C.)

string

A string is text enclosed in quotes.

Variable declarations

Variables must be declared before they are used.  Variables are declared in the form

(<type> <name> [<initial-value>])

Examples:

(int <variable-name> [initial-value])

(word <variable-name> [initial-value])

(long <variable-name> [initial-value])

(dword <variable-name> [initial-value])

(string <variable-name> [initial-value])

(undef <variable-name>)	; un-defines a variable of any type

The optional initial-value part lets you initialize a variable.  For example, this declares an int variable named "i" and initializes it to zero:

(int i 0)

If you don't initialize a variable, its value cannot be predicted.

Because of the LISP-like syntax, all CAL needs to delimit variable names is a space.  So, variable names may be any sequence of printable ASCII characters.

See Also:

CAL Function Reference


Math functions

(+ <op1> <op2>)	; add

(- <op1> <op2>)	; subtract

(* <op1> <op2>)	; multiply

(/ <op1> <op2>)	; divide

(% <op1> <op2>)	; modulo (remainder after division)

(++ <variable>)	; increment (add 1 to variable)

(-- <variable>)	; decrement (subtract 1 from variable)

(random <min> <max>)	; returns pseudo-random # min..max inclusive

See Also:

CAL Function Reference


Relational functions

(< <op1> <op2>)	; less than

(> <op1> <op2>)	; greater than

(<= <op1> <op2>)	; less than or equal to

(>= <op1> <op2>)	; greater than or equal to

(== <op1> <op2>)  	; equal

(!= <op1> <op2>)  	; not equal

Relational functions compare two values.  The result is either zero (false) or non-zero (true).  For example:

(< 11 12)

is true.  Eleven is less than twelve, and the function returns a non-zero number.  On the other hand,

(> 11 12)

is not true.  Eleven is not less than twelve, and the function returns zero.

See Also:

CAL Function Reference


Boolean functions

(&& <op1> <op2>)	; logical AND.  If both operands are non-zero, returns non-zero.

(|| <op1> <op2>)	; logical OR.  If either or both operands are non-zero, returns non-zero

See Also:

CAL Function Reference


Assignment functions

(= <variable> <expr>)

This is how you give a variable a value.  For example, to assign a variable named "foobar" the value 12:

(= foobar 12)	; foobar is now 12

To assign "foobar" the value of (+ 10 10):

(= foobar (+ 10 10))	; foobar is now 20

The following assignment operators let you perform an arithmetic operation and an assignment in one fell swoop:

(+= <variable> <value>)	; (= <variable> (+ <variable> <value>))

(-= <variable> <value>)	; (= <variable> (- <variable> <value>))

(*= <variable> <value>)	; (= <variable> (* <variable> <value>))

(/= <variable> <value>)	; (= <variable> (/ <variable> <value>))

(%= <variable> <value>)	; (= <variable> (% <variable> <value>))

Example:

(+= foobar 1)

is the same as:

(= foobar (+ foobar 1))

See Also:

CAL Function Reference


forEachEvent CAL function
(forEachEvent)

(forEachEvent

<action>

)

The action is evaluated for (applied to) each event in the selected region.  In other words, the action expression is inside of an implicit loop cycling through the events in the From..Thru range of each selected track.  The event parameter variables hold the values for the current event.

Example: Ask the user for an amount, then add that amount to the velocity of all Note events in the selected region.

(do

(int amt 0)

(getInt amt "Amount to add?" -127 127)

(forEachEvent

(if (== Event.Kind NOTE)

(+= Note.Vel amt)

)

)

)

See Also:

CAL Function Reference


Event parameter variables

CAL has some predefined "magic" variables that let you access events in Cakewalk Professional's track buffers.  These variables work only in the (forEachEvent) expression, where they're automagically set to the value of the current event's parameters.  This is how you get and set event parameters.  You can use them in expressions to find out about the current event.  If you assign them a new value, they automagically change the current event.

Different types of events have different parameters.  For instance, a note event has a key number, a velocity, and a duration, but a patch event has only a patch change number.  Consequently, some of these magic variables are defined only for particular kinds of events, while others -- e.g., the variable for the time of the event --apply to all kinds of events.

Variables for all kinds of events

Event.Chan

The MIDI channel of the event (0..15).

Event.Time

The starting time of the event.  The type of this variable is dword.  See Musical Time Functions for more information.

Event.Kind

The kind of event it is.  One of the following:

NOTE, PATCH, CONTROL, CHANAFT, KEYAFT, WHEEL, SYSX

Variables for particular kinds of events

The preceding variables apply to all kinds of events.

The following variables let you get or set an event parameter that a particular kind of event has.  So, you should test the value of Event.Kind, then use only the variables that are meaningful for an event of that kind.

Variable	Event.Kind	Meaning	Allowed values
Note.Key	NOTE	Key number (pitch)	0 .. 127
Note.Vel	NOTE	Velocity	0 .. 127
Note.Dur	NOTE	Duration	0 .. 65535
Patch.Num	PATCH	Patch number	0 .. 127
Patch.Bank	PATCH	Bank number	-1 .. 14383
Control.Num	CONTROL	Controller number	0 .. 127
Control.Val	CONTROL	Controller value	0 .. 127
KeyAft.Key	KEYAFT	Key number	0 .. 127
KeyAft.Val	KEYAFT	Value (pressure amount)	0 .. 127
ChanAft.Val	CHANAFT	Value (pressure amount)	0 .. 127
Wheel.Val	WHEEL	Wheel value	-8192 .. 8191

Example: Make sure the event is a note event.  If it is, add two to the key number (raise the pitch two half-steps):

(if (== Event.Kind NOTE)	; Is it a NOTE event?

(= Note.Key (+ Note.Key 2))	; Yes: change it!

)

See Also:

CAL Function Reference


Marker variables

There are some other "automagical" variables that equate to Cakewalk Professional's From, Now, and Thru markers, and one for the time of the latest event in the song.

From	; From marker

Now	; Now marker

Thru	; Thru marker

End	; the time of the latest event among all tracks

You can use them for their values anywhere in the CAL program, but you may not assign new values to them in a forEachEvent expressions.  (You can never assign a value to End; it is read-only.)

Example:

(getTime From "Change From marker time:")

or, to save, change, and restore:

(dword oldFrom From)

(getTime From "Change From marker time:")

(forEachEvent

; ... do some stuff ....

)

(= From oldFrom)

Note: Cakewalk Professional never allows (> From Thru) or (< Thru From).  Neither does CAL.  When one marker is changed, the other one is automatically adjusted, if necessary, to prevent this.

Note: Changing the Now marker has no effect on what events the forEachEvent operates on.  Changing the From and Thru markers will.

 See Also:

CAL Function Reference


Buffer functions

index

(index)

Returns the index of the event in the track buffer.  Events are numbered starting from zero.

delete

(delete)

Deletes the current event.  Indexes for subsequent events are automatically decremented.

insert

(insert <time> <chan> <kind> [ ...data parameters... ])

Inserts a copy of the event at the specified index.  This function takes a variable number of arguments, depending on the <kind> argument:

(insert <time> <MIDI channel> NOTE <key> <velocity> <duration>)

(insert <time> <MIDI channel> KEYAFT <key> <amount>)

(insert <time> <MIDI channel> CONTROL <controller number> <value>)

(insert <time> <MIDI channel> CHANAFT <amount>)

(insert <time> <MIDI channel> PATCH <patch number> [<bank number>])

(insert <time> <MIDI channel> WHEEL <value>)

Example:

(insert (makeTime 1 1 0) 10 NOTE 60 64 TIMEBASE)

This inserts at time 1:1:0 for MIDI channel 10 a note event with a key number of 60, a velocity of 64, and a duration of TIMEBASE.

Hint:	The TIMEBASE constant is described in the Musical Time Functions section.

The track that the event is inserted on depends on whether you use it in forEachEvent expression or not.  If you use it in a forEachEvent expression, then the event is inserted in the track which that expression is currently evaluating.  Otherwise, it is inserted in the current track (the track which the cursor is on in the Track/Measure view).

In other words, use (insert) in the forEachEvent  for inserting events in any and all selected tracks.  For example, you might want to add a controller event wherever you find a certain note event.

For commands where you want the user to be able to add events to a single track -- the track the highlight is on in the Track/Measure view -- use (insert) outside a forEachEvent.

Note: The inserted events do not become visible to the CAL program while forEachEvent is evaluated.  It is evaluated only for events existing in tracks before the forEachEvent started.

Note:  Because this command adds events, it is possible for it to exhaust free memory.  If that happens, a CAL "out of memory" error message is displayed and the CAL program is terminated.

Note: The <bank number> argument when inserting a PATCH event is optional, to provide compatibility with previous versions of Cakewalk and CAL.  If you do not supply it, the value -1 will be used, which means "none" and appears to the user as "----".

 See Also:

CAL Function Reference


Musical time functions

Converting between Measure:Beat:Tick and "raw" times

(meas <time>)

(beat <time>)

(tick <time>)

(makeTime <measure> <beat> <tick>)

These are conversion functions for dealing with Cakewalk Professional times.

Although Cakewalk Professional displays times to the user in Measure:Beat:Tick format, internally they are stored as a single dword.  CAL variables like Event.Time deal with these "raw" dwords too.

These functions let you convert between the two forms.  (meas <time>), (beat <time>), and (tick <time>) return the measure, beat, and tick for a given raw dword time.  (make time <meas> <beat> <tick>) makes up a dword time from a measure, beat, and tick.  This conversion depends on the current meter, of course, as well as the timebase.

Important: Measures and beats are numbered from 1, not 0.  You will get a "value out of range"  error if you pass (make time) a 0 for the measure or beat arguments.

TIMEBASE constant

TIMEBASE is a variable that is equal to the current timebase as set by the Timebase command.  Remember that the timebase is the number of ticks per quarter-note.

See Also:

CAL Function Reference


Ouput functions
Output functions

message

(message <value> [ [value] ... ])

Takes a variable number of arguments, which can be int, word, dword, or string expressions.  Prints the result on Cakewalk Professional's message line (the bottom line of the screen).

Example:

(do

(int foobar 10)

(message "Foobar is " foobar " and the timebase is " TIMEBASE)

)

Assuming that Cakewalk Professional's timebase is set to 120, the preceding CAL code would display the following on the message line:

Foobar is 10 and the timebase is 120

pause

(pause <value> [ [value] ... ])

Works just like (message) but also pauses for a user keypress or mouse click.  If the user presses escape, the CAL program will terminate.  If the user presses any other key, the CAL program resumes.

Tip:	This is handy for debugging CAL programs.  Use (pause) to display a variable value; that way you can press Cancel to break out of long loops.

format

(format <value> [ [value] ... ])

Works just like (message) and (pause) but simply returns a string, which you may pass to a function like (TrackName).

 See Also:

CAL Function Reference


Input functions

These functions let you prompt the user for input.  They display a standard Cakewalk Professional dialog box.  After the user presses OK, the function returns the value.  (If the user presses Cancel then the CAL program aborts with the error, "User pressed Cancel.")

(getInt <int-variable> <prompt> <minimum> <maximum>)

Returns the int value that the user input.

int-variable is an int variable that will receive the input value.  Its value is displayed as the default value in the dialog box.

prompt is a string item that will be displayed in the dialog box.

minimum and maximum are int values; CAL will not let the user input a number less than or greater than these values.

Example: Ask the user to input "A number from 0 through 100", suggesting a default of 50, and assign the result to a variable "i":

(do

(int i 50)

(getInt i "A number from 0 thru 100" 0 100)

)

(getWord <word-variable> <prompt> <minimum> <maximum>)

Returns the word value that the user input.

word-variable is an word variable that will receive the input value.  Its value is displayed as the default value in the dialog box.

prompt is a string item that will be displayed in the dialog box.

minimum and maximum are word values; CAL will not let the user input a number less than or greater than these values.

(getTime <dword-variable> <prompt>)

Returns the dword value that the user input.

dword-variable is a dword variable that will receive the input value.  Its value will be displayed as the default value in the dialog box.

prompt is a string item that will be displayed in the dialog box.

Example: Ask the user to input a "Starting time", suggesting as a default the time of the current event, and assign the result to a variable "t".

(do

(dword t Event.Time)

(getTime t "Starting time:")

)

See Also:

CAL Function Reference


Control flow functions

do

(do

<expr1>

[	<expr2>

...

<exprN> ]

)

Evaluates each expression in sequence, once and only once.

Tip:	Use this whenever CAL expects a single expression but you want to use two or more.

if

(if <condition>

<true-expression>

[<false-expression>]

)

If condition is non-zero, evaluates the true-expression, else evaluates the false-expression.  The false-expression is optional.

while

(while <condition>

<action>

)

So long as condition is non-zero, action is evaluated.  If condition is zero the first time, action is never evaluated.

Example: Count-down from 100 to 1:

(do

(int count 100)

(while (!= count 0)

(do

(message "Count-down is now " count)

(-- count)

)

)

)

switch

(switch <index>

<case1> <case1result>

 [	<case2> <case2result>

 	<case3> <case3result>

...

<caseN> <caseNresult> ]

)

Evaluates index, then compares it to the first of each of the following pairs of expressions.  When it finds the first match, if any, it executes the second half of the pair and returns the result.

CAL doesn't have an explicit "default" or "else" case statement.  But you can achieve the same thing by making index itself the very last of the case pairs.  This works because switch matches the first pair it finds, then quits.  If nothing matches before the index case, why then, index always equals itself -- so its consequent will be evaluated if and only if no other pairs matched.  For instance:

(switch TIMEBASE

120	(pause "120")	; Is it 120?

96	(pause "96")	; Is it 96?

TIMEBASE	(pause TIMEBASE)	; It is anything else not already matched above

)

See Also:

CAL Function Reference


include
(include)

(include <szPathName>)

Runs another CAL program as if the content of that file were inserted in the program at the point where the (include) function is placed.

Example: Include the file NEED20.CAL, which is one of the supplied example files.  The purpose of NEED20.CAL is to check that CAL version 2.0 or higher is being used, and if not, warn the user and stop the CAL program.

(do

(include "NEED20.CAL")	; require VERSION >= 20

; ... proceed with CAL program

)

See Also:

CAL Function Reference


sendMIDI
(sendMIDI)

(sendMIDI <nPort> <nChan> <kind> <data1> [<data2>])

This function lets you transmit a MIDI event.

nPort is 0..15, or -1 for "all ports".

nChan is 0..15, or -1 for "all channels".

kind is one of the constants like NOTE, PATCH, and so on.

nData1 is 0..127.

nData2 is 0..127, and is ignored unless kind is NOTE, CONTROL, or KEYAFT.

(sendMIDI <nPort> <nChan> SYSX <data bytes>)	; System Exclusive form

If kind is SYSX, then up to a couple hundred data bytes may be supplied.  You may not include any bytes whose value is outside the range 0..127.  In particular, do not include the starting F0 or ending F7 bytes: CAL will supply them for you.  Include only the bytes in between the F0 and the F7.

nChan is ignored.

Note: This new form of the sendMIDI function is available on in CAL version 31 and higher.  You can test

(>= VERSION 31)

to determine if this form of the function may be used.  If the version is <= 30, you should issue a polite error message to the user.

See Also:

CAL Function Reference


delay
(delay)

(delay <dwMilliseconds)

dwMilliseconds is the number of milliseconds (1000th of a second) that delay will wait before returning.

See Also:

CAL Function Reference


DLL
(DLL)

(DLL <szLibName> <szProcedureName> [ <arguments> ])

This powerful feature lets you make calls to functions in Windows DLLs (Dynamic Link Libaries).

The return value is of type dword, but may be assigned to any other type.

CAL string literals may be passed for LPCSTR arguments.

WARNING: Use of this function requires great care.  If you call a DLL function with the wrong number of arguments, you will corrupt the stack and subsequent operation of CAL and Cakewalk will be unpredictable.  There is no error-checking or other protection for this.

Example:

(do

; Call the Windows USER library function MessageBeep( UINT uBeep ).

(DLL "USER" "MessageBeep" 0)

; Call the Windows USER library function

;    MessageBox( HWND hWnd, LPCSTR lpcszTest, LPCSTR lpcsz Caption, UINT uFlags )

; with a NULL HWND argument and 0x40 == 64 decimal for MB_OK flag.

(DLL "USER" "MessageBox" 0 "This is a message" "Caption" 64)

)

See Also:

CAL Function Reference