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

Class for storing sounds. 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...
 
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.

Definition at line 27 of file Sound.h.

Member Typedef Documentation

◆ audio_sample

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

Definition at line 30 of file Sound.h.

Constructor & Destructor Documentation

◆ Sound() [1/2]

Sound::Sound ( size_t  bytesPerSample = 2)

Definition at line 32 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 38 of file Sound.cpp.

◆ ~Sound()

Sound::~Sound ( )
virtual

Definition at line 158 of file Sound.cpp.

Member Function Documentation

◆ clear()

void Sound::clear ( )

set all the samples to zero (silence)

Definition at line 189 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 196 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 276 of file Sound.cpp.

◆ get()

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

Definition at line 174 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 399 of file Sound.cpp.

◆ getChannel()

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

Definition at line 328 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 409 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 414 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 221 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 343 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 361 of file Sound.cpp.

◆ getSafe()

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

Definition at line 82 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 404 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 394 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 48 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 87 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 296 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 231 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 317 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 167 of file Sound.cpp.

◆ set()

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

Definition at line 206 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 226 of file Sound.cpp.

◆ setSafe()

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

Definition at line 264 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 105 of file Sound.cpp.

◆ 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 379 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 243 of file Sound.cpp.


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