00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00038 #ifndef __NETKS_H__
00039 #define __NETKS_H__
00040
00041 #include <iostream>
00042 #include <unistd.h>
00043
00044 #include <QTimer>
00045
00046 #include "ProcessPlugin.h"
00047
00052 class NetKS : public ProcessPlugin
00053 {
00054 Q_OBJECT;
00055
00056
00057 public:
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068 private slots:
00069
00071 void exciteString()
00072 {
00073 std::cout << "========= EXTICING STRING ===========" << std::endl;
00074 fbutton0 = 1.0;
00075
00076 usleep(280000);
00077 fbutton0 = 0.0;
00078
00079 }
00080
00081
00082 private:
00083 float fbutton0;
00084 float fVec0[2];
00085 float fRec0[2];
00086 int iRec1[2];
00087 float fVec1[2];
00088 public:
00089 virtual int getNumInputs() { return 1; }
00090 virtual int getNumOutputs() { return 1; }
00091 static void classInit(int ) {}
00092 virtual void instanceInit(int samplingFreq) {
00093 fSamplingFreq = samplingFreq;
00094 fbutton0 = 0.0;
00095 for (int i=0; i<2; i++) fVec0[i] = 0;
00096 for (int i=0; i<2; i++) fRec0[i] = 0;
00097 for (int i=0; i<2; i++) iRec1[i] = 0;
00098 for (int i=0; i<2; i++) fVec1[i] = 0;
00099 }
00100 virtual void init(int samplingFreq) {
00101 classInit(samplingFreq);
00102 instanceInit(samplingFreq);
00103 }
00104
00105
00106
00107
00108
00109
00110
00111 virtual void compute (int count, float** input, float** output) {
00112 float* input0 = input[0];
00113 float* output0 = output[0];
00114 float fSlow0 = fbutton0;
00115 for (int i=0; i<count; i++) {
00116 fVec0[0] = fSlow0;
00117 fRec0[0] = ((((fSlow0 - fVec0[1]) > 0.000000f) + fRec0[1]) - (3.333333e-03f * (fRec0[1] > 0.000000f)));
00118 iRec1[0] = (12345 + (1103515245 * iRec1[1]));
00119 float fTemp0 = ((4.190951e-10f * iRec1[0]) * (fRec0[0] > 0.000000f));
00120 float fTemp1 = input0[i];
00121 fVec1[0] = (fTemp1 + fTemp0);
00122 output0[i] = (0.500000f * ((fTemp0 + fTemp1) + fVec1[1]));
00123
00124 fVec1[1] = fVec1[0];
00125 iRec1[1] = iRec1[0];
00126 fRec0[1] = fRec0[0];
00127 fVec0[1] = fVec0[0];
00128 }
00129 }
00130
00131
00132
00133 };
00134
00135
00136 #endif // __NETKS_H__
00137