Sequencer Fill Utility

The Sequencer Fill utility makes SoftSteps many sequencers fast and easy to set up. With the Fill utility, you can create complex sequencer relationships with just a few clicks of a button. In addition to providing tools for manipulating sequencer settings, it also gives a quick and easy way to move values from one sequencer to another.

There are a lot of buttons in Fill, but - as in all of SoftStep - tool tip help messages pop up when you hold the mouse cursor over any of the significant controls. You will find it is easier to use the Fill utility than to read about it.

While every step sequencer has a Fill button, there is only one Fill utility. When you click on a sequencer's Fill button, the Fill utility pops up with the name of the sequencer that called it in the caption. In the example, this is "Run64-1," a Run sequencer of 64 steps.

Graphics Display

The graphics display shows the contents of the sequencer that called it. The Fill display range is up to 128 steps, but by default it shows only the steps relevant to the calling sequencer, so for an 8-step sequencer it will display 8 wide bars, for a 128 step sequencer there will be 128 very narrow bars. You can view all 128 steps by checking on the "Full" box, in the upper right of the controls. This will show the sequencer values in dark/light green and the other values in gray/light gray.

The graphics display a set of slider controls that you can adjust manually by clicking on them and sliding the mouse up and down. You can also draw directly on the display with the right mouse button, by right clicking and dragging the mouse across the display. The display graphic contour follows your mouse. This is great for drawing volume controls.

Just below and to the right of the graphics display are three label boxes. In the example image these contain 20, 29, and Fn : 2. This is the readout of the step under the mouse cursor. The first box is the sequencer step number, the second is the value of the step, and the third is the equivalent C-Major scale value & octave. You can type into the first two these boxes to change the values, or click on the up/down buttons to increment/decrement the values.

On the bottom frame of the graphic is a long horizontal slider. Move this slider left or right to shift the entire display left or right. Thus, you can easily move values copied from a larger sequencer into the area that is the current sequencer's range..

Parameter Knobs

The five knobs below the graphics display are used to set parameters for the button functions described below. These are initially set to the default values of the sequencer that calls Fill.

Start and End set the step range of an effect; Low and High set the value range, and Scale sets the visual scale of the graphics display.

All sequencer values are in the 0-127 range but you can use Scale to make lower range values easier to view and change. For convenience, when you change Scale the High knob also changes to the same values, but you are free to change it again to some other value.

Not all parameter knobs are used in all button functions. The function button's tool tip pop up informs you which parameter knob is used for a particular function.

Source Group Function Buttons

These function buttons create or fetch values to the display.

Count - Fills with incrementing values. The increment value is set by Low; if Low is 0 (the default) then an increment of 1 is used. Range is from Start to End. If the count reached the Scale limit of the graphic display, the count decrements. The count starts with the value of the slider at position Start.

Fill - Fills from Start to End with the value at position Start.

Erase - Erases (fills with 0) from Start to End.

Rand - Fills from Start to End with random values of range set by Low to High.

Rwalk - Random walk. Fills from Start to End with the cumulative random values starting with the value of the slider at position Start and with a range variation of +/- Low. If Low is 0, then the variance is +/- 4.

Save - save all 128 bytes of the display into a file. The status box to the right of Load will read "OK" when the file is saved. If the check box to the right of the status is checked, Save will append to the end of an existing file. If not checked (the default), Save overwrites an existing file (but you are asked first).

Load - Reads a file into the display. Can read any file, not just the .seq files made by Save. If the file size is larger than 128, only the first 128 bytes are read. The status box to the right of the button displays the number of bytes read. If the check box to the right of the status is checked, Load starts reading the file at an offset of Low * 128 + High. Thus, if Low=1 and High=3, Load would start reading the file at offset 131. If not checked (the default), Load reads the file at offset 0.

You can also Copy and Paste to and from the Windows clipboard, by holding the Shift key down while clicking on Save (to copy) or Load (to paste). The sequencer data is converted to an ASCII/ANSI string, so that sequencer number values become clibboard character values (i.e. 65 becomes "A," 32 beecomes space, etc.).

Undo & Redo - Fill has an extensive Undo control that preserves the last 64 changes you made. Press Undo to go back to a previous state, press Redo to return the other direction. You can actually review your entire edit session (up to 64 steps) by clicking on Undo and Redo to travel up and down the saved changes. When there is nothing left to Undo or Redo, the control becomes inactive and grayed out.

Use Undo to quickly copy a sequence from one sequencer to another. When fill pops up, it shows the current sequencer's values. Click on Undo to load the previous sequencer's values, then Exit and the sequence is copied.

Modify Group

These function buttons modify existing display values.

Add - Adds the value in Low to all values from Start to End. If you are using the sequencer for pitches, this has the effect of transposing up the number of semitones you add.

Sub - Subtracts the value in Low from all values from Start to End. If you are using the sequencer for pitches, this has the effect of transposing down the number of semitones in Low.

Invert - Arithmetic inversion of all values from Start to End, by subtracting each value from Scale. For example, if Scale is at 127, 0 becomes 127, 1 becomes 126, and so on; and when Scale is set to 11, values are inverted about the octave.

