26 #include <lilv/lilv.h> 27 #include "lv2/lv2plug.in/ns/ext/presets/presets.h" 28 #include "lv2/lv2plug.in/ns/ext/state/state.h" 29 #include "lv2/lv2plug.in/ns/ext/urid/urid.h" 31 namespace gx_jack {
class GxJack; }
41 static void process(
int count,
float *input,
float *output,
PluginDef*);
48 static void process(
int count,
float *input0,
float *input1,
49 float *output0,
float *output1,
PluginDef*);
56 static const unsigned int channelcount = 2;
58 static float maxlevel[channelcount];
59 static void process(
int count,
float *input0,
float *input1,
60 float *output0,
float *output1,
PluginDef*);
63 static float get(
unsigned int channel) {
64 assert(channel < channelcount);
65 float v = maxlevel[channel];
66 maxlevel[channel] = 0;
79 static void feed_tuner(
int count,
float *input,
float *output,
PluginDef*);
80 static int regparam(
const ParamReg& reg);
82 static void init(
unsigned int samplingFreq,
PluginDef *plugin);
86 enum { tuner_use = 0x01, switcher_use = 0x02, midi_use = 0x04 };
87 void set_and_check(
int use,
bool on);
169 unsigned char* midi_send;
170 unsigned char* midi_send1;
171 unsigned char* midi_send2;
174 void register_parameter(
const ParamReg& reg);
175 void init(
int samplingFreq);
176 void process_midi(
int len,
float *audiodata,
void *midi_port_buf,
float jcpu_load,
177 float fConsta4,
float fConsta1t);
184 enum Load { load_off = -1, load_low = 0, load_high = 1, load_over = 2 };
190 Glib::Dispatcher overload_change;
191 static void fill_buffer(
int count,
float *input0,
float *output0,
PluginDef*);
192 static int regparam(
const ParamReg& reg);
193 static void init(
unsigned int samplingFreq,
PluginDef *plugin);
212 static float fnglevel;
215 static int noisegate_register(
const ParamReg& reg);
216 static void inputlevel_compute(
int count,
float *input0,
float *output0,
PluginDef*);
217 static void outputgate_compute(
int count,
float *input,
float *output,
PluginDef*);
232 static float* buffer;
233 static unsigned int size;
234 static void fill_buffer(
int count,
float *input0,
float *output0,
PluginDef*);
235 static int osc_register(
const ParamReg& reg);
237 void change_buffersize(
unsigned int);
247 void set_mul_buffer(
int a,
unsigned int b) { mul_buffer = a; change_buffersize(b); }
259 std::vector<int> seqline;
261 friend class SequencerAdapter;
268 inline const std::vector<int>&
getseqline()
const {
return seqline; }
270 inline void setseqline(
const std::vector<int>& seq) { seqline = seq; }
284 sigc::signal<void, const GxSeqSettings*> changed;
295 virtual void stdJSON_value();
296 virtual bool on_off_value();
298 virtual bool compareJSON_value();
299 virtual void setJSON_value();
322 inline void setIRDir(
string name) { fIRDir = name; }
330 inline const std::string&
getIRFile()
const {
return fIRFile; }
331 std::string getFullIRPath()
const;
332 inline float getGain()
const {
return fGain; }
338 const std::string&
getIRDir()
const {
return fIRDir; }
339 void setFullIRPath(
string name);
341 inline void setGain(
float gain) { fGain = gain; }
346 inline void setGainline(
const Gainline& gain) { gainline = gain; }
364 sigc::signal<void, const GxJConvSettings*> changed;
375 virtual void stdJSON_value();
376 virtual bool on_off_value();
378 virtual bool compareJSON_value();
379 virtual void setJSON_value();
399 void change_buffersize(
unsigned int size);
423 #include "faust/jconv_post.h" 424 #include "faust/jconv_post_mono.h" 428 jconv_post::Dsp jc_post;
430 static void convolver_init(
unsigned int samplingFreq,
PluginDef *pdef);
432 static void convolver(
int count,
float *input0,
float *input1,
433 float *output0,
float *output1,
PluginDef*);
434 static int convolver_register(
const ParamReg& reg);
447 jconv_post_mono::Dsp jc_post_mono;
449 static void convolver_init(
unsigned int samplingFreq,
PluginDef *pdef);
451 static void convolver(
int count,
float *input,
float *output,
PluginDef*);
452 static int convolver_register(
const ParamReg& reg);
474 void change_buffersize(
unsigned int);
476 bool check_update_timeout();
477 virtual void check_update() = 0;
478 virtual bool start(
bool force =
false) = 0;
506 void change_buffersize(
unsigned int);
508 bool check_update_timeout();
509 virtual void check_update() = 0;
510 virtual bool start(
bool force =
false) = 0;
523 #include "faust/cabinet_impulse_former.h" 534 cabinet_impulse_former::Dsp impf;
536 static void run_cab_conf(
int count,
float *input,
float *output,
PluginDef*);
537 static int register_cab(
const ParamReg& reg);
539 virtual void check_update();
540 virtual bool start(
bool force =
false);
541 bool cabinet_changed() {
return current_cab != cabinet; }
542 void update_cabinet() { current_cab = cabinet; }
543 bool sum_changed() {
return std::abs(sum - (level + bass + treble)) > 0.01; }
544 void update_sum() { sum = level + bass + treble; }
551 #include "faust/cabinet_impulse_former_st.h" 562 cabinet_impulse_former_st::Dsp impf;
565 static void run_cab_conf(
int count,
float *input,
float *input1,
float *output,
float *output1,
PluginDef*);
566 static int register_cab(
const ParamReg& reg);
568 virtual void check_update();
569 virtual bool start(
bool force =
false);
570 bool cabinet_changed() {
return current_cab != cabinet; }
571 void update_cabinet() { current_cab = cabinet; }
572 bool sum_changed() {
return fabs(sum - (level + bass + treble)) > 0.01; }
573 void update_sum() { sum = level + bass + treble; }
585 #include "faust/preamp_impulse_former.h" 596 preamp_impulse_former::Dsp impf;
598 static void run_pre_conf(
int count,
float *input,
float *output,
PluginDef*);
599 static int register_pre(
const ParamReg& reg);
601 virtual void check_update();
602 virtual bool start(
bool force =
false);
603 bool preamp_changed() {
return current_pre != preamp; }
604 void update_preamp() { current_pre = preamp; }
605 bool sum_changed() {
return std::abs(sum - (level + bass + treble)) > 0.01; }
606 void update_sum() { sum = level + bass + treble; }
617 #include "faust/presence_level.h" 623 presence_level::Dsp presl;
625 static void run_contrast(
int count,
float *input,
float *output,
PluginDef*);
626 static int register_con(
const ParamReg& reg);
627 inline void update_sum() { sum = level; }
628 virtual void check_update();
630 inline bool sum_changed() {
return std::abs(sum - level) > 0.01; }
631 virtual bool start(
bool force =
false);
656 paradesc(): index(), name(), dflt(), low(), up(), step(), tp(), newrow(), has_caption(true), values() {}
658 void set_valuelist(
const std::vector<std::string>& v);
696 const LilvPlugins* lv2_plugins;
697 LilvNode* lv2_AudioPort;
698 LilvNode* lv2_ControlPort;
699 LilvNode* lv2_InputPort;
700 LilvNode* lv2_OutputPort;
702 void read_module_config(
const std::string& filename,
plugdesc *p);
703 void read_module_list(pluginarray& p);
707 bool load(pluginarray& p);
708 unsigned int size() {
return plugins.size(); }
711 pluginarray::iterator
begin() {
return plugins.begin(); }
712 pluginarray::iterator
end() {
return plugins.end(); }
713 pluginarray::iterator find(
plugdesc* desc);
714 void set_plugins(pluginarray& new_plugins);
715 void change_plugins(pluginarray& new_plugins);
720 {
return "ladspa"+uid_key.substr(9)+
".js"; }
733 class FileResampler {
736 int inputRate, outputRate;
739 int setup(
int _inputRate,
int _outputRate);
740 int run(
int count,
float *input,
float *output);
741 int max_out_count(
int in_count) {
742 return static_cast<int>(ceil((in_count*static_cast<double>(outputRate))/inputRate)); }
846 Glib::ustring preset_name;
847 Glib::ustring load_file1;
848 Glib::ustring load_file2;
849 Glib::ustring load_file3;
850 Glib::ustring load_file4;
851 Glib::ustring cur_name;
852 Glib::ustring loop_dir;
856 sigc::slot<void> sync;
860 int do_resample(
int inrate,
int insize,
float *input,
int maxsize);
861 int do_mono(
int c,
int f,
float *oIn,
float *tape,
int n);
862 void play_all_tapes();
865 void clear_state_f();
866 int activate(
bool start);
867 int load_ui_f(
const UiBuilder& b,
int form);
868 void init(
unsigned int samplingFreq);
869 void compute(
int count,
float *input0,
float *output0);
870 int register_par(
const ParamReg& reg);
871 void save_array(std::string name);
872 void load_array(std::string name);
873 void save_to_wave(std::string fname,
float *tape,
float fSize,
int tape_size);
874 int load_from_wave(std::string fname,
float **tape,
int tape_size);
881 static void clear_state_f_static(
PluginDef*);
882 static int activate_static(
bool start,
PluginDef*);
883 static int load_ui_f_static(
const UiBuilder& b,
int form);
884 static void init_static(
unsigned int samplingFreq,
PluginDef*);
885 static void compute_static(
int count,
float *input0,
float *output0,
PluginDef*);
886 static int register_params_static(
const ParamReg& reg);
921 volatile bool keep_stream;
931 void clear_state_f();
932 int activate(
bool start);
933 int load_ui_f(
const UiBuilder& b,
int form);
934 void init(
unsigned int samplingFreq);
935 void compute(
int count,
float *input0,
float *output0);
936 void compute_st(
int count,
float *input0,
float *input1,
float *output0,
float *output1);
937 int register_par(
const ParamReg& reg);
938 void save_to_wave(SNDFILE * sf,
float *tape,
int lSize);
939 SNDFILE *open_stream(std::string fname);
940 void close_stream(SNDFILE **sf);
944 inline std::string get_ffilename();
946 static void *run_thread(
void* p);
947 static void clear_state_f_static(
PluginDef*);
948 static int activate_static(
bool start,
PluginDef*);
949 static const char *glade_def;
950 static const char *glade_def_st;
951 static int load_ui_f_static(
const UiBuilder& b,
int form);
952 static void init_static(
unsigned int samplingFreq,
PluginDef*);
953 static void compute_static(
int count,
float *input0,
float *output0,
PluginDef*);
954 static void compute_static_st(
int count,
float *input0,
float *input1,
float *output0,
float *output1,
PluginDef*);
955 static int register_params_static(
const ParamReg& reg);
967 #include "faust/drumseq.h" 993 std::vector<int> Vectom;
994 std::vector<int> Vectom1;
995 std::vector<int> Vectom2;
996 std::vector<int> Veckick;
997 std::vector<int> Vecsnare;
998 std::vector<int> Vechat;
1004 SeqParameter *tomp1;
1006 SeqParameter *tomp2;
1008 SeqParameter *snarep;
1012 SeqParameter *kickp;
1014 void init(
unsigned int samplingFreq);
1016 int register_par(
const ParamReg& reg);
1026 static void init_static(
unsigned int samplingFreq,
PluginDef*);
1028 static int register_params_static(
const ParamReg& reg);
1059 #define M_PI 3.14159265358979323846 1060 #define MAX_FRAME_LENGTH 8096 1067 sigc::slot<void> sync;
1068 volatile bool ready;
1093 int octave, osamp, numSampsToResamp, numSampsToProcess, fftFrameSize, sampleRate ;
1098 long gRover , gInit ;
1099 double magn, phase, tmp, window, real, imag;
1100 double freqPerBin, freqPerBin1, freqPerBin2, expct;
1101 double fftFrameSize3;
1102 double fftFrameSize4;
1103 double osamp1,osamp2;
1104 long i,k, qpd, index, inFifoLatency, stepSize, fftFrameSize2;
1107 fftwf_plan ftPlanForward, ftPlanInverse;
1109 inline int load_ui_f(
const UiBuilder& b,
int form);
1110 int register_par(
const ParamReg& reg);
1111 void change_latency();
1116 int activate(
bool start);
1117 bool setParameters(
int sampleRate);
1118 void PitchShift(
int count,
float *indata,
float *outdata);
1119 void change_buffersize(
unsigned int size);
1120 static int activate_static(
bool start,
PluginDef*);
1122 static int registerparam(
const ParamReg& reg);
1123 static int load_ui_f_static(
const UiBuilder& b,
int form);
1124 static void init(
unsigned int sampleRate,
PluginDef *plugin);
1125 static void compute_static(
int count,
float *input0,
float *output0,
PluginDef *p);
void used_by_midi(bool on)
ParameterV< GxSeqSettings > SeqParameter
CmdConnection::msg_type start
void setseqline(const std::vector< int > &seq)
Glib::Dispatcher & signal_jack_load_change()
pluginarray::iterator end()
const std::vector< int > & getseqline() const
ParameterV< GxJConvSettings > JConvParameter
const std::string & getIRDir() const
const Gainline & getGainline() const
std::string getFullIRPath() const
void set_jack(gx_jack::GxJack *jack_)
static std::string get_ladspa_filename(std::string uid_key)
std::vector< plugdesc * > pluginarray
bool set(const GxJConvSettings &val) const
unsigned int getSamplingFreq()
std::string getFullIRPath() const
const std::string & getIRDir() const
void used_for_display(bool on)
sigc::connection update_conn
sigc::signal< void, const GxJConvSettings * > & signal_changed()
const GxJConvSettings & get_jcset() const
const std::string & getIRFile() const
boost::mutex activate_mutex
sigc::signal< int, bool > activation
PluginDef * create(unsigned int idx)
static PluginDef outputgate
void used_for_switching(bool on)
void setGainCor(bool gain)
sigc::connection update_conn
const std::string & getIRFile() const
boost::mutex activate_mutex
Glib::ustring master_label
std::string to_string(const T &t)
sigc::signal< void, unsigned int > size_change
std::vector< paradesc * > names
void setOffset(guint offs)
const GxJConvSettings & get_value() const
boost::mutex activate_mutex
pluginarray::iterator begin()
void setGainline(const Gainline &gain)
float get_estimated_note()
void set_dep_module(Plugin *dep)
Glib::Dispatcher & signal_freq_changed()
sigc::signal< void, const GxSeqSettings * > & signal_changed()
ParamMap & get_parameter_map() const
unsigned int SamplingFreq
void setIRFile(string name)
static std::string get_ladspa_filename(unsigned long uid)
float get_estimated_freq()
void setLength(guint leng)
std::string fformat(float value, float step)
Glib::Dispatcher new_freq
const GxSeqSettings & get_value() const
void set_mul_buffer(int a, unsigned int b)