一、簡介
基于matlab GUI MP3設計
二、源代碼
function varargout = myaudioplayer(varargin)
% MY_MUSIC_ANALYSIS_SOFTWARE M-file for my_music_analysis_software.fig
% MY_MUSIC_ANALYSIS_SOFTWARE, by itself, creates a new MY_MUSIC_ANALYSIS_SOFTWARE or raises the existing
% singleton*.
%
% H = MY_MUSIC_ANALYSIS_SOFTWARE returns the handle to a new MY_MUSIC_ANALYSIS_SOFTWARE or the handle to
% the existing singleton*.
%
% MY_MUSIC_ANALYSIS_SOFTWARE('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in MY_MUSIC_ANALYSIS_SOFTWARE.M with the given input arguments.
%
% MY_MUSIC_ANALYSIS_SOFTWARE('Property','Value',...) creates a new MY_MUSIC_ANALYSIS_SOFTWARE or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before myaudioplayer_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to myaudioplayer_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help my_music_analysis_software
% Last Modified by GUIDE v2.5 14-Jun-2014 17:43:41
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @myaudioplayer_OpeningFcn, ...
'gui_OutputFcn', @myaudioplayer_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before my_music_analysis_software is made visible.
function myaudioplayer_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to my_music_analysis_software (see VARARGIN)
% Choose default command line output for my_music_analysis_software
handles.output = hObject;
handles.output = hObject;
setappdata(handles.my_music_analysis_software,'Max',0);
setappdata(handles.my_music_analysis_software,'fpath',0);
set(handles.my_music_analysis_software,'defaultAxesColor',[0.4 0.5 0.7])
handles.timer1= timer('Period',0.01,'ExecutionMode','FixedRate','TimerFcn',{@PlotUpdate,handles});
%handles.timer2= timer('ExecutionMode','singleShot','TimerFcn',{@close,handles});
% Update handles structure
guidata(hObject, handles);
global n stop1 fs C m a b color1 color2 colorOrder1 ;
n=10;m=0;color1='b';color2='c';
stop1=0;
C=zeros(1,5);
fs=11025;
[a,b]=coef();
colorOrder1 = ['r';'g'; 'b';'c';'m';'y';'k';'w'];
set(handles.jindu_var,'min',0);
set(handles.jindu_var,'max',100);
equalizer_plot();
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes my_music_analysis_software wait for user response (see UIRESUME)
% uiwait(handles.my_music_analysis_software);
% --- Outputs from this function are returned to the command line.
function varargout = myaudioplayer_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in button_load.
function button_load_Callback(hObject, eventdata, handles)
% hObject handle to button_load (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
stop(handles.timer1);
global n stop1 x y fs C w fpath step w1 w2 w3 w4 w5 a b;
n=1;
[filename, pathname] = uigetfile( ...
{'*.wav', 'All Image Files (*.wav)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a wave');
if isequal(filename,0) || isequal(pathname,0),
return;
end
fpath=[pathname filename];
y=wavread(fpath);
w1=filter(10^(C(1)/20)*b{1},a{1},y);
w2=filter(10^(C(2)/20)*b{2},a{2},y);
w3=filter(10^(C(3)/20)*b{3},a{3},y);
w4=filter(10^(C(4)/20)*b{4},a{4},y);
w5=filter(10^(C(5)/20)*b{5},a{5},y);
w=w1+w2+w3+w4+w5;
% w=y;
x=audioplayer(y,fs);
stop1=0;
Max=length(y);
setappdata(handles.my_music_analysis_software,'Max',Max);
setappdata(handles.my_music_analysis_software,'fpath',fpath);
set(handles.jindu_var,'max',100);
str=ConvTime(fix(x.TotalSamples/fs));
set(handles.text_begin,'string','0:00');
set(handles.text_end,'string',str);
step=fix(x.TotalSamples/fs/4);
%Info= strcat('正在播放: ',filename);
set(handles.text_info,'string',filename);
guidata(hObject,handles);
% --- Executes on button press in button_play.
function button_play_Callback(hObject, eventdata, handles)
% hObject handle to button_play (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global x w fs stop1;
x=audioplayer(w,fs);
play(x);
stop1=0;
start(handles.timer1);
% --- Executes on button press in button_pause.
function button_pause_Callback(hObject, eventdata, handles)
% hObject handle to button_pause (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global stop1 x ;
stop1=1;
pause(x);
guidata(hObject,handles);
% --- Executes on button press in button_continue.
function button_continue_Callback(hObject, eventdata, handles)
% hObject handle to button_continue (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global stop1 x ;
stop1=0;
resume(x);
% --- Executes on button press in button_stop.
function button_stop_Callback(hObject, eventdata, handles)
% hObject handle to button_stop (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global x;
stop(x);
stop(handles.timer1);
function PlotUpdate(obj,events,handles)
global n w stop1 x fs t color1;
str=ConvTime(fix(x.CurrentSample/fs));
set(handles.text_time_info,'Visible','on');
set(handles.text_time,'string',str);
if (stop1==0)
if(isplaying(x))
t=x.CurrentSample/x.TotalSamples;
set(handles.jindu_var,'value',100*t)
Max=getappdata(handles.my_music_analysis_software,'Max');
fpath=getappdata(handles.my_music_analysis_software,'fpath');
if 1100*n<Max
m=w(1100*(n-1)+1:1100*n);
M=abs(fft(m));
for s=1:32
Z(s)=mean(M((s-1)*15+1:s*15));
end
axes(handles.axes1);
h1=bar(Z,color1);
axis off;box off;
set(h1,'ButtonDownFcn',{@Changecolor, 1});
end
n=n+1;
end
end
% --- Executes on slider movement.
function jindu_var_Callback(hObject, eventdata, handles)
% hObject handle to jindu_var (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'Value') returns position of slider
% get(hObject,'Min') and get(hObject,'Max') to determine range of slider
global x n;
duty=get(hObject,'value');
Setting=x.TotalSamples*duty/100;
Cul=x.CurrentSample;
stop(x);
play(x,Setting);
n=fix(Setting/1100);
% --- Executes during object creation, after setting all properties.
function jindu_var_CreateFcn(hObject, eventdata, handles)
% hObject handle to jindu_var (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: slider controls usually have a light gray background.
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.502 .502 .502]);
end
三、運行結果





四、備注
完整代碼或者代寫添加QQ 1564658423
往期回顧>>>>>>
【信號處理】基于matlab HMM的睡眠狀態檢測【含Matlab原始碼 050期】
【信號處理】基于matlab CDR噪聲和混響抑制【含Matlab原始碼 051期】
【信號處理】基于matlab最小二乘法解決稀疏信號恢復問題【含Matlab原始碼 052期】
【信號處理】基于matlab小波變換的音頻水印嵌入提取【含Matlab原始碼 053期】
【信號處理】基于matlab ICA演算法信號分離【含Matlab原始碼 054期】
【信號處理】基于matlab GUI界面的脈搏信號之脈率存檔【含Matlab原始碼 237期】
【信號處理】基于matlab GUI界面的虛擬信號發生器(各種波形)【含Matlab原始碼 271期】
【信號處理】基于matlab GUI界面信號發生器之電子琴【含Matlab原始碼 272期】
【信號處理】基于matlab的數字電子琴設計與實作【含Matlab原始碼 273期】
【雷達通信】基于matlab的雷達數字信號處理【含Matlab原始碼 281期】
【雷達通信】基于matlab線性調頻(LFM)脈沖壓縮雷達仿真【含Matlab原始碼 283期】
【雷達通信】基于mtatlab距離多普勒(RD)、CS、RM演算法的機載雷達成像【含Matlab原始碼 284期】
【雷達通信】《現代雷達系統分析與設計》大作業【含Matlab原始碼 285期】
【信號處理】基于matlab GUI語音信號綜合處理平臺【含Matlab原始碼 290期】
【信號處理】基于matlab GUI語音信號采集【含Matlab原始碼 291期】
【信號處理】基于matlab GUI語音幅度調制【含Matlab原始碼 292期】
【信號處理】基于matlab GUI語音合成【含Matlab原始碼 293期】
【信號處理】基于matlab GUI語音基頻識別【含Matlab原始碼 294期】
【信號處理】基于matlab GUI語音信號加密解密【含Matlab原始碼 295期】
【信號處理】基于matlab小波變換的語音增強【含Matlab原始碼 296期】
【信號處理】基于matlab GUI語音傅立葉變換降噪混頻【含Matlab原始碼 297期】
【信號處理】基于matlab GUI維納濾波之語音增強【含Matlab原始碼 298期】
【音頻處理】基于matlab GUI語音信號處理2【含Matlab原始碼 299期】
【雷達通信】基于matlab GUI雷達定位【含Matlab原始碼 302期】
【雷達通信】基于matlab GUI雷達脈沖壓縮【含Matlab原始碼 303期】
【雷達通信】基于matlab GUI雷達定位模擬【含Matlab原始碼 304期】
【雷達通信】基于matlab SVM識別雷達資料【含Matlab原始碼 305期】
【雷達影像】SAR合成孔徑雷達成像及處理【含Matlab原始碼 307期】
【資訊處理】基于GUI數字波束的演算法庫【含Matlab原始碼 313期】
【通信】基于matlab的OFDM-MIMO通信建模與仿真【含Matlab原始碼 314期】
【通信】基于matlab的OFDM仿真【含Matlab原始碼 315期】
【信號處理】基于matlab窗函式法的FIR數字濾波器設計【含Matlab原始碼 316期】
【通信】基于matlab FIR低通數字濾波器設計【含Matlab原始碼 323期】
【通信】基于matlab FIR IIR數字濾波器設計【含Matlab原始碼 324期】
【信號處理】基于matlab的語音信號頻譜分析儀【含Matlab原始碼 325期】
【調制信號】基于matlab GUI數字調制信號仿真【含Matlab原始碼 336期】
【通信】基于matlab的擴頻通信系統設計【含Matlab原始碼 337期】
【通信】基于matlab多徑衰落信道的仿真【含Matlab原始碼 338期】
【語音識別】基于matlab BP神經網路的語音情感識別【含Matlab原始碼 349期】
【信號處理】基于matlab音頻水印嵌入與提取【含Matlab原始碼 350期】
【音頻水印】基于matlab小波變換的量化音頻數字水印【含Matlab原始碼 351期】
【語音去噪】基于matlab低通和自適應濾波去噪【含Matlab原始碼 352期】
【信號處理】基于matlab 8級m序列【含Matlab原始碼 353期】
【情感識別】基于matlab GUI語音情感分類識別【含Matlab原始碼 354期】
【信號處理】基于matlab FIR與IIR濾波器低通、高通、帶通設計【含Matlab原始碼 360期】
【語音處理】基于matlab語音信號的預處理【含Matlab原始碼 364期】
【語音識別】基于matlab 傅立葉變換0-9的數字語音識別【含Matlab原始碼 384期】
【語音識別】基于matlab GUI DTW的0-9數字語音識別【含Matlab原始碼 385期】
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/264831.html
標籤:其他
上一篇:2021-02-28
下一篇:你真的了解自己的計算機嗎?
