metaseq is a time-line slicer that acts as a middle man between the master clock and a sequencer. It lets you arrange timeline segments freely in order to create more complex sequencing structures. Such arrangements are organized in sets. Sets can be chained in order to build even more complex structures. All the sequencers in netpd, namely qseq3, unstep, and unpunch, support metaseq.

left-hand part: sets

Sets are added with |+| and removed with |-|. master means that the clock source of the set is master, netpd’s master clock. Sets can also use the output of other sets as their input clock. The input clock can be switched by dragging the left-most area of the set up and down with the mouse. Only sets with a smaller ID can be used as input clock (set 4 can use set 3, but set 3 cannot use set 5).

master as input clock

When master is used as input clock (the default), the whole set with all its segments is looped infinitely as is. The set length (thus loop length) is defined by the sum of the length of all segments.

chained sets

When a set uses another set as clock input, two numbers appear near the clock input label. The first is the set offset and the second is the set length. Those two numbers define the frame considered by the set. Clock input outside the frame is ignored and does not generate any output clock. Clock input within the frame is normalized by translating it by the set offset. For instance, when using set_offset=256 and set_length=128, clock input from 256 to 383 is converted to 0 to 127. Clock input outside that range is ignored. This allows for setups where one set feeds others that are played serially by having different framings (set_offset) defined.

right-hand part: segments

For a set to output anything at all, one or more segments need to exist for that set. Each set has its own group of segments. The segemnts of the highlighted set are displayed on the right-hand side. To see the segments of a different set, simply click on a different set on the left-hand side.

Segments are added with |+| and removed wit |-|. Each segment is defined by two numbers, the segment offset and the segment length. There is no limit on the number of segments per set. The segments define which part of the sequencer (or a chained set, for that matter) is going to be played. The sum of all segment lengths is displayed in the header row on the right. If the current set uses master as its input clock, the whole group of segments is looped indefinitely and the loop length equal to the sum of all segment lengths.

The first column of buttons sets the range of the active segments. New segments are added without affecting the playback of the current set. Only when the range is adapted to include the new segments, the new segments are effectively used. Note that only the range end and can be defined. The range starts always with the first segment of the set.

The second column of buttons is used to solo specific segments. Only one segment can be solo’d at a time. If a segment is solo’d, this segment is looped indefinitely, disregarding all other segments as long as solo is active.

The third column of buttons mutes specific segments. The length of the segment is still accounted for in the set, but no clock is output during playback of a muted set.