Directory: LOWLEVEL

Ad Lib, May 1989
--------------------

- The routine SndOutput() (in the file ADLIB.C) has been rewritten in
  assembler and is in the file OUTCHIP.ASM.  Any necessary delays have
  been taken into account for you.


Ad Lib, January 1989
--------------------

The following changes have been made to ADLIB.C:

- The routine BoardInstalled() has been added to detect the presence of
  our card.  The routine does this by setting the an interrupt timer,
  waiting for the timer delay to expire and then reading the status register
  to test that it indicates a timer overflow.

- The routine SndOutput() now calculates its delay by reading a port (inp),
  which takes the same amount of time on any machine.  The number of calls
  to inp() may have to be adjusted depending on your compiler.  If you are
  working in assembler, you will be able to use the IN instruction directly
  and thereby calculate the delay with greater accuracy.  A delay of
  22.4 uSec or greater is required.


Ad Lib, June 1988
-----------------

	        Ad Lib is making available tools to help with the development
        of software using the Ad Lib Sythesizer Card.  Although you can
        use the files as is, you may need to modify them for your own needs.
        Please note that these files are provided as examples and not as
        engraved-in-stone standards.


Files and contents:
-------------------

	ADLIB.C ADLIB.H
		Functions: Note-On, Note-Off, pitch-bend, volume,
	change of timbre, mode change, change of pitch bend
	range.

	CONVERT.C BANK.C MEMORY.C CONVERT.H BANK.H ADLIB.H MEM.H STRMIDI.H
                Utility to convert an Ad Lib *.ROL file to *.MUS and
        *.SND files.  The *.MUS file contains a series of commands for
        playing a piece.  It is in a format similar to the MIDI (1.0)
        standard.  (Refer to CONVERT.C and CONVERT.H for the format.)
        The *.SND file contains a bank of instruments (timbres) which can
        be shared by several *.MUS files.

	PLAY.C BANK.C ADLIB.C TIMER.ASM CONVERT.H ADLIB.H
                Utility to play a piece using the *.MUS and *.SND files.
        Uses the PC timer 0 interrupt for timing purposes.

	BANK.C BANK.H
                Timbre bank manager: groups different timres in one .SND
        file.  Called by CONVERT.C, but could potentially be used
        independently.  




Using CONVERT.EXE and PLAY.EXE:
-------------------------------

      - To begin, put the source .ROL file in the same directory as the
        instrument files (*.INS).

      - CONVERT converts the .ROL file to a .MUS file.  It
        also creates the .SND file from the appropriate .INS files.  If
        the .SND file already exists, it makes the necessary additions,
        if any, to the existing file. 

         	> CONVERT file_in.ROL timbre.SND file_out.MUS

      - PLAY plays the file which was created by CONVERT.
        To play the .MUS file:

        	> PLAY file.MUS timbre.SND

