summaryrefslogtreecommitdiff
path: root/muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl
diff options
context:
space:
mode:
Diffstat (limited to 'muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl')
-rw-r--r--muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl392
1 files changed, 392 insertions, 0 deletions
diff --git a/muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl b/muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl
new file mode 100644
index 00000000..b9171a49
--- /dev/null
+++ b/muse_qt4_evolution/synti/zynaddsubfx/UI/ResonanceUI.fl
@@ -0,0 +1,392 @@
+# data file for the Fltk User Interface Designer (fluid)
+version 1.0106
+header_name {.h}
+code_name {.cc}
+decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {}
+
+decl {//License: GNU GPL version 2} {}
+
+decl {\#include <FL/Fl_Box.H>} {public
+}
+
+decl {\#include <FL/fl_draw.H>} {public
+}
+
+decl {\#include <FL/Fl_Value_Output.H>} {public
+}
+
+decl {\#include <math.h>} {}
+
+decl {\#include <stdio.h>} {}
+
+decl {\#include <stdlib.h>} {}
+
+decl {\#include <string.h>} {}
+
+decl {\#include "../Synth/Resonance.h"} {public
+}
+
+decl {\#include "WidgetPDial.h"} {public
+}
+
+decl {\#include "PresetsUI.h"} {public
+}
+
+class ResonanceGraph {: {public Fl_Box}
+} {
+ Function {ResonanceGraph(int x,int y, int w, int h, const char *label=0):Fl_Box(x,y,w,h,label)} {} {
+ code {respar=NULL;
+cbwidget=NULL;
+applybutton=NULL;} {}
+ }
+ Function {init(Resonance *respar_,Fl_Value_Output *khzvalue_,Fl_Value_Output *dbvalue_)} {} {
+ code {respar=respar_;
+khzvalue=khzvalue_;
+dbvalue=dbvalue_;
+oldx=-1;
+khzval=-1;} {}
+ }
+ Function {draw_freq_line(REALTYPE freq,int type)} {} {
+ code {REALTYPE freqx=respar->getfreqpos(freq);
+switch(type){
+ case 0:fl_line_style(FL_SOLID);break;
+ case 1:fl_line_style(FL_DOT);break;
+ case 2:fl_line_style(FL_DASH);break;
+};
+
+
+if ((freqx>0.0)&&(freqx<1.0))
+ fl_line(x()+(int) (freqx*w()),y(),
+ x()+(int) (freqx*w()),y()+h());} {}
+ }
+ Function {draw()} {} {
+ code {int ox=x(),oy=y(),lx=w(),ly=h(),i,ix,iy,oiy;
+REALTYPE freqx;
+
+fl_color(FL_BLACK);
+fl_rectf(ox,oy,lx,ly);
+
+
+//draw the lines
+fl_color(FL_GRAY);
+
+fl_line_style(FL_SOLID);
+fl_line(ox+2,oy+ly/2,ox+lx-2,oy+ly/2);
+
+freqx=respar->getfreqpos(1000.0);
+if ((freqx>0.0)&&(freqx<1.0))
+ fl_line(ox+(int) (freqx*lx),oy,
+ ox+(int) (freqx*lx),oy+ly);
+
+for (i=1;i<10;i++){
+ if(i==1){
+ draw_freq_line(i*100.0,0);
+ draw_freq_line(i*1000.0,0);
+ }else
+ if (i==5){
+ draw_freq_line(i*100.0,2);
+ draw_freq_line(i*1000.0,2);
+ }else{
+ draw_freq_line(i*100.0,1);
+ draw_freq_line(i*1000.0,1);
+ };
+};
+
+draw_freq_line(10000.0,0);
+draw_freq_line(20000.0,1);
+
+fl_line_style(FL_DOT);
+int GY=10;if (ly<GY*3) GY=-1;
+for (i=1;i<GY;i++){
+ int tmp=(int)(ly/(REALTYPE)GY*i);
+ fl_line(ox+2,oy+tmp,ox+lx-2,oy+tmp);
+};
+
+
+
+//draw the data
+fl_color(FL_RED);
+fl_line_style(FL_SOLID);
+oiy=(int)(respar->Prespoints[0]/128.0*ly);
+for (i=1;i<N_RES_POINTS;i++){
+ ix=(int)(i*1.0/N_RES_POINTS*lx);
+ iy=(int)(respar->Prespoints[i]/128.0*ly);
+ fl_line(ox+ix-1,oy+ly-oiy,ox+ix,oy+ly-iy);
+ oiy=iy;
+};} {}
+ }
+ Function {handle(int event)} {return_type int
+ } {
+ code {int x_=Fl::event_x()-x();
+int y_=Fl::event_y()-y();
+if ( (x_>=0)&&(x_<w()) && (y_>=0)&&(y_<h())){
+ khzvalue->value(respar->getfreqx(x_*1.0/w())/1000.0);
+ dbvalue->value((1.0-y_*2.0/h())*respar->PmaxdB);
+};
+
+if ((event==FL_PUSH)||(event==FL_DRAG)){
+ int leftbutton=1;
+ if (Fl::event_button()==FL_RIGHT_MOUSE) leftbutton=0;
+ if (x_<0) x_=0;if (y_<0) y_=0;
+ if (x_>=w()) x_=w();if (y_>=h()-1) y_=h()-1;
+
+ if ((oldx<0)||(oldx==x_)){
+ int sn=(int)(x_*1.0/w()*N_RES_POINTS);
+ int sp=127-(int)(y_*1.0/h()*127);
+ if (leftbutton!=0) respar->setpoint(sn,sp);
+ else respar->setpoint(sn,64);
+ } else {
+ int x1=oldx;
+ int x2=x_;
+ int y1=oldy;
+ int y2=y_;
+ if (oldx>x_){
+ x1=x_;y1=y_;
+ x2=oldx;y2=oldy;
+ };
+ for (int i=0;i<x2-x1;i++){
+ int sn=(int)((i+x1)*1.0/w()*N_RES_POINTS);
+ REALTYPE yy=(y2-y1)*1.0/(x2-x1)*i;
+ int sp=127-(int)((y1+yy)/h()*127);
+ if (leftbutton!=0) respar->setpoint(sn,sp);
+ else respar->setpoint(sn,64);
+ };
+ };
+
+ oldx=x_;oldy=y_;
+ redraw();
+};
+
+if (event==FL_RELEASE) {
+ oldx=-1;
+ if (cbwidget!=NULL) {
+ cbwidget->do_callback();
+ if (applybutton!=NULL) {
+ applybutton->color(FL_RED);
+ applybutton->redraw();
+
+ };
+ };
+};
+
+return(1);} {selected
+ }
+ }
+ Function {setcbwidget(Fl_Widget *cbwidget,Fl_Widget *applybutton)} {} {
+ code {this->cbwidget=cbwidget;
+this->applybutton=applybutton;} {}
+ }
+ decl {Fl_Value_Output *khzvalue;} {}
+ decl {Fl_Value_Output *dbvalue;} {}
+ decl {Resonance *respar;} {}
+ decl {int oldx,oldy;} {}
+ decl {REALTYPE khzval;} {public
+ }
+ decl {Fl_Widget *cbwidget,*applybutton;} {}
+}
+
+class ResonanceUI {: PresetsUI_
+} {
+ Function {make_window()} {} {
+ Fl_Window resonancewindow {
+ label Resonance
+ xywh {45 259 780 305} type Double visible
+ } {
+ Fl_Value_Output khzvalue {
+ label kHz
+ xywh {415 264 45 18} align 8 minimum 0.001 maximum 48 step 0.01 textfont 1
+ code0 {//this widget must be before the calling widgets}
+ }
+ Fl_Value_Output dbvalue {
+ label dB
+ xywh {415 282 45 18} align 8 minimum -150 maximum 150 step 0.1 textfont 1
+ code0 {//this widget must be before the calling widgets}
+ }
+ Fl_Group {} {
+ xywh {6 5 768 256} box BORDER_BOX
+ code0 {rg=new ResonanceGraph(o->x(),o->y(),o->w(),o->h(),"");}
+ code1 {rg->init(respar,khzvalue,dbvalue);}
+ code2 {rg->show();}
+ } {}
+ Fl_Button {} {
+ label Close
+ callback {resonancewindow->hide();}
+ xywh {690 283 84 17} box THIN_UP_BOX
+ }
+ Fl_Button {} {
+ label Zero
+ callback {for (int i=0;i<N_RES_POINTS;i++)
+ respar->setpoint(i,64);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Clear the resonance function} xywh {491 264 66 15} box THIN_UP_BOX labelfont 1
+ }
+ Fl_Button {} {
+ label Smooth
+ callback {respar->smooth();
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Smooth the resonance function} xywh {491 282 66 18} box THIN_UP_BOX labelfont 1
+ }
+ Fl_Check_Button enabled {
+ label Enable
+ callback {respar->Penabled=(int) o->value();
+redrawPADnoteApply();}
+ xywh {6 270 78 27} box THIN_UP_BOX down_box DOWN_BOX
+ code0 {o->value(respar->Penabled);}
+ }
+ Fl_Roller maxdb {
+ callback {maxdbvo->value(o->value());
+respar->PmaxdB=(int) o->value();
+redrawPADnoteApply();}
+ xywh {90 282 84 15} type Horizontal minimum 1 maximum 90 step 1 value 30
+ }
+ Fl_Value_Output maxdbvo {
+ label {Max.}
+ callback {o->value(respar->PmaxdB);}
+ tooltip {The Maximum amplitude (dB)} xywh {126 264 24 18} minimum 1 maximum 127 step 1 value 30 textfont 1
+ code0 {o->value(respar->PmaxdB);}
+ }
+ Fl_Box {} {
+ label dB
+ xywh {150 264 24 18}
+ }
+ Fl_Value_Output centerfreqvo {
+ label {C.f.}
+ callback {o->value(respar->getcenterfreq()/1000.0);}
+ tooltip {Center Frequency (kHz)} xywh {210 264 33 18} when 3 minimum 1 maximum 10 step 0.01 value 1 textfont 1
+ code0 {o->value(respar->getcenterfreq()/1000.0);}
+ }
+ Fl_Value_Output octavesfreqvo {
+ label {Oct.}
+ callback {o->value(respar->getoctavesfreq());}
+ tooltip {No. of octaves} xywh {210 282 33 18} when 3 minimum 1 maximum 127 step 1 value 30 textfont 1
+ code0 {o->value(respar->getoctavesfreq());}
+ }
+ Fl_Button {} {
+ label RND2
+ callback {respar->randomize(1);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Randomize the resonance function} xywh {566 276 42 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Button {} {
+ label RND1
+ callback {respar->randomize(0);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Randomize the resonance function} xywh {566 264 42 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Button {} {
+ label RND3
+ callback {respar->randomize(2);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Randomize the resonance function} xywh {566 288 42 12} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Check_Button p1st {
+ label {P.1st}
+ callback {respar->Pprotectthefundamental=(int) o->value();
+redrawPADnoteApply();}
+ tooltip {Protect the fundamental frequency (do not damp the first harmonic)} xywh {365 285 45 15} down_box DOWN_BOX labelsize 10
+ code0 {o->value(respar->Pprotectthefundamental);}
+ }
+ Fl_Button {} {
+ label InterpP
+ callback {int type;
+if (Fl::event_button()==FL_LEFT_MOUSE) type=0;
+ else type=1;
+respar->interpolatepeaks(type);
+resonancewindow->redraw();
+redrawPADnoteApply();}
+ tooltip {Interpolate the peaks} xywh {365 265 46 15} box THIN_UP_BOX labelfont 1 labelsize 10
+ }
+ Fl_Dial centerfreq {
+ label {C.f.}
+ callback {respar->Pcenterfreq=(int)o->value();
+centerfreqvo->do_callback();
+rg->redraw();
+redrawPADnoteApply();}
+ xywh {245 265 30 30} box ROUND_UP_BOX labelsize 10 maximum 127 step 1
+ code0 {o->value(respar->Pcenterfreq);}
+ class WidgetPDial
+ }
+ Fl_Dial octavesfreq {
+ label {Oct.}
+ callback {respar->Poctavesfreq=(int)o->value();
+octavesfreqvo->do_callback();
+rg->redraw();
+redrawPADnoteApply();}
+ xywh {280 265 30 30} box ROUND_UP_BOX labelsize 11 maximum 127 step 1
+ code0 {o->value(respar->Poctavesfreq);}
+ class WidgetPDial
+ }
+ Fl_Button {} {
+ label C
+ callback {presetsui->copy(respar);}
+ xywh {625 275 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button {} {
+ label P
+ callback {presetsui->paste(respar,this);}
+ xywh {655 275 25 15} box THIN_UP_BOX color 179 labelfont 1 labelsize 12 labelcolor 7
+ }
+ Fl_Button applybutton {
+ label Apply
+ callback {applybutton->color(FL_GRAY);
+applybutton->redraw();
+if (cbapplywidget!=NULL) {
+ cbapplywidget->do_callback();
+ cbapplywidget->color(FL_GRAY);
+ cbapplywidget->redraw();
+};}
+ xywh {690 265 85 15} box THIN_UP_BOX labelfont 1 labelsize 12
+ }
+ }
+ }
+ Function {ResonanceUI(Resonance *respar_)} {} {
+ code {respar=respar_;
+cbwidget=NULL;
+cbapplywidget=NULL;
+make_window();
+applybutton->hide();} {}
+ }
+ Function {~ResonanceUI()} {} {
+ code {resonancewindow->hide();} {}
+ }
+ Function {redrawPADnoteApply()} {} {
+ code {if (cbwidget!=NULL) {
+ cbwidget->do_callback();
+ applybutton->color(FL_RED);
+ applybutton->redraw();
+};} {}
+ }
+ Function {setcbwidget(Fl_Widget *cbwidget,Fl_Widget *cbapplywidget)} {} {
+ code {this->cbwidget=cbwidget;
+this->cbapplywidget=cbapplywidget;
+rg->setcbwidget(cbwidget,applybutton);
+applybutton->show();} {}
+ }
+ Function {refresh()} {} {
+ code {redrawPADnoteApply();
+
+enabled->value(respar->Penabled);
+
+maxdb->value(respar->PmaxdB);
+maxdbvo->value(respar->PmaxdB);
+
+centerfreqvo->value(respar->getcenterfreq()/1000.0);
+octavesfreqvo->value(respar->getoctavesfreq());
+
+centerfreq->value(respar->Pcenterfreq);
+octavesfreq->value(respar->Poctavesfreq);
+
+p1st->value(respar->Pprotectthefundamental);
+
+rg->redraw();} {}
+ }
+ decl {Resonance *respar;} {public
+ }
+ decl {ResonanceGraph *rg;} {}
+ decl {Fl_Widget *cbwidget,*cbapplywidget;} {}
+}