Cinder  0.9.1
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
cinder::audio Namespace Reference

Namespaces

 cocoa
 
 dsp
 
 msw
 

Classes

class  AddNode
 
class  AudioContextExc
 
class  AudioDeviceExc
 
class  AudioExc
 
class  AudioFileExc
 
class  AudioFormatExc
 
class  BufferBaseT
 
class  BufferDynamicT
 
class  BufferInterleavedT
 
class  BufferPlayerNode
 
class  BufferRecorderNode
 
class  BufferSpectralT
 
class  BufferT
 
class  CallbackProcessorNode
 
class  ChannelRouterNode
 
class  Context
 
class  DelayNode
 
class  Device
 
class  DeviceManager
 
class  DivideNode
 
class  Event
 
class  FilePlayerNode
 
class  FilterBandPassNode
 
class  FilterBiquadNode
 
class  FilterHighPassNode
 
class  FilterLowPassNode
 
struct  FreeDeleter
 
class  GainNode
 
class  GenNode
 
class  GenNoiseNode
 
class  GenOscNode
 
class  GenPhasorNode
 
class  GenPulseNode
 
class  GenSineNode
 
class  GenTableNode
 
class  GenTriangleNode
 
class  InputDeviceNode
 
class  InputNode
 
class  MathNode
 
class  MonitorNode
 
class  MonitorSpectralNode
 
class  MultiplyNode
 
class  Node
 
class  NodeAutoPullable
 
class  NodeCycleExc
 
class  OutputDeviceNode
 
class  OutputNode
 
class  Pan2dNode
 
class  Param
 
class  SamplePlayerNode
 
class  SampleRecorderNode
 
struct  ScopedEnableContext
 
struct  ScopedEnableNode
 
class  Source
 
class  SourceFile
 
class  SourceFileOggVorbis
 
class  SubtractNode
 
class  TargetFile
 
class  Voice
 
class  VoiceCallbackProcessor
 
class  VoiceSamplePlayerNode
 
class  WaveTable
 
class  WaveTable2d
 

Typedefs

typedef std::unique_ptr< float, FreeDeleter< float > > AlignedArrayPtr
 
typedef std::unique_ptr< double, FreeDeleter< double > > AlignedArrayPtrd
 
typedef BufferT< float > Buffer
 
typedef BufferInterleavedT< float > BufferInterleaved
 
typedef BufferSpectralT< float > BufferSpectral
 
typedef BufferDynamicT< BufferBufferDynamic
 
typedef BufferDynamicT< BufferInterleavedBufferDynamicInterleaved
 
typedef BufferDynamicT< BufferSpectralBufferDynamicSpectral
 
typedef std::shared_ptr< BufferBufferRef
 
typedef std::shared_ptr< BufferInterleavedBufferInterleavedRef
 
typedef std::shared_ptr< BufferSpectralBufferSpectralRef
 
typedef std::shared_ptr< BufferDynamicBufferDynamicRef
 
typedef std::shared_ptr< BufferDynamicInterleavedBufferDynamicInterleavedRef
 
typedef std::shared_ptr< BufferDynamicSpectralBufferDynamicSpectralRef
 
typedef std::shared_ptr< class ChannelRouterNodeChannelRouterNodeRef
 
typedef std::shared_ptr< class DelayNodeDelayNodeRef
 
typedef std::shared_ptr< class DeviceDeviceRef
 
typedef std::shared_ptr< class FilterLowPassNodeFilterLowPassNodeRef
 
typedef std::shared_ptr< class FilterHighPassNodeFilterHighPassNodeRef
 
typedef std::shared_ptr< class FilterBandPassNodeFilterBandPassNodeRef
 
typedef std::shared_ptr< class GainNodeGainNodeRef
 
typedef std::shared_ptr< class GenNodeGenNodeRef
 
typedef std::shared_ptr< class GenNoiseNodeGenNoiseNodeRef
 
typedef std::shared_ptr< class GenPhasorNodeGenPhasorNodeRef
 
typedef std::shared_ptr< class GenSineNodeGenSineNodeRef
 
