Package uk.org.toot.audio.core

This package provides the core composite model for the Audio problem domain, separating the concerns of processing (AudioProcess) from the control of that processing (AudioControls).

See:
          Description

Interface Summary
AudioProcess The simple contract for an AudioProcess, the fundamental unit of digital signal processing, separate from the concern of control.
 

Class Summary
AudioBuffer Encapsulates buffered multi-channel sampled audio.
AudioBuffer.MetaInfo MetaInfo holds meta information for an AudioBuffer.
AudioControls AudioControls are composite Controls which control an AudioProcess, defined in 'user' terms.
AudioControlsChain AudioControlsChain extends CompoundControlChain to provide information regarding audio control services which may be plugged in.
AudioProcessAdapter AudioProcessAdapter adapts an AudioProcess instance, hence by making a concrete implementation you can override operations of that instance.
AudioProcessChain A composite AudioProcess that processes its child processes sequentially and modifies its structure to track its associated AudioControlsChain in a thread-safe manner.
AudioServices AudioServices specialises Services with static methods to simplify the provision of plugin audio services extending AudioProcess and AudioControls.
ChannelFormat ChannelFormat provides information about AudioBuffer channels.
FloatDenormals Provides ways to deal with FPU denormals, which, if left in audio data tend to cause exceptionally high CPU uage.
KVolumeUtils KVolumeUtils provides conversion methods between linear and logarithmic (dB).
NullAudioProcess An AudioProcess that does nothing which is useful for testing.
SilentInputAudioProcess An input AudioProcess which provides silence with a specified ChannelFormat and source label.
SimpleAudioProcess A simple AudioProcess with empty open and close implementations.
 

Package uk.org.toot.audio.core Description

This package provides the core composite model for the Audio problem domain, separating the concerns of processing (AudioProcess) from the control of that processing (AudioControls).

AudioBuffer encapsulates buffered multi-channel audio data.

AudioProcess defines a simple contract for digital signal processing.

AudioControls specialises CompoundControl for the audio problem domain.

Generally AudioProcesses are the digital signal processing implementations implied by AudioControls. If the AudioControls were a set of potentiometers and switches, the AudioProcess would be the processing circuitry that uses those controls. The association between the two may be direct if the user variables implied by the controls are directly usable by the process or it may be indirect in the more general case.

AudioControlsChain specialises CompoundControlChain for the audio problems domain. It is equivalent to the controls on a mixer strip or a multi-fx unit.

AudioProcessChain is a composite AudioProcess that processes its child AudioProcesses sequentially. Importantly, it also tracks its associated AudioControlsChain so that any structural changes to that control chain are accompanied by similar structural changes to the process chain in a thread-safe manner. It is suitable for implementing the digital signal processing required by mixer strips or multi-fx units.

AudioServices specialises Services for the audio problem domain to provide lookup and provision of services. Both key parts of this package, AudioProcess and AudioControls may be provided as plugin services. This provides functionality similar to VSTs from Steinberg.

ChannelFormat defines the meaning of each channel in an AudioBuffer.

Package uk.org.toot.audio.core UML Class Diagram

AudioProcess implementations are always coloured red, AudioControls are always coloured blue. Additionally, interfaces are always coloured yellow.



Copyright © 2004, 2005, 2006, 2007 Steve Taylor. All Rights Reserved.