# techno~

## Description

techno~ is a signal-based step-sequencer that facilitates sample-accurate timing of events.

## Examples

## Arguments

None.

## Attributes

### Common Box Attributes

## Messages

### amplitude

#### Arguments

sequencer-step
[int]

amplitude-value [float]

amplitude-value [float]

The word

, followed by a number that specifies the sequencer step and a float that specifies an amplitude value, sets the amplitude (as an absolute factor) of a step's output note. The amplitude is specified as an absolute factor of that step's note -- an amplitude of 1.0 will result in the amplitude output signal having a value of 1.0 at the very beginning of the step. ### attack

#### Arguments

sequencer-step
[int]

attack-curve-exponent [float]

attack-curve-exponent [float]

The word

, followed by a number that specifies the sequencer step and a float that specifies the exponent of a curve, sets the curve used to calculate the amplitude trajectory from 0.0 at the beginning of the previous step to the amplitude value at the beginning of the current step. The values used to specify the exponents of the curve are the same as those used for the message. ### curve

#### Arguments

sequencer-step
[int]

curve-exponent [float]

curve-exponent [float]

The word

A value of 1.0 represents a linear slide from the previous step; a value of 0.5 represents a square root function; a value of 2.0 represents a second-order parabolic slide; etc. The message lets you set and experiment with different varieties of portamento.

, followed by a number that specifies the sequencer step and a float that specifies the exponent of a curve, sets the curve used to calculate the trajectory of pitch from the previous step. A value of 1.0 represents a linear slide from the previous step; a value of 0.5 represents a square root function; a value of 2.0 represents a second-order parabolic slide; etc. The message lets you set and experiment with different varieties of portamento.

### decay

#### Arguments

sequencer-step
[int]

decay-trajectory-exponent [float]

decay-trajectory-exponent [float]

The word

, followed by a number that specifies the sequencer step and a float that specifies the exponent of a curve, sets the curve used to calculate the decay trajectory from the amplitude value at the beginning of this previous step to 0.0 at the beginning of the next step. The values used to specify the exponents of the curve are the same as those used for the message. ### length

#### Arguments

number-of-steps
[int]

The word

, followed by a number, sets the number of notes in the sequence. The default is 1. ### pitch

#### Arguments

sequencer-step
[int]

frequency [float]

frequency [float]

The word

, followed by a number that specifies the sequencer step and a float that specifies a pitch as a Hertz frequency, sets the pitch of that step's note. ### pos

#### Arguments

sequencer-step
[int]

start-position (step-size-coefficient) [float]

start-position (step-size-coefficient) [float]

The word

, followed by an integer that specifies the sequencer step and a float that specifies a start position, positions the step to the specified position. A step may not be placed before the previous step or after the next step. For instance, a uniformly-spaced four step sequence will have its steps in positions 0.0, 0.25, 0.5 and 0.75, so a message for the third step (index 2) can only specify positions between 0.25 and 0.75. ### repeatpos

#### Arguments

step-width
[list]

The word

repeatpos 0.5

repeatpos 0.25 0.5 0.75

repeatpos 0.125 0.25 0.375 0.5 0.625 0.75 0.875

The message affects a repeating segment two steps long, giving the first step 66% of the time and the second step 34%. (This is like classic "swing" on a drum machine.)

, followed by one or more floats, allows repeating settings of non-uniform sequencer step sizes. The number of floats following the lengths message represents one less than the size of the repeating segment of steps - this segment size can be any even divisor of the total number of steps in the sequence. So for instance with an eight-step sequence the length of the segment can be 2, 4, or 8 steps. The floating point arguments, which must be strictly increasing and in the range between 0 and 1, set the relative width of each step. For instance, one can set uniform divisions for a sequence with an even number of steps with any of the following messages: repeatpos 0.5

repeatpos 0.25 0.5 0.75

repeatpos 0.125 0.25 0.375 0.5 0.625 0.75 0.875

The message affects a repeating segment two steps long, giving the first step 66% of the time and the second step 34%. (This is like classic "swing" on a drum machine.)

### signal

A signal is used as an input to the techno~ object to specify the step position in a sequence. The signal is in the range 0 - 1.0 and indicates a phase value, expressed as a fraction of the number of total steps in the sequence (set using the message). A phasor~ object is customarily used as input to the techno~ object. All input signals are clipped to the range 0 - 1.0.

## Output

### signal

Out left inlet: Pitch signal output for oscillator(s).

Out middle inlet: An amplitude envelope. You can multiply this signal output with the output of your oscillators.

Out right inlet: The current position in the step sequence. Each step represents a distance of 1.0 and the total output range is from 0 to the value set by the message.

## See Also

Name | Description |
---|---|

adsr~ | |

cycle~ | |

phasor~ | |

rate~ | |

rect~ | |

saw~ | |

seq~ | |

svf~ | |

tri~ |