libpsynth 0.2.1
Namespaces | Classes | Typedefs | Functions | Variables
psynth::graph Namespace Reference

Namespaces

namespace  core
namespace  detail

Classes

class  node
class  node_delay
class  node_double_sampler
class  node_echo
class  node_factory
class  node_factory_manager
class  node_filter
class  node_manager
class  node_mixer
class  node_audio_mixer
class  node_control_mixer
class  node_noise
class  node_audio_noise
class  node_control_noise
class  node_oscillator
class  node_audio_oscillator
class  node_lfo
class  node_output
class  node_param
class  node_sampler
class  node_step_seq
class  watch
class  watch_viewer
class  watch_view_audio
class  buffer_out_port
class  buffer_in_port
class  defaulting_buffer_in_port
struct  buffer_forward_port
class  control_base
 Base class providing runtime polymorphic access to controls. More...
class  in_control_base
 Base class providing runtime polymorphic access to input controls. More...
class  out_control_base
 Base class providing runtime polymorphic access to output controls. More...
class  typed_out_control_base
class  typed_in_control_base
class  out_control
 A control for notifying the state of the node from the real time process out to the user thread. More...
class  in_control
 A control for sending parameter values from the user thread to the node internal state. More...
struct  fn_rt_event
struct  fn_async_event
class  port_base
class  in_port_base
class  out_port_base
class  typed_out_port_base
class  typed_in_port_base
class  out_port
class  in_port
class  forward_port_impl
 It is parametrized such that it works for normal ports and buffer ports, instantiate it with proper types ... More...
struct  forward_port
class  process_node
class  basic_process_context
class  rt_process_context
class  async_process_context
class  user_process_context
class  full_process_context
class  processor
class  sink_node
class  soft_buffer_in_port
struct  soft_buffer_forward_port
class  double_buffer
class  triple_buffer

Typedefs

typedef
sound::stereo32sf_planar_buffer 
audio_buffer
typedef
sound::stereo32sf_planar_range 
audio_range
typedef
sound::stereo32sfc_planar_range 
audio_const_range
typedef
sound::stereo32sf_planar_ring_buffer 
audio_ring_buffer
typedef
sound::stereo32sf_planar_ring_range 
audio_ring_range
typedef audio_range::value_type audio_frame
typedef sound::bits32sf audio_sample
typedef sound::mono32sf_buffer sample_buffer
typedef sound::mono32sf_range sample_range
typedef sound::mono32sfc_range sample_const_range
typedef sound::mono32sf_ring_buffer sample_ring_buffer
typedef sound::mono32sf_ring_range sample_ring_range
typedef sample_range::value_type sample_frame
typedef sound::bits32sf sample_sample
typedef io::output_ptr
< audio_const_range > 
audio_output_ptr
typedef io::async_output_ptr
< audio_const_range > 
audio_async_output_ptr
typedef watch_viewer
< sample_buffer,
sample_ring_buffer > 
watch_view_control
typedef buffer_out_port
< audio_buffer > 
audio_out_port
typedef buffer_in_port
< audio_buffer > 
audio_in_port
typedef
defaulting_buffer_in_port
< audio_buffer > 
defaulting_audio_in_port
typedef buffer_forward_port
< audio_buffer > 
audio_forward_port
typedef buffer_out_port
< sample_buffer > 
sample_out_port
typedef buffer_in_port
< sample_buffer > 
sample_in_port
typedef
defaulting_buffer_in_port
< sample_buffer > 
defaulting_sample_in_port
typedef buffer_forward_port
< sample_buffer > 
sample_forward_port
typedef std::map< std::string,
boost::any > 
control_meta
typedef base::dynamic_functor
< void, rt_process_context & > 
rt_event
typedef base::dynamic_functor
< void, async_process_context & > 
async_event
typedef
boost::intrusive::list_member_hook
< boost::intrusive::tag
< patch_child_hook_tag > > 
patch_child_hook
typedef
base::restricted_global_factory_manager
< std::string, node_ptr > 
node_factory
typedef std::map< std::string,
boost::any > 
port_meta
typedef
boost::intrusive::list_member_hook
< boost::intrusive::link_mode
< boost::intrusive::auto_unlink >
, boost::intrusive::tag
< out_port_referee_hook_tag > > 
out_port_referee_hook
typedef base::hetero_deque
< rt_event > 
rt_event_deque
typedef base::hetero_deque
< async_event > 
async_event_deque
typedef triple_buffer
< rt_event_deque,
base::try_lock_guard
<>, base::no_lock_guard<> > 
rt_triple_buffer
typedef triple_buffer
< async_event_deque,
base::no_lock_guard
<>, base::lock_guard<> > 
async_triple_buffer
typedef soft_buffer_in_port
< audio_buffer > 
soft_audio_in_port
typedef soft_buffer_in_port
< sample_buffer > 
soft_sample_in_port
typedef
soft_buffer_forward_port
< audio_buffer > 
soft_audio_forward_port
typedef
soft_buffer_forward_port
< sample_buffer > 
soft_sample_forward_port

