Jamoma API  0.6.0.a19
TTSoundfileLoader Class Reference

Creates an interface to data in a soundfile from disk. More...

#include <TTSoundfileLoader.h>

+ Inheritance diagram for TTSoundfileLoader:
+ Collaboration diagram for TTSoundfileLoader:

Public Member Functions

TTErr setFilePath (const TTValue &newValue)
 Atribute accessor. More...
 
TTErr load (const TTValue &input, TTValue &unusedOutput)
 Public method used to trigger the load process. More...
 
TTErr resizeThenLoad (const TTValue &input, TTValue &unusedOutput)
 Public method similar to load(), except that it will resize the target matrix to match the source soundfile before copying values. More...
 
virtual TTErr test (TTValue &returnedTestInfo)
 Unit test for this object. More...
 
- Public Member Functions inherited from TTSoundfile
TTErr setFilePath (const TTValue &newValue)
 Atribute accessor. More...
 
TTColumnID getNumChannels ()
 Simple data accessor. More...
 
TTFloat64 getSampleRate ()
 Simple data accessor. More...
 
TTRowID getLengthInSamples ()
 Simple data accessor. More...
 
TTFloat64 getLengthInSeconds ()
 Simple data accessor. More...
 
TTSymbol getTitle ()
 Simple data accessor. More...
 
TTSymbol getArtist ()
 Simple data accessor. More...
 
TTSymbol getDate ()
 Simple data accessor. More...
 
TTSymbol getAnnotation ()
 Simple data accessor. More...
 
TTErr peek (const TTRowID frame, const TTColumnID channel, TTSampleValue &value)
 Get the value stored at a specified frame and channel. More...
 
TTErr peeki (const TTFloat64 frame, const TTColumnID channel, TTSampleValue &value)
 Interpolate a value using a floating-point frame and integer channel. More...
 
- Public Member Functions inherited from TTAudioObjectBase
TTErr setMute (const TTValue &value)
 Mute the audio processing routine and zero all output. More...
 
TTErr setMaxNumChannels (const TTValue &newValue)
 Setter for the maxNumChannels attribute. More...
 
TTErr adaptMaxNumChannels (const TTChannelCount newMaxNumChannels)
 Increase the maxNumChannels attribute, if neccessary. More...
 
TTErr setSr (const TTValue &newValue)
 Setter for the sample-rate attribute. More...
 
TTErr setSampleRate (const TTUInt32 &newSampleRate)
 Convenience method for updating the sample-rate. More...
 
virtual ~TTAudioObjectBase ()
 Destructor.
 
TTErr calculate (const TTFloat64 &x, TTFloat64 &y)
 Calculate a single sample of output for a single sample of input. More...
 
TTErr calculateMessage (TTValueConstRef input, TTValueRef output)
 
TTErr process (TTAudioSignal &in, TTAudioSignal &out)
 Process the input signal, resulting in an output signal. More...
 
TTErr process (TTAudioSignal &out)
 Process the an output signal only, e.g. More...
 
TTErr process (TTAudioSignal &in1, TTAudioSignal &in2, TTAudioSignal &out1, TTAudioSignal &out2)
 Process two input signals, resulting in two output signals. More...
 
TTErr process (TTAudioSignal &in1, TTAudioSignal &in2, TTAudioSignal &out)
 Process two input signals, resulting in an output signal. More...
 
TTErr process (TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs)
 Process an array of audio signals. More...
 
TTErr bypassProcess (TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs)
 The default audio processing method, which simply copies a signal through with no modifications. More...
 
TTErr bypassCalculate (const TTFloat64 &x, TTFloat64 &y, TTPtr data)
 Produces a result for calls to calculate when the unit is bypassed. More...
 
TTErr muteProcess (TTAudioSignalArrayPtr inputs, TTAudioSignalArrayPtr outputs)
 A muted audio processing method, which simply copies zeroes to the output. More...
 
TTErr defaultCalculateMethod (const TTFloat64 &x, TTFloat64 &y, TTPtr data)
 A default calculate method, which simply calls the process method with 1 channel signals that are 1 sample in length. More...
 
