CODE:
fs = 44000; % sample ratedt = 1/fs;T8 = 0.25;t8 = [0:dt:T8];[temp k] = size(t8);t2 = linspace(0,4*T8,4*k); t4 = linspace(0,2*T8,2*k);[temp j] = size(t2);[temp i] = size(t4);% Modification functionsmod2 = sin(pi*t2/t2(end));mod4 = sin(pi*t4/t4(end));mod8 = sin(pi*t8/t8(end));f0 = 2*146.8; % reference frequencyScaleTable = [2/3 3/4 5/6 15/16 ...1 9/8 5/4 4/3 3/2 5/3 9/5 15/8 ...2 9/4 5/2 8/3 3 10/3 15/4 4 ...1/2 9/16 5/8];% 1/2 notesdo1t = mod2.*cos(2*pi*ScaleTable(5)*f0*t2);re1t = mod2.*cos(2*pi*ScaleTable(6)*f0*t2);mi1t = mod2.*cos(2*pi*ScaleTable(7)*f0*t2);fa1t = mod2.*cos(2*pi*ScaleTable(8)*f0*t2);so1t = mod2.*cos(2*pi*ScaleTable(9)*f0*t2);la1t = mod2.*cos(2*pi*ScaleTable(10)*f0*t2);tb1t = mod2.*cos(2*pi*ScaleTable(11)*f0*t2);si1t = mod2.*cos(2*pi*ScaleTable(12)*f0*t2);do2t = mod2.*cos(2*pi*ScaleTable(13)*f0*t2);re2t = mod2.*cos(2*pi*ScaleTable(14)*f0*t2);mi2t = mod2.*cos(2*pi*ScaleTable(15)*f0*t2);fa2t = mod2.*cos(2*pi*ScaleTable(16)*f0*t2);so2t = mod2.*cos(2*pi*ScaleTable(17)*f0*t2);la2t = mod2.*cos(2*pi*ScaleTable(18)*f0*t2);si2t = mod2.*cos(2*pi*ScaleTable(19)*f0*t2);blkt = zeros(1,j);% 1/4 notesdo1f = mod4.*cos(2*pi*ScaleTable(5)*f0*t4);re1f = mod4.*cos(2*pi*ScaleTable(6)*f0*t4);mi1f = mod4.*cos(2*pi*ScaleTable(7)*f0*t4);fa1f = mod4.*cos(2*pi*ScaleTable(8)*f0*t4);so1f = mod4.*cos(2*pi*ScaleTable(9)*f0*t4);la1f = mod4.*cos(2*pi*ScaleTable(10)*f0*t4);tb1f = mod4.*cos(2*pi*ScaleTable(11)*f0*t4);si1f = mod4.*cos(2*pi*ScaleTable(12)*f0*t4);do2f = mod4.*cos(2*pi*ScaleTable(13)*f0*t4);re2f = mod4.*cos(2*pi*ScaleTable(14)*f0*t4);mi2f = mod4.*cos(2*pi*ScaleTable(15)*f0*t4);fa2f = mod4.*cos(2*pi*ScaleTable(16)*f0*t4);so2f = mod4.*cos(2*pi*ScaleTable(17)*f0*t4);la2f = mod4.*cos(2*pi*ScaleTable(18)*f0*t4);si2f = mod4.*cos(2*pi*ScaleTable(19)*f0*t4);blkf = zeros(1,i);% 1/8 notesdo1e = mod8.*cos(2*pi*ScaleTable(5)*f0*t8);re1e = mod8.*cos(2*pi*ScaleTable(6)*f0*t8);mi1e = mod8.*cos(2*pi*ScaleTable(7)*f0*t8);fa1e = mod8.*cos(2*pi*ScaleTable(8)*f0*t8);so1e = mod8.*cos(2*pi*ScaleTable(9)*f0*t8);la1e = mod8.*cos(2*pi*ScaleTable(10)*f0*t8);tb1e = mod8.*cos(2*pi*ScaleTable(11)*f0*t8);si1e = mod8.*cos(2*pi*ScaleTable(12)*f0*t8);do2e = mod8.*cos(2*pi*ScaleTable(13)*f0*t8);re2e = mod8.*cos(2*pi*ScaleTable(14)*f0*t8);mi2e = mod8.*cos(2*pi*ScaleTable(15)*f0*t8);fa2e = mod8.*cos(2*pi*ScaleTable(16)*f0*t8);so2e = mod8.*cos(2*pi*ScaleTable(17)*f0*t8);la2e = mod8.*cos(2*pi*ScaleTable(18)*f0*t8);si2e = mod8.*cos(2*pi*ScaleTable(19)*f0*t8);blke = zeros(1,k);%right handright = [blkf do2f si1e do2e re2f do2e re2e mi2e mi2e fa2e mi2e la1f re2e re2e... do2f do2e do2e si1f la1e si1e do2f blkt blkf ... do2f si1e do2e re2f do2e re2e mi2f fa2e mi2e la1f re2e re2e... do2f do2e do2e si1f la1e si1e do2f blkt do2e mi2e... so2f mi2e re2e do2f si1e do2e re2e do2e si1e la1e so1f do2e mi2e... so2f mi2e re2e do2f si1e do2e re2f blkt blkf do2e do2e blkf re2t... mi2e mi2e fa2e mi2e la1f re2e re2e do2t si1t do2f blkt];%left handleft = [so1f do1t so1t do1t fa1t mi1t fa1t... mi1f so1f do1f so1e so1e ... do1t so1t do1t fa1t mi1t fa1t... mi1f so1f do1f blkf... do1t mi1t fa1t mi1f blkf... do1t mi1t fa1f mi1f re1f blke so1e... mi1e mi1e blkf fa1t so1t fa1t blkf so1f blkf fa1f mi1f so1f do1f ];% MIXs =right +left ;s = s/max(s);sound(s,fs);DEMO: