***********NEW: Log of changes introduced from 3.15.10**********************


			   CSOUND for MSDOS
			 CSOUND for ATARI ST

			      John Fitch
		   School of Mathematical Sciences
			  University of Bath
			     Bath BA2 7AY
			       England
			 Tel: +44-1225-826820
			 FAX: +44-1225-826492
		    E-mail: jpff@maths.bath.ac.uk
		       or  J.P.Fitch@bath.ac.uk
				   
	    (also Codemist Ltd, Tel/FAX: +44-1225-837430)

			    csound_286.zip
			  csound_fpt_286.zip
			    csound_386.zip
			  csound_fpt_386.zip
			    csound_486.zip
			    csound_src.zip

These files are the executables for CSound for 286/386/486 machines
running MS-DOS.  There are versions built for a plain machine and for
a machine with a floating point co-processor. 

Also, the files *.ttp are Csound for the Atari ST.  See below for ATARI notes

NOTE: The 486 version does not seem to work on an 486SX, for which the
386 version should be used.

Note: I have not tried all these versions myself, as I have a 386
without co-processor.

There is a mailing list kept for this version; to join send mail to
pcsound-request@maths.bath.ac.uk.  There is also a Csound mailing list
for discussion of any aspect of the system, and a WWW page at
http://www.leeds.ac.uk/music/Man/c_front.html

Local Changes: 
=============
 It attempts to do graphics.  It is supposed to adjust to your
graphics system.  See below for notes on how to set screen types
explicitly.  I also have graphics in PVANAL and LPANAL with a -g
option.  In CSOUND itself there is a pause before and after each
graph.  This can be turned off if the environment variable CSNOSTOP is
set to YES.

The WAV file format was all new for the PC, but is now in the main
sources.  To ensure you get WAV sound files either use the -W option,
or set an environment variable SFOUTYP to WAV in your AUTOEXEC.BAT

The system on a 386 or 486 will recognise the output file devaudio as
an attempt to us a sound card for direct output (SoundBlaster or
compatible).  This is not yet finished, and seems to be limited to
less than 14KHz sampling, and 8 bit samples in mono.  I am attempting
to improve that.  On my slow 386 the machine cannot keep up with
generating in time, so there is a chopping effect.  Your mileage may
vary.

I have introduced a local version number; currently I have v3.15.10.
The major number refers to MIT's current version (3 is the beta), the
15 is my sequence number for the PC, and the 10 is the version of the
"real time" support.

There is also a new utility to scale for amplitude, and mixer for
mixing sound files together.

Version 3.15.10:
  Experimentally I have attempted to read the device sbmidi as a MIDI
input for use with the -M option.  I have no idea if this works.
  When using -o devaudio (also can use -o dac or -o sblst) it will
force the format to be -c or -s.
  The mixer can now take varying numbers of channels as input and can
include some or all channels, and can direct input channel n to output
channel m.  As the scaling can be negative as well as positive this
incorporates removal of information as well.  The syntax is not good,
but inspiration is not with me this weekend. 


Copyright:
=========
The systems are the product of the MIT Media Laboratory, and this is
their copyright notice:
------------------------------------------------------------------------

Copyright 1986, 1987 by the Massachusetts Institute of Technology.
All rights reserved.

Developed by Barry L. Vercoe at the Experimental Music Studio,
Media Laboratory, M.I.T., Cambridge, Massachusetts, with partial support
from the System Development Foundation, and from NSF Grant IRI-8704665.

Permission to use, copy, or modify these programs and their documentation
for educational and research purposes only and without fee is hereby granted,
provided that this copyright and permission notice appear on all copies and
supporting documentation.  For any other uses of this software, in original
or modified form, including but not limited to distribution in whole or in
part, specific prior permission from M.I.T. must be obtained.  M.I.T. makes
no representations about the suitability of this software for any purpose.
It is provided "as is" without express or implied warranty.

------------------------------------------------------------------------
The mixer and SoundBlaster support are probably my copyright, and I
hereby give permission to use, copy, or modify this code for any
purpose whatsoever.  I would like my name to remain in there, but I do
not insist.

Interested parties should note that CSound is a system for creation of
sound, and is not a MIDI sequencer.


The systems built are described briefly below.

CSOUND EXE
	digital audio processing and sound synthesis
	csound [flags] orchfile scorefile
