Sound Byte Libs 0.5.1-121-g3358a44
C++ firmware library for audio applications on 32-bit ARM Cortex-M processors
Loading...
Searching...
No Matches
sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends > Class Template Reference

Detailed Description

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
class sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >

Definition at line 61 of file mixer.hpp.

#include <mixer.hpp>

Public Types

using Chan = widgets::Channel< MaxFrames, MaxSends >
 

Public Member Functions

void set_master_fader_su (float su)
 Port: master fader level [0,1].
 
void set_bus_gain (float g)
 
void set_output_trim (float t)
 
void set_master_taper (comp::Taper t)
 
Chan & ret (uint8_t idx)
 Access a return channel by index.
 
const Chan & ret (uint8_t idx) const
 
void set_return_processor (uint8_t idx, void *ctx, FxProcess fn)
 
void process (uint16_t n)
 
comp::Fader & master_fader ()
 

Public Attributes

Chan audio [NumAudio]
 
float master_l [MaxFrames] = {}
 
float master_r [MaxFrames] = {}
 

Member Typedef Documentation

◆ Chan

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
using sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::Chan = widgets::Channel<MaxFrames, MaxSends>

Definition at line 63 of file mixer.hpp.

Member Function Documentation

◆ set_master_fader_su()

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
void sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::set_master_fader_su ( float  su)
inline

Port: master fader level [0,1].

Definition at line 74 of file mixer.hpp.

References sbl::dsp::comp::Fader::set_level_su().

◆ set_bus_gain()

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
void sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::set_bus_gain ( float  g)
inline

Definition at line 78 of file mixer.hpp.

◆ set_output_trim()

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
void sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::set_output_trim ( float  t)
inline

Definition at line 79 of file mixer.hpp.

◆ set_master_taper()

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
void sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::set_master_taper ( comp::Taper  t)
inline

Definition at line 80 of file mixer.hpp.

References sbl::dsp::comp::Fader::set_taper().

◆ ret() [1/2]

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
Chan & sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::ret ( uint8_t  idx)
inline

Access a return channel by index.

Definition at line 85 of file mixer.hpp.

◆ ret() [2/2]

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
const Chan & sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::ret ( uint8_t  idx) const
inline

Definition at line 86 of file mixer.hpp.

◆ set_return_processor()

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
void sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::set_return_processor ( uint8_t  idx,
void *  ctx,
FxProcess  fn 
)
inline

Register an effect processor callback for a return channel. The callback is called with the accumulated send input and must process audio in-place.

Definition at line 91 of file mixer.hpp.

◆ process()

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
void sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::process ( uint16_t  n)
inline

Process the entire mixer for one block.

Prerequisites: audio channels have been written via write_input_mono/stereo.

Steps:

  1. Clear return input buffers and master bus
  2. Process all audio channels (fader gain + pan)
  3. Route audio channel sends to return inputs
  4. For each return in order: a. Call effect processor (if registered) b. Process return channel (fader gain + pan) c. Route return-to-return sends
  5. Sum all channels to master bus (mute/solo)
  6. Apply master gain (fader * bus_gain * output_trim)

Definition at line 114 of file mixer.hpp.

References sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::audio, sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::master_l, sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::master_r, and sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::process().

Referenced by sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::process().

◆ master_fader()

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
comp::Fader & sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::master_fader ( )
inline

Definition at line 156 of file mixer.hpp.

Member Data Documentation

◆ audio

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
Chan sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::audio[NumAudio]

◆ master_l

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
float sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::master_l[MaxFrames] = {}

◆ master_r

template<uint16_t MaxFrames, uint8_t NumAudio, uint8_t NumReturn, uint8_t MaxSends = 4>
float sbl::dsp::modules::Mixer< MaxFrames, NumAudio, NumReturn, MaxSends >::master_r[MaxFrames] = {}

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