|
arduino-audio-tools
|
Stream classes which change the input or output. More...
Classes | |
| class | AudioEffectStream |
| EffectsStream supporting variable bits_per_sample. This class is only available when __cplusplus >= 201703L. Otherwise AudioEffectStream results in using AudioEffectStream = AudioEffectStreamT<effect_t>;. More... | |
| class | AudioEffectStreamT< T > |
| EffectsStreamT: the template class describes an input or output stream to which one or multiple effects are applied. Each channel is processed by its own independent clone of the effect chain (created via AudioEffect::clone()), so e.g. a stereo signal keeps its channel separation and effects that carry internal state (Delay's ring buffer, ADSRGain/Tremolo's envelope or oscillator phase, etc.) don't get confused by interleaved samples from different channels. addEffect() adds to a shared template chain that is cloned into every channel on begin() (and immediately cloned into all already-active channels if called afterwards); use addEffect(channel, effect) to register an effect directly on just one channel instead. Note that size()/operator[]/findEffect() operate on the template chain, not on the per-channel clones: mutating a pointer obtained from them after begin() has already cloned it does not retroactively change already-cloned per-channel copies. Currently only int16_t values are supported, so I recommend to use the AudioEffectStream class which is defined as using AudioEffectStream = AudioEffectStreamT<effect_t>;. More... | |
| class | ChannelFormatConverterStream |
| Channel converter which does not use a template. More... | |
| class | ChannelFormatConverterStreamT< T > |
| Converter for reducing or increasing the number of Channels. More... | |
| class | ChannelSplitOutput |
| Simple functionality to extract mono streams from a multichannel (e.g. stereo) signal. More... | |
| class | ChannelsSelectOutput |
| Flexible functionality to extract one or more channels from a multichannel signal. Warning: the destinatios added with addOutput are not automatically notified about audio changes. More... | |
| class | ConverterStream< T > |
| Both the data of the read or write operations will be converted with the help of the indicated converter. More... | |
| class | EncodedAudioOutput |
| A more natural Print class to process encoded data (aac, wav, mp3...). Just define the output and the decoder and write the encoded data. More... | |
| class | EncodedAudioStream |
| A more natural Stream class to process encoded data (aac, wav, mp3...) which also supports the decoding by calling readBytes(). More... | |
| class | FadeStream |
| Stream which can be used to manage fade in and fade out. Before you read or write data you need to call setAudioInfo() to provide the bits_per_sample and channels. More... | |
| class | FFTEffect |
| Abstract base class for effects that operate on audio in the frequency domain: incoming samples are transformed with a forward FFT, the resulting bins are modified by the effect() method that a subclass implements, and the modified spectrum is transformed back with an inverse FFT (overlap-add) and streamed to the output. More... | |
| struct | FFTEffectConfig |
| Common configuration for FFT effects. More... | |
| class | FFTEqualizer |
| Graphic Equalizer implemented as an FFT effect: boosts or cuts logarithmically spaced frequency bands (20Hz .. Nyquist) by scaling the magnitude of the bins that fall into each band while leaving their phase untouched. Since this operates directly on the frequency-domain bins rather than an FIR/IIR approximation, band edges are exact and there is no filter ripple. More... | |
| struct | FFTEqualizerConfig |
| Equalizer FFT Effect Configuration. More... | |
| class | FFTNop |
| Apply FFT and IFFT w/o any changes to the frequency domain. More... | |
| class | FFTPitchShift |
| Apply Pitch Shift FFT Effect on frequency domain data: we just move the bins up or down. More... | |
| struct | FFTPitchShiftConfig |
| Pitch Shift FFT Effect Configuration. More... | |
| class | FFTRobotize |
| Apply Robotize FFT Effect on frequency domain data. See https://learn.bela.io/tutorials/c-plus-plus-for-real-time-audio-programming/phase-vocoder-part-3/. More... | |
| class | FFTWhisper |
| Apply Whisper FFT Effect on frequency domain data: keep the magnitude of each bin but randomize its phase. See https://learn.bela.io/tutorials/c-plus-plus-for-real-time-audio-programming/phase-vocoder-part-3/. More... | |
| class | FilteredStream< T, TF > |
| Stream to which we can apply Filters for each channel. The filter might change the result size! More... | |
| class | FormatConverterStream |
| Converter which converts bits_per_sample, channels and the sample_rate. The conversion is supported both on the input and output side. More... | |
| class | InputMerge< T > |
| Merges multiple input streams. So if you provide 2 mono channels you get a stereo signal as result with the left channel from channel 0 and the right from channel 1. More... | |
| class | InputMixer< T, SumT > |
| MixerStream is mixing the input from Multiple Input Streams. All streams must have the same audo format (sample rate, channels, bits per sample). More... | |
| class | MultiOutput |
| Replicates the output to multiple destinations. More... | |
| class | NumberFormatConverterStream |
| Converter which converts between bits_per_sample and 16 bits. The templated NumberFormatConverterStreamT class is used based on the information provided by the bits_per_sample in the configuration. More... | |
| class | NumberFormatConverterStreamT< TFrom, TTo > |
| A more generic templated Converter which converts from a source type to a target type: You can use e.g. uint8_t, int8_t, int16_t, uint16_t, int24_t, uint32_t, int32_t, FloatAudio.AbstractMetaDat. This is quite handy because unsigned values and floating values are supported and you do not need to resort to use a Codec. More... | |
| class | OutputMixer< T > |
| Mixing of multiple audio input streams into a single output stream. More... | |
| class | Pipeline |
| We can build a input or an output chain: an input chain starts with setInput(); followed by add() an output chain consinsts of add() and ends with setOutput();. More... | |
| class | PitchShiftOutput< T, BufferT > |
| Real-time pitch shifting audio effect. More... | |
| class | ResampleStream |
| Dynamic Resampling. We can use a variable factor to speed up or slow down the playback. More... | |
| class | RTTTLOutput< T > |
| RTTTL (Ring Tone Text Transfer Language) parser and player stream. More... | |
| class | TimedStream |
| AudioStream class that can define a start and (an optional) stop time Usually it is used to wrap an Audio Sink (e.g. I2SStream), but wrapping an Audio Source is supported as well. Only wrap classes which represent PCM data! More... | |
| class | VolumeStream |
| Adjust the volume of the related input or output: To work properly the class needs to know the bits per sample and number of channels! AudioChanges are forwareded to the related Print or Stream class. More... | |
Stream classes which change the input or output.