midterm project
code:
function varargout = piano2(varargin)
% PIANO2 M-file for piano2.fig
% See also: GUIDE
% Edit the above text to modify the response to help piano2
% Last Modified by GUIDE v2.5 08-May-2019 19:56:38
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @piano2_OpeningFcn, ...
'gui_OutputFcn', @piano2_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
handles.output = hObject;
handles.SampleRate = 1/20000;
handles.SoundVector = 0;
handles.TimeValue = 0.3488;
% Load configs and precomputed variables
make_globals(1) %0417
global Master;
Master=1;
set(handles.Masterbtn, 'Value', 1);%0417
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes piano2 wait for user response (see UIRESUME)
% uiwait(handles.figure1);
varargout{1} = handles.output;
global Master;
global Fs;
if Master==0
freq = 207.65;
PlayNote(handles,freq);
else
signal = piano_key(36);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in ASharp3.
function ASharp3_Callback(hObject, eventdata, handles)
% hObject handle to ASharp3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
freq = 233.08;
PlayNote(handles,freq);
% --- Executes on button press in FSharp5.
function FSharp5_Callback(hObject, eventdata, handles)
% hObject handle to FSharp5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 739.99;
PlayNote(handles,freq);
else
signal = piano_key(58);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in FSharp3.
function FSharp3_Callback(hObject, eventdata, handles)
% hObject handle to FSharp3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 185;
PlayNote(handles,freq);
else
signal = piano_key(34);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in ASharp4.
function ASharp4_Callback(hObject, eventdata, handles)
% hObject handle to ASharp4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 466.16;
PlayNote(handles,freq);
else
signal = piano_key(50);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in DSharp5.
function DSharp5_Callback(hObject, eventdata, handles)
% hObject handle to DSharp5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 622.25;
PlayNote(handles,freq);
else
signal = piano_key(55);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in CSharp5.
function CSharp5_Callback(hObject, eventdata, handles)
% hObject handle to CSharp5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 554.37;
PlayNote(handles,freq);
else
signal = piano_key(53);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in GSharp4.
function GSharp4_Callback(hObject, eventdata, handles)
% hObject handle to GSharp4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 415.3;
PlayNote(handles,freq);
else
signal = piano_key(48);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in CSharp4.
function CSharp4_Callback(hObject, eventdata, handles)
% hObject handle to CSharp4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 277.18;
PlayNote(handles,freq);
else
signal = piano_key(41);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G3.
function G3_Callback(hObject, eventdata, handles)
% hObject handle to G3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 196;
PlayNote(handles,freq);
else
signal = piano_key(35); %G3=35
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A3.
function A3_Callback(hObject, eventdata, handles)
% hObject handle to A3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 220;
PlayNote(handles,freq);
else
signal = piano_key(37); %A3=37
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in B3.
function B3_Callback(hObject, eventdata, handles)
% hObject handle to B3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 246.94;
PlayNote(handles,freq);
else
signal = piano_key(39); %B3=39
sound(signal, Fs);
%axes(handles.axes1);
%cla reset;
%time=(1:length(signal))/Fs;
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in C4.
function C4_Callback(hObject, eventdata, handles)
% hObject handle to C4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 261.625;
PlayNote(handles,freq);
else
signal = piano_key(40); %C4=40
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in D4.
function D4_Callback(hObject, eventdata, handles)
% hObject handle to D4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
freq = 293.66;
PlayNote(handles,freq);
global Master;
global Fs;
if Master==0
freq = 293.66;
PlayNote(handles,freq);
else
signal = piano_key(42); %D4=42
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in E4.
function E4_Callback(hObject, eventdata, handles)
% hObject handle to E4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 329.63;
PlayNote(handles,freq);
else
signal = piano_key(44); %E4=44
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in F4.
function F4_Callback(hObject, eventdata, handles)
% hObject handle to F4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 349.23;
PlayNote(handles,freq);
else
signal = piano_key(45); %F4=45
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G4.
function G4_Callback(hObject, eventdata, handles)
% hObject handle to G4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 392;
PlayNote(handles,freq);
else
signal = piano_key(47); %G4=47
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A4.
function A4_Callback(hObject, eventdata, handles)
% hObject handle to A4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%freq = 440;
%PlayNote(handles,freq);
global Master;
global Fs;
if Master==0
freq = 440;
PlayNote(handles,freq);
else
signal = piano_key(49); %A4=49;
sound(signal, Fs);
%axes(handles.axes1);
%x = linspace(0, 2*pi); % 在 0 到 2*pi 間,等分取 100 個點
%plot(x, signal);
end
%=======
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in B4.
function B4_Callback(hObject, eventdata, handles)
% hObject handle to B4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 493.88;
PlayNote(handles,freq);
else
signal = piano_key(51); %B4=51;
sound(signal, Fs);
end
%=======
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in C5.
function C5_Callback(hObject, eventdata, handles)
% hObject handle to C5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
freq = 523.25;
PlayNote(handles,freq);
global Master;
global Fs;
if Master==0
freq = 523.25;
PlayNote(handles,freq);
else
signal = piano_key(52); %C5=52
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in D5.
function D5_Callback(hObject, eventdata, handles)
% hObject handle to D5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
freq = 587.33;
PlayNote(handles,freq);
global Master;
global Fs;
if Master==0
freq = 587.33;
PlayNote(handles,freq);
else
signal = piano_key(54); %D5=54
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in E5.
function E5_Callback(hObject, eventdata, handles)
% hObject handle to E5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
freq = 659.26;
PlayNote(handles,freq);
global Master;
global Fs;
if Master==0
freq = 659.26;
PlayNote(handles,freq);
else
signal = piano_key(56); %E5=56
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in F5.
function F5_Callback(hObject, eventdata, handles)
% hObject handle to F5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 698.46;
PlayNote(handles,freq);
else
signal = piano_key(57); %F5=57
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in FSharp4.
function FSharp4_Callback(hObject, eventdata, handles)
% hObject handle to FSharp4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 369.99;
PlayNote(handles,freq);
else
signal = piano_key(46);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in DSharp4.
function DSharp4_Callback(hObject, eventdata, handles)
% hObject handle to DSharp4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 311.13;
PlayNote(handles,freq);
else
signal = piano_key(43);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G5.
function G5_Callback(hObject, eventdata, handles)
% hObject handle to G5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 783.99;
PlayNote(handles,freq);
else
signal = piano_key(59); %G5=59
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in F3.
function F3_Callback(hObject, eventdata, handles)
% hObject handle to F3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 174.61;
PlayNote(handles,freq);
else
signal = piano_key(33); %F3=33
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in E3.
function E3_Callback(hObject, eventdata, handles)
% hObject handle to E3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 164.81;
PlayNote(handles,freq);
else
signal = piano_key(32); %E3=32
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in D3.
function D3_Callback(hObject, eventdata, handles)
% hObject handle to D3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
freq = 146.83;
PlayNote(handles,freq);
global Master;
global Fs;
if Master==0
freq = 146.83;
PlayNote(handles,freq);
else
signal = piano_key(30); %D3=30
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A5.
function A5_Callback(hObject, eventdata, handles)
% hObject handle to A5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 880;
PlayNote(handles,freq);
else
signal = piano_key(61); %A5=61
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in C3.
function C3_Callback(hObject, eventdata, handles)
% hObject handle to C3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 130.81;
PlayNote(handles,freq);
else
signal = piano_key(28); %C3=28
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in B5.
function B5_Callback(hObject, eventdata, handles)
% hObject handle to B5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 987.77;
PlayNote(handles,freq);
else
signal = piano_key(63); %B5=63
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in GSharp5.
function GSharp5_Callback(hObject, eventdata, handles)
% hObject handle to GSharp5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 830.61;
PlayNote(handles,freq);
else
signal = piano_key(60);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in ASharp5.
function ASharp5_Callback(hObject, eventdata, handles)
% hObject handle to ASharp5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 932.33;
PlayNote(handles,freq);
else
signal = piano_key(62);
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in DSharp3.
function DSharp3_Callback(hObject, eventdata, handles)
% hObject handle to DSharp3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 155.56;
PlayNote(handles,freq);
else
signal = piano_key(31); %DS3=31
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in CSharp3.
function CSharp3_Callback(hObject, eventdata, handles)
% hObject handle to CSharp3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 138.59;
PlayNote(handles,freq);
else
signal = piano_key(2); %CS3=2
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
function TestS_Callback(hObject, eventdata, handles)
% hObject handle to CSharp3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
freq = 138.59;
PlayNote(handles,freq);
[y, Fs] = audioread('wave.wav');
soundsc(y,Fs);
Ts = 1/Fs;
N = length(y);
t = Ts*[0:1:N-1];
%figure(1);
axes(handles.axes1);
plot(t, y);
grid on;
title('wave1 file');
%test write
audiowrite('d:\tmp\test2.wav', y, Fs);
disp("end of audiowrite");
%end of test write
%============================================
function figure1_WindowKeyPressFcn(hObject, eventdata, handles)
switch eventdata.Key
case 'a'
disp('aaaaa')
freq = 138.59;
PlayNote(handles,freq);
case 'b'
disp('bbbb')
freq = 138.59;
PlayNote(handles,freq);
end
%===========================================
function PlayNote(handles,freq)
% plays the note that was pressed for 1 second
% also sets the frequency value on GUI for last played note.
global t;
strFreq = num2str(freq);
set(handles.STFreqValue, 'String', strFreq);
SampleRate = handles.SampleRate;
TimeValue = handles.TimeValue;
Samples = 0:SampleRate:TimeValue;
SinOn = get(handles.SinWave, 'Value');
SquareOn = get(handles.SquareWave, 'Value');
SawtoothOn = get(handles.SawtoothWave, 'Value');
if SinOn == 1
soundVector = sin(2*pi*freq*Samples);
elseif SquareOn == 1
soundVector = square(2*pi*freq*Samples);
elseif SawtoothOn == 1
soundVector = sawtooth(2*pi*freq*Samples);
end
%=======================
axes(handles.axes1);
plot(soundVector);
grid on;
title('Basic Frequency');
%grid on;
%title('Basic Freq');
%x = linspace(0, 2*pi); % 在 0 到 2*pi 間,等分取 100 個點
%plot(x, sin(x), x, cos(x), x, sin(x)+cos(x)); % 進行多條曲線描點作圖
%=======================
sound(soundVector, 1/SampleRate)
RecordOn = get(handles.Record, 'Value');
if RecordOn == 1
SoundVectorLong = handles.SoundVector;
if SoundVectorLong == 0
SoundVectorLong = soundVector;
else
SoundVectorLong = cat(2, SoundVectorLong, soundVector);
end
handles.SoundVector = SoundVectorLong;
guidata(handles.figure1, handles);
end
% --- Executes on button press in Play.
function Play_Callback(hObject, eventdata, handles)
% hObject handle to Play (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
SoundVector = handles.SoundVector;
SampleRate = handles.SampleRate;
sound(SoundVector, 1/SampleRate)
% 測試
%Fs=8000;
%timex=(1:length(SoundVector))/Fs; % 測試 時間軸的向量 Fs ASSUME 8000
%plot(timex, SoundVector); % 測試 畫出時間軸上的波形
% --- Executes on button press in Stop.
function Stop_Callback(hObject, eventdata, handles)
% hObject handle to Stop (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
handles.SoundVector = 0;
guidata(handles.figure1, handles);
function Time_Callback(hObject, eventdata, handles)
% hObject handle to Time (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,'String') returns contents of Time as text
% str2double(get(hObject,'String')) returns contents of Time as a double
Value = str2double(get(hObject, 'String'));
TimeValue = 60/Value;
half = get(handles.HalfNote, 'Value');
Whole = get(handles.WholeNote, 'Value');
Eighth = get(handles.EighthNote, 'Value');
if half == 1
TimeValue = TimeValue * 2;
elseif Whole == 1
TimeValue = TimeValue * 4;
elseif Eighth == 1
TimeValue = TimeValue / 2;
end
handles.TimeValue = TimeValue;
guidata(handles.figure1, handles);
% --- Executes on button press in QuarterNote.
function QuarterNote_Callback(hObject, eventdata, handles)
% hObject handle to QuarterNote (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.QuarterNote, 'Value', 1);
set(handles.HalfNote, 'Value', 0);
set(handles.EighthNote, 'Value', 0);
set(handles.WholeNote, 'Value', 0);
Value = str2double(get(handles.Time, 'String'));
TimeValue = 60/Value;
handles.TimeValue = TimeValue;
guidata(handles.figure1, handles);
% --- Executes on button press in HalfNote.
function HalfNote_Callback(hObject, eventdata, handles)
% hObject handle to HalfNote (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.QuarterNote, 'Value', 0);
set(handles.HalfNote, 'Value', 1);
set(handles.EighthNote, 'Value', 0);
set(handles.WholeNote, 'Value', 0);
Value = str2double(get(handles.Time, 'String'));
TimeValue = 60/Value * 2;
handles.TimeValue = TimeValue;
guidata(handles.figure1, handles);
% --- Executes on button press in EighthNote.
function EighthNote_Callback(hObject, eventdata, handles)
% hObject handle to EighthNote (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.QuarterNote, 'Value', 0);
set(handles.HalfNote, 'Value', 0);
set(handles.EighthNote, 'Value', 1);
set(handles.WholeNote, 'Value', 0);
Value = str2double(get(handles.Time, 'String'));
TimeValue = (60/Value) / 2;
handles.TimeValue = TimeValue;
guidata(handles.figure1, handles);
% --- Executes on button press in WholeNote.
function WholeNote_Callback(hObject, eventdata, handles)
% hObject handle to WholeNote (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.QuarterNote, 'Value', 0);
set(handles.HalfNote, 'Value', 0);
set(handles.EighthNote, 'Value', 0);
set(handles.WholeNote, 'Value', 1);
Value = str2double(get(handles.Time, 'String'));
TimeValue = 60/Value * 4;
handles.TimeValue = TimeValue;
guidata(handles.figure1, handles);
% --- Executes during object creation, after setting all properties.
function QuarterNote_CreateFcn(hObject, eventdata, handles)
% hObject handle to QuarterNote (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
set(hObject, 'Value', 1);
% --- Executes on button press in OutToWav.
function OutToWav_Callback(hObject, eventdata, handles)
% hObject handle to OutToWav (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
SoundVector = handles.SoundVector;
SampleRate = handles.SampleRate;
if SoundVector == 0
return;
else
Filename = get(handles.Filename, 'String');
%audiowrite(SoundVector, 1/SampleRate, 32, Filename); % 0416
audiowrite(Filename, SoundVector, 20000);
end
% --- Executes on button press in SinWave.
function SinWave_Callback(hObject, eventdata, handles)
% hObject handle to SinWave (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of SinWave
set(handles.SinWave, 'Value', 1);
set(handles.SquareWave, 'Value', 0);
set(handles.SawtoothWave, 'Value', 0);
% --- Executes during object creation, after setting all properties.
function SinWave_CreateFcn(hObject, eventdata, handles)
% hObject handle to SinWave (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
set(hObject, 'Value', 1);
% --- Executes on button press in SquareWave.
function SquareWave_Callback(hObject, eventdata, handles)
% hObject handle to SquareWave (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of SquareWave
set(handles.SinWave, 'Value', 0);
set(handles.SquareWave, 'Value', 1);
set(handles.SawtoothWave, 'Value', 0);
% --- Executes on button press in SawtoothWave.
function SawtoothWave_Callback(hObject, eventdata, handles)
% hObject handle to SawtoothWave (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of SawtoothWave
set(handles.SinWave, 'Value', 0);
set(handles.SquareWave, 'Value', 0);
set(handles.SawtoothWave, 'Value', 1);
%%%%backup
%y = getaudiodata(recObj, 'double'); % get data as a double array
%plot((1:length(data))/fs, y); xlabel('Time (sec)'); ylabel('Amplitude');
% --- Executes on button press in pushbutton62.
function pushbutton62_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton62 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in F1S.
function F1S_Callback(hObject, eventdata, handles)
% hObject handle to F1S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 46.24;
PlayNote(handles,freq);
else
signal = piano_key(10); %F1S=10
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in pushbutton64.
function pushbutton64_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton64 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in D1S.
function D1S_Callback(hObject, eventdata, handles)
% hObject handle to D1S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 38.89;
PlayNote(handles,freq);
else
signal = piano_key(7); %D1S=7
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in F2S.
function F2S_Callback(hObject, eventdata, handles)
% hObject handle to F2S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 92.49;
PlayNote(handles,freq);
else
signal = piano_key(22); %E2=22
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in pushbutton67.
function pushbutton67_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton67 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in A2S.
function A2S_Callback(hObject, eventdata, handles)
% hObject handle to A2S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 116.54;
PlayNote(handles,freq);
else
signal = piano_key(26); %A2S=26
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G2S.
function G2S_Callback(hObject, eventdata, handles)
% hObject handle to G2S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 103.82;
PlayNote(handles,freq);
else
signal = piano_key(24); %G2S=24
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G1S.
function G1S_Callback(hObject, eventdata, handles)
% hObject handle to G1S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 51.91;
PlayNote(handles,freq);
else
signal = piano_key(12); %G1S=12
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in E1.
function E1_Callback(hObject, eventdata, handles)
% hObject handle to E1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 41.2;
PlayNote(handles,freq);
else
signal = piano_key(8); %E1=8
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in F1.
function F1_Callback(hObject, eventdata, handles)
% hObject handle to F1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 43.62;
PlayNote(handles,freq);
else
signal = piano_key(9); %F1=9
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G1.
function G1_Callback(hObject, eventdata, handles)
% hObject handle to G1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 48.99;
PlayNote(handles,freq);
else
signal = piano_key(11); %G1S=11
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A1.
function A1_Callback(hObject, eventdata, handles)
% hObject handle to A1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 55;
PlayNote(handles,freq);
else
signal = piano_key(13); %A1=13
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in B1.
function B1_Callback(hObject, eventdata, handles)
% hObject handle to B1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 61.73;
PlayNote(handles,freq);
else
signal = piano_key(15); %B1=15
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in C2.
function C2_Callback(hObject, eventdata, handles)
% hObject handle to C2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 65.4;
PlayNote(handles,freq);
else
signal = piano_key(16); %C2=16
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in D2.
function D2_Callback(hObject, eventdata, handles)
% hObject handle to D2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 73.4;
PlayNote(handles,freq);
else
signal = piano_key(18); %D2=18
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in E2.
function E2_Callback(hObject, eventdata, handles)
% hObject handle to E2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 82.4;
PlayNote(handles,freq);
else
signal = piano_key(20); %E2=20
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in F2.
function F2_Callback(hObject, eventdata, handles)
% hObject handle to F2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 87.3;
PlayNote(handles,freq);
else
signal = piano_key(21); %F2=21
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G2.
function G2_Callback(hObject, eventdata, handles)
% hObject handle to G2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 97.99;
PlayNote(handles,freq);
else
signal = piano_key(23); %G2=23
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A2.
function A2_Callback(hObject, eventdata, handles)
% hObject handle to A2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 110;
PlayNote(handles,freq);
else
signal = piano_key(25); %A2=25
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in B2.
function B2_Callback(hObject, eventdata, handles)
% hObject handle to B2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 123.47;
PlayNote(handles,freq);
else
signal = piano_key(27); %B2=27
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in pushbutton83.
function pushbutton83_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton83 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton84.
function pushbutton84_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton84 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in D2S.
function D2S_Callback(hObject, eventdata, handles)
% hObject handle to D2S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 77.78;
PlayNote(handles,freq);
else
signal = piano_key(19); %D2S=19
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in C2S.
function C2S_Callback(hObject, eventdata, handles)
% hObject handle to C2S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 69.29;
PlayNote(handles,freq);
else
signal = piano_key(17); %C2S=17
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in pushbutton87.
function pushbutton87_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton87 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in D1.
function D1_Callback(hObject, eventdata, handles)
% hObject handle to D1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 36.7;
PlayNote(handles,freq);
else
signal = piano_key(6); %D1=6
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in C1.
function C1_Callback(hObject, eventdata, handles)
% hObject handle to C1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 32.7;
PlayNote(handles,freq);
else
signal = piano_key(4); %C1=4
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in B0.
function B0_Callback(hObject, eventdata, handles)
% hObject handle to B0 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 30.86;
PlayNote(handles,freq);
else
signal = piano_key(3); %B0=3
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in pushbutton91.
function pushbutton91_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton91 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in A0.
function A0_Callback(hObject, eventdata, handles)
% hObject handle to A0 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 27.5;
PlayNote(handles,freq);
else
signal = piano_key(1); %A0=1
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in pushbutton93.
function pushbutton93_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton93 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton94.
function pushbutton94_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton94 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in pushbutton95.
function pushbutton95_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton95 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Executes on button press in C1S.
function C1S_Callback(hObject, eventdata, handles)
% hObject handle to C1S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 34.64;
PlayNote(handles,freq);
else
signal = piano_key(5); %C1S=5
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in TestS.
function pushbutton97_Callback(hObject, eventdata, handles)
% hObject handle to TestS (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% --- Set key pad into grey
function Setkey_pad_into_grey(handles)
Grey=[0.8 0.8 0.8];
set(handles.A0 ,'BackgroundColor',Grey);
set(handles.B0 ,'BackgroundColor',Grey);
set(handles.C1 ,'BackgroundColor',Grey);
set(handles.D1 ,'BackgroundColor',Grey);
set(handles.E1 ,'BackgroundColor',Grey);
set(handles.F1 ,'BackgroundColor',Grey);
set(handles.G1 ,'BackgroundColor',Grey);
set(handles.A1 ,'BackgroundColor',Grey);
set(handles.B1 ,'BackgroundColor',Grey);
set(handles.C2 ,'BackgroundColor',Grey);
set(handles.D2 ,'BackgroundColor',Grey);
set(handles.E2 ,'BackgroundColor',Grey);
set(handles.F2 ,'BackgroundColor',Grey);
set(handles.G2 ,'BackgroundColor',Grey);
set(handles.A2 ,'BackgroundColor',Grey);
set(handles.B2 ,'BackgroundColor',Grey);
set(handles.C3 ,'BackgroundColor',Grey);
set(handles.D3 ,'BackgroundColor',Grey);
set(handles.E3 ,'BackgroundColor',Grey);
set(handles.F3 ,'BackgroundColor',Grey);
set(handles.G3 ,'BackgroundColor',Grey);
set(handles.A3 ,'BackgroundColor',Grey);
set(handles.B3 ,'BackgroundColor',Grey);
set(handles.C4 ,'BackgroundColor',Grey);
set(handles.D4 ,'BackgroundColor',Grey);
set(handles.E4 ,'BackgroundColor',Grey);
set(handles.F4 ,'BackgroundColor',Grey);
set(handles.G4 ,'BackgroundColor',Grey);
set(handles.A4 ,'BackgroundColor',Grey);
set(handles.B4 ,'BackgroundColor',Grey);
set(handles.C5 ,'BackgroundColor',Grey);
set(handles.D5 ,'BackgroundColor',Grey);
set(handles.E5 ,'BackgroundColor',Grey);
set(handles.F5 ,'BackgroundColor',Grey);
set(handles.G5 ,'BackgroundColor',Grey);
set(handles.A5 ,'BackgroundColor',Grey);
set(handles.B5 ,'BackgroundColor',Grey);
set(handles.C6 ,'BackgroundColor',Grey);
set(handles.D6 ,'BackgroundColor',Grey);
set(handles.E6 ,'BackgroundColor',Grey);
set(handles.F6 ,'BackgroundColor',Grey);
set(handles.G6 ,'BackgroundColor',Grey);
set(handles.A6 ,'BackgroundColor',Grey);
set(handles.B6 ,'BackgroundColor',Grey);
Black=[0 0 0];
set(handles.A0SS ,'BackgroundColor',Black);
set(handles.C1S ,'BackgroundColor',Black);
set(handles.D1S ,'BackgroundColor',Black);
set(handles.F1S ,'BackgroundColor',Black);
set(handles.G1S ,'BackgroundColor',Black);
set(handles.A1S ,'BackgroundColor',Black);
set(handles.C2S ,'BackgroundColor',Black);
set(handles.D2S ,'BackgroundColor',Black);
set(handles.F2S ,'BackgroundColor',Black);
set(handles.G2S ,'BackgroundColor',Black);
set(handles.A2S ,'BackgroundColor',Black);
set(handles.CSharp3 ,'BackgroundColor',Black);
set(handles.DSharp3 ,'BackgroundColor',Black);
set(handles.FSharp3 ,'BackgroundColor',Black);
set(handles.GSharp3 ,'BackgroundColor',Black);
set(handles.CSharp4 ,'BackgroundColor',Black);
set(handles.DSharp4 ,'BackgroundColor',Black);
set(handles.FSharp4 ,'BackgroundColor',Black);
set(handles.GSharp4 ,'BackgroundColor',Black);
set(handles.ASharp4 ,'BackgroundColor',Black);
set(handles.CSharp5 ,'BackgroundColor',Black);
set(handles.DSharp5 ,'BackgroundColor',Black);
set(handles.FSharp5 ,'BackgroundColor',Black);
set(handles.GSharp5 ,'BackgroundColor',Black);
set(handles.ASharp5 ,'BackgroundColor',Black);
set(handles.C6S ,'BackgroundColor',Black);
set(handles.D6S ,'BackgroundColor',Black);
set(handles.F6S ,'BackgroundColor',Black);
set(handles.G6S ,'BackgroundColor',Black);
set(handles.A6S ,'BackgroundColor',Black);
%set(gcbo,'Backgroundcolor','g'); % r [1 0 0 ] , g [0 1 0] ,b [0 0 1]
%pause(0.05)
%set(gcbo,'Backgroundcolor',[0.8 0.8 0.8]);
% --- Executes on button press in Normalbtn.
function Normalbtn_Callback(hObject, eventdata, handles)
% hObject handle to Normalbtn (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of Normalbtn
global Master;
Master=0;
set(handles.Normalbtn, 'Value', 1);
set(handles.Masterbtn, 'Value', 0);
% --- Executes on button press in Masterbtn.
function Masterbtn_Callback(hObject, eventdata, handles)
% hObject handle to Masterbtn (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of Masterbtn
global Master;
Master=1;
set(handles.Normalbtn, 'Value', 0);
set(handles.Masterbtn, 'Value', 1);
% --- Executes on button press in BeeDemo.
%https://tw.answers.yahoo.com/question/index?qid=20080918000016KK05990
%http://liyilung926348.pixnet.net/blog/post/261113654-%E5%85%92%E6%AD%8C%E7%B0%A1%E8%AD%9C
function BeeDemo_Callback(hObject, eventdata, handles)
% hObject handle to BeeDemo (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
currentFolder = pwd
filename=strcat(currentFolder,'\','bee.txt');
Bee=dlmread('bee.txt');
[row,col]=size(Bee);
for i = 1:col
disp(Bee(1,i))
delaytime=0.3;
Setkey_pad_into_grey(handles);
switch Bee(1,i)
case 0
pause(delaytime);
pause(delaytime);
case 1
C4_Callback(hObject, eventdata, handles);
set(handles.C4,'BackgroundColor','green');
pause(delaytime);
case 2
D4_Callback(hObject, eventdata, handles);
set(handles.D4,'BackgroundColor','green');
pause(delaytime);
case 3
E4_Callback(hObject, eventdata, handles);
set(handles.E4,'BackgroundColor','green');
pause(delaytime);
case 4
F4_Callback(hObject, eventdata, handles);
set(handles.F4,'BackgroundColor','green');
pause(delaytime);
case 5
G4_Callback(hObject, eventdata, handles);
set(handles.G4,'BackgroundColor','green');
pause(delaytime);
case 6
A4_Callback(hObject, eventdata, handles);
set(handles.A4,'BackgroundColor','green');
pause(delaytime);
case 7
B4_Callback(hObject, eventdata, handles);
set(handles.B4,'BackgroundColor','green');
pause(delaytime);
case 8
C5_Callback(hObject, eventdata, handles);
set(handles.C5,'BackgroundColor','green');
pause(delaytime);
end
end
% --- Executes on button press in TigerDemo.
function TigerDemo_Callback(hObject, eventdata, handles)
% hObject handle to TigerDemo (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
currentFolder = pwd
filename=strcat(currentFolder,'\','Tiger.txt');
Bee=dlmread('Tiger.txt');
[row,col]=size(Bee);
for i = 1:col
disp(Bee(1,i))
delaytime=0.3;
Setkey_pad_into_grey(handles);
switch Bee(1,i)
case 0
pause(delaytime);
pause(delaytime);
case 1
C4_Callback(hObject, eventdata, handles);
set(handles.C4,'BackgroundColor','green');
pause(delaytime);
case 2
D4_Callback(hObject, eventdata, handles);
set(handles.D4,'BackgroundColor','green');
pause(delaytime);
case 3
E4_Callback(hObject, eventdata, handles);
set(handles.E4,'BackgroundColor','green');
pause(delaytime);
case 4
F4_Callback(hObject, eventdata, handles);
set(handles.F4,'BackgroundColor','green');
pause(delaytime);
case 5
G4_Callback(hObject, eventdata, handles);
set(handles.G4,'BackgroundColor','green');
pause(delaytime);
case 6
A4_Callback(hObject, eventdata, handles);
set(handles.A4,'BackgroundColor','green');
pause(delaytime);
case 7
B4_Callback(hObject, eventdata, handles);
set(handles.B4,'BackgroundColor','green');
pause(delaytime);
case 8
C5_Callback(hObject, eventdata, handles);
set(handles.C5,'BackgroundColor','green');
pause(delaytime);
end
end
% --- Executes on button press in SisterDemo.
function SisterDemo_Callback(hObject, eventdata, handles)
% hObject handle to SisterDemo (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
currentFolder = pwd
filename=strcat(currentFolder,'\','sister.txt');
Bee=dlmread('sister.txt');
[row,col]=size(Bee);
for i = 1:col
disp(Bee(1,i))
delaytime=0.3;
Setkey_pad_into_grey(handles);
switch Bee(1,i)
case 0
pause(delaytime);
pause(delaytime);
case 1
C4_Callback(hObject, eventdata, handles);
set(handles.C4,'BackgroundColor','green');
pause(delaytime);
case 2
D4_Callback(hObject, eventdata, handles);
set(handles.D4,'BackgroundColor','green');
pause(delaytime);
case 3
E4_Callback(hObject, eventdata, handles);
set(handles.E4,'BackgroundColor','green');
pause(delaytime);
case 4
F4_Callback(hObject, eventdata, handles);
set(handles.F4,'BackgroundColor','green');
pause(delaytime);
case 5
G4_Callback(hObject, eventdata, handles);
set(handles.G4,'BackgroundColor','green');
pause(delaytime);
case 6
A4_Callback(hObject, eventdata, handles);
set(handles.A4,'BackgroundColor','green');
pause(delaytime);
case 7
B4_Callback(hObject, eventdata, handles);
set(handles.B4,'BackgroundColor','green');
pause(delaytime);
case 8
C5_Callback(hObject, eventdata, handles);
set(handles.C5,'BackgroundColor','green');
pause(delaytime);
end
end
% --- Executes on button press in StarDemo.
function StarDemo_Callback(hObject, eventdata, handles)
% hObject handle to StarDemo (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
currentFolder = pwd
filename=strcat(currentFolder,'\','star.txt');
Bee=dlmread('star.txt');
[row,col]=size(Bee);
for i = 1:col
disp(Bee(1,i))
delaytime=0.3;
Setkey_pad_into_grey(handles);
switch Bee(1,i)
case 0
pause(delaytime);
pause(delaytime);
case 1
C4_Callback(hObject, eventdata, handles);
set(handles.C4,'BackgroundColor','green');
pause(delaytime);
case 2
D4_Callback(hObject, eventdata, handles);
set(handles.D4,'BackgroundColor','green');
pause(delaytime);
case 3
E4_Callback(hObject, eventdata, handles);
set(handles.E4,'BackgroundColor','green');
pause(delaytime);
case 4
F4_Callback(hObject, eventdata, handles);
set(handles.F4,'BackgroundColor','green');
pause(delaytime);
case 5
G4_Callback(hObject, eventdata, handles);
set(handles.G4,'BackgroundColor','green');
pause(delaytime);
case 6
A4_Callback(hObject, eventdata, handles);
set(handles.A4,'BackgroundColor','green');
pause(delaytime);
case 7
B4_Callback(hObject, eventdata, handles);
set(handles.B4,'BackgroundColor','green');
pause(delaytime);
case 8
C5_Callback(hObject, eventdata, handles);
set(handles.C5,'BackgroundColor','green');
pause(delaytime);
end
end
% --- Executes on button press in D6.
function D6_Callback(hObject, eventdata, handles)
% hObject handle to D6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1174.6;
PlayNote(handles,freq);
else
signal = piano_key(66); %D6=66
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in C6.
function C6_Callback(hObject, eventdata, handles)
% hObject handle to C6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1046.5;
PlayNote(handles,freq);
else
signal = piano_key(64); %C6=64
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in C6S.
function C6S_Callback(hObject, eventdata, handles)
% hObject handle to C6S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1108.7;
PlayNote(handles,freq);
else
signal = piano_key(65); %C6S=65
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in E6.
function E6_Callback(hObject, eventdata, handles)
% hObject handle to E6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1318.5;
PlayNote(handles,freq);
else
signal = piano_key(68); %E6=68
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in D6S.
function D6S_Callback(hObject, eventdata, handles)
% hObject handle to D6S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1244.5;
PlayNote(handles,freq);
else
signal = piano_key(67); %D6S=67
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in F6.
function F6_Callback(hObject, eventdata, handles)
% hObject handle to F6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1396.9;
PlayNote(handles,freq);
else
signal = piano_key(69); %F6=69
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G6.
function G6_Callback(hObject, eventdata, handles)
% hObject handle to G6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1567.9;
PlayNote(handles,freq);
else
signal = piano_key(71); %G6=71
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in F6S.
function F6S_Callback(hObject, eventdata, handles)
% hObject handle to F6S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1479.9;
PlayNote(handles,freq);
else
signal = piano_key(70); %F6S=70
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in G6S.
function G6S_Callback(hObject, eventdata, handles)
% hObject handle to G6S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1661.2;
PlayNote(handles,freq);
else
signal = piano_key(72); %G6S=72
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A6.
function A6_Callback(hObject, eventdata, handles)
% hObject handle to A6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1760;
PlayNote(handles,freq);
else
signal = piano_key(73); %A6=73
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in B6.
function B6_Callback(hObject, eventdata, handles)
% hObject handle to B6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1975.5;
PlayNote(handles,freq);
else
signal = piano_key(75); %B6=75
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A6S.
function A6S_Callback(hObject, eventdata, handles)
% hObject handle to A6S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 1864.6;
PlayNote(handles,freq);
else
signal = piano_key(74); %A6S=74
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A1S.
function A1S_Callback(hObject, eventdata, handles)
% hObject handle to A1S (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 58.27;
PlayNote(handles,freq);
else
signal = piano_key(14); %A1S=14
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in A0SS.
function A0SS_Callback(hObject, eventdata, handles)
% hObject handle to A0SS (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global Master;
global Fs;
if Master==0
freq = 29.1;
PlayNote(handles,freq);
else
signal = piano_key(2); %A0S=2
sound(signal, Fs);
end
%=====
Setkey_pad_into_grey(handles);
set(gcbo,'Backgroundcolor','green');
% --- Executes on button press in smallstar.
function smallstar_Callback(hObject, eventdata, handles)
% hObject handle to smallstar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
currentFolder = pwd
filename=strcat(currentFolder,'\','smallstar.txt');
Bee=dlmread('smallstar.txt');
[row,col]=size(Bee);
for i = 1:col
disp(Bee(1,i))
delaytime=0.3;
Setkey_pad_into_grey(handles);
switch Bee(1,i)
case 0
pause(delaytime);
pause(delaytime);
case 1
C4_Callback(hObject, eventdata, handles);
set(handles.C4,'BackgroundColor','green');
pause(delaytime);
case 2
D4_Callback(hObject, eventdata, handles);
set(handles.D4,'BackgroundColor','green');
pause(delaytime);
case 3
E4_Callback(hObject, eventdata, handles);
set(handles.E4,'BackgroundColor','green');
pause(delaytime);
case 4
F4_Callback(hObject, eventdata, handles);
set(handles.F4,'BackgroundColor','green');
pause(delaytime);
case 5
G4_Callback(hObject, eventdata, handles);
set(handles.G4,'BackgroundColor','green');
pause(delaytime);
case 6
A4_Callback(hObject, eventdata, handles);
set(handles.A4,'BackgroundColor','green');
pause(delaytime);
case 7
B4_Callback(hObject, eventdata, handles);
set(handles.B4,'BackgroundColor','green');
pause(delaytime);
case 8
C5_Callback(hObject, eventdata, handles);
set(handles.C5,'BackgroundColor','green');
pause(delaytime);
end
end
function pushbutton122_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton122 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
currentFolder = pwd
filename=strcat(currentFolder,'\','bb.txt');
Bee=dlmread('bb.txt');
[row,col]=size(Bee);
for i = 1:col
disp(Bee(1,i))
delaytime=0.5;
delaytime1=1;
Setkey_pad_into_grey(handles);
switch Bee(1,i)
case 0
pause(delaytime);
pause(delaytime);
case 1
C4_Callback(hObject, eventdata, handles);
set(handles.C4,'BackgroundColor','yellow');
pause(delaytime1);
case 2
D4_Callback(hObject, eventdata, handles);
set(handles.D4,'BackgroundColor','green');
pause(delaytime);
case 3
E4_Callback(hObject, eventdata, handles);
set(handles.E4,'BackgroundColor','green');
pause(delaytime1);
case 4
F4_Callback(hObject, eventdata, handles);
set(handles.F4,'BackgroundColor','green');
pause(delaytime);
case 5
G4_Callback(hObject, eventdata, handles);
set(handles.G4,'BackgroundColor','green');
pause(delaytime1);
case 6
A4_Callback(hObject, eventdata, handles);
set(handles.A4,'BackgroundColor','green');
pause(delaytime1);
case 7
B4_Callback(hObject, eventdata, handles);
set(handles.B4,'BackgroundColor','green');
pause(delaytime);
case 8
C5_Callback(hObject, eventdata, handles);
set(handles.C5,'BackgroundColor','yellow');
pause(delaytime);
case 9
D5_Callback(hObject, eventdata, handles);
set(handles.D5,'BackgroundColor','yellow');
pause(delaytime);
case 10
E5_Callback(hObject, eventdata, handles);
set(handles.E5S,'BackgroundColor','blue');
pause(delaytime);
case 11
F5_Callback(hObject, eventdata, handles);
set(handles.F5,'BackgroundColor','blue');
pause(delaytime);
case 12
G5_Callback(hObject, eventdata, handles);
set(handles.G5,'BackgroundColor','blue');
pause(delaytime);
case 13
A5_Callback(hObject, eventdata, handles);
set(handles.A5,'BackgroundColor','blue');
pause(delaytime);
case 14
B5_Callback(hObject, eventdata, handles);
set(handles.B5,'BackgroundColor','blue');
pause(delaytime);
case 15
C3_Callback(hObject, eventdata, handles);
set(handles.C3,'BackgroundColor','blue');
pause(delaytime);
case 16
D3_Callback(hObject, eventdata, handles);
set(handles.D3,'BackgroundColor','blue');
pause(delaytime);
case 17
E3_Callback(hObject, eventdata, handles);
set(handles.E3,'BackgroundColor','blue');
pause(delaytime);
case 18
F3_Callback(hObject, eventdata, handles);
set(handles.F3,'BackgroundColor','blue');
pause(delaytime);
case 19
G3_Callback(hObject, eventdata, handles);
set(handles.G3,'BackgroundColor','blue');
pause(delaytime);
case 20
A3_Callback(hObject, eventdata, handles);
set(handles.A3,'BackgroundColor','blue');
pause(delaytime);
case 21
B3_Callback(hObject, eventdata, handles);
set(handles.B3,'BackgroundColor','blue');
pause(delaytime);
end
end
% --- Executes on button press in merry_christmas.
function merry_christmas_Callback(hObject, eventdata, handles)
% hObject handle to merry_christmas (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
currentFolder = pwd
filename=strcat(currentFolder,'\','merry_christmas.txt');
Bee=dlmread('merry_christmas.txt');
[row,col]=size(Bee);
for i = 1:col
disp(Bee(1,i))
delaytime=0.5;
delaytime1=1;
Setkey_pad_into_grey(handles);
switch Bee(1,i)
case 0
pause(delaytime);
pause(delaytime);
case 1
C4_Callback(hObject, eventdata, handles);
set(handles.C4,'BackgroundColor','yellow');
pause(delaytime);
case 2
D4_Callback(hObject, eventdata, handles);
set(handles.D4,'BackgroundColor','green');
pause(delaytime);
case 3
E4_Callback(hObject, eventdata, handles);
set(handles.E4,'BackgroundColor','green');
pause(delaytime);
case 4
F4_Callback(hObject, eventdata, handles);
set(handles.F4,'BackgroundColor','green');
pause(delaytime);
case 5
G4_Callback(hObject, eventdata, handles);
set(handles.G4,'BackgroundColor','green');
pause(delaytime);
case 6
A4_Callback(hObject, eventdata, handles);
set(handles.A4,'BackgroundColor','green');
pause(delaytime);
case 7
B4_Callback(hObject, eventdata, handles);
set(handles.B4,'BackgroundColor','green');
pause(delaytime);
case 8
C5_Callback(hObject, eventdata, handles);
set(handles.C5,'BackgroundColor','yellow');
pause(delaytime);
case 9
D5_Callback(hObject, eventdata, handles);
set(handles.D5,'BackgroundColor','yellow');
pause(delaytime);
case 10
E5_Callback(hObject, eventdata, handles);
set(handles.E5,'BackgroundColor','blue');
pause(delaytime);
case 11
F5_Callback(hObject, eventdata, handles);
set(handles.F5,'BackgroundColor','blue');
pause(delaytime);
case 12
G5_Callback(hObject, eventdata, handles);
set(handles.G5,'BackgroundColor','blue');
pause(delaytime);
case 13
A5_Callback(hObject, eventdata, handles);
set(handles.A5,'BackgroundColor','blue');
pause(delaytime);
case 14
B5_Callback(hObject, eventdata, handles);
set(handles.B5,'BackgroundColor','blue');
pause(delaytime);
case 15
C3_Callback(hObject, eventdata, handles);
set(handles.C3,'BackgroundColor','blue');
pause(delaytime);
case 16
D3_Callback(hObject, eventdata, handles);
set(handles.D3,'BackgroundColor','blue');
pause(delaytime);
case 17
E3_Callback(hObject, eventdata, handles);
set(handles.E3,'BackgroundColor','blue');
pause(delaytime);
case 18
F3_Callback(hObject, eventdata, handles);
set(handles.F3,'BackgroundColor','blue');
pause(delaytime);
case 19
G3_Callback(hObject, eventdata, handles);
set(handles.G3,'BackgroundColor','blue');
pause(delaytime);
case 20
A3_Callback(hObject, eventdata, handles);
set(handles.A3,'BackgroundColor','blue');
pause(delaytime);
case 21
B3_Callback(hObject, eventdata, handles);
set(handles.B3,'BackgroundColor','blue');
pause(delaytime);
end
end
Demo: