YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
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.
 
virtual ~Sound ()
 
const Soundoperator= (const Sound &alt)
 Assignment operator.
 
bool operator== (const Sound &alt) const
 Comparison operator.
 
Soundoperator+= (const Sound &alt)
 Addition assignment operator.
 
void overwrite (const Sound &alt, size_t offset=0, size_t len=0)
 It overwrites the sound with another sound, starting from a specified offset.
 
Sound subSound (size_t first_sample, size_t last_sample)
 Returns a subpart of the sound.
 
void resize (size_t samples, size_t channels=1)
 Set the sound size.
 
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.
 
void clear ()
 set all the samples to zero (silence)
 
void normalizeChannel (size_t channel)
 Normalize a specific channel of the sound.
 
void normalize ()
 Normalize a sound (the peak is searched among all channels)
 
void amplifyChannel (size_t channel, double gain)
 Amplify a specific channel of the sound.
 
void amplify (double gain)
 amplify a sound
 
void findPeakInChannel (size_t channelId, size_t &sampleId, audio_sample &sampleValue) const
 find the peak in a specific channel of the sound
 
void findPeak (size_t &channelId, size_t &sampleId, audio_sample &sampleValue) const
 find the peak in a sound
 
double sample2timestamp (size_t sampleid) const
 Utility function: return the timestamp (in seconds) given the sample id.
 
size_t timestamp2sample (double time) const
 Utility function: return the sample id given the timestamp (in seconds)
 
bool clearChannel (size_t channel)
 set to zero all the samples of the specified channel @ param channel the channel number
 
int getFrequency () const
 Get the frequency of the sound (i.e.
 
void setFrequency (int freq)
 Set the frequency of the sound (i.e.
 
size_t getBytesPerSample () const
 Get the number of bytes per sample.
 
size_t getSamples () const
 Get the number of samples contained in the sound.
 
double getDuration () const
 Get the duration of sound in seconds.
 
size_t getChannels () const
 Get the number of channels of the sound.
 
Sound extractChannelAsSound (size_t channel_id) const
 Extract a single channel from the sound.
 
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.
 
std::vector< std::reference_wrapper< audio_sample > > getInterleavedAudioRawData () const
 Returns a serialized version of the sound, in interleaved format, e.g.
 
std::vector< std::reference_wrapper< audio_sample > > getNonInterleavedAudioRawData () const
 Returns a serialized version of the sound, in non-interleaved format, e.g.
 
std::string toString () const
 Print matrix to a string.
 
bool read (yarp::os::ConnectionReader &connection) override
 Read this object from a network connection.
 
bool write (yarp::os::ConnectionWriter &connection) const override
 Write this object to a network connection.
 
- Public Member Functions inherited from yarp::os::Portable
virtual Type getType () const
 
- Public Member Functions inherited from yarp::os::PortReader
virtual ~PortReader ()
 Destructor.
 
virtual Type getReadType () const
 
- Public Member Functions inherited from yarp::os::PortWriter
virtual ~PortWriter ()
 Destructor.
 
virtual void onCompletion () const
 This is called when the port has finished all writing operations.
 
virtual void onCommencement () const
 This is called when the port is about to begin writing operations.
 
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.
 

Detailed Description

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

Definition at line 24 of file Sound.h.

Member Typedef Documentation

◆ audio_sample

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

Definition at line 27 of file Sound.h.

Constructor & Destructor Documentation

◆ Sound() [1/2]

Sound::Sound ( size_t  bytesPerSample = 2)

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

◆ ~Sound()

Sound::~Sound ( )
virtual

Definition at line 265 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 645 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 632 of file Sound.cpp.

◆ clear()

void Sound::clear ( )

set all the samples to zero (silence)

Definition at line 315 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 322 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 460 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 671 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 653 of file Sound.cpp.

◆ get()

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

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

◆ getChannel()

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

Definition at line 524 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 603 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 608 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 356 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 539 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 556 of file Sound.cpp.

◆ getSafe()

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

Definition at line 88 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 598 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 588 of file Sound.cpp.

◆ normalize()

void Sound::normalize ( )

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

Definition at line 622 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 613 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 118 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 155 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 480 of file Sound.cpp.

◆ overwrite()

void Sound::overwrite ( const Sound alt,
size_t  offset = 0,
size_t  len = 0 
)

It overwrites the sound with another sound, starting from a specified offset.

Parameters
altthe sound that will overwrite a portion of the current sound.
offsetthe starting sample for the overwrite operation. Default value = 0.
lenthe size (in samples) for the overwrite operation. If not specified, the whole alt sound will be used.

Definition at line 87 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 366 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 509 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 270 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 155 of file Sound.h.

◆ set()

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

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

◆ setSafe()

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

Definition at line 448 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 178 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 162 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 573 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 396 of file Sound.cpp.


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