Dawn@4
|
1 function varargout = vs_OutputToText(varargin)
|
Dawn@4
|
2 % VS_OUTPUTTOTEXT M-file for vs_OutputToText.fig
|
Dawn@4
|
3 % VS_OUTPUTTOTEXT, by itself, creates a new VS_OUTPUTTOTEXT or raises
|
Dawn@4
|
4 % the existing
|
Dawn@4
|
5 % singleton*.
|
Dawn@4
|
6 %
|
Dawn@4
|
7 % H = VS_OUTPUTTOTEXT returns the handle to a new VS_OUTPUTTOTEXT or the handle to
|
Dawn@4
|
8 % the existing singleton*.
|
Dawn@4
|
9 %
|
Dawn@4
|
10 % VS_OUTPUTTOTEXT('CALLBACK',hObject,eventData,handles,...) calls the local
|
Dawn@4
|
11 % function named CALLBACK in VS_OUTPUTTOTEXT.M with the given input arguments.
|
Dawn@4
|
12 %
|
Dawn@4
|
13 % VS_OUTPUTTOTEXT('Property','Value',...) creates a new VS_OUTPUTTOTEXT or raises the
|
Dawn@4
|
14 % existing singleton*. Starting from the left, property value pairs are
|
Dawn@4
|
15 % applied to the GUI before vs_OutputToText_OpeningFcn gets called. An
|
Dawn@4
|
16 % unrecognized property name or invalid value makes property application
|
Dawn@4
|
17 % stop. All inputs are passed to vs_OutputToText_OpeningFcn via varargin.
|
Dawn@4
|
18 %
|
Dawn@4
|
19 % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
|
Dawn@4
|
20 % instance to run (singleton)".
|
Dawn@4
|
21 %
|
Dawn@4
|
22 % See also: GUIDE, GUIDATA, GUIHANDLES
|
Dawn@4
|
23
|
Dawn@4
|
24 % Edit the above text to modify the response to help vs_OutputToText
|
Dawn@4
|
25
|
Dawn@4
|
26 % Last Modified by GUIDE v2.5 08-Oct-2009 00:50:59
|
Dawn@4
|
27
|
Dawn@4
|
28 % Begin initialization code - DO NOT EDIT
|
Dawn@4
|
29 gui_Singleton = 1;
|
Dawn@4
|
30 gui_State = struct('gui_Name', mfilename, ...
|
Dawn@4
|
31 'gui_Singleton', gui_Singleton, ...
|
Dawn@4
|
32 'gui_OpeningFcn', @vs_OutputToText_OpeningFcn, ...
|
Dawn@4
|
33 'gui_OutputFcn', @vs_OutputToText_OutputFcn, ...
|
Dawn@4
|
34 'gui_LayoutFcn', [] , ...
|
Dawn@4
|
35 'gui_Callback', []);
|
Dawn@4
|
36 if nargin && ischar(varargin{1})
|
Dawn@4
|
37 gui_State.gui_Callback = str2func(varargin{1});
|
Dawn@4
|
38 end
|
Dawn@4
|
39
|
Dawn@4
|
40 if nargout
|
Dawn@4
|
41 [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
|
Dawn@4
|
42 else
|
Dawn@4
|
43 gui_mainfcn(gui_State, varargin{:});
|
Dawn@4
|
44 end
|
Dawn@4
|
45 % End initialization code - DO NOT EDIT
|
Dawn@4
|
46
|
Dawn@4
|
47
|
Dawn@4
|
48 % --- Executes just before vs_OutputToText is made visible.
|
Dawn@4
|
49 function vs_OutputToText_OpeningFcn(hObject, eventdata, handles, varargin)
|
Dawn@4
|
50 % This function has no output args, see OutputFcn.
|
Dawn@4
|
51 % hObject handle to figure
|
Dawn@4
|
52 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
53 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
54 % varargin command line arguments to vs_OutputToText (see VARARGIN)
|
Dawn@4
|
55
|
Dawn@4
|
56 % Choose default command line output for vs_OutputToText
|
Dawn@4
|
57 handles.output = hObject;
|
Dawn@4
|
58
|
Dawn@4
|
59 if (~isfield(handles, 'VSHandle'))
|
Dawn@4
|
60 VSHandle = VoiceSauce;
|
Dawn@4
|
61 handles.VSHandle = VSHandle;
|
Dawn@4
|
62 end
|
Dawn@4
|
63
|
Dawn@4
|
64 % restore the variables from initialization
|
Dawn@4
|
65 setGUIVariables(handles);
|
Dawn@4
|
66
|
Dawn@4
|
67 set(handles.uipanel_Segments,'SelectionChangeFcn',@segments_buttongroup_SelectionChangeFcn);
|
Dawn@4
|
68 set(handles.uipanel_OutputOptions,'SelectionChangeFcn',@outputoptions_buttongroup_SelectionChangeFcn);
|
Dawn@4
|
69 set(handles.listbox_Parameters_matfilelist, 'KeyPressFcn', @matfiles_listbox_KeyPressFcn);
|
Dawn@4
|
70
|
Dawn@4
|
71 % Update handles structure
|
Dawn@4
|
72 guidata(hObject, handles);
|
Dawn@4
|
73
|
Dawn@4
|
74 % UIWAIT makes vs_OutputToText wait for user response (see UIRESUME)
|
Dawn@4
|
75 % uiwait(handles.figure_OutputToText);
|
Dawn@4
|
76
|
Dawn@4
|
77
|
Dawn@4
|
78 % --- Outputs from this function are returned to the command line.
|
Dawn@4
|
79 function varargout = vs_OutputToText_OutputFcn(hObject, eventdata, handles)
|
Dawn@4
|
80 % varargout cell array for returning output args (see VARARGOUT);
|
Dawn@4
|
81 % hObject handle to figure
|
Dawn@4
|
82 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
83 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
84
|
Dawn@4
|
85 % Get default command line output from handles structure
|
Dawn@4
|
86 varargout{1} = handles.output;
|
Dawn@4
|
87
|
Dawn@4
|
88
|
Dawn@4
|
89 function setGUIVariables(handles)
|
Dawn@4
|
90 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
91 vars = VSData.vars;
|
Dawn@4
|
92
|
Dawn@4
|
93 paramlist = func_getoutputparameterlist();
|
Dawn@4
|
94 set(handles.listbox_Parameters_paramlist, 'String', paramlist);
|
Dawn@4
|
95
|
Dawn@4
|
96 % update output file names
|
Dawn@4
|
97 VSData.vars.OT_Single = [vars.OT_outputdir vars.dirdelimiter vars.OT_singleFilename];
|
Dawn@4
|
98 VSData.vars.OT_F0CPPE = [vars.OT_outputdir vars.dirdelimiter vars.OT_F0CPPEfilename];
|
Dawn@4
|
99 VSData.vars.OT_Formants = [vars.OT_outputdir vars.dirdelimiter vars.OT_Formantsfilename];
|
Dawn@4
|
100 VSData.vars.OT_HA = [vars.OT_outputdir vars.dirdelimiter vars.OT_Hx_Axfilename];
|
Dawn@4
|
101 VSData.vars.OT_HxHx = [vars.OT_outputdir vars.dirdelimiter vars.OT_HxHxfilename];
|
Dawn@4
|
102 VSData.vars.OT_HxAx = [vars.OT_outputdir vars.dirdelimiter vars.OT_HxAxfilename];
|
Dawn@4
|
103 VSData.vars.OT_EGG = [vars.OT_outputdir vars.dirdelimiter vars.OT_EGGfilename];
|
Dawn@4
|
104 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
105 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
106 vars = VSData.vars;
|
Dawn@4
|
107
|
Dawn@4
|
108 % default is everything selected
|
Dawn@4
|
109 if (isempty(vars.OT_selectedParams))
|
Dawn@4
|
110 vars.OT_selectedParams = 1:length(paramlist);
|
Dawn@4
|
111 VSData.vars = vars;
|
Dawn@4
|
112 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
113 end
|
Dawn@4
|
114
|
Dawn@4
|
115 set(handles.listbox_Parameters_paramlist, 'Value', vars.OT_selectedParams);
|
Dawn@4
|
116 set(handles.edit_Parameters_num, 'String', num2str(sum(vars.OT_selectedParams > 0)));
|
Dawn@4
|
117
|
Dawn@4
|
118 set(handles.edit_Parameters_matdir, 'String', vars.OT_matdir);
|
Dawn@4
|
119 set(handles.checkbox_Parameters_includesubdir, 'Value', vars.OT_includesubdir);
|
Dawn@4
|
120
|
Dawn@4
|
121 if (vars.OT_includesubdir == 1)
|
Dawn@4
|
122 func_setlistbox(handles.listbox_Parameters_matfilelist, vars.OT_matdir, 'recurse', vars, '*.mat');
|
Dawn@4
|
123 else
|
Dawn@4
|
124 func_setlistbox(handles.listbox_Parameters_matfilelist, vars.OT_matdir, 'none', vars, '*.mat');
|
Dawn@4
|
125 end
|
Dawn@4
|
126
|
Dawn@4
|
127 set(handles.edit_Parameters_Textgriddir, 'String', vars.OT_Textgriddir);
|
Dawn@4
|
128 set(handles.checkbox_Parameters_includeEGG, 'Value', vars.OT_includeEGG);
|
Dawn@4
|
129
|
Dawn@4
|
130 if (vars.OT_includeEGG == 1)
|
Dawn@4
|
131 set(handles.edit_Parameters_EGGdir, 'Enable', 'On');
|
Dawn@4
|
132 set(handles.pushbutton_Parameters_outBrowse, 'Enable', 'On');
|
Dawn@4
|
133 end
|
Dawn@4
|
134
|
Dawn@4
|
135 set(handles.edit_Parameters_EGGdir, 'String', vars.OT_EGGdir);
|
Dawn@4
|
136 set(handles.edit_Parameters_outdir, 'String', vars.OT_outputdir);
|
Dawn@4
|
137
|
Dawn@4
|
138 set(handles.checkbox_Parameters_includeTextgrids, 'Value', vars.OT_includeTextgridLabels);
|
Dawn@4
|
139 set(handles.popupmenu_Parameters_delimiter, 'Value', vars.OT_columndelimiter);
|
Dawn@4
|
140
|
Dawn@4
|
141 set(handles.radiobutton_noSegments, 'Value', vars.OT_noSegments);
|
Dawn@4
|
142 set(handles.radiobutton_useSegments, 'Value', vars.OT_useSegments);
|
Dawn@4
|
143
|
Dawn@4
|
144 if (vars.OT_useSegments == 1)
|
Dawn@4
|
145 set(handles.edit_numSegments, 'String', num2str(vars.OT_numSegments));
|
Dawn@4
|
146 set(handles.edit_numSegments, 'Enable', 'On');
|
Dawn@4
|
147 end
|
Dawn@4
|
148
|
Dawn@4
|
149 set(handles.radiobutton_Singlefile, 'Value', vars.OT_singleFile);
|
Dawn@4
|
150 set(handles.radiobutton_Multiplefiles, 'value', vars.OT_multipleFiles);
|
Dawn@4
|
151
|
Dawn@4
|
152 set(handles.edit_OutputOptions_SingleFile, 'String', vars.OT_Single);
|
Dawn@4
|
153 set(handles.edit_OutputOptions_F0CPPE, 'String', vars.OT_F0CPPE);
|
Dawn@4
|
154 set(handles.edit_OutputOptions_Formants, 'String', vars.OT_Formants);
|
Dawn@4
|
155 set(handles.edit_OutputOptions_Hx_Ax, 'String', vars.OT_HA);
|
Dawn@4
|
156 set(handles.edit_OutputOptions_HxHx, 'String', vars.OT_HxHx);
|
Dawn@4
|
157 set(handles.edit_OutputOptions_HxAx, 'String', vars.OT_HxAx);
|
Dawn@4
|
158 set(handles.edit_OutputOptions_EGG, 'String', vars.OT_EGG);
|
Dawn@4
|
159
|
Dawn@4
|
160 if (vars.OT_multipleFiles == 1)
|
Dawn@4
|
161 set(handles.edit_OutputOptions_SingleFile, 'Enable', 'Off');
|
Dawn@4
|
162 set(handles.pushbutton_OutputOptions_SingleBrowse, 'Enable', 'Off');
|
Dawn@4
|
163
|
Dawn@4
|
164 set(handles.edit_OutputOptions_F0CPPE, 'Enable', 'On');
|
Dawn@4
|
165 set(handles.edit_OutputOptions_Formants, 'Enable', 'On');
|
Dawn@4
|
166 set(handles.edit_OutputOptions_Hx_Ax, 'Enable', 'On');
|
Dawn@4
|
167 set(handles.edit_OutputOptions_HxHx, 'Enable', 'On');
|
Dawn@4
|
168 set(handles.edit_OutputOptions_HxAx, 'Enable', 'On');
|
Dawn@4
|
169 set(handles.edit_OutputOptions_EGG, 'Enable', 'On');
|
Dawn@4
|
170
|
Dawn@4
|
171 set(handles.pushbutton_OO_F0CPPEBrowse, 'Enable', 'On');
|
Dawn@4
|
172 set(handles.pushbutton_OO_FormantsBrowse, 'Enable', 'On');
|
Dawn@4
|
173 set(handles.pushbutton_OO_Hx_AxBrowse, 'Enable', 'On');
|
Dawn@4
|
174 set(handles.pushbutton_OO_HxHxBrowse, 'Enable', 'On');
|
Dawn@4
|
175 set(handles.pushbutton_OO_HxAxBrowse', 'Enable', 'On');
|
Dawn@4
|
176 set(handles.pushbutton_OO_EGGBrowse', 'Enable', 'On');
|
Dawn@4
|
177 end
|
Dawn@4
|
178
|
Dawn@4
|
179
|
Dawn@4
|
180 % --- Executes on selection change in listbox_Parameters_paramlist.
|
Dawn@4
|
181 function listbox_Parameters_paramlist_Callback(hObject, eventdata, handles)
|
Dawn@4
|
182 % hObject handle to listbox_Parameters_paramlist (see GCBO)
|
Dawn@4
|
183 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
184 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
185
|
Dawn@4
|
186 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
187 inx = get(hObject, 'Value');
|
Dawn@4
|
188
|
Dawn@4
|
189 % now add the new entries and remove the old ones which are already
|
Dawn@4
|
190 % selected
|
Dawn@4
|
191 VSData.vars.OT_selectedParams = setxor(VSData.vars.OT_selectedParams, inx);
|
Dawn@4
|
192 set(hObject, 'Value', VSData.vars.OT_selectedParams);
|
Dawn@4
|
193 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
194 set(handles.edit_Parameters_num, 'String', num2str(sum(VSData.vars.OT_selectedParams > 0)));
|
Dawn@4
|
195
|
Dawn@4
|
196
|
Dawn@4
|
197 % Hints: contents = get(hObject,'String') returns listbox_Parameters_paramlist contents as cell array
|
Dawn@4
|
198 % contents{get(hObject,'Value')} returns selected item from listbox_Parameters_paramlist
|
Dawn@4
|
199
|
Dawn@4
|
200
|
Dawn@4
|
201 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
202 function listbox_Parameters_paramlist_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
203 % hObject handle to listbox_Parameters_paramlist (see GCBO)
|
Dawn@4
|
204 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
205 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
206
|
Dawn@4
|
207 % Hint: listbox controls usually have a white background on Windows.
|
Dawn@4
|
208 % See ISPC and COMPUTER.
|
Dawn@4
|
209 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
210 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
211 end
|
Dawn@4
|
212
|
Dawn@4
|
213
|
Dawn@4
|
214
|
Dawn@4
|
215 function edit_Parameters_num_Callback(hObject, eventdata, handles)
|
Dawn@4
|
216 % hObject handle to edit_Parameters_num (see GCBO)
|
Dawn@4
|
217 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
218 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
219
|
Dawn@4
|
220 % Hints: get(hObject,'String') returns contents of edit_Parameters_num as text
|
Dawn@4
|
221 % str2double(get(hObject,'String')) returns contents of edit_Parameters_num as a double
|
Dawn@4
|
222
|
Dawn@4
|
223
|
Dawn@4
|
224 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
225 function edit_Parameters_num_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
226 % hObject handle to edit_Parameters_num (see GCBO)
|
Dawn@4
|
227 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
228 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
229
|
Dawn@4
|
230 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
231 % See ISPC and COMPUTER.
|
Dawn@4
|
232 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
233 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
234 end
|
Dawn@4
|
235
|
Dawn@4
|
236
|
Dawn@4
|
237
|
Dawn@4
|
238 function edit_Parameters_outdir_Callback(hObject, eventdata, handles)
|
Dawn@4
|
239 % hObject handle to edit_Parameters_outdir (see GCBO)
|
Dawn@4
|
240 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
241 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
242
|
Dawn@4
|
243 % Hints: get(hObject,'String') returns contents of edit_Parameters_outdir as text
|
Dawn@4
|
244 % str2double(get(hObject,'String')) returns contents of edit_Parameters_outdir as a double
|
Dawn@4
|
245 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
246 newdir = get(hObject, 'String');
|
Dawn@4
|
247 if (exist(newdir, 'dir') == 7) % new dir exists
|
Dawn@4
|
248 if (newdir(end) ~= VSData.vars.dirdelimiter)
|
Dawn@4
|
249 newdir(end + 1) = VSData.vars.dirdelimiter;
|
Dawn@4
|
250 end
|
Dawn@4
|
251 VSData.vars.OT_outputdir = newdir;
|
Dawn@4
|
252 updateOutputFiles(handles);
|
Dawn@4
|
253 else
|
Dawn@4
|
254 msgbox('Error: directory not found.', 'Error', 'error', 'modal');
|
Dawn@4
|
255 set(hObject, 'String', VSData.vars.OT_outputdir);
|
Dawn@4
|
256 end
|
Dawn@4
|
257 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
258
|
Dawn@4
|
259
|
Dawn@4
|
260 % update the filenames in Output Options
|
Dawn@4
|
261 function updateOutputFiles(handles)
|
Dawn@4
|
262 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
263
|
Dawn@4
|
264 VSData.vars.OT_Single = [VSData.vars.OT_outputdir VSData.vars.OT_singleFilename];
|
Dawn@4
|
265 VSData.vars.OT_F0CPPE = [VSData.vars.OT_outputdir VSData.vars.OT_F0CPPEfilename];
|
Dawn@4
|
266 VSData.vars.OT_Formants = [VSData.vars.OT_outputdir VSData.vars.OT_Formantsfilename];
|
Dawn@4
|
267 VSData.vars.OT_HA = [VSData.vars.OT_outputdir VSData.vars.OT_Hx_Axfilename];
|
Dawn@4
|
268 VSData.vars.OT_HxHx = [VSData.vars.OT_outputdir VSData.vars.OT_HxHxfilename];
|
Dawn@4
|
269 VSData.vars.OT_HxAx = [VSData.vars.OT_outputdir VSData.vars.OT_HxAxfilename];
|
Dawn@4
|
270 VSData.vars.OT_EGG = [VSData.vars.OT_outputdir VSData.vars.OT_EGGfilename];
|
Dawn@4
|
271
|
Dawn@4
|
272 set(handles.edit_OutputOptions_SingleFile, 'String', VSData.vars.OT_Single);
|
Dawn@4
|
273 set(handles.edit_OutputOptions_F0CPPE, 'String', VSData.vars.OT_F0CPPE);
|
Dawn@4
|
274 set(handles.edit_OutputOptions_Formants, 'String', VSData.vars.OT_Formants);
|
Dawn@4
|
275 set(handles.edit_OutputOptions_Hx_Ax, 'String', VSData.vars.OT_HA);
|
Dawn@4
|
276 set(handles.edit_OutputOptions_HxHx, 'String', VSData.vars.OT_HxHx);
|
Dawn@4
|
277 set(handles.edit_OutputOptions_HxAx, 'String', VSData.vars.OT_HxAx);
|
Dawn@4
|
278 set(handles.edit_OutputOptions_EGG, 'String', VSData.vars.OT_EGG);
|
Dawn@4
|
279 set(handles.edit_Parameters_outdir, 'String', VSData.vars.OT_outputdir);
|
Dawn@4
|
280 set(handles.edit_Parameters_EGGdir, 'String', VSData.vars.OT_EGGdir);
|
Dawn@4
|
281 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
282
|
Dawn@4
|
283
|
Dawn@4
|
284 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
285 function edit_Parameters_outdir_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
286 % hObject handle to edit_Parameters_outdir (see GCBO)
|
Dawn@4
|
287 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
288 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
289
|
Dawn@4
|
290 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
291 % See ISPC and COMPUTER.
|
Dawn@4
|
292 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
293 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
294 end
|
Dawn@4
|
295
|
Dawn@4
|
296
|
Dawn@4
|
297 % --- Executes on button press in pushbutton_Parameters_outBrowse.
|
Dawn@4
|
298 function pushbutton_Parameters_outBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
299 % hObject handle to pushbutton_Parameters_outBrowse (see GCBO)
|
Dawn@4
|
300 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
301 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
302 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
303 newdir = uigetdir(VSData.vars.OT_outputdir);
|
Dawn@4
|
304 if (ischar(newdir) == 1)
|
Dawn@4
|
305 VSData.vars.OT_outputdir = [newdir VSData.vars.dirdelimiter];
|
Dawn@4
|
306 set(handles.edit_Parameters_outdir, 'String', VSData.vars.OT_outputdir);
|
Dawn@4
|
307 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
308 updateOutputFiles(handles);
|
Dawn@4
|
309 end
|
Dawn@4
|
310
|
Dawn@4
|
311
|
Dawn@4
|
312 % --- Executes on selection change in popupmenu_Parameters_delimiter.
|
Dawn@4
|
313 function popupmenu_Parameters_delimiter_Callback(hObject, eventdata, handles)
|
Dawn@4
|
314 % hObject handle to popupmenu_Parameters_delimiter (see GCBO)
|
Dawn@4
|
315 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
316 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
317
|
Dawn@4
|
318 % Hints: contents = get(hObject,'String') returns popupmenu_Parameters_delimiter contents as cell array
|
Dawn@4
|
319 % contents{get(hObject,'Value')} returns selected item from popupmenu_Parameters_delimiter
|
Dawn@4
|
320 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
321 VSData.vars.OT_columndelimiter = get(hObject, 'Value');
|
Dawn@4
|
322 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
323
|
Dawn@4
|
324
|
Dawn@4
|
325 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
326 function popupmenu_Parameters_delimiter_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
327 % hObject handle to popupmenu_Parameters_delimiter (see GCBO)
|
Dawn@4
|
328 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
329 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
330
|
Dawn@4
|
331 % Hint: popupmenu controls usually have a white background on Windows.
|
Dawn@4
|
332 % See ISPC and COMPUTER.
|
Dawn@4
|
333 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
334 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
335 end
|
Dawn@4
|
336
|
Dawn@4
|
337
|
Dawn@4
|
338 % --- Executes on button press in checkbox_Parameters_includeEGG.
|
Dawn@4
|
339 function checkbox_Parameters_includeEGG_Callback(hObject, eventdata, handles)
|
Dawn@4
|
340 % hObject handle to checkbox_Parameters_includeEGG (see GCBO)
|
Dawn@4
|
341 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
342 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
343
|
Dawn@4
|
344 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
345
|
Dawn@4
|
346 if (get(hObject, 'Value') == 1)
|
Dawn@4
|
347 set(handles.edit_Parameters_EGGdir, 'Enable', 'On');
|
Dawn@4
|
348 set(handles.pushbutton_Parameters_EGGBrowse, 'Enable', 'On');
|
Dawn@4
|
349 VSData.vars.OT_includeEGG = 1;
|
Dawn@4
|
350 else
|
Dawn@4
|
351 set(handles.edit_Parameters_EGGdir, 'Enable', 'Off');
|
Dawn@4
|
352 set(handles.pushbutton_Parameters_EGGBrowse, 'Enable', 'Off');
|
Dawn@4
|
353 VSData.vars.OT_includeEGG = 0;
|
Dawn@4
|
354 end
|
Dawn@4
|
355 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
356
|
Dawn@4
|
357
|
Dawn@4
|
358 function edit_Parameters_matdir_Callback(hObject, eventdata, handles)
|
Dawn@4
|
359 % hObject handle to edit_Parameters_matdir (see GCBO)
|
Dawn@4
|
360 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
361 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
362
|
Dawn@4
|
363 % Hints: get(hObject,'String') returns contents of edit_Parameters_matdir as text
|
Dawn@4
|
364 % str2double(get(hObject,'String')) returns contents of edit_Parameters_matdir as a double
|
Dawn@4
|
365 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
366 newdir = get(hObject, 'String');
|
Dawn@4
|
367 if (exist(newdir, 'dir') == 7) % new dir exists
|
Dawn@4
|
368 VSData = func_setmatdir('OT_matdir', newdir, VSData);
|
Dawn@4
|
369 set(handles.edit_Parameters_Textgriddir, 'String', newdir);
|
Dawn@4
|
370
|
Dawn@4
|
371 if (newdir(end) ~= VSData.vars.dirdelimiter)
|
Dawn@4
|
372 newdir(end + 1) = VSData.vars.dirdelimiter;
|
Dawn@4
|
373 end
|
Dawn@4
|
374 VSData.vars.OT_outputdir = newdir;
|
Dawn@4
|
375 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
376 updateOutputFiles(handles);
|
Dawn@4
|
377 else
|
Dawn@4
|
378 msgbox('Error: directory not found.', 'Error', 'error', 'modal');
|
Dawn@4
|
379 set(hObject, 'String', VSData.vars.OT_matdir);
|
Dawn@4
|
380 end
|
Dawn@4
|
381 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
382
|
Dawn@4
|
383
|
Dawn@4
|
384 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
385 function edit_Parameters_matdir_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
386 % hObject handle to edit_Parameters_matdir (see GCBO)
|
Dawn@4
|
387 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
388 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
389
|
Dawn@4
|
390 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
391 % See ISPC and COMPUTER.
|
Dawn@4
|
392 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
393 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
394 end
|
Dawn@4
|
395
|
Dawn@4
|
396
|
Dawn@4
|
397 % --- Executes on button press in pushbutton_Parameters_matBrowse.
|
Dawn@4
|
398 function pushbutton_Parameters_matBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
399 % hObject handle to pushbutton_Parameters_matBrowse (see GCBO)
|
Dawn@4
|
400 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
401 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
402 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
403 newdir = uigetdir(VSData.vars.OT_matdir);
|
Dawn@4
|
404 if (ischar(newdir) == 1)
|
Dawn@4
|
405 VSData = func_setmatdir('OT_matdir', newdir, VSData);
|
Dawn@4
|
406 set(handles.edit_Parameters_matdir, 'String', newdir);
|
Dawn@4
|
407 set(handles.edit_Parameters_Textgriddir, 'String', newdir);
|
Dawn@4
|
408
|
Dawn@4
|
409 if (newdir(end) ~= VSData.vars.dirdelimiter)
|
Dawn@4
|
410 newdir(end + 1) = VSData.vars.dirdelimiter;
|
Dawn@4
|
411 end
|
Dawn@4
|
412 VSData.vars.OT_outputdir = newdir;
|
Dawn@4
|
413 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
414 updateOutputFiles(handles);
|
Dawn@4
|
415
|
Dawn@4
|
416 if (get(handles.checkbox_Parameters_includesubdir, 'Value') == 1)
|
Dawn@4
|
417 func_setlistbox(handles.listbox_Parameters_matfilelist, VSData.vars.OT_matdir, 'recurse', VSData.vars, '*.mat');
|
Dawn@4
|
418 else
|
Dawn@4
|
419 func_setlistbox(handles.listbox_Parameters_matfilelist, VSData.vars.OT_matdir, 'none', VSData.vars, '*.mat');
|
Dawn@4
|
420 end
|
Dawn@4
|
421 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
422 end
|
Dawn@4
|
423
|
Dawn@4
|
424
|
Dawn@4
|
425
|
Dawn@4
|
426 function edit_Parameters_Textgriddir_Callback(hObject, eventdata, handles)
|
Dawn@4
|
427 % hObject handle to edit_Parameters_Textgriddir (see GCBO)
|
Dawn@4
|
428 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
429 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
430
|
Dawn@4
|
431 % Hints: get(hObject,'String') returns contents of edit_Parameters_Textgriddir as text
|
Dawn@4
|
432 % str2double(get(hObject,'String')) returns contents of edit_Parameters_Textgriddir as a double
|
Dawn@4
|
433 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
434 newdir = get(hObject, 'String');
|
Dawn@4
|
435 if (exist(newdir, 'dir') == 7) % new dir exists
|
Dawn@4
|
436 VSData.vars.OT_Textgriddir = newdir;
|
Dawn@4
|
437 else
|
Dawn@4
|
438 msgbox('Error: directory not found.', 'Error', 'error', 'modal');
|
Dawn@4
|
439 set(hObject, 'String', VSData.vars.OT_Textgriddir);
|
Dawn@4
|
440 end
|
Dawn@4
|
441 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
442
|
Dawn@4
|
443
|
Dawn@4
|
444 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
445 function edit_Parameters_Textgriddir_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
446 % hObject handle to edit_Parameters_Textgriddir (see GCBO)
|
Dawn@4
|
447 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
448 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
449
|
Dawn@4
|
450 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
451 % See ISPC and COMPUTER.
|
Dawn@4
|
452 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
453 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
454 end
|
Dawn@4
|
455
|
Dawn@4
|
456
|
Dawn@4
|
457 % --- Executes on button press in pushbutton_Parameters_TextgridBrowse.
|
Dawn@4
|
458 function pushbutton_Parameters_TextgridBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
459 % hObject handle to pushbutton_Parameters_TextgridBrowse (see GCBO)
|
Dawn@4
|
460 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
461 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
462 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
463 newdir = uigetdir(VSData.vars.OT_Textgriddir);
|
Dawn@4
|
464 if (ischar(newdir) == 1)
|
Dawn@4
|
465 VSData.vars.OT_Textgriddir = newdir;
|
Dawn@4
|
466 set(handles.edit_Parameters_Textgriddir, 'String', newdir);
|
Dawn@4
|
467 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
468 end
|
Dawn@4
|
469
|
Dawn@4
|
470
|
Dawn@4
|
471 function edit_Parameters_EGGdir_Callback(hObject, eventdata, handles)
|
Dawn@4
|
472 % hObject handle to edit_Parameters_EGGdir (see GCBO)
|
Dawn@4
|
473 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
474 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
475
|
Dawn@4
|
476 % Hints: get(hObject,'String') returns contents of edit_Parameters_EGGdir as text
|
Dawn@4
|
477 % str2double(get(hObject,'String')) returns contents of edit_Parameters_EGGdir as a double
|
Dawn@4
|
478 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
479 newdir = get(hObject, 'String');
|
Dawn@4
|
480 if (exist(newdir, 'dir') == 7) % new dir exists
|
Dawn@4
|
481 VSData.vars.OT_EGGdir = newdir;
|
Dawn@4
|
482 else
|
Dawn@4
|
483 msgbox('Error: directory not found.', 'Error', 'error', 'modal');
|
Dawn@4
|
484 set(hObject, 'String', VSData.vars.OT_EGGdir);
|
Dawn@4
|
485 end
|
Dawn@4
|
486 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
487
|
Dawn@4
|
488
|
Dawn@4
|
489 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
490 function edit_Parameters_EGGdir_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
491 % hObject handle to edit_Parameters_EGGdir (see GCBO)
|
Dawn@4
|
492 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
493 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
494
|
Dawn@4
|
495 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
496 % See ISPC and COMPUTER.
|
Dawn@4
|
497 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
498 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
499 end
|
Dawn@4
|
500
|
Dawn@4
|
501
|
Dawn@4
|
502 % --- Executes on button press in pushbutton_Parameters_EGGBrowse.
|
Dawn@4
|
503 function pushbutton_Parameters_EGGBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
504 % hObject handle to pushbutton_Parameters_EGGBrowse (see GCBO)
|
Dawn@4
|
505 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
506 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
507 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
508 newdir = uigetdir(VSData.vars.OT_EGGdir);
|
Dawn@4
|
509 if (ischar(newdir) == 1)
|
Dawn@4
|
510 set(handles.edit_Parameters_EGGdir, 'String', newdir);
|
Dawn@4
|
511 VSData.vars.OT_EGGdir = newdir;
|
Dawn@4
|
512 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
513 end
|
Dawn@4
|
514
|
Dawn@4
|
515
|
Dawn@4
|
516 function edit_numSegments_Callback(hObject, eventdata, handles)
|
Dawn@4
|
517 % hObject handle to edit_numSegments (see GCBO)
|
Dawn@4
|
518 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
519 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
520
|
Dawn@4
|
521 % Hints: get(hObject,'String') returns contents of edit_numSegments as text
|
Dawn@4
|
522 % str2double(get(hObject,'String')) returns contents of edit_numSegments as a double
|
Dawn@4
|
523
|
Dawn@4
|
524 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
525 num = str2double(get(hObject, 'String'));
|
Dawn@4
|
526
|
Dawn@4
|
527 if (~isnan(num))
|
Dawn@4
|
528 num = round(num);
|
Dawn@4
|
529 if (num < 1)
|
Dawn@4
|
530 num = 1;
|
Dawn@4
|
531 elseif (num > 999)
|
Dawn@4
|
532 num = 999;
|
Dawn@4
|
533 end
|
Dawn@4
|
534
|
Dawn@4
|
535 VSData.vars.OT_numSegments = num;
|
Dawn@4
|
536
|
Dawn@4
|
537 set(hObject, 'String', num2str(VSData.vars.OT_numSegments));
|
Dawn@4
|
538 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
539 else
|
Dawn@4
|
540 set(hObject, 'String', num2str(VSData.vars.OT_numSegments));
|
Dawn@4
|
541 end
|
Dawn@4
|
542
|
Dawn@4
|
543
|
Dawn@4
|
544 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
545 function edit_numSegments_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
546 % hObject handle to edit_numSegments (see GCBO)
|
Dawn@4
|
547 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
548 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
549
|
Dawn@4
|
550 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
551 % See ISPC and COMPUTER.
|
Dawn@4
|
552 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
553 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
554 end
|
Dawn@4
|
555
|
Dawn@4
|
556
|
Dawn@4
|
557
|
Dawn@4
|
558 function edit_OutputOptions_SingleFile_Callback(hObject, eventdata, handles)
|
Dawn@4
|
559 % hObject handle to edit_OutputOptions_SingleFile (see GCBO)
|
Dawn@4
|
560 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
561 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
562 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
563
|
Dawn@4
|
564 str = get(hObject, 'String');
|
Dawn@4
|
565 [pathname, filename, ext] = fileparts(str);
|
Dawn@4
|
566
|
Dawn@4
|
567 if (exist(pathname, 'dir') == 7)
|
Dawn@4
|
568 VSData.vars.OT_singleFilename = [filename ext];
|
Dawn@4
|
569 VSData.vars.OT_Single = [pathname VSData.vars.dirdelimiter VSData.vars.OT_singleFilename];
|
Dawn@4
|
570 end
|
Dawn@4
|
571
|
Dawn@4
|
572 set(hObject, 'String', VSData.vars.OT_Single);
|
Dawn@4
|
573 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
574
|
Dawn@4
|
575
|
Dawn@4
|
576 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
577 function edit_OutputOptions_SingleFile_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
578 % hObject handle to edit_OutputOptions_SingleFile (see GCBO)
|
Dawn@4
|
579 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
580 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
581
|
Dawn@4
|
582 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
583 % See ISPC and COMPUTER.
|
Dawn@4
|
584 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
585 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
586 end
|
Dawn@4
|
587
|
Dawn@4
|
588
|
Dawn@4
|
589 % --- Executes on button press in pushbutton_OutputOptions_SingleBrowse.
|
Dawn@4
|
590 function pushbutton_OutputOptions_SingleBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
591 % hObject handle to pushbutton_OutputOptions_SingleBrowse (see GCBO)
|
Dawn@4
|
592 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
593 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
594 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
595 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_singleFilename);
|
Dawn@4
|
596 if (ischar(newfile) == 1)
|
Dawn@4
|
597 set(handles.edit_OutputOptions_SingleFile, 'String', [newpath newfile]);
|
Dawn@4
|
598 VSData.vars.OT_Single = [newpath newfile];
|
Dawn@4
|
599 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
600 end
|
Dawn@4
|
601
|
Dawn@4
|
602
|
Dawn@4
|
603 function edit_OutputOptions_F0CPPE_Callback(hObject, eventdata, handles)
|
Dawn@4
|
604 % hObject handle to edit_OutputOptions_F0CPPE (see GCBO)
|
Dawn@4
|
605 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
606 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
607 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
608
|
Dawn@4
|
609 str = get(hObject, 'String');
|
Dawn@4
|
610 [pathname, filename, ext] = fileparts(str);
|
Dawn@4
|
611
|
Dawn@4
|
612 if (exist(pathname, 'dir') == 7)
|
Dawn@4
|
613 VSData.vars.OT_F0CPPEfilename = [filename ext];
|
Dawn@4
|
614 VSData.vars.OT_F0CPPE = [pathname VSData.vars.dirdelimiter VSData.vars.OT_F0CPPEfilename];
|
Dawn@4
|
615 end
|
Dawn@4
|
616
|
Dawn@4
|
617 set(hObject, 'String', VSData.vars.OT_F0CPPE);
|
Dawn@4
|
618 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
619
|
Dawn@4
|
620
|
Dawn@4
|
621 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
622 function edit_OutputOptions_F0CPPE_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
623 % hObject handle to edit_OutputOptions_F0CPPE (see GCBO)
|
Dawn@4
|
624 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
625 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
626
|
Dawn@4
|
627 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
628 % See ISPC and COMPUTER.
|
Dawn@4
|
629 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
630 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
631 end
|
Dawn@4
|
632
|
Dawn@4
|
633
|
Dawn@4
|
634
|
Dawn@4
|
635 function edit_OutputOptions_Formants_Callback(hObject, eventdata, handles)
|
Dawn@4
|
636 % hObject handle to edit_OutputOptions_Formants (see GCBO)
|
Dawn@4
|
637 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
638 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
639 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
640
|
Dawn@4
|
641 str = get(hObject, 'String');
|
Dawn@4
|
642 [pathname, filename, ext] = fileparts(str);
|
Dawn@4
|
643
|
Dawn@4
|
644 if (exist(pathname, 'dir') == 7)
|
Dawn@4
|
645 VSData.vars.OT_Formantsfilename = [filename ext];
|
Dawn@4
|
646 VSData.vars.OT_Formants = [pathname VSData.vars.dirdelimiter VSData.vars.OT_Formantsfilename];
|
Dawn@4
|
647 end
|
Dawn@4
|
648
|
Dawn@4
|
649 set(hObject, 'String', VSData.vars.OT_Formants);
|
Dawn@4
|
650 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
651
|
Dawn@4
|
652
|
Dawn@4
|
653 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
654 function edit_OutputOptions_Formants_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
655 % hObject handle to edit_OutputOptions_Formants (see GCBO)
|
Dawn@4
|
656 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
657 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
658
|
Dawn@4
|
659 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
660 % See ISPC and COMPUTER.
|
Dawn@4
|
661 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
662 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
663 end
|
Dawn@4
|
664
|
Dawn@4
|
665
|
Dawn@4
|
666 function edit_OutputOptions_Hx_Ax_Callback(hObject, eventdata, handles)
|
Dawn@4
|
667 % hObject handle to edit_OutputOptions_Hx_Ax (see GCBO)
|
Dawn@4
|
668 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
669 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
670 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
671
|
Dawn@4
|
672 str = get(hObject, 'String');
|
Dawn@4
|
673 [pathname, filename, ext] = fileparts(str);
|
Dawn@4
|
674
|
Dawn@4
|
675 if (exist(pathname, 'dir') == 7)
|
Dawn@4
|
676 VSData.vars.OT_Hx_Axfilename = [filename ext];
|
Dawn@4
|
677 VSData.vars.OT_HA = [pathname VSData.vars.dirdelimiter VSData.vars.OT_Hx_Axfilename];
|
Dawn@4
|
678 end
|
Dawn@4
|
679
|
Dawn@4
|
680 set(hObject, 'String', VSData.vars.OT_HA);
|
Dawn@4
|
681 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
682
|
Dawn@4
|
683
|
Dawn@4
|
684 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
685 function edit_OutputOptions_Hx_Ax_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
686 % hObject handle to edit_OutputOptions_Hx_Ax (see GCBO)
|
Dawn@4
|
687 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
688 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
689
|
Dawn@4
|
690 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
691 % See ISPC and COMPUTER.
|
Dawn@4
|
692 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
693 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
694 end
|
Dawn@4
|
695
|
Dawn@4
|
696
|
Dawn@4
|
697
|
Dawn@4
|
698 function edit_OutputOptions_HxHx_Callback(hObject, eventdata, handles)
|
Dawn@4
|
699 % hObject handle to edit_OutputOptions_HxHx (see GCBO)
|
Dawn@4
|
700 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
701 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
702 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
703
|
Dawn@4
|
704 str = get(hObject, 'String');
|
Dawn@4
|
705 [pathname, filename, ext] = fileparts(str);
|
Dawn@4
|
706
|
Dawn@4
|
707 if (exist(pathname, 'dir') == 7)
|
Dawn@4
|
708 VSData.vars.OT_HxHxfilename = [filename ext];
|
Dawn@4
|
709 VSData.vars.OT_HxHx = [pathname VSData.vars.dirdelimiter VSData.vars.OT_HxHxfilename];
|
Dawn@4
|
710 end
|
Dawn@4
|
711
|
Dawn@4
|
712 set(hObject, 'String', VSData.vars.OT_HxHx);
|
Dawn@4
|
713 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
714
|
Dawn@4
|
715
|
Dawn@4
|
716 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
717 function edit_OutputOptions_HxHx_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
718 % hObject handle to edit_OutputOptions_HxHx (see GCBO)
|
Dawn@4
|
719 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
720 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
721
|
Dawn@4
|
722 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
723 % See ISPC and COMPUTER.
|
Dawn@4
|
724 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
725 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
726 end
|
Dawn@4
|
727
|
Dawn@4
|
728
|
Dawn@4
|
729
|
Dawn@4
|
730 function edit_OutputOptions_HxAx_Callback(hObject, eventdata, handles)
|
Dawn@4
|
731 % hObject handle to edit_OutputOptions_HxAx (see GCBO)
|
Dawn@4
|
732 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
733 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
734 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
735
|
Dawn@4
|
736 str = get(hObject, 'String');
|
Dawn@4
|
737 [pathname, filename, ext] = fileparts(str);
|
Dawn@4
|
738
|
Dawn@4
|
739 if (exist(pathname, 'dir') == 7)
|
Dawn@4
|
740 VSData.vars.OT_HxAxfilename = [filename ext];
|
Dawn@4
|
741 VSData.vars.OT_HxAx = [pathname VSData.vars.dirdelimiter VSData.vars.OT_HxAxfilename];
|
Dawn@4
|
742 end
|
Dawn@4
|
743
|
Dawn@4
|
744 set(hObject, 'String', VSData.vars.OT_HxAx);
|
Dawn@4
|
745 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
746
|
Dawn@4
|
747
|
Dawn@4
|
748 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
749 function edit_OutputOptions_HxAx_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
750 % hObject handle to edit_OutputOptions_HxAx (see GCBO)
|
Dawn@4
|
751 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
752 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
753
|
Dawn@4
|
754 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
755 % See ISPC and COMPUTER.
|
Dawn@4
|
756 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
757 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
758 end
|
Dawn@4
|
759
|
Dawn@4
|
760
|
Dawn@4
|
761 % --- Executes on button press in pushbutton_OO_F0CPPEBrowse.
|
Dawn@4
|
762 function pushbutton_OO_F0CPPEBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
763 % hObject handle to pushbutton_OO_F0CPPEBrowse (see GCBO)
|
Dawn@4
|
764 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
765 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
766 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
767 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_F0CPPEfilename);
|
Dawn@4
|
768 if (ischar(newfile) == 1)
|
Dawn@4
|
769 set(handles.edit_OutputOptions_F0CPPE, 'String', [newpath newfile]);
|
Dawn@4
|
770 VSData.vars.OT_F0CPPE = [newpath newfile];
|
Dawn@4
|
771 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
772 end
|
Dawn@4
|
773
|
Dawn@4
|
774
|
Dawn@4
|
775 % --- Executes on button press in pushbutton_OO_FormantsBrowse.
|
Dawn@4
|
776 function pushbutton_OO_FormantsBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
777 % hObject handle to pushbutton_OO_FormantsBrowse (see GCBO)
|
Dawn@4
|
778 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
779 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
780 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
781 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_Formantsfilename);
|
Dawn@4
|
782 if (ischar(newfile) == 1)
|
Dawn@4
|
783 set(handles.edit_OutputOptions_Formants, 'String', [newpath newfile]);
|
Dawn@4
|
784 VSData.vars.OT_Formants = [newpath newfile];
|
Dawn@4
|
785 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
786 end
|
Dawn@4
|
787
|
Dawn@4
|
788
|
Dawn@4
|
789 % --- Executes on button press in pushbutton_OO_Hx_AxBrowse.
|
Dawn@4
|
790 function pushbutton_OO_Hx_AxBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
791 % hObject handle to pushbutton_OO_Hx_AxBrowse (see GCBO)
|
Dawn@4
|
792 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
793 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
794 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
795 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_Hx_Axfilename);
|
Dawn@4
|
796 if (ischar(newfile) == 1)
|
Dawn@4
|
797 set(handles.edit_OutputOptions_Hx_Ax, 'String', [newpath newfile]);
|
Dawn@4
|
798 VSData.vars.OT_HA = [newpath newfile];
|
Dawn@4
|
799 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
800 end
|
Dawn@4
|
801
|
Dawn@4
|
802
|
Dawn@4
|
803 % --- Executes on button press in pushbutton_OO_HxHxBrowse.
|
Dawn@4
|
804 function pushbutton_OO_HxHxBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
805 % hObject handle to pushbutton_OO_HxHxBrowse (see GCBO)
|
Dawn@4
|
806 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
807 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
808 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
809 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_HxHxfilename);
|
Dawn@4
|
810 if (ischar(newfile) == 1)
|
Dawn@4
|
811 set(handles.edit_OutputOptions_HxHx, 'String', [newpath newfile]);
|
Dawn@4
|
812 VSData.vars.OT_HxHx = [newpath newfile];
|
Dawn@4
|
813 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
814 end
|
Dawn@4
|
815
|
Dawn@4
|
816
|
Dawn@4
|
817 % --- Executes on button press in pushbutton_OO_HxAxBrowse.
|
Dawn@4
|
818 function pushbutton_OO_HxAxBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
819 % hObject handle to pushbutton_OO_HxAxBrowse (see GCBO)
|
Dawn@4
|
820 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
821 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
822 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
823 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_HxAxfilename);
|
Dawn@4
|
824 if (ischar(newfile) == 1)
|
Dawn@4
|
825 set(handles.edit_OutputOptions_HxAx, 'String', [newpath newfile]);
|
Dawn@4
|
826 VSData.vars.OT_HxAx = [newpath newfile];
|
Dawn@4
|
827 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
828 end
|
Dawn@4
|
829
|
Dawn@4
|
830
|
Dawn@4
|
831 function edit_OutputOptions_EGG_Callback(hObject, eventdata, handles)
|
Dawn@4
|
832 % hObject handle to edit_OutputOptions_EGG (see GCBO)
|
Dawn@4
|
833 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
834 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
835 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
836
|
Dawn@4
|
837 str = get(hObject, 'String');
|
Dawn@4
|
838 [pathname, filename, ext] = fileparts(str);
|
Dawn@4
|
839
|
Dawn@4
|
840 if (exist(pathname, 'dir') == 7)
|
Dawn@4
|
841 VSData.vars.OT_EGGfilename = [filename ext];
|
Dawn@4
|
842 VSData.vars.OT_EGG = [pathname VSData.vars.dirdelimiter VSData.vars.OT_EGGfilename];
|
Dawn@4
|
843 end
|
Dawn@4
|
844
|
Dawn@4
|
845 set(hObject, 'String', VSData.vars.OT_EGG);
|
Dawn@4
|
846 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
847
|
Dawn@4
|
848
|
Dawn@4
|
849 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
850 function edit_OutputOptions_EGG_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
851 % hObject handle to edit_OutputOptions_EGG (see GCBO)
|
Dawn@4
|
852 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
853 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
854
|
Dawn@4
|
855 % Hint: edit controls usually have a white background on Windows.
|
Dawn@4
|
856 % See ISPC and COMPUTER.
|
Dawn@4
|
857 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
858 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
859 end
|
Dawn@4
|
860
|
Dawn@4
|
861
|
Dawn@4
|
862 % --- Executes on button press in pushbutton_OO_EGGBrowse.
|
Dawn@4
|
863 function pushbutton_OO_EGGBrowse_Callback(hObject, eventdata, handles)
|
Dawn@4
|
864 % hObject handle to pushbutton_OO_EGGBrowse (see GCBO)
|
Dawn@4
|
865 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
866 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
867 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
868 [newfile newpath] = uiputfile({'*.txt', '*.txt'}, 'Select Output File', VSData.vars.OT_EGGfilename);
|
Dawn@4
|
869 if (ischar(newfile) == 1)
|
Dawn@4
|
870 set(handles.edit_OutputOptions_EGG, 'String', [newpath newfile]);
|
Dawn@4
|
871 VSData.vars.OT_EGG = [newpath newfile];
|
Dawn@4
|
872 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
873 end
|
Dawn@4
|
874
|
Dawn@4
|
875 % --- Executes on button press in togglebutton_Start.
|
Dawn@4
|
876 function togglebutton_Start_Callback(hObject, eventdata, handles)
|
Dawn@4
|
877 % hObject handle to togglebutton_Start (see GCBO)
|
Dawn@4
|
878 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
879 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
880
|
Dawn@4
|
881 % Hint: get(hObject,'Value') returns toggle state of togglebutton_Start
|
Dawn@4
|
882 if (get(hObject, 'Value') == 1) % start writing output
|
Dawn@4
|
883 set(hObject, 'String', 'Processing...', 'ForegroundColor', 'red');
|
Dawn@4
|
884
|
Dawn@4
|
885 OutputToText(handles);
|
Dawn@4
|
886 set(hObject, 'String', 'Start!', 'ForegroundColor', 'black', 'Value', 0);
|
Dawn@4
|
887
|
Dawn@4
|
888 end
|
Dawn@4
|
889
|
Dawn@4
|
890
|
Dawn@4
|
891
|
Dawn@4
|
892
|
Dawn@4
|
893 % --- Executes on button press in checkbox_Parameters_includeTextgrids.
|
Dawn@4
|
894 function checkbox_Parameters_includeTextgrids_Callback(hObject, eventdata, handles)
|
Dawn@4
|
895 % hObject handle to checkbox_Parameters_includeTextgrids (see GCBO)
|
Dawn@4
|
896 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
897 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
898
|
Dawn@4
|
899 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
900 VSData.vars.OT_includeTextgridLabels = get(hObject, 'Value');
|
Dawn@4
|
901 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
902
|
Dawn@4
|
903
|
Dawn@4
|
904
|
Dawn@4
|
905 function segments_buttongroup_SelectionChangeFcn(hObject, eventdata)
|
Dawn@4
|
906 handles = guidata(hObject);
|
Dawn@4
|
907 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
908
|
Dawn@4
|
909 switch (get(eventdata.NewValue, 'Tag'))
|
Dawn@4
|
910 case 'radiobutton_noSegments'
|
Dawn@4
|
911 VSData.vars.OT_noSegments = 1;
|
Dawn@4
|
912 VSData.vars.OT_useSegments = 0;
|
Dawn@4
|
913 set(handles.edit_numSegments, 'Enable', 'Off');
|
Dawn@4
|
914 case 'radiobutton_useSegments'
|
Dawn@4
|
915 VSData.vars.OT_noSegments = 0;
|
Dawn@4
|
916 VSData.vars.OT_useSegments = 1;
|
Dawn@4
|
917 set(handles.edit_numSegments, 'Enable', 'On');
|
Dawn@4
|
918 end
|
Dawn@4
|
919 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
920
|
Dawn@4
|
921
|
Dawn@4
|
922 %
|
Dawn@4
|
923 function outputoptions_buttongroup_SelectionChangeFcn(hObject, eventdata)
|
Dawn@4
|
924 handles = guidata(hObject);
|
Dawn@4
|
925 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
926
|
Dawn@4
|
927 switch (get(eventdata.NewValue, 'Tag'))
|
Dawn@4
|
928 case 'radiobutton_Singlefile'
|
Dawn@4
|
929 VSData.vars.OT_singleFile = 1;
|
Dawn@4
|
930 VSData.vars.OT_multipleFiles = 0;
|
Dawn@4
|
931
|
Dawn@4
|
932 set(handles.edit_OutputOptions_SingleFile, 'Enable', 'On');
|
Dawn@4
|
933 set(handles.pushbutton_OutputOptions_SingleBrowse, 'Enable', 'On');
|
Dawn@4
|
934
|
Dawn@4
|
935 set(handles.edit_OutputOptions_F0CPPE, 'Enable', 'Off');
|
Dawn@4
|
936 set(handles.edit_OutputOptions_Formants, 'Enable', 'Off');
|
Dawn@4
|
937 set(handles.edit_OutputOptions_Hx_Ax, 'Enable', 'Off');
|
Dawn@4
|
938 set(handles.edit_OutputOptions_HxHx, 'Enable', 'Off');
|
Dawn@4
|
939 set(handles.edit_OutputOptions_HxAx, 'Enable', 'Off');
|
Dawn@4
|
940 set(handles.edit_OutputOptions_EGG, 'Enable', 'Off');
|
Dawn@4
|
941
|
Dawn@4
|
942 set(handles.pushbutton_OO_F0CPPEBrowse, 'Enable', 'Off');
|
Dawn@4
|
943 set(handles.pushbutton_OO_FormantsBrowse, 'Enable', 'Off');
|
Dawn@4
|
944 set(handles.pushbutton_OO_Hx_AxBrowse, 'Enable', 'Off');
|
Dawn@4
|
945 set(handles.pushbutton_OO_HxHxBrowse, 'Enable', 'Off');
|
Dawn@4
|
946 set(handles.pushbutton_OO_HxAxBrowse, 'Enable', 'Off');
|
Dawn@4
|
947 set(handles.pushbutton_OO_EGGBrowse, 'Enable', 'Off');
|
Dawn@4
|
948
|
Dawn@4
|
949 case 'radiobutton_Multiplefiles'
|
Dawn@4
|
950 VSData.vars.OT_singleFile = 0;
|
Dawn@4
|
951 VSData.vars.OT_multipleFiles = 1;
|
Dawn@4
|
952
|
Dawn@4
|
953 set(handles.edit_OutputOptions_SingleFile, 'Enable', 'Off');
|
Dawn@4
|
954 set(handles.pushbutton_OutputOptions_SingleBrowse, 'Enable', 'Off');
|
Dawn@4
|
955
|
Dawn@4
|
956 set(handles.edit_OutputOptions_F0CPPE, 'Enable', 'On');
|
Dawn@4
|
957 set(handles.edit_OutputOptions_Formants, 'Enable', 'On');
|
Dawn@4
|
958 set(handles.edit_OutputOptions_Hx_Ax, 'Enable', 'On');
|
Dawn@4
|
959 set(handles.edit_OutputOptions_HxHx, 'Enable', 'On');
|
Dawn@4
|
960 set(handles.edit_OutputOptions_HxAx, 'Enable', 'On');
|
Dawn@4
|
961 set(handles.edit_OutputOptions_EGG, 'Enable', 'On');
|
Dawn@4
|
962
|
Dawn@4
|
963 set(handles.pushbutton_OO_F0CPPEBrowse, 'Enable', 'On');
|
Dawn@4
|
964 set(handles.pushbutton_OO_FormantsBrowse, 'Enable', 'On');
|
Dawn@4
|
965 set(handles.pushbutton_OO_Hx_AxBrowse, 'Enable', 'On');
|
Dawn@4
|
966 set(handles.pushbutton_OO_HxHxBrowse, 'Enable', 'On');
|
Dawn@4
|
967 set(handles.pushbutton_OO_HxAxBrowse, 'Enable', 'On');
|
Dawn@4
|
968 set(handles.pushbutton_OO_EGGBrowse, 'Enable', 'On');
|
Dawn@4
|
969 end
|
Dawn@4
|
970 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
971
|
Dawn@4
|
972
|
Dawn@4
|
973 % --- Executes on selection change in listbox_Parameters_matfilelist.
|
Dawn@4
|
974 function listbox_Parameters_matfilelist_Callback(hObject, eventdata, handles)
|
Dawn@4
|
975 % hObject handle to listbox_Parameters_matfilelist (see GCBO)
|
Dawn@4
|
976 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
977 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
978
|
Dawn@4
|
979 % Hints: contents = get(hObject,'String') returns listbox_Parameters_matfilelist contents as cell array
|
Dawn@4
|
980 % contents{get(hObject,'Value')} returns selected item from listbox_Parameters_matfilelist
|
Dawn@4
|
981
|
Dawn@4
|
982
|
Dawn@4
|
983 % --- Executes during object creation, after setting all properties.
|
Dawn@4
|
984 function listbox_Parameters_matfilelist_CreateFcn(hObject, eventdata, handles)
|
Dawn@4
|
985 % hObject handle to listbox_Parameters_matfilelist (see GCBO)
|
Dawn@4
|
986 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
987 % handles empty - handles not created until after all CreateFcns called
|
Dawn@4
|
988
|
Dawn@4
|
989 % Hint: listbox controls usually have a white background on Windows.
|
Dawn@4
|
990 % See ISPC and COMPUTER.
|
Dawn@4
|
991 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
|
Dawn@4
|
992 set(hObject,'BackgroundColor','white');
|
Dawn@4
|
993 end
|
Dawn@4
|
994
|
Dawn@4
|
995
|
Dawn@4
|
996 % --- Executes on button press in checkbox_Parameters_includesubdir.
|
Dawn@4
|
997 function checkbox_Parameters_includesubdir_Callback(hObject, eventdata, handles)
|
Dawn@4
|
998 % hObject handle to checkbox_Parameters_includesubdir (see GCBO)
|
Dawn@4
|
999 % eventdata reserved - to be defined in a future version of MATLAB
|
Dawn@4
|
1000 % handles structure with handles and user data (see GUIDATA)
|
Dawn@4
|
1001
|
Dawn@4
|
1002 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
1003 VSData.vars.OT_includesubdir = get(hObject, 'Value');
|
Dawn@4
|
1004 guidata(handles.VSHandle, VSData);
|
Dawn@4
|
1005 if (VSData.vars.OT_includesubdir == 1)
|
Dawn@4
|
1006 func_setlistbox(handles.listbox_Parameters_matfilelist, VSData.vars.OT_matdir, 'recurse', VSData.vars, '*.mat');
|
Dawn@4
|
1007 else
|
Dawn@4
|
1008 func_setlistbox(handles.listbox_Parameters_matfilelist, VSData.vars.OT_matdir, 'none', VSData.vars, '*.mat');
|
Dawn@4
|
1009 end
|
Dawn@4
|
1010
|
Dawn@4
|
1011
|
Dawn@4
|
1012
|
Dawn@4
|
1013 % executes on key press
|
Dawn@4
|
1014 function matfiles_listbox_KeyPressFcn(hObject, eventdata)
|
Dawn@4
|
1015 handles = guidata(hObject);
|
Dawn@4
|
1016
|
Dawn@4
|
1017 key = double(get(gcbf, 'CurrentCharacter'));
|
Dawn@4
|
1018 if (gcbo == handles.listbox_Parameters_matfilelist)
|
Dawn@4
|
1019 if (key == 127) % delete key
|
Dawn@4
|
1020
|
Dawn@4
|
1021 inx = get(handles.listbox_Parameters_matfilelist, 'Value');
|
Dawn@4
|
1022 contents = get(handles.listbox_Parameters_matfilelist, 'String');
|
Dawn@4
|
1023
|
Dawn@4
|
1024 %nothing to do
|
Dawn@4
|
1025 if (isempty(contents))
|
Dawn@4
|
1026 return;
|
Dawn@4
|
1027 end
|
Dawn@4
|
1028
|
Dawn@4
|
1029 newinx = setxor(inx, [1:length(contents)]);
|
Dawn@4
|
1030
|
Dawn@4
|
1031 newcontents = contents(newinx);
|
Dawn@4
|
1032 set(handles.listbox_Parameters_matfilelist, 'String', newcontents);
|
Dawn@4
|
1033
|
Dawn@4
|
1034 if (inx(end) > length(newcontents))
|
Dawn@4
|
1035 set(handles.listbox_Parameters_matfilelist, 'Value', length(newcontents));
|
Dawn@4
|
1036 else
|
Dawn@4
|
1037 set(handles.listbox_Parameters_matfilelist, 'Value', inx(end));
|
Dawn@4
|
1038 end
|
Dawn@4
|
1039 end
|
Dawn@4
|
1040 end
|
Dawn@4
|
1041
|
Dawn@4
|
1042
|
Dawn@4
|
1043 % this is the function that does the actual outputting of text
|
Dawn@4
|
1044 function OutputToText(handles)
|
Dawn@4
|
1045
|
Dawn@4
|
1046 % check if there are any parameters and files selected
|
Dawn@4
|
1047 if (isempty(get(handles.listbox_Parameters_paramlist, 'Value')) && get(handles.checkbox_Parameters_includeEGG, 'Value') == 0)
|
Dawn@4
|
1048 msgbox('Error: No parameters selected.', 'Error', 'warn', 'modal');
|
Dawn@4
|
1049 return;
|
Dawn@4
|
1050 end
|
Dawn@4
|
1051
|
Dawn@4
|
1052 if (isempty(get(handles.listbox_Parameters_matfilelist, 'String')))
|
Dawn@4
|
1053 msgbox('Error: No mat files to process.', 'Error', 'warn', 'modal');
|
Dawn@4
|
1054 return;
|
Dawn@4
|
1055 end
|
Dawn@4
|
1056
|
Dawn@4
|
1057 % get variables from the main VS window
|
Dawn@4
|
1058 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
1059 matfilelist = get(handles.listbox_Parameters_matfilelist, 'String');
|
Dawn@4
|
1060 contents = get(handles.listbox_Parameters_paramlist, 'String');
|
Dawn@4
|
1061 paramlist = contents(get(handles.listbox_Parameters_paramlist, 'Value'));
|
Dawn@4
|
1062
|
Dawn@4
|
1063 % get the output delimiter
|
Dawn@4
|
1064 contents = get(handles.popupmenu_Parameters_delimiter, 'String');
|
Dawn@4
|
1065 delim = contents{VSData.vars.OT_columndelimiter};
|
Dawn@4
|
1066 delimiter = 9; % ascii code for tab
|
Dawn@4
|
1067 switch(delim)
|
Dawn@4
|
1068 case {'tab'}
|
Dawn@4
|
1069 delimiter = 9;
|
Dawn@4
|
1070 case {'comma'}
|
Dawn@4
|
1071 delimiter = 44; %ascii for comma
|
Dawn@4
|
1072 case {'space'}
|
Dawn@4
|
1073 delimiter = ' ';
|
Dawn@4
|
1074 end
|
Dawn@4
|
1075
|
Dawn@4
|
1076 % check output files
|
Dawn@4
|
1077 fids = zeros(6, 1); % these store the fids of the open files
|
Dawn@4
|
1078 if (get(handles.radiobutton_Singlefile, 'Value') == 1) % single file
|
Dawn@4
|
1079 fid = fopen(VSData.vars.OT_Single, 'wt');
|
Dawn@4
|
1080
|
Dawn@4
|
1081 if (fid == -1)
|
Dawn@4
|
1082 msgbox('Error: Unable to open file for output.', 'Error', 'error', 'modal');
|
Dawn@4
|
1083 return;
|
Dawn@4
|
1084 end
|
Dawn@4
|
1085
|
Dawn@4
|
1086 writeFileHeaders(fid, paramlist, handles, delimiter);
|
Dawn@4
|
1087 fids = [fid fid fid fid fid fid];
|
Dawn@4
|
1088
|
Dawn@4
|
1089 else % multiple files
|
Dawn@4
|
1090 fid1 = fopen(VSData.vars.OT_F0CPPE, 'wt');
|
Dawn@4
|
1091 fid2 = fopen(VSData.vars.OT_Formants, 'wt');
|
Dawn@4
|
1092 fid3 = fopen(VSData.vars.OT_HA, 'wt');
|
Dawn@4
|
1093 fid4 = fopen(VSData.vars.OT_HxHx, 'wt');
|
Dawn@4
|
1094 fid5 = fopen(VSData.vars.OT_HxAx, 'wt');
|
Dawn@4
|
1095
|
Dawn@4
|
1096 if (fid1 == -1)
|
Dawn@4
|
1097 msgbox('Error: Unable to open F0/CPP/E file for output.', 'Error', 'error', 'modal');
|
Dawn@4
|
1098 return;
|
Dawn@4
|
1099 end
|
Dawn@4
|
1100
|
Dawn@4
|
1101 if (fid2 == -1)
|
Dawn@4
|
1102 msgbox('Error: Unable to open Formants file for output.', 'Error', 'error', 'modal');
|
Dawn@4
|
1103 return;
|
Dawn@4
|
1104 end
|
Dawn@4
|
1105
|
Dawn@4
|
1106 if (fid3 == -1)
|
Dawn@4
|
1107 msgbox('Error: Unable to open Hx/Ax file for output.', 'Error', 'error', 'modal');
|
Dawn@4
|
1108 return;
|
Dawn@4
|
1109 end
|
Dawn@4
|
1110
|
Dawn@4
|
1111 if (fid4 == -1)
|
Dawn@4
|
1112 msgbox('Error: Unable to open Hx-Hx file for output.', 'Error', 'error', 'modal');
|
Dawn@4
|
1113 return;
|
Dawn@4
|
1114 end
|
Dawn@4
|
1115
|
Dawn@4
|
1116 if (fid5 == -1)
|
Dawn@4
|
1117 msgbox('Error: Unable to open Hx-Ax file for output.', 'Error', 'error', 'modal');
|
Dawn@4
|
1118 return;
|
Dawn@4
|
1119 end
|
Dawn@4
|
1120
|
Dawn@4
|
1121 fidEGG = -1;
|
Dawn@4
|
1122 if (VSData.vars.OT_includeEGG == 1)
|
Dawn@4
|
1123 fidEGG = fopen(VSData.vars.OT_EGG, 'wt');
|
Dawn@4
|
1124 if (fidEGG == -1)
|
Dawn@4
|
1125 msgbox('Error: Unable to open EGG file for output.', 'Error', 'error', 'modal');
|
Dawn@4
|
1126 return;
|
Dawn@4
|
1127 end
|
Dawn@4
|
1128 end
|
Dawn@4
|
1129
|
Dawn@4
|
1130 fids = [fid1 fid2 fid3 fid4 fid5 fidEGG];
|
Dawn@4
|
1131 writeFileHeaders(fids, paramlist, handles, delimiter);
|
Dawn@4
|
1132 end
|
Dawn@4
|
1133
|
Dawn@4
|
1134 MBox = MessageBox;
|
Dawn@4
|
1135 MBoxHandles = guidata(MBox);
|
Dawn@4
|
1136 messages = cell(length(matfilelist) + 1, 1); % allocate some memory for messages
|
Dawn@4
|
1137 errorcnt = 0;
|
Dawn@4
|
1138 uniquefids = unique(fids); % store the number of unique fids
|
Dawn@4
|
1139
|
Dawn@4
|
1140 % process every file in matfilelist
|
Dawn@4
|
1141 for k=1:length(matfilelist)
|
Dawn@4
|
1142 matfile = [VSData.vars.OT_matdir VSData.vars.dirdelimiter matfilelist{k}];
|
Dawn@4
|
1143 TGfile = [VSData.vars.OT_Textgriddir VSData.vars.dirdelimiter matfilelist{k}(1:end-3) 'Textgrid'];
|
Dawn@4
|
1144 messages{k} = sprintf('%d/%d. %s: ', k, length(matfilelist), matfilelist{k});
|
Dawn@4
|
1145 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
|
Dawn@4
|
1146 drawnow;
|
Dawn@4
|
1147
|
Dawn@4
|
1148 mdata = func_buildMData(matfile, VSData.vars.O_smoothwinsize);
|
Dawn@4
|
1149
|
Dawn@4
|
1150 frameshift = VSData.vars.frameshift; % this could be wrong if the mat file has it's own frameshift
|
Dawn@4
|
1151 if (isfield(mdata, 'frameshift'))
|
Dawn@4
|
1152 frameshift = mdata.frameshift;
|
Dawn@4
|
1153 end
|
Dawn@4
|
1154
|
Dawn@4
|
1155 % find the max length of the data
|
Dawn@4
|
1156 if (isfield(mdata, 'strF0'))
|
Dawn@4
|
1157 maxlen = length(mdata.strF0) * frameshift;
|
Dawn@4
|
1158 elseif (isfield(mdata, 'sF0'))
|
Dawn@4
|
1159 maxlen = length(mdata.sF0) * frameshift;
|
Dawn@4
|
1160 elseif (isfield(mdata, 'pF0'))
|
Dawn@4
|
1161 maxlen = length(mdata.pF0) * frameshift;
|
Dawn@4
|
1162 elseif (isfield(mdata, 'oF0'))
|
Dawn@4
|
1163 maxlen = length(mdata.oF0) * frameshift;
|
Dawn@4
|
1164 end
|
Dawn@4
|
1165
|
Dawn@4
|
1166 % load up the textgrid data, or if it doesn't exist, use the whole file
|
Dawn@4
|
1167 if (exist(TGfile, 'file') == 0) % file not found, use start and end
|
Dawn@4
|
1168 messages{k} = [messages{k} 'Textgrid not found - using all data points: '];
|
Dawn@4
|
1169 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
|
Dawn@4
|
1170 drawnow;
|
Dawn@4
|
1171
|
Dawn@4
|
1172 start = 1;
|
Dawn@4
|
1173 stop = maxlen;
|
Dawn@4
|
1174 labels = {matfilelist{k}};
|
Dawn@4
|
1175
|
Dawn@4
|
1176 else % use textgrid start points
|
Dawn@4
|
1177 ignorelabels = textscan(VSData.vars.TextgridIgnoreList, '%s', 'delimiter', ',');
|
Dawn@4
|
1178 ignorelabels = ignorelabels{1};
|
Dawn@4
|
1179
|
Dawn@4
|
1180 [labels, start, stop] = func_readTextgrid(TGfile);
|
Dawn@4
|
1181 labels_tmp = [];
|
Dawn@4
|
1182 start_tmp = [];
|
Dawn@4
|
1183 stop_tmp = [];
|
Dawn@4
|
1184
|
Dawn@4
|
1185 for m=1:length(VSData.vars.TextgridTierNumber)
|
Dawn@4
|
1186 inx = VSData.vars.TextgridTierNumber(m);
|
Dawn@4
|
1187 if (inx <= length(labels))
|
Dawn@4
|
1188 labels_tmp = [labels_tmp; labels{inx}];
|
Dawn@4
|
1189 start_tmp = [start_tmp; start{inx}];
|
Dawn@4
|
1190 stop_tmp = [stop_tmp; stop{inx}];
|
Dawn@4
|
1191 end
|
Dawn@4
|
1192 end
|
Dawn@4
|
1193
|
Dawn@4
|
1194 labels = labels_tmp;
|
Dawn@4
|
1195 start = start_tmp * 1000; % milliseconds
|
Dawn@4
|
1196 stop = stop_tmp * 1000; % milliseconds
|
Dawn@4
|
1197
|
Dawn@4
|
1198 % just pull out the start/stop of the labels that aren't
|
Dawn@4
|
1199 % ignored
|
Dawn@4
|
1200 inx = 1:length(labels);
|
Dawn@4
|
1201 for n=1:length(labels)
|
Dawn@4
|
1202 switch(labels{n})
|
Dawn@4
|
1203 case ignorelabels
|
Dawn@4
|
1204 inx(n) = 0;
|
Dawn@4
|
1205 end
|
Dawn@4
|
1206 end
|
Dawn@4
|
1207 inx = unique(inx);
|
Dawn@4
|
1208 inx(inx == 0) = [];
|
Dawn@4
|
1209 labels = labels(inx);
|
Dawn@4
|
1210 start = start(inx);
|
Dawn@4
|
1211 stop = stop(inx);
|
Dawn@4
|
1212 end
|
Dawn@4
|
1213
|
Dawn@4
|
1214 % get the EGG file if requested
|
Dawn@4
|
1215 [proceedEGG, EGGfile] = checkEGGfilename(matfilelist{k}, handles);
|
Dawn@4
|
1216
|
Dawn@4
|
1217 if (VSData.vars.OT_includeEGG == 1 && proceedEGG == 0)
|
Dawn@4
|
1218 messages{k} = [messages{k} 'EGG file not found, '];
|
Dawn@4
|
1219 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
|
Dawn@4
|
1220 drawnow;
|
Dawn@4
|
1221 errorcnt = errorcnt + 1;
|
Dawn@4
|
1222 end
|
Dawn@4
|
1223
|
Dawn@4
|
1224 if (proceedEGG)
|
Dawn@4
|
1225 [EGGData, EGGTime] = func_readEGGfile(EGGfile, VSData.vars.EGGheaders, VSData.vars.EGGtimelabel);
|
Dawn@4
|
1226 end
|
Dawn@4
|
1227
|
Dawn@4
|
1228 % assume each file has the parameters in the mat file
|
Dawn@4
|
1229 paramlist_valid = ones(length(paramlist), 1);
|
Dawn@4
|
1230
|
Dawn@4
|
1231
|
Dawn@4
|
1232 % no segments - complete dump
|
Dawn@4
|
1233 if (VSData.vars.OT_noSegments == 1)
|
Dawn@4
|
1234
|
Dawn@4
|
1235 % for each label, loop through and write out the selected
|
Dawn@4
|
1236 % parameters
|
Dawn@4
|
1237 for n=1:length(start)
|
Dawn@4
|
1238 sstart = round(start(n) / frameshift); % get the correct sample
|
Dawn@4
|
1239 sstop = round(stop(n) / frameshift);
|
Dawn@4
|
1240
|
Dawn@4
|
1241 sstart(sstart == 0) = 1; % special case for t = 0
|
Dawn@4
|
1242 sstop(sstop > maxlen) = maxlen; % special case for t=maxlen
|
Dawn@4
|
1243
|
Dawn@4
|
1244 for s=sstart:sstop
|
Dawn@4
|
1245
|
Dawn@4
|
1246 for m=1:length(uniquefids)
|
Dawn@4
|
1247 if (uniquefids(m) == -1)
|
Dawn@4
|
1248 continue;
|
Dawn@4
|
1249 end
|
Dawn@4
|
1250
|
Dawn@4
|
1251 fprintf(uniquefids(m), '%s%c', matfilelist{k}, delimiter);
|
Dawn@4
|
1252
|
Dawn@4
|
1253 if (VSData.vars.OT_includeTextgridLabels == 1)
|
Dawn@4
|
1254 fprintf(uniquefids(m), '%s%c', labels{n}, delimiter);
|
Dawn@4
|
1255 fprintf(uniquefids(m), '%.3f%c', start(n), delimiter);
|
Dawn@4
|
1256 fprintf(uniquefids(m), '%.3f%c', stop(n), delimiter);
|
Dawn@4
|
1257 end
|
Dawn@4
|
1258
|
Dawn@4
|
1259 fprintf(uniquefids(m), '%.3f%c', s * frameshift, delimiter);
|
Dawn@4
|
1260 end
|
Dawn@4
|
1261
|
Dawn@4
|
1262 % print out the selected params
|
Dawn@4
|
1263 for m=1:length(paramlist)
|
Dawn@4
|
1264 val = VSData.vars.NotANumber; % default is the NaN label
|
Dawn@4
|
1265
|
Dawn@4
|
1266 C = textscan(paramlist{m}, '%s %s', 'delimiter', '(');
|
Dawn@4
|
1267 fidinx = func_getfileinx(paramlist{m});
|
Dawn@4
|
1268 param = C{2}{1}(1:end-1);
|
Dawn@4
|
1269 if (isfield(mdata, param))
|
Dawn@4
|
1270 data = mdata.(param);
|
Dawn@4
|
1271 if (length(data)==1 && isnan(data)) % guard against empty vectors
|
Dawn@4
|
1272 paramlist_valid(m) = 0;
|
Dawn@4
|
1273 else
|
Dawn@4
|
1274 if (~isnan(data(s)) && ~isinf(data(s)))
|
Dawn@4
|
1275 val = sprintf('%.3f', data(s));
|
Dawn@4
|
1276 end
|
Dawn@4
|
1277 end
|
Dawn@4
|
1278 else
|
Dawn@4
|
1279 if (paramlist_valid(m) == 1)
|
Dawn@4
|
1280 messages{k} = [messages{k} param ' not found, '];
|
Dawn@4
|
1281 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
|
Dawn@4
|
1282 drawnow;
|
Dawn@4
|
1283 errorcnt = errorcnt + 1;
|
Dawn@4
|
1284 paramlist_valid(m) = 0;
|
Dawn@4
|
1285 end
|
Dawn@4
|
1286 end
|
Dawn@4
|
1287
|
Dawn@4
|
1288 fprintf(fids(fidinx), '%s%c', val, delimiter);
|
Dawn@4
|
1289 end
|
Dawn@4
|
1290
|
Dawn@4
|
1291 % for the case where EGG was requested, but no EGG file was found
|
Dawn@4
|
1292 if (VSData.vars.OT_includeEGG == 1 && proceedEGG == 0)
|
Dawn@4
|
1293 fidinx = 6;
|
Dawn@4
|
1294 EGGheaders = textscan(VSData.vars.EGGheaders, '%s', 'delimiter', ',');
|
Dawn@4
|
1295 EGGheaders = EGGheaders{1};
|
Dawn@4
|
1296
|
Dawn@4
|
1297 for m=1:length(EGGheaders)
|
Dawn@4
|
1298 fprintf(fids(fidinx), '%s%c', VSData.vars.NotANumber, delimiter);
|
Dawn@4
|
1299 end
|
Dawn@4
|
1300 end
|
Dawn@4
|
1301
|
Dawn@4
|
1302
|
Dawn@4
|
1303 % process EGG stuff
|
Dawn@4
|
1304 if (proceedEGG)
|
Dawn@4
|
1305 fidinx = 6;
|
Dawn@4
|
1306
|
Dawn@4
|
1307 % find the time segment from EGGTime, use that to index
|
Dawn@4
|
1308 % EGGData
|
Dawn@4
|
1309 t = s * frameshift; % this is the time in ms. Get the closest EGGTime to t
|
Dawn@4
|
1310 [val, s_EGG] = min(abs(EGGTime - t));
|
Dawn@4
|
1311
|
Dawn@4
|
1312 if (abs(t - EGGTime(s_EGG)) / t > 0.05) % if t_EGG is more than 5% away from t, it is not correct
|
Dawn@4
|
1313 for m=1:length(EGGData)
|
Dawn@4
|
1314 fprintf(fids(fidinx), '%s%c', VSData.vars.NotANumber, delimiter);
|
Dawn@4
|
1315 end
|
Dawn@4
|
1316 else
|
Dawn@4
|
1317 for m=1:length(EGGData)
|
Dawn@4
|
1318 fprintf(fids(fidinx), '%.3f%c', EGGData{m}(s_EGG), delimiter);
|
Dawn@4
|
1319 end
|
Dawn@4
|
1320 end
|
Dawn@4
|
1321 end
|
Dawn@4
|
1322
|
Dawn@4
|
1323 % finally, write out new line
|
Dawn@4
|
1324 for m=1:length(uniquefids)
|
Dawn@4
|
1325 if (uniquefids(m) == -1)
|
Dawn@4
|
1326 continue;
|
Dawn@4
|
1327 end
|
Dawn@4
|
1328 fprintf(uniquefids(m), '\n');
|
Dawn@4
|
1329 end
|
Dawn@4
|
1330
|
Dawn@4
|
1331 end
|
Dawn@4
|
1332
|
Dawn@4
|
1333 end
|
Dawn@4
|
1334
|
Dawn@4
|
1335
|
Dawn@4
|
1336 % outputting with segments
|
Dawn@4
|
1337 else
|
Dawn@4
|
1338 Nseg = str2double(get(handles.edit_numSegments, 'String'));
|
Dawn@4
|
1339
|
Dawn@4
|
1340 % for each segment, print out overall mean, then parts mean
|
Dawn@4
|
1341 for n=1:length(start)
|
Dawn@4
|
1342
|
Dawn@4
|
1343 % print out the header stuff
|
Dawn@4
|
1344 for m=1:length(uniquefids)
|
Dawn@4
|
1345 if (uniquefids(m) == -1)
|
Dawn@4
|
1346 continue;
|
Dawn@4
|
1347 end
|
Dawn@4
|
1348
|
Dawn@4
|
1349 fprintf(uniquefids(m), '%s%c', matfilelist{k}, delimiter);
|
Dawn@4
|
1350
|
Dawn@4
|
1351 if (VSData.vars.OT_includeTextgridLabels == 1)
|
Dawn@4
|
1352 fprintf(uniquefids(m), '%s%c', labels{n}, delimiter);
|
Dawn@4
|
1353 fprintf(uniquefids(m), '%.3f%c', start(n), delimiter);
|
Dawn@4
|
1354 fprintf(uniquefids(m), '%.3f%c', stop(n), delimiter);
|
Dawn@4
|
1355 end
|
Dawn@4
|
1356
|
Dawn@4
|
1357 end
|
Dawn@4
|
1358
|
Dawn@4
|
1359 % get array of start and stop times for the segments. First one
|
Dawn@4
|
1360 % is the total mean
|
Dawn@4
|
1361 tsegs = linspace(start(n), stop(n), Nseg+1);
|
Dawn@4
|
1362 tstart = zeros(Nseg+1, 1);
|
Dawn@4
|
1363 tstop = zeros(Nseg+1, 1);
|
Dawn@4
|
1364
|
Dawn@4
|
1365 tstart(1) = start(n);
|
Dawn@4
|
1366 tstop(1) = stop(n);
|
Dawn@4
|
1367 tstart(2:end) = tsegs(1:Nseg);
|
Dawn@4
|
1368 tstop(2:end) = tsegs(2:Nseg+1);
|
Dawn@4
|
1369
|
Dawn@4
|
1370 % get the sample equivalents
|
Dawn@4
|
1371 sstart = round(tstart ./ frameshift);
|
Dawn@4
|
1372 sstop = round(tstop ./ frameshift);
|
Dawn@4
|
1373
|
Dawn@4
|
1374 % don't output segments if Nseg == 1
|
Dawn@4
|
1375 if (Nseg == 1)
|
Dawn@4
|
1376 sstart = sstart(1);
|
Dawn@4
|
1377 sstop = sstop(1);
|
Dawn@4
|
1378 end
|
Dawn@4
|
1379
|
Dawn@4
|
1380 % guard against 0 and maxlen
|
Dawn@4
|
1381 sstart(sstart == 0) = 1;
|
Dawn@4
|
1382 sstop(sstop > maxlen) = maxlen;
|
Dawn@4
|
1383
|
Dawn@4
|
1384 for m=1:length(paramlist)
|
Dawn@4
|
1385 val = VSData.vars.NotANumber; % default value is no value
|
Dawn@4
|
1386
|
Dawn@4
|
1387 fidinx = func_getfileinx(paramlist{m});
|
Dawn@4
|
1388 C = textscan(paramlist{m}, '%s %s', 'delimiter', '(');
|
Dawn@4
|
1389 param = C{2}{1}(1:end-1);
|
Dawn@4
|
1390 if (isfield(mdata, param))
|
Dawn@4
|
1391 data = mdata.(param);
|
Dawn@4
|
1392
|
Dawn@4
|
1393 for p=1:length(sstart)
|
Dawn@4
|
1394 if (length(data)==1 && isnan(data))
|
Dawn@4
|
1395 paramlist_valid(m) = 0;
|
Dawn@4
|
1396 else
|
Dawn@4
|
1397 dataseg = data(sstart(p):sstop(p));
|
Dawn@4
|
1398 mdataseg = mean(dataseg(~isnan(dataseg) & ~isinf(dataseg)));
|
Dawn@4
|
1399 if (~isempty(mdataseg) && ~isnan(mdataseg) && ~isinf(mdataseg))
|
Dawn@4
|
1400 val = sprintf('%.3f', mdataseg);
|
Dawn@4
|
1401 end
|
Dawn@4
|
1402 end
|
Dawn@4
|
1403 fprintf(fids(fidinx), '%s%c', val, delimiter);
|
Dawn@4
|
1404 end
|
Dawn@4
|
1405 else
|
Dawn@4
|
1406 if (paramlist_valid(m) == 1)
|
Dawn@4
|
1407 messages{k} = [messages{k} param ' not found, '];
|
Dawn@4
|
1408 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', k);
|
Dawn@4
|
1409 drawnow;
|
Dawn@4
|
1410 errorcnt = errorcnt + 1;
|
Dawn@4
|
1411 paramlist_valid(m) = 0;
|
Dawn@4
|
1412 end
|
Dawn@4
|
1413
|
Dawn@4
|
1414 for p=1:length(sstart)
|
Dawn@4
|
1415 fprintf(fids(fidinx), '%s%c', val, delimiter);
|
Dawn@4
|
1416 end
|
Dawn@4
|
1417 end
|
Dawn@4
|
1418
|
Dawn@4
|
1419 end
|
Dawn@4
|
1420
|
Dawn@4
|
1421
|
Dawn@4
|
1422 % this case if for when the EGG was requested, but no egg file
|
Dawn@4
|
1423 % was found
|
Dawn@4
|
1424 if (VSData.vars.OT_includeEGG == 1 && proceedEGG == 0)
|
Dawn@4
|
1425 fidinx = 6;
|
Dawn@4
|
1426 EGGheaders = textscan(VSData.vars.EGGheaders, '%s', 'delimiter', ',');
|
Dawn@4
|
1427 EGGheaders = EGGheaders{1};
|
Dawn@4
|
1428 for m=1:length(EGGheaders)
|
Dawn@4
|
1429 for p=1:length(tstart)
|
Dawn@4
|
1430 fprintf(fids(fidinx), '%s%c', VSData.vars.NotANumber, delimiter);
|
Dawn@4
|
1431 end
|
Dawn@4
|
1432 end
|
Dawn@4
|
1433 end
|
Dawn@4
|
1434
|
Dawn@4
|
1435 % process EGG stuff
|
Dawn@4
|
1436 if (proceedEGG)
|
Dawn@4
|
1437 fidinx = 6;
|
Dawn@4
|
1438
|
Dawn@4
|
1439 for m=1:length(EGGData)
|
Dawn@4
|
1440 for p=1:length(tstart)
|
Dawn@4
|
1441 EGGInx = (EGGTime >= tstart(p)) & (EGGTime <= tstop(p));
|
Dawn@4
|
1442 meanval = mean(EGGData{m}(EGGInx));
|
Dawn@4
|
1443 if (~isempty(meanval) && ~isnan(meanval) && ~isinf(meanval))
|
Dawn@4
|
1444 val = sprintf('%.3f', meanval);
|
Dawn@4
|
1445 else
|
Dawn@4
|
1446 val = VSData.vars.NotANumber;
|
Dawn@4
|
1447 end
|
Dawn@4
|
1448 fprintf(fids(fidinx), '%s%c', val, delimiter);
|
Dawn@4
|
1449 end
|
Dawn@4
|
1450 end
|
Dawn@4
|
1451 end
|
Dawn@4
|
1452
|
Dawn@4
|
1453 % finally, write out new line
|
Dawn@4
|
1454 for m=1:length(uniquefids)
|
Dawn@4
|
1455 if (uniquefids(m) == -1)
|
Dawn@4
|
1456 continue;
|
Dawn@4
|
1457 end
|
Dawn@4
|
1458 fprintf(uniquefids(m), '\n');
|
Dawn@4
|
1459 end
|
Dawn@4
|
1460
|
Dawn@4
|
1461 end
|
Dawn@4
|
1462 end
|
Dawn@4
|
1463 end
|
Dawn@4
|
1464
|
Dawn@4
|
1465 for k=1:length(uniquefids)
|
Dawn@4
|
1466 if (uniquefids(k) == -1)
|
Dawn@4
|
1467 continue;
|
Dawn@4
|
1468 end
|
Dawn@4
|
1469 fclose(uniquefids(k));
|
Dawn@4
|
1470 end
|
Dawn@4
|
1471
|
Dawn@4
|
1472 if (errorcnt > 0)
|
Dawn@4
|
1473 messages{length(matfilelist)+1} = sprintf('Completed: %d parameters not found.', errorcnt);
|
Dawn@4
|
1474 else
|
Dawn@4
|
1475 messages{length(matfilelist)+1} = sprintf('Completed.');
|
Dawn@4
|
1476 end
|
Dawn@4
|
1477 set(MBoxHandles.listbox_messages, 'String', messages, 'Value', length(matfilelist)+1);
|
Dawn@4
|
1478
|
Dawn@4
|
1479 % allow the MBox to close
|
Dawn@4
|
1480 set(MBoxHandles.pushbutton_close, 'Enable', 'on');
|
Dawn@4
|
1481 set(MBoxHandles.pushbutton_stop, 'Enable', 'off');
|
Dawn@4
|
1482
|
Dawn@4
|
1483
|
Dawn@4
|
1484
|
Dawn@4
|
1485 % write headers to files
|
Dawn@4
|
1486 function writeFileHeaders(fids, paramlist, handles, delimiter)
|
Dawn@4
|
1487 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
1488
|
Dawn@4
|
1489 % write out the filename and textgrid labels if required
|
Dawn@4
|
1490 for k=1:length(fids)
|
Dawn@4
|
1491 if (fids(k) == -1)
|
Dawn@4
|
1492 continue;
|
Dawn@4
|
1493 end
|
Dawn@4
|
1494
|
Dawn@4
|
1495 fprintf(fids(k), 'Filename%c', delimiter);
|
Dawn@4
|
1496
|
Dawn@4
|
1497 if (VSData.vars.OT_includeTextgridLabels == 1)
|
Dawn@4
|
1498 fprintf(fids(k), 'Label%c', delimiter);
|
Dawn@4
|
1499 fprintf(fids(k), 'seg_Start%c', delimiter);
|
Dawn@4
|
1500 fprintf(fids(k), 'seg_End%c', delimiter);
|
Dawn@4
|
1501 end
|
Dawn@4
|
1502
|
Dawn@4
|
1503 % only print a time stamp when doing complete dumps
|
Dawn@4
|
1504 if (VSData.vars.OT_noSegments == 1)
|
Dawn@4
|
1505 fprintf(fids(k), 't_ms%c', delimiter);
|
Dawn@4
|
1506 end
|
Dawn@4
|
1507 end
|
Dawn@4
|
1508
|
Dawn@4
|
1509 % make the file ids the same length as using multiple files
|
Dawn@4
|
1510 if (length(fids)==1)
|
Dawn@4
|
1511 if (VSData.vars.OT_includeEGG)
|
Dawn@4
|
1512 fids = [fids fids fids fids fids fids];
|
Dawn@4
|
1513 else
|
Dawn@4
|
1514 fids = [fids fids fids fids fids -1];
|
Dawn@4
|
1515 end
|
Dawn@4
|
1516 end
|
Dawn@4
|
1517
|
Dawn@4
|
1518 % separate case for complete data dump
|
Dawn@4
|
1519 if (VSData.vars.OT_noSegments == 1)
|
Dawn@4
|
1520 for k=1:length(paramlist)
|
Dawn@4
|
1521 fidinx = func_getfileinx(paramlist{k});
|
Dawn@4
|
1522 C = textscan(paramlist{k}, '%s %s', 'delimiter', '(');
|
Dawn@4
|
1523 fprintf(fids(fidinx), '%s%c', C{2}{1}(1:end-1), delimiter);
|
Dawn@4
|
1524 end
|
Dawn@4
|
1525
|
Dawn@4
|
1526 if (VSData.vars.OT_includeEGG)
|
Dawn@4
|
1527 fidinx = 6;
|
Dawn@4
|
1528 C = textscan(VSData.vars.EGGheaders, '%s', 'delimiter', ',');
|
Dawn@4
|
1529 for n=1:length(C{1})
|
Dawn@4
|
1530 fprintf(fids(fidinx), '%s%c', C{1}{n}, delimiter);
|
Dawn@4
|
1531 end
|
Dawn@4
|
1532 end
|
Dawn@4
|
1533
|
Dawn@4
|
1534 % finally, write out new line
|
Dawn@4
|
1535 fids = unique(fids);
|
Dawn@4
|
1536 for k=1:length(fids)
|
Dawn@4
|
1537 if (fids(k) == -1)
|
Dawn@4
|
1538 continue;
|
Dawn@4
|
1539 end
|
Dawn@4
|
1540 fprintf(fids(k), '\n');
|
Dawn@4
|
1541 end
|
Dawn@4
|
1542
|
Dawn@4
|
1543 % using segments
|
Dawn@4
|
1544 else
|
Dawn@4
|
1545 Nseg = str2double(get(handles.edit_numSegments, 'String'));
|
Dawn@4
|
1546
|
Dawn@4
|
1547 % for each parameter, print the mean, followed by the means of each
|
Dawn@4
|
1548 % segment
|
Dawn@4
|
1549 for k=1:length(paramlist)
|
Dawn@4
|
1550 fidinx = func_getfileinx(paramlist{k});
|
Dawn@4
|
1551 C = textscan(paramlist{k}, '%s %s', 'delimiter', '(');
|
Dawn@4
|
1552 label = C{2}{1}(1:end-1);
|
Dawn@4
|
1553 fprintf(fids(fidinx), '%s_mean%c', label, delimiter);
|
Dawn@4
|
1554 if (Nseg > 1)
|
Dawn@4
|
1555 for n=1:Nseg
|
Dawn@4
|
1556 segno = sprintf('%3d', n);
|
Dawn@4
|
1557 segno = strrep(segno, ' ', '0');
|
Dawn@4
|
1558 fprintf(fids(fidinx), '%s_means%s%c', label, segno, delimiter);
|
Dawn@4
|
1559 end
|
Dawn@4
|
1560 end
|
Dawn@4
|
1561 end
|
Dawn@4
|
1562
|
Dawn@4
|
1563 if (VSData.vars.OT_includeEGG)
|
Dawn@4
|
1564 fidinx = 6;
|
Dawn@4
|
1565 C = textscan(VSData.vars.EGGheaders, '%s', 'delimiter', ',');
|
Dawn@4
|
1566 for n=1:length(C{1})
|
Dawn@4
|
1567 fprintf(fids(fidinx), '%s_mean%c', C{1}{n}, delimiter);
|
Dawn@4
|
1568
|
Dawn@4
|
1569 if (Nseg > 1)
|
Dawn@4
|
1570 for m=1:Nseg
|
Dawn@4
|
1571 segno = sprintf('%3d', m);
|
Dawn@4
|
1572 segno = strrep(segno, ' ', '0');
|
Dawn@4
|
1573 fprintf(fids(fidinx), '%s_means%s%c', C{1}{n}, segno, delimiter);
|
Dawn@4
|
1574 end
|
Dawn@4
|
1575 end
|
Dawn@4
|
1576 end
|
Dawn@4
|
1577 end
|
Dawn@4
|
1578
|
Dawn@4
|
1579 % finally, write out a new line
|
Dawn@4
|
1580 fids = unique(fids);
|
Dawn@4
|
1581 for k=1:length(fids)
|
Dawn@4
|
1582 if (fids(k) == -1)
|
Dawn@4
|
1583 continue;
|
Dawn@4
|
1584 end
|
Dawn@4
|
1585 fprintf(fids(k), '\n');
|
Dawn@4
|
1586 end
|
Dawn@4
|
1587
|
Dawn@4
|
1588
|
Dawn@4
|
1589 end
|
Dawn@4
|
1590
|
Dawn@4
|
1591
|
Dawn@4
|
1592
|
Dawn@4
|
1593 function [proceedEGG, EGGfile] = checkEGGfilename(matfile, handles)
|
Dawn@4
|
1594 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
1595
|
Dawn@4
|
1596 if (VSData.vars.OT_includeEGG == 0)
|
Dawn@4
|
1597 proceedEGG = 0;
|
Dawn@4
|
1598 EGGfile = '';
|
Dawn@4
|
1599 return;
|
Dawn@4
|
1600 end
|
Dawn@4
|
1601
|
Dawn@4
|
1602 % deal with the filename stupidity that is PCQuirer
|
Dawn@4
|
1603 VSData = guidata(handles.VSHandle);
|
Dawn@4
|
1604
|
Dawn@4
|
1605 EGGfile = [VSData.vars.OT_EGGdir VSData.vars.dirdelimiter matfile(1:end-3) 'egg']; % attempt to open .egg
|
Dawn@4
|
1606 if (exist(EGGfile, 'file') == 0)
|
Dawn@4
|
1607 proceedEGG = 0;
|
Dawn@4
|
1608
|
Dawn@4
|
1609 if (length(matfile) > 10)
|
Dawn@4
|
1610 if (strcmpi(matfile(end-9:end-4), '_Audio')) % case insensitive
|
Dawn@4
|
1611 EGGfile = [VSData.vars.OT_EGGdir VSData.vars.dirdelimiter matfile(1:end-9), 'ch1.egg']; % try with ch1 first
|
Dawn@4
|
1612
|
Dawn@4
|
1613 if (exist(EGGfile, 'file') == 0)
|
Dawn@4
|
1614 EGGfile = [VSData.vars.OT_EGGdir VSData.vars.dirdelimiter matfile(1:end-10) '.egg']; % next try with .egg w/o _Audio
|
Dawn@4
|
1615 if (exist(EGGfile, 'file') == 0)
|
Dawn@4
|
1616 proceedEGG = 0;
|
Dawn@4
|
1617 else
|
Dawn@4
|
1618 proceedEGG = 1;
|
Dawn@4
|
1619 end
|
Dawn@4
|
1620 else
|
Dawn@4
|
1621 proceedEGG = 1;
|
Dawn@4
|
1622 end
|
Dawn@4
|
1623
|
Dawn@4
|
1624 end
|
Dawn@4
|
1625 end
|
Dawn@4
|
1626 else
|
Dawn@4
|
1627 proceedEGG = 1;
|
Dawn@4
|
1628 end
|
Dawn@4
|
1629
|
Dawn@4
|
1630
|
Dawn@4
|
1631
|
Dawn@4
|
1632
|
Dawn@4
|
1633
|