The cl-mixed Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The cl-mixed Reference Manual

This is the cl-mixed Reference Manual, version 2.0.0, generated automatically by Declt version 3.0 "Montgomery Scott" on Mon Apr 19 15:03:05 2021 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

# About cl-mixed
This is a bindings library to "libmixed"(https://github.com/Shirakumo/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"(https://github.com/Shirakumo/libmixed) repository.

Examples on how to use cl-mixed can be found in the "examples"(link 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"(link extensions/) systems providing segments that can be used for playing back audio on various sound systems, or reading audio from various formats.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 cl-mixed

Maintainer

Nicolas Hafner <shinmera@tymoon.eu>

Author

Nicolas Hafner <shinmera@tymoon.eu>

Home Page

https://Shirakumo.github.io/cl-mixed/

Source Control

(:git "https://github.com/shirakumo/cl-mixed.git")

Bug Tracker

https://github.com/Shirakumo/cl-mixed/issues

License

zlib

Description

Bindings to libmixed, a sound mixing and processing library.

Version

2.0.0

Dependencies
Source

cl-mixed.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Previous: , Up: Modules   [Contents][Index]

3.1 cl-mixed/segments

Dependency

mixer.lisp (file)

Parent

cl-mixed (system)

Location

segments/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 cl-mixed.asd

Location

cl-mixed.asd

Systems

cl-mixed (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 cl-mixed/package.lisp

Parent

cl-mixed (system)

Location

package.lisp

Packages

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 cl-mixed/low-level.lisp

Dependency

package.lisp (file)

Parent

cl-mixed (system)

Location

low-level.lisp

Exported Definitions
Internal Definitions

*here* (special variable)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 cl-mixed/toolkit.lisp

Dependency

low-level.lisp (file)

Parent

cl-mixed (system)

Location

toolkit.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 cl-mixed/c-object.lisp

Dependency

toolkit.lisp (file)

Parent

cl-mixed (system)

Location

c-object.lisp

Exported Definitions
Internal Definitions

*c-object-table* (special variable)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.6 cl-mixed/bip-buffer.lisp

Dependency

c-object.lisp (file)

Parent

cl-mixed (system)

Location

bip-buffer.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.7 cl-mixed/buffer.lisp

Dependency

bip-buffer.lisp (file)

Parent

cl-mixed (system)

Location

buffer.lisp

Exported Definitions
Internal Definitions

allocate-handle (method)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.8 cl-mixed/pack.lisp

Dependency

buffer.lisp (file)

Parent

cl-mixed (system)

Location

pack.lisp

Exported Definitions
Internal Definitions

allocate-handle (method)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.9 cl-mixed/segment.lisp

Dependency

pack.lisp (file)

Parent

cl-mixed (system)

Location

segment.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.10 cl-mixed/generic.lisp

Dependency

segment.lisp (file)

Parent

cl-mixed (system)

Location

generic.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.11 cl-mixed/drain.lisp

Dependency

generic.lisp (file)

Parent

cl-mixed (system)

Location

drain.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.12 cl-mixed/source.lisp

Dependency

drain.lisp (file)

Parent

cl-mixed (system)

Location

source.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.13 cl-mixed/mixer.lisp

Dependency

source.lisp (file)

Parent

cl-mixed (system)

Location

mixer.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.14 cl-mixed/segments/basic-mixer.lisp

Parent

segments (module)

Location

segments/basic-mixer.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.15 cl-mixed/segments/bundle.lisp

Parent

segments (module)

Location

segments/bundle.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.16 cl-mixed/segments/chain.lisp

Parent

segments (module)

Location

segments/chain.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.17 cl-mixed/segments/channel-convert.lisp

Parent

segments (module)

Location

segments/channel-convert.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.18 cl-mixed/segments/delay.lisp

Parent

segments (module)

Location

segments/delay.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.19 cl-mixed/segments/distribute.lisp

Parent

segments (module)

Location

segments/distribute.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.20 cl-mixed/segments/fader.lisp

Parent

segments (module)

Location

segments/fader.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.21 cl-mixed/segments/frequency-pass.lisp

Parent

segments (module)

Location

segments/frequency-pass.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.22 cl-mixed/segments/gate.lisp

Parent

segments (module)

Location

segments/gate.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.23 cl-mixed/segments/generator.lisp

Parent

segments (module)

Location

segments/generator.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.24 cl-mixed/segments/ladspa.lisp

Parent

segments (module)

Location

segments/ladspa.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.25 cl-mixed/segments/noise.lisp

Parent

segments (module)

Location

segments/noise.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.26 cl-mixed/segments/null.lisp

Parent

segments (module)

Location

segments/null.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.27 cl-mixed/segments/packer.lisp

Parent

segments (module)

Location

segments/packer.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.28 cl-mixed/segments/pitch.lisp

Parent

segments (module)

Location

segments/pitch.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.29 cl-mixed/segments/quantize.lisp

Parent

segments (module)

Location

segments/quantize.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.30 cl-mixed/segments/queue.lisp

Parent

segments (module)

Location

segments/queue.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.31 cl-mixed/segments/repeat.lisp

Parent

segments (module)

Location

segments/repeat.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.32 cl-mixed/segments/space-mixer.lisp

Parent

segments (module)

Location

segments/space-mixer.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.33 cl-mixed/segments/speed-change.lisp

Parent

segments (module)

Location

segments/speed-change.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.34 cl-mixed/segments/unpacker.lisp

Parent

segments (module)

Location

segments/unpacker.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.35 cl-mixed/segments/virtual.lisp

Parent

segments (module)

Location

segments/virtual.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.36 cl-mixed/segments/volume-control.lisp

Parent

segments (module)

Location

segments/volume-control.lisp

Exported Definitions

Previous: , Up: Lisp files   [Contents][Index]

4.1.37 cl-mixed/documentation.lisp

Dependency

segments (module)

Parent

cl-mixed (system)

Location

documentation.lisp


Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 org.shirakumo.fraf.mixed.cffi

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

*here* (special variable)


Previous: , Up: Packages   [Contents][Index]

5.2 org.shirakumo.fraf.mixed

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Special variables

Special Variable: *default-channel-order*
Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

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.

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Special Variable: *static*

Variable containing the path to the static directory. That directory contains the precompiled library binaries.

Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Macros

Macro: with-buffer-transfer (FDATA FSTART FROM) (TDATA TSTART TO) SIZE &body BODY
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Macro: with-buffer-tx (DATA START SIZE BUFFER &key DIRECTION (SIZE INITIAL-SIZE)) &body BODY
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

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.

Package

org.shirakumo.fraf.mixed

Source

buffer.lisp (file)

Macro: with-chain NAME SEGMENTS &body BODY
Package

org.shirakumo.fraf.mixed

Source

chain.lisp (file)

Macro: with-objects BINDINGS &body BODY
Package

org.shirakumo.fraf.mixed

Source

c-object.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 Functions

Function: available-read BUFFER
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Function: available-write BUFFER
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Function: buffer-available-read BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-available-write BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-data POINTER-TO-BUFFER
Function: (setf buffer-data) VALUE POINTER-TO-BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-finish-read SIZE BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-finish-write SIZE BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-from-pack PACK BUFFERS VOLUME
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-read POINTER-TO-BUFFER
Function: (setf buffer-read) VALUE POINTER-TO-BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-request-read AREA SIZE BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-request-write AREA SIZE BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-reserved POINTER-TO-BUFFER
Function: (setf buffer-reserved) VALUE POINTER-TO-BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-size POINTER-TO-BUFFER
Function: (setf buffer-size) VALUE POINTER-TO-BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-to-pack BUFFERS PACK VOLUME
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-virtual-p POINTER-TO-BUFFER
Function: (setf buffer-virtual-p) VALUE POINTER-TO-BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: buffer-write POINTER-TO-BUFFER
Function: (setf buffer-write) VALUE POINTER-TO-BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: chain-add SEGMENT CHAIN
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: chain-add-at I SEGMENT CHAIN
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: chain-remove SEGMENT CHAIN
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: chain-remove-at I CHAIN
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: clear-buffer BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: clear-pack PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: close-plugin FILE
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: copy-buffer FROM TO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: data-ptr DATA &optional START
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Function: deregister-segment NAME
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-data POINTER-TO-SEGMENT
Function: (setf direct-segment-data) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-end POINTER-TO-SEGMENT
Function: (setf direct-segment-end) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-free POINTER-TO-SEGMENT
Function: (setf direct-segment-free) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-get POINTER-TO-SEGMENT
Function: (setf direct-segment-get) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-get-in POINTER-TO-SEGMENT
Function: (setf direct-segment-get-in) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-get-out POINTER-TO-SEGMENT
Function: (setf direct-segment-get-out) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-info POINTER-TO-SEGMENT
Function: (setf direct-segment-info) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-mix POINTER-TO-SEGMENT
Function: (setf direct-segment-mix) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-set POINTER-TO-SEGMENT
Function: (setf direct-segment-set) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-set-in POINTER-TO-SEGMENT
Function: (setf direct-segment-set-in) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-set-out POINTER-TO-SEGMENT
Function: (setf direct-segment-set-out) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: direct-segment-start POINTER-TO-SEGMENT
Function: (setf direct-segment-start) VALUE POINTER-TO-SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: error ()
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: error-string ERROR
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: field-info-description POINTER-TO-FIELD-INFO
Function: (setf field-info-description) VALUE POINTER-TO-FIELD-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: field-info-field POINTER-TO-FIELD-INFO
Function: (setf field-info-field) VALUE POINTER-TO-FIELD-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: field-info-flags POINTER-TO-FIELD-INFO
Function: (setf field-info-flags) VALUE POINTER-TO-FIELD-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: field-info-type POINTER-TO-FIELD-INFO
Function: (setf field-info-type) VALUE POINTER-TO-FIELD-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: field-info-type-count POINTER-TO-FIELD-INFO
Function: (setf field-info-type-count) VALUE POINTER-TO-FIELD-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: finish-read BUFFER SIZE
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Function: finish-write BUFFER SIZE
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Function: free-buffer BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: free-pack PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: free-segment SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: guess-channel-order-from-count CHANNELS
Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Function: list-segments COUNT NAMES
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: load-plugin FILE
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-basic-mixer &optional CHANNELS

Create a new basic mixer, adding the given buffers as inputs.

See BASIC-MIXER
See ADD
See WITHDRAW

Package

org.shirakumo.fraf.mixed

Source

basic-mixer.lisp (file)

Function: make-buffer SIZE BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Source

buffer.lisp (file)

Function: make-bundle CHANNELS &optional CLASS &rest INITARGS
Package

org.shirakumo.fraf.mixed

Source

bundle.lisp (file)

Function: make-chain &rest SEGMENTS
Package

org.shirakumo.fraf.mixed

Source

chain.lisp (file)

Function: make-channel-convert &rest ARGS &key IN OUT SAMPLERATE
Package

org.shirakumo.fraf.mixed

Source

channel-convert.lisp (file)

Function: make-delay &rest ARGS &key TIME SAMPLERATE

Create a new delay segment.

See DELAY

Package

org.shirakumo.fraf.mixed

Source

delay.lisp (file)

Function: make-distributor &rest ARGS &key
Package

org.shirakumo.fraf.mixed

Source

distribute.lisp (file)

Function: make-fader &rest ARGS &key FROM TO TIME TYPE SAMPLERATE

Create a new volume fader segment.

See FADER

Package

org.shirakumo.fraf.mixed

Source

fader.lisp (file)

Function: make-frequency-pass &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 FREQUENCY-PASS

Package

org.shirakumo.fraf.mixed

Source

frequency-pass.lisp (file)

Function: make-gate &rest ARGS &key SAMPLERATE
Package

org.shirakumo.fraf.mixed

Source

gate.lisp (file)

Function: make-generator &rest ARGS &key TYPE FREQUENCY SAMPLERATE

Create a new tone generator.

See GENERATOR

Package

org.shirakumo.fraf.mixed

Source

generator.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Source

ladspa.lisp (file)

Function: make-noise &rest ARGS &key TYPE

Create a new noise segment.

The type can be one of :WHITE, :PINK, :BROWN.

See NOISE

Package

org.shirakumo.fraf.mixed

Source

noise.lisp (file)

Function: make-pack FRAMES PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-pack &key ENCODING CHANNELS SAMPLERATE FRAMES
Package

org.shirakumo.fraf.mixed

Source

pack.lisp (file)

Function: make-packer &key PACK ENCODING CHANNELS SAMPLERATE FRAMES TARGET-SAMPLERATE

Create a new packer segment.

This automatically creates a packed-audio object to use. If you prefer to use a packed-audio object you created yourself, simply use MAKE-INSTANCE instead.

See PACKED-AUDIO
See PACKER

Package

org.shirakumo.fraf.mixed

Source

packer.lisp (file)

Function: make-pitch &rest ARGS &key PITCH SAMPLERATE

Create a new pitch shifting segment.

See PITCH

Package

org.shirakumo.fraf.mixed

Source

pitch.lisp (file)

Function: make-quantize &rest ARGS &key STEPS
Package

org.shirakumo.fraf.mixed

Source

quantize.lisp (file)

Function: make-queue &rest ARGS
Package

org.shirakumo.fraf.mixed

Source

queue.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Source

repeat.lisp (file)

Function: make-segment NAME ARGS SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-basic-mixer CHANNELS SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-chain SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-channel-convert IN OUT SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-delay TIME SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-distribute SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-fade FROM TO TIME TYPE SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-frequency-pass PASS CUTOFF SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-gate SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-generator TYPE FREQUENCY SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-info NAME ARGC ARGS
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-ladspa FILE INDEX SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-noise TYPE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-packer PACK SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-pitch PITCH SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-quantize STEPS SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-queue SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-repeat TIME SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-space-mixer SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-speed-change SPEED SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-unpacker PACK SAMPLERATE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-void SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-volume-control VOLUME PAN SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: make-segment-zero SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Source

space-mixer.lisp (file)

Function: make-speed-change &rest ARGS &key SPEED-FACTOR
Package

org.shirakumo.fraf.mixed

Source

speed-change.lisp (file)

Function: make-unpacker &key PACK ENCODING CHANNELS SAMPLERATE FRAMES SOURCE-SAMPLERATE

Create a new unpacker segment.

This automatically creates a packed-audi object to use. If you prefer to use a packed-audio object you created yourself, simply use MAKE-INSTANCE instead.

See PACKED-AUDIO
See UNPACKER

Package

org.shirakumo.fraf.mixed

Source

unpacker.lisp (file)

Function: make-void &rest ARGS &key
Package

org.shirakumo.fraf.mixed

Source

null.lisp (file)

Function: make-volume-control &rest ARGS &key VOLUME PAN

Create a new volume control segment.

See VOLUME-CONTROL

Package

org.shirakumo.fraf.mixed

Source

volume-control.lisp (file)

Function: make-zero &rest ARGS &key
Package

org.shirakumo.fraf.mixed

Source

null.lisp (file)

Function: pack-available-read PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-available-write PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-channels POINTER-TO-PACK
Function: (setf pack-channels) VALUE POINTER-TO-PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-data POINTER-TO-PACK
Function: (setf pack-data) VALUE POINTER-TO-PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-encoding POINTER-TO-PACK
Function: (setf pack-encoding) VALUE POINTER-TO-PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-finish-read SIZE PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-finish-write SIZE PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-read POINTER-TO-PACK
Function: (setf pack-read) VALUE POINTER-TO-PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-request-read AREA SIZE PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-request-write AREA SIZE PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-reserved POINTER-TO-PACK
Function: (setf pack-reserved) VALUE POINTER-TO-PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-samplerate POINTER-TO-PACK
Function: (setf pack-samplerate) VALUE POINTER-TO-PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-size POINTER-TO-PACK
Function: (setf pack-size) VALUE POINTER-TO-PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pack-write POINTER-TO-PACK
Function: (setf pack-write) VALUE POINTER-TO-PACK
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: pointer->object POINTER

Accessor to the object associated with the given foreign pointer.

See *C-OBJECT-TABLE*

Package

org.shirakumo.fraf.mixed

Source

c-object.lisp (file)

Writer

(setf pointer->object) (function)

Function: (setf pointer->object) OBJECT POINTER
Package

org.shirakumo.fraf.mixed

Source

c-object.lisp (file)

Reader

pointer->object (function)

Function: queue-add NEW QUEUE
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: queue-clear QUEUE
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: queue-remove OLD QUEUE
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: queue-remove-at POS QUEUE
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: register-segment NAME ARGC ARGS FUNCTION
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: request-read BUFFER SIZE
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Function: request-write BUFFER SIZE
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Function: resize-buffer SIZE BUFFER
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

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

Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: samplesize TYPE
Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Function: segment-end SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-get FIELD VALUE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-get-in FIELD LOCATION VALUE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-get-out FIELD LOCATION VALUE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-info INFO SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-info-description POINTER-TO-SEGMENT-INFO
Function: (setf segment-info-description) VALUE POINTER-TO-SEGMENT-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-info-fields POINTER-TO-SEGMENT-INFO
Function: (setf segment-info-fields) VALUE POINTER-TO-SEGMENT-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-info-flags POINTER-TO-SEGMENT-INFO
Function: (setf segment-info-flags) VALUE POINTER-TO-SEGMENT-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-info-max-inputs POINTER-TO-SEGMENT-INFO
Function: (setf segment-info-max-inputs) VALUE POINTER-TO-SEGMENT-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-info-min-inputs POINTER-TO-SEGMENT-INFO
Function: (setf segment-info-min-inputs) VALUE POINTER-TO-SEGMENT-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-info-name POINTER-TO-SEGMENT-INFO
Function: (setf segment-info-name) VALUE POINTER-TO-SEGMENT-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-info-outputs POINTER-TO-SEGMENT-INFO
Function: (setf segment-info-outputs) VALUE POINTER-TO-SEGMENT-INFO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-mix SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-set FIELD VALUE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-set-in FIELD LOCATION VALUE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-set-out FIELD LOCATION VALUE SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: segment-start SEGMENT
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: transfer-buffer FROM TO
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: translator-from ENCODING
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: translator-to ENCODING
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: type-string TYPE
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Function: version ()
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.4 Generic functions

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

Package

org.shirakumo.fraf.mixed

Methods
Method: add (NEW segment) (SEGMENT space-mixer)
Source

space-mixer.lisp (file)

Method: add (SEGMENT segment) (QUEUE queue)
Source

queue.lisp (file)

Method: add (SEGMENT segment) (CHAIN chain)
Source

chain.lisp (file)

Method: add (NEW segment) (SEGMENT basic-mixer)
Source

basic-mixer.lisp (file)

Generic Function: attack BUNDLE
Generic Function: (setf attack) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Methods
Method: attack (SEGMENT1 gate)
Method: (setf attack) VALUE23 (SEGMENT24 gate)
Source

gate.lisp (file)

Method: attack (BUNDLE bundle)
Method: (setf attack) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: attenuation SPACE

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

Package

org.shirakumo.fraf.mixed

Writer

(setf attenuation) (generic function)

Methods
Method: attenuation (SPACE space-mixer)
Source

space-mixer.lisp (file)

Generic Function: (setf attenuation) VALUE SPACE
Package

org.shirakumo.fraf.mixed

Reader

attenuation (generic function)

Methods
Method: (setf attenuation) VALUE (SPACE space-mixer)
Source

space-mixer.lisp (file)

Generic Function: bypass BUNDLE

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

Package

org.shirakumo.fraf.mixed

Writer

(setf bypass) (generic function)

Methods
Method: bypass (SEGMENT1 volume-control)
Source

volume-control.lisp (file)

Method: bypass (SEGMENT1 unpacker)
Source

unpacker.lisp (file)

Method: bypass (SEGMENT1 speed-change)
Source

speed-change.lisp (file)

Method: bypass (SEGMENT1 repeat)
Source

repeat.lisp (file)

Method: bypass (SEGMENT1 queue)
Source

queue.lisp (file)

Method: bypass (SEGMENT1 quantize)
Source

quantize.lisp (file)

Method: bypass (SEGMENT1 pitch)
Source

pitch.lisp (file)

Method: bypass (SEGMENT1 packer)
Source

packer.lisp (file)

Method: bypass (SEGMENT1 gate)
Source

gate.lisp (file)

Method: bypass (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: bypass (SEGMENT1 fader)
Source

fader.lisp (file)

Method: bypass (SEGMENT1 delay)
Source

delay.lisp (file)

Method: bypass (SEGMENT1 chain)
Source

chain.lisp (file)

Method: bypass (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf bypass) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

bypass (generic function)

Methods
Method: (setf bypass) VALUE23 (SEGMENT24 volume-control)
Source

volume-control.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 unpacker)
Source

unpacker.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 speed-change)
Source

speed-change.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 repeat)
Source

repeat.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 queue)
Source

