CSRW_HIST.TXT  History file for Robin Whittle's Csound activities

11 September 1995

Robin Whittle   firstpr@ozemail.com.au  rwhittle@ozonline.com.au
                http://www.ozemail.com.au/~firstpr


For Csound users and C programmers.

Latest additions are at the end!


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


CSOUND.EXE RW version 1.00 (9 originaly, now) 11 September 1995
----------------------------------------------------------------

(I put the files up on 9 September, but a bug was quickly revealed - 
CSOUND.EXE did not have the GO32 DOS extender built into it.  The 
problem in the makefile was rectified - see the COFF2EXE command. Then 
new CSRW_EXE.ZIP, CSRW_SRC.ZIP and CSRW_DOC.ZIP files were put on the 
WWW site ASAP.  Lets forget about this and refer to 11 September as 
the official release date.)


I had previously released a DJGPP compiled version which had no new 
features - it was compiled from John Fitch's 17 April source.

CSRW 1.00 is the first release to have new features.  These are fully 
documented in the various files mentioned in CSRW_DOC.TXT - all of 
which are included in CSRW_DOC.ZIP - both of 11 September 95.

Here is a quick listing of the new features, from CSRW_DOC.TXT.



This CSOUND.EXE has the following characteristics:

1 -     It needs a 386, 486 or Pentium with a maths coprocessor.  
        So a 386 DX or SX is OK if you have a 387 plugged in.  Any 
        Intel 486 DX will do - a 486 SX has no maths coprocessor.  

2 -     It does not do graphics.  I probably can get this working, but 
        it will be a lot of work I think.  Use one of John Fitch's 
        CSOUND.EXEs if you need to display graphs.

3 -     It has several bugs removed from the table and tablei ugens.

4 -     It has a whole swag of new ugens as documented below.

5 -     It runs under MSDOS, a Win3.1 DOS box, and I expect, a WIN95 
        DOS box.  I am not planning a Windows graphics version at 
        present.

6 -     I am only working with the main CSOUND program - not the 
        utilities.  I am not maintaining or distribute the the source 
        for them.


This carries the same MIT version (3.29) as John Fitch's source from 
which I worked.  I don't know anything about these version numbers.  
It also carries John's version 12.  To this I have added my version 
number 1.00 - for the 11 September 95 release. 


This CSOUND.EXE can handle instrument numbers up to 1200 and function 
table numbers up to 1000.  There are some limits on the length of the 
orchestra file.  I have not investigated this yet.

New features available as source code for any Csound implementation
-------------------------------------------------------------------

These are contained in new and modified files in CSRW_SRC.ZIP.  

All these features are built into the CSOUND.EXE in CSRW_EXE.ZIP.

A full listing of documentation files follows this list of features.  


UGENS2  Bugs in table read code fixed.  New versions of table and 
------  tablei enable the table number to be controlled by a k rate 
        variable.  

        See TABREAD.TXT. Modified code is in UGENS2.C and UGENS2.H.

        These bug fixes, clearer documentation and k rate control are 
        intended to be a lasting part of Csound if people like them.



UGRW1   Table write ugens - for writing directly into function tables 
-----   at i k or a rates - with i or k rate control of the table 
        number. (See TABREAD.TXT for krate control details.) 

        Ugens for manipulating data in tables: tablegpw, tableleng,     
        tablemix and tablecopy.

        Ugens for reading and writing to table locations sequentially 
        from a rate variables.  One of the uses of this is to read a 
        rate data into a table (or several a rates into several 
        tables), and use _any_ k rate code to process the data, before 
        converting it back to a rate.  This means that when you really 
        want to, you can use all of Csounds ugens and operations on a 
        rate code.  It is somewhat slow, but faster than running with 
        ksmps = 1 and using upsamp and downsamp.

        Global patching of i, k and a rate signals based on numbers 
        generated at i or k rate.  This is really a fudge until the 
        language supports arrays.  This is called the "zak" system. 
        However it is extremely useful.  There is a numbered set of 
        "zk" k rate patch points and another set of "za" a rate patch 
        points.  A variety of ugens read, write and mix to these - 
        with k rate control over which patch point is used.  This 
        enables the code in each instrument to decide where to get and 
        send a and k rate signals when working with other instruments.

        Simple ugens to read the time elapsed since the start of the 
        piece or the initialisation of the instrument.  

        Two ugens for printing k rate variables as numbers on the 
        screen.  The second of these allows four variables to be 
        printed in the midst of a text string - by printf().  It also 
        allows any byte to be printed and makes it easy to insert 
        escape codes into the text for cursor control.


        These, or something like them are intended to become 
        a lasting part of Csound if people like them.  The "zak" 
        system is very useful for patching things, but not as good as 
        a rewrite of Csound to support arrays - so it is only intended 
        to last *until* that happens.

        See UGRW1.TXT. New code in UGRW1.C and UGRW1.H. 


UGRW2   kport - a low pass filter for k rate variables like port, but 
-----   now with a k rate frequency control.

        Filters for k rate variables: ktone, katone, kreson & kareson 

        limit and ilimit ugens for setting k (or i) rate upper and 
        lower limits on (i,) k or a rate variables.

        See UGRW2.TXT.


CMATH   A 31 bit random number generator replaces the previous 15 bit 
-----   one.  A seed ugen is provided to set it.  

        This global random number generator is used for all of the new 
        set of noise (random number) ugens introduced early in 1995 
        by Paris Smarargdis - the zlinrand family.

        To complete the family, there is now an xunirand ugen for 
        uniform distribution of random numbers between 0 and the value 
        given to the ugen.

        See CS_RAND.TXT.

        Also a slight change has been made to entry.c to make the 
        inorm parameter of kpow and apow optional like README.csound 
        says it is.     



