arduino-audio-tools
|
Input and output of Pure Data PD using code generated by the hvcc compiler. The audio format is defined by the sample rate in the Heavy constructor, the number of channels in the ADC and DAC and the bits_per_sample of 16. Therefore the audio format can not be changed dynamically. I recommend to make sure that the input format and output format is consistent, otherwise you need to change the format in PD. More...
#include <PureDataStream.h>
Public Member Functions | |
PureDataStream (HeavyContextInterface &heavy, int bufferSize=1024 *2) | |
virtual void | addNotifyAudioChange (AudioInfoSupport &bi) |
Adds target to be notified about audio changes. | |
AudioInfo | audioInfo () override |
provides the actual input AudioInfo | |
AudioInfo | audioInfoOut () override |
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream | |
virtual int | available () override |
virtual int | availableForWrite () override |
bool | begin () |
virtual void | clearNotifyAudioChange () |
Deletes all change notify subscriptions. | |
void | end () |
void | flush () |
bool | isNotifyActive () |
Checks if the automatic AudioInfo update is active. | |
virtual | operator bool () |
size_t | readBytes (uint8_t *data, size_t len) |
virtual size_t | readSilence (uint8_t *buffer, size_t length) |
Source to generate silence: just sets the buffer to 0. | |
virtual bool | removeNotifyAudioChange (AudioInfoSupport &bi) |
Removes a target in order not to be notified about audio changes. | |
void | setAudioInfo (AudioInfo newInfo) override |
Defines the input AudioInfo. | |
void | setNotifyActive (bool flag) |
Deactivate/Reactivate automatic AudioInfo updates: (default is active) | |
size_t | write (const uint8_t *data, size_t len) |
virtual size_t | write (uint8_t ch) override |
virtual void | writeSilence (size_t len) |
Writes len bytes of silence (=0). | |
Protected Member Functions | |
virtual int | not_supported (int out, const char *msg="") |
void | notifyAudioChange (AudioInfo info) |
void | readWrite (int bytes) |
void | refillReadBuffer () |
Protected Attributes | |
int | _timeout = 10 |
RingBuffer< uint8_t > | buffer_read {0} |
int | buffer_size |
RingBuffer< uint8_t > | buffer_write {0} |
Vector< float > | in {0} |
int | in_channels = 0 |
AudioInfo | info |
bool | is_notify_active = true |
const float | max_int = 32767.0 |
Vector< AudioInfoSupport * > | notify_vector |
Vector< float > | out {0} |
int | out_channels = 0 |
HeavyContextInterface * | p_heavy = nullptr |
const int | sample_size = sizeof(int16_t) |
RingBuffer< uint8_t > | tmp_in {0} |
RingBuffer< uint8_t > | tmp_out {0} |
float | volume = 1.0f |
Input and output of Pure Data PD using code generated by the hvcc compiler. The audio format is defined by the sample rate in the Heavy constructor, the number of channels in the ADC and DAC and the bits_per_sample of 16. Therefore the audio format can not be changed dynamically. I recommend to make sure that the input format and output format is consistent, otherwise you need to change the format in PD.