queue.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 quantize)
Source

quantize.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 pitch)
Source

pitch.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 packer)
Source

packer.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 delay)
Source

delay.lisp (file)

Method: (setf bypass) VALUE23 (SEGMENT24 chain)
Source

chain.lisp (file)

Method: (setf bypass) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: byte-position OBJECT
Generic Function: (setf byte-position) NEW-VALUE OBJECT
Package

org.shirakumo.fraf.mixed

Methods
Method: byte-position (SOURCE source)

automatically generated reader method

Source

source.lisp (file)

Method: (setf byte-position) NEW-VALUE (SOURCE source)

automatically generated writer method

Source

source.lisp (file)

Generic Function: channel-order DRAIN
Package

org.shirakumo.fraf.mixed

Source

drain.lisp (file)

Methods
Method: channel-order (SOURCE source)
Source

source.lisp (file)

Method: channel-order (DRAIN drain)
Generic Function: channels PACK

Accessor to the number of channels encoded in the data buffer in the object.

See PACKED-AUDIO

Package

org.shirakumo.fraf.mixed

Writer

(setf channels) (generic function)

Methods
Method: channels (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: channels (MIXER space-mixer)
Source

space-mixer.lisp (file)

Method: channels (PACKER packer)
Source

packer.lisp (file)

Method: channels (BASIC-MIXER basic-mixer)

automatically generated reader method

Source

basic-mixer.lisp (file)

Method: channels (PACK pack)
Source

pack.lisp (file)

Generic Function: (setf channels) VALUE0 PACK
Package

org.shirakumo.fraf.mixed

Reader

channels (generic function)

Methods
Method: (setf channels) VALUE0 (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: (setf channels) VALUE0 (PACKER packer)
Source

packer.lisp (file)

Method: (setf channels) NEW-VALUE (BASIC-MIXER basic-mixer)

automatically generated writer method

Source

basic-mixer.lisp (file)

Method: (setf channels) VALUE0 (PACK pack)
Source

pack.lisp (file)

Generic Function: clear BUFFER

Clears the buffer to fill its data array with just zeroes.

See BUFFER

Package

org.shirakumo.fraf.mixed

Methods
Method: clear (QUEUE queue)
Source

queue.lisp (file)

Method: clear (CHAIN chain)
Source

chain.lisp (file)

Method: clear (PACK pack)
Source

pack.lisp (file)

Method: clear (BUFFER buffer)
Source

buffer.lisp (file)

Generic Function: close-threshold BUNDLE
Generic Function: (setf close-threshold) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Methods
Method: close-threshold (SEGMENT1 gate)
Method: (setf close-threshold) VALUE23 (SEGMENT24 gate)
Source

gate.lisp (file)

Method: close-threshold (BUNDLE bundle)
Method: (setf close-threshold) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: connect SOURCE SOURCE-LOCATION DRAIN DRAIN-LOCATION &optional BUFFER

Connect two segments together by connecting their respective input and output to a specific buffer.

See INPUT
See OUTPUT
See SEGMENT

Package

org.shirakumo.fraf.mixed

Methods
Method: connect (SOURCE distributor) SOURCE-LOCATION (DRAIN segment) DRAIN-LOCATION &optional BUFFER
Source

distribute.lisp (file)

Method: connect (SOURCE segment) SOURCE-LOCATION (DRAIN segment) DRAIN-LOCATION &optional BUFFER
Source

segment.lisp (file)

Generic Function: current-segment SEGMENT
Package

org.shirakumo.fraf.mixed

Methods
Method: current-segment (SEGMENT queue)
Source

queue.lisp (file)

Generic Function: cutoff BUNDLE

Accessor to the cutoff frequency of the frequency-pass segment.

See FREQUENCY-PASS

Package

org.shirakumo.fraf.mixed

Writer

(setf cutoff) (generic function)

Methods
Method: cutoff (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: cutoff (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf cutoff) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

cutoff (generic function)

Methods
Method: (setf cutoff) VALUE23 (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf cutoff) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: data OBJECT

Accessor to the raw data array contained in the object.

See BUFFER
See PACKED-AUDIO

Package

org.shirakumo.fraf.mixed

Writer

(setf data) (generic function)

Methods
Method: data (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: data (PACKER packer)
Source

packer.lisp (file)

Method: data (PACK pack)

automatically generated reader method

Source

pack.lisp (file)

Method: data (BUFFER buffer)

automatically generated reader method

Source

buffer.lisp (file)

Generic Function: (setf data) VALUE0 PACKER
Package

org.shirakumo.fraf.mixed

Reader

data (generic function)

Methods
Method: (setf data) VALUE0 (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: (setf data) VALUE0 (PACKER packer)
Source

packer.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf direction) (generic function)

Methods
Method: direction (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: direction (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf direction) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

direction (generic function)

Methods
Method: (setf direction) VALUE1 (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf direction) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: done-p OBJECT
Generic Function: (setf done-p) NEW-VALUE OBJECT
Package

org.shirakumo.fraf.mixed

Methods
Method: done-p (SOURCE source)

automatically generated reader method

Source

source.lisp (file)

Method: (setf done-p) NEW-VALUE (SOURCE source)

automatically generated writer method

Source

source.lisp (file)

Generic Function: doppler-factor BUNDLE

Accessor to the over-/under-statement factor of the doppler effect.

See SPACE-MIXER

Package

org.shirakumo.fraf.mixed

Writer

(setf doppler-factor) (generic function)

Methods
Method: doppler-factor (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: doppler-factor (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf doppler-factor) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

doppler-factor (generic function)

Methods
Method: (setf doppler-factor) VALUE23 (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf doppler-factor) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: duration BUNDLE

Accessor to the duration of the segment’s effect.

Must be measured in seconds.

See FADER
See DELAY
See REPEAT

Package

org.shirakumo.fraf.mixed

Writer

(setf duration) (generic function)

Methods
Method: duration (SEGMENT1 repeat)
Source

repeat.lisp (file)

Method: duration (SEGMENT1 fader)
Source

fader.lisp (file)

Method: duration (SEGMENT1 delay)
Source

delay.lisp (file)

Method: duration (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf duration) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

duration (generic function)

Methods
Method: (setf duration) VALUE23 (SEGMENT24 repeat)
Source

repeat.lisp (file)

Method: (setf duration) VALUE23 (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf duration) VALUE23 (SEGMENT24 delay)
Source

delay.lisp (file)

Method: (setf duration) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

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 PACKED-AUDIO

Package

org.shirakumo.fraf.mixed

Writer

(setf encoding) (generic function)

Methods
Method: encoding (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: encoding (PACKER packer)
Source

packer.lisp (file)

Method: encoding (PACK pack)
Source

pack.lisp (file)

Generic Function: (setf encoding) VALUE0 PACK
Package

org.shirakumo.fraf.mixed

Reader

encoding (generic function)

Methods
Method: (setf encoding) VALUE0 (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: (setf encoding) VALUE0 (PACKER packer)
Source

packer.lisp (file)

Method: (setf encoding) VALUE0 (PACK pack)
Source

pack.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: end (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: end (BUNDLE bundle)
Source

bundle.lisp (file)

Method: end (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: error-code CONDITION

Accessor for the error code contained in the condition instance.

See MIXED:ERROR
See MIXED:ERROR-STRING

Package

org.shirakumo.fraf.mixed

Writer

(setf error-code) (generic function)

Methods
Method: error-code (CONDITION mixed-error)
Source

toolkit.lisp (file)

Generic Function: (setf error-code) NEW-VALUE CONDITION
Package

org.shirakumo.fraf.mixed

Reader

error-code (generic function)

Methods
Method: (setf error-code) NEW-VALUE (CONDITION mixed-error)
Source

toolkit.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf fade-type) (generic function)

Methods
Method: fade-type (SEGMENT1 fader)
Source

fader.lisp (file)

Method: fade-type (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf fade-type) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

fade-type (generic function)

Methods
Method: (setf fade-type) VALUE23 (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf fade-type) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf field) (generic function)

Methods
Method: field (FIELD (eql bypass)) (SEGMENT1 volume-control)
Source

volume-control.lisp (file)

Method: field (FIELD (eql pan)) (SEGMENT1 volume-control)
Source

volume-control.lisp (file)

Method: field (FIELD (eql volume)) (SEGMENT1 volume-control)
Source

volume-control.lisp (file)

Method: field FIELD (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 unpacker)
Source

unpacker.lisp (file)

Method: field (FIELD (eql volume)) (SEGMENT1 unpacker)
Source

unpacker.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 speed-change)
Source

speed-change.lisp (file)

Method: field (FIELD (eql speed-factor)) (SEGMENT1 speed-change)
Source

speed-change.lisp (file)

Method: field (FIELD (eql attenuation)) (SEGMENT space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql volume)) (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql rolloff)) (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql max-distance)) (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql min-distance)) (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql doppler-factor)) (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql soundspeed)) (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql up)) (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql direction)) (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql velocity)) (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql location)) (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 repeat)
Source