typedef std::shared_ptr< class GenTriangleNodeGenTriangleNodeRef
 
typedef std::shared_ptr< class GenTableNodeGenTableNodeRef
 
typedef std::shared_ptr< class GenOscNodeGenOscNodeRef
 
typedef std::shared_ptr< class GenPulseNodeGenPulseNodeRef
 
typedef std::shared_ptr< class InputNodeInputNodeRef
 
typedef std::shared_ptr< class InputDeviceNodeInputDeviceNodeRef
 
typedef std::shared_ptr< class CallbackProcessorNodeCallbackProcessorNodeRef
 
typedef std::function< void(Buffer *, size_t)> CallbackProcessorFn
 
typedef std::shared_ptr< class MonitorNodeMonitorNodeRef
 
typedef std::shared_ptr< class MonitorSpectralNodeMonitorSpectralNodeRef
 
typedef std::shared_ptr< class ContextContextRef
 
typedef std::shared_ptr< class NodeNodeRef
 
typedef std::shared_ptr< class MathNodeMathNodeRef
 
typedef std::shared_ptr< class AddNodeAddNodeRef
 
typedef std::shared_ptr< class SubtractNodeSubtractNodeRef
 
typedef std::shared_ptr< class MultiplyNodeMultiplyNodeRef
 
typedef std::shared_ptr< class DivideNodeDivideNodeRef
 
typedef std::shared_ptr< class OutputNodeOutputNodeRef
 
typedef std::shared_ptr< class OutputDeviceNodeOutputDeviceNodeRef
 
typedef std::shared_ptr< class Pan2dNodePan2dNodeRef
 
typedef std::shared_ptr< class EventEventRef
 
typedef std::function< void(float *, size_t, double, double, float, float)> RampFn
 
typedef std::shared_ptr< class SamplePlayerNodeSamplePlayerNodeRef
 
typedef std::shared_ptr< class BufferPlayerNodeBufferPlayerNodeRef
 
typedef std::shared_ptr< class FilePlayerNodeFilePlayerNodeRef
 
typedef std::shared_ptr< class SampleRecorderNodeSampleRecorderNodeRef
 
typedef std::shared_ptr< class BufferRecorderNodeBufferRecorderNodeRef
 
typedef std::shared_ptr< class SourceSourceRef
 
typedef std::shared_ptr< class SourceFileSourceFileRef
 
typedef std::shared_ptr< class TargetFileTargetFileRef
 
typedef std::shared_ptr< class VoiceVoiceRef
 
typedef std::shared_ptr< class VoiceSamplePlayerNodeVoiceSamplePlayerNodeRef
 
typedef std::shared_ptr< class WaveTableWaveTableRef
 
typedef std::shared_ptr< class WaveTable2dWaveTable2dRef
 

Enumerations

enum  SampleType { SampleType::INT_16, SampleType::INT_24, SampleType::FLOAT_32 }
 
enum  WaveformType { WaveformType::SINE, WaveformType::SQUARE, WaveformType::SAWTOOTH, WaveformType::TRIANGLE }
 

Functions

template<typename T >
std::unique_ptr< T, FreeDeleter< T > > makeAlignedArray (size_t size, size_t alignment=16)
 
const ChannelRouterNodeRefoperator>> (const NodeRef &input, const ChannelRouterNode::RouteConnector &route)
 
Contextmaster ()
 
const NodeRefoperator>> (const NodeRef &input, const NodeRef &output)
 
void rampLinear (float *array, size_t count, double t, double tIncr, float valueBegin, float valueEnd)
 
void rampInQuad (float *array, size_t count, double t, double tIncr, float valueBegin, float valueEnd)
 
void rampOutQuad (float *array, size_t count, double t, double tIncr, float valueBegin, float valueEnd)
 
SourceFileRef load (const DataSourceRef &dataSource, size_t sampleRate=0)
 
float linearToDecibel (float gainLinear)
 
void linearToDecibel (float *array, size_t length)
 
float decibelToLinear (float gainDecibels)
 
void decibelToLinear (float *array, size_t length)
 
float freqToMidi (float freq)
 
float midiToFreq (float midi)
 
