# data file for the Fltk User Interface Designer (fluid)
version 1.0302 
header_name {.h} 
code_name {.cc}
decl {//Copyright (c) 2002-2005 Nasca Octavian Paul} {private local
} 

decl {//License: GNU GPL version 2 or later} {private local
} 

decl {\#include <stdlib.h>} {public local
} 

decl {\#include <stdio.h>} {public local
} 

decl {\#include <string.h>} {public local
} 

decl {\#include "../globals.h"} {public local
} 

decl {\#include "Fl_Osc_Dial.H"} {public local
} 

decl {\#include "Fl_Osc_Check.H"} {public local
} 

decl {\#include "Fl_EQGraph.H"} {public local
} 

decl {\#include "Fl_Osc_Pane.H"} {public local
}

decl {\#include "EnvelopeUI.h"} {public local
} 

decl {\#include "FilterUI.h"} {public local
} 

decl {\#include "../Misc/Util.h"} {public local
} 

decl {\#include "../Effects/EffectMgr.h"} {public local
}

decl {\#include "../Effects/Phaser.h" /* for macros only, TODO */} {public local
}

decl {\#include "../Effects/Alienwah.h" /* for macros only, TODO */ } {public local
}

decl {\#include "PresetsUI.h"} {public local
} 

decl {\#include "common.H"} {public local
}

decl {using namespace zyncarla;} {public local
}

