The cl-qoa Reference Manual

This is the cl-qoa Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 05:18:15 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 cl-qoa

An implementation of the Quite Okay Audio format.

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

https://shinmera.github.io/cl-qoa/

Source Control

(GIT https://github.com/shinmera/cl-qoa.git)

Bug Tracker

https://github.com/shinmera/cl-qoa/issues

License

zlib

Version

1.0.0

Dependencies
  • documentation-utils (system).
  • binary-structures (system).
Source

cl-qoa.asd.

Child Components

3 Files

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


3.1 Lisp


3.1.1 cl-qoa/cl-qoa.asd

Source

cl-qoa.asd.

Parent Component

cl-qoa (system).

ASDF Systems

cl-qoa.


3.1.2 cl-qoa/package.lisp

Source

cl-qoa.asd.

Parent Component

cl-qoa (system).

Packages

org.shirakumo.qoa.


3.1.3 cl-qoa/format.lisp

Dependency

package.lisp (file).

Source

cl-qoa.asd.

Parent Component

cl-qoa (system).

Public Interface
Internals

3.1.4 cl-qoa/documentation.lisp

Dependency

format.lisp (file).

Source

cl-qoa.asd.

Parent Component

cl-qoa (system).


4 Packages

Packages are listed by definition order.


4.1 org.shirakumo.qoa

Source

package.lisp.

Use List
  • common-lisp.
  • org.shirakumo.binary-structures.types.
Public Interface
Internals

5 Definitions

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


5.1 Public Interface


5.1.1 Ordinary functions

Function: channel-layout (count)

Returns the layout of the channels within the packed sample buffer for a given channel count.

The following speaker types are provided:
:center :left :right :left-front :right-front :subwoofer :left-rear
:right-rear :left-side :right-side

Package

org.shirakumo.qoa.

Source

format.lisp.

Function: convert-wav (in &key out if-exists)

Converts a wav file to a QOA file.

IN should be the path to a RIFF WAVE file with sint16_le encoded audio samples to convert. OUT should be the path to which the QOA file should be written.

Returns OUT.

If the source file is not a wave file or does not contain the correct sample format, an error is signalled.

See ENCODE-FILE

Package

org.shirakumo.qoa.

Source

format.lisp.

Function: decode-file (file &rest args)

Decodes a QOA file to a sample buffer.

Returns three values:
The sample buffer,
The number of channels of audio,
The samplerate of the audio.

This assumes that the entire file has a constant channel count and samplerate.

See DECODE-TO-BUFFER
See DECODE-FILE

Package

org.shirakumo.qoa.

Source

format.lisp.

Function: decode-frame (frame samples start end)

Decodes a single audio frame to a raw sample buffer.

FRAME must be a FRAME instance, SAMPLES must be a
(SIMPLE-ARRAY (SIGNED-BYTE 16) (*)) and START and END must be indices into the SAMPLES array denoting the region to fill.

Returns the index into the SAMPLES array up to which samples were written, same as CL:READ-SEQUENCE.

If the sample buffer is not big enough to contain the entire frame, START is returned.

See FRAME (type)

Package

org.shirakumo.qoa.

Source

format.lisp.

Function: decode-to-buffer (file samples &key frame-start start end)

Decodes the entire FILE to a raw sample buffer.

FILE must be a FILE, SAMPLES must be a
(SIMPLE-ARRAY (SIGNED-BYTE 16) (*)) or a CFFI:FOREIGN-POINTER and START and END must be indices into the SAMPLES array denoting the region to fill. FRAME-START can designate the first frame of the file that should be decoded.

Returns the index into the SAMPLES array up to which samples were written, same as CL:READ-SEQUENCE, as well as the index of the next frame to be decoded.

This assumes that the entire file has a constant channel count and samplerate.

See FILE (type)
See DECODE-FRAME

Package

org.shirakumo.qoa.

Source

format.lisp.

Function: encode-file (samples output &rest args &key channels samplerate &allow-other-keys)

Encode a sample buffer and write it to storage immediately.

OUTPUT may be a storage backend supported by WRITE-FILE, or the symbol VECTOR, in which case a vector of sufficient size is allocated for you and returned.

See FILE (type)
See ENCODE-FROM-BUFFER
See WRITE-FILE

Package

org.shirakumo.qoa.

Source

format.lisp.

Function: encode-from-buffer (samples &key channels samplerate)

Creates a FILE from a buffer of audio samples.

SAMPLES must be a (SIMPLE-ARRAY (SIGNED-BYTE 16) (*)), CHANNELS should be within [1,8], and SAMPLERATE within [1,16777215].

Returns a fresh FILE instance.

See FILE (type)

Package

org.shirakumo.qoa.

Source

format.lisp.

Function: read-file (storage &rest args)

Reads a QOA file from its binary representation.

The STORAGE may be any storage backend supported by binary-structures.

Returns a fresh FILE instance as well as the index at which reading stopped, if applicable.

See FILE (type)

Package

org.shirakumo.qoa.

Source

format.lisp.

Function: write-file (value storage &rest args)

Writes a QOA file to its binary representation.

The STORAGE may be any storage backend supported by binary-structures. It must have enough space available to contain the entire file. To check this beforehand, you can call OCTET-SIZE.

Returns the index at which writing stopped.

See FILE (type)
See OCTET-SIZE

Package

org.shirakumo.qoa.

Source

format.lisp.


5.1.2 Generic functions

Generic Function: channels (frame)

Returns the number of channels of the file or frame.

See FILE (type)
See FRAME (type)

Package

org.shirakumo.qoa.

Methods
Method: channels ((file file))
Source

format.lisp.

Method: channels ((frame frame))
Source

format.lisp.

Generic Function: frames (file)

Returns the vector of FRAME instances of the FILE

See FILE (type)
See FRAME (type)

Package

org.shirakumo.qoa.

Methods
Method: frames ((file file))
Source

format.lisp.

Generic Function: octet-size (frame)

Returns the octet-size of the QOA file or frame if it were written out.

See FILE (type)
See FRAME (type)

Package

org.shirakumo.qoa.

Methods
Method: octet-size ((file file))
Source

format.lisp.

Method: octet-size ((frame frame))
Source

format.lisp.

Generic Function: samplerate (frame)

Returns the samplerate of the file or frame in Herz.

See FILE (type)
See FRAME (type)

Package

org.shirakumo.qoa.

Methods
Method: samplerate ((file file))
Source

format.lisp.

Method: samplerate ((frame frame))
Source

format.lisp.

Generic Function: samples/channel (frame)

Returns the number of samples per channel in the file or frame.

See FILE (type)
See FRAME (type)

Package

org.shirakumo.qoa.

Methods
Method: samples/channel ((file file))
Source

format.lisp.

Method: samples/channel ((frame frame))
Source

format.lisp.


5.1.3 Standalone methods

Method: octet-size ((value file))
Package

org.shirakumo.binary-structures.

Source

format.lisp.

Method: octet-size ((value frame))
Package

org.shirakumo.binary-structures.

Source

format.lisp.

Method: print-object ((file file) stream)
Source

format.lisp.

Method: print-object ((frame frame) stream)
Source

format.lisp.

Method: print-object ((state state) stream)
Source

format.lisp.


5.1.4 Structures

Structure: file

Representation of an encoded QOA file.

QOA files contain PCM-encoded audio with a 16-bit signed integer representation. Each file is composed out of multiple frames of encoded data, with possibly variable numbers of channels and samplerates per frame, though this is not typically the case.

See OCTET-SIZE
See SAMPLES/CHANNEL
See FRAMES
See SAMPLERATE
See CHANNELS
See READ-FILE
See WRITE-FILE
See ENCODE-FILE
See ENCODE-FROM-BUFFER
See DECODE-FRAME
See DECODE-TO-BUFFER

Package

org.shirakumo.qoa.

Source

format.lisp.

Direct superclasses

io-structure-object.

Direct methods
Direct slots
Slot: samples
Type

(unsigned-byte 32)

Initform

0

Readers

file-samples.

Writers

(setf file-samples).

Slot: frames
Type

(array org.shirakumo.qoa:frame (*))

Initform

(make-array 0 :element-type (quote org.shirakumo.qoa:frame))

Readers

file-frames.

Writers

(setf file-frames).

Structure: frame

Representation of an audio frame as part of a QOA file.

A frame contains the encoding of the sample data, a LMS state buffer, and an array of encoded audio slices.

See OCTET-SIZE
See SAMPLERATE
See CHANNELS
See DECODE-FRAME
See SAMPLES/CHANNEL
See FILE (type)

Package

org.shirakumo.qoa.

Source

format.lisp.

Direct superclasses

io-structure-object.

Direct methods
Direct slots
Slot: channels
Type

(unsigned-byte 8)

Initform

0

Readers

frame-channels.

Writers

(setf frame-channels).

Slot: samplerate
Type

(unsigned-byte 24)

Initform

0

Readers

frame-samplerate.

Writers

(setf frame-samplerate).

Slot: samples/channel
Type

(unsigned-byte 16)

Initform

0

Readers

frame-samples/channel.

Writers

(setf frame-samples/channel).

Slot: size
Type

(unsigned-byte 16)

Initform

0

Readers

frame-size.

Writers

(setf frame-size).

Slot: state
Type

(array (simple-array (signed-byte 16) (8)) (*))

Initform

(make-array 0 :element-type (quote (simple-array (signed-byte 16) (8))))

Readers

frame-state.

Writers

(setf frame-state).

Slot: slices
Type

(array (unsigned-byte 64) (*))

Initform

(make-array 0 :element-type (quote (unsigned-byte 64)))

Readers

frame-slices.

Writers

(setf frame-slices).


5.2 Internals


5.2.1 Constants

Constant: dequantization-table
Package

org.shirakumo.qoa.

Source

format.lisp.

Constant: frame-length
Package

org.shirakumo.qoa.

Source

format.lisp.

Constant: lms-length
Package

org.shirakumo.qoa.

Source

format.lisp.

Constant: max-channels
Package

org.shirakumo.qoa.

Source

format.lisp.

Constant: quantization-table
Package

org.shirakumo.qoa.

Source

format.lisp.

Constant: reciprocal-table
Package

org.shirakumo.qoa.

Source

format.lisp.

Constant: scale-factor-table
Package

org.shirakumo.qoa.

Source

format.lisp.

Constant: slice-length
Package

org.shirakumo.qoa.

Source

format.lisp.

Constant: slices/frame
Package

org.shirakumo.qoa.

Source

format.lisp.


5.2.2 Ordinary functions

Function: clamp (v min max)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: clamp-16 (v)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: compute-frame-size (channels slices)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: copy-file (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: copy-frame (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: copy-lms (lms)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: copy-lms* (source)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: copy-state (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: decode-frame/ptr (frame samples start end)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: div (v scale-factor)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: encode-frame (samples start state frame-len)
Package

org.shirakumo.qoa.

Source

format.lisp.

Reader: file-frames (instance)
Writer: (setf file-frames) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

frames.

Function: file-p (object)
Package

org.shirakumo.qoa.

Source

format.lisp.

Reader: file-samples (instance)
Writer: (setf file-samples) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

samples.

Reader: frame-channels (instance)
Writer: (setf frame-channels) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

channels.

Function: frame-p (object)
Package

org.shirakumo.qoa.

Source

format.lisp.

Reader: frame-samplerate (instance)
Writer: (setf frame-samplerate) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

samplerate.

Reader: frame-samples/channel (instance)
Writer: (setf frame-samples/channel) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

samples/channel.

Reader: frame-size (instance)
Writer: (setf frame-size) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

size.

Reader: frame-slices (instance)
Writer: (setf frame-slices) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

slices.

Reader: frame-state (instance)
Writer: (setf frame-state) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

state.

Function: lms-predict (lms)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: lms-update (lms sample residual)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: make-file (&key samples frames)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: make-frame (&key channels samplerate samples/channel size state slices)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: make-lms ()
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: make-state (&key channels samplerate samples lms)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: read-frame (storage &rest args)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: read-io-octet-vector-file (vector start end)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: read-io-octet-vector-frame (vector start end)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: read-io-stream-file (stream)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: read-io-stream-frame (stream)
Package

org.shirakumo.qoa.

Source

format.lisp.

Reader: state-channels (instance)
Writer: (setf state-channels) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

channels.

Reader: state-lms (instance)
Writer: (setf state-lms) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

lms.

Function: state-p (object)
Package

org.shirakumo.qoa.

Source

format.lisp.

Reader: state-samplerate (instance)
Writer: (setf state-samplerate) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

samplerate.

Reader: state-samples (instance)
Writer: (setf state-samples) (instance)
Package

org.shirakumo.qoa.

Source

format.lisp.

Target Slot

samples.

Function: wav-samples (file)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: write-frame (value storage &rest args)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: write-io-octet-vector-file (value vector start end)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: write-io-octet-vector-frame (value vector start end)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: write-io-stream-file (value stream)
Package

org.shirakumo.qoa.

Source

format.lisp.

Function: write-io-stream-frame (value stream)
Package

org.shirakumo.qoa.

Source

format.lisp.


5.2.3 Structures

Structure: state
Package

org.shirakumo.qoa.

Source

format.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: channels
Type

(unsigned-byte 8)

Initform

2

Readers

state-channels.

Writers

(setf state-channels).

Slot: samplerate
Type

(unsigned-byte 32)

Initform

44100

Readers

state-samplerate.

Writers

(setf state-samplerate).

Slot: samples
Type

(unsigned-byte 32)

Initform

0

Readers

state-samples.

Writers

(setf state-samples).

Slot: lms
Type

(simple-array org.shirakumo.qoa::lms (8))

Initform

(map-into (make-array org.shirakumo.qoa::max-channels) (function org.shirakumo.qoa::make-lms))

Readers

state-lms.

Writers

(setf state-lms).


5.2.4 Types

Type: lms ()
Package

org.shirakumo.qoa.

Source

format.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   (  
C   D   E   F   G   L   M   O   P   R   S   W  
Index Entry  Section

(
(setf file-frames): Private ordinary functions
(setf file-samples): Private ordinary functions
(setf frame-channels): Private ordinary functions
(setf frame-samplerate): Private ordinary functions
(setf frame-samples/channel): Private ordinary functions
(setf frame-size): Private ordinary functions
(setf frame-slices): Private ordinary functions
(setf frame-state): Private ordinary functions
(setf state-channels): Private ordinary functions
(setf state-lms): Private ordinary functions
(setf state-samplerate): Private ordinary functions
(setf state-samples): Private ordinary functions

C
channel-layout: Public ordinary functions
channels: Public generic functions
channels: Public generic functions
channels: Public generic functions
clamp: Private ordinary functions
clamp-16: Private ordinary functions
compute-frame-size: Private ordinary functions
convert-wav: Public ordinary functions
copy-file: Private ordinary functions
copy-frame: Private ordinary functions
copy-lms: Private ordinary functions
copy-lms*: Private ordinary functions
copy-state: Private ordinary functions

D
decode-file: Public ordinary functions
decode-frame: Public ordinary functions
decode-frame/ptr: Private ordinary functions
decode-to-buffer: Public ordinary functions
div: Private ordinary functions

E
encode-file: Public ordinary functions
encode-frame: Private ordinary functions
encode-from-buffer: Public ordinary functions

F
file-frames: Private ordinary functions
file-p: Private ordinary functions
file-samples: Private ordinary functions
frame-channels: Private ordinary functions
frame-p: Private ordinary functions
frame-samplerate: Private ordinary functions
frame-samples/channel: Private ordinary functions
frame-size: Private ordinary functions
frame-slices: Private ordinary functions
frame-state: Private ordinary functions
frames: Public generic functions
frames: Public generic functions
Function, (setf file-frames): Private ordinary functions
Function, (setf file-samples): Private ordinary functions
Function, (setf frame-channels): Private ordinary functions
Function, (setf frame-samplerate): Private ordinary functions
Function, (setf frame-samples/channel): Private ordinary functions
Function, (setf frame-size): Private ordinary functions
Function, (setf frame-slices): Private ordinary functions
Function, (setf frame-state): Private ordinary functions
Function, (setf state-channels): Private ordinary functions
Function, (setf state-lms): Private ordinary functions
Function, (setf state-samplerate): Private ordinary functions
Function, (setf state-samples): Private ordinary functions
Function, channel-layout: Public ordinary functions
Function, clamp: Private ordinary functions
Function, clamp-16: Private ordinary functions
Function, compute-frame-size: Private ordinary functions
Function, convert-wav: Public ordinary functions
Function, copy-file: Private ordinary functions
Function, copy-frame: Private ordinary functions
Function, copy-lms: Private ordinary functions
Function, copy-lms*: Private ordinary functions
Function, copy-state: Private ordinary functions
Function, decode-file: Public ordinary functions
Function, decode-frame: Public ordinary functions
Function, decode-frame/ptr: Private ordinary functions
Function, decode-to-buffer: Public ordinary functions
Function, div: Private ordinary functions
Function, encode-file: Public ordinary functions
Function, encode-frame: Private ordinary functions
Function, encode-from-buffer: Public ordinary functions
Function, file-frames: Private ordinary functions
Function, file-p: Private ordinary functions
Function, file-samples: Private ordinary functions
Function, frame-channels: Private ordinary functions
Function, frame-p: Private ordinary functions
Function, frame-samplerate: Private ordinary functions
Function, frame-samples/channel: Private ordinary functions
Function, frame-size: Private ordinary functions
Function, frame-slices: Private ordinary functions
Function, frame-state: Private ordinary functions
Function, lms-predict: Private ordinary functions
Function, lms-update: Private ordinary functions
Function, make-file: Private ordinary functions
Function, make-frame: Private ordinary functions
Function, make-lms: Private ordinary functions
Function, make-state: Private ordinary functions
Function, read-file: Public ordinary functions
Function, read-frame: Private ordinary functions
Function, read-io-octet-vector-file: Private ordinary functions
Function, read-io-octet-vector-frame: Private ordinary functions
Function, read-io-stream-file: Private ordinary functions
Function, read-io-stream-frame: Private ordinary functions
Function, state-channels: Private ordinary functions
Function, state-lms: Private ordinary functions
Function, state-p: Private ordinary functions
Function, state-samplerate: Private ordinary functions
Function, state-samples: Private ordinary functions
Function, wav-samples: Private ordinary functions
Function, write-file: Public ordinary functions
Function, write-frame: Private ordinary functions
Function, write-io-octet-vector-file: Private ordinary functions
Function, write-io-octet-vector-frame: Private ordinary functions
Function, write-io-stream-file: Private ordinary functions
Function, write-io-stream-frame: Private ordinary functions

G
Generic Function, channels: Public generic functions
Generic Function, frames: Public generic functions
Generic Function, octet-size: Public generic functions
Generic Function, samplerate: Public generic functions
Generic Function, samples/channel: Public generic functions

L
lms-predict: Private ordinary functions
lms-update: Private ordinary functions

M
make-file: Private ordinary functions
make-frame: Private ordinary functions
make-lms: Private ordinary functions
make-state: Private ordinary functions
Method, channels: Public generic functions
Method, channels: Public generic functions
Method, frames: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public generic functions
Method, octet-size: Public standalone methods
Method, octet-size: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, samplerate: Public generic functions
Method, samplerate: Public generic functions
Method, samples/channel: Public generic functions
Method, samples/channel: Public generic functions

O
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public generic functions
octet-size: Public standalone methods
octet-size: Public standalone methods

P
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods

R
read-file: Public ordinary functions
read-frame: Private ordinary functions
read-io-octet-vector-file: Private ordinary functions
read-io-octet-vector-frame: Private ordinary functions
read-io-stream-file: Private ordinary functions
read-io-stream-frame: Private ordinary functions

S
samplerate: Public generic functions
samplerate: Public generic functions
samplerate: Public generic functions
samples/channel: Public generic functions
samples/channel: Public generic functions
samples/channel: Public generic functions
state-channels: Private ordinary functions
state-lms: Private ordinary functions
state-p: Private ordinary functions
state-samplerate: Private ordinary functions
state-samples: Private ordinary functions

W
wav-samples: Private ordinary functions
write-file: Public ordinary functions
write-frame: Private ordinary functions
write-io-octet-vector-file: Private ordinary functions
write-io-octet-vector-frame: Private ordinary functions
write-io-stream-file: Private ordinary functions
write-io-stream-frame: Private ordinary functions


A.3 Variables

Jump to:   C   D   F   L   M   Q   R   S  
Index Entry  Section

C
channels: Public structures
channels: Private structures
Constant, dequantization-table: Private constants
Constant, frame-length: Private constants
Constant, lms-length: Private constants
Constant, max-channels: Private constants
Constant, quantization-table: Private constants
Constant, reciprocal-table: Private constants
Constant, scale-factor-table: Private constants
Constant, slice-length: Private constants
Constant, slices/frame: Private constants

D
dequantization-table: Private constants

F
frame-length: Private constants
frames: Public structures

L
lms: Private structures
lms-length: Private constants

M
max-channels: Private constants

Q
quantization-table: Private constants

R
reciprocal-table: Private constants

S
samplerate: Public structures
samplerate: Private structures
samples: Public structures
samples: Private structures
samples/channel: Public structures
scale-factor-table: Private constants
size: Public structures
slice-length: Private constants
slices: Public structures
slices/frame: Private constants
Slot, channels: Public structures
Slot, channels: Private structures
Slot, frames: Public structures
Slot, lms: Private structures
Slot, samplerate: Public structures
Slot, samplerate: Private structures
Slot, samples: Public structures
Slot, samples: Private structures
Slot, samples/channel: Public structures
Slot, size: Public structures
Slot, slices: Public structures
Slot, state: Public structures
state: Public structures