YARP
Yet Another Robot Platform
yarp::sig::Sound Class Reference

Class for storing sounds See Audio in YARP for additional documentation on YARP audio. More...

#include <yarp/sig/Sound.h>

+ Inheritance diagram for yarp::sig::Sound:

Public Types

typedef short int audio_sample
 

Public Member Functions

 Sound (size_t bytesPerSample=2)
 
 Sound (const Sound &alt)
 Copy constructor. More...
 
virtual ~Sound ()
 
const Soundoperator= (const Sound &alt)
 Assignment operator. More...
 
bool operator== (const Sound &alt) const
 Comparison operator. More...
 
Soundoperator+= (const Sound &alt)
 Addition assignment operator. More...
 
Sound subSound (size_t first_sample, size_t last_sample)
 Returns a subpart of the sound. More...
 
void resize (size_t samples, size_t channels=1)
 Set the sound size. More...
 
audio_sample get (size_t sample, size_t channel=0) const
 
void set (audio_sample value, size_t sample, size_t channel=0)
 
audio_sample getSafe (size_t sample, size_t channel=0) const
 
void setSafe (audio_sample value, size_t sample, size_t channel=0)
 
bool isSample (size_t sample, size_t channel=0) const
 Check whether a sample lies within the sound. More...
 
void clear ()
 set all the samples to zero (silence) More...
 
void normalizeChannel (size_t channel)
 Normalize a specific channel of the sound. More...
 
void normalize ()
 Normalize a sound (the peak is searched among all channels) More...
 
void amplifyChannel (size_t channel, double gain)
 Amplify a specific channel of the sound. More...
 
void amplify (double gain)
 amplify a sound More...
 
void findPeakInChannel (size_t channelId, size_t &sampleId, audio_sample &sampleValue) const
 find the peak in a specific channel of the sound More...
 
void findPeak (size_t &channelId, size_t &sampleId, audio_sample &sampleValue) const
 find the peak in a sound More...
 
double sample2timestamp (size_t sampleid) const
 Utility function: return the timestamp (in seconds) given the sample id. More...
 
size_t timestamp2sample (double time) const
 Utility function: return the sample id given the timestamp (in seconds) More...
 
bool clearChannel (size_t channel)
 set to zero all the samples of the specified channel @ param channel the channel number More...
 
int getFrequency () const
 Get the frequency of the sound (i.e. More...
 
void setFrequency (int freq)
 Set the frequency of the sound (i.e. More...
 
size_t getBytesPerSample () const
 Get the number of bytes per sample. More...
 
size_t getSamples () const
 Get the number of samples contained in the sound. More...
 
double getDuration () const
 Get the duration of sound in seconds. More...
 
size_t getChannels () const
 Get the number of channels of the sound. More...
 
Sound extractChannelAsSound (size_t channel_id) const
 Extract a single channel from the sound. More...
 
std::vector< std::reference_wrapper< audio_sample > > getChannel (size_t channel_id)
 
bool replaceChannel (size_t id, Sound channel)
 Replace a single channel of our current sound with a given sound constituted by a single channel The two sounds must have the same number of samples. More...
 
std::vector< std::reference_wrapper< audio_sample > > getInterleavedAudioRawData () const
 Returns a serialized version of the sound, in interleaved format, e.g. More...
 
std::vector< std::reference_wrapper< audio_sample > > getNonInterleavedAudioRawData () const
 Returns a serialized version of the sound, in non-interleaved format, e.g. More...
 
std::string toString () const
 Print matrix to a string. More...
 
bool read (yarp::os::ConnectionReader &connection) override
 Read this object from a network connection. More...
 
bool write (yarp::os::ConnectionWriter &connection) const override
 Write this object to a network connection. More...
 
- Public Member Functions inherited from yarp::os::Portable
virtual Type getType () const
 
- Public Member Functions inherited from yarp::os::PortReader
virtual ~PortReader ()
 Destructor. More...
 
virtual Type getReadType () const
 
- Public Member Functions inherited from yarp::os::PortWriter
virtual ~PortWriter ()
 Destructor. More...
 
virtual void onCompletion () const
 This is called when the port has finished all writing operations. More...
 
virtual void onCommencement () const
 This is called when the port is about to begin writing operations. More...
 
virtual yarp::os::Type getWriteType () const
 

Additional Inherited Members

- Static Public Member Functions inherited from yarp::os::Portable
static bool copyPortable (const PortWriter &writer, PortReader &reader)
 Copy one portable to another, via writing and reading. More...
 

Detailed Description

Class for storing sounds See Audio in YARP for additional documentation on YARP audio.

Definition at line 25 of file Sound.h.

Member Typedef Documentation

◆ audio_sample

typedef short int yarp::sig::Sound::audio_sample

Definition at line 28 of file Sound.h.

Constructor & Destructor Documentation

◆ Sound() [1/2]

Sound::Sound ( size_t  bytesPerSample = 2)

Definition at line 29 of file Sound.cpp.

◆ Sound() [2/2]

Sound::Sound ( const Sound alt)

Copy constructor.

Clones the content of another sound.

Parameters
altthe image to sound

Definition at line 35 of file Sound.cpp.

◆ ~Sound()

Sound::~Sound ( )
virtual

Definition at line 159 of file Sound.cpp.

Member Function Documentation

◆ amplify()

void Sound::amplify ( double  gain)

amplify a sound

Parameters
[in]gainthe gain (1.0 = no amplification. Minimum value: 0)

Definition at line 466 of file Sound.cpp.

◆ amplifyChannel()

void Sound::amplifyChannel ( size_t  channel,
double  gain 
)

Amplify a specific channel of the sound.

Parameters
[in]gainthe gain (1.0 = no amplification. Minimum value: 0)
[in]channelthe sample id

Definition at line 453 of file Sound.cpp.

◆ clear()

void Sound::clear ( )

set all the samples to zero (silence)

Definition at line 190 of file Sound.cpp.

◆ clearChannel()

bool Sound::clearChannel ( size_t  channel)

set to zero all the samples of the specified channel @ param channel the channel number

Returns
true iff operation is successful;

Definition at line 197 of file Sound.cpp.

◆ extractChannelAsSound()

Sound Sound::extractChannelAsSound ( size_t  channel_id) const

Extract a single channel from the sound.

Returns
a new sound constituted by the selected channel

Definition at line 279 of file Sound.cpp.

◆ findPeak()

void Sound::findPeak ( size_t &  channelId,
size_t &  sampleId,
audio_sample sampleValue 
) const

find the peak in a sound

Parameters
[out]channelIdthe returned channelId in which the peak is detected
[out]sampleIdthe returned sampleId in which the peak is detected
[out]sampleValuethe returned value of the sample in which the peak is detected

Definition at line 492 of file Sound.cpp.

◆ findPeakInChannel()

void Sound::findPeakInChannel ( size_t  channelId,
size_t &  sampleId,
audio_sample sampleValue 
) const

find the peak in a specific channel of the sound

Parameters
[in]channelIdthe channel in which the peak is searched
[out]sampleIdthe returned sampleId in which the peak is detected
[out]sampleValuethe returned value of the sample in which the peak is detected

Definition at line 474 of file Sound.cpp.

◆ get()

Sound::audio_sample Sound::get ( size_t  sample,
size_t  channel = 0 
) const

Definition at line 175 of file Sound.cpp.

◆ getBytesPerSample()

size_t Sound::getBytesPerSample ( ) const

Get the number of bytes per sample.

Returns
the number of bytes per sample

Definition at line 414 of file Sound.cpp.

◆ getChannel()

std::vector< std::reference_wrapper< Sound::audio_sample > > Sound::getChannel ( size_t  channel_id)

Definition at line 343 of file Sound.cpp.

◆ getChannels()

size_t Sound::getChannels ( ) const

Get the number of channels of the sound.

Returns
the number of channels

Definition at line 424 of file Sound.cpp.

◆ getDuration()

double Sound::getDuration ( ) const

Get the duration of sound in seconds.

Returns
the duration of the sound

Definition at line 429 of file Sound.cpp.

◆ getFrequency()

int Sound::getFrequency ( ) const

Get the frequency of the sound (i.e.

the number of samples per second)

Returns
the frequency of the sound

Definition at line 224 of file Sound.cpp.

◆ getInterleavedAudioRawData()

std::vector< std::reference_wrapper< Sound::audio_sample > > Sound::getInterleavedAudioRawData ( ) const

Returns a serialized version of the sound, in interleaved format, e.g.

for a sound composed by 3 channels, x samples: 1 11 21, 2 12 22, 3 13 23, 4 14 24 etc

Parameters
vecthe vector representing the serialized sound

Definition at line 358 of file Sound.cpp.

◆ getNonInterleavedAudioRawData()

std::vector< std::reference_wrapper< Sound::audio_sample > > Sound::getNonInterleavedAudioRawData ( ) const

Returns a serialized version of the sound, in non-interleaved format, e.g.

for a sound composed by 3 channels, x samples: 1 2 3 4 5.....etc, 11 12 13 14 15.....etc, 21 22 23 24 25.....etc

Parameters
vecthe vector representing the serialized sound

Definition at line 376 of file Sound.cpp.

◆ getSafe()

audio_sample yarp::sig::Sound::getSafe ( size_t  sample,
size_t  channel = 0 
) const
inline

Definition at line 80 of file Sound.h.

◆ getSamples()

size_t Sound::getSamples ( ) const

Get the number of samples contained in the sound.

Returns
the number of samples

Definition at line 419 of file Sound.cpp.

◆ isSample()

bool Sound::isSample ( size_t  sample,
size_t  channel = 0 
) const

Check whether a sample lies within the sound.

Parameters
samplethe sample to choose
channelthe channel to choose
Returns
true iff there is a sample at the given coordinate

Definition at line 409 of file Sound.cpp.

◆ normalize()

void Sound::normalize ( )

Normalize a sound (the peak is searched among all channels)

Definition at line 443 of file Sound.cpp.

◆ normalizeChannel()

void Sound::normalizeChannel ( size_t  channel)

Normalize a specific channel of the sound.

Parameters
channelthe channel to normalize

Definition at line 434 of file Sound.cpp.

◆ operator+=()

Sound & Sound::operator+= ( const Sound alt)

Addition assignment operator.

Appends a sound to another sound (internal memory reallocation)

Parameters
altthe sound to append

Definition at line 45 of file Sound.cpp.

◆ operator=()

const Sound & Sound::operator= ( const Sound alt)

Assignment operator.

Clones the content of another sound.

Parameters
altthe image to sound

Definition at line 84 of file Sound.cpp.

◆ operator==()

bool Sound::operator== ( const Sound alt) const

Comparison operator.

Compares two sounds

Returns
true if the two sounds are identical

Definition at line 299 of file Sound.cpp.

◆ read()

bool Sound::read ( yarp::os::ConnectionReader reader)
overridevirtual

Read this object from a network connection.

Override this for your particular class.

Parameters
readeran interface to the network connection for reading
Returns
true iff the object is successfully read

Implements yarp::os::Portable.

Definition at line 234 of file Sound.cpp.

◆ replaceChannel()

bool Sound::replaceChannel ( size_t  id,
Sound  channel 
)

Replace a single channel of our current sound with a given sound constituted by a single channel The two sounds must have the same number of samples.

Parameters
idthe channel of our sound that we want to replace
channelthe single-channel sound that we want to put in our sound

Definition at line 328 of file Sound.cpp.

◆ resize()

void Sound::resize ( size_t  samples,
size_t  channels = 1 
)

Set the sound size.

Parameters
samplesthe number of samples
channelsthe number of channels

Definition at line 168 of file Sound.cpp.

◆ sample2timestamp()

double yarp::sig::Sound::sample2timestamp ( size_t  sampleid) const
inline

Utility function: return the timestamp (in seconds) given the sample id.

Parameters
sampleidthe sample id
Returns
the timestamp of the sample

Definition at line 147 of file Sound.h.

◆ set()

void Sound::set ( audio_sample  value,
size_t  sample,
size_t  channel = 0 
)

Definition at line 209 of file Sound.cpp.

◆ setFrequency()

void Sound::setFrequency ( int  freq)

Set the frequency of the sound (i.e.

the number of samples per second)

Definition at line 229 of file Sound.cpp.

◆ setSafe()

void Sound::setSafe ( audio_sample  value,
size_t  sample,
size_t  channel = 0 
)

Definition at line 267 of file Sound.cpp.

◆ subSound()

Sound Sound::subSound ( size_t  first_sample,
size_t  last_sample 
)

Returns a subpart of the sound.

Parameters
first_samplethe starting sample number
last_samplethe ending sample number

Definition at line 102 of file Sound.cpp.

◆ timestamp2sample()

size_t yarp::sig::Sound::timestamp2sample ( double  time) const
inline

Utility function: return the sample id given the timestamp (in seconds)

Parameters
timethe timestamp
Returns
the sample id

Definition at line 154 of file Sound.h.

◆ toString()

std::string Sound::toString ( ) const

Print matrix to a string.

Useful for debugging. The output string is represented in non-interleaved format

Definition at line 394 of file Sound.cpp.

◆ write()

bool Sound::write ( yarp::os::ConnectionWriter writer) const
overridevirtual

Write this object to a network connection.

Override this for your particular class. Be aware that depending on the nature of the connections a port has, and what protocol they use, and how efficient the YARP implementation is, this method may be called once, twice, or many times, as the result of a single call to Port::write

Parameters
writeran interface to the network connection for writing
Returns
true iff the object is successfully written

Implements yarp::os::Portable.

Definition at line 246 of file Sound.cpp.


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