clear all;
f0 = 440;
n_split = 12;
num_pitches = 25;
for p = 1:num_pitches
pitch(p) = f0 * 2^((p-1)/n_split);
end
display('pitch sequence is in form of vector where 12 notes of octave are numbered 1 to 13 (rest =0) ')
pitch_seq = input('enter pitch sequence for tune as row vector in square brackets, e.g. [1 3 5 1 1 3 5 1 5 6 8 5 6 8 ] or [1 3 5 6 0 8 10 12 13]: ');
display('note/rest duration sequence is in form of vector where quaver = 1/2, crotchet = 1, minim = 2, semibreve = 4 : ')
dur_seq = input('enter note/rest durations as vector in square brackets of same length as pitch vector (e.g. [.5 .5 .5 .5 .5 .5 .5 .5 .5 .5 1 .5 .5 1] or [1 1 1 1 1 1 1 1 1]): ');
note = input('enter absolute duration (ms) corresponding to crotchet (e.g. 500) ');
srate = 44100;
wdms = 20;
sig1 = [];
for q = 1:length(pitch_seq)
t = [0: 1/srate : dur_seq(q)*note/1000];
if pitch_seq(q) == 0
wav = zeros(1,length(t));
else
wav = sin ( 2*pi * pitch(pitch_seq(q)) * t );
wav = 0.2 * wav/std(wav);
wav = wind(srate,wdms,wav);
end
sig1 = [sig1 wav];
end
sig1 = [sig1', sig1'];
wavwrite(sig1, srate, 'sequence');
sound(sig1,srate)