cl mixed
2.1.0Bindings to libmixed, a sound mixing and processing library.
About cl-mixed
This is a bindings library to libmixed, an audio mixing and processing library.
How To
Precompiled versions of the underlying library are included in this for most common system combinations. If you want to build it manually however, refer to the libmixed repository.
Examples on how to use cl-mixed can be found in the examples directory. This also includes an example on how to create a custom audio processing element in pure lisp.
cl-mixed also ships a variety of extension systems providing segments that can be used for playing back audio on various sound systems, or reading audio from various formats.
Fully implemented extensions:
Alsa
CoreAudio
Flac
Mpg123
Ogg/vorbis
Openmpt
Oss
Out123
PulseAudio
Wasapi
Wave
Basic Concepts
This library is a wrapper around libmixed. As such, most of the functionality is inherent to the underlying library. However, for convenience, we'll explain the basic concepts here.
C-Objects
Since we're dealing with a foreign library, we need an interface to manage the shared memory. This is done via c-object
, a base class for everything in cl-mixed.
When an instance is created, allocate-handle
is called to manage the allocation and initialisation of the foreign data. The resulting pointer is retained in the handle
slot, and registered in a reverse table that allows retrieving the Lisp object from the handle pointer.
Once the object is no longer needed, free
must be called on it to clean up the foreign memory. It is safe to call free
repeatedly. Once freed, the object should not be used for anything else anymore.
For dynamic-extent use of c-objects, with-objects
may be used, which ensures the cleanup.
Buffer
A container for raw audio samples. Each buffer
represents one "channel" of audio signals, encoded as 32-bit floating point numbers in the range [-1,+1]. A buffer has a maximum number of samples it can store, and keeps track of read and write heads.
Internally, buffers are implemented as lock-free bipartite buffers, meaning that whenever you request a write or read, you will always get a consecutive region of memory, and you can write and read from it in parallel. Note however, that only one simultaneous reader and writer are supported.
To start a transaction use request-read
or request-write
, which will give you a start and end index to use. Once your transaction is completed, use finish-read
or finish-write
and pass the number of samples that were actually consumed. If you want to abort a transaction, you must still call the finish function, but should simply pass 0
for the number of processed elements.
You can also query the available space with available-read
and available-write
, and perform transaction more conveniently with with-buffer-tx
, or a sample-wise transfer from one buffer to another with with-buffer-transfer
.
Buffers can be resized simply using (setf size)
, and cleared using clear
.
Pack
Note that there's two types of buffers in libmixed, the regular buffer
as explained above that carries samples, and pack
s, which carry encoded audio frames in a byte buffer. Both use the same interface to read/write, but beware that when dealing with a pack
you must appropriately encode and decode the samples from the packed byte frames.
In addition to the bip-buffer content, a pack
also holds data about the representation of the audio data, such as the sample encoding
, channels
, framesize
, and samplerate
. You can conveniently transfer pack data from/to buffers using transfer
.
Also see the unpacker
and packer
segments, which efficiently handle the encoding and decoding operations, including resampling.
Segment
A segment
is a representation of some audio processing unit. A segment may take samples from a number of input buffers, and may put samples into a number of output buffers. Segments represent the base part of libmixed and have a standardised interface to deal with their buffers, parameters, and metadata.
You can retrieve information about the available fields, outputs, inputs, etc. using info
. Connected input
s and output
s can also be fetched, as long as they were connected using the appropriate Lisp functions ((setf input)
, (setf output)
). Note: libmixed does not offer a way for us to get notified when foreign code changes fields, and so cl-mixed will miss buffer connections when they happen outside of lisp-land.
Fields in general can be accessed with input-field
, output-field
, and field
. Please consult the respective field descriptions in the info
to determine when it is safe to change these fields, and which values are permitted.
Once a segment has been properly connected, it can be start
ed to ready it for use. After that, mix
can be called repeatedly to process audio samples. Once the segment is no longer used, or when specific parameters need to be reconfigured, end
should be called to park the segment.
Reflection
Libmixed offers a full reflection API, including the listing of supported segments, which may also be contributed by outside libraries not directly known to cl-mixed. You can list all available segment types using list-segments
and construct an instance using make-generic-segment
.
Mixer
A mixer is a special kind of segment that takes an arbitrary number of input buffers and mixes them together in particular ways to produce a fixed set of output buffers. libmixed offers three types of mixers out of the box: basic-mixer
, plane-mixer
, and space-mixer
.
Source
A source is a special kind of segment that does not have any output or input buffers, only a connected pack
that it writes raw audio frames into. Sources also offer special methods to handle the audio input stream, such as byte-position
, frame-position
, frame-count
, channel-order
, and seek
.
All audio sources that produce samples from an audio file or similar will be a subclass of source
.
Drain
Analogous to sources, a drain
does not have any input or output buffers, only a pack
that it reads raw audio frames from. Drains are used to output audio data to a file or playback device. They similarly support the channel-order
hint.
A special subclass of drain, device-drain
further allows discovery of available playback devices using list-devices
and the selection of a specific device either through the :device
initarg, or using the device
accessor. The format of the device argument is typically a string, but is dependent on the type of drain used.
Virtual
Thanks to libmixed's standardised segment structure, we can also create segments from Lisp that integrate with any other part that consumes the libmixed API. To do so, create a subclass of virtual
and implement methods as needed on start
, mix
, end
, etc.
This is especially handy for experimentation with audio data, as we can quickly update and change processing functions. All of cl-mixed's extensions are implemented in part through a virtual
segment.
See Also
System Information
Definition Index
-
ORG.SHIRAKUMO.FRAF.MIXED
No documentation provided.-
EXTERNAL SPECIAL-VARIABLE *DEFAULT-CHANNEL-ORDER*
No documentation provided. -
EXTERNAL SPECIAL-VARIABLE *DEFAULT-SAMPLERATE*
This variable holds the default sample rate used throughout. This is set to 44100 for 44.1 kHz, which is the standard sample rate for CD audio and should thus be of sufficient quality for most purposes.
-
EXTERNAL CLASS BASIC-MIXER
This segment additively mixes an arbitrary number of inputs to a single output. Linear mixing means that all the inputs are summed up and the resulting number is divided by the number of inputs. This is equivalent to having all the inputs play as "individual speakers" in real life. See MIXER See MAKE-BASIC-MIXER
-
EXTERNAL CLASS BIQUAD-FILTER
A biquad filter for simple frequency filtering operations. See SEGMENT See MAKE-BIQUAD-FILTER See FREQUENCY See FILTER See SAMPLERATE See BYPASS See Q See GAIN
-
EXTERNAL CLASS BUFFER
Buffers encapsulate raw audio data between segments. A buffer stores a C-array of floats. This array represents a sample buffer for a single audio channel. The data is not encoded in any way and consists solely of single-floats. Upon construction the foreign array of floats is automatically allocated based on the given size. See C-OBJECT See DATA See SIZE See CLEAR
-
EXTERNAL CLASS BUNDLE
No documentation provided. -
EXTERNAL CLASS C-OBJECT
Superclass for all objects that track foreign resources. If no handle is given to the object upon creation, the proper corresponding foreign data is automatically allocated. The pointer to this data is then associated with the instance to allow resolving the pointer to the original Lisp object. Finalisation of the foreign data upon garbage collection of the Lisp object is also handled. The actual foreign allocation and cleanup of the data is handled by ALLOCATE-HANDLE and FREE-HANDLE respectively. The subclass in question is responsible for implementing appropriate methods for them. See HANDLE See ALLOCATE-HANDLE See FREE-HANDLE See FREE See POINTER->OBJECT
-
EXTERNAL CLASS CHAIN
No documentation provided. -
EXTERNAL CLASS CHANNEL-CONVERT
No documentation provided. -
EXTERNAL CLASS DELAY
A simple delay segment. This just delays the input to the output by a given number of seconds. Note that it will require an internal buffer to hold the samples for the required length of time, which might become expensive for very long durations. See SEGMENT See MAKE-DELAY See DURATION See SAMPLERATE See BYPASS
-
EXTERNAL CLASS DEVICE-DRAIN
No documentation provided. -
EXTERNAL CLASS DISTRIBUTOR
No documentation provided. -
EXTERNAL CLASS DRAIN
No documentation provided. -
EXTERNAL CLASS FADER
A volume fading segment. This allows you to smoothly fade in and out an input. The from and to are given in relative volume, meaning in the range of [0.0, infinity[. The duration is given in seconds. The fade type must be one of the following: :LINEAR :CUBIC-IN :CUBIC-OUT :CUBIC-IN-OUT, each referring to the respective easing function. The time is measured from the last call to START out. See SEGMENT See MAKE-FADER See FROM See TO See DURATION See FADE-TYPE
-
EXTERNAL CLASS GATE
No documentation provided. -
EXTERNAL CLASS GENERATOR
A primitive tone generator segment. This segment can generate sine, square, sawtooth, and triangle waves at a requested frequency. You can even change the frequency and type on the fly. See SEGMENT See *DEFAULT-SAMPLERATE* See WAVE-TYPE See FREQUENCY
-
EXTERNAL CLASS LADSPA
This segment invokes a LADSPA plugin. LADSPA (Linux Audio Developers' Simple Plugin API) is a standard interface for audio effects. Such effects are contained in shared library files and can be loaded in and used with libmixed straight up. Please refer to the plugin's documentation for necessary configuration values, and to the libmixed documentation for how to set them. See SEGMENT See *DEFAULT-SAMPLERATE* See MAKE-LADSPA
-
EXTERNAL CLASS MIXER
-
EXTERNAL CLASS NOISE
A noise generator segment. This segment produces a single channel of noise, either white, pink, or brownian noise. See SEGMENT See MAKE-NOISE See VOLUME See NOISE-TYPE
-
EXTERNAL CLASS PACK
A pack represents an interface to an outside sound source or drain. The object holds all the necessary information to describe the audio data present in a raw byte buffer. This includes how many channels there are, how the samples are laid out and how the samples are formatted in memory. It also includes the samplerate of the channel's source so that it can be converted if necessary. Note that a pack only supports interleaved channel data. If the data is sequential in memory, it must be handled by multiple packs. See MAKE-PACK See SOURCE See DRAIN See C-OBJECT See DATA See SIZE See ENCODING See CHANNELS See SAMPLERATE See FRAMESIZE See TRANSFER
-
EXTERNAL CLASS PACKER
This segment converts data from individual sample buffers to data for packed-audio. This is mostly useful at the edges to convert to something like an audio file library or audio playback system from the internal buffers as used by Mixed. The samplerate argument defines the sample rate in the input buffers. If it diverges from the sample rate in the packed-audio, resampling occurs to account for this. See mixed.h See PACK See SEGMENT See MAKE-PACKER See *DEFAULT-SAMPLERATE*
-
EXTERNAL CLASS PITCH
A pitch shifting segment. This segment allows you to change the pitch of the incoming audio. See MAKE-PITCH See PITCH See SAMPLERATE See BYPASS
-
EXTERNAL CLASS PLANE-MIXER
No documentation provided. -
EXTERNAL CLASS QUANTIZE
No documentation provided. -
EXTERNAL CLASS QUEUE
No documentation provided. -
EXTERNAL CLASS REPEAT
This segment repeats a recorded bit of its input sequence. The segment is first in record mode when created. Once you have the bit you want to repeat back, you can switch the repeat-mode to :PLAY. It will then ignore the input and instead continuously output the recorded input bit. See MAKE-REPEAT See DURATION See REPEAT-MODE See SAMPLERATE See BYPASS
-
EXTERNAL CLASS SEGMENT
Superclass for all mixing pipeline segments. A segment is responsible for producing, consuming, combining, splitting, or just in general somehow processing audio data within a pipeline. A segment is connected to several buffers at its inputs and outputs. Each input, output, and the segment itself may have a number of fields that can be accessed to change the properties of the segment's behaviour. Some of these properties may not be changed in real time and instead might require a ending the mixing first. See C-OBJECT See INPUTS See OUTPUTS See INFO See START See MIX See END See INPUT-FIELD See OUTPUT-FIELD See FIELD See INPUT See OUTPUT See CONNECT
-
EXTERNAL CLASS SOURCE
No documentation provided. -
EXTERNAL CLASS SPACE-MIXER
A segment to simulate audio effects in 3D space. Each input represents an individual source in space. Each such source can have a location and a velocity, both of which are vectors of three elements. If the velocity is non-zero, a doppler effect is applied to the source. The segment itself also has a :LOCATION and :VELOCITY, representing the listener's own properties. It has some additional fields to change the properties of the 3D space. In total, the following fields are available: :LOCATION --- The location of the input or listener. Value should be a list of three floats. :VELOCITY --- The velocity of the input or listener. Value should be a list of three floats. :DIRECTION --- The direction the listener is facing. Value should be a list of three floats. Default is (0 0 1) :UP --- The vector pointing "up" in space. Value should be a list of three floats. Default is (0 1 0) :SOUNDSPEED --- The speed of sound in the medium. Default is 34330, meaning "1" is measured as 1cm. :DOPPLER-FACTOR --- This can be used to over- or understate the effect of the doppler. Default is 1.0. :MIN-DISTANCE --- The minimal distance under which the source has reached max volume. :MAX-DISTANCE --- The maximal distance over which the source is completely inaudible. :ROLLOFF --- The rolloff factor describing the curvature of the attenuation function. :ATTENUATION --- The attenuation function describing how volume changes over distance. Should be one of :NONE :LINEAR :INVERSE :EXPONENTIAL. See MIXER See MAKE-SPACE-MIXER See LOCATION See INPUT-LOCATION See VELOCITY See INPUT-VELOCITY See DIRECTION See UP See SOUNDSPEED See DOPPLER-FACTOR See MIN-DISTANCE See MAX-DISTANCE See ROLLOFF See ATTENUATION See *DEFAULT-SAMPLERATE*
-
EXTERNAL CLASS SPATIAL-REVERB
No documentation provided. -
EXTERNAL CLASS SPEED-CHANGE
No documentation provided. -
EXTERNAL CLASS UNPACKER
This segment converts data from packed-audio to individual sample buffers. This is mostly useful at the edges to convert from something like an audio file library to the format needed by Mixed. The samplerate argument defines the sample rate in the output buffers. If it diverges from the sample rate in the packed-audio, resampling occurs to account for this. See SEGMENT See MAKE-UNPACKER See *DEFAULT-SAMPLERATE*
-
EXTERNAL CLASS VIRTUAL
Superclass for segments implemented in Lisp. The segment should implement the following methods according to its need: INFO START MIX END INPUT-FIELD (SETF INPUT-FIELD) OUTPUT-FIELD (SETF OUTPUT-FIELD) FIELD Default methods for INPUT/OUTPUT-FIELD to handle the recording of the input/output buffers already exist. Every other method by default does nothing. You should in the very least implement a method for MIX on your subclass. See SEGMENT See INFO See START See MIX See END See INPUT-FIELD See OUTPUT-FIELD See FIELD See INPUTS See OUTPUTS
-
EXTERNAL CLASS VOID
No documentation provided. -
EXTERNAL CLASS VOLUME-CONTROL
A volume control segment that can change the volume and pan. This is a stereo segment, and as such requires two input and output buffers each. You may use the location keywords :LEFT and :RIGHT to address them. The pan goes from -1.0 for left to 1.0 for right. The volume goes from 0.0 upwards. Values below zero result in an error, and values above 1.0 will likely lead to clipping and thus audio distortions. See SEGMENT See MAKE-VOLUME-CONTROL See VOLUME See PAN
-
EXTERNAL CLASS ZERO
No documentation provided. -
EXTERNAL CONDITION MIXED-ERROR
Condition class for errors related to the mixed library. See ERROR-CODE
-
EXTERNAL FUNCTION AVAILABLE-READ
- BUFFER
Returns the number of elements available for reading in the buffer. See BIP-BUFFER See BUFFER See PACK
-
EXTERNAL FUNCTION AVAILABLE-WRITE
- BUFFER
Returns the number of elements that can be written to the buffer. See BIP-BUFFER See BUFFER See PACK
-
EXTERNAL FUNCTION DATA-PTR
- DATA
- &OPTIONAL
- START
Returns a foreign pointer to the underlying storage of the data array. See BIP-BUFFER See BUFFER See PACK
-
EXTERNAL FUNCTION FINISH-READ
- BUFFER
- SIZE
Finishes a reading transaction. You must not call this function without a matching REQUEST-READ call first. The SIZE should be the number of read elements, which may be less than the number obtained from REQUEST-READ, but not more. See REQUEST-READ See BIP-BUFFER See BUFFER See PACK
-
EXTERNAL FUNCTION FINISH-WRITE
- BUFFER
- SIZE
Finishes a writing transaction. You must not call this function without a matching REQUEST-WRITE call first. The SIZE should be the number of written elements, which may be less than the number obtained from REQUEST-WRITE, but not more. See REQUEST-WRITE See BIP-BUFFER See BUFFER See PACK
-
EXTERNAL FUNCTION GUESS-CHANNEL-ORDER-FROM-COUNT
- CHANNELS
No documentation provided. -
EXTERNAL FUNCTION MAKE-BASIC-MIXER
- &OPTIONAL
- CHANNELS
Create a new basic mixer, adding the given buffers as inputs. See BASIC-MIXER See ADD See WITHDRAW
-
EXTERNAL FUNCTION MAKE-BIQUAD-FILTER
- &REST
- ARGS
- &KEY
- PASS
- CUTOFF
- SAMPLERATE
Create a new frequency pass segment. PASS can be either :high or :low, which will cause high and low frequencies to pass through the filter respectively. See BIQUAD-FILTER
-
EXTERNAL FUNCTION MAKE-BUFFER
- SIZE
Create a new buffer. You may pass either an integer denoting the length of the buffer in samples, or a vector of single-floats denoting the buffers' initial contents. See BUFFER
-
EXTERNAL FUNCTION MAKE-BUNDLE
- CHANNELS
- &OPTIONAL
- CLASS
- &REST
- INITARGS
No documentation provided. -
EXTERNAL FUNCTION MAKE-CHAIN
- &REST
- SEGMENTS
No documentation provided. -
EXTERNAL FUNCTION MAKE-CHANNEL-CONVERT
- &REST
- ARGS
- &KEY
- IN
- OUT
- SAMPLERATE
No documentation provided. -
EXTERNAL FUNCTION MAKE-DELAY
- &REST
- ARGS
- &KEY
- TIME
- SAMPLERATE
Create a new delay segment. See DELAY
-
EXTERNAL FUNCTION MAKE-DISTRIBUTOR
- &REST
- ARGS
- &KEY
No documentation provided. -
EXTERNAL FUNCTION MAKE-FADER
- &REST
- ARGS
- &KEY
- FROM
- TO
- TIME
- TYPE
- SAMPLERATE
Create a new volume fader segment. See FADER
-
EXTERNAL FUNCTION MAKE-GATE
- &REST
- ARGS
- &KEY
- SAMPLERATE
No documentation provided. -
EXTERNAL FUNCTION MAKE-GENERATOR
- &REST
- ARGS
- &KEY
- TYPE
- FREQUENCY
- SAMPLERATE
Create a new tone generator. See GENERATOR
-
EXTERNAL FUNCTION MAKE-LADSPA
- &REST
- ARGS
- &KEY
- FILE
- INDEX
- SAMPLERATE
- &ALLOW-OTHER-KEYS
Create a new LADSPA segment. The file must point to a valid shared library and the index should designate the requested plugin with the library. Any additional keys are used to set the corresponding fields on the segments, allowing you to directly configure the LADSPA plugin in the same call. See LADSPA
-
EXTERNAL FUNCTION MAKE-NOISE
- &REST
- ARGS
- &KEY
- TYPE
Create a new noise segment. The type can be one of :WHITE, :PINK, :BROWN. See NOISE
-
EXTERNAL FUNCTION MAKE-PACK
- &KEY
- ENCODING
- CHANNELS
- SAMPLERATE
- FRAMES
Create a new pack object. See PACK
-
EXTERNAL FUNCTION MAKE-PACKER
- &KEY
- PACK
- ENCODING
- CHANNELS
- SAMPLERATE
- FRAMES
- TARGET-SAMPLERATE
-
EXTERNAL FUNCTION MAKE-PITCH
- &REST
- ARGS
- &KEY
- PITCH
- SAMPLERATE
Create a new pitch shifting segment. See PITCH
-
EXTERNAL FUNCTION MAKE-PLANE-MIXER
- &REST
- ARGS
- &KEY
- SAMPLERATE
- SOUNDSPEED
- DOPPLER-FACTOR
- MIN-DISTANCE
- MAX-DISTANCE
- ROLLOFF
- ATTENUATION
No documentation provided. -
EXTERNAL FUNCTION MAKE-QUANTIZE
- &REST
- ARGS
- &KEY
- STEPS
No documentation provided. -
EXTERNAL FUNCTION MAKE-QUEUE
- &REST
- ARGS
No documentation provided. -
EXTERNAL FUNCTION MAKE-REPEAT
- &REST
- ARGS
- &KEY
- TIME
- SAMPLERATE
Create a new repeat segment. The time designates the size of the internal buffer that it can repeat to the output. See REPEAT
-
EXTERNAL FUNCTION MAKE-SPACE-MIXER
- &REST
- ARGS
- &KEY
- SAMPLERATE
- UP
- SOUNDSPEED
- DOPPLER-FACTOR
- MIN-DISTANCE
- MAX-DISTANCE
- ROLLOFF
- ATTENUATION
Create a new space-mixer segment for 3D audio processing. See SPACE-MIXER
-
EXTERNAL FUNCTION MAKE-SPATIAL-REVERB
- &KEY
- SAMPLERATE
- DISTANCE-DELAY
- MAX-DISTANCE
No documentation provided. -
EXTERNAL FUNCTION MAKE-SPEED-CHANGE
- &REST
- ARGS
- &KEY
- SPEED-FACTOR
No documentation provided. -
EXTERNAL FUNCTION MAKE-UNPACKER
- &KEY
- PACK
- ENCODING
- CHANNELS
- SAMPLERATE
- FRAMES
- SOURCE-SAMPLERATE
-
EXTERNAL FUNCTION MAKE-VOID
- &REST
- ARGS
- &KEY
No documentation provided. -
EXTERNAL FUNCTION MAKE-VOLUME-CONTROL
- &REST
- ARGS
- &KEY
- VOLUME
- PAN
Create a new volume control segment. See VOLUME-CONTROL
-
EXTERNAL FUNCTION MAKE-ZERO
- &REST
- ARGS
- &KEY
No documentation provided. -
EXTERNAL FUNCTION POINTER->OBJECT
- POINTER
Accessor to the object associated with the given foreign pointer. See *C-OBJECT-TABLE*
-
EXTERNAL FUNCTION (SETF POINTER->OBJECT)
- OBJECT
- POINTER
No documentation provided. -
EXTERNAL FUNCTION REQUEST-READ
- BUFFER
- SIZE
Prepares a reading operation on the buffer. Returns two values: START -- The number of elements after which the read may begin. SIZE -- The number of elements that may be read. After calling this, you **must** call FINISH-READ before calling REQUEST-WRITE again. See FINISH-READ See BIP-BUFFER See BUFFER See PACK
-
EXTERNAL FUNCTION REQUEST-WRITE
- BUFFER
- SIZE
Prepares a writing operation on the buffer. Returns two values: START -- The number of elements after which the write may begin. SIZE -- The number of elements that may be written. After calling this, you **must** call FINISH-WRITE before calling REQUEST-WRITE again. See FINISH-WRITE See BIP-BUFFER See BUFFER See PACK
-
EXTERNAL FUNCTION SAMPLESIZE
- TYPE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ADD
- NEW
- SEGMENT
Add the object to the given collection. For segment-sequences this means adding a segment to the sequence. For mixers this means adding another input buffer. See SEGMENT-SEQUENCE See MIXER
-
EXTERNAL GENERIC-FUNCTION ADD-SPATIAL-PROBE
- SEGMENT
- ANGLE
- LENGTH
- ABSORPTION-RATE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ATTACK
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF ATTACK)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ATTENUATION
- PLANE
Accessor to the attenuation function used to describe the distance volume falloff. The value should be one of :NONE :LINEAR :INVERSE :EXPONENTIAL The value may also be a pointer to a C function of the following signature: float attenuation(float min, float max, float dist, float roll); See mixed.h See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF ATTENUATION)
- VALUE
- PLANE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BYPASS
- SEGMENT1
Accessor to whether the segment is bypassed or not. A bypassed segment does not perform any operations when mixed. The exact effects of this varies per segment, but usually for a segment that transforms its inputs somehow this will mean that it just copies the input to the output verbatim. Note that not all segments support bypassing. Check the :FIELDS value in the field's info plist. See SEGMENT See INFO
-
EXTERNAL GENERIC-FUNCTION (SETF BYPASS)
- VALUE29
- SEGMENT30
No documentation provided. -
EXTERNAL GENERIC-FUNCTION BYTE-POSITION
- SOURCE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF BYTE-POSITION)
- POSITION
- SOURCE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CHANNEL-ORDER
- DRAIN
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CHANNELS
- PACK
Accessor to the number of channels encoded in the data buffer in the object. See PACK
-
EXTERNAL GENERIC-FUNCTION (SETF CHANNELS)
- VALUE0
- PACK
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CLEAR
- BUFFER
Clears the buffer to fill its data array with just zeroes. See BUFFER
-
EXTERNAL GENERIC-FUNCTION CLOSE-THRESHOLD
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF CLOSE-THRESHOLD)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION CONNECT
- SOURCE
- SOURCE-LOCATION
- DRAIN
- DRAIN-LOCATION
- &OPTIONAL
- BUFFER
-
EXTERNAL GENERIC-FUNCTION CURRENT-SEGMENT
- SEGMENT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DATA
- OBJECT
-
EXTERNAL GENERIC-FUNCTION (SETF DATA)
- VALUE0
- PACKER
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DEVICE
- DEVICE-DRAIN
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DEVICE)
- DEVICE
- DEVICE-DRAIN
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DIRECTION
- BUNDLE
Accessor for the direction the listener is facing in space. To set a vector, the value should be a list or a vector of three floats. When reading, the returned value is always a vector of three floats. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF DIRECTION)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DISTANCE-DELAY
- SEGMENT1
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DISTANCE-DELAY)
- VALUE29
- SEGMENT30
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DONE-P
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF DONE-P)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DOPPLER-FACTOR
- BUNDLE
Accessor to the over-/under-statement factor of the doppler effect. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF DOPPLER-FACTOR)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION DURATION
- BUNDLE
-
EXTERNAL GENERIC-FUNCTION (SETF DURATION)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ENCODING
- PACK
Accessor to the sample encoding of the raw data buffer in the object. The encoding has to be one of the following: :INT8 :UINT8 :INT16 :UINT16 :INT24 :UINT24 :INT32 :UINT32 :FLOAT :DOUBLE See PACK
-
EXTERNAL GENERIC-FUNCTION (SETF ENCODING)
- VALUE0
- PACK
No documentation provided. -
EXTERNAL GENERIC-FUNCTION END
- SEGMENT
End the mixing process. This method should be called as close as possible after all desired calls to MIX are done. Calling MIX after END is called is an error. Some segments may require END to be called before their fields can be set freely. Thus mixing might need to be 'paused' to change settings. See SEGMENT-SEQUENCE See SEGMENT See START See MIX
-
EXTERNAL GENERIC-FUNCTION ERROR-CODE
- CONDITION
Accessor for the error code contained in the condition instance. See MIXED:ERROR See MIXED:ERROR-STRING
-
EXTERNAL GENERIC-FUNCTION (SETF ERROR-CODE)
- NEW-VALUE
- CONDITION
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FADE-TYPE
- BUNDLE
Accessor to the type of easing function used for the fade. Must be one of :LINEAR :CUBIC-IN :CUBIC-OUT :CUBIC-IN-OUT See FADER
-
EXTERNAL GENERIC-FUNCTION (SETF FADE-TYPE)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FIELD
- FIELD
- SEGMENT1
Access the field of the segment. Which fields are supported depends on the segment in question. Some fields may only be read and not written to or vice-versa. See SEGMENT
-
EXTERNAL GENERIC-FUNCTION (SETF FIELD)
- VALUE
- FIELD
- SEGMENT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FILTER
- SEGMENT1
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF FILTER)
- VALUE29
- SEGMENT30
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FRAME-COUNT
- SOURCE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FRAME-POSITION
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF FRAME-POSITION)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FRAMESIZE
- BUFFER
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FREE
- OBJECT
Free the foreign data associated with this object. This makes sure that the data is properly cleaned up and that the object can't accidentally be double-freed or accessed in any way after the free. See C-OBJECT
-
EXTERNAL GENERIC-FUNCTION FREQUENCY
- SEGMENT1
Accessor to the frequency of the wave. Must be in the range [0.0, samplerate]. See GENERATOR
-
EXTERNAL GENERIC-FUNCTION (SETF FREQUENCY)
- VALUE29
- SEGMENT30
No documentation provided. -
EXTERNAL GENERIC-FUNCTION FROM
- BUNDLE
Accessor to the starting volume of the fading segment. Must be in the range of [0.0, infinity[. See FADER
-
EXTERNAL GENERIC-FUNCTION (SETF FROM)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION GAIN
- SEGMENT1
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF GAIN)
- VALUE29
- SEGMENT30
No documentation provided. -
EXTERNAL GENERIC-FUNCTION HANDLE
- THING
Accessor to the pointer to the foreign data that this object tracks. See CFFI:FOREIGN-POINTER See C-OBJECT
-
EXTERNAL GENERIC-FUNCTION (SETF HANDLE)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION HOLD
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF HOLD)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION IN-COUNT
- SEGMENT1
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF IN-COUNT)
- VALUE29
- SEGMENT30
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INFO
- SEGMENT
Fetch metadata information about the segment. Returns a plist with the following entries: :NAME --- A string denoting the name of the type of segment this is. :DESCRIPTION --- A string denoting a human-readable description of the segment. :FLAGS --- A list of flags for the segment. Should be one of: :INPLACE --- Output and input buffers may be identical as processing is in-place. :MODIFIES-INPUT --- The data in the input buffer is modified. :MIN-INPUTS --- The minimal number of inputs that needs to be connected to this segment. :MAX-INPUTS --- The maximal number of inputs that may be connected to this segment. :OUTPUTS --- The number of outputs that this segment provides. :FIELDS --- A list of plists describing the possible flags. Each plist has the following entries: :FIELD --- The keyword or integer denoting the field. :DESCRIPTION --- A string for a human-readable description of what the field does. :FLAGS --- A list of keywords describing the applicability of the field. Must be one of: :IN --- This field is for inputs. :OUT --- This field is for outputs. :SEGMENT --- This field is for the segment. :SET --- This field may be written to. :GET --- This field may be read. Note that this value is cached after the first retrieval. You are thus not allowed to modify the return value. See SEGMENT
-
EXTERNAL GENERIC-FUNCTION INPUT
- LOCATION
- SEGMENT
Accessor to the input buffer at the specified location of the segment. See INPUT-FIELD See SEGMENT
-
EXTERNAL GENERIC-FUNCTION (SETF INPUT)
- BUFFER
- LOCATION
- SEGMENT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INPUT-FIELD
- FIELD
- LOCATION
- SEGMENT
-
EXTERNAL GENERIC-FUNCTION (SETF INPUT-FIELD)
- VALUE
- FIELD
- LOCATION
- SEGMENT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INPUT-LOCATION
- LOCATION2
- SEGMENT3
Accessor for the location of the source in space. To set a vector, the value should be a list or a vector of three floats. When reading, the returned value is always a vector of three floats. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF INPUT-LOCATION)
- VALUE1
- LOCATION2
- SEGMENT3
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INPUT-MAX-DISTANCE
- LOCATION2
- SEGMENT3
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF INPUT-MAX-DISTANCE)
- VALUE1
- LOCATION2
- SEGMENT3
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INPUT-MIN-DISTANCE
- LOCATION2
- SEGMENT3
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF INPUT-MIN-DISTANCE)
- VALUE1
- LOCATION2
- SEGMENT3
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INPUT-ROLLOFF
- LOCATION2
- SEGMENT3
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF INPUT-ROLLOFF)
- VALUE1
- LOCATION2
- SEGMENT3
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INPUT-VELOCITY
- LOCATION2
- SEGMENT3
Accessor for the velocity of the source in space. To set a vector, the value should be a list or a vector of three floats. When reading, the returned value is always a vector of three floats. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF INPUT-VELOCITY)
- VALUE1
- LOCATION2
- SEGMENT3
No documentation provided. -
EXTERNAL GENERIC-FUNCTION INPUTS
- OBJECT
Accessor to the vector of input buffers connected to the segment. This vector will become out of date if the segment's buffers are added or removed from the C side directly, or directly through this vector. Thus you should never modify this directly and instead always make sure to go through INPUT. See SEGMENT See INPUT
-
EXTERNAL GENERIC-FUNCTION LIST-DEVICES
- DEVICE-DRAIN
No documentation provided. -
EXTERNAL GENERIC-FUNCTION LOCATION
- BUNDLE
Accessor for the location of the listener in space. To set a vector, the value should be a list or a vector of three floats. When reading, the returned value is always a vector of three floats. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF LOCATION)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MATCH-CHANNEL-ORDER
- SEGMENT
- NEW-ORDER
- &KEY
- OLD-ORDER
- SIDE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MAX-DISTANCE
- BUNDLE
Accessor to the maximal distance above which the source is inaudible. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF MAX-DISTANCE)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MIN-DISTANCE
- BUNDLE
Accessor to the minimal distance below which the source is at max volume. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF MIN-DISTANCE)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION MIX
- SEGMENT
Perform the actual mixing. This processes the given number of samples through the pipeline. It is your job to make sure that sources provide enough fresh samples and drains will consume enough samples. Calling MIX with more samples specified than any one buffer connected to the segments in the sequence can hold is an error and may crash your system. No checks for this problem are done. Calling MIX before START has been called or after END has been called is an error and may result in crashes. No checks for this problem are done. If you want to ensure that the sequence is complete and able to process the requested number of samples, you should call CHECK-COMPLETE after running START. When adding methods to MIX for virtual segments, you should make sure to return true, unless your segment has somehow ended and exhausted the samples it wants to process, in which case you should return NIL. See SEGMENT-SEQUENCE See SEGMENT See START See END
-
EXTERNAL GENERIC-FUNCTION NOISE-TYPE
- BUNDLE
Accessor to the type of noise being generated. The value must be one of :WHITE, :PINK, :BROWN. See NOISE
-
EXTERNAL GENERIC-FUNCTION (SETF NOISE-TYPE)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION OPEN-THRESHOLD
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF OPEN-THRESHOLD)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION OUT-COUNT
- SEGMENT1
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF OUT-COUNT)
- VALUE29
- SEGMENT30
No documentation provided. -
EXTERNAL GENERIC-FUNCTION OUTPUT
- LOCATION
- SEGMENT
Accessor to the output buffer at the specified location of the segment. See OUTPUT-FIELD See SEGMENT
-
EXTERNAL GENERIC-FUNCTION (SETF OUTPUT)
- BUFFER
- LOCATION
- SEGMENT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION OUTPUT-FIELD
- FIELD
- LOCATION
- SEGMENT
-
EXTERNAL GENERIC-FUNCTION (SETF OUTPUT-FIELD)
- VALUE
- FIELD
- LOCATION
- SEGMENT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION OUTPUTS
- OBJECT
Accessor to the vector of output buffers connected to the segment. This vector will become out of date if the segment's buffers are added or removed from the C side directly, or directly through this vector. Thus you should never modify this directly and instead always make sure to go through OUTPUT See SEGMENT See OUTPUT
-
EXTERNAL GENERIC-FUNCTION PACK
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF PACK)
- THING
- DRAIN
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PAN
- BUNDLE
Accessor to the outputting pan of the volume control segment. Must be in the range [-1,1]. See VOLUME-CONTROL
-
EXTERNAL GENERIC-FUNCTION (SETF PAN)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PITCH
- BUNDLE
Accessor to the current pitch shifting value. The pitch shift is denoted as a float in the range of ]0,infinity[, where 1 is no change, 0.5 halves the pitch, and 2 doubles the pitch. Note that extreme values on either side will result in heavy distortions and quality loss. Anything outside the range of [0.5,2.0] will already result in audible artefacts. See PITCH
-
EXTERNAL GENERIC-FUNCTION (SETF PITCH)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION PROGRAM-NAME
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF PROGRAM-NAME)
- NEW-VALUE
- OBJECT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION Q
- SEGMENT1
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF Q)
- VALUE29
- SEGMENT30
No documentation provided. -
EXTERNAL GENERIC-FUNCTION RELEASE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF RELEASE)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REPEAT-MODE
- BUNDLE
Accessor to the mode the repeat segment is currently in. The value must be either :RECORD or :PLAY. When in record mode, the segment will fill its internal buffer with the samples from the input buffer, and copy them to the output buffer. While in this mode it is thus "transparent" and does not change anything. When in play mode, the segment continuously plays back its internal buffer to the output buffer, ignoring all samples on the input buffer. See REPEAT
-
EXTERNAL GENERIC-FUNCTION (SETF REPEAT-MODE)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION REVALIDATE
- SEGMENT
No documentation provided. -
EXTERNAL GENERIC-FUNCTION ROLLOFF
- BUNDLE
Accessor to the rolloff factor that describes the curvature of the attenuation function. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF ROLLOFF)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SAMPLERATE
- PACK
Accessor to the samplerate at which the samples are expected to be. The sample rate is in Hz. See PACK See DELAY See FADER See BIQUAD-FILTER See PITCH See REPEAT See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF SAMPLERATE)
- VALUE0
- PACK
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SEEK
- SOURCE
- POSITION
- &KEY
- MODE
- BY
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SEEK-TO-FRAME
- SOURCE
- POSITION
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SEGMENTS
- OBJECT
Accessor to a vector of segments the sequence contains. This vector will become out of date if the sequence's segments are added or removed from the C side directly, or directly through this vector. Thus you should never modify this directly and instead always make sure to go through ADD/WITHDRAW. See SEGMENT-SEQUENCE See ADD See WITHDRAW
-
EXTERNAL GENERIC-FUNCTION SET-PARAMETERS
- SEGMENT
- DISTANCES
- HIT-RATIOS
- ABSORPTION-RATES
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SIZE
- BUFFER
-
EXTERNAL GENERIC-FUNCTION (SETF SIZE)
- SIZE
- BUFFER
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SOUNDSPEED
- BUNDLE
Accessor to the speed of sound in space. This value only influences the strength of the doppler factor. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF SOUNDSPEED)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION SPEED-FACTOR
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF SPEED-FACTOR)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION START
- SEGMENT
Start the mixing process. This method should be called as close as possible to the next calls to MIX. Calling MIX before START is called or after END is called is an error. After START has been called, changing some segments' fields may result in undefined behaviour and might even lead to crashes. See SEGMENT-SEQUENCE See SEGMENT See END See MIX
-
EXTERNAL GENERIC-FUNCTION STEPS
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF STEPS)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TO
- BUNDLE
Accessor to the ending volume of the fading segment. Must be in the range of [0.0, infinity[. See FADER
-
EXTERNAL GENERIC-FUNCTION (SETF TO)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION TRANSFER
- FROM
- TO
No documentation provided. -
EXTERNAL GENERIC-FUNCTION UP
- BUNDLE
Accessor for the vector representing "upwards" in space. To set a vector, the value should be a list or a vector of three floats. When reading, the returned value is always a vector of three floats. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF UP)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION VELOCITY
- BUNDLE
Accessor for the velocity of the listener in space. To set a vector, the value should be a list or a vector of three floats. When reading, the returned value is always a vector of three floats. See SPACE-MIXER
-
EXTERNAL GENERIC-FUNCTION (SETF VELOCITY)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION VOLUME
- THING
Accessor to the outputting volume of the segment. Must be in the range [0, infinity[. See VOLUME-CONTROL See NOISE See GENERATOR
-
EXTERNAL GENERIC-FUNCTION (SETF VOLUME)
- VOLUME
- THING
No documentation provided. -
EXTERNAL GENERIC-FUNCTION WAVE-TYPE
- BUNDLE
Accessor to the wave type the generator generates. Must be one of :SINE :SQUARE :SAWTOOTH :TRIANGLE See GENERATOR
-
EXTERNAL GENERIC-FUNCTION (SETF WAVE-TYPE)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION WET
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION (SETF WET)
- VALUE
- BUNDLE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION WITHDRAW
- OLD
- SEGMENT
Remove the object from the given collection. For segment-sequences this means removing the segment from the sequence. For mixers this means removing the given input buffer. See SEGMENT-SEQUENCE See MIXER
-
EXTERNAL MACRO WITH-BUFFER-TRANSFER
- FDATA
- FSTART
- FROM
- TDATA
- TSTART
- TO
- SIZE
- &BODY
- BODY
Convenience macro to handle a transfer from one buffer to another. Both FROM and TO may be the same buffer, in which case the transfer happens from the region available to read to itself. Otherwise, this is akin to nesting WITH-BUFFER-TX, with the special exemption that FINISH will complete the transaction on both buffers at once. See BIP-BUFFER See BUFFER See PACK See WITH-BUFFER-TRANSFER
-
EXTERNAL MACRO WITH-BUFFER-TX
- DATA
- START
- SIZE
- BUFFER
- &KEY
- DIRECTION
- SIZE
- &BODY
- BODY
Convenience macro to handle a buffer transaction. DATA is bound to the storage array of the buffer. START is bound to the starting index of the transaction. SIZE is bound to the number of elements that may be operated on during the transaction. BUFFER should be a BIP-BUFFER instance. DIRECTION can be either :INPUT or :OUTPUT depending on the type of transaction desired. INITIAL-SIZE should be the amount of space to request. During BODY, two functions are available: FINISH --- Completes the transaction, using the passed number of elements. Note that this does not cause an unwind. DATA-PTR --- Returns a foreign pointer to the start of the transaction's valid memory. This macro ensures that on unwind for any reason, whether after FINISH or before, the buffer is left in a sealed state where it is safe to call REQUEST-READ and REQUEST-WRITE again. See BIP-BUFFER See BUFFER See PACK See WITH-BUFFER-TRANSFER
-
EXTERNAL MACRO WITH-BUFFERS
- SIZE
- BUFFERS
- &BODY
- BODY
Create a number of buffers for the duration of the body. BUFFERS should be a list of symbols, to each of which a fresh instance of a BUFFER with a size of SAMPLES will be bound.
-
EXTERNAL MACRO WITH-CHAIN
- NAME
- SEGMENTS
- &BODY
- BODY
No documentation provided. -
EXTERNAL MACRO WITH-OBJECTS
- BINDINGS
- &BODY
- BODY
No documentation provided.
-
-
ORG.SHIRAKUMO.FRAF.MIXED.DUMMY
No documentation provided. -
ORG.SHIRAKUMO.FRAF.MIXED.CFFI
No documentation provided.-
EXTERNAL SPECIAL-VARIABLE *STATIC*
Variable containing the path to the static directory. That directory contains the precompiled library binaries.
-
EXTERNAL CLASS BUFFER
No documentation provided. -
EXTERNAL CLASS FIELD-INFO
No documentation provided. -
EXTERNAL CLASS PACK
No documentation provided. -
EXTERNAL CLASS SEGMENT
No documentation provided. -
EXTERNAL CLASS SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION BUFFER-AVAILABLE-READ
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-AVAILABLE-WRITE
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-DATA
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION (SETF BUFFER-DATA)
- VALUE
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-FINISH-READ
- SIZE
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-FINISH-WRITE
- SIZE
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-FROM-PACK
- PACK
- BUFFERS
- VOLUME
- TARGET-VOLUME
No documentation provided. -
EXTERNAL FUNCTION BUFFER-READ
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION (SETF BUFFER-READ)
- VALUE
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-REQUEST-READ
- AREA
- SIZE
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-REQUEST-WRITE
- AREA
- SIZE
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-RESERVED
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION (SETF BUFFER-RESERVED)
- VALUE
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-SIZE
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION (SETF BUFFER-SIZE)
- VALUE
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-TO-PACK
- BUFFERS
- PACK
- VOLUME
- TARGET-VOLUME
No documentation provided. -
EXTERNAL FUNCTION BUFFER-VIRTUAL-P
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION (SETF BUFFER-VIRTUAL-P)
- VALUE
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION BUFFER-WRITE
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION (SETF BUFFER-WRITE)
- VALUE
- POINTER-TO-BUFFER
No documentation provided. -
EXTERNAL FUNCTION CHAIN-ADD
- SEGMENT
- CHAIN
No documentation provided. -
EXTERNAL FUNCTION CHAIN-ADD-AT
- I
- SEGMENT
- CHAIN
No documentation provided. -
EXTERNAL FUNCTION CHAIN-REMOVE
- SEGMENT
- CHAIN
No documentation provided. -
EXTERNAL FUNCTION CHAIN-REMOVE-AT
- I
- CHAIN
No documentation provided. -
EXTERNAL FUNCTION CLEAR-BUFFER
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION CLEAR-PACK
- PACK
No documentation provided. -
EXTERNAL FUNCTION CLOSE-PLUGIN
- FILE
No documentation provided. -
EXTERNAL FUNCTION COPY-BUFFER
- FROM
- TO
No documentation provided. -
EXTERNAL FUNCTION DEREGISTER-SEGMENT
- NAME
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-DATA
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-DATA)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-END
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-END)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-FREE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-FREE)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-GET
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-GET)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-GET-IN
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-GET-IN)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-GET-OUT
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-GET-OUT)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-INFO
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-INFO)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-MIX
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-MIX)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-SET
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-SET)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-SET-IN
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-SET-IN)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-SET-OUT
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-SET-OUT)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION DIRECT-SEGMENT-START
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION (SETF DIRECT-SEGMENT-START)
- VALUE
- POINTER-TO-SEGMENT
No documentation provided. -
EXTERNAL FUNCTION ERROR
No documentation provided. -
EXTERNAL FUNCTION ERROR-STRING
- ERROR
No documentation provided. -
EXTERNAL FUNCTION FIELD-INFO-DESCRIPTION
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF FIELD-INFO-DESCRIPTION)
- VALUE
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION FIELD-INFO-FIELD
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF FIELD-INFO-FIELD)
- VALUE
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION FIELD-INFO-FLAGS
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF FIELD-INFO-FLAGS)
- VALUE
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION FIELD-INFO-TYPE
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF FIELD-INFO-TYPE)
- VALUE
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION FIELD-INFO-TYPE-COUNT
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF FIELD-INFO-TYPE-COUNT)
- VALUE
- POINTER-TO-FIELD-INFO
No documentation provided. -
EXTERNAL FUNCTION FREE-BUFFER
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION FREE-PACK
- PACK
No documentation provided. -
EXTERNAL FUNCTION FREE-SEGMENT
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION LIST-SEGMENTS
- COUNT
- NAMES
No documentation provided. -
EXTERNAL FUNCTION LOAD-PLUGIN
- FILE
No documentation provided. -
EXTERNAL FUNCTION MAKE-BUFFER
- SIZE
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION MAKE-PACK
- FRAMES
- PACK
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT
- NAME
- ARGS
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-BASIC-MIXER
- CHANNELS
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-BIQUAD-FILTER
- PASS
- FREQUENCY
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-CHAIN
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-CHANNEL-CONVERT
- IN
- OUT
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-DELAY
- TIME
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-DISTRIBUTE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-FADE
- FROM
- TO
- TIME
- TYPE
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-GATE
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-GENERATOR
- TYPE
- FREQUENCY
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-INFO
- NAME
- ARGC
- ARGS
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-LADSPA
- FILE
- INDEX
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-NOISE
- TYPE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-PACKER
- PACK
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-PITCH
- PITCH
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-PLANE-MIXER
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-QUANTIZE
- STEPS
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-QUEUE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-REPEAT
- TIME
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-SPACE-MIXER
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-SPATIAL-REVERB
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-SPEED-CHANGE
- SPEED
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-UNPACKER
- PACK
- SAMPLERATE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-VOID
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-VOLUME-CONTROL
- VOLUME
- PAN
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION MAKE-SEGMENT-ZERO
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION PACK-AVAILABLE-READ
- PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-AVAILABLE-WRITE
- PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-CHANNELS
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION (SETF PACK-CHANNELS)
- VALUE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-DATA
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION (SETF PACK-DATA)
- VALUE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-ENCODING
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION (SETF PACK-ENCODING)
- VALUE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-FINISH-READ
- SIZE
- PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-FINISH-WRITE
- SIZE
- PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-READ
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION (SETF PACK-READ)
- VALUE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-REQUEST-READ
- AREA
- SIZE
- PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-REQUEST-WRITE
- AREA
- SIZE
- PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-RESERVED
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION (SETF PACK-RESERVED)
- VALUE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-SAMPLERATE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION (SETF PACK-SAMPLERATE)
- VALUE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-SIZE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION (SETF PACK-SIZE)
- VALUE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION PACK-WRITE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION (SETF PACK-WRITE)
- VALUE
- POINTER-TO-PACK
No documentation provided. -
EXTERNAL FUNCTION QUEUE-ADD
- NEW
- QUEUE
No documentation provided. -
EXTERNAL FUNCTION QUEUE-CLEAR
- QUEUE
No documentation provided. -
EXTERNAL FUNCTION QUEUE-REMOVE
- OLD
- QUEUE
No documentation provided. -
EXTERNAL FUNCTION QUEUE-REMOVE-AT
- POS
- QUEUE
No documentation provided. -
EXTERNAL FUNCTION REGISTER-SEGMENT
- NAME
- ARGC
- ARGS
- FUNCTION
No documentation provided. -
EXTERNAL FUNCTION RESIZE-BUFFER
- SIZE
- BUFFER
No documentation provided. -
EXTERNAL FUNCTION SAMPLESIZE
- ENCODING
Return the number of bytes required to represent a sample in the given format. Acceptable values are :INT8 :UINT8 :INT16 :UINT16 :INT24 :UINT24 :INT32 :UINT32 :FLOAT :DOUBLE
-
EXTERNAL FUNCTION SEGMENT-END
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-GET
- FIELD
- VALUE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-GET-IN
- FIELD
- LOCATION
- VALUE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-GET-OUT
- FIELD
- LOCATION
- VALUE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-INFO
- INFO
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-INFO-DESCRIPTION
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF SEGMENT-INFO-DESCRIPTION)
- VALUE
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-INFO-FIELDS
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF SEGMENT-INFO-FIELDS)
- VALUE
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-INFO-FLAGS
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF SEGMENT-INFO-FLAGS)
- VALUE
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-INFO-MAX-INPUTS
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF SEGMENT-INFO-MAX-INPUTS)
- VALUE
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-INFO-MIN-INPUTS
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF SEGMENT-INFO-MIN-INPUTS)
- VALUE
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-INFO-NAME
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF SEGMENT-INFO-NAME)
- VALUE
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-INFO-OUTPUTS
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION (SETF SEGMENT-INFO-OUTPUTS)
- VALUE
- POINTER-TO-SEGMENT-INFO
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-MIX
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-SET
- FIELD
- VALUE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-SET-IN
- FIELD
- LOCATION
- VALUE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-SET-OUT
- FIELD
- LOCATION
- VALUE
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION SEGMENT-START
- SEGMENT
No documentation provided. -
EXTERNAL FUNCTION TRANSFER-BUFFER
- FROM
- TO
No documentation provided. -
EXTERNAL FUNCTION TRANSLATOR-FROM
- ENCODING
No documentation provided. -
EXTERNAL FUNCTION TRANSLATOR-TO
- ENCODING
No documentation provided. -
EXTERNAL FUNCTION TYPE-STRING
- TYPE
No documentation provided. -
EXTERNAL FUNCTION VERSION
No documentation provided.
-