Go to the documentation of this file.
26 namespace gx_jack {
class GxJack; }
36 static void process(
int count,
float *input,
float *output,
PluginDef*);
43 static void process(
int count,
float *input0,
float *input1,
44 float *output0,
float *output1,
PluginDef*);
54 static void process(
int count,
float *input0,
float *input1,
55 float *output0,
float *output1,
PluginDef*);
58 static float get(
unsigned int channel) {
60 float v = maxlevel[channel];
61 maxlevel[channel] = 0;
74 static void feed_tuner(
int count,
float *input,
float *output,
PluginDef*);
75 static int regparam(
const ParamReg& reg);
81 enum { tuner_use = 0x01, switcher_use = 0x02, midi_use = 0x04 };
82 void set_and_check(
int use,
bool on);
164 unsigned char* midi_send;
165 unsigned char* midi_send1;
166 unsigned char* midi_send2;
170 void init(
int samplingFreq);
171 void process_midi(
int len,
float *audiodata,
void *midi_port_buf,
float jcpu_load,
172 float fConsta4,
float fConsta1t);
185 Glib::Dispatcher overload_change;
186 static void fill_buffer(
int count,
float *input0,
float *output0,
PluginDef*);
187 static int regparam(
const ParamReg& reg);
207 static float fnglevel;
210 static int noisegate_register(
const ParamReg& reg);
211 static void inputlevel_compute(
int count,
float *input0,
float *output0,
PluginDef*);
212 static void outputgate_compute(
int count,
float *input,
float *output,
PluginDef*);
227 static float* buffer;
228 static unsigned int size;
229 static void fill_buffer(
int count,
float *input0,
float *output0,
PluginDef*);
230 static int osc_register(
const ParamReg& reg);
232 void change_buffersize(
unsigned int);
239 unsigned int get_size() {
return size; }
242 void set_mul_buffer(
int a,
unsigned int b) { mul_buffer = a; change_buffersize(b); }
254 std::vector<int> seqline;
263 inline const std::vector<int>&
getseqline()
const {
return seqline; }
265 inline void setseqline(
const std::vector<int>& seq) { seqline = seq; }
279 sigc::signal<void, const GxSeqSettings*> changed;
285 sigc::signal<void, const GxSeqSettings*>& signal_changed() {
return changed; }
317 inline void setIRDir(
string name) { fIRDir = name; }
325 inline const std::string&
getIRFile()
const {
return fIRFile; }
327 inline float getGain()
const {
return fGain; }
328 inline guint
getOffset()
const {
return fOffset; }
333 const std::string&
getIRDir()
const {
return fIRDir; }
336 inline void setGain(
float gain) { fGain = gain; }
337 inline void setGainCor(
bool gain) { fGainCor = gain; }
338 inline void setOffset(guint offs) { fOffset = offs; }
339 inline void setLength(guint leng) { fLength = leng; }
340 inline void setDelay(guint del) { fDelay = del; }
341 inline void setGainline(
const Gainline& gain) { gainline = gain; }
359 sigc::signal<void, const GxJConvSettings*> changed;
365 sigc::signal<void, const GxJConvSettings*>& signal_changed() {
return changed; }
390 sigc::slot<void>
sync;
418 #include "faust/jconv_post.h"
419 #include "faust/jconv_post_mono.h"
423 jconv_post::Dsp jc_post;
425 static void convolver_init(
unsigned int samplingFreq,
PluginDef *pdef);
427 static void convolver(
int count,
float *input0,
float *input1,
428 float *output0,
float *output1,
PluginDef*);
429 static int convolver_register(
const ParamReg& reg);
442 jconv_post_mono::Dsp jc_post_mono;
444 static void convolver_init(
unsigned int samplingFreq,
PluginDef *pdef);
446 static void convolver(
int count,
float *input,
float *output,
PluginDef*);
447 static int convolver_register(
const ParamReg& reg);
464 sigc::slot<void>
sync;
473 virtual bool start(
bool force =
false) = 0;
492 sigc::slot<void>
sync;
505 virtual bool start(
bool force =
false) = 0;
518 #include "faust/cabinet_impulse_former.h"
520 class CabinetConvolver:
public FixedBaseConvolver {
529 cabinet_impulse_former::Dsp impf;
531 static void run_cab_conf(
int count,
float *input,
float *output,
PluginDef*);
532 static int register_cab(
const ParamReg& reg);
534 virtual void check_update();
535 virtual bool start(
bool force =
false);
536 bool cabinet_changed() {
return current_cab != cabinet; }
537 void update_cabinet() { current_cab = cabinet; }
538 bool sum_changed() {
return std::abs(sum - (level + bass + treble)) > 0.01; }
539 void update_sum() { sum = level + bass + treble; }
546 #include "faust/cabinet_impulse_former_st.h"
548 class CabinetStereoConvolver:
public FixedBaseConvolver {
557 cabinet_impulse_former_st::Dsp impf;
560 static void run_cab_conf(
int count,
float *input,
float *input1,
float *output,
float *output1,
PluginDef*);
561 static int register_cab(
const ParamReg& reg);
563 virtual void check_update();
564 virtual bool start(
bool force =
false);
565 bool cabinet_changed() {
return current_cab != cabinet; }
566 void update_cabinet() { current_cab = cabinet; }
567 bool sum_changed() {
return fabs(sum - (level + bass + treble)) > 0.01; }
568 void update_sum() { sum = level + bass + treble; }
580 #include "faust/preamp_impulse_former.h"
582 class PreampConvolver:
public FixedBaseConvolver {
591 preamp_impulse_former::Dsp impf;
593 static void run_pre_conf(
int count,
float *input,
float *output,
PluginDef*);
594 static int register_pre(
const ParamReg& reg);
596 virtual void check_update();
597 virtual bool start(
bool force =
false);
598 bool preamp_changed() {
return current_pre != preamp; }
599 void update_preamp() { current_pre = preamp; }
600 bool sum_changed() {
return std::abs(sum - (level + bass + treble)) > 0.01; }
601 void update_sum() { sum = level + bass + treble; }
608 #include "faust/preamp_impulse_former_st.h"
610 class PreampStereoConvolver:
public FixedBaseConvolver {
619 preamp_impulse_former_st::Dsp impf;
622 static void run_pre_conf(
int count,
float *input,
float *input1,
float *output,
float *output1,
PluginDef*);
623 static int register_pre(
const ParamReg& reg);
625 virtual void check_update();
626 virtual bool start(
bool force =
false);
627 bool preamp_changed() {
return current_pre != preamp; }
628 void update_preamp() { current_pre = preamp; }
629 bool sum_changed() {
return fabs(sum - (level + bass + treble)) > 0.01; }
630 void update_sum() { sum = level + bass + treble; }
641 #include "faust/presence_level.h"
643 class ContrastConvolver:
public FixedBaseConvolver {
647 presence_level::Dsp presl;
649 static void run_contrast(
int count,
float *input,
float *output,
PluginDef*);
651 inline void update_sum() { sum = level; }
652 virtual void check_update();
654 inline bool sum_changed() {
return std::abs(sum - level) > 0.01; }
655 virtual bool start(
bool force =
false);
669 static LV2_Options_Option gx_options[2];
670 static LV2_Feature gx_options_feature;
672 static LV2_URID lv2_urid_map(LV2_URID_Map_Handle,
const char*
const uri_);
673 static LV2_Feature gx_urid_map_feature;
675 static uint32_t lv2_uri_to_id(LV2_URI_Map_Callback_Data handle,
const char*,
const char* uri);
676 static LV2_URI_Map_Feature gx_uri_map;
677 static LV2_Feature gx_uri_map_feature;
679 static const char* lv2_urid_unmap(LV2_URID_Unmap_Handle,
const LV2_URID urid);
680 static LV2_Feature gx_urid_unmap_feature;
704 struct paradesc: boost::noncopyable {
737 std::vector<paradesc*>
names;
756 const LilvPlugins* lv2_plugins;
757 LilvNode* lv2_AudioPort;
758 LilvNode* lv2_ControlPort;
759 LilvNode* lv2_InputPort;
760 LilvNode* lv2_OutputPort;
762 void read_module_config(
const std::string& filename,
plugdesc *p);
768 unsigned int size() {
return plugins.size(); }
771 pluginarray::iterator
begin() {
return plugins.begin(); }
772 pluginarray::iterator
end() {
return plugins.end(); }
780 {
return "ladspa"+uid_key.substr(9)+
".js"; }
798 sigc::slot<void> sync;
801 void init(
unsigned int samplingFreq);
802 void compute(
int count,
float *input0,
float *input1,
float *output0,
float *output1);
803 void change_buffersize(
unsigned int size);
805 static void init_static(
unsigned int samplingFreq,
PluginDef*);
806 static void compute_static(
int count,
float *input0,
float *input1,
float *output0,
float *output1,
PluginDef*);
825 class FileResampler {
828 int inputRate, outputRate;
831 int setup(
int _inputRate,
int _outputRate);
832 int run(
int count,
float *input,
float *output);
833 int max_out_count(
int in_count) {
834 return static_cast<int>(ceil((in_count*static_cast<double>(outputRate))/inputRate)); }
952 Glib::ustring preset_name;
953 Glib::ustring load_file1;
954 Glib::ustring load_file2;
955 Glib::ustring load_file3;
956 Glib::ustring load_file4;
957 Glib::ustring cur_name;
958 Glib::ustring loop_dir;
962 sigc::slot<void> sync;
967 int do_resample(
int inrate,
int insize,
float *input,
int maxsize);
968 int do_mono(
int c,
int f,
float *oIn,
float *tape,
int n);
969 void play_all_tapes();
972 void clear_state_f();
973 int activate(
bool start);
974 int load_ui_f(
const UiBuilder& b,
int form);
975 void init(
unsigned int samplingFreq);
976 void compute(
int count,
float *input0,
float *output0);
977 int register_par(
const ParamReg& reg);
978 void save_array(std::string
name);
979 void load_array(std::string
name);
980 void save_to_wave(std::string fname,
float *tape,
float fSize,
int tape_size);
981 int load_from_wave(std::string fname,
float **tape,
int tape_size);
988 static void clear_state_f_static(
PluginDef*);
990 static int load_ui_f_static(
const UiBuilder& b,
int form);
991 static void init_static(
unsigned int samplingFreq,
PluginDef*);
992 static void compute_static(
int count,
float *input0,
float *output0,
PluginDef*);
993 static int register_params_static(
const ParamReg& reg);
1028 volatile bool keep_stream;
1038 void clear_state_f();
1039 int activate(
bool start);
1040 int load_ui_f(
const UiBuilder& b,
int form);
1041 void init(
unsigned int samplingFreq);
1042 void compute(
int count,
float *input0,
float *output0);
1043 void compute_st(
int count,
float *input0,
float *input1,
float *output0,
float *output1);
1044 int register_par(
const ParamReg& reg);
1045 void save_to_wave(SNDFILE * sf,
float *tape,
int lSize);
1046 SNDFILE *open_stream(std::string fname);
1047 void close_stream(SNDFILE **sf);
1049 void start_thread();
1051 inline std::string get_ffilename();
1053 static void *run_thread(
void* p);
1054 static void clear_state_f_static(
PluginDef*);
1056 static const char *glade_def;
1057 static const char *glade_def_st;
1058 static int load_ui_f_static(
const UiBuilder& b,
int form);
1059 static void init_static(
unsigned int samplingFreq,
PluginDef*);
1060 static void compute_static(
int count,
float *input0,
float *output0,
PluginDef*);
1061 static void compute_static_st(
int count,
float *input0,
float *input1,
float *output0,
float *output1,
PluginDef*);
1062 static int register_params_static(
const ParamReg& reg);
1074 #include "faust/drumseq.h"
1081 static Plugin input_drum;
1082 static void outputdrum_compute(
int count,
float *input0,
float *input1,
float *output0,
float *output1,
PluginDef*);
1085 static void set_data(
float* mode,
bool ready,
float* buf);
1118 std::vector<int> Vectom;
1119 std::vector<int> Vectom1;
1120 std::vector<int> Vectom2;
1121 std::vector<int> Veckick;
1122 std::vector<int> Vecsnare;
1123 std::vector<int> Vechat;
1127 sigc::slot<void> sync;
1128 volatile bool ready;
1146 void init(
unsigned int samplingFreq);
1148 void change_buffersize(
unsigned int size);
1149 int register_par(
const ParamReg& reg);
1159 static void init_static(
unsigned int samplingFreq,
PluginDef*);
1161 static int register_params_static(
const ParamReg& reg);
1192 #define M_PI 3.14159265358979323846
1193 #define MAX_FRAME_LENGTH 8096
1200 sigc::slot<void> sync;
1201 volatile bool ready;
1226 int octave, osamp, numSampsToResamp, numSampsToProcess, fftFrameSize, sampleRate ;
1231 long gRover , gInit ;
1232 double magn, phase, tmp, window, real, imag;
1233 double freqPerBin, freqPerBin1, freqPerBin2, expct;
1234 double fftFrameSize3;
1235 double fftFrameSize4;
1236 double osamp1,osamp2;
1237 long i,k, qpd, index, inFifoLatency, stepSize, fftFrameSize2;
1240 fftwf_plan ftPlanForward, ftPlanInverse;
1242 inline int load_ui_f(
const UiBuilder& b,
int form);
1243 int register_par(
const ParamReg& reg);
1244 void change_latency();
1249 int activate(
bool start);
1250 bool setParameters(
int sampleRate);
1251 void PitchShift(
int count,
float *indata,
float *outdata);
1252 void change_buffersize(
unsigned int size);
1255 static int registerparam(
const ParamReg& reg);
1256 static int load_ui_f_static(
const UiBuilder& b,
int form);
1258 static void compute_static(
int count,
float *input0,
float *output0,
PluginDef *p);
void set_valuelist(const std::vector< std::string > &v)
~CabinetStereoConvolver()
Glib::Dispatcher & signal_freq_changed()
std::string getFullIRPath() const
static int activate(bool start, PluginDef *pdef)
float get_estimated_note()
void setFullIRPath(string name)
void process_midi(int len, float *audiodata, void *midi_port_buf, float jcpu_load, float fConsta4, float fConsta1t)
static void init(unsigned int samplingFreq, PluginDef *p)
static LV2_Feature * gx_features[]
void setLength(guint leng)
Glib::ustring master_label
unsigned int SamplingFreq
void used_by_midi(bool on)
void update_instance(PluginDef *pdef, plugdesc *pdesc)
float get_estimated_freq()
OscilloscopeAdapter(ModuleSequencer &engine)
const std::string & getIRDir() const
bool set(const GxJConvSettings &jcset) const
static LV2_URID_Unmap gx_urid_unmap
static const unsigned int channelcount
bool set(const GxJConvSettings &val) const
virtual bool on_off_value()=0
ParameterV< GxSeqSettings > SeqParameter
void set_jack(gx_jack::GxJack *jack_)
std::vector< paradesc * > names
void readJSON(gx_system::JsonParser &jp)
TunerAdapter(ModuleSequencer &engine)
void setseqline(const std::vector< int > &seq)
void writeJSON(gx_system::JsonWriter &jw)
static LV2_URID_Map gx_urid_map
const GxJConvSettings & get_jcset() const
Glib::Dispatcher new_freq
void set_data(bool dfill)
static int activate(bool start, PluginDef *pdef)
pluginarray::iterator begin()
unsigned int getSamplingFreq()
void change_plugins(pluginarray &new_plugins)
void change_buffersize(unsigned int size)
DrumSequencer(ParamMap ¶m_, EngineControl &engine, sigc::slot< void > sync)
virtual void serializeJSON(gx_system::JsonWriter &jw)
boost::mutex activate_mutex
ContrastConvolver(EngineControl &engine, sigc::slot< void > sync, gx_resample::BufferResampler &resamp)
std::string to_string(const T &t)
sigc::signal< int, bool > activation
void setGainline(const Gainline &gain)
void writeJSON(gx_system::JsonWriter &w) const
~ConvolverStereoAdapter()
const std::string & getIRFile() const
virtual void check_update()=0
void setIRFile(string name)
static void set_data(float *mode, bool ready, float *buf)
static Plugin output_drum
virtual ~FixedBaseConvolver()
GxJConvSettings & operator=(GxJConvSettings const &jcset)
static void init(unsigned int samplingFreq, PluginDef *p)
void change_buffersize(unsigned int)
void change_buffersize(unsigned int)
sigc::connection update_conn
MidiAudioBuffer(TunerAdapter &t)
smbPitchShift(ParamMap ¶m_, EngineControl &engine, sigc::slot< void > sync)
static std::string get_ladspa_filename(unsigned long uid)
bool check_update_timeout()
const Gainline & getGainline() const
void operator=(LV2Features const &)=delete
void setGainCor(bool gain)
void writeJSON(gx_system::JsonWriter &w) const
SCapture(EngineControl &engine, int channel_)
static PluginDef outputdrum
sigc::connection update_conn
friend class SequencerAdapter
boost::mutex activate_mutex
virtual bool start(bool force=false)=0
static PluginDef outputgate
CabinetConvolver(EngineControl &engine, sigc::slot< void > sync, gx_resample::BufferResampler &resamp)
static LV2Features & getInstance()
virtual void setJSON_value()=0
ParameterV< GxJConvSettings > JConvParameter
pluginarray::iterator end()
GxSeqSettings & operator=(GxSeqSettings const &seqset)
boost::mutex activate_mutex
PreampConvolver(EngineControl &engine, sigc::slot< void > sync, gx_resample::BufferResampler &resamp)
const std::string & getIRFile() const
void readJSON(gx_system::JsonParser &jp)
virtual void check_update()=0
ConvolverAdapter(EngineControl &engine, sigc::slot< void > sync, ParamMap ¶m)
virtual void readJSON_value(gx_system::JsonParser &jp)=0
static Plugin directoutput
sigc::signal< void, unsigned int > size_change
BaseConvolver(EngineControl &engine, sigc::slot< void > sync, gx_resample::BufferResampler &resamp)
ConvolverMonoAdapter(EngineControl &engine, sigc::slot< void > sync, ParamMap ¶m)
ParamMap & get_parameter_map() const
const std::string & getIRDir() const
virtual void writeJSON(gx_system::JsonWriter &jw) const =0
PreampStereoConvolver(EngineControl &engine, sigc::slot< void > sync, gx_resample::BufferResampler &resamp)
LiveLooper(ParamMap ¶m_, sigc::slot< void > sync, const string &loop_dir_)
LadspaLoader(const gx_system::CmdlineOptions &options, ParamMap ¶m)
pluginarray::iterator find(plugdesc *desc)
Glib::Dispatcher & signal_jack_load_change()
virtual bool compareJSON_value()=0
bool operator==(const GxJConvSettings &jcset) const
FixedBaseConvolver(EngineControl &engine, sigc::slot< void > sync, gx_resample::BufferResampler &resamp)
CmdConnection::msg_type start
PluginDef * create(unsigned int idx)
bool check_update_timeout()
void set_plugins(pluginarray &new_plugins)
void set_dep_module(Plugin *dep)
bool load(pluginarray &p)
bool operator==(const GxSeqSettings &seqset) const
static float get(unsigned int channel)
void used_for_switching(bool on)
std::vector< plugdesc * > pluginarray
void readJSON(gx_system::JsonParser &jp)
ConvolverStereoAdapter(EngineControl &engine, sigc::slot< void > sync, ParamMap ¶m)
void init(int samplingFreq)
std::string getFullIRPath() const
void setOffset(guint offs)
Directout(EngineControl &engine, sigc::slot< void > sync)
const std::vector< int > & getseqline() const
virtual bool start(bool force=false)=0
virtual void stdJSON_value()=0
CabinetStereoConvolver(EngineControl &engine, sigc::slot< void > sync, gx_resample::BufferResampler &resamp)
void set_mul_buffer(int a, unsigned int b)
void writeJSON(gx_system::JsonWriter &jw)
void register_parameter(const ParamReg ®)
ParamMap & get_parameter_map() const
void readJSON(gx_system::JsonParser &jp)
static void set_plugin(Plugin p)