From 48a94c38cba3a3270a4fba88fc28ca4640aa933a Mon Sep 17 00:00:00 2001 From: yomguy Date: Tue, 8 Apr 2008 14:20:14 +0000 Subject: [PATCH] * Add 8 channels * Create an Analysis box git-svn-id: http://svn.parisson.org/svn/CNAQ/trunk@176 5fc3e0e6-29bc-4d03-b52b-c088cb822bde --- CNAQ.fig | Bin 13640 -> 13775 bytes CNAQ.m | 14 +++++++------- tools/get_voices_in.m | 14 -------------- tools/get_voices_out.m | 14 -------------- tools/measurement.m | 20 ++++++++++++-------- 5 files changed, 19 insertions(+), 43 deletions(-) delete mode 100644 tools/get_voices_in.m delete mode 100644 tools/get_voices_out.m diff --git a/CNAQ.fig b/CNAQ.fig index 2a84be1457d75d24e865b51dfb19ed4379fe9bb8..d4f963f0bec572c7cd3714afea84a0d6cfc1baa2 100644 GIT binary patch literal 13775 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 literal 13640 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 -% Last Modified by GUIDE v2.5 12-Jan-2008 11:35:34 +% Last Modified by GUIDE v2.5 08-Apr-2008 16:23:22 % CNAQ, by itself, creates a new CNAQ or raises the existing % singleton*. @@ -166,8 +166,8 @@ set(handles.f_s,'String','44100|48000|88200|96000|192000'); set(handles.in_on_off,'Value',0); set(handles.gen_on_off,'Value',0); set(handles.sig_type,'String','Sinus|Chirp|White noise|Pink noise'); -set(handles.voices_in,'String','1|1 2|1 2 3|1 2 3 4'); -set(handles.voices_out,'String','1|1 2|1 2 3|1 2 3 4'); +set(handles.channels_in,'String','1|1 2|1 2 3|1 2 3 4|1 2 3 4 5 6 7 8'); +set(handles.channels_out,'String','1|1 2|1 2 3|1 2 3 4|1 2 3 4 5 6 7 8'); set(handles.mes_type,'String','Transfert function|Impulse response'); set(handles.in_on_off,'UserData',device); @@ -248,16 +248,16 @@ function gain_out_CreateFcn(hObject, eventdata, handles) set(hObject,'BackgroundColor',[.9 .9 .9]); end -function voices_in_Callback(hObject, eventdata, handles) +function channels_in_Callback(hObject, eventdata, handles) -function voices_in_CreateFcn(hObject, eventdata, handles) +function channels_in_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end -function voices_out_Callback(hObject, eventdata, handles) +function channels_out_Callback(hObject, eventdata, handles) -function voices_out_CreateFcn(hObject, eventdata, handles) +function channels_out_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end diff --git a/tools/get_voices_in.m b/tools/get_voices_in.m deleted file mode 100644 index 33e1eab..0000000 --- a/tools/get_voices_in.m +++ /dev/null @@ -1,14 +0,0 @@ -function voices_in = get_voices_in(handles) - - vi_ind = get(handles.voices_in,'Value'); - if vi_ind == 1 - voices_in = [1]; - elseif vi_ind == 2 - voices_in = [1 2]; - elseif vi_ind == 3 - voices_in = [1 2 3]; - elseif vi_ind == 4 - voices_in = [1 2 3 4]; - end - -end \ No newline at end of file diff --git a/tools/get_voices_out.m b/tools/get_voices_out.m deleted file mode 100644 index 0dd1f4f..0000000 --- a/tools/get_voices_out.m +++ /dev/null @@ -1,14 +0,0 @@ -function voices_out = get_voices_out(handles) - - vo_ind = get(handles.voices_out,'Value'); - if vo_ind == 1 - voices_out = [1]; - elseif vo_ind == 2 - voices_out = [1,2]; - elseif vo_ind == 3 - voices_out = [1,2,3]; - elseif vo_ind == 4 - voices_out = [1,2,3,4]; - end - -end \ No newline at end of file diff --git a/tools/measurement.m b/tools/measurement.m index 9be2f25..471f674 100644 --- a/tools/measurement.m +++ b/tools/measurement.m @@ -1,19 +1,23 @@ function measurement(handles) + % Init pause(0.2); device = get(handles.in_on_off,'UserData'); latency = get(handles.save_button,'UserData'); + nfft = 32768; f_min = str2double(get(handles.f_gen_min,'String')); f_max = str2double(get(handles.f_gen_max,'String')); + time = get(handles.time_gen,'Value'); fs_id = get(handles.f_s,'Value'); - nb_id = get(handles.nbits,'Value'); f_s = get_fs(fs_id); + nb_id = get(handles.nbits,'Value'); nbits = get_nbits(nb_id); - time = get(handles.time_gen,'Value'); - voices_in = get_voices_in(handles); - voice_first = voices_in(1); - voice_last = voices_in(length(voices_in)); + ch_in_id = get(handles.channels_in,'Value'); + channels_in = get_channels_in(ch_in_id); + channel_first = channels_in(1); + channel_last = channels_in(length(channels_in)); + gain_out = get(handles.gain_out,'Value'); gain_out = 10^(gain_out/20); @@ -50,14 +54,14 @@ function measurement(handles) sig_exc_z = [sig_exc zero]; len_sig_exc = length(sig_exc); - % Make all voices + % Init all channels sig_out = []; - for i=1:length(voices_in) + for i=1:length(channels_in) sig_out(:,i) = sig_exc_z'; end % Measure - sig_mes = pa_wavplayrecord(sig_out, device, f_s, 0, voice_first, voice_last, device, 'asio'); + sig_mes = pa_wavplayrecord(sig_out, device, f_s, 0, channel_first, channel_last, device, 'asio'); % Usage: % inputbuffer = pa_wavplayrecord(playbuffer,[playdevice],[samplerate], % [recnsamples], [recfirstchannel], [reclastchannel], -- 2.39.5