Anklang 0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Ase::AudioCombo Class Referenceabstract
Inheritance diagram for Ase::AudioCombo:
[legend]

Public Member Functions

void insert (AudioProcessorP proc, ssize_t pos=~size_t(0))
 
bool remove (AudioProcessor &proc)
 Remove a previously added AudioProcessor proc from the AudioCombo.
 
AudioProcessorP at (uint nth)
 Return the AudioProcessor at position nth in the AudioCombo.
 
ssize_t find_pos (AudioProcessor &proc)
 Return the index of AudioProcessor proc in the AudioCombo.
 
size_t size ()
 Return the number of AudioProcessor instances in the AudioCombo.
 
void set_event_source (AudioProcessorP eproc)
 Assign event source for future auto-connections of chld processors.
 
AudioProcessorS list_processors () const
 Retrieve list of AudioProcessorS contained in this AudioCombo.
 
- Public Member Functions inherited from Ase::AudioProcessor
AtomicBits::Iter atomic_bits_iter (size_t pos=0) const
 Allow iterations over the atomic bits.
 
float note_to_freq (int note) const
 Convert MIDI note to Hertz according to the current MusicalTuning.
 
String debug_name () const
 
AudioEngineengine () const
 Retrieve AudioEngine handle for this AudioProcessor.
 
const AudioTransporttransport () const
 Sample rate mixing frequency in Hz as unsigned, used for render().
 
uint sample_rate () const
 
double nyquist () const
 Half the sample rate in Hz as double, used for render().
 
double inyquist () const
 Inverse Nyquist frequency, i.e. 1.0 / nyquist().
 
double get_param (Id32 paramid)
 Fetch value of parameter id.
 
bool send_param (Id32 paramid, double value)
 Set parameter id to value within ParamInfo.get_minmax().
 
ParameterC parameter (Id32 paramid) const
 Retrieve supplemental information for parameters, usually to enhance the user interface.
 
MaybeParamId find_param (const String &identifier) const
 Return the ParamId for parameter identifier or else 0.
 
MinMax param_range (Id32 paramid) const
 Retrieve the minimum / maximum values for a parameter.
 
bool check_dirty (Id32 paramid) const
 
void adjust_all_params ()
 
virtual String param_value_to_text (uint32_t paramid, double value) const
 
virtual double param_value_from_text (uint32_t paramid, const String &text) const
 
virtual double value_to_normalized (Id32 paramid, double value) const
 
virtual double value_from_normalized (Id32 paramid, double normalized) const
 
double get_normalized (Id32 paramid)
 Get param value normalized into 0…1.
 
bool set_normalized (Id32 paramid, double normalized)
 Set param value normalized into 0…1.
 
bool is_initialized () const
 Check if AudioProcessor has been properly intiialized (so the parameter set is fixed).
 
uint text_param_to_quark (uint32_t paramid, const String &text)
 Ase main-thread helper for temporary string<->uint conversions.
 
String text_param_from_quark (uint32_t paramid, uint vint)
 Helper for temporary uint<->string conversions.
 
IBusId find_ibus (const String &name) const
 Return the IBusId for input bus uilabel or else 0.
 
OBusId find_obus (const String &name) const
 Return the OBusId for output bus uilabel or else 0.
 
uint n_ibuses () const
 Number of input buses configured for this AudioProcessor.
 
uint n_obuses () const
 Number of output buses configured for this AudioProcessor.
 
uint n_ichannels (IBusId busid) const
 Number of channels of input bus busid configured for this AudioProcessor.
 
uint n_ochannels (OBusId busid) const
 Number of channels of output bus busid configured for this AudioProcessor.
 
BusInfo bus_info (IBusId busid) const
 Retrieve BusInfo for an input bus.
 
BusInfo bus_info (OBusId busid) const
 Retrieve BusInfo for an output bus.
 
bool connected (OBusId obusid) const
 
const floatifloats (IBusId b, uint c) const
 Access readonly float buffer of input bus b, channel c, see also ofloats().
 
const floatofloats (OBusId b, uint c) const
 Access readonly float buffer of output bus b, channel c, see also oblock().
 
DeviceP get_device () const
 Gain access to the Device handle of this AudioProcessor.
 
bool has_event_input () const
 Returns true if this AudioProcessor has an event input stream.
 
bool has_event_output () const
 Returns true if this AudioProcessor has an event output stream.
 
void connect_event_input (AudioProcessor &oproc)
 Connect event input to event output of AudioProcessor oproc.
 
void disconnect_event_input ()
 Disconnect event input if a connection is present.
 
void enable_engine_output (bool onoff)
 Configure if the main output of this module is mixed into the engine output.
 