Dups - Removes duplicates (makes them 0), and then moves all the non-zero values to the left. This is especially handy for deleting duplicates after a Quant operation. Because this function removes values and then closes the gaps, it works on the full range of 0 to 127; Start and End are ignored.

Zap - Removes (makes 0) all occurrences of the value in Low, and closes the gaps. Range is 0 to 127.

Xchg - Replaces all occurrences of Low with High from Start to End.

Sort - Sorts in ascending order values from Start to End.

Scat - Scatters the sequencer values from Start to End. Without changing the values themselves, Scat moves each to a different, random, location (step number).

Revrs - Reverses order of the sequence values. Use it after a Sort to provide a descending order sort. Range is Start to End.

Trim - Removes (makes 0) all occurrence of values equal or greater then Low, and closes the gaps. Range is Start to End. This is similar to Zap, above. The difference is that Zap only removes occurrences of a single target value, where Trim removes all the values equal or greater than the target.

Smoth - Smoothes the value differences in adjacent steps. Use successive button pushes to provide a greater smoothing effect. Range is Start to End.

Norm - Normalize values to a range specified by Low and High from Start to End. This works like the Normalize action in a sampler. All values are stretched or reduced to proportionally fit the range you specify.

PatAdd - Duplicates the values from 0 to End for the full 0-127 range, incrementing each set by the value in Low (ie: using 11 in End and 12 in Low, it would repeat the pattern in steps 0-11, adding 12 to the first iteration, 24 to the 2nd, etc.).

ReZero - Restores 0s from a previous operation from Start to End. For example if you use Invert, all the zero values are set to the Scale maximum value. Using ReZero restores the original 0 values. Works by copying zero values from the Undo buffer.

HSort - Harmonic sort. Sorts values from Start to End according to selected sort key, which you can access by Ctrl-clicking on the button. The sort key is a list of up to 12 chromatic scale numbers (0, 1, 2, .. 11). The chromatic scale degree, (which is the value modulus 12) is matched against each of the keys in order, with the matched values moved to the front. Thus if you use a table with the values 0, 7, 4 - all the octaves will be moved to the start of the table, the 5ths after that, followed by the major 3rds, and then the other values in the original order.

To change or edit a sort key, Ctrl-Click on the HSort button, and the key editor pop up appears..

Click on one of the 16 buttons to select a key. Click on OK to keep changes and exit; click on the upper right "x" to exit without changes.

Keys 1-3 are the prebuilt keys and can not be changed, keys 4-12 can be user created and edited. To make a key, simply type in up to 12 chromatic intervals (numbers 0-11) in the order you want them to sort. If a key number is repeated, the sort will use the same values that number of times. If a key has more than 12 number of steps, any values not matched are moved into place after the sorted values, with their relative places unchaged. Double click on a key entry line to generate a semi-random key set.

The main purpos of HSort is to automate the task of building note translation tables that are weighted toward a harmonic center or grouping. Usually this will be used with tables that are based on frequency of occurance, with the more frequently occuring values appearing at the head of the table, like the TextHash function in the UF Programmer. You can also use this with the Probability module, using a probability curve that starts high and counts down (i.e. Count, then Revrs).

Scale/Quantize Group

Use these functions to either create a scale or to adjust existing values to a scale.

Quant - Quantize existing values from Start to End to the scale selected from the option buttons.

Make - Create an ascending scale starting with the value of Low, from Start to End, of the scale type selected by the option buttons.

General Group

View select checkbox (labeled "Full.") - Check this to display the full range of 0-127 values. Values that are relevant to the calling sequencer are colored green, values outside the sequencer's range are gray.

Keyboard checkbox (labeled "Kybd") - When checked, the virtual keyboard becomes available for data entry. Clicking on a key with the mouse button sets the current step value to the keyboard value, and increments the step pointer (the text box just under the graphics display). Thus, once you have set the step pointer to the start of your sequence, you can enter values simply by clicking on the keyboard.

Display buffers (option buttons labeled "A, B, C, D, & E") - These select which buffer (memory area that holds the 0-127 values) to use for the display values. When you switch from one buffer to another, the contents of the last buffer are preserved in it. This is useful for working with multiple sequences, allowing you to switch from one set of values to another. Use the Copy and Paste buttons to copy from one buffer to another. You can also merge the contents of two buffers, so that the target buffer copies the source buffer only in positions that have been set to 0. Merge buffers by double clicking on the target, with the previous buffer as the source..

Copy - Copies the entire 0-127 range into the clipboard buffer. This is a local (to SoftStep) clipboard, and not the same as the Windows text clipboard, that you can copy and paste to by using the Load and Save buttons described above.

Paste - Pastes the local clipboard buffer contents to the display from Start to End. The clipboard buffer is copied starting from its 0th value, so if you Copy, then Paste with the Start value at something other than 0, the 0th value of the original data will be copied starting with the offset set by Start.

Restore - Restores the original contents of the calling sequencer. When a sequencer calls the Fill utility, it first saves its contents in a memory area separate from Fill and never affected by Fill operations. Thus, if you want to flush all the changes you've done with Fill and return to the original sequencer values, this button does it.

OK - Exit Fill with changes. If you want to exit and discard changes use the title bar "X" button.

SoftStep is Copyright © 1999-2004 by John Dunn and Algorithmic Arts. All Rights Reserved.