Skip to content

shadylib

Contributors

People who contribute to this project.

Objects

  • 1-0switch 1-0switch is a wrapper for the operation “1 - argument.” Send it a number to subtract that value from 1..
  • 1-0switch~ 1-0switch~ is a wrapper that computes 1 minus its argument.
  • 1scomp 1scomp gives the one’s complement of a number.
  • ad ad is an attack–decay envelope object based on Miller’s adsr.
  • anypipe anypipe is a pipe for passing arbitrary Pd data types, including symbols and lists.
  • ar ar generates an attack–release envelope based on Miller’s adsr, suitable for shaping a signal’s amplitude.
  • array-map array-map iterates over an array to modify its contents, applying a connected operation to each value, such as subtracting 0.25 or multiplying by 4.
  • array-seq array-seq creates an arithmetic sequence in an array, with controls for its multiplier and vertical offset.
  • array-shuffle array-shuffle shuffles the contents of an array, as demonstrated with the routetable array to create random routing.
  • banger banger outputs loadbang and DSP-state notifications (0 or 1), and its inlet can control DSP by sending messages to pd.
  • bangif bangif tests input against a conditional given as its arguments, such as < 4 or > 4, and outputs a bang indicating whether the condition is met or not.
  • bilexnoise~ bilexnoise~ generates noise with a bilateral exponential distribution.
  • bin2num bin2num takes a list of 0s and 1s and outputs the corresponding number.
  • binlist binlist converts a numeric value into a list of binary digits, providing a bitwise representation of the value.
  • blsasqri~ blsasqri~ is a signal-generating object related to blsqri~, with an additional band-limited output.
  • blsaw~ blsaw~ generates a band-limited sawtooth wave.
  • blsqri~ blsqri~ is the same as blsqr~, except that it also produces a bandlimited output.
  • blsqr~ blsqr~ generates a square or pulse waveform, with inlets for frequency, pulse width, and setting the phase.
  • bpbuzz~ bpbuzz~ is like buzz~, but produces bipolar output and adds pulse-width modulation control.
  • bpmtoms bpmtoms is a convenience object equivalent to expr 60000 / $f1.
  • buzz~ buzz~ is a band-limited impulse generator driven by a fundamental frequency, with another frequency specifying how far its harmonics extend.
  • bytes2float bytes2float converts a list of character-byte values representing a decimal number into a float, allowing forms such as leading zeros, an initial decimal point, and negative numbers.
  • cgmul~ cgmul~ performs complex multiplication on signal inputs using Gauss’s method.
  • circle~ circle~ generates a circle centered at x = 0.5 and y = 0.5.
  • cosinterp~ cosinterp~ performs cosine interpolation.
  • cyclecount cyclecount is a very simple counter intended for counting in cycles up to a top limit.
  • dbgr~ dbgr~ displays a stream of numbers from a signal, serving a purpose similar to snaps~ from jmmmp.
  • dbpole dbpole converts a time in milliseconds into a pole value for a decay from 1 to 0.001 (60 dB).
  • delreadc~ delreadc~ is an exact clone of delread~ that reads from a delay line created by delwritec~, with added support for clearing it.
  • delwritec~ delwritec~ is a clone of delwrite~ that adds a clear option, intended for writing an audio signal into a named delay buffer.
  • dispatchOSC dispatchOSC 9000 uses mrpeach objects such as udpreceive to receive OSC messages on port 9000.
  • dsrand~ dsrand~ is a random-number generator that periodically produces new random values.
  • dyncompand~ dyncompand~ is intended for dynamic compression, apparently applying companding to an input signal.
  • egrains~ egrains~ is a simple granular synthesizer whose argument names the array it reads.
  • expline expline is an exponential ramp generator that slews to a target value over a specified time when given a target–time pair.
  • expline~ expline~ generates an exponential audio ramp for signal-rate use.
  • fmod~ fmod~ provides the fmod operation from math.h for Pd signals.
  • freqshifterd~ freqshifterd~ is a frequency shifter with a phase input.
  • freqshifter~ freqshifter~ performs single-sideband modulation to shift the frequency of an input signal.
  • fsdict fsdict is a dictionary-like object that stores a unique relationship between a float and a symbol, allowing either value to retrieve its associated counterpart.
  • gainc~ gainc~ provides volume control and stereo panning, like outputc~ but without recording or a built-in dac~ connection.
  • grainyback~ grainyback~ is used to piggyback onto an egrains~ object, taking the last three outputs from egrains~ through its three inlets.
  • grainy~ grainy~ performs granular synthesis on a sound file.
  • gsave gsave provides a way to save values for multiple names under a shared global name, as illustrated by messages tagged s1 through s4.
  • hanning~ hanning~ applies a Hanning window over an input range from 0 to 1.
  • highest~ highest~ finds the maximum absolute value of a signal and reports it periodically.
  • inrange inrange tests whether an input number lies within an inclusive range, supporting separate “in range” and “not” outcomes.
  • javid~ javid~ produces a not-quite-sine waveform using a cubic approximation attributed to YouTuber javidx9.
  • linnoise~ linnoise~ creates noise with a linear distribution, though the help patch’s explanation of that distribution is incomplete.
  • linterp~ linterp~ performs linear interpolation.
  • lispatch lispatch takes an anything message and sends it to a Pd receive selected from the message, as illustrated by r this and r that.
  • list-const list-const creates a list by repeating the same item a specified number of times.
  • list-count list-count counts how many times a specified argument or value from its second inlet occurs in a list.
  • list-delim list-delim splits a list according to a specified symbol.
  • list-dripdex list-dripdex behaves like list-drip, while providing the index of each item from its second outlet.
  • list2bytes list2bytes serializes a Pd list into a list of byte values, for example so it can later be reconstructed with bytes2any.
  • lmap lmap provides an interface to Lua tables for storing and indexing associative key-value mappings.
  • log2 log2 calculates the base-2 logarithm of an input value.
  • lolotoa lolotoa manages a Lua-backed ordered list of tables containing Pd anything messages.
  • macrodivide macrodivide is designed to synchronize a stepped sequence at zero by multiplying the number of steps by a subdivision, with alignment based on the last step.
  • makerpath makerpath converts a pathname relative to the root canvas into an absolute path, while leaving already absolute paths unchanged.
  • messtro messtro sequences messages according to a tempo set by two arguments or a tempo message, with its right outlet indicating downbeats.
  • meters~ meters~ is demonstrated receiving a signal from osc~ scaled by *~.
  • metorate metorate uses metro to produce a specified number of outputs at a given tempo.
  • microp microp performs microtonal pitch transfer by taking note values and dividing/scaling their pitch.
  • modf~ modf~ splits an input signal into its integer and fractional parts.
  • modulator~ modulator~ is used for FM (frequency modulation), with its middle inlet serving as the modulation index rather than as a multiplier.
  • moop~ moop~ is a sample looper and successor to loop~, intended for looping a selected range of a buffer with transposition control.
  • mseq mseq is used as a pattern sequencer in a 16-step musical example, with stored values driving note and output processing.
  • msgsave msgsave works with saver to save parameters.
  • mstof mstof converts milliseconds to frequency or vice versa.
  • mstos mstos determines how many samples correspond to a given duration in milliseconds.
  • multatord~ multatord~ multiplies an input signal by a factor and then adds an offset, making it useful for signal scaling and shifting.
  • multitrigger multitrigger outputs a bang after receiving a number of input bangs equal to its creation argument.
  • neadsr~ neadsr~ generates an attack/decay/sustain/release envelope with configurable stage times, sustain level, and curvature; its default attack, decay, and release curves are logarithmic in level, with the exponential portion based on 60 dB.
  • nead~ nead~ is an envelope-style object designed to begin its release stage even while the attack is still in progress.
  • near~ near~ generates an attack–release signal whose attack stage holds until a zero trigger starts the release.
  • noteson noteson keeps track of which notes are currently being played and outputs the active-note list from its left outlet.
  • nrcombf~ nrcombf~ is a non-recirculating comb filter that uses Lagrange interpolation, with arguments for delay time and feedforward gain.
  • operatord~ operatord~ is like operator~, but it accepts a phasor~ signal at its inlet.
  • operator~ operator~ applies multiplication and addition to signals, and can also be configured as a sine-wave oscillator.
  • oscope~ oscope~ is an oscilloscope object for displaying a signal such as the output of osc~.
  • outputc~ outputc~ is like output~, but it also accepts gain values through its right inlet and can record.
  • passif passif conditionally routes incoming data according to a comparison.
  • pds2l pds2l splits an input symbol into a list of character symbols, unlike zexy/s2l, which may output floats.
  • percent percent conditionally sends input to its left outlet according to a percentage supplied at the right inlet, using a pseudorandom decision.
  • perlinterp~ perlinterp~ is a Perlin-noise interpolator that takes a phasor~ signal as its interpolation input.
  • phasafor~ phasafor~ takes a 0-to-1 signal from phasor~ or loop~ and a center value.
  • phasorator~ phasorator~ is described as being like an operator, but using phasor~.
  • pib~ pib~ reports the time, in milliseconds, into the current signal block.
  • pinb~ pinb~ outputs the current sample number within the DSP block.
  • pipebang pipebang delays an incoming bang by the amount specified by its argument, as illustrated by pipebang 500.
  • pitchnoise~ pitchnoise~ generates pitched noise, based on a technique from Computer Music by Dodge and Jerse.
  • pitchshiftr~ pitchshiftr~ is the reader portion of a pitch shifter, reading audio written to a named delwritec~ buffer and applying pitch transposition.
  • pitchshift~ pitchshift~ is a pitch-shifting audio object, demonstrated here processing the output of blsaw~.
  • powclip~ powclip~ is an exponential clipper based on taking the antiderivative.
  • powline powline ramps to new values like line, with the ramp shaped by raising numbers to a specified power; its creation arguments set the initial value, time grain (20 ms by default), and power.
  • powline~ powline~ generates an audio-rate ramp between values, with messages such as target-and-duration pairs specifying the ramp.
  • prepender prepender prepends a specified value or sequence to incoming messages; when no argument is supplied, it defaults to list.
  • pthng~ pthng~ is intended to shift upward through harmonics by multiplying a cosine wave by a multiple Hann-windowed pulse train.
  • rcombf~ rcombf~ is a recirculating comb filter that uses Lagrange interpolation, with arguments for delay time, feedback, and buffer length.
  • realpass~ realpass~ is an all-pass filter whose delay can be greater than 1.
  • rectoratord~ rectoratord~ is like operatord~ but uses a square wave.
  • rectorator~ rectorator~ is like operator~, but designed for a square wave.
  • repeater~ repeater~ buffers an incoming signal and records, plays, or holds it for durations specified in milliseconds, with its right outlet reporting the repeat number.
  • rexpline rexpline is a reverse-exponential ramp generator that slews to a target value over a specified time.
  • rexpline~ rexpline~ generates an exponential ramp as an audio signal.
  • rndmrange rndmrange generates a random value when triggered, with an inlet or argument setting the number of possible values.
  • rootinfo rootinfo reports the path, name, and level of a canvas.
  • rover~ rover~ performs signal division like /~, but with the inlet roles reversed.
  • rpowline~ rpowline~ generates an audio-rate power-shaped ramp, serving as a nonlinear alternative for moving between values over a specified time.
  • sampbufs~ sampbufs~ is a simple stereo wrapper for soundfiler.
  • sampbuf~ sampbuf~ is a simple wrapper for soundfiler, intended to load or manage sample-buffer data.
  • sampphase~ sampphase~ is a phasor whose frequency changes only at phase boundaries, and it also accepts signal input.
  • saver saver globname provides save and load control for state associated with the shared name globname, as demonstrated with stater and sstater objects.
  • saveroute saveroute allows a Pd patch to use both messages and text files for saving state.
  • scaler~ scaler~ scales a signal by multiplying it and then adding an offset.
  • selected selected reports the indices of all objects currently being selected.
  • seqbank seqbank stores sequence data in rows and columns for use with objects such as sequencer, wrapping input to the next row when necessary.
  • shadylook shadylook maps input values between 0 and 1 through a named curve: gauss, cauchy, or rexp.
  • shadylook~ shadylook~ is the signal-rate version of shadylook.
  • shnoise~ shnoise~ generates sampled-and-held noise as a wrapper around phasor~ and dsrand~.
  • show show displays an incoming list in a connected message box, making its value visible.
  • sigenv~ sigenv~ calculates the RMS level of a signal using a low-pass filter.
  • siglinterp~ siglinterp~ is a linearly interpolated signal multiplexer that interpolates across a specified number of signal inlets.
  • smoother~ smoother~ ramps a control signal to an audio signal over a specified amount, serving to smooth control-value changes at audio rate.
  • sndfread~ sndfread~ opens and reads a sound file, outputting stereo audio suitable for connection to dac~.
  • sndfwritem~ sndfwritem~ is a mono sound-file writer that records an incoming mono signal to a specified filename.
  • sndfwrites~ sndfwrites~ is a stereo sound-file writer that takes stereo signals through its first two inlets.
  • sqr sqr squares a control signal.
  • srepeater~ srepeater~ is a simple beat repeater for holding and repeating audio, with an argument such as 4000 shown in the help patch.
  • sstater sstater works with saver to save parameters when only one float needs to be stored.
  • stater stater works with saver to save parameters.
  • stoms stoms converts a number of samples into the equivalent duration in milliseconds.
  • stream-drip stream-drip serializes a recorded stream of timestamped events for playback; each event is documented as beginning with / followed by a time in milliseconds.
  • stream-fromtext stream-fromtext reads the contents of a named text object and outputs them as a stream of lines.
  • stream-map stream-map works like list-map for streams, applying a transformation to stream elements.
  • stream-quant stream-quant quantizes a stream to a timing grid whose multiple can be set by an argument, as shown by stream-quant 500.
  • stream-totext stream-totext writes an incoming message stream into a named text define object, here stream-totext-help.
  • streamdiff The streamdiff object reports how many numbers are being repeated.
  • streamread streamread works with streamwrite to write and read streams of anything.
  • streamread-slow streamread-slow outputs messages stored by streamwrite one at a time for processing or algorithmic use.
  • streamwrite streamwrite records a series of timestamped events into a list for later playback with streamread.
  • streamwrite-slow streamwrite-slow writes streamwrite-formatted messages one at a time, providing a way to process a formatted stream sequentially.
  • subdivide subdivide produces a specified number of subdivision outputs from an incoming bang.
  • svosim~ svosim~ is a signal-generating object whose output is shaped by fundamental frequency, center frequency, duty cycle, and decay-factor controls.
  • switchnramp~ switchnramp~ implements Miller’s switch-and-ramp technique, jumping to a specified value and taking a configurable time to do so.
  • synlets synlets synchronizes two trigger inlets by waiting for a specified number of bangs at each inlet.
  • tabload tabload an_array2 loads data into the named Pd array, serving as the counterpart to tabsave.
  • tabread4hs~ tabread4hs~ is presented as an updated version of nusmuk-audio’s tabread4c~ with an audio-rate capability.
  • tabsave tabsave outputs the contents and size of a named array as a message, allowing the array data to be stored in a message box.
  • tcheb~ tcheb~ is a Chebyshev waveshaper intended to support orders up to 256.
  • temposet temposet represents or configures a tempo setting, as shown by the instance temposet 200 bpm.
  • testar~ testar~ is a simple array-writing tool for viewing and debugging signals.
  • testro testro is a quick metronome intended for debugging.
  • transpose transpose takes an interval in semitones as input and outputs an approximate transposition.
  • transpose~ transpose~ computes 2^(in/12), converting its input into a transposition ratio based on 12 steps per doubling.
  • triangulatord~ triangulatord~ is similar to triangulator~, but takes a phasor~ signal as input and produces output in the range -1 to 1.
  • triangulator~ triangulator~ generates a triangle wave with a range of -1 to 1, serving a role similar to operator~ for triangle-wave synthesis.
  • trinoise~ trinoise~ works like shnoise~ but uses two dsrand sources to create a triangular distribution, producing values concentrated around 0.
  • tseq tseq is a step-sequencing object for working with list-based patterns, as demonstrated by the 16-step binary patterns and timing controls in the help patch.
  • ttempo ttempo lets you tap a tempo and outputs or represents it in milliseconds.
  • txtsave txtsave works with a globally named savetxt store, supporting clear, write saveit.txt, and read saveit.txt messages for managing and persisting text data.
  • udispatch udispatch 3009 creates a UDP receiver on port 3009 and dispatches incoming messages according to their first element.
  • updel updel sends a bang from its outlet after a configurable delay, with milliseconds as the default unit and optional tempo and time-unit creation arguments.
  • upmet upmet is a metronome similar to metro, used to produce ticks at a configurable interval.
  • urandom urandom is an interface to the urandom utility that fetches three bytes.
  • valuer valuer is like receiver, but for values: instances with the same name, such as valuer dog, provide access to the corresponding named value.
  • vdhs~ vdhs~ is a variable-delay object based on vd~ that uses Hermite spline interpolation, making it suitable for effects such as a simple flanger.
  • voisim~ voisim~ implements the VOSIM algorithm for audio synthesis, with controls for fundamental frequency, center frequency, and decay.
  • volpan~ volpan~ appears to be an audio object related to volume and panning, used in a signal chain with osc~, smoother~, gainc~, and dac~.
  • wavepacket~ wavepacket~ is used to produce a wave-packet signal with controls labeled center frequency, fundamental, and bandwidth.
  • wscauchy~ wscauchy~ is a waveshaping object that applies the formula 1 / (1 + a²(x + 1)) to an input signal x, where a is an index.
  • wsexp~ wsexp~ applies exponential waveshaping to an input signal using the formula e^(a(x - 1)), where x is the signal and a is the index.
  • wssincos~ wssincos~ is a signal-processing object derived from the Pd audio examples, intended for sine/cosine-related waveshaping or phase manipulation.