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);
695 const LilvPlugins* lv2_plugins;
696 LilvNode* lv2_AudioPort;
697 LilvNode* lv2_ControlPort;
698 LilvNode* lv2_InputPort;
699 LilvNode* lv2_OutputPort;
701 void read_module_config(
const std::string& filename,
plugdesc *p);
702 void read_module_list(pluginarray& p);
706 bool load(pluginarray& p);
707 unsigned int size() {
return plugins.size(); }
710 pluginarray::iterator
begin() {
return plugins.begin(); }
711 pluginarray::iterator
end() {
return plugins.end(); }
712 pluginarray::iterator find(
plugdesc* desc);
713 void set_plugins(pluginarray& new_plugins);
714 void change_plugins(pluginarray& new_plugins);
719 {
return "ladspa"+uid_key.substr(9)+
".js"; }
732 class FileResampler {
735 int inputRate, outputRate;
738 int setup(
int _inputRate,
int _outputRate);
739 int run(
int count,
float *input,
float *output);
740 int max_out_count(
int in_count) {
741 return static_cast<int>(ceil((in_count*static_cast<double>(outputRate))/inputRate)); }
845 Glib::ustring preset_name;
846 Glib::ustring load_file1;
847 Glib::ustring load_file2;
848 Glib::ustring load_file3;
849 Glib::ustring load_file4;
850 Glib::ustring cur_name;
851 Glib::ustring loop_dir;
855 sigc::slot<void> sync;
859 int do_resample(
int inrate,
int insize,
float *input,
int maxsize);
860 int do_mono(
int c,
int f,
float *oIn,
float *tape,
int n);
861 void play_all_tapes();
864 void clear_state_f();
865 int activate(
bool start);
866 int load_ui_f(
const UiBuilder& b,
int form);
867 void init(
unsigned int samplingFreq);
868 void compute(
int count,
float *input0,
float *output0);
869 int register_par(
const ParamReg& reg);
870 void save_array(std::string name);
871 void load_array(std::string name);
872 void save_to_wave(std::string fname,
float *tape,
float fSize,
int tape_size);
873 int load_from_wave(std::string fname,
float **tape,
int tape_size);
880 static void clear_state_f_static(
PluginDef*);
881 static int activate_static(
bool start,
PluginDef*);
882 static int load_ui_f_static(
const UiBuilder& b,
int form);
883 static void init_static(
unsigned int samplingFreq,
PluginDef*);
884 static void compute_static(
int count,
float *input0,
float *output0,
PluginDef*);
885 static int register_params_static(
const ParamReg& reg);
920 volatile bool keep_stream;
930 void clear_state_f();
931 int activate(
bool start);
932 int load_ui_f(
const UiBuilder& b,
int form);
933 void init(
unsigned int samplingFreq);
934 void compute(
int count,
float *input0,
float *output0);
935 void compute_st(
int count,
float *input0,
float *input1,
float *output0,
float *output1);
936 int register_par(
const ParamReg& reg);
937 void save_to_wave(SNDFILE * sf,
float *tape,
int lSize);
938 SNDFILE *open_stream(std::string fname);
939 void close_stream(SNDFILE **sf);
943 inline std::string get_ffilename();
945 static void *run_thread(
void* p);
946 static void clear_state_f_static(
PluginDef*);
947 static int activate_static(
bool start,
PluginDef*);
948 static const char *glade_def;
949 static const char *glade_def_st;
950 static int load_ui_f_static(
const UiBuilder& b,
int form);
951 static void init_static(
unsigned int samplingFreq,
PluginDef*);
952 static void compute_static(
int count,
float *input0,
float *output0,
PluginDef*);
953 static void compute_static_st(
int count,
float *input0,
float *input1,
float *output0,
float *output1,
PluginDef*);
954 static int register_params_static(
const ParamReg& reg);
1192 std::vector<int> Vectom;
1193 std::vector<int> Veckick;
1194 std::vector<int> Vecsnare;
1195 std::vector<int> Vechat;
1201 SeqParameter *snarep;
1205 SeqParameter *kickp;
1206 void clear_state_f();
1207 void init(
unsigned int samplingFreq);
1209 int register_par(
const ParamReg& reg);
1216 static void clear_state_f_static(
PluginDef*);
1217 static void init_static(
unsigned int samplingFreq,
PluginDef*);
1219 static int register_params_static(
const ParamReg& reg);
1250 #define M_PI 3.14159265358979323846 1251 #define MAX_FRAME_LENGTH 8096 1258 sigc::slot<void> sync;
1259 volatile bool ready;
1284 int octave, osamp, numSampsToResamp, numSampsToProcess, fftFrameSize, sampleRate ;
1289 long gRover , gInit ;
1290 double magn, phase, tmp, window, real, imag;
1291 double freqPerBin, freqPerBin1, freqPerBin2, expct;
1292 double fftFrameSize3;
1293 double fftFrameSize4;
1294 double osamp1,osamp2;
1295 long i,k, qpd, index, inFifoLatency, stepSize, fftFrameSize2;
1298 fftwf_plan ftPlanForward, ftPlanInverse;
1300 inline int load_ui_f(
const UiBuilder& b,
int form);
1301 int register_par(
const ParamReg& reg);
1302 void change_latency();
1307 int activate(
bool start);
1308 bool setParameters(
int sampleRate);
1309 void PitchShift(
int count,
float *indata,
float *outdata);
1310 void change_buffersize(
unsigned int size);
1311 static int activate_static(
bool start,
PluginDef*);
1313 static int registerparam(
const ParamReg& reg);
1314 static int load_ui_f_static(
const UiBuilder& b,
int form);
1315 static void init(
unsigned int sampleRate,
PluginDef *plugin);
1316 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)