Skip to content

cyclone

Cyclone is a library for Pure Data (Pd) that provides objects mimicking those in Max/MSP. It started as a Max 4.0 clone and has evolved, with updates closer to Max 7. Cyclone is mainly maintained for bug fixes and backward compatibility, with some objects replaced or supplemented by the ELSE library in PlugData. It allows building Max-like patches in Pd, but some newer Max features are not included.

Contributors

People who contribute to this project.

Objects

  • accum The accum object maintains an internal numerical value, which can be initialized or set at any time.
  • acos The acos object calculates the arc-cosine (inverse cosine) of a given number.
  • acosh The acosh object calculates the hyperbolic arc-cosine of a given floating-point number.
  • acosh~ The acosh~ object calculates the hyperbolic arc-cosine of an incoming signal, sample by sample.
  • acos~ The acos~ object calculates the arc-cosine of an incoming signal, sample by sample.
  • active The active object outputs 1 when its parent patch canvas is the active, front-most window, and 0 when it is inactive.
  • allpass~ The allpass~ object implements an all-pass filter, which passes all frequencies without altering their gain but changes their phase.
  • anal The anal object calculates and stores transition probabilities between sequences of numbers, primarily for implementing Markov Chains.
  • append The append object concatenates a predefined message, set as an argument, to the end of any incoming message, outputting the combined result.
  • asin The asin object calculates the arc-sine of a given float input.
  • asinh The asinh object calculates the hyperbolic arc-sine of a given floating-point number.
  • asinh~ The asinh~ object computes the hyperbolic arc-sine of an incoming audio signal, sample by sample.
  • asin~ The asin~ object calculates the arc-sine of each input audio sample.
  • atan2~ The atan2~ object calculates the arc-tangent of two signal-rate input values, 'a' and 'b', as atan(a/b).
  • atanh The atanh object calculates the hyperbolic arc-tangent of a given float input.
  • atanh~ The atanh~ object calculates the hyperbolic arc-tangent of an incoming signal.
  • atan~ The atan~ object calculates the arc-tangent of each incoming audio sample.
  • atodb The atodb object converts linear amplitude values to their decibel full scale (dBFS) equivalents.
  • atodb~ The atodb~ object converts a linear amplitude signal to its equivalent in decibels full scale (dBFS).
  • average~ average~ calculates a moving average of an audio signal over a specified number of recent samples.
  • avg~ The avg~ object calculates the absolute average of an input signal.
  • bangbang The bangbang object emits multiple bang messages from its outlets in right-to-left order whenever it receives any input.
  • bitand~ The bitand~ object performs a bitwise AND operation on two input signals or a signal and a given bitmask.
  • bitnot~ bitnot~ performs a bitwise NOT operation (one's complement) on an incoming signal.
  • bitor~ The bitor~ object performs a bitwise OR operation on two 32-bit values, either two audio signals or an audio signal and a bitmask.
  • bitsafe~ The bitsafe~ object replaces NaN (Not a Number) and infinity values in an incoming signal with zero.
  • bitshift~ The bitshift~ object performs bitwise left or right shifts on an incoming audio signal.
  • bitxor~ The bitxor~ object performs a bitwise exclusive OR (XOR) operation on two audio signals, or between an audio signal and a 32-bit integer bitmask.
  • bondo The bondo object synchronizes and routes messages in Pure Data.
  • borax The borax object processes incoming MIDI note and velocity data, providing detailed reports on individual note events.
  • bucket The bucket object acts as a data shifter, passing incoming float values sequentially from one outlet to the next in a rotational pattern.
  • buddy The buddy object synchronizes incoming messages across its inlets, outputting them only when all inlets have received a message.
  • buffer~ The buffer~ object stores and manipulates audio data in memory as a multichannel array, similar to Pd's table but with advanced file I/O.
  • buffir~ The buffir~ object is a table/buffer-based Finite Impulse Response (FIR) filter that convolves an input signal with samples from a specified buffer.
  • capture The capture object stores a sequential list of incoming floats and symbols, acting as a data buffer.
  • capture~ The capture~ object is a debugging and investigation tool that captures incoming audio signals (signal) and stores their samples.
  • cartopol The cartopol~ object converts Cartesian coordinates (real and imaginary parts) from signal inputs into polar coordinates (amplitude and phase) as signal outputs.
  • cartopol~ The cartopol~ object converts a signal from Cartesian coordinates (real and imaginary parts) to polar coordinates (amplitude and phase).
  • change~ The change~ object detects changes in an incoming audio signal and outputs its direction.
  • click~ The click~ object is an audio impulse generator that outputs a single-sample impulse when triggered by a bang message.
  • clip The clip object (or cyclone/clip~) constrains incoming float or list values to a specified numerical range.
  • clip~ The cyclone/clip~ object constrains an input audio signal to a specified minimum and maximum range.
  • coll The coll object stores and manages collections of messages at integer or symbol addresses.
  • comb~ The comb~ object implements a comb filter, which can be used for both filtering and delay effects on audio signals.
  • comment The comment object is a GUI element in Pure Data used for displaying customizable text labels or notes within a patch.
  • cosh The cosh object calculates the hyperbolic cosine of a given floating-point number.
  • cosh~ The cosh~ object calculates the hyperbolic cosine of an input signal sample by sample.
  • cosx~ The cosx~ object computes the cosine of an input signal, expecting values in radians.
  • counter The counter object increments or decrements an integer value within a specified minimum and maximum range.
  • count~ The count~ object outputs a signal that increments by one for each audio sample, functioning as a sample-accurate counter.
  • cross~ cross~ is a 3rd order Butterworth crossover filter designed to split an incoming audio signal into lowpass and highpass components.
  • curve~ curve~ generates non-linear, curved ramp signals, offering an exponential curve factor to shape the transition between values.
  • cycle The cycle object distributes incoming messages to its outlets in a round-robin fashion.
  • cycle~ The cycle~ object is a linear interpolating oscillator that generates a periodic waveform.
  • cyclone The cyclone object acts as an interface to the Cyclone library, a collection of common Pure Data objects, often with Max/MSP-compatible alphanumeric aliases.
  • dbtoa The dbtoa object converts decibel (dBFS) values into their corresponding linear amplitude using the formula amp = pow(10, dBFS / 20).
  • dbtoa~ The dbtoa~ object converts a decibel full scale (dBFS) amplitude signal or float into its linear amplitude equivalent.
  • decide The decide object randomly outputs either 0 or 1, acting as a simple random boolean generator.
  • decode The decode object takes an integer input and activates the corresponding output (0-indexed) by sending a 1, while all other outputs receive 0.
  • degrade~ The degrade~ object reduces the quality of an incoming audio signal by manipulating its sampling rate and bit depth.
  • delay~ The delay~ object delays an audio signal by a specified number of samples, with the delay time dependent on the sample rate.
  • deltaclip~ The deltaclip~ object limits the rate of change between consecutive samples in an incoming signal, a process also known as 'slew limiting'.
  • delta~ The delta~ object calculates the difference between the current incoming audio sample and the previous sample.
  • downsamp~ The downsamp~ object samples and holds an input signal at a specified rate, expressed in samples, without interpolation.
  • drunk The drunk object generates a "drunk walk" sequence of random numbers.
  • edge~ The edge~ object detects transitions in an audio signal.
  • equals~ The equals~ (or ==~) object performs a signal comparison, outputting a signal of 1 when its left inlet signal is equal to its right inlet signal or argument, and 0 otherwise.
  • flush The flush object acts as a "panic button" for MIDI notes.
  • forward The forward object in Pure Data is designed to send messages to various destinations, allowing the target to change dynamically with each message.
  • frameaccum~ The frameaccum~ object accumulates the values of incoming signal blocks sample by sample, producing a running sum for each sample position across blocks.
  • framedelta~ The framedelta~ object computes the difference between successive signal blocks, specifically designed for running phase deviation in FFT analysis.
  • fromsymbol The fromsymbol object converts a Pure Data symbol message into other message types, such as bangs, floats, or lists.
  • funbuff The funbuff object stores and manages ordered pairs of x/y integers, functioning as a lookup table or a simple function buffer.
  • funnel The funnel object collects data from multiple inlets and outputs it through a single outlet, prepending an inlet number to each message.
  • gate The gate object routes messages from its second inlet to one of its 'n' specified outlets, or to no outlet if set to 0.
  • gate~ The gate~ object routes an input signal from its second inlet to one of its 'n' specified outlets, or to none of them.
  • grab The grab object sends a message to another object and intercepts its output, routing it through grab's own outlets.
  • greaterthaneq~ The greaterthaneq~ (or >=~) object performs a "greater than or equal to" comparison for audio signals.
  • greaterthan~ The greaterthan~ (or >~) object performs a sample-by-sample comparison between two signal inputs.
  • histo The histo object records the frequency of received positive integers, creating a histogram.
  • index~ The index~ object reads values from an array without interpolation, similar to tabread~ but with rounded index values.
  • iter The iter object splits an incoming message (a list of floats or symbols) into its individual elements.
  • join The join object combines messages of any type from its multiple inlets into a single output list.
  • kink~ The kink~ object distorts a phasor~ signal by applying a non-linear bend or "kink" to its phase.
  • lessthaneq~ The lessthaneq~ (or <=~) object performs a "less than or equal to" comparison on incoming audio signals.
  • lessthan~ The lessthan~ (or <~) object performs a "less than" comparison for audio signals.
  • linedrive The linedrive object scales numbers from one range to another using an exponential curve, similar to cyclone/scale.
  • line~ The line~ object generates linear signal ramps or envelopes.
  • listfunnel The listfunnel object receives any list and outputs its elements sequentially, each preceded by its index.
  • loadmess The loadmess object automatically outputs a predefined message when its containing Pure Data patch is loaded or opened.
  • lookup~ The lookup~ object performs waveshaping distortion by mapping input signal values (from -1 to 1) to indices of an array or table, which acts as a transfer function.
  • lores~ The lores~ object implements an inexpensive resonant lowpass filter, designed to shape audio signals by attenuating frequencies above a specified cutoff.
  • match The match object outputs data when its input matches its arguments.
  • matrix~ The matrix~ object functions as a signal routing and mixing matrix, enabling dynamic redirection of audio signals from multiple inlets to various outlets.
  • maximum The maximum object outputs the greatest value among two or more numbers.
  • maximum~ The maximum~ object outputs a signal representing the greater of two input signals, or the greater of an input signal and a numerical argument.
  • mean The mean object calculates a running or moving average of all received numbers.
  • midiflush The midiflush object acts as a "panic button" for raw MIDI data streams, preventing hanging notes.
  • midiformat The midiformat object receives various MIDI messages (note on/off, polyphonic aftertouch, control change, program change, channel aftertouch, pitch bend) through its inlets and formats them into a raw MIDI message output.
  • midiparse The midiparse object receives a raw MIDI data stream and parses it into various MIDI messages, such as note messages, control changes, program changes, and pitch bend.
  • minimum The minimum object outputs the smallest value from its inputs.
  • minimum~ The minimum~ object outputs the smaller of two input signals, or the smaller of an input signal and a numerical argument.
  • minmax~ The minmax~ object continuously tracks the minimum and maximum amplitude values of an incoming audio signal.
  • modulo~ The modulo~ (or %%~) object is a signal remainder operator.
  • mousefilter The mousefilter object controls the flow of messages based on mouse button activity.
  • mousestate The mousestate object reports real-time mouse data, including click status, cursor position (x, y), and movement deltas.
  • mstosamps~ The mstosamps~ object converts a time value in milliseconds into the corresponding number of audio samples, taking the current sample rate into account.
  • mtr The mtr object records and plays back sequences of messages across multiple tracks.
  • next The next object in Pure Data determines if an incoming message belongs to the same "logical event" as the preceding message.
  • notequals~ The notequals~ (or !=~) object performs a "not equal to" comparison between its left signal input and either its right signal input or a creation argument.
  • number~ The number~ object in Pure Data serves as a dual-purpose GUI element, either monitoring an incoming audio signal's value or generating a ramped signal.
  • offer The offer object stores temporary x/y integer pairs.
  • onebang The onebang object gates incoming bangs, allowing the first bang through its left outlet only after a bang has been received in its right inlet.
  • onepole~ onepole~ is a highly efficient one-pole IIR low-pass filter that provides 6dB per octave attenuation.
  • overdrive~ The overdrive~ object simulates analog tube-based soft clipping, applying a non-linear transfer function to an incoming audio signal to create distortion.
  • pak The pak object combines multiple inputs of various types (float, int, symbol) into a single list.
  • past The past object compares an incoming list of numbers against a list of thresholds.
  • peak The peak object tracks and outputs the highest float value it has received.
  • peakamp~ The peakamp~ object reports the absolute peak amplitude of an audio signal since its last output.
  • peek~ The peek~ object provides functionality to read and write individual values to and from arrays in Pure Data.
  • phaseshift~ The phaseshift~ object is a 2nd order allpass filter that alters the phase of an audio signal without changing its gain.
  • phasewrap~ The phasewrap~ object wraps an input signal's value between -π and π.
  • pink~ The pink~ object generates pink noise, characterized by constant power per octave and a -3dB/octave decrease in spectral power.
  • play~ The play~ object provides flexible audio playback from arrays, supporting variable speed (including backwards), looping with optional crossfading, and multi-channel output up to 64 channels.
  • plusequals~ The plusequals~ (or +=~) object is a signal accumulator that continuously sums its input samples, generating a running total.
  • poke~ poke~ writes audio signals or control messages into a specified array at a given index, which can also be controlled by a signal.
  • poltocar The poltocar object converts polar coordinates (amplitude and phase in radians) into cartesian coordinates (real and imaginary parts).
  • poltocar~ The poltocar~ object converts signal values from polar coordinates (amplitude and phase) to Cartesian coordinates (real and imaginary parts).
  • pong The pong object limits input values by folding, wrapping, or clipping them within a specified low-high range.
  • pong~ The pong~ object functions as a signal range limiter, enabling users to fold, wrap, or clip an input signal within a defined low-high range.
  • pow~ The cyclone/pow~ object calculates the power of a base value, raising it to the exponent.
  • prepend The prepend object adds a specified message or argument to the beginning of any incoming message.
  • prob The prob object generates a weighted series of random numbers based on a first-order Markov chain.
  • pv The pv object functions as a private variable, storing and retrieving any message type by name within a patch and its subpatches.
  • rampsmooth~ The rampsmooth~ object linearly smooths an incoming audio signal over a specified number of samples.
  • rand~ The rand~ object generates an interpolated random noise signal, producing values between -1 and 1 at a specified frequency.
  • rdiv rdiv performs division, similar to the [/] object, but with reversed inlet functionality.
  • rdiv~ The rdiv~ object performs signal division, similar to /~, but with its inlets reversed.
  • record~ The record~ object captures incoming audio signals and stores them into one or more Pure Data arrays.
  • reson~ reson~ is a bandpass resonant filter that processes audio signals.
  • rminus The rminus (or !-) object performs subtraction with its inlets reversed compared to the standard [-] object.
  • rminus~ The rminus~ (or !-~) object performs signal subtraction, similar to ~, but with its inlets reversed.
  • round The round object approximates input numbers (floats or lists) to the nearest integer multiple of a specified value.
  • round~ The round~ object quantizes incoming audio signals to an integer multiple of a specified value.
  • sah~ The sah~ object samples an input signal when a trigger signal crosses a specified threshold, then holds that sampled value until the trigger crosses the threshold again.
  • sampstoms~ The sampstoms~ object converts a time value from samples to milliseconds, taking the current sample rate into account.
  • scale The scale object maps an input numerical range to an output numerical range, allowing for inversion and exponential scaling.
  • scale~ scale~ maps an input signal range to an output signal range, allowing for linear, inverted, or exponential scaling.
  • scope~ The scope~ object visualizes audio signals in the style of an oscilloscope.
  • selector~ selector~ is an audio object that selects one of its multiple signal inputs to be passed to its output.
  • seq The seq object plays and records raw MIDI data streams, functioning as a MIDI sequencer.
  • sinh The sinh object calculates the hyperbolic sine of a given floating-point number.
  • sinh~ The sinh~ object calculates the hyperbolic sine of an incoming signal, sample by sample.
  • sinx~ The sinx~ object calculates the sine of an incoming signal.
  • slide~ The slide~ object logarithmically smooths an input audio signal, preventing abrupt changes and clicks.
  • snapshot~ The snapshot~ object converts a signal sample to a float value.
  • speedlim The speedlim object limits the rate at which messages are passed through.
  • spell The spell object converts incoming messages, including digits and characters, into their corresponding UTF-8 (Unicode) integer values.
  • spike~ The spike~ object detects zero to non-zero transitions in an audio signal and outputs the time interval in milliseconds since the last detected event.
  • split The split object routes incoming float numbers to one of two outlets based on whether they fall within a defined minimum and maximum range.
  • spray The spray object distributes incoming values to its multiple outlets.
  • sprintf The sprintf object formats messages using C-style printf syntax, where each '%' format specifier (e.g., %f for float, %s for string) creates a corresponding inlet.
  • substitute The substitute object replaces elements within an incoming message.
  • sustain The sustain object emulates a MIDI sustain pedal, holding noteoff messages while active and releasing them when deactivated.
  • svf~ The svf~ object implements a state-variable filter, simultaneously outputting lowpass, highpass, bandpass, and notch filtered signals.
  • switch The switch object routes messages from one of its multiple data inlets to a single outlet.
  • table The table object stores and edits a number array, which can be graphically manipulated via an editor window or by double-clicking.
  • tanh The tanh object calculates the hyperbolic tangent function of a given number.
  • tanh~ tanh~ calculates the hyperbolic tangent of an input signal.
  • tanx~ tanx~ calculates the tangent of an incoming signal, expecting its input in radians.
  • teeth~ The teeth~ object functions as a comb filter, offering independent control over feedforward and feedback delay times, along with their corresponding gain coefficients.
  • thresh The thresh object collects incoming numbers and lists, combining them into a single output list if they arrive within a specified time interval.
  • thresh~ The thresh~ object acts as a Schmitt trigger, detecting when an input signal crosses specified high and low thresholds.
  • togedge The togedge object detects transitions in numerical input.
  • tosymbol The tosymbol object converts any incoming message, including floats, lists, or other data types, into a single symbol message.
  • train~ The train~ object generates a pulse signal that alternates between 1 and 0, with configurable period, pulse width, and onset phase offset.
  • trapezoid~ trapezoid~ generates a trapezoidal waveform.
  • triangle~ The triangle~ object generates a variable-duty triangular wavetable.
  • trough The trough object tracks a minimum (trough) value.
  • trunc~ trunc~ truncates an incoming audio signal towards zero, effectively retaining only the integer part of each sample.
  • universal The universal object sends messages to all instances of a specified Pure Data object type within the current patch, or optionally into subpatches.
  • unjoin The unjoin object separates an incoming list into multiple sub-lists, each containing a specified number of elements.
  • urn The urn object generates a sequence of unique random integers within a specified range (0 to n-1) without repetition.
  • uzi The uzi object generates a specified number of bangs and a corresponding counter value for each bang, executing its loop as fast as possible.
  • vectral~ The vectral~ object smooths or filters frame-based signal data, such as the output from fft~, primarily for visualization.
  • wave~ The wave~ object reads a wavetable (array) using a phase signal input (0-1), offering seven different interpolation modes including linear, cosine, cubic, spline, and Hermite.
  • xbendin The xbendin object retrieves 14-bit pitch bend messages from raw MIDI input, outputting the pitch bend value (0-16383) and optionally the MIDI channel.
  • xbendin2 The xbendin2 object parses incoming raw MIDI data to extract the Most Significant Byte (MSB) and Least Significant Byte (LSB) of pitch bend messages, which can be combined to form a 14-bit value.
  • xbendout The xbendout object formats and sends 14-bit MIDI pitch bend messages, ranging from 0 to 16383, to a specified MIDI channel.
  • xbendout2 The xbendout2 object formats and sends 14-bit pitch bend messages as two 7-bit values: a Most Significant Byte (MSB) and a Least Significant Byte (LSB).
  • xnotein The xnotein object processes raw MIDI data streams, providing more detailed information than notein.
  • xnoteout The xnoteout object sends MIDI Note On and Note Off messages, uniquely supporting both Note On and Note Off (release) velocities for enhanced control.
  • zerox~ The zerox~ object detects and counts zero crossings in an audio signal.
  • zl The zl object is a versatile Pure Data list processor that performs various operations on incoming lists based on its selected mode.