class EffUI {open : {public Fl_Osc_Group,public PresetsUI_}
} {
  Function {EffUI(int x,int y, int w, int h, const char *label=0):Fl_Osc_Group(x,y,w,h,label)} {} {
    code {filterwindow=NULL;} {}
  }
  Function {~EffUI()} {} {
    code {effnullwindow->hide();//delete (effnullwindow);
effreverbwindow->hide();//delete (effreverbwindow);
effechowindow->hide();//delete (effechowindow);
effchoruswindow->hide();//delete (effchoruswindow);
effphaserwindow->hide();//delete (effphaserwindow);
effalienwahwindow->hide();//delete (effalienwahwindow);
effdistorsionwindow->hide();//delete (effdistorsionwindow);
effeqwindow->hide();//delete (effeqwindow);
effdynamicfilterwindow->hide();//delete (effdynamicfilterwindow);

if (filterwindow!=NULL){
	filterwindow->hide();
	delete(filterwindow);
};} {}
  }
  Function {make_null_window()} {} {
    Fl_Window effnullwindow {
      xywh {621 881 380 100} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {}
  }
  Function {make_reverb_window()} {} {
    Fl_Window effreverbwindow {
      xywh {386 705 380 100} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice revp {
        label Preset
        xywh {10 15 90 15} box UP_BOX down_box BORDER_BOX color 14 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Cathedral 1}
          xywh {10 10 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Cathedral 2}
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Cathedral 3}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Hall 1}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Hall 2}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Room 1}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Room 2}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Basement
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Tunnel
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Echoed 1}
          xywh {100 100 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Echoed 2}
          xywh {110 110 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Very Long 1}
          xywh {120 120 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Very Long 2}
          xywh {130 130 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Choice revp10 {
        label Type
        callback {if(o->value()==2) revp12->activate();
	else revp12->deactivate();}
        xywh {110 15 85 15} box UP_BOX down_box BORDER_BOX color 14 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("parameter10");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label Random
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Freeverb
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Bandwidth
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial revp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp1 {
        label Pan
        xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter1");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp2 {
        label Time
        tooltip {Duration of Effect} xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp3 {
        label {I.del}
        tooltip {Initial Delay} xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp4 {
        label {I.delfb}
        tooltip {Initial Delay Feedback} xywh {155 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter4");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp12 {
        label bw
        xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127 deactivate
        code0 {o->init("parameter12");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp6 {
        label {E/R}
        xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127 deactivate
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp7 {
        label LPF
        tooltip {Low Pass Filter} xywh {270 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter7");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp8 {
        label HPF
        tooltip {High Pass Filter} xywh {305 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter8");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp9 {
        label Damp
        tooltip Dampening xywh {340 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 minimum 64 maximum 127 step 1
        code0 {o->init("parameter9");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp11 {
        label {R.S.}
        tooltip RoomSize xywh {200 10 25 25} box ROUND_UP_BOX labelfont 1 labelsize 8 align 8 minimum 1 maximum 127 step 1
        code0 {o->init("parameter11");}
        class Fl_Osc_Dial
      }
    }
  }
  Function {make_echo_window()} {} {
    Fl_Window effechowindow {
      xywh {897 680 380 100} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice echop {
        label Preset
        xywh {11 15 95 15} box UP_BOX down_box BORDER_BOX color 14 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Echo 1}
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Echo 2}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Echo 3}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Simple Echo}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Canyon
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Panning Echo 1}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Panning Echo 2}
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Panning Echo 3}
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Feedback Echo}
          xywh {100 100 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial echop0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial echop1 {
        label Pan
        xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter1");}
        class Fl_Osc_Dial
      }
      Fl_Dial echop2 {
        label Delay
        xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial echop3 {
        label {LRdl.}
        tooltip {Delay Between L/R} xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Dial echop4 {
        label {LRc.}
        tooltip {L/R Crossover} xywh {155 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter4");}
        class Fl_Osc_Dial
      }
      Fl_Dial echop5 {
        label {Fb.}
        tooltip Feedback xywh {195 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter5");}
        class Fl_Osc_Dial
      }
      Fl_Dial echop6 {
        label Damp
        tooltip Dampening xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
    }
  }
  Function {make_chorus_window()} {} {
    Fl_Window effchoruswindow {
      xywh {476 811 380 100} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice chorusp {
        label Preset
        xywh {10 15 90 15} box UP_BOX down_box BORDER_BOX color 14 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Chorus 1}
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Chorus 2}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Chorus 3}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Celeste 1}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Celeste 2}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 1}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 2}
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 3}
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 4}
          xywh {100 100 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 5}
          xywh {110 110 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial chorusp0 {
        label Vol
        xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp1 {
        label Pan
        xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter1");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp2 {
        label Freq
        tooltip {LFO Frequency} xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp3 {
        label Rnd
        tooltip {LFO Randomness} xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp5 {
        label {St.df}
        tooltip {L/R Phase Shift} xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter5");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp6 {
        label Dpth
        tooltip {LFO Depth} xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp7 {
        label Delay
        xywh {270 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter7");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp8 {
        label Fb
        tooltip Feedback xywh {305 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter8");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp9 {
        label {L/R}
        tooltip {Channel Routing} xywh {340 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter9");}
        class Fl_Osc_Dial
      }
      Fl_Check_Button {} {
        label Flange
        xywh {120 10 55 20} box THIN_UP_BOX down_box DOWN_BOX color 230 labelfont 1 labelsize 10 hide deactivate
        code0 {o->init("parameter10");}
        class Fl_Osc_Check
      }
      Fl_Check_Button chorusp11 {
        label Subtract
        tooltip {inverts the output} xywh {185 10 70 20} box THIN_UP_BOX down_box DOWN_BOX color 51 labelsize 10
        code0 {o->init("parameter11");}
        class Fl_Osc_Check
      }
      Fl_Choice chorusp4 {
        label {LFO type}
        tooltip {LFO function} xywh {155 50 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 130 textsize 8
        code0 {o->init("parameter4");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label SINE
          xywh {15 15 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label TRI
          xywh {25 25 100 20} labelfont 1 labelsize 10
        }
      }
    }
  }
  Function {make_phaser_window()} {} {
    Fl_Window effphaserwindow {
      xywh {110 301 380 95} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice phaserp {
        label Preset
        xywh {10 15 100 15} box UP_BOX down_box BORDER_BOX color 14 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Phaser 1}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 2}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 3}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 4}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 5}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 6}
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {APhaser 1}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {APhaser 2}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {APhaser 3}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {APhaser 4}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {APhaser 5}
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {APhaser 6}
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial phaserp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp1 {
        label Pan
        xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter1");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp2 {
        label Freq
        tooltip {LFO frequency} xywh {85 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp3 {
        label Rnd
        tooltip {LFO randomness} xywh {120 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Choice phaserp4 {
        label LFO
        tooltip {LFO function} xywh {245 55 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 130 textsize 8
        code0 {o->init("parameter4");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label SIN
          xywh {15 15 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label TRI
          xywh {25 25 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial phaserp5 {
        label {St.df}
        tooltip {Left/Right Channel Phase Shift} xywh {155 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter5");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp6 {
        label Dpth
        tooltip {LFO Depth} xywh {120 5 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp7 {
        label Fb
        tooltip Feedback xywh {185 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter7");}
        class Fl_Osc_Dial
      }
      Fl_Counter phaserp8 {
        label Stages
        xywh {290 55 35 15} type Simple labelfont 1 labelsize 11 minimum 0 maximum 127 step 1
        code0 {o->range(1,MAX_PHASER_STAGES);}
        code1 {o->init("parameter8");}
        class Fl_Osc_Counter
      }
      Fl_Dial phaserp9 {
        label {L/R}
        tooltip {Channel Routing} xywh {215 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter9");}
        class Fl_Osc_Dial
      }
      Fl_Check_Button phaserp10 {
        label Subtract
        tooltip {inverts output} xywh {200 10 74 20} box THIN_UP_BOX down_box DOWN_BOX color 51 labelfont 1 labelsize 10
        code0 {o->init("parameter10");}
        class Fl_Osc_Check
      }
      Fl_Dial phaserp11 {
        label Phase
        xywh {155 5 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 maximum 127
        code0 {o->init("parameter11");}
        class Fl_Osc_Dial
      }
      Fl_Check_Button phaserp12 {
        label {hyp.}
        tooltip hyper xywh {245 35 55 15} down_box DOWN_BOX
        code0 {o->init("parameter12");}
        class Fl_Osc_Check
      }
      Fl_Dial phaserp13 {
        label dist
        tooltip Distortion xywh {340 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter13");}
        class Fl_Osc_Dial
      }
      Fl_Check_Button phaserp14 {
        label Analog
        xywh {305 35 70 15} down_box DOWN_BOX
        code0 {o->init("parameter14");}
        class Fl_Osc_Check
      }
    }
  }
  Function {make_alienwah_window()} {} {
    Fl_Window effalienwahwindow {
      xywh {262 422 380 100} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice awp {
        label Preset
        xywh {10 15 90 15} box UP_BOX down_box BORDER_BOX color 14 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Alienwah 1}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Alienwah 2}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Alienwah 3}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Alienwah 4}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial awp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp1 {
        label Pan
        xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter1");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp2 {
        label Freq
        tooltip {LFO Frequency} xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp3 {
        label Rnd
        tooltip {LFO Randomness} xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp5 {
        label {St.df}
        tooltip {Left/Right Channel Phase Shift} xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter5");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp6 {
        label Dpth
        tooltip Depth xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp7 {
        label Fb
        tooltip Feedback xywh {270 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter7");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp9 {
        label {L/R}
        xywh {345 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter9");}
        class Fl_Osc_Dial
      }
      Fl_Choice awp4 {
        label {LFO type}
        tooltip {LFO function} xywh {155 50 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 130 textsize 8
        code0 {o->init("parameter4");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label SINE
          xywh {15 15 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label TRI
          xywh {25 25 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial awp10 {
        label Phase
        xywh {160 5 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter10");}
        class Fl_Osc_Dial
      }
      Fl_Counter awp8 {
        label Delay
        xywh {305 55 35 15} type Simple labelfont 1 labelsize 11 minimum 0 maximum 127 step 1
        code0 {o->range(1,MAX_ALIENWAH_DELAY);}
        code1 {o->init("parameter8");}
        class Fl_Osc_Counter
      }
    }
  }
  Function {make_distorsion_window()} {} {
    Fl_Window effdistorsionwindow {
      xywh {553 286 380 100} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice distp {
        label Preset
        xywh {11 15 95 15} box UP_BOX down_box BORDER_BOX color 14 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Overdrive 1}
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Overdrive 2}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {A. Exciter 1}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {A. Exciter 2}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Guitar Amp}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Quantisize
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial distp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp1 {
        label Pan
        xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter1");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp2 {
        label {LRc.}
        tooltip {L/R Mix} xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp3 {
        label Drive
        tooltip {Input Amplification} xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp4 {
        label Level
        tooltip {Output Amplification} xywh {155 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter4");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp7 {
        label LPF
        tooltip {Low Pass Filter} xywh {285 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter7");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp8 {
        label HPF
        tooltip {High Pass Filter} xywh {320 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter8");}
        class Fl_Osc_Dial
      }
      Fl_Choice distp5 {
        label Type
        xywh {190 50 60 20} box UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 align 2 textsize 10
        code0 {o->init("parameter5");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label Atan
          xywh {55 55 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Asym1
          xywh {65 65 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Pow
          xywh {75 75 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Sine
          xywh {85 85 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Qnts
          xywh {95 95 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Zigzg
          xywh {105 105 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Lmt
          xywh {115 115 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label LmtU
          xywh {125 125 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label LmtL
          xywh {135 135 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label ILmt
          xywh {147 147 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Clip
          xywh {157 157 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Asym2
          xywh {75 75 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Pow2
          xywh {85 85 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Sgm
          xywh {95 95 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Check_Button distp6 {
        label {Neg.}
        xywh {260 55 15 15} down_box DOWN_BOX labelfont 1 labelsize 11 align 2
        code0 {o->init("parameter6");}
        class Fl_Osc_Check
      }
      Fl_Check_Button distp9 {
        label {St.}
        tooltip Stereo xywh {355 60 15 15} down_box DOWN_BOX labelfont 1 labelsize 11 align 2
        code0 {o->init("parameter9");}
        class Fl_Osc_Check
      }
      Fl_Check_Button distp10 {
        label PF
        tooltip {Applies the filters(before or after) the distorsion} xywh {355 44 15 15} down_box DOWN_BOX labelfont 1 labelsize 11 align 1
        code0 {o->init("parameter10");}
        class Fl_Osc_Check
      }
    }
  }
  Function {make_eq_window()} {} {
    Fl_Window effeqwindow {
      xywh {691 881 380 100} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Dial eqp0 {
        label Gain
        callback {eqgraph->redraw();}
        xywh {10 35 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Counter bandcounter {
        label {B.}
        callback {eqband=(int) o->value();
int npb=eqband*5+10;

typechoice->oscMove("parameter"+to_s(npb));
freqdial->oscMove("parameter"+to_s(npb+1));
gaindial->oscMove("parameter"+to_s(npb+2));
qdial->oscMove("parameter"+to_s(npb+3));
stagescounter->oscMove("parameter"+to_s(npb+4));}
        tooltip {Band no.} xywh {240 20 45 15} type Simple labelfont 1 labelsize 11 align 1 minimum 0 maximum 1 step 1 textfont 1 textsize 11
        code0 {o->bounds(0,MAX_EQ_BANDS-1);}
      }
      Fl_Group bandgroup {
        xywh {245 40 130 50} box ENGRAVED_FRAME
      } {
        Fl_Dial freqdial {
          label Freq
          callback {eqgraph->update();}
          xywh {250 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127
          code0 {o->init("parameter11");}
          class Fl_Osc_Dial
        }
        Fl_Dial gaindial {
          label Gain
          callback {eqgraph->update();}
          xywh {280 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127 step 1
          code0 {o->init("parameter12");}
          class Fl_Osc_Dial
        }
        Fl_Dial qdial {
          label Q
          callback {eqgraph->update();}
          tooltip {Resonance/Bandwidth} xywh {310 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127
          code0 {o->init("parameter13");}
          class Fl_Osc_Dial
        }
        Fl_Counter stagescounter {
          label {St.}
          callback {eqgraph->update();}
          tooltip {Additional filter stages} xywh {340 60 30 15} type Simple labelfont 1 labelsize 10 minimum 0 maximum 127 step 1 textfont 1 textsize 11
          code0 {o->init("parameter14");}
          class Fl_Osc_Counter
        }
      }
      Fl_Choice typechoice {
        label {T.}
        callback {int type = o->value();
if (type>6) gaindial->activate();
 else gaindial->deactivate();

if (type==0) bandgroup->deactivate();
else bandgroup->activate();
eqgraph->update();}
        tooltip Type xywh {290 20 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 1 when 6 textsize 10
        code0 {o->init("parameter15");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label OFF
          xywh {0 0 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Lp1
          xywh {10 10 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Hp1
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Lp2
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Hp2
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Bp2
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label N2
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Pk
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label LSh
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label HSh
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Box eqgraph {
        xywh {45 10 190 75} box BORDER_BOX color 50
        class Fl_EQGraph
      }
    }
  }
  Function {make_dynamicfilter_window()} {} {
    Fl_Window effdynamicfilterwindow {
      xywh {828 359 380 100} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice dfp {
        label Preset
        xywh {10 15 90 15} box UP_BOX down_box BORDER_BOX color 14 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label WahWah
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label AutoWah
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Sweep
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label VocalMorph1
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label VocalMorph2
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial dfp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial dfp1 {
        label Pan
        xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter1");}
        class Fl_Osc_Dial
      }
      Fl_Dial dfp2 {
        label Freq
        tooltip {LFO Frequency} xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial dfp3 {
        label Rnd
        tooltip {LFO Randomness} xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Dial dfp5 {
        label {St.df}
        tooltip {Left/Right Channel Phase Shift} xywh {200 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter5");}
        class Fl_Osc_Dial
      }
      Fl_Dial dfp6 {
        label LfoD
        tooltip {LFO Depth} xywh {235 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Choice dfp4 {
        label {LFO type}
        tooltip {LFO function} xywh {155 50 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 130 textsize 8
        code0 {o->init("parameter4");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label SINE
          xywh {15 15 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label TRI
          xywh {25 25 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Button {} {
        label Filter
        callback {filterwindow->show();}
        xywh {115 10 55 25} box THIN_UP_BOX
      }
      Fl_Group {} {
        xywh {270 40 105 45} box UP_FRAME color 51
      } {
        Fl_Dial dfp7 {
          label {A.S.}
          tooltip {Filter vs Amplitude} xywh {275 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
          code0 {o->init("parameter7");}
          class Fl_Osc_Dial
        }
        Fl_Dial dfp9 {
          label {A.M}
          tooltip {rate that  amplitude changes the filter} xywh {305 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
          code0 {o->init("parameter9");}
          class Fl_Osc_Dial
        }
        Fl_Check_Button dfp8 {
          label {A.Inv.}
          tooltip {enable for filter frequency to lower with higher input amplitude} xywh {345 55 15 15} down_box DOWN_BOX labelfont 1 labelsize 11 align 2
          code0 {o->init("parameter8");}
          class Fl_Osc_Check
        }
      }
    }
  }
  Function {make_filter_window()} {} {
    Fl_Window filterwindow {
      label {Filter Parameters for DynFilter Eff.}
      xywh {810 543 290 110} type Double
      code0 {set_module_parameters(o);} visible
    } {
      Fl_Group {} {
        label {DynFilter effect  - Filter}
        xywh {5 5 275 75} box FLAT_BOX color 50 align 144
        code0 {o->init("",osc, loc(), "filterpars/");}
        code1 {o->use_for_dynamic_filter();}
        class FilterUI
      } {}
      Fl_Button {} {
        label Close
        callback {filterwindow->hide();}
        xywh {105 85 70 20} box THIN_UP_BOX
      }
    }
  }
  Function {init(bool ins_)} {open
  } {
    code {efftype = 0;
    insertion = ins_;

make_null_window();
make_reverb_window();
make_echo_window();
make_chorus_window();
make_phaser_window();
make_alienwah_window();
make_distorsion_window();
make_eq_window();
make_dynamicfilter_window();

int px=this->parent()->x();
int py=this->parent()->y();

effnullwindow->position(px,py);
effreverbwindow->position(px,py);
effechowindow->position(px,py);
effchoruswindow->position(px,py);
effphaserwindow->position(px,py);
effalienwahwindow->position(px,py);
effdistorsionwindow->position(px,py);
effeqwindow->position(px,py);
effdynamicfilterwindow->position(px,py);

refresh();} {}
  }
  Function {refresh()} {open
  } {
    code {this->hide();
for(int i=0; i<32; ++i)
    osc->requestValue(loc()+"parameter"+to_s(i));

effnullwindow->hide();
effreverbwindow->hide();
effechowindow->hide();
effchoruswindow->hide();
effphaserwindow->hide();
effalienwahwindow->hide();
effdistorsionwindow->hide();
effeqwindow->hide();
effdynamicfilterwindow->hide();

eqband=0;

if (filterwindow){
	filterwindow->hide();
	delete(filterwindow);
	filterwindow=NULL;
};
	
    if(insertion) {
        revp0->label("D/W");
        echop0->label("D/W");
        chorusp0->label("D/W");
        phaserp0->label("D/W");
        awp0->label("D/W");
        distp0->label("D/W");
        dfp0->label("D/W");
    }

switch(efftype){
     case 1:
        effreverbwindow->show();
        break; 
     case 2:
	effechowindow->show();
        break; 
     case 3:
	effchoruswindow->show();
        break; 
     case 4:
	effphaserwindow->show();
        break; 
     case 5:
	effalienwahwindow->show();
        break; 
     case 6:
	effdistorsionwindow->show();
        break;
     case 7:eqband=0;
	bandcounter->value(eqband);
	bandcounter->do_callback();
	eqgraph->redraw();
	effeqwindow->show();
        break;
     case 8:make_filter_window();
            
	effdynamicfilterwindow->show();
	break;
    default:effnullwindow->show();
            break; 
};

this->show();} {selected
    }
  }
  decl {int eqband;} {private local
  }
  decl {bool insertion;} {public local
  }
  decl {int efftype;} {public local
  }
} 

class SimpleEffUI {open : {public Fl_Osc_Group,public PresetsUI_}
} {
  Function {SimpleEffUI(int x,int y, int w, int h, const char *label=0):Fl_Osc_Group(x,y,w,h,label),efftype(0)} {} {
    code {} {}
  }
  Function {~SimpleEffUI()} {} {
    code {effnullwindow->hide();//delete (effnullwindow);
effreverbwindow->hide();//delete (effreverbwindow);
effechowindow->hide();//delete (effechowindow);
effchoruswindow->hide();//delete (effchoruswindow);
effphaserwindow->hide();//delete (effphaserwindow);
effalienwahwindow->hide();//delete (effalienwahwindow);
effdistorsionwindow->hide();//delete (effdistorsionwindow);
effeqwindow->hide();//delete (effeqwindow);
effdynamicfilterwindow->hide();//delete (effdynamicfilterwindow);} {}
  }
  Function {make_null_window()} {} {
    Fl_Window effnullwindow {
      xywh {1047 824 230 95} type Double box UP_BOX color 221 labelfont 1 labelsize 19
      code0 {set_module_parameters(o);}
      class Fl_Group visible
    } {}
  }
  Function {make_reverb_window()} {} {
    Fl_Window effreverbwindow {
      xywh {1047 532 230 100} type Double box UP_BOX color 51 labelfont 1 labelsize 19
      code3 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice revp {
        label Preset
        xywh {10 15 90 15} down_box BORDER_BOX color 47 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Cathedral 1}
          xywh {10 10 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Cathedral 2}
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Cathedral 3}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Hall 1}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Hall 2}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Room 1}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Room 2}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Basement
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Tunnel
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Echoed 1}
          xywh {100 100 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Echoed 2}
          xywh {110 110 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Very Long 1}
          xywh {120 120 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Very Long 2}
          xywh {130 130 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial revp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp2 {
        label Time
        tooltip {Duration of Reverb} xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp3 {
        label {I.del}
        tooltip {Initial Delay} xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Dial revp9 {
        label Damp
        tooltip Dampening xywh {120 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 minimum 64 maximum 127 step 1
        code0 {o->init("parameter9");}
        class Fl_Osc_Dial
      }
    }
  }
  Function {make_echo_window()} {} {
    Fl_Window effechowindow {
      xywh {437 881 230 100} type Double box UP_BOX color 51 labelfont 1 labelsize 19
      code3 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice echop {
        label Preset
        xywh {11 15 95 15} box UP_BOX down_box BORDER_BOX color 47 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Echo 1}
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Echo 2}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Echo 3}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Simple Echo}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Canyon
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Panning Echo 1}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Panning Echo 2}
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Panning Echo 3}
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Feedback Echo}
          xywh {100 100 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial echop0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial echop2 {
        label Delay
        xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial echop5 {
        label {Fb.}
        tooltip Feedback xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter5");}
        class Fl_Osc_Dial
      }
    }
  }
  Function {make_chorus_window()} {} {
    Fl_Window effchoruswindow {
      xywh {728 657 230 100} type Double box UP_BOX color 51 labelfont 1 labelsize 19
      code3 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice chorusp {
        label Preset
        xywh {10 15 90 15} box UP_BOX down_box BORDER_BOX color 47 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Chorus 1}
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Chorus 2}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Chorus 3}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Celeste 1}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Celeste 2}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 1}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 2}
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 3}
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 4}
          xywh {100 100 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Flange 5}
          xywh {110 110 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial chorusp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp2 {
        label Freq
        tooltip {LFO Frequency} xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp6 {
        label Dpth
        tooltip Depth xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp7 {
        label Delay
        xywh {115 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter7");}
        class Fl_Osc_Dial
      }
      Fl_Dial chorusp8 {
        label Fb
        tooltip Feedback xywh {150 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter8");}
        class Fl_Osc_Dial
      }
      Fl_Check_Button {} {
        label Flange
        xywh {120 10 55 20} box THIN_UP_BOX down_box DOWN_BOX color 230 labelfont 1 labelsize 10 hide deactivate
        code0 {o->init("parameter10");}
        class Fl_Osc_Check
      }
    }
  }
  Function {make_phaser_window()} {} {
    Fl_Window effphaserwindow {
      xywh {1047 881 230 100} type Double box UP_BOX color 51 labelfont 1 labelsize 19
      code3 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice phaserp {
        label Preset
        xywh {10 15 90 15} box UP_BOX down_box BORDER_BOX color 47 selection_color 0 labelfont 1 labelsize 10 labelcolor 55 align 5 textfont 1 textsize 10 textcolor 7
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Phaser 1}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 2}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 3}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 4}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 5}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Phaser 6}
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial phaserp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp2 {
        label Freq
        tooltip {LFO frequency} xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp5 {
        label {St.df}
        tooltip {Left/Right Channel Phase Shift} xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter5");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp6 {
        label Dpth
        tooltip Depth xywh {115 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Dial phaserp7 {
        label Fb
        tooltip Feedback xywh {150 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter7");}
        class Fl_Osc_Dial
      }
      Fl_Counter phaserp8 {
        label Stages
        xywh {185 55 35 15} type Simple labelfont 1 labelsize 11 minimum 0 maximum 127 step 1
        code0 {o->range(1,MAX_PHASER_STAGES);}
        code1 {o->init("parameter8");}
        class Fl_Osc_Counter
      }
    }
  }
  Function {make_alienwah_window()} {} {
    Fl_Window effalienwahwindow {
      xywh {412 549 230 100} type Double box UP_BOX color 51 labelfont 1 labelsize 19
      code3 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice awp {
        label Preset
        xywh {10 15 90 15} box UP_BOX down_box BORDER_BOX color 47 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Alienwah 1}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Alienwah 2}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Alienwah 3}
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Alienwah 4}
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial awp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp2 {
        label Freq
        tooltip {LFO frequency} xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial awp6 {
        label Dpth
        tooltip Depth xywh {85 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Counter awp8 {
        label Delay
        xywh {125 55 35 15} type Simple labelfont 1 labelsize 11 minimum 0 maximum 127 step 1
        code0 {o->range(1,MAX_ALIENWAH_DELAY);}
        code1 {o->init("parameter8");}
        class Fl_Osc_Counter
      }
    }
  }
  Function {make_distorsion_window()} {} {
    Fl_Window effdistorsionwindow {
      xywh {88 881 230 100} type Double box UP_BOX color 51 labelfont 1 labelsize 19
      code3 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice distp {
        label Preset
        xywh {11 15 95 15} box UP_BOX down_box BORDER_BOX color 47 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label {Overdrive 1}
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Overdrive 2}
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {A. Exciter 1}
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {A. Exciter 2}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label {Guitar Amp}
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Quantisize
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial distp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp3 {
        label Drive
        tooltip {Input amplification} xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 when 4 maximum 127
        code0 {o->init("parameter3");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp4 {
        label Level
        tooltip {Output Amplification} xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter4");}
        class Fl_Osc_Dial
      }
      Fl_Dial distp7 {
        label LPF
        tooltip {Low Pass Filter} xywh {190 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter7");}
        class Fl_Osc_Dial
      }
      Fl_Choice distp5 {
        label Type
        xywh {120 50 60 20} box UP_BOX down_box BORDER_BOX labelfont 1 labelsize 11 align 2 textsize 10
        code0 {o->init("parameter5");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label Atan
          xywh {55 55 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Asym1
          xywh {65 65 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Pow
          xywh {75 75 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Sine
          xywh {85 85 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Qnts
          xywh {95 95 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Zigzg
          xywh {105 105 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Lmt
          xywh {115 115 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label LmtU
          xywh {125 125 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label LmtL
          xywh {135 135 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label ILmt
          xywh {147 147 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Clip
          xywh {157 157 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Asym2
          xywh {75 75 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Pow2
          xywh {85 85 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Sgm
          xywh {95 95 100 20} labelfont 1 labelsize 10
        }
      }
    }
  }
  Function {make_eq_window()} {} {
    Fl_Window effeqwindow {
      xywh {1047 881 230 100} type Double box UP_BOX color 51 labelfont 1 labelsize 19
      code3 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Counter bandcounter {
        label Band
        callback {eqband=(int) o->value();
int npb=eqband*5+10;
typechoice->oscMove("parameter"+to_s(npb));
freqdial->oscMove("parameter"+to_s(npb+1));
gaindial->oscMove("parameter"+to_s(npb+2));
qdial->oscMove("parameter"+to_s(npb+3));
stagescounter->oscMove("parameter"+to_s(npb+4));}
        tooltip {Band no.} xywh {85 15 45 15} type Simple labelfont 1 labelsize 11 align 1 minimum 0 maximum 1 step 1 textfont 1 textsize 11
        code0 {o->bounds(0,MAX_EQ_BANDS-1);}
      }
      Fl_Group bandgroup {
        xywh {5 5 75 85} box UP_FRAME
      } {
        Fl_Dial freqdial {
          label Freq
          callback {eqgraph->redraw();}
          xywh {10 10 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127
          code0 {o->init("parameter11");}
          class Fl_Osc_Dial
        }
        Fl_Dial gaindial {
          label Gain
          callback {eqgraph->redraw();}
          xywh {45 10 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127 step 1
          code0 {o->init("parameter12");}
          class Fl_Osc_Dial
        }
        Fl_Dial qdial {
          label Q
          callback {eqgraph->redraw();}
          tooltip {Bandwidth/Resonance} xywh {10 50 25 25} box ROUND_UP_BOX labelfont 1 labelsize 10 when 3 maximum 127
          code0 {o->init("parameter13");}
          class Fl_Osc_Dial
        }
        Fl_Counter stagescounter {
          label Stages
          callback {eqgraph->redraw();}
          tooltip {Additional filter stages} xywh {40 55 30 15} type Simple labelfont 1 labelsize 10 minimum 1 maximum 127 step 1 textfont 1 textsize 11
          code0 {o->bounds(0,MAX_FILTER_STAGES-1);}
          code1 {o->init("parameter14");}
          class Fl_Osc_Counter
        }
      }
      Fl_Choice typechoice {
        label Type
        callback {int type = o->value();
if (type>6) gaindial->activate();
 else gaindial->deactivate();

if (type==0) bandgroup->deactivate();
else bandgroup->activate();
eqgraph->redraw();}
        tooltip Type xywh {135 15 40 15} down_box BORDER_BOX labelfont 1 labelsize 10 align 1 when 6 textsize 10
        code0 {o->init("parameter10");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label OFF
          xywh {10 10 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Lp1
          xywh {20 20 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Hp1
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Lp2
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Hp2
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Bp2
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label N2
          xywh {70 70 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Pk
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label LSh
          xywh {80 80 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label HSh
          xywh {90 90 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Box eqgraph {
        xywh {85 35 140 55} box BORDER_BOX color 50
        class Fl_EQGraph
      }
    }
  }
  Function {make_dynamicfilter_window()} {} {
    Fl_Window effdynamicfilterwindow {
      xywh {974 596 230 100} type Double box UP_BOX color 51 labelfont 1 labelsize 19
      code3 {set_module_parameters(o);}
      class Fl_Group visible
    } {
      Fl_Choice dfp {
        label Preset
        xywh {10 15 90 15} box UP_BOX down_box BORDER_BOX color 47 selection_color 7 labelfont 1 labelsize 10 align 5 textfont 1 textsize 10
        code0 {o->init("preset");}
        class Fl_Osc_Choice
      } {
        MenuItem {} {
          label WahWah
          xywh {30 30 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label AutoWah
          xywh {40 40 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label Sweep
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label VocalMorph1
          xywh {50 50 100 20} labelfont 1 labelsize 10
        }
        MenuItem {} {
          label VocalMorph2
          xywh {60 60 100 20} labelfont 1 labelsize 10
        }
      }
      Fl_Dial dfp0 {
        label Vol
        tooltip {Effect Volume} xywh {10 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter0");}
        class Fl_Osc_Dial
      }
      Fl_Dial dfp2 {
        label Freq
        tooltip {LFO frequency} xywh {45 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter2");}
        class Fl_Osc_Dial
      }
      Fl_Dial dfp6 {
        label LfoD
        tooltip {LFO depth} xywh {80 40 30 30} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
        code0 {o->init("parameter6");}
        class Fl_Osc_Dial
      }
      Fl_Group {} {
        xywh {115 40 65 45} box UP_FRAME
      } {
        Fl_Dial dfp7 {
          label {A.S.}
          tooltip {how filter varies with amplitude} xywh {120 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
          code0 {o->init("parameter7");}
          class Fl_Osc_Dial
        }
        Fl_Dial dfp9 {
          label {A.M}
          tooltip {how quickly the filter varies with amplitude} xywh {150 45 25 25} box ROUND_UP_BOX labelfont 1 labelsize 11 maximum 127
          code0 {o->init("parameter9");}
          class Fl_Osc_Dial
        }
      }
    }
  }
  Function {init(bool ins_)} {open
  } {
    code {efftype = 0;
    insertion = ins_;
make_null_window();
make_reverb_window();
make_echo_window();
make_chorus_window();
make_phaser_window();
make_alienwah_window();
make_distorsion_window();
make_eq_window();
make_dynamicfilter_window();

int px=this->parent()->x();
int py=this->parent()->y();

effnullwindow->position(px,py);
effreverbwindow->position(px,py);
effechowindow->position(px,py);
effchoruswindow->position(px,py);
effphaserwindow->position(px,py);
effalienwahwindow->position(px,py);
effdistorsionwindow->position(px,py);
effeqwindow->position(px,py);
effdynamicfilterwindow->position(px,py);} {}
  }
  Function {refresh()} {open
  } {
    code {this->hide();

for(int i=0; i<32; ++i)
    osc->requestValue(loc()+"parameter"+to_s(i));

effnullwindow->hide();
effreverbwindow->hide();
effechowindow->hide();
effchoruswindow->hide();
effphaserwindow->hide();
effalienwahwindow->hide();
effdistorsionwindow->hide();
effeqwindow->hide();
effdynamicfilterwindow->hide();

eqband=0;

    if(insertion) {
	    revp0->label("D/W");
	    echop0->label("D/W");
	    chorusp0->label("D/W");
	    phaserp0->label("D/W");
	    awp0->label("D/W");
	    distp0->label("D/W");
	    dfp0->label("D/W");
    }

switch(efftype){
     case 1:
        effreverbwindow->show();
        break; 
     case 2:
	effechowindow->show();
        break; 
     case 3:
	effchoruswindow->show();
        break; 
     case 4:
	effphaserwindow->show();
        break; 
     case 5:
	effalienwahwindow->show();
        break; 
     case 6:
	effdistorsionwindow->show();
        break;
     case 7:
	bandcounter->value(eqband);
	bandcounter->do_callback();
	effeqwindow->show();
        break;
     case 8:
	effdynamicfilterwindow->show();
	break;
    default:effnullwindow->show();
            break; 
};

this->show();} {}
  }
  decl {int eqband;} {private local
  }
  decl {bool insertion;} {public local
  }
  decl {int efftype;} {public local
  }
} 