Csound is an environment in which a "scorefile" or external event
sequence can invoke arbitrarily complex signal-processing
"instruments" to produce sound.  Audio may be displayed during its
creation, and the resulting sound sent to an on-line audio device or
to an intermediate soundfile for later playback.  Flags include
-C      use Cscore processing of scorefile
-I      I-time only orch run
-n      no sound onto disk
-i fnam sound input filename
-o fnam sound output filename (if fnam is devaudio, dac or sblst use directly)
-b N    sample frames (or -kprds) per software sound I/O buffer
-B N    samples per hardware sound I/O buffer
-A      create an AIFF format output soundfile
-W      create a WAV format output soundfile
-h      no header on output soundfile
-c      8-bit signed_char sound samples
-a      alaw sound samples
-u      ulaw sound samples
-s      short_int sound samples
-l      long_int sound samples
-f      float sound samples
-r N    orchestra srate override
-v      verbose orch translation
-m N    tty message level. Sum of: 1=note amps, 2=out-of-range msg, 4=warnings
	8=SB mesages
-d      suppress all displays
-g      suppress graphics, use ascii displays
-S      score is in Scot format
-t N    use uninterpreted beats of the score, initially at tempo N
-L dnam read Line-oriented realtime score events from device 'dnam'
-M dnam read MIDI realtime events from device 'dnam' (must be sbmidi)
-F fnam read MIDIfile event stream from file 'fnam'
-P N    MIDI sustain pedal threshold (0 - 128)
-R      continually rewrite header while writing soundfile (WAV/AIFF)
-H      print a heartbeat character at each soundfile write
-N      notify (ring the bell) when score or miditrack is done
-T      terminate the performance when miditrack is done
flag defaults: csound -s -otest -b1024 -B1024 -m7 -P128


CSCORE.LIB
Cscore is a program for generating and manipulating numeric score files.
It comprises a number of function subprograms, called into operation
by a user-written main program.
The function programs augment the C language library functions; they
can optionally read standard numeric score files, can massage and
expand the data in various ways, then write the data out as a new
score file to be read by a Csound orchestra.

EXTRACT.EXE
Program for extracting parts of a work.  Not tested in PC version

HETRO.EXE
	hetrodyne filter analysis for Csound adsyn module
	hetro [flags] [fundamental] [filename]
 hetro takes as input a file containing amplitude samples of some
sound over time (it is assumed that the samples are evenly spaced
in time) and decomposes that sound into a set of harmonically
related sine waves with time varying amplitude and phase.

LPCANAL.EXE
	Paul Lansky's software for linear predictive analysis and
	pitch tracking, adapted for Csound.
   lpcanal [-p<n> -i<n> -s<t> -d<t> -o<file> -C<str> -P<frq> -Q<frq>] soundfile
 lpcanal is the new experimental combination of the old anallpc and ptrack. 
It performs linear predictive analysis and pitch tracking on monaural 16bit 
fixed point soundfiles.  If a -g flag is used then a graphical display is
given of some of the output as it is being computed.

PVANAL.EXE
	Fourier analysis module for Csound PVOC unit generator
	pvanal  [-n frame-size] [-o overlap | -i increment] \
		inputSoundFile outputFFTFile
 pvanal converts a playable sample (a time-domain representation) into
a series of short-time Fourier transform (STFT) frames centred at
regular points throughout the file (a frequency-domain
representation).  The output file can then be used as the data for the
PVOC unit generator in Csound to generate notes based on the original
sample, but with their timescales and pitches arbitrarily and
dynamically modified.  If a -g flag is used then a graphical display
is given of some of the output as it is being computed.

SCOT.EXE	
Scot is a scoring program to prepare input for CSound.  It is rather
complex and initial testing on the PC suggests that I have not got it
correct yet.

SCSORT.EXE	
Stand-alone sorting of sound files
Not tested on PC

SNDINFO.EXE	
Reads the header of a sound file to identify type, duration etc
	sndinfo soundfile

SCALE.EXE
 As well as doing the same as SNDINFO this utility reports on the
maximum amplitude, and can generate a new soundfile with the amplitude
scaled by a floating point value.
		scale [-flags] soundfile
Legal flags are:
	-o fnam sound output filename
	-A      create an AIFF format output soundfile
	-W      create a WAV format output soundfile
	-h      no header on output soundfile
	-c      8-bit signed_char sound samples
	-a      alaw sound samples
	-u      ulaw sound samples
	-s      short_int sound samples
	-l      long_int sound samples
	-f      float sound samples
	-F fpnum        amount to scale amplitude
	-R      continually rewrite header while writing soundfile (WAV/AIFF)
	-H      print a heartbeat character at each soundfile write
	-N      notify (ring the bell) when score or miditrack is done

flag defaults: scale -s -otest -F 0.0

If scale is 0.0 then reports maximum possible scaling; otherwise scale
and generate a new soundfile

MIXER.EXE
 This utility can mix together a number of sound files (up to 20 at
present) with different starting times and with scaling on each file.
		mixer [-flags] soundfile [-flags] soundfile ...