Functions

 PSYNTH_DEFINE_NODE_FACTORY (node_delay)
 PSYNTH_DECLARE_NODE_FACTORY (node_delay,"delay")
 PSYNTH_DEFINE_NODE_FACTORY (node_double_sampler)
 PSYNTH_DECLARE_NODE_FACTORY (node_double_sampler,"double_sampler")
 PSYNTH_DEFINE_NODE_FACTORY (node_echo)
 PSYNTH_DECLARE_NODE_FACTORY (node_echo,"echo")
 PSYNTH_DEFINE_NODE_FACTORY (node_filter)
 PSYNTH_DECLARE_NODE_FACTORY (node_filter,"filter")
 PSYNTH_DEFINE_NODE_FACTORY (node_audio_mixer)
 PSYNTH_DEFINE_NODE_FACTORY (node_control_mixer)
 PSYNTH_DECLARE_NODE_FACTORY (node_control_mixer,"control_mixer")
 PSYNTH_DECLARE_NODE_FACTORY (node_audio_mixer,"audio_mixer")
 PSYNTH_DEFINE_NODE_FACTORY (node_audio_noise)
 PSYNTH_DEFINE_NODE_FACTORY (node_control_noise)
 PSYNTH_DECLARE_NODE_FACTORY (node_control_noise,"control_noise")
 PSYNTH_DECLARE_NODE_FACTORY (node_audio_noise,"audio_noise")
 PSYNTH_DEFINE_NODE_FACTORY (node_lfo)
 PSYNTH_DEFINE_NODE_FACTORY (node_audio_oscillator)
 PSYNTH_DECLARE_NODE_FACTORY (node_lfo,"lfo")
 PSYNTH_DECLARE_NODE_FACTORY (node_audio_oscillator,"oscillator")
 PSYNTH_DEFINE_NODE_FACTORY (node_output)
 PSYNTH_DECLARE_NODE_FACTORY (node_output,"output")
 PSYNTH_DEFINE_NODE_FACTORY (node_sampler)
 PSYNTH_DECLARE_NODE_FACTORY (node_sampler,"sampler")
 PSYNTH_DEFINE_NODE_FACTORY (node_step_seq)
 PSYNTH_DECLARE_NODE_FACTORY (node_step_seq,"stepseq")
 PSYNTH_DECLARE_TEMPLATE (buffer_in_port, typename)
 PSYNTH_DECLARE_TEMPLATE (buffer_forward_port, typename)
 PSYNTH_DECLARE_TEMPLATE (soft_buffer_in_port, typename)
 PSYNTH_DECLARE_TEMPLATE (soft_buffer_forward_port, typename)
 PSYNTH_DEFINE_ERROR_WHAT (control_type_error,"Wrong control type.")
 PSYNTH_DECLARE_ERROR (error, control_type_error)
 PSYNTH_DECLARE_TYPE (control_base)
 PSYNTH_DECLARE_TYPE (in_control_base)
 PSYNTH_DECLARE_TYPE (out_control_base)
template<class Fn >
fn_rt_event< Fn > make_rt_event (Fn &&f)
template<class Fn >
fn_async_event< Fn > make_async_event (Fn &&f)
 PSYNTH_DEFINE_ERROR (error)
 PSYNTH_DECLARE_ERROR (base::error_base, error)
 PSYNTH_DEFINE_ERROR (node_error)
 PSYNTH_DEFINE_ERROR (node_attachment_error)
 PSYNTH_DEFINE_ERROR_WHAT (node_component_error,"Unknown component.")
