## 5. The Track Window

The track window

Track windows are used to edit all the event data in a single track. This window contains the following controls:

- Transport controls to play and stop the song.
- A saturation knob to control the visibility of secondary events in the piano roll. Secondary events are all events from the tracks other than the one you are editing.
- Tools to operate on MIDI data.
- The edit pipeline for processing newly created events.
- Edit controls from the edit pipeline.
- An event inspector (only visible if a single event is selected).
- A measure control, like the song window.
- A primary view (the piano roll) for editing notes.
- Zero or more strip views, for editing MIDI data other than notes.
- A zoom control for setting the primary and strip magnification levels.

5.1. The Transport Controls |

The track window includes several buttons for controlling playback and looping. These buttons are analagous to the play and stop buttons found on a tape deck.

| Play Song. Play all tracks in the song, starting from the left edge of the window and stopping automatically at the right edge.
| Play Track. Play this track, starting from the left edge of the window and stopping automatically at the right edge.
| Stop. Stop playback.
| Loop Mode. Toggle loop mode on or off. See section 5.1.1. Looping, below.

5.1.1. Looping
When the loop button is activated, start and end loop markers appear in the top line of the measure control. Loop mode is intended to be transitory: You turn loop mode on when you want to compose a passage by continually layering it, then you turn loop mode off again.

The loop is set to automatically begin at the first completely visible measure, and end at the last completely visible measure. You can drag the markers to select a new loop range, but if you turn off loop mode, enable it again, and one or both of the markers are beyond the bounds of the view, then the markers will again be placed to align with the first and last completely visible measures.

5.1.2. Keyboard Control
The transport controls can also be activated from the keyboard. The ENTER key of your numeric keypad acts like the Play Song button, and the 0 key acts like the Play Track button.

5.2. The Saturation Control |

The saturation control determines the visibility of secondary events in the piano roll. Secondary events are all events from the tracks other than the one you are editing. This knob can be used to tone down the amount of clutter in the piano roll.

5.3. The Tools |

The track window toolbar has four tools that can be used to manipulate MIDI data in the primary and strip views. Activate a tool by pressing the tool button using the desired mouse button. The tool will then appear in the appropriate tool slot to the left of the toolbar. You can't use the secondary mouse button (typically the right button) to access a tool. That button is reserved for a context-sensitive popup menu.

Each tool might also have its own set of properties, which can be accessed by selecting the Windows->Tool Properties menu item in the track window.

5.3.1. Pencil Tool |

This tool is used to either create new events or move existing events.

- If no event exists where the mouse button is clicked, then it creates a new event and automatically selects that event. If shift is not held down while creating the event, then any previously selected events will become deselected. If shift is held down, then the new event will be added to the current selection.
- If there is already a selected event, then all selected events will be moved as the mouse is dragged.
- If there is already an unselected event, then it will be made the sole selection, and moved as the mouse is dragged.
- If there is already an unselected event and the shift key is pressed, then the event is added to the selections, all of which will move as the mouse is dragged.

The pencil tool works in conjunction with the track's edit pipeline. Whenever the mouse is pressed on the first condition above, and a new event is created, the event is run through the edit pipeline before appearing on the screen. See section 5.4. The Edit Pipeline for details.

Pencil Properties
The pencil tool has the following properties:

- Context Sensitive Mode. This is the default setting. When selected, the behaviour of the pencil tool will vary based on what type of view it is interacting with. In the piano roll and hybrid views, it will use move mode. In the program change view, it will use transform mode. In the control change, channel aftertouch, and pitch bend views, it will use add many mode
- Move Mode. Newly created events will be dragged with the mouse.
- Add 1 Mode. Only a single event will be created with each mouse press.
- Add Many Mode. New events will be created as the mouse is dragged.
- Transform Mode. Newly created events will be transformed (as if by the Wand tool) as the mouse is dragged.

5.3.2. Select Tool |

This tool is used to change the selected events. Click on the upper-left bounding point of the events to select, then drag to the lower-right. Holding down the shift key will add to the current selection instead of replacing it.

This tool works in conjunction with the others: Unless otherwise noted, all the tools operate on multiple selected events in the same way they operate on a single selected event. For example, you can move a group of notes by first selecting them, then clicking on one of the selected notes with the pencil tool and dragging.

5.3.3. Wand Tool |

This tool is used to transform events by making selections and then dragging. The transformation varies depending upon what type of events you are operating on and how you drag.

- If you are operating on notes, dragging up or down increases or decreases the velocity. Dragging left or right decreases or increases the duration. The change is applied to all selected notes.
- If you are operating on program changes, dragging left or down decreases the program change value, dragging right or up increases it. The change is applied to all selected program changes.
- If you are operating on control change, channel aftertouch, or pitch bend events, dragging across the events reshapes them. The change happens to any events you touch, regardless of the selection.

5.3.4. Eraser Tool |

Click on events to delete them. This tool operates on any event you touch, regardless of the current selection.

Eraser Properties
The eraser tool has the following properties:

- Delete events instantly. This is the default setting. When selected, events will disappear as soon as the mouse is dragged over them.
- Delete events gradually. When selected, events will be transformed until the given transformation value hits zero, at which point they will be deleted. For example, for notes, the velocity value is used. As you drag over a note, it will grow softer and softer until it is deleted.

5.3.5. The Active Tools |  |  |

One or two tools can be active, depending upon the number of buttons on your mouse. Each mouse button that can hold a tool is called a slot, and which tools are active in which slots is indicated to the left of the toolbar. If you have two or more buttons, the right one is always reserved for the context-sensitive menu.