- Public Member Functions inherited from std::enable_shared_from_this< AudioProcessor >
enable_shared_from_this (T... args)
 
operator= (T... args)
 
shared_from_this (T... args)
 
weak_from_this (T... args)
 
~enable_shared_from_this (T... args)
 
- Public Member Functions inherited from Ase::FastMemory::NewDeleteBase
void * operator new (std::size_t sz)
 
void * operator new[] (std::size_t sz)
 
void * operator new (std::size_t sz, std::align_val_t al)
 
void * operator new[] (std::size_t sz, std::align_val_t al)
 
void operator delete (void *ptr, std::size_t sz)
 
void operator delete[] (void *ptr, std::size_t sz)
 
void operator delete (void *ptr, std::size_t sz, std::align_val_t al)
 
void operator delete[] (void *ptr, std::size_t sz, std::align_val_t al)
 

Protected Member Functions

virtual void reconnect (size_t index, bool insertion)=0
 
 AudioCombo (const ProcessorSetup &)
 
- Protected Member Functions inherited from Ase::AudioProcessor
 AudioProcessor (const ProcessorSetup &)
 Constructor for AudioProcessor.
 
virtual ~AudioProcessor ()
 The destructor is called when the last std::shared_ptr<> reference drops.
 
virtual void initialize (SpeakerArrangement busses)=0
 
void enotify_enqueue_mt (uint32 pushmask)
 
uint schedule_processor ()
 Schedule this node and its dependencies for engine rendering.
 
void reschedule ()
 Request recreation of the audio engine rendering schedule.
 
virtual uint schedule_children ()
 
void install_params (const AudioParams::Map &params)
 Reset list of parameters, enqueues parameter value initializaiton events.
 
void apply_event (const MidiEvent &event)
 Assign MidiEvent::PARAM_VALUE event values to parameters.
 
void apply_input_events ()
 
virtual void adjust_param (uint32_t paramid)
 
double peek_param_mt (Id32 paramid) const
 
IBusId add_input_bus (CString uilabel, SpeakerArrangement speakerarrangement, const String &hints="", const String &blurb="")
 Add an input bus with uilabel and channels configured via speakerarrangement.
 
OBusId add_output_bus (CString uilabel, SpeakerArrangement speakerarrangement, const String &hints="", const String &blurb="")
 Add an output bus with uilabel and channels configured via speakerarrangement.
 
void remove_all_buses ()
 Remove existing bus configurations, useful at the start of configure().
 
IOBusiobus (OBusId busid)
 Get internal output bus handle.
 
IOBusiobus (IBusId busid)
 Get internal input bus handle.
 
const IOBusiobus (OBusId busid) const
 
const IOBusiobus (IBusId busid) const
 
void disconnect_ibuses ()
 Reset input bus buffer data.
 
void disconnect_obuses ()
 Disconnect inputs of all Processors that are connected to outputs of this.
 
void disconnect (IBusId ibus)
 Disconnect input ibusid.
 
void connect (IBusId ibus, AudioProcessor &oproc, OBusId obus)
 Connect input ibusid to output obusid of AudioProcessor prev.
 
floatoblock (OBusId b, uint c)
 
void assign_oblock (OBusId b, uint c, float val)
 Fill the output buffer of bus b, channel c with v.
 
void redirect_oblock (OBusId b, uint c, const float *block)
 Redirect output buffer of bus b, channel c to point to block, or zeros if block==nullptr.
 
void prepare_event_input ()
 
void prepare_event_output ()
 
MidiEventInput midi_event_input ()
 Access the current MidiEvent inputs during render(), needs prepare_event_input().
 
MidiEventOutputmidi_event_output ()
 Access the current output EventStream during render(), needs prepare_event_output().
 
void atomic_bits_resize (size_t count)
 Prepare count bits for atomic notifications.
 
bool atomic_bit_notify (size_t nth)
 Set the nth atomic notification bit, return if enotify_enqueue_mt() is needed.
 

Protected Attributes

AudioProcessorS processors_
 
AudioProcessorP eproc_
 
- Protected Attributes inherited from Ase::AudioProcessor
std::atomic< uint32flags_
 
AudioEngineengine_
 
CString aseid_
 

Additional Inherited Members

- Public Types inherited from Ase::AudioProcessor
using MakeProcessor = AudioProcessorP(*)(AudioEngine &)
 
using MaybeParamId = std::pair< ParamId, bool >
 
using StaticInfo = void(*)(AudioProcessorInfo &)
 
using MakeDeviceP = std::function< DeviceP(const String &, StaticInfo, AudioProcessorP)>
 
using MakeProcessorP = AudioProcessorP(*)(CString, AudioEngine &)
 
- Static Public Member Functions inherited from Ase::AudioProcessor
static uint64 timestamp ()
 The current timestamp in sample frames.
 
