ftp.nice.ch/pub/next/unix/audio/fugue.s.tar.gz#/fugue

Makefile
 
README
 
debug.c
[View debug.c] 
debug.h
[View debug.h] 
doc/
 
extern.c
[View extern.c] 
extern.h
[View extern.h] 
fugue.c
[View fugue.c] 
fugue.h
[View fugue.h] 
fugue.lsp
 
fugueint.c
[View fugueint.c] 
fugueintdefs.h
[View fugueintdefs.h] 
fugueintptrs.h
[View fugueintptrs.h] 
init.lsp
 
local.c
[View local.c] 
localdefs.h
[View localdefs.h] 
localptrs.h
[View localptrs.h] 
misc/
 
mmalloc.c
[View mmalloc.c] 
old_table.c
[View old_table.c] 
old_table.h
[View old_table.h] 
osdefs.h
[View osdefs.h] 
osptrs.h
[View osptrs.h] 
sound.c
[View sound.c] 
sound.h
[View sound.h] 
sound.lsp
 
soundint.c
[View soundint.c] 
soundintdefs.h
[View soundintdefs.h] 
soundintptrs.h
[View soundintptrs.h] 
table.c
[View table.c] 
table.h
[View table.h] 
table.lsp
 
tableint.c
[View tableint.c] 
tableintdefs.h
[View tableintdefs.h] 
tableintptrs.h
[View tableintptrs.h] 
test/
 
test.lsp
 
todo
 
unixstuff.c
[View unixstuff.c] 
xl
 
xlbfun.c
[View xlbfun.c] 
xlcont.c
[View xlcont.c] 
xldbug.c
[View xldbug.c] 
xldmem.c
[View xldmem.c] 
xldmem.h
[View xldmem.h] 
xleval.c
[View xleval.c] 
xlfio.c
[View xlfio.c] 
xlftab.c
[View xlftab.c] 
xlftab.h
[View xlftab.h] 
xlglob.c
[View xlglob.c] 
xlimage.c
[View xlimage.c] 
xlinit.c
[View xlinit.c] 
xlio.c
[View xlio.c] 
xlisp.c
[View xlisp.c] 
xlisp.h
[View xlisp.h] 
xljump.c
[View xljump.c] 
xllist.c
[View xllist.c] 
xlmath.c
[View xlmath.c] 
xlobj.c
[View xlobj.c] 
xlpp.c
[View xlpp.c] 
xlprin.c
[View xlprin.c] 
xlread.c
[View xlread.c] 
xlstr.c
[View xlstr.c] 
xlsubr.c
[View xlsubr.c] 
xlsym.c
[View xlsym.c] 
xlsys.c
[View xlsys.c] 

README

This is Fugue, a language for sound synthesis and composition.

Fugue was developed by Roger Dannenberg, Chris Fraley, and George Polly
	at Carnegie Mellon University.

Fugue is Copyright (c) 1990, Carnegie Mellon University.  It is derived in
	part from XLISP, Copyright (c) 1988, David Betz, and in
	part from Canon, Copyright (c) 1988, Roger B. Danneberg.

Fugue may be used freely for non-commercial use, but you may not redistribute
	modifications without permission.  I am very interested in developing
	Fugue further, and I solicit your help.  Please contact me at
	Roger.Dannenberg@cs.cmu.edu if you are interested in extending Fugue.

Documentation: Unfortunately, learning Fugue is hampered by poor documentation.
	I suggest you read the following papers (contact me if your library
	does not have these):

	Dannenberg, "The Canon Score Language", Computer Music Journal,
		13(1) (Spring 1989), pp. 47-56.
		This talks about behavioral abstraction and the basic
		temporal control mechanisms.  Canon deals with MIDI while
		Fugue deals with sounds, but otherwise the languages are
		very similar.  Fugue does not allow time-varying 
		transformations (yet) as does Canonl.

	Dannenberg and Fraley, "Fugue: A Signal Manipulation System with
		Lazy Evaluation and Behavioral Abstraction", Proceedings
		of the 1989 ICMC, pp. 76-79.
		This is the only Fugue paper so far, but due to page
		limitations, this is pretty much just an extended introduction.

	Betz. XLISP: An Object-oriented Lisp.  Version 2.0.  (Manual for
		XLISP is in doc/xlisp20.doc as an ascii file.)
		This tells you all about XLisp.  Fugue was created by
		extending XLisp with a new data type (sound) and many
		new functions, but generic lisp manipulation and arithmetic
		functions are all described here.

	doc/lisp.doc -- this file describes functions for sound manipulation
		in Fugue.

	doc/*.doc -- there are a number of other short documentation files
		in this directory.  Look them over.  Someday, these will
		all be organized into one manual (I hope).

	test/ex/demo*.lsp -- you should run these one by one and study the
		code.  These examples demonstrate much of what Fugue can
		do in an number of simple examples.

Running Fugue: Once you get Fugue installed, go to the fugue/test directory
	and type "../xl".  You should get a banner and a prompt.  Try typing
	(load "ex/demo1").  I usually run emacs in another window so I switch
	between editing code and trying things out interactively.  You can
	also spawn a shell within emacs and run Fugue there.

	Fugue is not really set up for multiple users, especially since
	init.lsp expects to find "../fugue.lsp".  You might want to change
	this path to an absolute one to make it easier to run Fugue from
	any directory.

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.