5.3.6. The Context-Sensitive Menu

Pressing the right mouse button on a two- or three-button mouse will open a context-sensitive menu with familiar cut-copy-paste commands. (Note that if you are cutting or copying, the mouse must be over a selected event)

5.3.7. Keyboard Control

In addition to clicking on the tool buttons to activate a tool, you can use your keyboard. The function keys F1 through F4 are used to activate each tool for the primary button. If you have two tool slots in your track window, holding down shift wile pressing these keys will activate that tool for the second slot.

First Tool Slot<./th> | Second Tool Slot
--- | ---
F1 = Pencil | SHIFT F1 = Pencil
F2 = Select | SHIFT F2 = Select
F3 = Want | SHIFT F3 = Want
F4 = Eraser | SHIFT F4 = Eraser

5.4. The Edit Pipeline |

The edit pipeline works in conjunction with the pencil tool: Whenever that tool is used to create a new event, the event is sent through the edit pipeline before it actually appears on the screen. This design is particularly apparent with the quantize and velocity controls found in each track window: These band controls are actually Quantize and Velocity filters placed in the edit pipeline. For example, if you removed the Velocity filter from the edit pipeline, you could no longer select the default velocity value assigned to new notes. Instead, they would all default to an arbitrary value (100, in fact).

Using the edit pipeline creatively will let you accomplish a huge variety of tasks. For example, if you want to create a series of quarter notes that are slightly shorter than a full quarter note, simply add a Duration filter at the end of the pipeline, and adjust the Duration knob to perhaps 90% (slightly left of pointing straight up).

Here's another idea: Create a new drum track and add an Example filter to the end of the edit pipeline. Now start randomly placing notes. Listen to the rhythm that emerges as you build the passage.

5.4.1. A Special Note About the Quantize Filter

The Quantize filter plays a special role in the edit pipeline: The quantize value of the first Quantize filter in the pipeline is used as the grid in the primary and strip views. If you remove this filter, all notes will be created as quarter notes, and dragging events will drag in quarter note steps. You need a Quantize filter if you want to work with any other note duration.

5.5. The Edit Controls |  |

The edit controls are built dynamically based on the filters in a track's edit pipeline (see The Edit Pipeline, above, for more detail). Every filter can optionally provide an easy-access control, those that are supplied get placed in the edit controls area. Not all filters supply such controls, see Appendix A. The Filters for a description of each filter.

The quantize control sets the duration to be used when creating new notes. The velocity control sets the velocity to be used when creating new notes.

5.6. The Event Inspector |

The inspector displays numeric values for the currently selected event. It will update to appropriate controls whether the current event is a note, program change, control change, pitch bend, channel aftertouch, or tempo event.

5.7. The Primary and Strip Views

These views display and allow you to edit the MIDI data in your song.

5.7.1. The Primary View

The primary view is the main view for editing data. The track window has two types of primary view, a piano roll and a hybrid view, which can be selected in the View -> Change To menu. Both of these views are used to edit note data.

5.7.2. The Strip Views

Strip views allow access to MIDI events other than notes. These views are stacked horizontally below the primary view, and can be used to edit patch (program change), control change, pitch bend, and channel aftertouch information.

The upper-left corner of each strip view displays a property button. Pressing this button allows you to manage your strip views by duplicating the current strip, changing it to another type of strip view, or removing it altogether. Below the strip views is a final property button not associated with any strip. This button allows you to add new strips to the end of the list.

Certain views might add new choices to their property menu. For example, control change views add a menu item labeled Control Change, which allows you to change the view to display and edit any of the 128 available control numbers (although this menu item will be unavailable if the current track has no output filter selected).

5.7.3. Keyboard Control

You can alter the values of MIDI events by using the keyboard. Holding down CTRL while pressing the arrow keys operates exactly like the pencil tool. For example, CTRL-ARROW LEFT will move the selected events left in time by the current quantize value. CTRL-ARROW UP will increase the selected events as if dragging them with the mouse (increase the pitch of note events, increase the value of control change events, etc.).

Holding down OPTION (varies with your keyboard, but generally the Windows key on Windows keyboards) while pressing the arrow keys operates exactly like the wand tool. For example, OPTION-ARROW UP will increase the velocity of note events, OPTION-ARROW LEFT will decrease their duration, etc. Using OPTION-ARROW UP and OPTION-ARROW DOWN on program change events is an easy way step through programs without the fatigue of holding down the mouse. Holding down the arrow keys slowly increases the rate of change.

The DEL key can be used to delete all the selected events.

Preliminary note: Using arrow keys without CTRL or other modifiers is reserved for changing the current note selection. Currently, the right arrow key can be used to change the selected event, although this functionality is not complete. For example, in its current state, the arrow key will not jump across phrase boundaries.

5.8. Menu Bar

Edit

- Undo . Undo the last change.
- Redo . Redo the last undo.
- Cut . Moves selection to the paste buffer. Useful for deleting many selected events.
- Copy . Copies selection to the paste buffer.
- Paste . Pastes contents of paste buffer.
- Reset Edit Pipeline . Clears any changes you've made to the edit pipeline and returns it to its default state of a Quantize filter and a Velocity filter.
- Set Time Signature... . Open a Set Signature window on the leftmost measure.

View

- Change To . Changes primary view of the track
  - Piano Roll . Default view.
  - Hybrid Note . Staff view.

Windows

- Filters . Opens the Filters window.
- Tool Properties . Open the properties of the most recently activated tool.