libnyquist

Library code and the "nyx" interface by Dominic Mazzoni.

Based on Nyquist version 2.29 by Roger B. Dannenberg,
which was based on xlisp 2 by David Michael Betz.

For license information, please see the file LICENSE.txt

libnyquist currently only exists as part of Audacity.  For
information on using libnyquist as an embedded audio processor
within another application, contact the Audacity developers:

  http://audacity.sourceforge.net

For information about Nyquist as a standalone, interactive audio
programming language, see the Nyquist website:

  http://www.cs.cmu.edu/~rbd/nyquist.html

------------------------------------------------------------

README file for Nyquist Version 2.29

WEB SITE
====================
http://www.cs.cmu.edu/~rbd/nyquist.html

INSTALLING NYQUIST
====================
Please see Section 1.1, Page 1, of the Nyquist Manual

If you use Windows 95 or Windows NT, this release was
compiled with Visual C++ 6.0.

For the Macintosh release, there is an executable
Nyquist program in the runtime directory. 

IMPLEMENTATION STATUS
=====================
Version 2.29 provides:
    new functions: snd-alpassvc, sndalpassvv, snd-eqbandvvv
    corresponding high-level functions in Nyquist
    new licenses for both Nyquist and XLISP
    new NyqIDE implementation
    fixed BUZZ function
    various bug and documentation fixes
Version 2.28 provides:
    include indx.html in doc folder (in files.txt)
    fixed compute-default-sound-file in nyquist.lsp to
    compute appropriate extension (.wav, .aif)
    more code to automate win32 releases
Version 2.27 provides:
    makefile.lsp now generates sndfn.wcl & sndfn.cl
    fix to include snd-pluck and some others omittted from 2.26
Version 2.26 provides:
    bug fix in sampler, negative frequency handling
    guard against out-of-order events in TIMED-SEQ
    added FMLFO, an lfo with frequency modulation
    added SND-SQRT, S-SQRT, SND-ABS, S-ABS functions
    new NyqIDE version with S-PLOT function (!)
    NyqIDE has better parsing for paren balancing
    NyqIDE upgrade to WindowsXP and Delphi 6
    NyqIDE increases input string length maximum
    NyqIDE prompts on save conflict
    added voice-synthesis demo from Eduardo Miranda
    corrected absolute path in demos/pmorales/e2.lsp
    minor documentation and indexing improvements
    pointer to demo docs goes on start menu now
Version 2.25 provides:
    new way to provide search path: set *SEARCH-PATH* to a string,
    e.g. (SETF *SEARCH-PATH* 
    "C:/program files/nyquist/runtime,c:/program files/nyquist/lib")
    allowing Nyquist to be run without setting registry.
Version 2.24 provides:
    text editing for command lines in Linux version
Version 2.23 provides:
    bug fix in (current-path) for Mac
    fixes to some Mac sources corrupted in 2.22
Version 2.22 provides:
    documentation (HTML) included in release now
    bug fix for Mac console output exceeding 32K limit
    protection from playing very high sample rates in Win32
        (crashes in Windows MME library!)
    change s-save to take :endian rather than :swap parameter
    pianosyn.lsp runs on the Mac now
    demos/examples.lsp generates audio with "normal" sample rates
Version 2.21 provides:
    s-plot uses gnu-plot in Linux
    separation from CVS -- I just couldn't keep beating my head
               against the wall
Version 2.20 provides:
    improved Macintosh support
Version 2.19 provides:
    integration of Macintosh code (from v2.12)
    addition of PLUCK and BUZZ synthesis functions
Version 2.18 provides:
    bug fix in midifile read routine under Linux
Version 2.17 provides:
    bug fix for long line input under linux and windows
    biquad filters
    hzosc osc-tri osc-saw osc-pulse -- new oscillator variants
    bug fix for reading in non-AIFF files with 'FORM' headings
    extension to s-read to support explicit byte-swap parameter
Version 2.16 provides:
    bug fix in tables (lookup oscillators and other functions)
    Windows GUI version of Nyquist
Version 2.15 provides:
    port to Linux
Version 2.5 provides:
    more signal processing functions
Version 2.2 provides:
        ports to more systems including Win32 (Win95 and NT)
        bug fixes
        more signal processing functions
        improved sound I/O subsystem
Version 2.1 provides:
        bug fixes
        documentation and code for user extensions
Version 2.0 provides:
        continuous time warps
        many more functions
        bug fixes

The distribution may contain sources for Nyquist. If not,
you got the runtime distribution, and there is a source version
available.
 
A number of "source" files are machine generated, including:
-  many .c and .h files that implement signal processing functions.
        These are generated by translation system that converts
        .alg files to .c and .h files.  .alg files give high-level
        descriptions of DSP algorithms.  
- Makefile.* is generated by "makefile.lsp".

The status is:

System                  Status

RS6K = RS6000, AIX      untested, but used to work
NEXT = NeXT 3.0 (Cube)  untested, but worked fine on a previous version
SGI = ???               untested, but used to work
PMAX = Mach 2.5 on Dec workstation
            untested, but worked in previous version
SPARC = Sun Sparc ???   untested - previous version of Nyquist DID work
LINUX = Linux		tested
Win32			tested
Mac			tested

If you have problems running Nyquist on a Unix machine, I'd be happy to 
help. I can give you advice or if you give me an account, I can log in
remotely and install Nyquist for you. If you make corrections yourself,
please let me have them so I can put them in the next release.

DIRECTORY STRUCTURE
===================
cmt - CMU MIDI Toolkit files, used by Nyquist for MIDI File I/O
demos - Nyquist demos go here
fft - some fft functions
lib - .lsp files offering extensions to Nyquist
misc - various files and programs used to implement Nyquist
nyqsrc - general Nyquist source code (mostly in C)
runtime - the Nyquist and XLisp runtime code (mostly in XLisp)
sys - system specific files
snd - the sound file, sound input, and sound output package
test - test code (this is not maintained and may not be in the release)
todo - list of things to do (this may not be in the release)
tran - descriptor (.alg) files for machine-translated Nyquist code
xlisp - sources for Xlisp (these are linked into Nyquist)

THE RUNTIME ONLY RELEASE
========================
The runtime-only release contains everything related to running
Nyquist, but no source code. The files in this release are:
    Readme.txt (this file)
    nyquist.exe (located in the runtime directory)
    runtime (directory)
    lib (directory)
    demos (directory)
    test (directory)

BUILDING UNDER LINUX
====================
in the nyquist directory:
> ln -s sys/unix/linux/Makefile
> make