------------------
|                |
|  .ZIP  FILES   |
|                |
------------------


CSRW_EXE.ZIP    Just the CSOUND.EXE program.  Be sure to get 
                CSRW_DOC.ZIP as well.

CSRW_DOC.ZIP    All the doco you need, except for the Csound manual.
                Includes the README.csound which documents new ugens 
                added to April 95.  Also contains the new and modified 
                source code.  See full list below.

CSRW_SRC.ZIP    This is the complete set of source code I used for 
                making the CSOUND.EXE program with DJGPP. It contains 
                only a makefile for DJGPP (which should be fine for 
                any GNU C compiler).  It contains the original 
                versions of files I have modified.  It is only the 
                code for the CSOUND program itself - not the 
                utilities.  However all the code is there - not just 
                files needed for an MSDOS compilation.

                All new and modified code is extensively documented - 
                including details of how to patch it into another set 
                of source files.

                The contents of CSRW_SRC.ZIP are further documented in 
                the FILES.TXT file which is included in it.  

                (The above three files consititute everything you need 
                from me directly.)


CSJF_SRC.ZIP    John Fitch's source release of 17 April (actually all 
                the files are 14 April or earlier) - complete 
                with sources for all the utilities.  This is what my 
                work is based on.  See notes in CSDJGPP3.TXT on 
                tweaking this source to work with DJGPP.

                See the description of below of README.CSO for a list 
                of the ugens and fgens which are in this release.

                John probably does not support this source - see his 
                site for his latest work.       

CSJF_EXE.ZIP    .EXE files for the 486 (or 386) - co-processor 
                required.  CSOUND.EXE and the utilities:

                CSOUND   EXE       360,687 14-04-95   7:35p
                HETRO    EXE        85,307 14-04-95   8:15p
                LPCANAL  EXE       143,423 14-04-95   8:15p
                PVANAL   EXE       152,183 14-04-95   8:15p
                CSCORE   LIB        15,360 14-04-95   8:15p
                SCOT     EXE        51,123 14-04-95   8:15p
                SCSORT   EXE        43,404 14-04-95   8:15p
                EXTRACT  EXE        49,687 14-04-95   8:15p
                SNDINFO  EXE        69,167 14-04-95   8:16p
                SCALE    EXE        82,171 14-04-95   8:15p
                MIXER    EXE        84,647 14-04-95   8:16p
                MKGRAPH  EXE       102,771 14-04-95   8:16p

                Since I am not providing source or .EXEs of the 
                utilities, you may want to get this file.  The 
                CSOUND.EXE will draw graphs - using an 800 x 600 SVGA 
                mode if it can find one.  My CSOUND.EXE can't do this.

                These (I think) were compiled with Zortech C.  John is 
                now using Watcom for his later .EXE releases.  He 
                probably does not want to support these older files.    


CS_MAN.ZIP      Contains and MSDOS text file of Barry Varcoe's Csound 
                manual - see below.


------------------
|                |
|   DOCO FILES   |
|                |
------------------

                (First the two basic Csound doco files you definitely 
                need.  I have turned these into standard MSDOS text 
                files. Otherwise they are original.) 

CS_MAN.TXT      MSDOS text file derived from the original Csound 
                manual by Barry Vercoe.  This is was a Macintosh Word 
                file and is available at the MIT site.

                This file is the only one listed here which is not in 
                CSRW_DOC.ZIP.   

CS_MAN.ZIP      .ZIP of the above.


README.CSO      MSDOS text file.  A copy of John Fitch's README.csound 
                from April 95.  This documents the new ugens added to 
                that time. 

                These ugens and function generators include a granular 
                synthesizer, a new set of filters, a new variable 
                delay, a multitap delay, a new reverb, an envelope 
                follower, various noise generators, a power function 
                generator and two gen routines, GEN20 and GEN21.  
                There are also two ungens for convolution.

                grain   
                butterhp butterlp butterbp butterbr     
                vdelay  
                multitap        
                reverb2 
                follow
                xlinrand xtrirand xexprand xbexprnd xcauchy xpcauchy  
                xpoisson xgauss   xweibull xbeta 
                kpow     apow   

                GEN20 - f tables of 9 types of window: Hamming, 
                Hanning, Bartlett ( triangle), Blackman ( 3 - term),
                Blackman - Harris ( 4 - term), Gaussian, Kaiser,
                Rectangle and Sinc.

                GEN21 - f tables of different random distributions: 
                Uniform, Linear, Triangular, Exponential, 
                Biexponential, Gaussian, Cauchy, Positive Cauchy, 
                Beta, Weibull and Poisson.

                (The above were written by Paris Smarargdis.)   

                From Greg Sullivan, convolution ugens:

                convolve        
                cvanal -   Impulse Response Fourier Analysis for 
                           convolve operator.


UGRW1.TXT       Full doco of the new ugens mentioned above for 
                UGRW1.C.  Also a discussion of how good it would be to 
                have arrays in Csound, and why I wrote the "zak" 
                system in the interim.

UGRW2.TXT       Describes kport and the new k rate controlable 
                filters: ktone, katone, kreson & kareson 


CS_RAND.TXT     Describes the changes to the random noise functions in 
                CMATH.C.


FILES.TXT       Describes the files in CSRW_SRC.ZIP.


CSDJGPP3.TXT    Describes how I obtained DJGPP, fired it up, got the 
                Csound source in April and tweaked to to produce a 
                CSOUND.EXE.  Basic reading for anyone interested in 
                using DJGPP to invent their own variants of Csound.


CSRW_HIS.TXT    History file of my Csound work.


End of entry for 11 September 95

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<



