home *** CD-ROM | disk | FTP | other *** search
/ earth.cs.bath.ac.uk / earth.cs.bath.ac.uk.zip / earth.cs.bath.ac.uk / pub / dream / Version4_17.Notes < prev    next >
Text File  |  2002-01-07  |  8KB  |  296 lines

  1. Release Notes for 4.17
  2. ======================
  3.  
  4. Lots of small fixes and a couple of new things.  Some code has been
  5. revised for speed.
  6.  
  7.  
  8. Bug Fixes
  9. ---------
  10.  
  11. Various memory leaks fixed
  12.  
  13. Stopped the system gratuitously changing access modes of files (eg in
  14. sfont and fout)
  15.  
  16. Calculation of sr/kr/ksmps corrected when one or more were missing
  17.  
  18. Bug in parsing of z and x opcodes fixed
  19.  
  20.  
  21. Language Changes
  22. ----------------
  23.  
  24. the opcodes tablew and tablewkt were not specified correctly in the
  25. tables so tended to use k-rate version always, even when a-rate was
  26. wanted. 
  27.  
  28.  
  29. Opcode Fixes
  30. ------------
  31.  
  32. spat3d -- fix in checking for depth
  33.  
  34. scanu/scans -- interpolation was plain wrong; multiple instances fixed;
  35. memory problem fixed
  36.  
  37. schedXX -- simplifications and fixes in initisalisation
  38.  
  39. ftgen now allows strings in gens 23 and 28 (in addition to gen1)
  40.  
  41. New Opcodes 
  42. -----------
  43.  
  44. event -- insert a score event (an alternative to schedule) (matt)
  45.  
  46. active -- now have a k-rate version
  47.  
  48. ftchnls -- opcode to read number of channels in a sound file (cf ftlen
  49. etc) (Chris McCormick)
  50.  
  51. xscanu, xscans -- Experimental versions of scanu and scans.  Allow
  52. much larger matrices, and are faster and smaller, but remove some
  53. (unused?) flexibility.  If liked they will replace the older opcodes
  54. as they are syntax compatible, but extended.
  55.  
  56. New Gens
  57. --------
  58.  
  59. GEN32 -- (Istvan) transpose, phase shift, and mix source tables (sorry
  60. no further documentation)
  61.  
  62.  
  63. Other Changes:
  64. -------------
  65.  
  66. Optimisations in gbuzz and buzz; also in fof/fog, wgbowed, GEN11 and cpsoct
  67.  
  68.  
  69. Known Bugs
  70. ==========
  71.  
  72. The following bugs are known but not yet fixed
  73.  
  74. 6: PVOC can glitch (mail of Mon, 19 Jun 2000 00:45:23 +0200)
  75. 8. Spaces in arguments to opcodes can be ignored, giving oddities
  76. 9. Mismatched closing bracket can give crash (mail of Fri, 19 Oct 2001
  77.    19:00:56 +0100) 
  78.  
  79.  
  80. Windows GUI Changes
  81. -------------------
  82.  
  83.  
  84. -----------------------------------------------------------------------
  85. ==John ff
  86.   200 Orthodox Christmas
  87. ========================================================================
  88.    
  89.                           ftlen, ftlptim, ftsr, nsamp, ftchnls
  90.                                        
  91. Name
  92.  
  93.    ftlen, ftlptim, ftsr, nsamp, ftcnls -- Returns information about a
  94.    stored function table.
  95.    
  96. Description
  97.  
  98.    Where the argument within the parentheses may be an expression. These
  99.    value converters return information about a stored function table. The
  100.    result can be a term in a further expression.
  101.    
  102. Syntax
  103.  
  104.    ftlen(x) (init-rate args only)
  105.  
  106.    ftlptim(x) (init-rate args only)
  107.  
  108.    ftsr(x) (init-rate args only)
  109.  
  110.    nsamp(x) (init-rate args only)
  111.  
  112.    ftchnls(x) (init-rate args only)
  113.  
  114. Initialization
  115.  
  116.    None.
  117.    
  118. Performance
  119.  
  120.    ftlen(x) -- returns the size (number of points, excluding guard point)
  121.    of stored function table, number x. While most units referencing a
  122.    stored table will automatically take its size into account (so tables
  123.    can be of arbitrary length), this function reports the actual size if
  124.    that is needed. Note that ftlen will always return a power-of-2 value,
  125.    i.e. the function table guard point (see f Statement) is not
  126.    included.As of Csound version 3.53, ftlen works with deferred function
  127.    tables (see GEN01).
  128.    
  129.    ftlptim(x) -- returns the loop segment start-time (in seconds) of
  130.    stored function table number x. This reports the duration of the
  131.    direct recorded attack and decay parts of a sound sample, prior to its
  132.    looped segment. Returns zero (and a warning message) if the sample
  133.    does not contain loop points.
  134.    
  135.    ftsr(x) -- returns the sampling-rate of a GEN01 or GEN22 generated
  136.    table. The sampling-rate is determined from the header of the original
  137.    file. If the original file has no header, or the table was not created
  138.    by these two GENs ftsr returns 0. New in Csound version 3.49.
  139.    
  140.    nsamp(x) -- returns the number of samples loaded into stored function
  141.    table number x by GEN01 or GEN22. This is useful when a sample is
  142.    shorter than the power-of-two function table that holds it. New in
  143.    Csound version 3.49.
  144.    
  145.    ftchnls(x) -- returns the number of channels of a GEN01 or GEN22 generated
  146.    table, determined from the header of the original file.  If the
  147.    original file has no header, or the table was not created by these two
  148.    GENs ftsr returns -1.  (New in 4.17)
  149.  
  150. Examples
  151.  
  152.    None.
  153.    
  154. Deprecated Names
  155.  
  156.    None.
  157.    
  158. Credits
  159.  
  160.    Authors: Barry Vercoe
  161.    
  162.    MIT
  163.    
  164.    Cambridge, Massachussetts
  165.    
  166.    1997
  167.    
  168.    Gabriel Maldonado (ftsr, nsamp)
  169.    
  170.    Italy
  171.    
  172.    October, 1998
  173.  
  174.    Chris McCormick, Perth, Australia, December 2001
  175. ------------------------------------------------------------------------
  176.    
  177.                                      xscanu
  178.                                        
  179. Name
  180.  
  181.    xscanu -- Compute the waveform and the wavetable for use in scanned
  182.    synthesis.
  183.    
  184. Description
  185.  
  186.    Compute the waveform and the wavetable for use in scanned synthesis.
  187.    
  188. Syntax
  189.  
  190. xscanu init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass, kstif, k
  191. centr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id
  192.  
  193. Initialization
  194.  
  195.    init -- the initial position of the masses. If this is a negative
  196.    number, then the absolute of init signifies the table to use as a
  197.    hammer shape. If init > 0, the length of it should be the same as the
  198.    intended mass number, otherwise it can be anything.
  199.    
  200.    ifnvel -- the ftable that contains the initial velocity for each mass.
  201.    It should have the same size as the intended mass number.
  202.    
  203.    ifnmass -- ftable that contains the mass of each mass. It should have
  204.    the same size as the intended mass number.
  205.    
  206.    ifnstif -- EITHER an ftable that contains the spring stiffness of each
  207.    connection. It should have the same size as the square of the intended
  208.    mass number. The data ordering is a row after row dump of the
  209.    connection matrix of the system.
  210.         OR a string giving the name of a file in the MATRIX format
  211.    
  212.    ifncentr -- ftable that contains the centering force of each mass. It
  213.    should have the same size as the intended mass number.
  214.    
  215.    ifndamp -- the ftable that contains the damping factor of each mass.
  216.    It should have the same size as the intended mass number.
  217.    
  218.    ileft -- If init < 0, the position of the left hammer (ileft = 0 is
  219.    hit at leftmost, ileft = 1 is hit at rightmost).
  220.    
  221.    iright -- If init < 0, the position of the right hammer (iright = 0 is
  222.    hit at leftmost, iright = 1 is hit at rightmost).
  223.    
  224.    idisp -- If 0, no display of the masses is provided.
  225.    
  226.    id -- If positive, the ID of the opcode. This will be used to point
  227.    the scanning opcode to the proper waveform maker. If this value is
  228.    negative, the absolute of this value is the wavetable on which to
  229.    write the waveshape. That wavetable can be used later from an other
  230.    opcode to generate sound. The initial contents of this table will be
  231.    destroyed.
  232.    
  233. Performance
  234.  
  235.    kmass -- scales the masses
  236.    
  237.    kstif -- scales the spring stiffness
  238.    
  239.    kcentr -- scales the centering force
  240.    
  241.    kdamp -- scales the damping
  242.    
  243.    kpos -- position of an active hammer along the string (kpos = 0 is
  244.    leftmost, kpos = 1 is rightmost). The shape of the hammer is
  245.    determined by init and the power it pushes with is kstrngth.
  246.    
  247.    kstrngth -- power that the active hammer uses
  248.    
  249.    ain -- audio input that adds to the velocity of the masses. Amplitude
  250.    should not be too great.
  251.  
  252. Matrix Format
  253.  
  254.   The new matrix format is a list of connections, one per line
  255.   linking point x to point y.   There is no weight given to the link;
  256.   it is assumed to be unity.  The list is proceeded by the line
  257.   <MATRIX> and ends with a </MATRIX> line
  258.  
  259.   For example, a circular string of 8 would be coded as
  260. <MATRIX>
  261. 0 1
  262. 1 0
  263. 1 2
  264. 2 1
  265. 2 3
  266. 3 2
  267. 3 4
  268. 4 3
  269. 4 5
  270. 5 4
  271. 5 6
  272. 6 5
  273. 6 7
  274. 7 6
  275. 0 7
  276. </MATRIX>
  277.  
  278.  
  279. Examples
  280.  
  281.    For an example, see the documentation on scans.
  282.    
  283. Deprecated Names
  284.  
  285.    None.
  286.    
  287. Credits
  288.  
  289.    March, 2000 (New in Csound version 4.17)
  290.  
  291. ------------------------------------------------------------------------
  292. event
  293.  
  294. Examples
  295.         event   "i"     1, 10, 1, 32000, 440
  296.