src/cshellsynth/mixer.h File Reference

#include <jack/jack.h>
#include <cshellsynth/atomic-types.h>
#include <cshellsynth/jclient.h>

Go to the source code of this file.

Data Structures

struct  cs_mix_t

Defines

#define cs_mix_destroy(cs_mix)   jclient_destroy((jclient_t *) (cs_mix))

Functions

int cs_mix_init (cs_mix_t *self, const char *client_name, jack_options_t flags, char *server_name)
int cs_mix_subclass_init (cs_mix_t *self, const char *client_name, jack_options_t flags, char *server_name)
void cs_mix_set_in1 (cs_mix_t *self, float in1)
void cs_mix_set_in2 (cs_mix_t *self, float in2)
void cs_mix_set_in1_amp (cs_mix_t *self, float in1_amp)
void cs_mix_set_in2_amp (cs_mix_t *self, float in2_amp)

Detailed Description

Mixer

Ruby version: LLMixer. There is also a derived Ruby Mixer class described below.

This simple mixer class just adds its arguments together, scaled by their respective amplitudes. Additionally, it serves as the subclass of all things that mix two things to get one thing. Right now, that's just Modulator (modulator.h).

In Ruby, there is a Mixer class which functions identically except that instead of in1* and in2*, there are in[0-x] and amp[0-x]. These are created on demand, but note that all intermediate values are filled in, so in[3] will ensure that in[0], in[1], and in[2] exist.

Additionally, there is a FullMixer class which also has pan[0-x], with outL and outR instead of out.

By default, $mixer is created as a FullMixer, with outL and outR connected to the default output.


Define Documentation

#define cs_mix_destroy ( cs_mix   )     jclient_destroy((jclient_t *) (cs_mix))

Destroy mixer

See jclient_destroy


Function Documentation

int cs_mix_init ( cs_mix_t self,
const char *  client_name,
jack_options_t  flags,
char *  server_name 
)

Initialize mixer

See jclient_init

void cs_mix_set_in1 ( cs_mix_t self,
float  in1 
)

Sets in1

Ruby version: in1=

void cs_mix_set_in1_amp ( cs_mix_t self,
float  in1_amp 
)

Sets in1 amplitude

Ruby version: in1amp=

void cs_mix_set_in2 ( cs_mix_t self,
float  in2 
)

Sets in2

Ruby version: in2=

void cs_mix_set_in2_amp ( cs_mix_t self,
float  in2_amp 
)

Sets in2 amplitude

Ruby version: in2amp=

int cs_mix_subclass_init ( cs_mix_t self,
const char *  client_name,
jack_options_t  flags,
char *  server_name 
)

An factored out init function for subclasses

 All Data Structures Files Functions Variables Typedefs Enumerations Defines
Generated on Thu Sep 2 23:47:09 2010 for cshellsynth by  doxygen 1.6.3