uint64_t timeToFrame (double timeSeconds, double sampleRate)
 
bool thresholdBuffer (const Buffer &buffer, float threshold, size_t *recordFrame=nullptr)
 

Variables

bool sIsRegisteredForCleanup = false
 
const float kGainNegative100Decibels = 0.00001f
 
const float kGainNegative100DecibelsInverse = 1.0f / kGainNegative100Decibels
 

Typedef Documentation

typedef std::unique_ptr<float, FreeDeleter<float> > cinder::audio::AlignedArrayPtr
typedef std::unique_ptr<double, FreeDeleter<double> > cinder::audio::AlignedArrayPtrd
typedef std::shared_ptr<Buffer> cinder::audio::BufferRef
typedef std::shared_ptr<class DelayNode> cinder::audio::DelayNodeRef
typedef std::shared_ptr<class Device> cinder::audio::DeviceRef
typedef std::shared_ptr<class GainNode> cinder::audio::GainNodeRef
typedef std::shared_ptr<class GenNode> cinder::audio::GenNodeRef

Typedef for a shared_ptr to the base GenNode. If all you need to set on the GenNode is the frequency, you can reference the Node with this.

typedef std::shared_ptr<class GenNoiseNode> cinder::audio::GenNoiseNodeRef
typedef std::shared_ptr<class GenPhasorNode> cinder::audio::GenPhasorNodeRef
typedef std::shared_ptr<class GenSineNode> cinder::audio::GenSineNodeRef
typedef std::shared_ptr<class GenTriangleNode> cinder::audio::GenTriangleNodeRef
typedef std::shared_ptr<class GenTableNode> cinder::audio::GenTableNodeRef
typedef std::shared_ptr<class GenOscNode> cinder::audio::GenOscNodeRef
typedef std::shared_ptr<class GenPulseNode> cinder::audio::GenPulseNodeRef
typedef std::shared_ptr<class InputNode> cinder::audio::InputNodeRef
typedef std::shared_ptr<class InputDeviceNode> cinder::audio::InputDeviceNodeRef
typedef std::function<void( Buffer *, size_t )> cinder::audio::CallbackProcessorFn

Callback used to allow simple audio processing without subclassing a Node. First parameter is the Buffer to which to write samples, second parameter is the samplerate.

typedef std::shared_ptr<class MonitorNode> cinder::audio::MonitorNodeRef
typedef std::shared_ptr< class Context > cinder::audio::ContextRef
typedef std::shared_ptr< class Node > cinder::audio::NodeRef
typedef std::shared_ptr<class MathNode> cinder::audio::MathNodeRef
typedef std::shared_ptr<class AddNode> cinder::audio::AddNodeRef
typedef std::shared_ptr<class SubtractNode> cinder::audio::SubtractNodeRef
typedef std::shared_ptr<class MultiplyNode> cinder::audio::MultiplyNodeRef
typedef std::shared_ptr<class DivideNode> cinder::audio::DivideNodeRef
typedef std::shared_ptr<class OutputNode> cinder::audio::OutputNodeRef
typedef std::shared_ptr<class OutputDeviceNode> cinder::audio::OutputDeviceNodeRef
typedef std::shared_ptr<class Pan2dNode> cinder::audio::Pan2dNodeRef
typedef std::shared_ptr<class Event> cinder::audio::EventRef

A Reference to Event's returned by the ramping methods.

See also
applyRamp()
appendRamp()
typedef std::function<void ( float *, size_t, double, double, float, float )> cinder::audio::RampFn

Ramping function that determines the curvature of a ramp.

typedef std::shared_ptr<class SamplePlayerNode> cinder::audio::SamplePlayerNodeRef
typedef std::shared_ptr<class BufferPlayerNode> cinder::audio::BufferPlayerNodeRef
typedef std::shared_ptr<class FilePlayerNode> cinder::audio::FilePlayerNodeRef
typedef std::shared_ptr<class Source> cinder::audio::SourceRef
typedef std::shared_ptr<class SourceFile> cinder::audio::SourceFileRef
typedef std::shared_ptr<class TargetFile> cinder::audio::TargetFileRef
typedef std::shared_ptr<class Voice> cinder::audio::VoiceRef
typedef std::shared_ptr<class WaveTable> cinder::audio::WaveTableRef
typedef std::shared_ptr<class WaveTable2d> cinder::audio::WaveTable2dRef