TTFloat64 hertzToRadians (const TTFloat64 hz)
 Convert Hertz to radians. More...
 
TTFloat64 radiansToHertz (const TTFloat64 radians)
 Convert radians into Hertz. More...
 
TTFloat64 degreesToRadians (const TTFloat64 degrees)
 Degrees-to-radians conversion. More...
 
TTFloat64 radiansToDegrees (const TTFloat64 radians)
 Radians-to-degrees conversion. More...
 
TTFloat64 decayToFeedback (const TTFloat64 decay_time, TTFloat64 delay)
 Decay Time (seconds) to feedback coefficient conversion. More...
 
TTFloat64 feedbackToDecay (const TTFloat64 feedback, const TTFloat64 delay)
 Return the decay time based on the feedback coefficient. More...
 
- Public Member Functions inherited from TTObjectBase
virtual ~TTObjectBase ()
 Destructor.
 
TTUInt16 getReferenceCount ()
 Query an object to get its current reference count. More...
 
TTUInt32 getObserverCount () const
 Query an object to get the number of observers. More...
 
TTErr registerAttribute (const TTSymbol name, const TTDataType type, void *address)
 Register an attribute. More...
 
TTErr extendAttribute (const TTSymbol name, const TTObjectBasePtr extendedObject, const TTSymbol extendedName)
 Extend the attribute of an existing TTObjectBase to this TTObjectBase (using another attribute name) More...
 
TTErr removeAttribute (const TTSymbol name)
 Remove an attribute. More...
 
TTErr findAttribute (const TTSymbol name, TTAttribute **attr)
 Find an attribute. More...
 
TTErr setAttributeValue (const TTSymbol name, TTValue &value)
 Set an attribute value for an object. More...
 
template<class T >
TTErr set (const TTSymbol aName, T aValue)
 Set an attribute value for an object This is the same as calling setAttributeValue(). More...
 
TTErr getAttributeValue (const TTSymbol name, TTValue &value)
 Get an attribute value for an object. More...
 
template<class T >
TTErr get (const TTSymbol aName, T &aReturnedValue)
 Get an attribute value for an object This is the same as calling getAttributeValue(). More...
 
TTSymbol getAttributeType (const TTSymbol name)
 Return the type of an attribute as a symbol. More...
 
TTErr getAttributeGetterFlags (const TTSymbol name, TTAttributeFlags &value)
 Get the getterFlags of an attribute. More...
 
TTErr setAttributeGetterFlags (const TTSymbol name, TTAttributeFlags &value)
 Set the getterFlags of an attribute. More...
 
TTErr getAttributeSetterFlags (const TTSymbol name, TTAttributeFlags &value)
 Get the setterFlags of an attribute. More...
 
TTErr setAttributeSetterFlags (const TTSymbol name, TTAttributeFlags &value)
 Set the setterFlags of an attribute. More...
 
TTErr registerAttributeProperty (const TTSymbol attributeName, const TTSymbol propertyName, const TTValue &initialValue, TTGetterMethod getter, TTSetterMethod setter)
 Register an attribute property. More...
 
TTErr registerMessageProperty (const TTSymbol messageName, const TTSymbol propertyName, const TTValue &initialValue, TTGetterMethod getter, TTSetterMethod setter)
 Register an message property. More...
 
TTErr getAttribute (const TTSymbol name, TTAttributePtr *attributeObject)
 Search for and locate an attribute. More...
 
TTErr getMessage (const TTSymbol name, TTMessagePtr *messageObject)
 Search for and locate a message. More...
 
void getAttributeNames (TTValue &attributeNameList)
 Return a list of names of the available attributes. More...
 
void getMessageNames (TTValue &messageNameList)
 Return a list of names of the available messages. More...
 
TTSymbol getName () const
 Return the name of this class. More...
 
TTErr registerMessage (const TTSymbol name, TTMethod method)
 Register a message with this object. More...
 
TTErr findMessage (const TTSymbol name, TTMessage **message)
 Find a message registered with this object. More...
 
TTErr removeMessage (const TTSymbol name)
 Remove a message. More...
 
TTErr sendMessage (const TTSymbol name)
 TODO: Document this function. More...
 
TTErr registerObserverForMessage (const TTObject &observingObject, const TTSymbol messageName)
 Register an observer for a message. More...
 
TTErr registerObserverForAttribute (const TTObject &observingObject, const TTSymbol attributeName)
 Register an observer for an attribute. More...
 
TTErr registerObserverForNotifications (const TTObject &observingObject)
 Register an observer. More...
 
TTErr unregisterObserverForMessage (const TTObject &observingObject, const TTSymbol messageName)
 Unregister an observer for a message. More...
 
TTErr unregisterObserverForAttribute (const TTObject &observingObject, const TTSymbol attributeName)
 Unregister an observer for an attribute. More...
 
TTErr unregisterObserverForNotifications (const TTObject &observingObject)
 Unregister an observer for notifications. More...
 
TTErr sendNotification (const TTSymbol name, const TTValue &arguments)
 Send a notification. More...
 
TTErr logMessage (TTImmutableCString fmtstring,...)
 Log messages scoped to this object instance. More...
 
TTErr logWarning (TTImmutableCString fmtstring,...)
 Log warnings scoped to this object instance. More...
 
TTErr logError (TTImmutableCString fmtstring,...)
 Log errors scoped to this object instance. More...
 
TTErr logDebug (TTImmutableCString fmtstring,...)
 Log messages (scoped to this object instance) to output only if the basic debugging flag is enabled in the environment. More...
 
TTErr lock ()
 Lock the object in order to ensure thread-safe processing. More...
 
TTErr unlock ()
 Unlock the object when thread-safe processing is no longer required. More...
 
TTBoolean isLocked ()
 Query if the object currently is locked for thread-safe processing. More...
 
