home *** CD-ROM | disk | FTP | other *** search
/ PC Musician 2000 / PC_Musician_2000.iso / PCMUSIC / NOTATION / SILENCE / STK.TXT < prev    next >
Encoding:
Text File  |  1996-05-23  |  4.2 KB  |  118 lines

  1. TK96CPP
  2. A ToolKit of Audio Synthesis Classes 
  3.         and Instruments in C++
  4. Perry Cook, 1995-96 
  5.  
  6. Please read the Legal and Ethical notes at the
  7. bottom of this document.
  8.  
  9. For instant fun, if you get it to compile (see
  10. below) type TestAllNext or TestAllSGIRT.  The
  11. former makes sound files of each instrument and
  12. saves them under the instrument name.  The latter
  13. plays in real time from a SKINI scorefile.
  14.  
  15. For even more potential fun, try the GUI and MIDI
  16. interface demos in the directory TCLSpecs.  MIDI
  17. is SGI specific for today, look for more support
  18. later.  TCL works on SGI, maybe elsewhere, but
  19. you must have and install Tcl/TK.
  20.  
  21. For more documentation on this ToolKit, the classes,
  22. etc, read the file HIERARCH.txt and the individual 
  23. class definitions.
  24.  
  25. SGI vs. NeXT vs. Intel vs. the world:
  26. See Object.h and Makefile for machine-specific
  27. items.
  28.  
  29. Initial public release.  Some objects still beta.
  30.  
  31. This whole world was created with no particular
  32. hardware in mind.  These examples are intended 
  33. to be tutorial in nature, as a platform for the
  34. continuation of my research, and as a possible 
  35. starting point for a software synthesis system.
  36. The basic motivation was to create the necessary
  37. unit generators to do the synthesis, processing, 
  38. and control that I want to do and teach about.
  39. Little thought for optimization was given (see
  40. Object.cpp), and therefore improvements, especially 
  41. speed enhancements, should be possible with 
  42. these classes.  It was written with some basic 
  43. concepts in mind about how to let compilers 
  44. optimize (see Adrian Freed's home page for some 
  45. nice experience-based thoughts on that topic).
  46.  
  47. Your question at this point might be, "But Perry,
  48. with CMix, CMusic, CSound, CShells, CMonkeys, etc.
  49. already cluttering the landscape, why a new set
  50. of stupid C functions for music synthesis and
  51. processing?"  The answers lie below.
  52.  
  53. 1) I needed to port many of the things I've done
  54.    into something which is generic enough to port
  55.    further to different machines.
  56.  
  57. 2) I really plan to document this stuff, so that
  58.    you don't have to be me to figure out what's 
  59.    going on. (I'll probably be sorry I said this 
  60.    in a couple of years, when even I can't figure
  61.    out what I was thinking.)
  62.  
  63. 3) The classic difficulties most people have in 
  64.    trying to implement physical models are:
  65.  
  66.    A) They have trouble understanding the papers, 
  67.       and/or in turning the theory into practice.
  68.  
  69.    B) The Physical Model instruments are a pain to get 
  70.       to oscillate, and coming up with stable and 
  71.       meaningful parameter values is required to 
  72.       get the models to work at all.
  73.  
  74.    This set of C++ unitgenerators and instruments
  75.    might help to diminish the scores of EMails I
  76.    get asking what to do with those block diagrams
  77.    I put in my papers.
  78.  
  79. 4) I wanted to try some new stuff with modal synthesis, 
  80.    and implement some classic FM patches as well.
  81.  
  82. 5) I wanted to reimplement, and newly implement
  83.    more of the intelligent and physical performer
  84.    models I've talked about in some of my papers.
  85.    But I wanted to do it in a portable way, and in 
  86.    such a way that I can hook up modules quickly.
  87.    I also wanted to make these instruments connectable
  88.    to such player objects, so folks like Brad Garton
  89.    who really think a lot about the players can connect
  90.    them to my instruments, a lot about which I think.
  91.  
  92. 6) More rationalizations to follow . . .
  93.  
  94. ***********************************************************  
  95. Legal and Ethical:
  96.  
  97. This software was designed and created to be 
  98. made publicly available for free, primarily for
  99. academic purposes, so if you use it, pass it on 
  100. with this documentation, and for free.  
  101.  
  102. If you make a million dollars with it, give me some.
  103. If you make compositions with it, put me in the
  104. program notes.
  105.  
  106. Some of the concepts are covered by various patents, 
  107. some known to me and likely others which are unknown.  
  108. Many of the ones known to me are administered by the 
  109. Stanford Office of Technology and Licensing.  
  110.  
  111. The good news is that large hunks of the techniques
  112. used here are public domain.  To avoid subtle legal
  113. issues, I'll not state what's freely useable here, 
  114. but I'll try to note within the various classes 
  115. where certain things are likely to be protected by
  116. patents.
  117. ***********************************************************
  118.