repeat.lisp (file)

Method: field (FIELD (eql samplerate)) (SEGMENT1 repeat)
Source

repeat.lisp (file)

Method: field (FIELD (eql repeat-mode)) (SEGMENT1 repeat)
Source

repeat.lisp (file)

Method: field (FIELD (eql duration)) (SEGMENT1 repeat)
Source

repeat.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 queue)
Source

queue.lisp (file)

Method: field (FIELD (eql out-count)) (SEGMENT1 queue)
Source

queue.lisp (file)

Method: field (FIELD (eql in-count)) (SEGMENT1 queue)
Source

queue.lisp (file)

Method: field (FIELD (eql current-segment)) (SEGMENT queue)
Source

queue.lisp (file)

Method: field (FIELD (eql wet)) (SEGMENT1 quantize)
Source

quantize.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 quantize)
Source

quantize.lisp (file)

Method: field (FIELD (eql steps)) (SEGMENT1 quantize)
Source

quantize.lisp (file)

Method: field (FIELD (eql wet)) (SEGMENT1 pitch)
Source

pitch.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 pitch)
Source

pitch.lisp (file)

Method: field (FIELD (eql samplerate)) (SEGMENT1 pitch)
Source

pitch.lisp (file)

Method: field (FIELD (eql pitch)) (SEGMENT1 pitch)
Source