Legal flags are:
	-o fnam sound output filename
	-A      create an AIFF format output soundfile
	-W      create a WAV format output soundfile
	-h      no header on output soundfile
	-c      8-bit signed_char sound samples
	-a      alaw sound samples
	-u      ulaw sound samples
	-s      short_int sound samples
	-l      long_int sound samples
	-f      float sound samples
	-F fpnum        amount to scale amplitude of next sound file
	-R      continually rewrite header while writing soundfile (WAV/AIFF)
	-H      print a heartbeat character at each soundfile write
	-N      notify (ring the bell) when score or miditrack is done
	-S int	Sample at which to insert next sound file
	-T fpnum	Time at which to insert next sound file
	-1 -2 -3 -4     include named channel
	-^ n m  include channel n and output as channel m

Defaults are: mixer -s -otest -F1.0 -S0

MIXER can also be used for some echo effects.
------------------------------------------------------------------------
Graphics:
========

The graphics is just for the display of waveforms.  The full
specification of the graphics used says that it tries auto-determining
the graphics on the machine.  This can sometimes fail, so it reads the
environment variable FG_DISPLAY, and if set as below it uses that kind
of graphics.
	Value		Type
	=====		====
	GCAHIRES	GCA 640 x 200 x 2
	GCAMEDRES	GCA 320 x 200 x 4
	EGACOLOR	EGA 640 x 200 x 16
	EGAECD		Enhanced EGA 640 x 350 x 16
	EGALOWRES
	EGAMONO
	EVGAHIRES	Everest EVGA board
	HERCFULL	Hercules 2 pages 2 colour
	HERCHALF	Hercules 1 page  2 colour
	ORCHIDPROHIRES	VGA type
	PARADISEHIRES	VGA type
	TOSHIBA		Toshiba 3100 -- 640 x 400 x 2
	TRIDENTHIRES	Trident 800 x 600 x 16
	VEGAVGAHIRES	Video 7 vega VGA board
	VESA6A		VESA mode 0x6a
	VESA2		VESA mode 0x102
	VGA11		IBM VGA mode 0x11
	VGA12		IBM VGA mode 0x12
	VGA13		IBM VGA mode 0x13
	8514A		IBM 8514A display adapter

Virtual Memory:
==============

The system uses virtual memory on 386/486.  The limits on memory size
are the minimum of
	1. Free disk space + code size
	2. 256 times your extended memory
	3. 3.5Gbytes (!)

You should set up the environment variable TMP or TEMP to the disk to
use for swap space.  If this is not set it looks at disks C:, D:, ...
looking for the largest free space.  That gives the limit of space.

Reporting Bugs:
==============

Please mail (or possibly FAX) me reports on any bugs and shortcomings
of the PC version.  I will endeavour to fix or assist, but it is only
fair to warn you that this is not either of my jobs, and so it may be
lower in priorities.  But I am interested in widening the availability
of CSound.

The system has been built with Zortech's C++ Compiler, with its
royalty-free DOS extender, x and z modes, and FlashTech's virtual
memory and graphics.  We (as Codemist) use this system for a
commercial product, and it seems satisfactory, and reasonably trouble
free.

DOS6:
====

It is known that the DOS6 memory manager does not obey the full rules,
and so interferes with Csound.  I now have a fix for this, and the
corrected version is now on the server, but there do still seem to be
problems.  The old fix was to ensure that in your AUTOEXEC.BAT or
CONFIG.SYS that if there is a call to
	emm386 -noems
in it that you change this to read
	emm386
This should fix things for now.  Or remove the line!

80286 - version
===============

The files in the 286 versions also need the program ZPM.EXE, which is
provided, in your search path.


John Fitch
School of Mathematical Sciences		Codemist Ltd
University of Bath			"Alta", Horsecombe Vale
Bath BA2 7AY				Combe Down, Bath BA2 5QR
United Kingdom				United Kingdom
Tel: +44-1225-826826			Tel: +44-1225-837430
FAX: +44-1225-826492			FAX: +44-1225-837430

ATARI Csound
============

The files are
			      csound.ttp
			     extract.ttp
			      hetro.ttp
			      lpanal.ttp
			      pvanal.ttp
			      scale.ttp
			      scsort.ttp
			     sndinfo.ttp
 I do not have any of the standard compression programs for the Atari
at present, so these are raw binary files.
 This is an initial port of 3.14, with no support for graphics or
MIDI.  The code is not yet optimised, and has only been subjected to
limited testing.  If there is sufficient interest I will optimise and
extend, but my Atari is currently failing to boot.  The code does not
assume the existence of a floating point co- processor, and is built
for the 68000 (lowest common denominator).  Please report any bugs or
comments to me.  I am using LatticeC and the sources and scripts are
available from me, assuming I can read the Atari disk...

There is a better-supported commercially available Atari Csound from CDP.
They also have a large suite of music synthesis programs on Atari and PC.
Contact Tom Endrich:
	tendrich@cix.compulink.co.uk
	Tel: +44-1904-613299
	Composers' Desktop Project
	11 Kilburn Road
	York YO1 4DF
	England

