- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 313
Converting the Data Format
        Phil Schatzmann edited this page Apr 1, 2023 
        ·
        23 revisions
      
    You can use the more generic FormatConverterStream to change of the
- bits_per_sample
- number of channels
- sample_rate
This class is supporting both: the conversion on the input and on the output side.
#include "AudioTools.h"
SineWaveGenerator<int32_t> sine_wave;                   // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int32_t> in_stream(sine_wave);     // Stream generated from sine wave
CsvStream<int16_t> out(Serial);                         // Output to Serial
AudioInfo from(44100, 2, 32);                                           
AudioInfo to(44100, 2, 16);                                           
FormatConverterStream conv(out);
StreamCopy copier(conv, in_stream);                     // copies sound to out
void setup(){
  Serial.begin(115200);
  AudioLogger::instance().begin(Serial, AudioLogger::Info);  
  sine_wave.begin(from, N_B4);
  in_stream.begin(from);
  conv.begin(from, to);
  out.begin(to);
}
void loop(){
    copier.copy();
}#include "AudioTools.h"
SineWaveGenerator<int32_t> sine_wave;                   // subclass of SoundGenerator with max amplitude of 32000
GeneratedSoundStream<int32_t> in_stream(sine_wave);     // Stream generated from sine wave
CsvStream<int16_t> out(Serial);                         // Output to Serial
AudioInfo from(44100, 2, 32);                                           
AudioInfo to(44100, 2, 16);                                           
FormatConverterStream conv(in_stream);
StreamCopy copier(out, conv);                           // copies converted sound to out
void setup(){
  Serial.begin(115200);
  AudioLogger::instance().begin(Serial, AudioLogger::Info);  
  sine_wave.begin(from, N_B4);
  in_stream.begin(from);
  conv.begin(from, to);
  out.begin(to);
}
void loop(){
    copier.copy();
}