cycle~ Reference

Sinusoidal oscillator

cycle~

Description

Use the cycle~ object to generate a periodic waveform. The default waveform is one cycle of a cosine wave. You can also use the wave~ object, which offers additional flexibility though slightly less optimization.

Examples

Repeated cosine or any other waveform

Discussion

The cycle~ object is an interpolating oscillator that reads repeatedly through one cycle of a waveform, using a wavetable. The wavetable can be changed using the 'set' message. This wavetable may be of any size, but historically was limited to 512 samples.

Arguments

frequency [number]

Optional
Unitshz

Oscillator frequency (initial) The initial frequency of the oscillator

buffer-name [symbol]

Optional

The name of a buffer~ object used to define the oscillator's wavetable. If a frequency argument is present, the buffer~ name follows the frequency. If no buffer~ name is given, cycle~ uses an internal 64-bit 16K cosine wavetable.

sample-offset [int]

Optional

If a buffer~ name has been given, this defines the sample offset into the named buffer~ object's sample memory. cycle~ only uses the first channel of a multi-channel buffer~.

Attributes

buffer [symbol]

Buffer containing an external waveform. Setting the buffer~ with the attribute is analogous to sending the setall message.

buffer_offset [atom_long]

First sample of a buffer (if an external buffer is providing the waveform)

buffer_sizeinsamps [atom_long]

Override the size of the buffer used for the wavetable. If using the set message the size will be 512, or if using the setall message the size will be the whole buffer~ length. Use this attribute to define a different size (the size should be a power of two). Setting this size to 0 will result in an effective size of 512 and setting it to -1 will result an effective size of the whole buffer~ length.

Possible values:

'-1'
'0'
'16'
'32'
'64'
'128'
'256'
'512'
'1024'
'2048'
'4096'
'8192'
'16384'
'32768'
'65536'

frequency [float]

Oscillator frequency

phase [float]

Phase offset

Common Box Attributes

Messages

float

Arguments

frequency-or-phase [float]
Left inlet: frequency of the oscillator
Right inlet: phase of the oscillator in the range 0.0 to 1.0

(mouse)

Double-click to display buffer~ contents

reset

Arguments

phase [float]
In the left inlet, the reset message, followed by a float from 0 - 1, resets the phase of the cycle~ object. Signal output continues from the specified phase. If you have multiple cycle~ objects that are out of phase, sending them all the reset message will synchronize them.

set

Arguments

buffer-name [symbol]
sample-offset [int]
Set a buffer~ object to use as the wavetable, using the first 512 samples. If no name is given, the internal cosine wavetable with 16K samples will be used. Use the setall message to use an entire buffer~ as a wavetable.

setall

Arguments

value [symbol]
Set a buffer~ object to use as the wavetable, using the entire buffer~ length. This is in contrast to the set message which only uses the first 512 samples of the buffer~.

signal

Left inlet: frequency of the oscillator
Right inlet: phase of the oscillator in the range 0.0 to 1.0

Output

signal

A waveform (cosine by default) repeating at the specified frequency, with the specified phase.

See Also

Name Description
buffer~
buffir~
cos~
line~
phasor~
rect~
saw~
techno~
trapezoid~
tri~
triangle~
wave~
2d.wave~
MSP Basics Tutorial 2: Adjustable Oscillator MSP Basics Tutorial 2: Adjustable Oscillator
MSP Basics Tutorial 3: Wavetable Oscillator MSP Basics Tutorial 3: Wavetable Oscillator
Sampling Tutorial 5: Waveshaping Sampling Tutorial 5: Waveshaping
MSP Sampling Tutorial 1: Recording and Playback MSP Sampling Tutorial 1: Recording and Playback