Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Automation has had varying degrees of success in many apps, more often than not, in the way it's presented to the user. Some apps will use bezier curves to present automation data and a means of edit to the user, while others will use straight lines between "nodes", and the user can add as many as they want to create nice curves, or silence noise, and other artifacts in a recorded wave. Automation is, in more than one case, poorly presented, with tiny nodes making it hard to locate and select with a mouse, cramped automation tracks or lanes, and often badly functional management of multiple lanes in a single track.
We've opted for a simple approach in OOM that's clear and easy to use, and decided the user should have the choice where and how they want to manipulate automation data, without the often remarked comments about bezier curves, in that they can distort the data either side of the edited node. Either way suits some users and not others, and both are valid for particular use cases, but for editing artifacts out of waves, a set of straight lines is a definitive function, and so, in OOM, that's what we considered important enough when building the automation. At some stage in the future, we'd like to have both formats in OOM, so all users have a choice, but this won't make it into the next release of OOM.
This page contains the following sections:
- Writing Automation into a track manually
- Recording Automation during playback
- Copy/Paste Automation from one location to another
Writing Automation into a track manually
OOM automation is entered and edited on the track itself, over the part. There are 2 built-in per track automation lines, or as we call them, lanes, which are Volume and Pan. Both are commonly used for automation writing.
In the simple example picture, we can see the volume lane displayed over the track. The user can have one or more lanes visible by selecting and deselecting them in the track header, using the **A** button. This opens a menu in which the user selects which automation he wishes to see in the track. This is consistent for all tracks and busses capable of automation writable lanes.
The Volume lane has some additional information displayed when it is active, which are the faint horizontal lines marked 0dB, and -12dB. These are guides for the user when locating nodes. In addition to these guides, each node when active and being moved displays a dB value. When a node is selected the mouse cursor disappears, so the user can see a blue target circle, and locate the node more precisely. Our lazy select function also helps when moving a node, as the user doesn't waste valuable time trying to position the mouse, and make the node active. As long as you're close enough to the node, it'll work.
The Pan lane is structured in the same way, but where the Volume lane displays dB when a node is being moved, the Pan nodes display a value between -1 (the lower half of the track ), and 1 (the upper half of the track), with 0 being the center line. When pan is displayed, a light center line is displayed as a guide for the user.
To edit automation manually, the user presses the line tool icon at the bottom of the arranger window. (Shortcut is the F key)
Once the user has pressed the line tool icon, and is in automation mode, the cursor changes to a cross-hair. To add a node to an active lane, the user hovers the cross-hair over the track where they wish the new node to appear, presses and holds the CONTROL key, and clicks on the lane. A new node will appear, with a blue circle defining that node as active, as well as displaying value text next to the active node.
With multiple automation lanes displayed in a track, things can get confusing fairly quickly as to which node is active, and which one will respond to the mouse. We've taken the guesswork out of this, and created a priority system for all automation lanes, being active, and inactive. When a lane is active, the user can add and remove nodes from that lanes, and any active lane renders any other lane inactive. The user simply selects a node in the desired lane to make it active, and the lane will brighten in color, with inactive lanes becoming semi-transparent, so the user has a clear visual cue as to which lane is active. We still recommend to users to have one lane at a time visible, as it's easier to keep control over any changes, and your working automation view is less cluttered.
The user can select multiple nodes by selecting a node, pressing SHIFT, then clicking on additional nodes to add to the selection. Once you have selected all the nodes you want, you hold the SHIFT key, then with the mouse cursor away from nodes, but anywhere in the window, you can move your selection up or down, and sideways. To select all nodes in a track, with the intent of either moving them or deleting them, press CTRL + Shift + A (in automation mode). All nodes will highlight, using the same SHIFT + mouse movement, you can move the entire automation lane up and down, or sideways. If you wish to restrict that movement to only up and down, then position the cursor in the blank space on the left of Bar 1, and move your selection. If you wish to delete your entire track's worth of automation, when in automation mode, simply use the CTRL + Shift + A command to highlight all nodes, and press delete.
Note that the CTRL + SHIFT + A command is a toggle, so if you press it to highlight all your nodes, then simply press it again to un-highlight them.
Any singly selected node can be removed by making the desired lane active, then hovering the mouse over a node, and pressing **Delete**. This is true for all nodes except the first one, in any lane, which is your anchor for the lane.
As well as the built-in lanes for Volume and Pan, automation for plugins is also displayed in the track, if the plugin is built with that capability. To avoid confusion, we recommend to users that they follow the common sense principle of viewing one or two plugin lanes at a time, at least to begin with. Given there are hundred of LADSPA plugins available, with a wide range of variables, it's beyond our intent at this time to display correct value types for each one in turn.
The same procedure is true for LV2. When an LV2 plugin is inserted in a track, and the automation lanes for the LV2 plugin are made active, the automation parameters can be written, edited and removed. Note that all parameters that exist for the plugin will show as automation lanes, but some parameters for the plugin are not designed to be automated. As the LV2 plugin spec matures further, we hope that LV2 plugin coders take this into account, and we encourage any LV2 developer to try their plugins in OOM, to aid in further refining their plugin masterpiece.
Once you've written Automation for your track, and in order to read it during playback, open the Mixer tab in the Orchestra Pit, and at the bottom of the strip, there's a text-box drop-down that is set to Off by default. Click on the text and a popup dialog will appear with 4 Automation states listed. They are Off , Read , Touch , and Write . If you've added Automation manually, then the Read state will enable your changes during playback.
Recording Automation during playback
You can write automation during playback in OOM, for track volume and pan, using the controls in the track mixer strip.
Set the Automation state to Write .
Press A in the track header, and select Volume from the menu.
Start playback, and with the mouse, move the gain slider in the track mixer strip up and down, to write Volume.
Pan can be written the same way by selecting Pan in the Automation track header menu, start playback, and move the Pan knob in the mixer strip.
Once you've recorded your automation, set the Automation state in the Mixer strip to Read to playback the automation you've written.
The same procedure is true for plugin automation. When a plugin is added to the track, and if it has automatable parameters, then those parameters will appear for selection in the track header plugin menu. Select the one or multiples that you want to write automation for, and follow the same process as above.
Copy/Paste Automation from one location to another
One of the big challenges of using track based automation, is the ability to copy and paste a carefully constructed automation curve, and use it elsewhere in your project. We're not only aware of the advantages of being able to do this, we've done something about it.
Press the Automation icon, or the shortcut F , to enter automation mode.
Highlight the automation lane you want, and select the range of automation with the punch in and out indicators that you want to copy/paste. Select the nodes inside that range, using SHIFT + click for each one in turn. Make sure your playback cursor is positioned where you want the first node of the copied node selection to paste.
Copy the selection with CTRL + C (in automation mode).
Press CTRL + V , and the data will be copied, with the first node aligned with the playback cursor.
Note: To read in more detail about the Punch in and out indicators, Marker dialog, and their functions, go to the wiki page
When you've finished with your automation editing, press any other icon in the toolkit to exit automation mode, with the pointer tool (shortcut A ) returning you to normal operation. If you wish to hide the automation from view once you've written it, then simply uncheck the menu items in the track header A popup menu.
OOM automation is designed to be quick and easy to use, with simplicity in mind. With a lazy select system, large highlights on a selected node, and value indicators, the user can get a lot of work done in a short time.