pitch.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 packer)
Source

packer.lisp (file)

Method: field (FIELD (eql volume)) (SEGMENT1 packer)
Source

packer.lisp (file)

Method: field (FIELD (eql noise-type)) (SEGMENT1 noise)
Source

noise.lisp (file)

Method: field (FIELD (eql volume)) (SEGMENT1 noise)
Source

noise.lisp (file)

Method: field FIELD (SEGMENT ladspa)
Source

ladspa.lisp (file)

Method: field (FIELD (eql frequency)) (SEGMENT1 generator)
Source

generator.lisp (file)

Method: field (FIELD (eql wave-type)) (SEGMENT1 generator)
Source

generator.lisp (file)

Method: field (FIELD (eql volume)) (SEGMENT1 generator)
Source

generator.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 gate)
Source

gate.lisp (file)

Method: field (FIELD (eql release)) (SEGMENT1 gate)
Source

gate.lisp (file)

Method: field (FIELD (eql hold)) (SEGMENT1 gate)
Source

gate.lisp (file)

Method: field (FIELD (eql attack)) (SEGMENT1 gate)
Source

gate.lisp (file)

Method: field (FIELD (eql close-threshold)) (SEGMENT1 gate)
Source

gate.lisp (file)

Method: field (FIELD (eql open-threshold)) (SEGMENT1 gate)
Source

gate.lisp (file)

Method: field (FIELD (eql samplerate)) (SEGMENT1 gate)
Source

gate.lisp (file)

Method: field (FIELD (eql wet)) (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: field (FIELD (eql samplerate)) (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: field (FIELD (eql frequency-pass)) (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: field (FIELD (eql cutoff)) (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 fader)
Source

fader.lisp (file)

Method: field (FIELD (eql fade-type)) (SEGMENT1 fader)
Source

fader.lisp (file)

Method: field (FIELD (eql duration)) (SEGMENT1 fader)
Source

fader.lisp (file)

Method: field (FIELD (eql to)) (SEGMENT1 fader)
Source

fader.lisp (file)

Method: field (FIELD (eql from)) (SEGMENT1 fader)
Source

fader.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 delay)
Source

delay.lisp (file)

Method: field (FIELD (eql samplerate)) (SEGMENT1 delay)
Source

delay.lisp (file)

Method: field (FIELD (eql duration)) (SEGMENT1 delay)
Source

delay.lisp (file)

Method: field (FIELD (eql bypass)) (SEGMENT1 chain)
Source

chain.lisp (file)

Method: field FIELD (BUNDLE bundle)
Source

bundle.lisp (file)

Method: field (FIELD (eql volume)) (SEGMENT1 basic-mixer)
Source

basic-mixer.lisp (file)

Generic Function: (setf field) VALUE FIELD SEGMENT
Package

org.shirakumo.fraf.mixed

Reader

field (generic function)

Methods
Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 volume-control)
Source

volume-control.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql pan)) (SEGMENT24 volume-control)
Source

volume-control.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql volume)) (SEGMENT24 volume-control)
Source

volume-control.lisp (file)

Method: (setf field) VALUE FIELD (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 unpacker)
Source

unpacker.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql volume)) (SEGMENT24 unpacker)
Source

unpacker.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 speed-change)
Source

speed-change.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql speed-factor)) (SEGMENT24 speed-change)
Source

speed-change.lisp (file)

Method: (setf field) VALUE (FIELD (eql attenuation)) (SEGMENT space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql volume)) (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql rolloff)) (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql max-distance)) (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql min-distance)) (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql doppler-factor)) (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql soundspeed)) (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE1 (FIELD (eql up)) (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE1 (FIELD (eql direction)) (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE1 (FIELD (eql velocity)) (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE1 (FIELD (eql location)) (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 repeat)
Source

repeat.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql samplerate)) (SEGMENT24 repeat)
Source

repeat.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql repeat-mode)) (SEGMENT24 repeat)
Source

repeat.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql duration)) (SEGMENT24 repeat)
Source

repeat.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 queue)
Source

queue.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql out-count)) (SEGMENT24 queue)
Source

queue.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql in-count)) (SEGMENT24 queue)
Source

queue.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql wet)) (SEGMENT24 quantize)
Source

quantize.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 quantize)
Source

quantize.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql steps)) (SEGMENT24 quantize)
Source

quantize.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql wet)) (SEGMENT24 pitch)
Source

pitch.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 pitch)
Source

pitch.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql samplerate)) (SEGMENT24 pitch)
Source

pitch.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql pitch)) (SEGMENT24 pitch)
Source

pitch.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 packer)
Source

packer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql volume)) (SEGMENT24 packer)
Source

packer.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql noise-type)) (SEGMENT24 noise)
Source

noise.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql volume)) (SEGMENT24 noise)
Source

noise.lisp (file)

Method: (setf field) VALUE FIELD (SEGMENT ladspa)
Source

ladspa.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql frequency)) (SEGMENT24 generator)
Source

generator.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql wave-type)) (SEGMENT24 generator)
Source

generator.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql volume)) (SEGMENT24 generator)
Source

generator.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql release)) (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql hold)) (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql attack)) (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql close-threshold)) (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql open-threshold)) (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql samplerate)) (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql wet)) (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql samplerate)) (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql frequency-pass)) (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql cutoff)) (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql fade-type)) (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql duration)) (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql to)) (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql from)) (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 delay)
Source

delay.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql samplerate)) (SEGMENT24 delay)
Source

delay.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql duration)) (SEGMENT24 delay)
Source

delay.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql bypass)) (SEGMENT24 chain)
Source

chain.lisp (file)

Method: (setf field) VALUE FIELD (BUNDLE bundle)
Source

bundle.lisp (file)

Method: (setf field) VALUE23 (FIELD (eql volume)) (SEGMENT24 basic-mixer)
Source

basic-mixer.lisp (file)

