Anklang 0.3.0-460-gc4ef46ba
ASE — Anklang Sound Engine (C++)
« « « Anklang Documentation |
Public Member Functions | |
MidiProducerImpl (const ProcessorSetup &psetup) | |
void | initialize (SpeakerArrangement busses) override |
void | update_feed (MidiFeedP &feed) override |
void | reset (uint64 target_stamp) override |
Reset all state variables. | |
void | start () override |
void | stop (bool restart) override |
void | render (uint n_frames) override |
Position * | position () const override |
![]() | |
MidiProducerIface (const ProcessorSetup &psetup) | |
![]() | |
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 |
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 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. | |
![]() | |
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) |
![]() | |
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 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) |
Additional Inherited Members | |
![]() | |
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 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 | |
![]() | |
enum | { INITIALIZED , SCHEDULED , PARAMCHANGE , BUSCONNECT , BUSDISCONNECT , INSERTION , REMOVAL , ENGINE_OUTPUT } |
using | MinMax = std::pair< double, double > |
using | MidiEventInput = MidiEventReader< 2 > |
![]() | |
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) |
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 ¶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 () |
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(). | |
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) |
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(). | |
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. | |
![]() | |
static uint | schedule_processor (AudioProcessor &p) |
![]() | |
std::atomic< uint32 > | flags_ |
AudioEngine & | engine_ |
CString | aseid_ |
Definition at line 32 of file midilib.cc.
Ase::MidiLib::MidiProducerImpl::MidiProducerImpl | ( | const ProcessorSetup & | psetup | ) |
Definition at line 41 of file midilib.cc.
Ase::MidiLib::MidiProducerImpl::~MidiProducerImpl | ( | ) |
Definition at line 48 of file midilib.cc.
|
overridevirtual |
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 58 of file midilib.cc.
References Ase::AudioProcessor::prepare_event_input(), Ase::AudioProcessor::prepare_event_output(), and Ase::AudioProcessor::remove_all_buses().
|
overridevirtual |
Implements Ase::MidiLib::MidiProducerIface.
Definition at line 219 of file midilib.cc.
|
overridevirtual |
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 119 of file midilib.cc.
References Ase::MidiEventOutput::append(), Ase::MidiEventOutput::append_unsorted(), ASE_ISLIKELY, ASE_UNLIKELY, assert_paranoid, Ase::AudioTransport::current_bpm, Ase::MidiEventOutput::ensure_order(), Ase::Aux::insert_sorted(), Ase::AudioProcessor::midi_event_input(), Ase::AudioProcessor::midi_event_output(), ssize_t, Ase::AudioProcessor::transport(), and Ase::MidiEvent::type.
|
overridevirtual |
Reset all state variables.
Implements Ase::AudioProcessor.
Definition at line 85 of file midilib.cc.
|
overridevirtual |
Implements Ase::MidiLib::MidiProducerIface.
Definition at line 94 of file midilib.cc.
|
static |
Definition at line 55 of file midilib.cc.
|
overridevirtual |
Implements Ase::MidiLib::MidiProducerIface.
Definition at line 108 of file midilib.cc.
|
overridevirtual |
Implements Ase::MidiLib::MidiProducerIface.
Definition at line 65 of file midilib.cc.