Manipulating segments

Manipulating segments

The main window contains a selection of "tools" for editing segments. These are available from the main toolbar: first select the tool you want from the toolbar, and then click and drag on the segments on the main canvas.

The Select tool

The select tool is actually a multipurpose tool: it can be used to select, move, copy, resize and create segments.

The most obvious use is selection: select a single segment by clicking on it with the select tool, or select several by clicking with Shift held down, or by clicking in an empty area of the window and dragging out an area.

To move segments with the select tool, simply click and drag on the segment. To create copies, click and drag with Ctrl held down. To resize a segment, click and drag on the right-hand edge of the segment. To create new segments, click and drag on an empty area either with the middle mouse button or with the left mouse button and Ctrl held down.

The select tool doesn't replace the other tools completely, though — sometimes you need to be more precise about which operation you intend, particularly when working on small segments.

Move and Resize tools

To move a segment to a different start time or track, use the move tool and click and drag on the segment you want to move. If you hold down the Ctrl key while dragging, the segment will be copied instead of moved.

To resize a segment, use the resize tool and click and drag on the right-hand end of the segment. Resizing a segment has the effect of extending or shortening it, by subtracting some of its contents or adding silence at the start or end. If you hold down the Ctrl key, the segment will be rescaled (stretched or squashed) instead of extended or shortened.

For both move and resize you can hold Shift for fine positioning, to avoid snapping to a particular grid position.

Stretching and squashing segments

Resizing a segment normally makes it shorter or longer by subtracting content or adding some extra space. However, by holding the Ctrl key while resizing, you can instead stretch or squash the contents of the segment. You can also do this by selecting the segment and then using Segments->Stretch or Squash....

For segments that contain MIDI events, this re-spaces the events so that they are spread across the new segment's duration, playing back faster or slower than before but in the same relative proportions.

For audio segments, this time-stretches the audio, altering its played speed without altering its pitch (as would happen if the audio was simply played back faster or slower). Time-stretching usually adds some audible artifacts as well, so the quality of your results may vary.

Rosegarden does not alter the original audio file when time-stretching an audio segment, and if you rescale the same segment repeatedly it will always work from the original file instead of accumulating timestretching artifacts with each rescale. You can rescale both mono and stereo audio.

(For reference, Rosegarden uses a frequency-domain time-stretcher based on a phase vocoder with phase-locking at percussive transients. This usually produces good results with stable harmonic sounds such as pads and basses as well as purely percussive sounds such as drum loops, but is less effective for composite material or music with soft or breathy note onsets.)

Split tool

You can use the split tool to split a single segment into two separate segments. To split your segment, select the split tool and click on the segment you wish to split.

By default segments are split on the closest barline to the cursor, but this can be prevented by holding down Shift while splitting the segment.

Other Split functions

The Segments menu contains a number of other Split functions.

Split on Silence

Segments->Split->Split on Silence splits the selected segments on silences. This function works slightly differently depending on whether the selected segments contain audio or MIDI data. For audio segments, it offers you a dialog in which you can choose a threshold below which the segment is considered "silent"; it then splits the segment whenever its amplitude falls below this threshold. For MIDI segments, it simply splits the segment everywhere that a full bar of silence occurs.

Split by Pitch

Segments->Split->Split by Pitch... splits the currently selected segments into higher and lower parts. This function invokes a dialog allowing you to choose a pitch as a "split point", and then splits the selected segments in half with all the notes on or above that split point in the "higher" segment and all the notes below it in the "lower".

If the music in the segment consists of two separate parts (e.g. left and right hand piano parts) that are not always completely on either side of a single split point, you may with to select the "ranging split-point" option. If this is selected, Rosegarden will attempt to track the two parts as they move up and down, usually doing a slightly better job of separating out notes that were intended to lie in the two separate parts.

The resulting segments are both created on the same track, with one overlapping the other.

Split by Recording Source

Segments->Split->Split by Recording Source... splits the currently selected segments according to the MIDI channel and device their events were recorded from.

If you have recorded events from more than one MIDI channel or device into the a single segment, you can use this function to split them into separate segments afterwards. Select the channel or device whose events you want to split out, and the segment will be split into two segments, one containing events from the selected channel or device and the other containing the remaining events. The two segments are both created on the same track, with one overlapping the other.

See also Recording and Track recording filters for more details on how to select the source MIDI channel or device for a recording.

Split at Time

The Segments->Split->Split at Time... function simply splits the currently selected segments into two parts at the time you specify.