function drawthegui(FXNAME)
%Draws the GUI for DAFXTOOL
% ******************************************************
% * DAFXTOOL
% * signal processing and visualisation toolbox
% * ----------------------------------------------------
% * Author : Dominik Wegmann <audioholiker@web.de>
% ******************************************************
global H_DAFX F_DAFX STATBOX STATUSTEXT PLUGINS
width = 950;%GUI Dimensions
height = 700;
F_DAFX = figure('Position',[15 30 width height],... %draw main figure
'NumberTitle','off',...
'Color',[.8 .8 .8],...
'Name','DAFXTOOL');
H_DAFX(1) = uicontrol('Style','pushbutton',... % record button
'Units','normalized',...
'Position',[90/width (height-65)/height 70/width 22/height],...
'ForegroundColor',[1 0 0],...
'FontAngle','normal',...
'FontSize',10,...
'FontWeight','bold',...
'String','Record',...
'Visible','on',...
'CallBack','dafxtool(1)');
H_DAFX(2) = uicontrol('Style','pushbutton',... % play button
'Units','normalized', ...
'Position',[736/width 630/height 165/width 30/height],...
'ForegroundColor',[.2 0.6 .2],...
'FontAngle','normal',...
'FontSize',11,...
'FontWeight','bold',...
'String','Play',...
'Enable','on',...
'CallBack','dafxtool(2)');
H_DAFX(3) = uicontrol('Style','text',... % record time length
'Units','normalized', ...
'Position',[230/width (height-62)/height 35/width 15/height],...
'BackgroundColor',[1 1 1],...
'String','--');
H_DAFX(4) = uicontrol('Style','text',... % diplays "length"
'Units','normalized', ...
'Position',[165/width (height-65)/height 65/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','length(sec):');
H_DAFX(5) = uicontrol('Style','text',... % diplays "fs"
'Units','normalized', ...
'Position',[265/width (height-65)/height 30/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','fs:');
H_DAFX(6) = uicontrol('Style','edit',... % diplays selected fs
'Units','normalized', ...
'Position',[290/width (height-62)/height 40/width 16/height],...
'BackgroundColor',[1 1 1],...
'String','44100');
H_DAFX(7) = uicontrol('Style','text',... % diplays "nbits"
'Units','normalized', ...
'Position',[340/width (height-65)/height 26/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','nbits:');
H_DAFX(8) = uicontrol('Style','edit',... % diplays selected bitrate
'Units','normalized', ...
'Position',[370/width (height-62)/height 22/width 16/height],...
'BackgroundColor',[1 1 1],...
'String','16');
H_DAFX(9) = uicontrol('Style','pushbutton',... % Load data from wav file
'Units','normalized', ...
'Position',[420/width (height-62.5)/height 65/width 21/height],...
'ForegroundColor',[.2 .4 .2],...
'FontWeight','bold',...
'String','Load',...
'Enable','on',...
'CallBack','dafxtool(4)');
H_DAFX(10) = uicontrol('Style','pushbutton',... % Save data to wav file
'Units','normalized', ...
'Position',[490/width (height-62.5)/height 65/width 21/height],...
'ForegroundColor',[.2 .4 .2],...
'FontWeight','bold',...
'String','Save',...
'Enable','off',...
'CallBack','dafxtool(5)');
H_DAFX(11) = uicontrol('Style','text',... % diplays "file:"
'Units','normalized', ...
'Position',[560/width (height-62.5)/height 25/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','File:');
H_DAFX(12) = uicontrol('Style','text',... % diplays filename
'Units','normalized', ...
'Position',[585/width (height-65)/height 140/width 18/height],...
'BackgroundColor',[.8 .8 .8],...
'HorizontalAlignment','left',...
'String',' ');
H_DAFX(14) = uicontrol('Style','text',... % diplays "Output"
'Units','normalized', ...
'Position',[332/width (height-405)/height 60/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','Output',...
'Visible','off');
H_DAFX(15) = uicontrol('Style','pushbutton',... %Start data processing
'Units','normalized', ...
'Position',[736/width 290/height 165/width 45/height],...
'ForegroundColor',[.8 .2 .2],...
'FontSize',11,...
'FontWeight','bold',...
'String','RUN!',...
'Enable','on',...
'CallBack','dafxtool(10)');
H_DAFX(16)=uicontrol('Style','popupmenu',... %select input view
'Units','normalized', ...
'Position',[50/width 325/height 65/width 15/height],...
'BackgroundColor',[1 1 1],...
'FontSize',8,...
'Visible','off',...
'String','Sig(t)|FFT_lin|FFT_log|PowerSpec|AuditorySpec|Spectrogram|Waterfall|Envelope|Correllation|Loudness|Pitch (F0)',...
'Callback','dafxtool(8)');
H_DAFX(17)=uicontrol('Style','popupmenu',... %select output view
'Units','normalized', ...
'Position',[50/width 35/height 65/width 15/height],...
'BackgroundColor',[1 1 1],...
'FontSize',8,...
'Visible','off',...
'String','Sig(t)|FFT_lin|FFT_log|PowerSpec|AuditorySpec|Spectrogram|Waterfall|Envelope|Correllation|Loudness|Pitch (F0)',...
'Callback','dafxtool(9)');
H_DAFX(20)=uicontrol('Style','pushbutton',... %playback output data
'Units','normalized', ...
'Position',[736/width 240/height 165/width 30/height],...
'BackgroundColor',[1 1 1],...
'ForegroundColor',[.8 .4 .2],...
'String','Play Output',...
'FontSize',10,...
'FontWeight','bold',...
'enable','on',...
'Callback','dafxtool(3)');
H_DAFX(21)=uicontrol('Style','Slider',... %select region slider, start
'Units','normalized', ...
'Position',[30/width 599/height 692/width 10/height],...
'BackgroundColor',[1 1 1],...
'ForegroundColor',[.8 .4 .2],...
'Min',0,...
'Max',1,...
'SliderStep',[0.001 0.07],...
'Value',0,...
'Visible','off',...
'Callback','dafxtool(100)');
H_DAFX(22)=uicontrol('Style','Slider',... %select region slider, end
'Units','normalized', ...
'Position',[30/width 590/height 692/width 10/height],...
'BackgroundColor',[1 1 1],...
'ForegroundColor',[.8 .4 .2],...
'Min',0,...
'Max',1,...
'SliderStep',[0.001 0.07],...
'Value',1,...
'Visible','off',...
'Callback','dafxtool(100)');
H_DAFX(26)=uicontrol('Style','popupmenu',... %enable channel selection
'Units','normalized', ...
'Position',[120/width 325/height 40/width 15/height],...
'BackgroundColor',[1 1 1],...
'FontSize',8,...
'Visible','off',...
'Enable','off',...
'String','1',...
'Callback','dafxtool(20)');
H_DAFX(27)=uicontrol('Style','popupmenu',... %enable channel selection
'Units','normalized', ...
'Position',[120/width 35/height 40/width 15/height],...
'BackgroundColor',[1 1 1],...
'FontSize',8,...
'Visible','off',...
'Enable','off',...
'String','1',...
'Callback','dafxtool(21)');
H_DAFX(28) = uicontrol('Style','pushbutton',... % stop button
'Units','normalized', ...
'Position',[736/width 630/height 165/width 30/height],...
'ForegroundColor',[0 0 0],...
'FontAngle','normal',...
'FontSize',11,...
'FontWeight','bold',...
'String','Stop',...
'Visible','off',...
'Enable','off',...
'CallBack','dafxtool(30)');
H_DAFX(29)=uicontrol('Style','pushbutton',... %help button
'Units','normalized', ...
'Position',[880/width 10/height 33/width 16/height],...
'BackgroundColor',[1 1 1],...
'String','Help',...
'FontSize',7,...
'enable','on',...
'Callback','dafxtool(40)');
H_DAFX(30)=uicontrol('Style','pushbutton',... %stop playback output data
'Units','normalized', ...
'Position',[736/width 240/height 165/width 30/height],...
'BackgroundColor',[1 1 1],...
'ForegroundColor',[0 0 0],...
'String','Stop',...
'FontSize',10,...
'FontWeight','bold',...
'enable','off',...
'Visible','off',...
'Callback','dafxtool(30)');
H_DAFX(31) = uicontrol('Style','pushbutton',... % stop record button
'Units','normalized',...
'Position',[90/width (height-65)/height 70/width 22/height],...
'ForegroundColor',[0 0 0],...
'FontAngle','normal',...
'FontSize',10,...
'FontWeight','bold',...
'String','STOP',...
'Visible','off',...
'enable','off',...
'CallBack','dafxtool(31)');
H_DAFX(32)= uicontrol('Style','text',... % start
'Units','normalized', ...
'Position',[8/width 599/height 20/width 10/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',7,...
'Visible','off',...
'String','start');
H_DAFX(33)= uicontrol('Style','text',... % end
'Units','normalized', ...
'Position',[8/width 590/height 20/width 10/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',7,...
'Visible','off',...
'String','end');
H_DAFX(34)=uicontrol('Style','text',... % input view
'Units','normalized', ...
'Position',[19/width 322/height 30/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'Visible','off',...
'String','View:');
H_DAFX(35)=uicontrol('Style','text',... % output view
'Units','normalized', ...
'Position',[19/width 32/height 30/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'Visible','off',...
'String','View:');
H_DAFX(36)=uicontrol('Style','checkbox',... % separate plot
'Units','normalized', ...
'Position',[170/width 320/height 80/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'Visible','off',...
'String','undock fig');
H_DAFX(37)=uicontrol('Style','checkbox',... % separate plot
'Units','normalized', ...
'Position',[170/width 30/height 80/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'Visible','off',...
'String','undock fig',...
'Value',0);
H_DAFX(38)=uicontrol('Style','radiobutton',... % loop playback
'Units','normalized', ...
'Position',[870/width 591/height 50/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',7,...
'Visible','on',...
'Enable','on',...
'String','Loop',...
'Value',0);
H_DAFX(39) = uicontrol('Style','pushbutton',... % crop button
'Units','normalized', ...
'Position',[736/width 590/height 30/width 20/height],...
'ForegroundColor',[0 0 0],...
'FontAngle','normal',...
'FontSize',7,...
'String','crop',...
'Enable','on',...
'CallBack','dafxtool(33)');
H_DAFX(40) = uicontrol('Style','pushbutton',... % fade in button
'Units','normalized', ...
'Position',[770/width 590/height 30/width 20/height],...
'ForegroundColor',[0 0 0],...
'FontAngle','normal',...
'FontSize',7,...
'String','fade<',...
'Enable','on',...
'CallBack','dafxtool(34)');
H_DAFX(41) = uicontrol('Style','pushbutton',... % fade out button
'Units','normalized', ...
'Position',[802/width 590/height 30/width 20/height],...
'ForegroundColor',[0 0 0],...
'FontAngle','normal',...
'FontSize',7,...
'String','fade>',...
'Enable','on',...
'CallBack','dafxtool(35)');
H_DAFX(42) = uicontrol('Style','pushbutton',... % undo button
'Units','normalized', ...
'Position',[836/width 590/height 30/width 20/height],...
'ForegroundColor',[0 0 0],...
'FontAngle','normal',...
'FontSize',7,...
'String','undo',...
'Enable','on',...
'CallBack','dafxtool(36)');
H_DAFX(43) = uicontrol('Style','pushbutton',... % flip out=data button
'Units','normalized', ...
'Position',[610/width 20/height 95/width 20/height],...
'ForegroundColor',[0 0 0],...
'FontAngle','normal',...
'FontSize',8,...
'String','Flip output => input',...
'Enable','off',...
'Visible','off',...
'CallBack','dafxtool(37)');
H_DAFX(100) = uicontrol('Style','pushbutton',... % run signalgenerator
'Units','normalized',...
'Position',[10/width (height-65)/height 70/width 22/height],...
'ForegroundColor',[0 0 0],...
'FontAngle','normal',...
'FontSize',10,...
'FontWeight','bold',...
'String','SigGen',...
'Visible','on',...
'CallBack','dafxtool(32)');
PLUGINS(1)= uipanel('Units','normalized', ... %Draws PlugIn-section
'Position',[725/width 285/height 187/width 280/height],...
'BackgroundColor',[.8 .8 .8],...
'Title',' PlugIns : ',...
'TitlePosition','centertop',...
'FontSize',10);
h=520;
for k=2:6
PLUGINS(k)= uicontrol('Style','popupmenu', ...
'Units','normalized', ...
'Position',[740/width h/height 160/width 15/height],...
'BackgroundColor',[1 1 1],...
'enable','on',...
'String',char(FXNAME));
h=h-30;
end
PLUGINS(7)= uicontrol('Style','radiobutton', ...
'Units','normalized', ...
'Position',[750/width 370/height 140/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'enable','on',...
'String','default parameter values');
PLUGINS(8)= uicontrol('Style','radiobutton', ...
'Units','normalized', ...
'Position',[750/width 350/height 140/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'enable','on',...
'String','selected region only');
STATBOX(1)= uipanel('Units','normalized', ... %Draws Textbox ( Levels )
'Position',[728/width 130/height 185/width 90/height],...
'BackgroundColor',[.8 .8 .8],...
'Title',' Levels ',...
'TitlePosition','centertop',...
'FontSize',7);
STATBOX(2)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[770/width 191/height 70/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','Input');
STATBOX(3)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[825/width 191/height 70/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','Output');
STATBOX(4)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[730/width 174/height 48/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','RMS(dB):');
STATBOX(5)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[782/width 174/height 56/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','--');
STATBOX(6)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[835/width 174/height 56/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','--');
STATBOX(7)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[730/width 158/height 48/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','Max(dB):');
STATBOX(8)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[782/width 158/height 56/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','--');
STATBOX(9)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[835/width 158/height 56/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','--');
STATBOX(10)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[730/width 141/height 48/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','Min(dB):');
STATBOX(11)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[782/width 141/height 56/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','--');
STATBOX(12)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[835/width 141/height 56/width 12/height],...
'BackgroundColor',[.8 .8 .8],...
'FontSize',8,...
'String','--');
STATUSTEXT(1)= uipanel('Units','normalized', ... %Draws Status-Textbox
'Position',[728/width 30/height 185/width 95/height],...
'BackgroundColor',[.8 .8 .8],...
'Title',' Status ',...
'TitlePosition','centertop',...
'FontSize',7);
STATUSTEXT(2)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[737/width 94/height 170/width 14/height],...
'BackgroundColor',[.8 .8 .8],...
'String',' - DAFXTOOL V2.1 - ',...
'FontSize',8);
STATUSTEXT(3)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[737/width 78/height 170/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','domi 10/2005',...
'FontSize',8);
STATUSTEXT(4)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[737/width 64/height 170/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','------',...
'FontSize',8);
STATUSTEXT(5)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[737/width 49/height 170/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','ready to rock...',...
'FontSize',8);
STATUSTEXT(6)= uicontrol('Style','text',... %
'Units','normalized', ...
'Position',[737/width 34/height 170/width 15/height],...
'BackgroundColor',[.8 .8 .8],...
'String','',...
'FontSize',8);