%let pc=1.25; %macro df3(note,octave,length); select(¬e.); when('A') call sound(55*(2**&octave.),&length.*150*&pc.); when('A#') call sound(58*(2**&octave.),&length.*150*&pc.); when('Bb') call sound(58*(2**&octave.),&length.*150*&pc.); when('B') call sound(62*(2**&octave.),&length.*150*&pc.); when('C') call sound(65*(2**&octave.),&length.*150*&pc.); when('C#') call sound(69*(2**&octave.),&length.*150*&pc.); when('Db') call sound(69*(2**&octave.),&length.*150*&pc.); when('D') call sound(73.5*(2**&octave.),&length.*150*&pc.); when('D#') call sound(78*(2**&octave.),&length.*150*&pc.); when('Eb') call sound(78*(2**&octave.),&length.*150*&pc.); when('E') call sound(82*(2**&octave.),&length.*150*&pc.); when('F') call sound(87*(2**&octave.),&length.*150*&pc.); when('F#') call sound(92.5*(2**&octave.),&length.*150*&pc.); when('Gb') call sound(92.5*(2**&octave.),&length.*150*&pc.); when('G') call sound(98*(2**&octave.),&length.*150*&pc.); when('G#') call sound(104*(2**&octave.),&length.*150*&pc.); when('Ab') call sound(104*(2**&octave.),&length.*150*&pc.); when('R') call sleep((&length./3)*&pc.,1); otherwise; end; %mend; data _null_; %df3('B', 2 , 0.5); %df3('E', 2 , 0.5); %df3('A', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 1); %df3('E', 2 , 0.5); %df3('B', 2 , 1); %df3('E', 2 , 0.5); %df3('A', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 0.5); %df3('E', 2 , 0.5); %df3('B', 2 , 0.5); %df3('E', 2 , 0.5); %df3('B', 2 , 0.5); %df3('E', 2 , 0.5); %df3('A', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 1); %df3('E', 2 , 0.5); %df3('B', 2 , 1); %df3('A', 3 , 0.5); %df3('D', 3 , 0.5); %df3('C', 3 , 0.5); %df3('D', 3 , 0.5); %df3('C', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 0.5); %df3('B', 2 , 0.5); %df3('E', 2 , 0.5); %df3('A', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 1); %df3('E', 2 , 0.5); %df3('B', 2 , 1); %df3('E', 2 , 0.5); %df3('A', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 0.5); %df3('E', 2 , 0.5); %df3('B', 2 , 0.5); %df3('E', 2 , 0.5); %df3('B', 2 , 0.5); %df3('E', 2 , 0.5); %df3('A', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 1); %df3('E', 2 , 0.5); %df3('B', 2 , 1); %df3('A', 3 , 0.5); %df3('D', 3 , 0.5); %df3('C', 3 , 0.5); %df3('D', 3 , 0.5); %df3('C', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 0.5); %df3('B', 3 , 1.5); %df3('B', 3 , 2.5); %df3('B', 3 , 1.5); %df3('A', 3 , 1); %df3('D', 3 , 1.5); %df3('B', 3 , 1.5); %df3('B', 3 , 2.5); %df3('B', 3 , 1); %df3('A', 3 , 3); %df3('C', 3 , 0.5); %df3('C', 3 , 0.5); %df3('C', 3 , 0.5); %df3('C', 3 , 0.5); %df3('C', 3 , 0.5); %df3('C', 3 , 0.5); %df3('C', 3 , 0.5); %df3('C', 3 , 0.5); %df3('B', 3 , 2); %df3('F#', 2 , 0.5); %df3('A', 3 , 1); %df3('G', 2 , 2.5); %df3('C', 3 , 0.5); %df3('C', 3 , 1); %df3('B', 3 , 1); %df3('A', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 0.5); %df3('G', 2 , 1); %df3('E', 3 , 1); %df3('A', 3 , 2); %df3('C', 3 , 0.5); %df3('C', 3 , 1); %df3('B', 3 , 2); %df3('F#', 2 , 0.5); %df3('A', 3 , 1); %df3('G', 2 , 2.5); %df3('C', 3 , 0.5); %df3('C', 3 , 1); %df3('B', 3 , 1); %df3('A', 3 , 0.5); %df3('B', 3 , 0.5); %df3('A', 3 , 0.5); %df3('G', 2 , 1); %df3('E', 3 , 1); %df3('A', 3 , 2); run;