void connect (node_ptr source, const std::string &out_port, node_ptr dest, const std::string &dest_port)
 PSYNTH_DECLARE_ERROR (node_error, node_component_error)
 PSYNTH_DECLARE_ERROR (node_error, node_attachment_error)
 PSYNTH_DECLARE_SHARED_TYPE (node)
 PSYNTH_DEFINE_ERROR (port_error)
 PSYNTH_DEFINE_ERROR_WHAT (port_type_error,"Can not connect ports of different types.")
 PSYNTH_DEFINE_ERROR_WHAT (port_patch_error,"Can not connect ports of different patches.")
void check_port_compatibility (in_port_base &in, out_port_base &out)
 PSYNTH_DECLARE_ERROR (error, port_error)
 PSYNTH_DECLARE_ERROR (port_error, port_type_error)
 PSYNTH_DECLARE_ERROR (port_error, port_patch_error)
 PSYNTH_DECLARE_TYPE (port_base)
 PSYNTH_DECLARE_TYPE (out_port_base)
 PSYNTH_DECLARE_TYPE (in_port_base)
 PSYNTH_DECLARE_SHARED_TYPE (process_node)
 PSYNTH_DEFINE_ERROR (processor_error)
 PSYNTH_DEFINE_ERROR_WHAT (processor_not_running_error,"Can not start running processor.")
 PSYNTH_DEFINE_ERROR_WHAT (processor_not_idle_error,"Can not stop idle processor.")
 PSYNTH_DECLARE_ERROR (error, processor_error)
 PSYNTH_DECLARE_ERROR (processor_error, processor_not_running_error)
 PSYNTH_DECLARE_ERROR (processor_error, processor_not_idle_error)
 PSYNTH_DECLARE_TYPE (basic_process_context)
 PSYNTH_DECLARE_TYPE (rt_process_context)
 PSYNTH_DECLARE_TYPE (async_process_context)
 PSYNTH_DECLARE_TYPE (user_process_context)
 PSYNTH_DECLARE_TYPE (full_process_context)
 PSYNTH_DECLARE_SHARED_TYPE (processor)
 PSYNTH_DECLARE_SHARED_TYPE (sink_node)

Variables

const control_meta default_control_meta
const port_meta default_port_meta
constexpr std::size_t default_queue_size = 1 << 20
constexpr std::size_t default_block_size = 1 << 6
constexpr std::size_t default_frame_rate = 44100
constexpr float default_soft_port_duration = 0.004f

Typedef Documentation

typedef sound::stereo32sf_planar_buffer psynth::graph::audio_buffer
typedef sound::stereo32sfc_planar_range psynth::graph::audio_const_range
typedef audio_range::value_type psynth::graph::audio_frame
typedef sound::stereo32sf_planar_range psynth::graph::audio_range
typedef sound::stereo32sf_planar_ring_buffer psynth::graph::audio_ring_buffer
typedef sound::stereo32sf_planar_ring_range psynth::graph::audio_ring_range
typedef std::map<std::string, boost::any> psynth::graph::control_meta
typedef boost::intrusive::list_member_hook< boost::intrusive::link_mode<boost::intrusive::auto_unlink>, boost::intrusive::tag<out_port_referee_hook_tag> > psynth::graph::out_port_referee_hook
typedef boost::intrusive::list_member_hook< boost::intrusive::tag<patch_child_hook_tag> > psynth::graph::patch_child_hook
typedef std::map<std::string, boost::any> psynth::graph::port_meta
typedef sound::mono32sf_buffer psynth::graph::sample_buffer
typedef sound::mono32sfc_range psynth::graph::sample_const_range
typedef sample_range::value_type psynth::graph::sample_frame
typedef sound::mono32sf_range psynth::graph::sample_range
typedef sound::mono32sf_ring_buffer psynth::graph::sample_ring_buffer
typedef sound::mono32sf_ring_range psynth::graph::sample_ring_range

Function Documentation

