i want to plot readed audio files

function CHD_Multiview_Callback(hObject, eventdata, handles)
set(handles.chdprevious, 'Visible','on')
set(handles.chdnext,'visible','on')
set(handles.chdtext,'visible','on')
set(handles.chdpanel,'visible','on')
guidata(hObject, handles);
disp('Entered');
guidata(hObject, handles);
folder_name = uigetdir('','Select src data Directory');
if isequal(folder_name,0)
disp('Directory Selected');
else
% set(handles.EEGFilename,'string','Wait Loading File.......');
disp(['You have selected ', fullfile(folder_name)]);
disp('CHD Audio file processing wait')
handles.srcFolder= fullfile(folder_name);
% set(handles.edDirName,'string',handles.srcFolder);
end
guidata(hObject, handles);
% Specify the folder where the files live.
k='';
myFolder = 'F:\audio';
folder ='F:\';
% AudioArray{k} = audioread(fullfile(folder));
% maxaudio(k) = max(AudioArray{k});
% myFolder = 'F:\audio';
% Check to make sure that folder actually exists. Warn user if it doesn't.
if ~isfolder(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s\nPlease specify a new folder.', myFolder);
uiwait(warndlg(errorMessage));
myFolder = uigetdir(); % Ask for a new one.
if myFolder == 0
% User clicked Cancel
return;
end
end
% Get a list of all files in the folder with the desired file name pattern.
filePattern = fullfile(myFolder, '**/*.wav'); % Change to whatever pattern you need.
theFiles = dir(filePattern);
for k = 1 : length(theFiles)
baseFileName = theFiles(k).name;
fullFileName = fullfile(theFiles(k).folder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
% Now do whatever you want with this file name,
% such as reading it in as an image array with imread()
AudioArray = audioread(fullFileName);
[y,fs] = audioread(fullFileName);
subplot = 'theFiles';
help subplot

 Accepted Answer

Maybe you had better employ just one plot() and hold it to plot all imported data from audio files, e.g.:
plot(y), hold all % That will be held and all of the imported audio data will be plotted in a different line color

9 Comments

I would modify that slightly:
[~, basename] = fileparts(fullFileName);
t = (0:size(y,1)-1) / fs;
plot(t, y, 'DisplayName', basename);
hold on
and then after the loop,
legend show
Please help. i want to plot these readed audio file in a axis or in mulitiple axis.please help i'm new to MATLAB
function CHD_Multiview_Callback(hObject, eventdata, handles)
set(handles.chdprevious, 'Visible','on')
set(handles.chdnext,'visible','on')
set(handles.chdtext,'visible','on')
set(handles.chdpanel,'visible','off')
guidata(hObject, handles);
disp('Entered');
guidata(hObject, handles);
folder_name = uigetdir('','Select src data Directory');
if isequal(folder_name,0)
disp('Directory Selected');
else
% set(handles.EEGFilename,'string','Wait Loading File.......');
disp(['You have selected ', fullfile(folder_name)]);
disp('CHD Audio file processing wait')
handles.srcFolder= fullfile(folder_name);
% set(handles.edDirName,'string',handles.srcFolder);
end
guidata(hObject, handles);
% Specify the folder where the files live.
k='';
myFolder = 'F:\audio';
folder ='F:\';
% AudioArray{k} = audioread(fullfile(folder));
% maxaudio(k) = max(AudioArray{k});
% myFolder = 'F:\audio';
% Check to make sure that folder actually exists. Warn user if it doesn't.
if ~isfolder(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s\nPlease specify a new folder.', myFolder);
uiwait(warndlg(errorMessage));
myFolder = uigetdir(); % Ask for a new one.
if myFolder == 0
% User clicked Cancel
return;
end
end
function CHD_Multiview_Callback(hObject, eventdata, handles)
set(handles.chdprevious, 'Visible','on')
set(handles.chdnext,'visible','on')
set(handles.chdtext,'visible','on')
set(handles.chdpanel,'visible','off')
folder_name = uigetdir('','Select src data Directory');
if ~ischar(folder_name)
disp('No directory Selected');
return
end
disp(['You have selected ', folder_name]);
disp('CHD Audio file processing wait')
handles.srcFolder = folder_name;
dinfo = dir(fullfile(folder_name, '*.wav'));
filenames = fullfile(folder_name, {dinfo.name});
nfiles = length(filenames);
AudioArray = cell(nfiles, 1);
FsArray = zeros(nfiles, 1);
maxaudio = zeros(nfiles, 1);
for k = 1 : nfiles
thisfile = filenames{k};
[~, basename] = fileparts(thisfile);
[thisaudio, thisfs] = audioread(thisfile);
AudioArray{k} = thisaudio;
FsArray(k) = thisfs;
maxaudio(k) = max(thisaudio(:));
t = (0:size(thisaudio,1)) / thisfs;
plot(t, thisaudio, 'DisplayName', basename);
hold on
end
hold off
xlim auto; ylim auto;
xlabel('time (s)');
legend show
handles.AudioArray = AudioArray;
handles.FsArray = FsArray;
handles.maxaudio = maxaudio;
guidata(hObject, handles);
i run above problem but it shows error.kindly please refer below error.please help me
You have selected F:\d_1Heart Audio Signal.mp3
CHD Audio file processing wait
Error using plot
Vectors must be the same length.
Error in EEG_SCT>CHD_Multiview_Callback (line 10470)
plot(t, thisaudio, 'DisplayName', basename);
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in EEG_SCT (line 37)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)EEG_SCT('CHD_Multiview_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating Menu Callback.
t = (0:size(thisaudio,1)-1) / thisfs;
sir now i run the code but still geting error please refer below code and error commend
function CHD_Multiview_Callback(hObject, eventdata, handles)
set(handles.chdprevious, 'Visible','on')
set(handles.chdnext,'visible','on')
set(handles.chdtext,'visible','on')
set(handles.chdpanel,'visible','off')
folder_name = uigetdir('','Select src data Directory');
if ~ischar(folder_name)
disp('No directory Selected');
return
end
disp(['You have selected ', folder_name]);
disp('CHD Audio file processing wait')
handles.srcFolder = folder_name;
dinfo = dir(fullfile(folder_name, '*.wav'));
filenames = fullfile(folder_name, {dinfo.name});
nfiles = length(filenames);
AudioArray = cell(nfiles, 1);
FsArray = zeros(nfiles, 1);
maxaudio = zeros(nfiles, 1);
for k = 1 : nfiles
thisfile = filenames{k};
[~, basename] = fileparts(thisfile);
[thisaudio, thisfs] = audioread(thisfile);
AudioArray{k} = thisaudio;
FsArray(k) = thisfs;
maxaudio(k) = max(thisaudio(:));
t = (0:size(thisaudio,1)) / thisfs;
plot(t, thisaudio, 'DisplayName', basename);
hold on
end
hold off
xlim auto; ylim auto;
xlabel('time (s)');
legend show
handles.AudioArray = AudioArray;
handles.FsArray = FsArray;
handles.maxaudio = maxaudio;
t = (0:size(thisaudio,1)-1) / thisfs;
guidata(hObject, handles);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ERROR
You have selected F:\chd
CHD Audio file processing wait
Error using plot
Vectors must be the same length.
Error in EEG_SCT>CHD_Multiview_Callback (line 10471)
plot(t, thisaudio, 'DisplayName', basename);
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in EEG_SCT (line 37)
gui_mainfcn(gui_State, varargin{:});
Error in matlab.graphics.internal.figfile.FigFile/read>@(hObject,eventdata)EEG_SCT('CHD_Multiview_Callback',hObject,eventdata,guidata(hObject))
Error while evaluating Menu Callback.
Put a breakpoint at the plot call and show us size(t) and size(thisaudio)
You did not change
t = (0:size(thisaudio,1)) / thisfs;
to
t = (0:size(thisaudio,1)-1) / thisfs;
like I said to do yesterday.
Now its work thank you

Sign in to comment.

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!