static double param_peek_mt (const AudioProcessorP proc, Id32 paramid)
 
static void registry_add (CString aseid, StaticInfo, MakeProcessorP)
 
static DeviceP registry_create (CString aseid, AudioEngine &engine, const MakeDeviceP &)
 
static void registry_foreach (const std::function< void(const String &aseid, StaticInfo)> &fun)
 Iterate over the known AudioProcessor types.
 
template<class AudioProc , class ... Args>
static std::shared_ptr< AudioProc > create_processor (AudioEngine &engine, const Args &...args)
 
- Static Public Attributes inherited from Ase::AudioProcessor
static const String GUIONLY
 ":G:r:w:" - GUI READABLE WRITABLE
 
static const String STANDARD
 ":G:S:r:w:" - GUI STORAGE READABLE WRITABLE
 
static const String STORAGEONLY
 ":S:r:w:" - STORAGE READABLE WRITABLE
 
- Protected Types inherited from Ase::AudioProcessor
enum  {
  INITIALIZED , SCHEDULED , PARAMCHANGE , BUSCONNECT ,
  BUSDISCONNECT , INSERTION , REMOVAL , ENGINE_OUTPUT
}
 
using MinMax = std::pair< double, double >
 
using MidiEventInput = MidiEventReader< 2 >
 
- Static Protected Member Functions inherited from Ase::AudioProcessor
static uint schedule_processor (AudioProcessor &p)
 
- Static Protected Member Functions inherited from Ase::ProcessorManager
static auto pm_remove_all_buses (AudioProcessor &p)
 
static auto pm_disconnect_ibuses (AudioProcessor &p)
 
static auto pm_disconnect_obuses (AudioProcessor &p)
 
static auto pm_connect (AudioProcessor &p, IBusId i, AudioProcessor &d, OBusId o)
 
static auto pm_connect_event_input (AudioProcessor &oproc, AudioProcessor &iproc)
 

Detailed Description

Definition at line 9 of file combo.hh.

Constructor & Destructor Documentation

◆ AudioCombo()

Ase::AudioCombo::AudioCombo ( const ProcessorSetup psetup)
explicitprotected

Definition at line 44 of file combo.cc.

◆ ~AudioCombo()

Ase::AudioCombo::~AudioCombo ( )
protectedvirtual

Definition at line 48 of file combo.cc.

Member Function Documentation

◆ at()

AudioProcessorP Ase::AudioCombo::at ( uint  nth)

Return the AudioProcessor at position nth in the AudioCombo.

Definition at line 97 of file combo.cc.

References return_unless, and size().

◆ find_pos()

ssize_t Ase::AudioCombo::find_pos ( AudioProcessor proc)

Return the index of AudioProcessor proc in the AudioCombo.

Definition at line 105 of file combo.cc.

◆ insert()

void Ase::AudioCombo::insert ( AudioProcessorP  proc,
ssize_t  pos = ~size_t (0) 
)

Add a new AudioProcessor proc at position pos to the AudioCombo. The processor proc must not be previously contained by another AudioCombo.

Definition at line 56 of file combo.cc.

References assert_return, CLAMP, Ase::AudioProcessor::enotify_enqueue_mt(), Ase::AudioChain::reconnect(), and Ase::AudioProcessor::reschedule().

◆ list_processors()

AudioProcessorS Ase::AudioCombo::list_processors ( ) const

Retrieve list of AudioProcessorS contained in this AudioCombo.

Definition at line 122 of file combo.cc.

◆ reconnect()

virtual void Ase::AudioCombo::reconnect ( size_t  index,
bool  insertion 
)
protectedpure virtual

Implemented in Ase::AudioChain.

◆ remove()

bool Ase::AudioCombo::remove ( AudioProcessor proc)

Remove a previously added AudioProcessor proc from the AudioCombo.

Definition at line 71 of file combo.cc.

References Ase::AudioProcessor::enotify_enqueue_mt(), Ase::AudioChain::reconnect(), and Ase::AudioProcessor::reschedule().

◆ set_event_source()

void Ase::AudioCombo::set_event_source ( AudioProcessorP  eproc)

Assign event source for future auto-connections of chld processors.

Definition at line 129 of file combo.cc.

References assert_return.

◆ size()

size_t Ase::AudioCombo::size ( )

Return the number of AudioProcessor instances in the AudioCombo.

Definition at line 115 of file combo.cc.

Referenced by at().

Member Data Documentation

◆ eproc_

AudioProcessorP Ase::AudioCombo::eproc_
protected

Definition at line 12 of file combo.hh.

◆ processors_

AudioProcessorS Ase::AudioCombo::processors_
protected

Definition at line 11 of file combo.hh.


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