home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug013.arc / PLAY.PRO < prev    next >
Text File  |  1979-12-31  |  896b  |  27 lines

  1. procedure PLAY(note : integer; note_length : byte);
  2.  
  3. { Procedure developed in Turbo Pascal for the
  4.   MicroBee by Bob Burt, using an algorithm
  5.          developed by Alan Burt                }
  6.  
  7. { This procedure is used in conjunction with
  8.         the procedure SOUND.PRO                }
  9.  
  10. var
  11.   cycles,frequency,duration : integer;
  12.   freq1,freq2,dur1,dur2 : byte;
  13. begin
  14.   frequency := round(exp(ln(440)+(note-13)/12*ln(2)));
  15.   duration := round(exp(ln(144)+(13-note)/12*ln(2.028)));
  16.   cycles := frequency*note_length div 8;
  17.   freq1 := cycles;
  18.   freq2 := cycles div 256;
  19.   dur1 := duration;
  20.   dur2 := duration div 256;
  21.   mem[addr(sound)+39] := freq1;
  22.   mem[addr(sound)+40] := freq2;
  23.   mem[addr(sound)+41] := dur1;
  24.   mem[addr(sound)+42] := dur2;
  25.   sound
  26. end; {procedure play}
  27.