Enumeration Type Documentation

Identifiers sample types. Primarily used for encoding audio at different bitrates.

Enumerator
INT_16 
INT_24 
FLOAT_32 

Identifiers for the classic waveform types.

Enumerator
SINE 
SQUARE 
SAWTOOTH 
TRIANGLE 

Function Documentation

template<typename T >
std::unique_ptr<T, FreeDeleter<T> > cinder::audio::makeAlignedArray ( size_t  size,
size_t  alignment = 16 
)

Returns an array of size elements of type T, aligned by alignment.

const ChannelRouterNodeRef & cinder::audio::operator>> ( const NodeRef input,
const ChannelRouterNode::RouteConnector route 
)

Enable routing connection syntax:

input >> output->route( inputChannelIndex, outputChannelIndex, numChannels );

.

Returns
the output ChannelRouterNode after connection is made.
Context* cinder::audio::master ( )

Returns the master Context that manages hardware I/O and real-time processing, which is platform specific. If none is available, returns null.

const NodeRef& cinder::audio::operator>> ( const NodeRef input,
const NodeRef output 
)

Enable connection syntax: input >> output, which is equivelant to input->connect( output ). Enables chaining.

Returns
the connected output
void cinder::audio::rampLinear ( float *  array,
size_t  count,
double  t,
double  tIncr,
float  valueBegin,
float  valueEnd 
)

Array-based linear ramping function.

void cinder::audio::rampInQuad ( float *  array,
size_t  count,
double  t,
double  tIncr,
float  valueBegin,
float  valueEnd 
)

Array-based quadradic (t^2) ease-in ramping function.

void cinder::audio::rampOutQuad ( float *  array,
size_t  count,
double  t,
double  tIncr,
float  valueBegin,
float  valueEnd 
)

Array-based quadradic (t^2) ease-out ramping function.

SourceFileRef cinder::audio::load ( const DataSourceRef dataSource,
size_t  sampleRate = 0 
)

Convenience method for loading a SourceFile from dataSource.

Returns
SourceFileRef.
See also
SourceFile::create()
float cinder::audio::linearToDecibel ( float  gainLinear)

Scale gainLinear from linear (0-1) to decibel (0-100) scale.

void cinder::audio::linearToDecibel ( float *  array,
size_t  length 
)

Scale array of length length from linear (0-1) to decibel (0-100) scale.

float cinder::audio::decibelToLinear ( float  gainDecibels)

Scale gainLinear from decibel (0-100) to linear (0-1) scale.

void cinder::audio::decibelToLinear ( float *  array,
size_t  length 
)

Scale array of length length from decibel (0-100) to linear (0-1) scale.

float cinder::audio::freqToMidi ( float  freq)

Scale freq from frequency (hertz) to MIDI note values, so as one can refer to pitches using the equal temperament scale.

For example, 'middle C' equals 261.6 hertz and has a midi value of 60. Adapted from Pure Data's ftom function.

float cinder::audio::midiToFreq ( float  midi)

Scale midi from MIDI note values to frequency (hertz). Adapted from Pure Data's mtof function.

See also
freqToMidi()
uint64_t cinder::audio::timeToFrame ( double  timeSeconds,
double  sampleRate 
)

Convert timeSeconds to frames running at sampleRate, rounding to the nearest integral frame.

bool cinder::audio::thresholdBuffer ( const Buffer buffer,
float  threshold,
size_t *  recordFrame = nullptr 
)

Checks if the absolute value of any sample in buffer is over threshold. Optionally provide recordFrame to record the frame index.

Returns
true if one is found, false otherwise.

Variable Documentation

bool cinder::audio::sIsRegisteredForCleanup = false
const float cinder::audio::kGainNegative100Decibels = 0.00001f
const float cinder::audio::kGainNegative100DecibelsInverse = 1.0f / kGainNegative100Decibels