|
Anklang-0.3.0.dev551+gad1415e2 anklang-0.3.0.dev551+gad1415e2
ASE — Anklang Sound Engine (C++)
« « « Anklang Documentation |
Classes | |
| class | Inlet |
| struct | Probe |
Public Types | |
| using | ProbeArray = std::array< Probe, 2 > |
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 &) |
Public Member Functions | |
| AudioChain (const ProcessorSetup &, SpeakerArrangement iobuses=SpeakerArrangement::STEREO) | |
| ProbeArray * | run_probes (bool enable) |
Public Member Functions inherited from Ase::AudioCombo | |
| void | insert (AudioProcessorP proc, ssize_t pos=~size_t(0)) |
Add a new AudioProcessor proc at position pos to the AudioCombo. | |
| 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 |
| AudioEngine & | engine () const |
| Retrieve AudioEngine handle for this AudioProcessor. | |
| const AudioTransport & | transport () 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 |
Check if the parameter dirty flag is set. | |
| void | adjust_all_params () |
| virtual String | param_value_to_text (uint32_t paramid, double value) const |
Format a parameter paramid value as text string. | |
| virtual double | param_value_from_text (uint32_t paramid, const String &text) const |
Extract a parameter paramid value from a text string. | |
| 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 |
| Indicator for connected output buses. | |
| const float * | ifloats (IBusId b, uint c) const |
Access readonly float buffer of input bus b, channel c, see also ofloats(). | |
| const float * | ofloats (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 > | |
| T | enable_shared_from_this (T... args) |
| T | operator= (T... args) |
| T | shared_from_this (T... args) |
| T | weak_from_this (T... args) |
| T | ~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) |
Static Public Member Functions | |
| static void | static_info (AudioProcessorInfo &info) |
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) |
| Fetch the current parameter value of a AudioProcessor from any thread. | |
| static void | registry_add (CString aseid, StaticInfo, MakeProcessorP) |
| Add a new type to the AudioProcessor type registry. | |
| 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) |
Protected Member Functions | |
| void | initialize (SpeakerArrangement busses) override |
| Mandatory method to setup parameters and I/O busses. | |
| void | reset (uint64 target_stamp) override |
| Reset all state variables. | |
| void | render (uint n_frames) override |
| Method called for every audio buffer to be processed. | |
| uint | schedule_children () override |
| void | reconnect (size_t index, bool insertion) override |
| Reconnect AudioChain child processors at start and after. | |
| uint | chain_up (AudioProcessor &pfirst, AudioProcessor &psecond) |
Connect the main audio input of next to audio output of prev. | |
Protected Member Functions inherited from Ase::AudioCombo | |
| 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. | |
| void | enotify_enqueue_mt (uint32 pushmask) |
| Queue an AudioProcessor notification This function is MT-Safe after proper AudioProcessor initialization. | |
| uint | schedule_processor () |
| Schedule this node and its dependencies for engine rendering. | |
| void | reschedule () |
| Request recreation of the audio engine rendering schedule. | |
| void | install_params (const AudioParams::Map ¶ms) |
| 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 () |
| Process all input events via apply_event() and adjust_param(). | |
| virtual void | adjust_param (uint32_t paramid) |
| double | peek_param_mt (Id32 paramid) const |
| Fetch the current parameter value of an AudioProcessor. | |
| 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(). | |
| IOBus & | iobus (OBusId busid) |
| Get internal output bus handle. | |
| IOBus & | iobus (IBusId busid) |
| Get internal input bus handle. | |
| const IOBus & | iobus (OBusId busid) const |
| const IOBus & | iobus (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. | |
| float * | oblock (OBusId b, uint c) |
Reset buffer redirections and access float buffer of output bus b, channel 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 () |
| Prepare the AudioProcessor to receive Event objects during render() via get_event_input(). | |
| void | prepare_event_output () |
| Prepare the AudioProcessor to produce Event objects during render() via get_event_output(). | |
| MidiEventInput | midi_event_input () |
| Access the current MidiEvent inputs during render(), needs prepare_event_input(). | |
| MidiEventOutput & | midi_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. | |
Additional Inherited Members | |
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 | 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) |
Protected Attributes inherited from Ase::AudioCombo | |
| AudioProcessorS | processors_ |
| AudioProcessorP | eproc_ |
Protected Attributes inherited from Ase::AudioProcessor | |
| std::atomic< uint32 > | flags_ |
| AudioEngine & | engine_ |
| CString | aseid_ |
| using Ase::AudioChain::ProbeArray = std::array<Probe,2> |
|
explicit |
|
protected |
Connect the main audio input of next to audio output of prev.
Definition at line 238 of file combo.cc.
References assert_return, Ase::MONO, and uint64_t.
Referenced by reconnect().
|
overrideprotectedvirtual |
Mandatory method to setup parameters and I/O busses.
See add_param(), add_input_bus() / add_output_bus(). This method will be called once per instance after construction.
Implements Ase::AudioProcessor.
Definition at line 162 of file combo.cc.
References Ase::AudioProcessor::add_input_bus(), Ase::AudioProcessor::add_output_bus(), and assert_return.
Reconnect AudioChain child processors at start and after.
Implements Ase::AudioCombo.
Definition at line 226 of file combo.cc.
References chain_up().
Referenced by Ase::AudioCombo::insert(), and Ase::AudioCombo::remove().
|
overrideprotectedvirtual |
Method called for every audio buffer to be processed.
Each connected output bus needs to be filled with n_frames, i.e. n_frames many floating point samples per channel. Using the AudioSignal::OBusId (see add_output_bus()), the floating point sample buffers can be addressed via the BusConfig structure as: bus[obusid].channel[nth].buffer, see FloatBuffer for further details. The AudioSignal::IBusId (see add_input_bus()) can be used correspondingly to retrieve input channel values.
Implements Ase::AudioProcessor.
Definition at line 191 of file combo.cc.
References Ase::fast_log2(), ISLIKELY, std::min(), Ase::AudioProcessor::n_ochannels(), Ase::AudioProcessor::ofloats(), Ase::AudioProcessor::redirect_oblock(), Ase::square_max(), and UNLIKELY.
|
overrideprotectedvirtual |
| AudioChain::ProbeArray * Ase::AudioChain::run_probes | ( | bool | enable | ) |
|
overrideprotectedvirtual |
Reimplemented from Ase::AudioProcessor.
|
static |