Method: (setf field) VALUE FIELD (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: frame-count SOURCE
Package

org.shirakumo.fraf.mixed

Source

source.lisp (file)

Generic Function: frame-position SOURCE
Package

org.shirakumo.fraf.mixed

Methods
Method: frame-position (SOURCE source)
Source

source.lisp (file)

Generic Function: framesize BUFFER
Package

org.shirakumo.fraf.mixed

Methods
Method: framesize (SOURCE source)
Source

source.lisp (file)

Method: framesize (PACK pack)
Source

pack.lisp (file)

Method: framesize (BUFFER buffer)
Source

buffer.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: free (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: free (BUNDLE bundle)
Source

bundle.lisp (file)

Method: free (SEGMENT segment)
Source

segment.lisp (file)

Method: free (PACK pack)
Source

pack.lisp (file)

Method: free (BUFFER buffer)
Source

buffer.lisp (file)

Method: free (OBJECT c-object) after
Source

c-object.lisp (file)

Method: free (OBJECT c-object)
Source

c-object.lisp (file)

Generic Function: frequency BUNDLE

Accessor to the frequency of the wave.

Must be in the range [0.0, samplerate].

See GENERATOR

Package

org.shirakumo.fraf.mixed

Writer

(setf frequency) (generic function)

Methods
Method: frequency (SEGMENT1 generator)
Source

generator.lisp (file)

Method: frequency (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf frequency) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

frequency (generic function)

Methods
Method: (setf frequency) VALUE23 (SEGMENT24 generator)
Source

generator.lisp (file)

Method: (setf frequency) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: frequency-pass BUNDLE

Accessor to whether the frequency-pass segment passes high or low frequencies.

Value must be either :HIGH or :LOW.

See FREQUENCY-PASS

Package

org.shirakumo.fraf.mixed

Writer

(setf frequency-pass) (generic function)

Methods
Method: frequency-pass (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: frequency-pass (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf frequency-pass) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

frequency-pass (generic function)

Methods
Method: (setf frequency-pass) VALUE23 (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf frequency-pass) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: from BUNDLE

Accessor to the starting volume of the fading segment.

Must be in the range of [0.0, infinity[.

See FADER

Package

org.shirakumo.fraf.mixed

Writer

(setf from) (generic function)

Methods
Method: from (SEGMENT1 fader)
Source

fader.lisp (file)

Method: from (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf from) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

from (generic function)

Methods
Method: (setf from) VALUE23 (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf from) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: handle THING

Accessor to the pointer to the foreign data that this object tracks.

See CFFI:FOREIGN-POINTER
See C-OBJECT

Package

org.shirakumo.fraf.mixed

Writer

(setf handle) (generic function)

Methods
Method: handle (C-OBJECT c-object)

automatically generated reader method

Source

c-object.lisp (file)

Method: handle THING
Source

c-object.lisp (file)

Generic Function: (setf handle) NEW-VALUE OBJECT
Package

org.shirakumo.fraf.mixed

Reader

handle (generic function)

Methods
Method: (setf handle) NEW-VALUE (C-OBJECT c-object)

automatically generated writer method

Source

c-object.lisp (file)

Generic Function: hold BUNDLE
Generic Function: (setf hold) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Methods
Method: hold (SEGMENT1 gate)
Method: (setf hold) VALUE23 (SEGMENT24 gate)
Source

gate.lisp (file)

Method: hold (BUNDLE bundle)
Method: (setf hold) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: in-count SEGMENT1
Generic Function: (setf in-count) VALUE23 SEGMENT24
Package

org.shirakumo.fraf.mixed

Methods
Method: in-count (SEGMENT1 queue)
Source

queue.lisp (file)

Method: (setf in-count) VALUE23 (SEGMENT24 queue)
Source

queue.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: info (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: info (BUNDLE bundle)
Source

bundle.lisp (file)

Method: info (SOURCE source)
Source

source.lisp (file)

Method: info (DRAIN drain)
Source

drain.lisp (file)

Method: info (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: input LOCATION SEGMENT

Accessor to the input buffer at the specified location of the segment.

See INPUT-FIELD
See SEGMENT

Package

org.shirakumo.fraf.mixed

Writer

(setf input) (generic function)

Methods
Method: input (LOCATION (eql 0)) (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: input (LOCATION integer) (BUNDLE bundle)
Source

bundle.lisp (file)

Method: input LOCATION (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: (setf input) BUFFER LOCATION SEGMENT
Package

org.shirakumo.fraf.mixed

Reader

input (generic function)

Methods
Method: (setf input) VALUE (LOCATION integer) (BUNDLE bundle)
Source

bundle.lisp (file)

Method: (setf input) BUFFER LOCATION (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: input-field FIELD LOCATION SEGMENT

Access the field of an input of the segment.

Which fields are supported depends on the segment in question. Usually the :BUFFER field will be recognised for which the value should be a BUFFER instance.

Some fields may only be read and not written to or vice-versa.

See SEGMENT
See INPUT

Package

org.shirakumo.fraf.mixed

Writer

(setf input-field) (generic function)

Methods
Method: input-field (FIELD (eql buffer)) (LOCATION integer) (SEGMENT virtual)
Source

virtual.lisp (file)

Method: input-field FIELD LOCATION (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: input-field (FIELD (eql pack)) (LOCATION (eql 0)) (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: input-field (FIELD (eql velocity)) LOCATION2 (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Method: input-field (FIELD (eql location)) LOCATION2 (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Method: input-field FIELD (LOCATION integer) (BUNDLE bundle)
Source

bundle.lisp (file)

Method: input-field (FIELD (eql buffer)) (LOCATION integer) (SEGMENT segment)
Source

segment.lisp (file)

Method: input-field (FIELD (eql buffer)) (LOCATION symbol) (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: (setf input-field) VALUE FIELD LOCATION SEGMENT
Package

org.shirakumo.fraf.mixed

Reader

input-field (generic function)

Methods
Method: (setf input-field) VALUE FIELD LOCATION (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: (setf input-field) VALUE1 (FIELD (eql velocity)) LOCATION2 (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf input-field) VALUE1 (FIELD (eql location)) LOCATION2 (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf input-field) VALUE FIELD (LOCATION integer) (BUNDLE bundle)
Source

bundle.lisp (file)

Method: (setf input-field) VALUE (FIELD (eql buffer)) (LOCATION symbol) (SEGMENT segment)
Source

segment.lisp (file)

Method: (setf input-field) (VALUE null) (FIELD (eql buffer)) (LOCATION integer) (MIXER mixer)
Source

mixer.lisp (file)

Method: (setf input-field) (VALUE buffer) (FIELD (eql buffer)) (LOCATION integer) (MIXER mixer)
Source

mixer.lisp (file)

Method: (setf input-field) (VALUE buffer) (FIELD (eql buffer)) (LOCATION (eql t)) (MIXER mixer)
Source

mixer.lisp (file)

Method: (setf input-field) VALUE FIELD LOCATION SEGMENT
Source

segment.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf input-location) (generic function)

Methods
Method: input-location (LOCATION2 integer) (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Method: input-location (LOCATION2 buffer) (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Generic Function: (setf input-location) VALUE1 LOCATION2 SEGMENT3
Package

org.shirakumo.fraf.mixed

Reader

input-location (generic function)

Methods
Method: (setf input-location) VALUE1 (LOCATION2 integer) (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf input-location) VALUE1 (LOCATION2 buffer) (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf input-velocity) (generic function)

Methods
Method: input-velocity (LOCATION2 integer) (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Method: input-velocity (LOCATION2 buffer) (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Generic Function: (setf input-velocity) VALUE1 LOCATION2 SEGMENT3
Package

org.shirakumo.fraf.mixed

Reader

input-velocity (generic function)

Methods
Method: (setf input-velocity) VALUE1 (LOCATION2 integer) (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf input-velocity) VALUE1 (LOCATION2 buffer) (SEGMENT3 space-mixer)
Source

space-mixer.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: inputs (BUNDLE bundle)
Source

bundle.lisp (file)

Method: inputs (SEGMENT segment)

automatically generated reader method

Source

segment.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf location) (generic function)

Methods
Method: location (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: location (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf location) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

location (generic function)

Methods
Method: (setf location) VALUE1 (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf location) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: match-channel-order SEGMENT NEW-ORDER &key OLD-ORDER SIDE
Package

org.shirakumo.fraf.mixed

Methods
Method: match-channel-order (SEGMENT segment) NEW-ORDER &key OLD-ORDER SIDE
Source

segment.lisp (file)

Generic Function: max-distance BUNDLE

Accessor to the maximal distance above which the source is inaudible.

See SPACE-MIXER

Package

org.shirakumo.fraf.mixed

Writer

(setf max-distance) (generic function)

Methods
Method: max-distance (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: max-distance (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf max-distance) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

max-distance (generic function)

Methods
Method: (setf max-distance) VALUE23 (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf max-distance) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: min-distance BUNDLE

Accessor to the minimal distance below which the source is at max volume.

See SPACE-MIXER

Package

org.shirakumo.fraf.mixed

Writer

(setf min-distance) (generic function)

Methods
Method: min-distance (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: min-distance (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf min-distance) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

min-distance (generic function)

Methods
Method: (setf min-distance) VALUE23 (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf min-distance) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: mix (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: mix (BUNDLE bundle)
Source

bundle.lisp (file)

Method: mix (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: noise-type BUNDLE

Accessor to the type of noise being generated.

The value must be one of :WHITE, :PINK, :BROWN.

See NOISE

Package

org.shirakumo.fraf.mixed

Writer

(setf noise-type) (generic function)

Methods
Method: noise-type (SEGMENT1 noise)
Source

noise.lisp (file)

Method: noise-type (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf noise-type) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

noise-type (generic function)

Methods
Method: (setf noise-type) VALUE23 (SEGMENT24 noise)
Source

noise.lisp (file)

Method: (setf noise-type) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: open-threshold BUNDLE
Generic Function: (setf open-threshold) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Methods
Method: open-threshold (SEGMENT1 gate)
Method: (setf open-threshold) VALUE23 (SEGMENT24 gate)
Source

gate.lisp (file)

Method: open-threshold (BUNDLE bundle)
Method: (setf open-threshold) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: out-count SEGMENT1
Generic Function: (setf out-count) VALUE23 SEGMENT24
Package

org.shirakumo.fraf.mixed

Methods
Method: out-count (SEGMENT1 queue)
Source

queue.lisp (file)

Method: (setf out-count) VALUE23 (SEGMENT24 queue)
Source

queue.lisp (file)

Generic Function: output LOCATION SEGMENT

Accessor to the output buffer at the specified location of the segment.

See OUTPUT-FIELD
See SEGMENT

Package

org.shirakumo.fraf.mixed

Writer

(setf output) (generic function)

Methods
Method: output (LOCATION (eql 0)) (PACKER packer)
Source

packer.lisp (file)

Method: output (LOCATION integer) (BUNDLE bundle)
Source

bundle.lisp (file)

Method: output (LOCATION (eql 0)) (SOURCE source)
Source

source.lisp (file)

Method: output (LOCATION (eql 0)) (DRAIN drain)
Source

drain.lisp (file)

Method: output LOCATION (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: (setf output) BUFFER LOCATION SEGMENT
Package

org.shirakumo.fraf.mixed

Reader

output (generic function)

Methods
Method: (setf output) VALUE (LOCATION integer) (BUNDLE bundle)
Source

bundle.lisp (file)

Method: (setf output) BUFFER LOCATION (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: output-field FIELD LOCATION SEGMENT

Access the field of an output of the segment.

Which fields are supported depends on the segment in question. Usually the :BUFFER field will be recognised for which the value should be a BUFFER instance.

Some fields may only be read and not written to or vice-versa.

See SEGMENT
See OUTPUT

Package

org.shirakumo.fraf.mixed

Writer

(setf output-field) (generic function)

Methods
Method: output-field (FIELD (eql buffer)) (LOCATION integer) (SEGMENT virtual)
Source

virtual.lisp (file)

Method: output-field FIELD LOCATION (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: output-field (FIELD (eql pack)) (LOCATION (eql 0)) (PACKER packer)
Source

packer.lisp (file)

Method: output-field FIELD (LOCATION integer) (BUNDLE bundle)
Source

bundle.lisp (file)

Method: output-field (FIELD (eql pack)) (LOCATION (eql 0)) (SOURCE source)
Source

source.lisp (file)

Method: output-field (FIELD (eql pack)) (LOCATION (eql 0)) (DRAIN drain)
Source

drain.lisp (file)

Method: output-field (FIELD (eql buffer)) (LOCATION integer) (SEGMENT segment)
Source

segment.lisp (file)

Method: output-field (FIELD (eql buffer)) (LOCATION symbol) (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: (setf output-field) VALUE FIELD LOCATION SEGMENT
Package

org.shirakumo.fraf.mixed

Reader

output-field (generic function)

Methods
Method: (setf output-field) VALUE FIELD LOCATION (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: (setf output-field) VALUE FIELD (LOCATION integer) (BUNDLE bundle)
Source

bundle.lisp (file)

Method: (setf output-field) VALUE (FIELD (eql buffer)) (LOCATION symbol) (SEGMENT segment)
Source

segment.lisp (file)

Method: (setf output-field) VALUE FIELD LOCATION SEGMENT
Source

segment.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: outputs (BUNDLE bundle)
Source

bundle.lisp (file)

Method: outputs (SEGMENT segment)

automatically generated reader method

Source

segment.lisp (file)

Generic Function: pack OBJECT
Generic Function: (setf pack) THING DRAIN
Package

org.shirakumo.fraf.mixed

Methods
Method: pack (UNPACKER unpacker)

automatically generated reader method

Source

unpacker.lisp (file)

Method: pack (PACKER packer)

automatically generated reader method

Source

packer.lisp (file)

Method: pack (SOURCE source)

automatically generated reader method

Source

source.lisp (file)

Method: pack (DRAIN drain)

automatically generated reader method

Source

drain.lisp (file)

Method: (setf pack) THING (SOURCE source)
Source

source.lisp (file)

Method: (setf pack) THING (DRAIN drain)
Source

drain.lisp (file)

Generic Function: pan BUNDLE

Accessor to the outputting pan of the volume control segment.

Must be in the range [-1,1].

See VOLUME-CONTROL

Package

org.shirakumo.fraf.mixed

Writer

(setf pan) (generic function)

Methods
Method: pan (SEGMENT1 volume-control)
Source

volume-control.lisp (file)

Method: pan (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf pan) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

pan (generic function)

Methods
Method: (setf pan) VALUE23 (SEGMENT24 volume-control)
Source

volume-control.lisp (file)

Method: (setf pan) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf pitch) (generic function)

Methods
Method: pitch (SEGMENT1 pitch)
Source

pitch.lisp (file)

Method: pitch (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf pitch) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

pitch (generic function)

Methods
Method: (setf pitch) VALUE23 (SEGMENT24 pitch)
Source

pitch.lisp (file)

Method: (setf pitch) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: program-name OBJECT
Generic Function: (setf program-name) NEW-VALUE OBJECT
Package

org.shirakumo.fraf.mixed

Methods
Method: program-name (DRAIN drain)

automatically generated reader method

Source

drain.lisp (file)

Method: (setf program-name) NEW-VALUE (DRAIN drain)

automatically generated writer method

Source

drain.lisp (file)

Generic Function: release BUNDLE
Generic Function: (setf release) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Methods
Method: release (SEGMENT1 gate)
Method: (setf release) VALUE23 (SEGMENT24 gate)
Source

gate.lisp (file)

Method: release (BUNDLE bundle)
Method: (setf release) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf repeat-mode) (generic function)

Methods
Method: repeat-mode (SEGMENT1 repeat)
Source

repeat.lisp (file)

Method: repeat-mode (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf repeat-mode) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

repeat-mode (generic function)

Methods
Method: (setf repeat-mode) VALUE23 (SEGMENT24 repeat)
Source

repeat.lisp (file)

Method: (setf repeat-mode) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: revalidate SEGMENT
Package

org.shirakumo.fraf.mixed

Methods
Method: revalidate (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: rolloff BUNDLE

Accessor to the rolloff factor that describes the curvature of the attenuation function.

See SPACE-MIXER

Package

org.shirakumo.fraf.mixed

Writer

(setf rolloff) (generic function)

Methods
Method: rolloff (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: rolloff (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf rolloff) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

rolloff (generic function)

Methods
Method: (setf rolloff) VALUE23 (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf rolloff) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: samplerate PACK

Accessor to the samplerate at which the samples are expected to be.

The sample rate is in Hz.

See PACKED-AUDIO
See DELAY
See FADER
See FREQUENCY-PASS
See PITCH
See REPEAT
See SPACE-MIXER

Package

org.shirakumo.fraf.mixed

Writer

(setf samplerate) (generic function)

Methods
Method: samplerate (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: samplerate (SEGMENT1 repeat)
Source

repeat.lisp (file)

Method: samplerate (SEGMENT1 pitch)
Source

pitch.lisp (file)

Method: samplerate (PACKER packer)
Source

packer.lisp (file)

Method: samplerate (SEGMENT1 gate)
Source

gate.lisp (file)

Method: samplerate (SEGMENT1 frequency-pass)
Source

frequency-pass.lisp (file)

Method: samplerate (SEGMENT1 delay)
Source

delay.lisp (file)

Method: samplerate (BUNDLE bundle)
Source

bundle.lisp (file)

Method: samplerate (PACK pack)
Source

pack.lisp (file)

Generic Function: (setf samplerate) VALUE0 PACK
Package

org.shirakumo.fraf.mixed

Reader

samplerate (generic function)

Methods
Method: (setf samplerate) VALUE0 (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: (setf samplerate) VALUE23 (SEGMENT24 repeat)
Source

repeat.lisp (file)

Method: (setf samplerate) VALUE23 (SEGMENT24 pitch)
Source

pitch.lisp (file)

Method: (setf samplerate) VALUE0 (PACKER packer)
Source

packer.lisp (file)

Method: (setf samplerate) VALUE23 (SEGMENT24 gate)
Source

gate.lisp (file)

Method: (setf samplerate) VALUE23 (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: (setf samplerate) VALUE23 (SEGMENT24 delay)
Source

delay.lisp (file)

Method: (setf samplerate) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Method: (setf samplerate) VALUE0 (PACK pack)
Source

pack.lisp (file)

Generic Function: seek SOURCE POSITION &key MODE BY
Package

org.shirakumo.fraf.mixed

Methods
Method: seek (SOURCE source) POSITION &key MODE BY
Source

source.lisp (file)

Generic Function: seek-to-frame SOURCE POSITION
Package

org.shirakumo.fraf.mixed

Source

source.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: segments (QUEUE queue)

automatically generated reader method

Source

queue.lisp (file)

Method: segments (CHAIN chain)

automatically generated reader method

Source

chain.lisp (file)

Method: segments (BUNDLE bundle)

automatically generated reader method

Source

bundle.lisp (file)

Generic Function: size BUFFER

Accessor to the size of the data contained in the object.

For packed-audio this number is in bytes.
For buffers this number is in floats.

When the size is set on a buffer, the buffer’s data array is resized to fit the requested size.

See BUFFER
See PACKED-AUDIO
See SEGMENT-SEQUENCE

Package

org.shirakumo.fraf.mixed

Writer

(setf size) (generic function)

Methods
Method: size (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: size (PACKER packer)
Source

packer.lisp (file)

Method: size (PACK pack)
Source

pack.lisp (file)

Method: size (BUFFER buffer)
Source

buffer.lisp (file)

Generic Function: (setf size) SIZE BUFFER
Package

org.shirakumo.fraf.mixed

Reader

size (generic function)

Methods
Method: (setf size) VALUE0 (UNPACKER unpacker)
Source

unpacker.lisp (file)

Method: (setf size) VALUE0 (PACKER packer)
Source

packer.lisp (file)

Method: (setf size) VALUE0 (PACK pack)
Source

pack.lisp (file)

Method: (setf size) SIZE (BUFFER buffer)
Source

buffer.lisp (file)

Method: (setf size) SIZE (PACK pack) before
Source

pack.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf soundspeed) (generic function)

Methods
Method: soundspeed (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: soundspeed (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf soundspeed) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

soundspeed (generic function)

Methods
Method: (setf soundspeed) VALUE23 (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf soundspeed) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: speed-factor BUNDLE
Generic Function: (setf speed-factor) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Methods
Method: speed-factor (SEGMENT1 speed-change)
Method: (setf speed-factor) VALUE23 (SEGMENT24 speed-change)
Source

speed-change.lisp (file)

Method: speed-factor (BUNDLE bundle)
Method: (setf speed-factor) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: start (VIRTUAL virtual)
Source

virtual.lisp (file)

Method: start (BUNDLE bundle)
Source

bundle.lisp (file)

Method: start (SEGMENT segment)
Source

segment.lisp (file)

Generic Function: steps BUNDLE
Generic Function: (setf steps) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Methods
Method: steps (SEGMENT1 quantize)
Method: (setf steps) VALUE23 (SEGMENT24 quantize)
Source

quantize.lisp (file)

Method: steps (BUNDLE bundle)
Method: (setf steps) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: to BUNDLE

Accessor to the ending volume of the fading segment.

Must be in the range of [0.0, infinity[.

See FADER

Package

org.shirakumo.fraf.mixed

Writer

(setf to) (generic function)

Methods
Method: to (SEGMENT1 fader)
Source

fader.lisp (file)

Method: to (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf to) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

to (generic function)

Methods
Method: (setf to) VALUE23 (SEGMENT24 fader)
Source

fader.lisp (file)

Method: (setf to) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: transfer FROM TO
Package

org.shirakumo.fraf.mixed

Methods
Method: transfer (FROM pack) (TO sequence)
Source

pack.lisp (file)

Method: transfer (FROM pack) (TO buffer)
Source

pack.lisp (file)

Method: transfer (FROM sequence) (TO pack)
Source

pack.lisp (file)

Method: transfer (FROM buffer) (TO pack)
Source

pack.lisp (file)

Method: transfer (FROM buffer) (TO buffer)
Source

buffer.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf up) (generic function)

Methods
Method: up (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: up (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf up) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

up (generic function)

Methods
Method: (setf up) VALUE1 (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf up) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Writer

(setf velocity) (generic function)

Methods
Method: velocity (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: velocity (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf velocity) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

velocity (generic function)

Methods
Method: (setf velocity) VALUE1 (SEGMENT2 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf velocity) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: volume SEGMENT1

Accessor to the outputting volume of the segment.

Must be in the range [0, infinity[.

See VOLUME-CONTROL
See NOISE
See GENERATOR

Package

org.shirakumo.fraf.mixed

Writer

(setf volume) (generic function)

Methods
Method: volume (SEGMENT1 volume-control)
Source

volume-control.lisp (file)

Method: volume (SEGMENT1 unpacker)
Source

unpacker.lisp (file)

Method: volume (SEGMENT1 space-mixer)
Source

space-mixer.lisp (file)

Method: volume (SEGMENT1 packer)
Source

packer.lisp (file)

Method: volume (SEGMENT1 noise)
Source

noise.lisp (file)

Method: volume (SEGMENT1 generator)
Source

generator.lisp (file)

Method: volume (BUNDLE bundle)
Source

bundle.lisp (file)

Method: volume (SEGMENT1 basic-mixer)
Source

basic-mixer.lisp (file)

Generic Function: (setf volume) VALUE23 SEGMENT24
Package

org.shirakumo.fraf.mixed

Reader

volume (generic function)

Methods
Method: (setf volume) VALUE23 (SEGMENT24 volume-control)
Source

volume-control.lisp (file)

Method: (setf volume) VALUE23 (SEGMENT24 unpacker)
Source

unpacker.lisp (file)

Method: (setf volume) VALUE23 (SEGMENT24 space-mixer)
Source

space-mixer.lisp (file)

Method: (setf volume) VALUE23 (SEGMENT24 packer)
Source

packer.lisp (file)

Method: (setf volume) VALUE23 (SEGMENT24 noise)
Source

noise.lisp (file)

Method: (setf volume) VALUE23 (SEGMENT24 generator)
Source

generator.lisp (file)

Method: (setf volume) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Method: (setf volume) VALUE23 (SEGMENT24 basic-mixer)
Source

basic-mixer.lisp (file)

Generic Function: wave-type BUNDLE

Accessor to the wave type the generator generates.

Must be one of :SINE :SQUARE :SAWTOOTH :TRIANGLE

See GENERATOR

Package

org.shirakumo.fraf.mixed

Writer

(setf wave-type) (generic function)

Methods
Method: wave-type (SEGMENT1 generator)
Source

generator.lisp (file)

Method: wave-type (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: (setf wave-type) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Reader

wave-type (generic function)

Methods
Method: (setf wave-type) VALUE23 (SEGMENT24 generator)
Source

generator.lisp (file)

Method: (setf wave-type) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

Generic Function: wet BUNDLE
Generic Function: (setf wet) VALUE BUNDLE
Package

org.shirakumo.fraf.mixed

Methods
Method: wet (SEGMENT1 quantize)
Method: (setf wet) VALUE23 (SEGMENT24 quantize)
Source

quantize.lisp (file)

Method: wet (SEGMENT1 pitch)
Method: (setf wet) VALUE23 (SEGMENT24 pitch)
Source

pitch.lisp (file)

Method: wet (SEGMENT1 frequency-pass)
Method: (setf wet) VALUE23 (SEGMENT24 frequency-pass)
Source

frequency-pass.lisp (file)

Method: wet (BUNDLE bundle)
Method: (setf wet) VALUE (BUNDLE bundle)
Source

bundle.lisp (file)

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

Package

org.shirakumo.fraf.mixed

Methods
Method: withdraw (OLD segment) (SEGMENT space-mixer)
Source

space-mixer.lisp (file)

Method: withdraw (POSITION integer) (QUEUE queue)
Source

queue.lisp (file)

Method: withdraw (SEGMENT segment) (QUEUE queue)
Source

queue.lisp (file)

Method: withdraw (SEGMENT segment) (CHAIN chain)
Source

chain.lisp (file)

Method: withdraw (I integer) (CHAIN chain)
Source

chain.lisp (file)

Method: withdraw (OLD segment) (SEGMENT basic-mixer)
Source

basic-mixer.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.5 Conditions

Condition: mixed-error ()

Condition class for errors related to the mixed library.

See ERROR-CODE

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: error-code
Initargs

:error-code

Readers

error-code (generic function)

Writers

(setf error-code) (generic function)

Direct Default Initargs
InitargValue
:error-code(org.shirakumo.fraf.mixed.cffi:error)

Previous: , Up: Exported definitions   [Contents][Index]

6.1.6 Classes

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

Package

org.shirakumo.fraf.mixed

Source

basic-mixer.lisp (file)

Direct superclasses

mixer (class)

Direct methods
Direct slots
Slot: channels
Initargs

:channels

Initform

2

Readers

channels (generic function)

Writers

(setf channels) (generic function)

Class: buffer ()
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Direct superclasses
  • translatable-foreign-type (class)
  • foreign-struct-type (class)
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

Package

org.shirakumo.fraf.mixed

Source

buffer.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: data
Readers

data (generic function)

Class: bundle ()
Package

org.shirakumo.fraf.mixed

Source

bundle.lisp (file)

Direct superclasses

virtual (class)

Direct methods
Direct slots
Slot: segments
Readers

segments (generic function)

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

Package

org.shirakumo.fraf.mixed

Source

c-object.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: handle
Initargs

:handle

Readers

handle (generic function)

Writers

(setf handle) (generic function)

Class: chain ()
Package

org.shirakumo.fraf.mixed

Source

chain.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct slots
Slot: segments
Initform

(make-array 0 :adjustable t :fill-pointer t)

Readers

segments (generic function)

Class: channel-convert ()
Package

org.shirakumo.fraf.mixed

Source

channel-convert.lisp (file)

Direct superclasses

segment (class)

Direct methods

initialize-instance (method)

Direct Default Initargs
InitargValue
:in(error "in required.")
:out(error "out required.")
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
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

Package

org.shirakumo.fraf.mixed

Source

delay.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
Class: distributor ()
Package

org.shirakumo.fraf.mixed

Source

distribute.lisp (file)

Direct superclasses

segment (class)

Direct methods
  • connect (method)
  • initialize-instance (method)
Class: drain ()
Package

org.shirakumo.fraf.mixed

Source

drain.lisp (file)

Direct superclasses

virtual (class)

Direct methods
Direct slots
Slot: program-name
Initargs

:program-name

Initform

"mixed"

Readers

program-name (generic function)

Writers

(setf program-name) (generic function)

Slot: pack
Readers

pack (generic function)

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

Package

org.shirakumo.fraf.mixed

Source

fader.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:from0.0
:to1.0
:time1.0
:type:cubic-in-out
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
Class: field-info ()
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Direct superclasses
  • translatable-foreign-type (class)
  • foreign-struct-type (class)
Class: frequency-pass ()

A frequency low or high pass filter.

This filters out frequencies below or above a given cutoff frequency.

See SEGMENT
See MAKE-FREQUENCY-PASS
See CUTOFF
See FREQUENCY-PASS
See SAMPLERATE
See BYPASS

Package

org.shirakumo.fraf.mixed

Source

frequency-pass.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:pass:low
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
Class: gate ()
Package

org.shirakumo.fraf.mixed

Source

gate.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
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

Package

org.shirakumo.fraf.mixed

Source

generator.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:type:sine
:frequency440
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
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

Package

org.shirakumo.fraf.mixed

Source

ladspa.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:file(error "ladspa file required.")
:index0
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
Class: mixer ()

Superclass for segments that mix a variable number of sources together.

See SEGMENT
See ADD
See WITHDRAW
See SOURCES
See SOURCE

Package

org.shirakumo.fraf.mixed

Source

mixer.lisp (file)

Direct superclasses

segment (class)

Direct subclasses
Direct methods
Direct slots
Slot: free-locations
Readers

free-locations (generic function)

Writers

(setf free-locations) (generic function)

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

Package

org.shirakumo.fraf.mixed

Source

noise.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:type:pink
Class: pack ()
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Direct superclasses
  • translatable-foreign-type (class)
  • foreign-struct-type (class)
Class: pack ()
Package

org.shirakumo.fraf.mixed

Source

pack.lisp (file)

Direct superclasses
Direct methods
Direct slots
Slot: data
Readers

data (generic function)

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. To change the resampling method,
use the :RESAMPLER method. The value must be a
pointer to a C function of the following signature:

int resample(struct mixed_buffer *in,
uint32_t in_samplerate,
struct mixed_buffer *out,
uint32_t out_samplerate,
uint32_t out_samples)

Three such resampling functions are available out
of the box:

- MIXED:RESAMPLE-NEAREST
- MIXED:RESAMPLE-LINEAR
- MIXED:RESAMPLE-CUBIC

See mixed.h
See PACKED-AUDIO
See SEGMENT
See MAKE-PACKER
See *DEFAULT-SAMPLERATE*

Package

org.shirakumo.fraf.mixed

Source

packer.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct slots
Slot: pack
Initargs

:pack

Initform

(error "pack required")

Readers

pack (generic function)

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

Package

org.shirakumo.fraf.mixed

Source

pitch.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:pitch1.0
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
Class: quantize ()
Package

org.shirakumo.fraf.mixed

Source

quantize.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:steps(error "steps required.")
Class: queue ()
Package

org.shirakumo.fraf.mixed

Source

queue.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct slots
Slot: segments
Initform

(make-array 0 :adjustable t :fill-pointer t)

Readers

segments (generic function)

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

Package

org.shirakumo.fraf.mixed

Source

repeat.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
Class: segment ()
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Direct superclasses
  • translatable-foreign-type (class)
  • foreign-struct-type (class)
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

Package

org.shirakumo.fraf.mixed

Source

segment.lisp (file)

Direct superclasses

c-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: inputs
Readers

inputs (generic function)

Slot: outputs
Readers

outputs (generic function)

Slot: info
Readers

direct-info (generic function)

Writers

(setf direct-info) (generic function)

Class: segment-info ()
Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)

Direct superclasses
  • translatable-foreign-type (class)
  • foreign-struct-type (class)
Class: source ()
Package

org.shirakumo.fraf.mixed

Source

source.lisp (file)

Direct superclasses

virtual (class)

Direct methods
Direct slots
Slot: pack
Readers

pack (generic function)

Slot: byte-position
Initform

0

Readers

byte-position (generic function)

Writers

(setf byte-position) (generic function)

Slot: done-p
Readers

done-p (generic function)

Writers

(setf done-p) (generic function)

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*

Package

org.shirakumo.fraf.mixed

Source

space-mixer.lisp (file)

Direct superclasses

mixer (class)

Direct methods
Direct Default Initargs
InitargValue
:samplerateorg.shirakumo.fraf.mixed:*default-samplerate*
Class: speed-change ()
Package

org.shirakumo.fraf.mixed

Source

speed-change.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:speed-factor1.0
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. To change the resampling method,
use the :RESAMPLER method. The value must be a
pointer to a C function of the following signature:

int resample(struct mixed_buffer *in,
size_t in_samplerate,
struct mixed_buffer *out,
size_t out_samplerate,
size_t out_samples)

Three such resampling functions are available out
of the box:

- MIXED:RESAMPLE-NEAREST
- MIXED:RESAMPLE-LINEAR
- MIXED:RESAMPLE-CUBIC

See PACKED-AUDIO
See SEGMENT
See MAKE-UNPACKER
See *DEFAULT-SAMPLERATE*

Package

org.shirakumo.fraf.mixed

Source

unpacker.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct slots
Slot: pack
Initargs

:pack

Initform

(error "pack required")

Readers

pack (generic function)

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

Package

org.shirakumo.fraf.mixed

Source

virtual.lisp (file)

Direct superclasses

segment (class)

Direct subclasses
Direct methods
Class: void ()
Package

org.shirakumo.fraf.mixed

Source

null.lisp (file)

Direct superclasses

segment (class)

Direct methods

initialize-instance (method)

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

Package

org.shirakumo.fraf.mixed

Source

volume-control.lisp (file)

Direct superclasses

segment (class)

Direct methods
Direct Default Initargs
InitargValue
:volume1.0
:pan0.0
Class: zero ()
Package

org.shirakumo.fraf.mixed

Source

null.lisp (file)

Direct superclasses

segment (class)

Direct methods

initialize-instance (method)


Previous: , Up: Definitions   [Contents][Index]

6.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.1 Special variables

Special Variable: *c-object-table*

A weak value table associating pointer addresses to corresponding objects.

This table keeps track of which foreign data is tracked
by which lisp instance.

See POINTER->OBJECT
See C-OBJECT

Package

org.shirakumo.fraf.mixed

Source

c-object.lisp (file)

Special Variable: *here*

Variable containing the path to the low-level.lisp file.

Package

org.shirakumo.fraf.mixed.cffi

Source

low-level.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

6.2.2 Macros

Macro: define-accessor NAME CLASS FFI

Define a new accessor wrapper for a CFFI struct function.

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: define-callback NAME RETURN ARGS ERROR-RETURN &body BODY

Defines a new callback that handles errors automatically.

If an error occurs within BODY, the ERROR-RETURN form is instead evaluated and its value returned.

See CFFI:DEFCALLBACK

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: define-delegated-slot-accessor NAME CLASS ACCESSOR

Define an accessor that delegates its call to a slot of the instance.

Generates the necessary accessor methods to wrap
the access.

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: define-field-accessor NAME CLASS TYPE &optional ENUM

Define an accessor for a segment’s field.

Generates the necessary methods on FIELD as well as convenience wrapper methods.

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: define-field-reader NAME CLASS TYPE &optional ENUM
Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: define-field-writer NAME CLASS TYPE &optional ENUM
Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: define-input-vector-field-accessor NAME CLASS FIELD ENUM

Define an accessor for a segment’s input vector value field.

Generates the necessary methods on FIELD as well as convenience wrapper methods. The values should be
lists or vectors of three floats.

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: define-std-callback NAME ARGS &body BODY

Define a standard callback function.

Standard means that the function will return 1 on success and 0 on abnormal exit.

See DEFINE-CALLBACK

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: define-vector-field-accessor NAME CLASS ENUM

Define an accessor for a segment’s vector value field.

Generates the necessary methods on FIELD as well as convenience wrapper methods. The values should be lists or vectors of three floats.

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: do-sequence (I EL SEQUENCE &optional RESULT) &body BODY
Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: with-buffer-fields (READ WRITE FULL-R2) BUFFER &body BODY
Package

org.shirakumo.fraf.mixed

Source

bip-buffer.lisp (file)

Macro: with-cleanup-on-failure CLEANUP &body BODY

If the body unwinds abnormally, CLEANUP is run.

Package

org.shirakumo.fraf.mixed

Source

toolkit.lisp (file)

Macro: with-error-on-failure (&optional DATUM &rest ARGS) &body BODY

Shorthand to handle return values of C functions.

If the last fo