void psynth::graph::check_port_compatibility ( in_port_base &  in,
out_port_base &  out 
)
void psynth::graph::connect ( node_ptr  source,
const std::string &  out_port,
node_ptr  dest,
const std::string &  dest_port 
)
template<class Fn >
fn_async_event<Fn> psynth::graph::make_async_event ( Fn &&  f)
template<class Fn >
fn_rt_event<Fn> psynth::graph::make_rt_event ( Fn &&  f)
psynth::graph::PSYNTH_DECLARE_ERROR ( error  ,
control_type_error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( base::error_base  ,
error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( node_error  ,
node_component_error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( node_error  ,
node_attachment_error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( error  ,
port_error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( port_error  ,
port_type_error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( port_error  ,
port_patch_error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( error  ,
processor_error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( processor_error  ,
processor_not_running_error   
)
psynth::graph::PSYNTH_DECLARE_ERROR ( processor_error  ,
processor_not_idle_error   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_filter  ,
"filter"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_audio_noise  ,
"audio_noise"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_double_sampler  ,
"double_sampler"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_lfo  ,
"lfo"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_delay  ,
"delay"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_control_mixer  ,
"control_mixer"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_audio_oscillator  ,
"oscillator"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_output  ,
"output"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_echo  ,
"echo"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_audio_mixer  ,
"audio_mixer"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_sampler  ,
"sampler"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_control_noise  ,
"control_noise"   
)
psynth::graph::PSYNTH_DECLARE_NODE_FACTORY ( node_step_seq  ,
"stepseq"   
)
psynth::graph::PSYNTH_DECLARE_SHARED_TYPE ( processor  )
psynth::graph::PSYNTH_DECLARE_SHARED_TYPE ( sink_node  )
psynth::graph::PSYNTH_DECLARE_SHARED_TYPE ( node  )
psynth::graph::PSYNTH_DECLARE_SHARED_TYPE ( process_node  )
psynth::graph::PSYNTH_DECLARE_TEMPLATE ( buffer_in_port  ,
typename   
)
psynth::graph::PSYNTH_DECLARE_TEMPLATE ( buffer_forward_port  ,
typename   
)
psynth::graph::PSYNTH_DECLARE_TEMPLATE ( soft_buffer_in_port  ,
typename   
)
psynth::graph::PSYNTH_DECLARE_TEMPLATE ( soft_buffer_forward_port  ,
typename   
)
psynth::graph::PSYNTH_DECLARE_TYPE ( user_process_context  )
psynth::graph::PSYNTH_DECLARE_TYPE ( basic_process_context  )
psynth::graph::PSYNTH_DECLARE_TYPE ( control_base  )
psynth::graph::PSYNTH_DECLARE_TYPE ( port_base  )
psynth::graph::PSYNTH_DECLARE_TYPE ( in_control_base  )
psynth::graph::PSYNTH_DECLARE_TYPE ( out_port_base  )
psynth::graph::PSYNTH_DECLARE_TYPE ( out_control_base  )
psynth::graph::PSYNTH_DECLARE_TYPE ( rt_process_context  )
psynth::graph::PSYNTH_DECLARE_TYPE ( async_process_context  )
psynth::graph::PSYNTH_DECLARE_TYPE ( full_process_context  )
psynth::graph::PSYNTH_DECLARE_TYPE ( in_port_base  )
psynth::graph::PSYNTH_DEFINE_ERROR ( error  )
psynth::graph::PSYNTH_DEFINE_ERROR ( node_error  )
psynth::graph::PSYNTH_DEFINE_ERROR ( port_error  )
psynth::graph::PSYNTH_DEFINE_ERROR ( node_attachment_error  )
psynth::graph::PSYNTH_DEFINE_ERROR ( processor_error  )
psynth::graph::PSYNTH_DEFINE_ERROR_WHAT ( processor_not_running_error  ,
"Can not start running processor."   
)
psynth::graph::PSYNTH_DEFINE_ERROR_WHAT ( node_component_error  ,
"Unknown component."   
)
psynth::graph::PSYNTH_DEFINE_ERROR_WHAT ( port_patch_error  ,
"Can not connect ports of different patches."   
)
psynth::graph::PSYNTH_DEFINE_ERROR_WHAT ( port_type_error  ,
"Can not connect ports of different types."   
)
psynth::graph::PSYNTH_DEFINE_ERROR_WHAT ( control_type_error  ,
"Wrong control type."   
)
psynth::graph::PSYNTH_DEFINE_ERROR_WHAT ( processor_not_idle_error  ,
"Can not stop idle processor."   
)
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_lfo  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_sampler  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_filter  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_control_noise  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_double_sampler  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_audio_noise  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_audio_oscillator  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_output  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_control_mixer  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_echo  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_audio_mixer  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_delay  )
psynth::graph::PSYNTH_DEFINE_NODE_FACTORY ( node_step_seq  )

Variable Documentation

constexpr std::size_t psynth::graph::default_block_size = 1 << 6
constexpr std::size_t psynth::graph::default_frame_rate = 44100
constexpr std::size_t psynth::graph::default_queue_size = 1 << 20