TTBoolean waitForLock ()
 If the object is locked (e.g. More...
 

Protected Member Functions

TTErr setTargetMatrix (const TTMatrix newTargetMatrix)
 Internal method that sets the class's pointer to the target sample matrix for loading sound file data. More...
 
TTErr setTargetMatrix (const TTObjectBase *newTargetObjectPtr)
 Internal method that sets the class's pointer to the target sample matrix for loading sound file data. More...
 
TTErr copyUntilFilled ()
 Internal method that copies values from the source TTSoundfile to the targetted TTSampleMatrix. More...
 
TTErr copyUntilFilledWithResampling ()
 Internal method that copies values from the source TTSoundfile to the targetted TTSampleMatrix with the necessary interpolation to acheive the target's sample rate. More...
 
- Protected Member Functions inherited from TTAudioObjectBase
TTErr setProcess (TTProcessMethod processMethod)
 Set the audio processing routine to point to a method that is defined as an arg to this function. More...
 
TTErr setCalculate (TTCalculateMethod newCalculateMethod)
 Set the sample calculate routine to point to a method that is defined as an arg to this function. More...
 
TTErr setBypass (const TTValue &value)
 Bypass the audio processing routine and copy all input samples to the output unchanged. More...
 
TTErr resetBenchmarking ()
 Reset the benchmarking accumulation used to calculate the results of getProcessingBenchmark(). More...
 
TTErr getProcessingBenchmark (TTValueConstRef, TTValueRef v)
 Return the average time spent by this object processing audio since the last reset. More...
 
 TTAudioObjectBase (const TTValue &arguments)
 Constructor. More...
 
- Protected Member Functions inherited from TTObjectBase
 TTObjectBase (const TTValue arguments)
 Constructor. More...
 

Additional Inherited Members

- Public Attributes inherited from TTObjectBase
TTBoolean valid
 If the object isn't completely built, or is in the process of freeing, this will be false.
 
TTBoolean track
 enable the print of a log message to ease the track of reference counting mechanism on an instance More...
 
- Protected Attributes inherited from TTSoundfile
TTSymbol mFilePath
 full POSIX path to the file, including file name
 
TTColumnID mNumChannels
 channels in the file
 
TTFloat64 mSampleRate
 samples per second
 
TTRowID mLengthInSamples
 length in samples
 
TTFloat64 mLengthInSeconds
 length in seconds
 
TTSymbol mTitle
 title if metadata is present in the file
 
TTSymbol mArtist
 artist if metadata is present in the file
 
TTSymbol mDate
 date if metadata is present in the file
 
TTSymbol mAnnotation
 comments if metadata is present in the file
 
- Protected Attributes inherited from TTAudioObjectBase
TTUInt32 sr
 Current sample rate being used by this object.
 
TTFloat64 srInv
 1.0 over the current sample rate (inverse)
 
TTFloat64 srMill
 1/1000 of the current sample rate (samples per millisecond)
 
TTChannelCount mMaxNumChannels
 This is the maximum number of channels that can be guaranteed to work.
 
TTBoolean unused
 Old var that is not used anymore, but we want to keep the struct size the same.
 
TTBoolean attrBypass
 Are we bypassing the processMethod?
 
TTBoolean attrMute
 Mute the processMethod.
 
TTProcessMethod processMethod
 This function pointer points to the active (non-bypass) processing routine.
 
TTProcessMethod currentProcessMethod
 This function pointer always points to the current processing routine.
 
TTCalculateMethod calculateMethod
 This function pointer points to the active (non-bypass) calculate routine.
 
TTCalculateMethod currentCalculateMethod
 This function pointer always points to the current calculate routine.
 
TTObject inputArray
 If the process method is passed a signal, rather than an array of signals, we wrap the signal in this array.
 
TTObject outputArray
 If the process method is passed a signal, rather than an array of signals, we wrap the signal in this array.
 
TTFloat64 startProcessingTime
 The time at which this object's process method was last invoked (for benchmarking)
 
TTFloat64 accumulatedProcessingTime
 The amount of time spent in this object's process method (for benchmarking)
 
TTFloat64 accumulatedProcessingCalls
 The number of times the process method has been called (for benchmarking)
 
- Protected Attributes inherited from TTObjectBase
TTList observers
 List of all objects watching this object for life-cycle and other changes.
 

Detailed Description

Creates an interface to data in a soundfile from disk.

Definition at line 26 of file TTSoundfileLoader.h.

Member Function Documentation

TTErr TTSoundfileLoader::copyUntilFilled ( )
protected

Internal method that copies values from the source TTSoundfile to the targetted TTSampleMatrix.

Beware that the setFilePath() and setTargetMatrix() must be successfully executed before this method is called.

Returns
TTErr kTTErrNone if copy is successful. kTTErrGeneric if the source soundfile was too short to fill samplematrix.

Definition at line 88 of file TTSoundfileLoader.cpp.

References TTSoundfile::getNumChannels(), kTTErrGeneric, kTTErrNone, and TTSoundfile::peek().

Referenced by load(), resizeThenLoad(), and test().

+ Here is the call graph for this function:

TTErr TTSoundfileLoader::copyUntilFilledWithResampling ( )
protected

Internal method that copies values from the source TTSoundfile to the targetted TTSampleMatrix with the necessary interpolation to acheive the target's sample rate.

Beware that the setFilePath() and setTargetMatrix() must be successfully executed before this method is called.

Returns
TTErr kTTErrNone if copy is successful. kTTErrGeneric if the source soundfile was too short to fill samplematrix.

Definition at line 129 of file TTSoundfileLoader.cpp.

References TTSoundfile::getNumChannels(), kTTErrGeneric, kTTErrNone, TTSoundfile::mSampleRate, and TTSoundfile::peeki().

Referenced by load(), and resizeThenLoad().

+ Here is the call graph for this function:

TTErr TTSoundfileLoader::load ( const TTValue input,
TTValue unusedOutput 
)

Public method used to trigger the load process.

Copies samples from a sound file on the hard drive into a TTSampleMatrix.

Parameters
[in]inputMulti-item TTValue used to set the copy parameters:
  1. TTObjectBasePtr to the target matrix
  2. TTSymbol containing the filepath
  3. (optional) channel to copy from source, default is 0
  4. (optional) frame to start copy from source, default is 0
  5. (optional) frame to stop copy from source, default is last
[out]unusedOutputnot used
Returns
TTErr kTTErrNone load was successful. kTTErrInvalidFilepath if the filepath was invalid. kTTErrInvalidValue if the pointer to TTSampleMatrix was invalid.

Definition at line 199 of file TTSoundfileLoader.cpp.

References copyUntilFilled(), copyUntilFilledWithResampling(), kTTErrNone, TTSoundfile::mSampleRate, setFilePath(), setTargetMatrix(), and TTValue::size().

+ Here is the call graph for this function:

TTErr TTSoundfileLoader::resizeThenLoad ( const TTValue input,
TTValue unusedOutput 
)

Public method similar to load(), except that it will resize the target matrix to match the source soundfile before copying values.

Parameters
[in]inputMulti-item TTValue used to set the copy parameters:
  1. TTObjectBasePtr to the target matrix
  2. TTSymbol containing the filepath
[out]unusedOutputnot used
Returns
TTErr kTTErrNone load was successful. kTTErrInvalidFilepath if the filepath was invalid. kTTErrInvalidValue if the pointer to TTSampleMatrix was invalid.

Definition at line 243 of file TTSoundfileLoader.cpp.

References copyUntilFilled(), copyUntilFilledWithResampling(), TTSoundfile::getLengthInSeconds(), TTSoundfile::getNumChannels(), kTTErrNone, TTSoundfile::mSampleRate, TTObjectBase::setAttributeValue(), setFilePath(), and setTargetMatrix().

+ Here is the call graph for this function:

TTErr TTSoundfileLoader::setFilePath ( const TTValue newValue)

Atribute accessor.

Send a filepath to the object and attempt to interface with the file. Overriding so that additional variable will be set when setting the filepath.

Parameters
newValuefull POSIX path to the file, including file name
Returns
TTErr kTTErrInvalidValue is the filepath is invalid, otherwise kTTErrNone

Definition at line 180 of file TTSoundfileLoader.cpp.

References TTSoundfile::getLengthInSamples(), kTTErrNone, and TTSoundfile::setFilePath().

Referenced by load(), resizeThenLoad(), and test().

+ Here is the call graph for this function:

TTErr TTSoundfileLoader::setTargetMatrix ( const TTMatrix  newTargetMatrix)
protected

Internal method that sets the class's pointer to the target sample matrix for loading sound file data.

Parameters
newTargetMatrixpointer to the new matrix
Returns
TTErr kTTErrNone if the pointer was updated.

Definition at line 60 of file TTSoundfileLoader.cpp.

References TTObject::get(), TTMatrix::getColumnCount(), TTMatrix::getRowCount(), TTMatrix::instance(), and kTTErrNone.

Referenced by load(), resizeThenLoad(), setTargetMatrix(), and test().

+ Here is the call graph for this function:

TTErr TTSoundfileLoader::setTargetMatrix ( const TTObjectBase newTargetObjectPtr)
protected

Internal method that sets the class's pointer to the target sample matrix for loading sound file data.

This version is a function overload so that setTargetMatrix() can accept a TTObjectBase* as an input parameter and test whether it points to an actual instance of TTSampleMatrix.

Parameters
newTargetMatrixpointer to the new matrix
Returns
TTErr kTTErrNone if the pointer was updated. kTTErrInvalidValue if the pointer was not to a TTSampleMatrix.

Definition at line 73 of file TTSoundfileLoader.cpp.

References TTObjectBase::getName(), kTTErrInvalidValue, setTargetMatrix(), and TT.

+ Here is the call graph for this function:

TTErr TTSoundfileLoader::test ( TTValue returnedTestInfo)
virtual

Unit test for this object.

Parameters
[out]returnedTestInfoThe outcome from the performed unit test.
Returns
TTErr error code if the method fails to execute, else kTTErrNone.

Reimplemented from TTSoundfile.

Definition at line 55 of file TTSoundfileLoader.test.cpp.

References TTValue::append(), copyUntilFilled(), TTString::find_last_of(), TTObject::get(), TTObjectBase::getAttributeValue(), TTObject::instance(), kTTErrInvalidValue, kTTErrNone, TTSoundfile::peek(), TTSoundfile::peeki(), TTObject::send(), TTObject::set(), setFilePath(), setTargetMatrix(), TTString::substr(), TT, and TTRandom64().

+ Here is the call graph for this function:


The documentation for this class was generated from the following files: