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: