home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Multimed / Multimed.zip / pmsx223.zip / history.txt < prev    next >
Text File  |  1996-06-09  |  51KB  |  1,028 lines

  1.  
  2. Future work (user requests):
  3. X.  Add tool to SWAP channels
  4. X.  Add system resources page
  5. X.  Warp function (like caliope)
  6. X.  On AVG function, allow combination based on percentages
  7. X.  Make an EFFECTS.DLL and an IO.DLL so that PMsndX can share
  8.     the same code with new applications that share the same code.
  9. X.  Add direct CD audio recording
  10.  
  11.  
  12. Revision history:
  13. Version 2.23:
  14. 1.  Added "External File Filter" capability.  Users can now
  15.     create a program which converts a particular format to
  16.     the RIFF format and use PMsndX to manipulate the data.
  17. 2.  Added the capability to specify both an INPUT and OUTPUT
  18.     "External File Filter" so that different programs can be used
  19.     to convert the data back and forth.
  20. 3.  Added a user selectable method for transferring the data between
  21.     an "External File Filter" and PMsndX programs.
  22.  
  23. Version 2.22:
  24. 1.  Fixed a bug in the REXX scripts that prevented the SAVEAS function
  25.     from working.
  26.  
  27. Version 2.21:   (28 Apr 96)
  28. 1.  Fixed update of the play position so that the channel display
  29.     is not updated when the window is resized.
  30. 2.  Toolbox now disassociates itself from the editor when a tool is
  31.     applied.  This makes it clear to the user that the toolbox
  32.     needs to be associated each time a tool is to be used.
  33. 3.  Added the highpass filter.
  34. 4.  Fixed Lowpass dialog page so that the right limit is set to
  35.     half the sample rate.  (This is the limit without causing
  36.     distortion.)
  37. 5.  Added "drag arrow" to lowpass dialog display to indicate the
  38.     range in which the mouse will be used to drag the center frequency.
  39. 6.  Both programs now warn the user on startup if the MMPM has been
  40.     disabled on a system in which MMPM is available.
  41. 7.  Added highpass filter to the REXX tools.
  42. 8.  Added a properties page for allowing user defined filename
  43.     mappings.  The user defined filenames are saved between settings
  44.     and are limited to a total of 64.
  45. 9.  When a file format cannot be determined from either the filename
  46.     (extension) or from a header, an error is now displayed.
  47. 10. Added user selectable method for the registration usage.  Previously
  48.     the program limited its use to only .WAV and .AU when it was not
  49.     registered.  Now, the user can select for it to be crippled (as
  50.     previous versions were), NAG, or disable saves.
  51. 11. Moved the "AUTO DISMISS" checkbox from the SAVE and OPEN dialogs
  52.     to the STARTUP properties page.
  53.  
  54. Version 2.15:  (1 March 1996)
  55. 1.  Fixed up the sizing of the status boxes so that they don't
  56.     overlap with the channel display
  57. 2.  Fixed up the sizing of the status text so that it doesn't
  58.     overlap with the box outlines.
  59. 3.  Added keyboard paging to the toolbox.
  60.     PGUP/PGDN pages through the tools
  61.     Ctrl-HOME pages to the first page
  62.     Ctrl-END pages to the last page
  63. 4.  Fixed a problem with the RECORD feature on some computers
  64.  
  65. Version 2.14:  (24 Feb 96)
  66. 1.  Created an option for selecting either the fast or slow method
  67.     for display of the editor graphs.  (Two new menu items for
  68.     Options->"fast full display" and options->"fast channel display",
  69.     and two new settings on the EDSNDX properties page.)
  70. 2.  Single channels can now be displayed using the fast display
  71.     routines.
  72. 3.  Finally found the stupid problem that prevented HELP from
  73.     working on the editor and toolbox until after the user selected
  74.     something inside the display.  Very stupid error on my part.
  75. 4.  Undo now stores the markers so that when the Undo is performed,
  76.     the markers return to the previous values.  Previously, if the
  77.     result of an UNDO were a file that was smaller than the current
  78.     markers, operations based on the marked area could cause errors.
  79. 5.  Data selection with the first mouse button is now performed
  80.     by dragging the marker area or with the traditional mode
  81.     using the second mouse button.
  82. 6.  Fixed a bug in the installation program which added an extra
  83.     semicolon
  84. 7.  Fixed a bug in the installation program which updated the PATH
  85.     variable with the help path.
  86. 8.  Added an editor to the installation program so that the user
  87.     can edit and approve of any changes to be made to the config.sys.
  88.  
  89. Version 2.13 (never released)
  90. 1.  Fixed bug in new graphical displays.  Previously, when the
  91.     editor window was resized, the graphical display would not
  92.     resize too.
  93. 2.  Finally fixed the colors on the editor FULLDISPLAY!!!!
  94.     Bow, bow!  Clap, Clap, Clap.
  95. 3.  Added checking for changes to the sample.  Before the editor
  96.     exits, if the sample has changed, the user is warned.
  97. 4.  If the data in the edit window has been modified, the "Percent
  98.     complete" will show either the current work or 100%.  If the
  99.     data has not been modified or it has been saved, then the
  100.     "Percent complete" indicator will be 0%.
  101.  
  102. Version 2.12  (20 Feb 96)
  103. 1.  Fixed update of the toolbox so that it doesn't show the
  104.     tools as they are created.
  105. 2.  Created a new installation tool.  The MMINSTALL program just
  106.     has too many problems for me to rely on it.
  107. 3.  Took out controls for CD-DA and CD-XA for recording.
  108. 4.  Added Exception handling (finally!)  Ctrl-C, Break, and
  109.     KILLPROC exceptions now exit the program cleanly.
  110. 5.  Fixed up the program so that file errors do not force the
  111.     user to hit RETRY 5 times.  It now retries and "gracefully"
  112.     gives up.
  113. 6.  Corrected the OPEN and SAVE dialogs so that the LOAD and
  114.     SAVE (SAVEAS) buttons are not disabled during loading.
  115. 7.  Corrected a bug in the loader which caused the pointer
  116.     to become a 0% clock when a load failed.
  117.  
  118. Version 2.11 (beta 3)  (9 Feb 96)
  119. 1.  Fixed another bug in the SAVE AS dialog box.
  120. 2.  Fixed a bug in the FILE dialogs (OPEN, SAVE, SAVEAS) which
  121.     caused the dialog to be dismissed when the HELP button was
  122.     pressed.
  123.  
  124. Version 2.11 (beta 2)  (5 Feb 96)
  125. 1.  Fixed a problem with stack size when the FixPack 17 is installed
  126. 2.  Fixed a problem with the speed dialog which caused the
  127.     current speed to be incorrectly displayed
  128. 3.  Fixed the "type" dialog so that it updates the windows when
  129.     the type is changed.
  130. 4.  Fixed a bug in the SAVEAS dialog so that a new filename can
  131.     be typed rather than it thinking it is a filter
  132. 5.  Added a new SPEED dialog that just changes the header
  133.     but doesn't resample.
  134. 6.  Fixed help on the toolbox so that the proper page is
  135.     displayed
  136.  
  137. Version 2.11 (beta 1)  (7 Jan 96)
  138. 1.  Rewrote graphic displays so that the full display blinks
  139.     less when playing a sample.
  140.  
  141. Version 2.10  (1 Jan 96)
  142. 1.  Changed the Tools notebook to a standard window with a menu.
  143.     The result is much smaller and easier to understand.
  144. 2.  Added a file list to the tools window so that the tools can be
  145.     associated with an open file from the tools window.
  146.  
  147. Version 2.05  (27 Sep 95)
  148. 1.  Fixed bug in initializers!!!  Big blunder!
  149. 2.  Added settings for CD-DA and CD-XA interfaces
  150.  
  151. Version 2.04  (10 Sep 95)
  152. 1.  Fixed minor problems with HELP file.
  153. 2.  Fixed player so that it doesn't play past the end of the file.
  154.     (Added EOF detection zone setting)
  155. 3.  Fixed bug in playback for EdSndX.EXE which would try to play
  156.     past the end of the buffer.
  157. 4.  Added FILE_ARCHIVED and FILE_READONLY to the list of attributes
  158.     that are acceptabel to display in the directory window of the
  159.     file dialog.
  160. 5.  Fixed MMPM buttons so that they don't get mangled when
  161.     editor windows are dismissed
  162. 6.  Fixed bug in editor which caused the MMPM on all open windows
  163.     to be disabled when one window was closed
  164. 7.  Fixed huge bug in lowpass, bandpass, and fade tools which
  165.     would clip and zero data.  Word to the wise, never let C++
  166.     automatically promote...you never know what it will promote
  167.     to!
  168. 8.  Make the help file a bit more user friendly.  Specifically,
  169.     add an introduction to all the tools that explains what they
  170.     do.  Expecially the LOW PASS!
  171. 9.  Add feature to the SAVEAS dialog so that the path display
  172.     in the top box is automatically updated with the path as
  173.     it is traversed through the other controls.  This was added
  174.     to make entering file names in different directories much
  175.     easier.
  176. 10. For the volume indicator, the mouse now changes to a horizontal
  177.     size pointer when it is in a position to drag the volume
  178. 11. Aligned the numbering of PlSndX.exe with that of EdSndX.exe
  179. 12. Changed the FILE dialogs so that they do not display the
  180.     ".." path when in the root directory.  Sometimes OS/2 reports
  181.     a path of ".." even when in the root directory.  I have not
  182.     figured out what the conditions are that make the ".." appear
  183.     in the root, but have just eliminated them when they do appear.
  184. 13. Increased the message queue size for the pipes from 10 to 100.
  185.  
  186. Version 2.03  (1 Sep 95)
  187. 1.  Record settings is now an object and each box has its own
  188.     space so that changes to one box do not affect others.
  189.  
  190. Version 2.02  (29 Aug 95)
  191. 1.  Fixed a small bug in the registration checking such that if
  192.     your registration expired, the warning would repeatidly display.
  193.  
  194. Version 2.01
  195. 1.  Fixed a small bug in the settings display.
  196.  
  197. Version 2.00  (1 Aug 95)
  198. 1.  Make the Editor the central point of control
  199. 2.  Create Multiple Document Interface
  200. 3.  Integrated Editor and AUDIO windows into the same window
  201. 4.  Fixed major bug in the MMPM/2 code which crashed the program
  202. 5.  Created PlSndX to provide commandline playback capability
  203. 6.  Created EdSndX to replace PMsndX.EXE
  204. 7.  Add menu to the editor
  205. 8.  Display multiple channels on the edit display.
  206. 9.  Integrate MMPM into the editor dialog (maybe)
  207. 10. Allow editing of the info field
  208. 11. EdSndX command line arguments preloads files
  209. 12. Changes to the Type field automatically change the extension
  210. 13. Added Auto Rate change for PlSndX only
  211. 14. Updated REXX to reflect new capabilities and MDI interface
  212.     (Resulted in total loss of compatibility in REXX scripts between
  213.     reveision 1.x and 2.x)
  214. 15. Added MergeFROM and PasteFROM capability to perform operations
  215.     faster between open windows
  216. 16. Added piping capability to PlSndX so that when a sample is played
  217.     from the commandline, and a copy of PlSndX is already open, it
  218.     pipes the commandline arguments over to the existing session to
  219.     save memory and resources
  220. 17. Retooled the Properties box so that the special settings for the
  221.     editor are on a page under EdSndX
  222. 18. Added the ability to perform multiple selections from the open
  223.     dialog box.
  224. 19. Added Fast Queueing feature to PlSndX
  225. X.  Added tons of new stuff
  226.  
  227. Revision history:
  228. Version 1.38
  229. 1.  Rewrote the FILE dialog box from scratch rather than using
  230.     WinDefFileDlgProc as in previous versions.  I made this
  231.     very generic and more easily expandable.  It is also a bit
  232.     more compact so it saves some screen space.  The biggest
  233.     addition is the file history which stores a cache of the
  234.     last files accessed.  This cache is saved between sessions
  235.     if the "Save file XXXX path" options are set.
  236.  
  237. Version 1.37b:
  238. 1.  Added capability to pull the sound out of an AVI movie
  239.  
  240. Version 1.37:
  241. 1.  Added expiration date to registration information
  242.  
  243. Version 1.36b-d:
  244. 1.  Corrected simple bugs and changed email address of author
  245.  
  246. Version 1.36a: (9 Dec 94)
  247. 1.  Added an option to the MISC Properties to warn the user
  248.     when a .AU file is created which is not ULaw format.
  249. 2.  Added functions to query and set the tristate property
  250.     for forcing ULaw format
  251.  
  252. Version 1.36:  (8 Dec 94)
  253. 1.  Added option to the properties box to enable or disable
  254.     the footnote display.
  255. 2.  Animated the Pause button
  256. 3.  Fixed a problem with the help to conform with the recommended
  257.     usage of the F1 key (from the CUA guidelines).
  258. 4.  Added rexx functions to query and set the new Properties
  259.     for sharing the audio device and creating the footnote
  260.     on the main control panel.
  261. 5.  Enabled UL for the unregistered version of PMsndX.
  262.  
  263. Version 1.36 (beta 2):  (27 Nov 94)
  264. 1.  Recompiled with IBM CSet++ to solve a problem with crashing
  265.     under OS/2 3.0 (Warp) GA.
  266. 2.  Oops...I forgot to update the version text to indicate that
  267.     the first beta was actually a beta.
  268. 3.  Corrected a major oversight in the MMPM code which prevented
  269.     PMsndX from playing sounds after the 12 sample was loaded.
  270. 4.  Added option to use the audio device without sharing.
  271.  
  272. Version 1.36 (beta 1):  (16 Nov 94)
  273. 1.  Fixed the HELP so that the standard F1 key is now supported
  274. 2.  Added TOOLPAGE AND PROPPAGE features to the REXX scripts to
  275.     change pages of the Toolbox and the Properties notebook.
  276. 3.  Modified parsing of the RECORD command so that the keywords
  277.     can be specified in any order.  Previously, the limit had to
  278.     be specified after the rate and channels and PMsndX would
  279.     crash if it was not in this order.
  280. 4.  Bug:  When AVERAGING channels, if the average was to the
  281.     CENTER, the result would be random.
  282. 5.  Modified the AVERAGE 4TO1 REXX syntax to allow the specification
  283.     of the FROM channels.
  284. 6.  Changed the memory allocation scheme.  Now, the limit specified
  285.     represents the total amount of OS/2 memory that can be allocated
  286.     by the program and can be set to as many as 32767 4k pages.  The
  287.     AUTO settings essentially places no limit on the amount of memory
  288.     that the program will attempt to take.  You better have a big
  289.     swap file if you plan on using AUTO and large samples!
  290. 7.  Bug:  Previously MMPM would refuse to play a sample which had
  291.     more channels that the audio device supported regardless of the
  292.     channel selection setting.  Now, if the channel selection is
  293.     set and a channel has been selected, the audio device will play
  294.     the specified channel.
  295. 8.  Changed the REXX syntax for the EDITOR.  The editor is no longer
  296.     displayed when data is manipulated.
  297. 9.  Finished the REXX implementation.
  298.  
  299. Version 1.35:  (6 Nov 94)
  300. 1.  Removed all "Cancel", and "Dismiss" buttons from all
  301.     dialogs.  The system menu for the dialogs is used to
  302.     close the boxes.  A new button "RESET" has been created
  303.     for the dialogs which have an "APPLY" button.
  304. 2.  Added an option to the AUDIO Properties to play on Command line
  305.     load.  This allows sounds to be played from the command line
  306.     without setting the PLAY ON LOAD setting.  The PLAY ON LOAD
  307.     still operates as it did before.
  308. 3.  When PMsndX is registered and a file is specified on the command
  309.     line, the ABOUT dialog box is not displayed.
  310. 4.  Added volume control to the AUDIO and QUERY parts of the REXX
  311.     syntax to let the REXX set the initial volume.
  312. 5.  Added keyboard input through the REXX OUTPUT window.  Handles
  313.     STDIN (e.g. PULL) but not CHARIN.
  314. 6.  Modified and implemented the MESSAGE portion of the REXX
  315.     scripts.  (Changed the MESSAGE subcommands to functions so
  316.     that they can return the status of the buttons.  Also, added
  317.     an array of capabilities to match all possible combinations that
  318.     OS/2 offers).
  319. 7.  Changed FILE subcommands to functions to allow for better
  320.     processing of arguments and to allow PMsndX to return the
  321.     fully qualified filename.
  322. 8.  Added command to suppress the display of the PMsndX REXX
  323.     commands in the output window.
  324. 9.  Fixed the RECORD portion of the REXX scripts so that they work!
  325. 10. Added a REXX page to the Properties Dialog.  Also moved the
  326.     REXX Lines to the REXX page and added 4 spinbutton type windows
  327.     to let the user choose the colors of the REXX display.
  328. 11. Added the EDITOR functions to the REXX scripts.
  329. 12. Added DISPLAY section to the REXX
  330.  
  331. Version 1.34:  (1 Nov 94)
  332. 1.  All dialogs now use the following buttons:
  333.     APPLY  means "do it", "apply", "save changes" or whatever I use to use
  334.     CANCEL means "dismiss", "close", "get this damn window off my screen"
  335.          without recording any changes made.
  336.     ABORT  (where applicable) "stop that task from taking up my CPU!"
  337.     (A description of the major buttons has been added to the HELP file)
  338. 2.  Added CANCEL button to the play options dialog
  339. 3.  The checkboxes for "Auto Dismiss" and "Save Directory" are
  340.     only saved when a file is successfully loaded.  (Why not when
  341.     the window dismisses?  Well duh!  If you don't set the "Auto
  342.     Dismiss" the only way to get rid of the box is with the Cancel
  343.     button.  So, I save the status after a file is successfully loaded.
  344. 4.  Added item to the MISC Properties page to specify the location
  345.     of the PMsndX.ini file.
  346. 5.  CRITICAL CHANGE!!!!  While starting to implement the REXX
  347.     processing I found that I had overlooked an important problem.
  348.     With all the ownerships of C++, I could not manipulate all of
  349.     the private variables without the dialog boxes.  All of the
  350.     functions had to be modified to allow a "back door" for the
  351.     rexx scripts.  This could bring in new errors.  Look out!
  352. 6.  Modified the Clipboard routines so that they do not clear
  353.     the clipboard when data is pasted.
  354. 7.  When a file is loaded, the UNDO is updated if it is enabled.
  355. 8.  When a file is aborted, and UNDO is enabled, the old data
  356.     is automatically restored.
  357. 9.  When an error occurs when loading a file and UNDO is enabled,
  358.     the previous data is restored.
  359. 10. Implemented the FILE portion of the REXX scripts
  360. 11. Modified the REXX output so that all commands are displayed
  361.     before the command is executed.  Also, when an error occurs,
  362.     the command is now displayed before the error is displayed.
  363. 12. When command line playback is used, the AUDIO dialog box is
  364.     displayed.
  365. 13. Rewrote the commandline playback section so that a REXX script
  366.     can be played.  (Commandline playback will stop after the
  367.     first rexx script that is encountered.)  Previously, playback
  368.     was hit or miss because I did not expand filenames properly.
  369.     It is fixed in this version.
  370. 14. Implemented the MISC portions of the REXX scripts
  371. 15. Implemented the AUDIO PLAY support in the REXX scripts
  372. 16. Added MMPM_DEVICE, MMPM_INI_PATH, and MMPM_PLAY_16ON8 to the
  373.     REXX script syntax.
  374. 17. Implemented the PROPERTIES portion of the REXX script.
  375. 18. Modified the syntax of the RECORD command
  376. 19. Changed the QUERY commands from subcoms to functions
  377. 20. Added option to the PROPERTIES to play headerless .AU
  378.     files automatically
  379.  
  380. Version 1.33:  (24 Oct 94)
  381. 1.  Bug:  The Drag/Drop routines did not check to see if PMsndX was
  382.     currently processing data before the drop operation started.
  383.     (When the F1 key is pressed during this condition, a dialog
  384.     box displays the problem.)
  385. 2.  Added option to the AUDIO page of the settings dialog to
  386.     let 16 bit samples play on 8 bit cards.  (Someone with an 8
  387.     bit card needs to test this!)
  388. 3.  Added option to ignore unknown header blocks when loading a file
  389.     (if the result of the unknown header block makes the file unloadable
  390.     an error will be displayed.  This only disables the warnings.)
  391. 4.  Bug:  Drag/Drop previously concatenated successive drag/drop
  392.     names together because I did a strcat instead of a strcpy.
  393. 5.  Added option to let the .AU file extension override the header
  394.     information.  Essentially, by default, if a file with an extension
  395.     of .AU is opened and it does not contain a header, it will be
  396.     forced to be interpreted as ULAW with standard characteristics of
  397.     1 channel, and 8012 Hz sampling rate.  By turning this option on
  398.     the operation requires that all .AU files contain a valid header.
  399. 6.  Changed the "Settings..." menu item to "Properties..."
  400. 7.  When a command script (REXX) is opened, the name on the control
  401.     panel is not changed.
  402. 8.  When a command script (REXX) is opened, the REXX output window
  403.     will have the title of the file that is running.
  404. 9.  Added a series of QUERY commands to the REXX syntax to allow
  405.     information about both PMsndX properties and file properties.
  406.  
  407. Version 1.32:  (30 Sep 94)
  408. 1.  Bug:  Fixed bug in writing 16 bit .WAV files.  (I was writing
  409.     a FormatTag of 0x02 instead of 0x01.)
  410.  
  411. Version 1.31:  (28 Sep 94)
  412. 1.  Removed Help, Exit, and Settings from the control panel
  413. 2.  Moved the Playback options to a dialog from the
  414.     SysMenu of the AUDIO dialog
  415. 3.  Changed the Settings to a Notebook
  416. 4.  Completed the following REXX commands:
  417.         PMSNDX EXIT
  418.         PMSNDX CLOSE
  419. 5.  Fixed bug in REXX display window
  420.  
  421. Version 1.3:   (never released)
  422. 1.  Added footnote window to main control panel
  423. 2.  Added REXX hooks
  424. 3.  Added a display window for the REXX output
  425.  
  426. Version 1.2:   (16 Sep 94)
  427. 1.  Fixed bug with semaphores in MMPM which caused the data to
  428.     become locked.
  429.  
  430. Version 1.2:   (8 Sep 94)
  431. 1.  Drag and Drop functionality added
  432.     - Accepts Files for dropping.
  433.     - When sending a file, if it is not a OS/2 file, it must
  434.       be rendered into a file by the source first
  435. 2.  When registering, the current password is not displayed
  436. 3.  Fixed bug in writing .VOC files
  437.  
  438. Version 1.1:   (4 Sep 94)
  439. 1.  Previously, REMOVE in the editor did not utilize the UNDO
  440.     feature.
  441. 2.  Added recording capability for the MMPM Player.
  442.     - Records directly to memory
  443.     - Records till a specified limit or till STOP is pressed
  444.     - Detects current AUDIO capabilities
  445. 3.  Added VOLUME control for both playback and record
  446. 4.  Changed the name of the MMPM/PLAYBACK button to AUDIO
  447. 5.  Changed over to MUTEX semaphores to limit access to the
  448.     sample data between tasks
  449. 6.  Added a semaphore to the MMPM copy of the data (This
  450.     was necessary to avoid conflicts between play and
  451.     record)
  452.  
  453. Version 1.0:   (22 Aug 94)
  454. 1.  Modified Copy command to only copy a single channel when
  455.     a single channel is selected.
  456. 2.  Renamed class to "PMsndX 1.00" (This will have the effect
  457.     of forcing beta testers to recreate the pmsndx.ini file)
  458. 3.  Bug.  Previously, the length of the start was always added
  459.     to the end when the clipboard was merged.
  460. 4.  Bug.  Previously, no matter if a selection was specified
  461.     for a channel or ALL was selected, REMOVE would remove
  462.     from all channels.
  463. 5.  Changed the profile operation so that the os2.ini file is
  464.     only modified when the program is registered.
  465. 6.  Added examples of the user interface to the help file.
  466. 7.  Created two help files.  The larger file is the default
  467.     and contains examples of the user interface.
  468.     smallhlp.hlp is the version of the help without the
  469.     examples.  To use the smaller version, copy it to
  470.     pmsndx.hlp.
  471.  
  472. Version 0.88:  (16 Aug 94)
  473. 1.  Bug.  Oh hey, secondary windows receive a WM_QUIT message
  474.     when they exit!  That caused PMsndX to exit too!  The solution?
  475.     Remove the CLOSE item from the MMPM system menu.
  476. 2.  Bug.  When using the VIBRO function, if the speed was left
  477.     at zero (0), PMsndX would hang.
  478. 3.  AUTO DISMISS is now the default for the OPEN and SAVE dialogs.
  479. 4.  The MMPM button has been renamed to PLAYBACK.
  480. 5.  Added more updates to the CLOCK pointer so that it does
  481.     not hang at positions when operations end prematurely.
  482. 6.  If MMPM is installed it is automatically enabled in the
  483.     settings box.
  484. 7.  The default is to save the window positions and the last
  485.     directory accessed.
  486. 8.  Removed the REWind button from the MMPM player and reorganized
  487.     the buttons.
  488. 9.  Bug.  The horizontal sides of the control panel would allow
  489.     the panel to resize smaller without resizing the buttons.
  490.     Now, resizing using the horizontal sides just moves the box.
  491.  
  492. Version 0.87:  (14 Aug 94)
  493. 1.  Bug.  The average function did not work for 4 channels.
  494. 2.  Bug.  The rate and speed dialogs did not properly manipulate
  495.     the mouse pointer and it would go from 0 to 2 but no further.
  496.     Note that there was nothing wrong with the operation other
  497.     than the mouse pointer did not get updated properly.
  498. 3.  Bug.  When a range was selected for the REVERSE tool, the
  499.     actual data reversed would be incorrect if the beginning
  500.     was not at 0.0 offset.
  501. 4.  Add tool to invert a waveform
  502. 5.  When PASTING from the clipboard, if the SHIFT key is held down
  503.     while pressing the PASTE button, the data on the clipboard will
  504.     be merged instead of pasting.  (merge = average 50/50).
  505. 6.  Bug.  When pasting, the old bug for Signed/Unsigned WAV
  506.     data was found again.
  507.  
  508. Version 0.86:  (11 Aug 94)
  509. 1.  Bug.  The Lowpass dialog would not redraw itself after it is
  510.     uncovered by another window.
  511. 2.  Bug.  If a .WAV file was loaded which contained a bad header,
  512.     the READ task would hang.
  513. 3.  If very small files were loaded (e.g. under 100 samples) the
  514.     clock pointer would stick at the 11:00 position and the open
  515.     dialog did not receive the signal to close.  It appears that
  516.     the system receives too many posts to the pointer queue and
  517.     as we all know, OS/2 deletes posts that are duplicated.  The
  518.     solution...force a .1 second delay after the read before sending
  519.     the update information.
  520. 4.  Previous versions just BEEPed when an operation was attempted
  521.     while the current sample was being manipulated.  That has been
  522.     changes so that if an operation is attempted while the data
  523.     is "busy" an error is displayed.
  524. 5.  Bug.  If the MMPM dialog was dismissed while the MMPM buffers
  525.     were being loaded, the "busy" flag would not be cleared
  526.     and no further operations could be done.
  527.  
  528. Version 0.85:  (9 Aug 94)
  529. 1.  Edited virtually all of the dialogs so that they would
  530.     appear correctly when VGA fonts are used with SVGA displays.
  531.     (Note, this may be an odd combination, but people use it
  532.     and I had to make sure that PMsndX displays correctly).
  533.  
  534. Version 0.84:  (8 Aug 94)
  535. 1.  Resized the MMPM dialog (moved the group box, added space
  536.     between the checkboxes, and increased the width and height
  537.     of the overall box)
  538. 2.  Widened the OPEN and SAVE dialog boxes and moved things
  539.     over to the right to add more space to avoid clipping
  540. 3.  Bug.  When the editor display is updated with a new file,
  541.     the Vertical Scroll bar (Zoom) would be set to maximum but
  542.     the actual zoom would be minimized.
  543. 4.  Bug.  When the redraw button on the editor was pressed, the
  544.     horizontal scroll bar would revert to the leftmost position
  545.     but the display would remain unchanged.  Pressing an arrow
  546.     would return it to the correct position.
  547. 5.  The Tools box size has been increased to allow more space
  548.     between the controls to avoid clipping.  On a 1024x768 display
  549.     the controls looked fine but at VGA resolution they were clipped.
  550.     a.  The Type page previously clipped the IRACAM and SMPVS
  551.     b.  The Average Channels page had the checkboxes touching
  552.     c.  The band-pass filter page clipped the "Add filter noise"
  553.     d.  The low-pass filter page clipped the slider at the top
  554.     e.  The Vibro-champ page had the sliders clipped
  555.     f.  The Fade page was clipped on the right side
  556.     g.  The Limit page clipped the sliders
  557.  
  558. Version 0.83:  (7 Aug 94)
  559. 1.  Fixed up the bitmap displays.
  560. 2.  PMsndX now checks the MMPM parameters to verify that the sound
  561.     card can play 16 bit sound samples.  If the sound card cannot
  562.     play 16 bit sounds, then the MMPM player will not load its buffers
  563.     and will just refuse to play.
  564.  
  565. Version 0.82:  (7 Aug 94)
  566. 1.  In previous versions, if a file was being saved and the program
  567.     exited, the program would wait indefinitely till the save completed.
  568.     This could prevent killing PMsndX and would lock the message queue.
  569. 2.  The MMPM player now displays "Loading Data" when it is filling
  570.     the data buffers.
  571. 3.  PMsndX now exits correctly when Ctrl-C is pressed from a command
  572.     window or when PMsndX is terminated from a task manager.
  573. 4.  PMsndX now properly terminates all tasks (save and MMPM) when
  574.     the program exits.  In previous versions, the MMPM task for
  575.     loading buffers was not killed when the program exited or when
  576.     the MMPM dialog was destroyed.
  577. 5.  In previous versions I did not save the last position of the
  578.     windows if the program exited while the windows were open.  This
  579.     was because I saved settings stuff before closing the windows and
  580.     the windows did not save their positions till they closed.
  581. 6.  The Toolbox now sets the tabs size based on the resolution of
  582.     the monitor.  This should avoid problems with clipping of text
  583.     found in previous versions.  (David Charlap showed me how to do
  584.     this effectively)
  585. 7.  Added hotkeys to the Tools notebook
  586. 8.  Moved the registration information out of the pmsndx.ini file
  587.     and into the system user ini file so that a user may use the
  588.     pmsndx.ini file on any computer or on a network.
  589.  
  590. Version 0.81:  (17 Jul 94)
  591. 1.  Bug.  The MMPM reloaded its buffers when the channel to manipulate
  592.     was changed regardless of the checkbox for global channels
  593. 2.  Bug.  The MMPM reloaded its buffers when the range to manipulate
  594.     was changed regardless of the checkbox for global range
  595. 3.  Bug.  (Well, not really) The error boxes were not application
  596.     modal.  They are now.
  597. 4.  A few fixups on the help text.
  598. 5.  Dialog windows do not move with the main control panel.
  599. 6.  The welcome dialog box has been changed so that the standard
  600.     text is greyed and the new stuff is dark to make it easier to
  601.     read.
  602. 7.  If the current sample in memory has been modified and the
  603.     EXIT button is pushed, the program will tell the user that
  604.     modified buffers exist and verify that the user wants to continue.
  605. 8.  The Registration box now has the capability to read a file
  606.     and find the registration information if it has the proper
  607.     keywords (i.e. if it was a password that I emailed you).
  608. 9.  Fixed bug in .WAV reader in which an the header was not checked
  609.     for invalid data and a "divide by 0" error could occur.
  610.  
  611. Version 0.8:  (17 Jul 94)
  612. 1.  Added a menu item to the main control panel to reset the size
  613.     of the main control panel to the default
  614. 2.  Bug.  When a sample is very short, the Display was not cleared
  615.     beyond the end of the sample.
  616. 3.  Bug.  When "Play on load" was selected, the new MMPM thread
  617.     would get triggered by window updates.
  618. 4.  Bug.  The Repeat button on the MMPM box could not be cleared
  619.     once set without closing down the box and reopening it.
  620. 5.  Resizable main control panel (what a bear!!!)
  621. 6.  Fixed windows so that they cannot fall outside of the viewable area
  622. 7.  Fix the file wildcard usage
  623. X.  Added HOTKEYS for the main control panel
  624.  
  625. Version 0.7:  (13 Jul 94)
  626. 1.  Added a REGISTRATION button the to Welcome box
  627. 2.  Completed a little tool (which you will never see) to
  628.     automatically generate the passwords and store them in
  629.     a database.  This illustrates the power of OS/2 because
  630.     I completed a fully functional editor in about 1 day.
  631. 3.  Edit confirmation to the EXIT button
  632. 4.  .WAV files now skip unknown keywords rather than reporting errors
  633. 5.  Added another thread to the MMPM player for loading the
  634.     buffers.
  635. 6.  Added new BITMAPs for the main control panel when MMPM
  636.     is not installed.
  637. 7.  Added a Repeat function to the MMPM playback
  638. 8.  Finished the BALANCE tool
  639. 9.  Fix all tasks so that sounds cannot be operated on while
  640.     another a task is modifying the buffers (i.e. while the
  641.     buffers are loading for the MMPM, the range selections
  642.     cannot be made)
  643. 10. Added a redraw button the the editor
  644. 11. Bug fixed.  When the display box was previously selected, the
  645.     display would receive the mouse movements, but the window would
  646.     not become the active window.
  647. 12. Add the ability to UNDO the last command.  This will double
  648.     the memory requirements and should be in the settings page
  649.     to disable for users who don't want to lose the memory.
  650. 13. The letters "I" and "O" were removed from the passwords to prevent
  651.     confusion over the number 1 and the letter I and the number 0 and
  652.     the letter O.
  653. 14. Fixed window locations so that they can never fall off the
  654.     screen.
  655. 15. Added MINIMIZE button to the dialogs
  656. 16. Bug fixed.  VOC files with a type 0x0a marker were not
  657.     read.  Unknown markers are skipped now.
  658. 17. Bug/oversight.  The Cut button was disabled for ranges
  659.     even if the program was registered.
  660.  
  661. Note 1: For Beta Testing purposes, use the following to enable
  662. all functions
  663.     Name:               "Beta Version Registration"
  664.     Through Version:    0.99
  665.     Password:           "cHLttnr0sqypjc2e"
  666. To enter the password, select REGISTER on the ABOUT or
  667. WELCOME boxes (accessed from the system menu).
  668.  
  669. Version 0.6:  (6 Jul 94)
  670. 1.  Renamed the initialization file from pmsndx03.ini to pmsndx.ini
  671. 2.  Removed QUALITY factor from the SAMPLING RATE tool
  672. 3.  Set up a global object which is shared between all dialogs
  673.     to allow the editor to be the central point of control for
  674.     selecting the range and channels for operations.
  675. 4.  Added checkbox to let the user select if he wants to automatically
  676.     dismiss the save/open dialogs
  677. 5.  Add "Global range selection" checkbox to MMPM Player
  678. 6.  Use "Global channel selection" for MMPM player (add checkbox)
  679. 7.  Add version indicator in the .ini file - (current version)
  680. 8.  Setup timer to MAIN control panel which propagates to the dialogs
  681. 9.  Check the size of the clipboard data and warn if it is
  682.     dissimilar to memory (use smaller of the two after paste)
  683. 10. Check the rate of the clipboard data and warn if it is
  684.     dissimilar to memory
  685. 11. When a version is run for the first time, a Welcome dialog is
  686.     displayed in place of the About box with information about the
  687.     current version.  (The welcome can be redisplayed from the main
  688.     menu.)
  689. 12. Change initial ABOUT box so that it doesn't block the message
  690.     queue
  691. 13. Added info box to indicate whether each tool uses the global objects
  692. 14. Use "Global range selection" in place of local display for tools
  693. 15. Use "Global channel selection" for the tools
  694. 16. Add registration stuff (after 15 minutes of use, guilt!)
  695.     - Disable all formats except .WAV and .AU if registration fails
  696.     - Disable individual channel selection on the editor
  697.     - Disable Range selection for Copy and Cut on the editor
  698.  
  699. Note 1: For Beta Testing purposes, use the following to enable
  700. all functions
  701.     Name:               "Beta Version Registration"
  702.     Through Version:    0.99
  703.     Password:           "cHLttnr0sqypjc2e"
  704.  
  705. Note 2:  The format of the .ini file has not changed.  Rename
  706. pmsndx03.ini to pmsndx.ini and you will not have to recreate
  707. the window locations and settings.
  708.  
  709. Version 0.5:  (8 June 94)
  710. 1.  Finished the Editor
  711. 2.  Added page in notebook for swapping channels
  712. 3.  Fixed an error when writing WAVE files with multiple channels
  713.  
  714. Note:  The big addition of the editor was a lot of work and is
  715. probably not perfect for everyone's needs.  Handling of multiple
  716. channels is awkward at best, but I think that I have made the
  717. most of it.  Opinions for improvement are welcome.  Read the
  718. help page to understand the PASTE operation before using it!
  719. The editor has been written such that it does not use the MMPM
  720. libraries for the sound manipulations in order to allow it to
  721. work on any system.
  722.  
  723. Note 2:  The global channel selection is not implemented across
  724. all the tools yet.  That will be in the next release.
  725.  
  726. Version 0.4a:  (4 June 94)
  727. 1.  Finished the Dupe dialog box in the tools box.
  728. 2.  Fixed an error with processing the Rate effect when
  729.     multiple channels are present.
  730. 3.  Fixed Echo effect to work with multiple channels
  731. 4.  Fixed Fade effect to work with multiple channels
  732.  
  733. Version 0.4*:  (22 May 94)
  734. 1.  Added support for the MAC HCOM format.  Unfortunately the only
  735.     portions of the header that are implemented are the ones that
  736.     SOX implements because I could not find examples of the HCOM
  737.     format and had to create a sample file from a .WAV file using
  738.     SOX.
  739. 2.  Added support for the IRCAM format.  Again, like the HCOM
  740.     format, I could not find samples in this format and had to
  741.     use SOX to create samples for testing.  As a result, only
  742.     the header fields supported by SOX are enabled.
  743. 3.  Added support for SampleVision (.smp) format.  WARNING:  This
  744.     is a wierd format in which the RATE is stored at the end
  745.     of the file.  You may find that when loading this type of
  746.     file no error is produced but an absurd rate may be displayed
  747.     in the Info tool page.  (Some reasons...SOX10 for OS/2 replaces
  748.     every CR return (char 13) with a CRLF.  I think that the output
  749.     file was not set to RAW so the file functions were fixing the
  750.     data up for DOS.  By the way, you can fix this up by changing
  751.     the playback speed (not the rate!!!) to something logical.)
  752. 4.  Reorganized the toolbox (again) and added place holders for
  753.     fading and balancing in a sample.  This will be added later.
  754. 5.  Added the user interface for the editor.  It is non-functional,
  755.     but is intended to get feedback on the functions that it will
  756.     be provided.  If you don't like it, now is the time to change
  757.     it!
  758. 6.  *** BUG:  Fixed bug in display routines for graphs when an absolute
  759.     value was entered into the start and end fields for the reverse
  760.     effect.
  761. 7.  Added fading to the tool box under the major header of VOLUME.
  762.     Samples can be faded in or out and at different rates.
  763.  
  764. *   Note:  With this version, all of the functionality of SOX has
  765.     been completed.  From here on out, we are breaking new ground.
  766. **  Note:  Space is reserved for the Dupe, Fade, and Balance effects,
  767.     but they have not been implemented and the DOIT button is
  768.     never enabled.
  769. *** The size of the executable is about 300k right now.  The good
  770.     news is that the only major additions will be the code for
  771.     the clipboard stuff.  The program currently has about 18000
  772.     lines of C code.  I could change over to DLLs to make the
  773.     actual executable smaller, but the way DLLs work with OS/2,
  774.     there is no memory savings.  If you hate 300k for a program
  775.     like this, then go back to SOX.
  776.  
  777. Version 0.3e:  (27 March 94)
  778. NOTE:  Since the size of the Open dialog box has changed, PMsndX
  779.     will not use the window positions or settings from the .ini
  780.     file.  This is to prevent the Open dialog box from being
  781.     positioned off the screen.
  782.  
  783. 1.  Multithreaded the command line playback functions.  Previous
  784.     versions shared the message queue through threads for playback
  785.     when the control panel was used, but when a sound was played
  786.     from the command line, all message processing would stop till
  787.     the file had been played.
  788. 2.  Fixed the .WAV read/write routines to handle the LIST fields
  789.     correctly.  Previous versions could not deal with the LIST
  790.     field and returned a error indicating that the file was in
  791.     a bad style.
  792. 3.  Changed the .VOC to be able to store the ASCII text string
  793.     in the info field.
  794. 4.  Added support for .IFF formats (Amiga).  This format has a
  795.     couple of fields that need mention here.  If you read a file
  796.     in, the ANNO field is discarded and the NAME field is used
  797.     for the Comment data retained in the files.  If a file is
  798.     written to disk, PMsndX arrogantly writes the "PMsndX ..."
  799.     into the ANNO field (... is replaced by the version number).
  800. 5.  The Version number has been changed to reflect the alpha version
  801.     of the program.  In the past changes to the version number
  802.     changed the name of the profile and resulted in loss of the
  803.     window positions and settings from previous versions.  This has
  804.     been changed such that the window positions and settings remain
  805.     active unless a major change is made in the profile information.
  806. 6.  Added user overrides for the file types when opening files.
  807.     When a file is opened, if the user specifies a specific filetype
  808.     (other than Auto), the program will try to open the file in
  809.     that format.  In the event that the filetype is not the
  810.     type specified, the PMsndX will attempt to determine the
  811.     file type as if the user had selected "Auto".
  812. 7.  When the file type is changed through the Tools notebook, the
  813.     output type is then specified and selected in the file type
  814.     area of the SAVE dialog box.
  815. 8.  The default format for saving a file is the same as the input
  816.     format.
  817. 9.  A field called "AUTO" has been added to the filetypes.  When
  818.     this button is selected, the file will be saved based on the
  819.     filename alone.
  820. 10. If the filename field is changed, the "AUTO" button will
  821.     automatically be selected.  This is because the file type
  822.     specified in the buttons will override the extension.  As
  823.     a result, if the user changes the filename and assumes that
  824.     the file would be saved based on the filename extension,
  825.     the file could be saved in a different format than the
  826.     extension indicates.
  827. 11. The filename used to load a sample into memory is automatically
  828.     used as the default filename when saving a file.  The path
  829.     for saving the file remains the last path used for saving
  830.     the file.
  831. 12. Added the .sb (Signed Byte) format.  This is a headerless
  832.     format.  If the user selects to load this format, the program
  833.     must ask the user for the sampling rate before the file
  834.     can be loaded.  Each byte of the file is treated as an 8
  835.     bit signed sample.
  836. 13. Added the .sw (Signed Word) format.  This is a headerless
  837.     format and the program will request a sampling rate when
  838.     the user loads this file format.  Each word (2 bytes) is
  839.     treated as a signed word in little endian order.
  840. 14. Added the .ub (Unsigned byte) format.  This is a headerless
  841.     format and the program will request a sampling rate when
  842.     the user loads a file of this format.  Each byte is treated
  843.     as a unsigned byte.
  844. 15. Added the .uw (Unsigned word) format.  This is a headerless
  845.     format and the program will request a sampling rate when
  846.     the user loads a file of this format.  Each word (2 bytes)
  847.     is treated as a unsigned word in little endian order.
  848. 16. Added the .ul (Ulaw) format.  This is a headerless format
  849.     and the program will request a sampling rate when the user
  850.     loads a file of this format.  Each byte is treated as a
  851.     ULAW encoded sample.  This format is the same format used
  852.     for .AU files.
  853. 17. The file Open dialog box does not close when the operation is
  854.     completed.
  855. 18. Multithreaded the file open operations.  When a file is being
  856.     read, the user may press the Abort button on the file open
  857.     dialog box to stop the read process.  If the program exits
  858.     before a file read thread has completed, the read thread is
  859.     terminated.
  860. 19. Multithreaded the file save operations.  There is no means
  861.     provided to abort a save operation.  If the program exits when
  862.     the file is saving, the program will wait till the save operation
  863.     has completed before exiting.
  864. 20. Added support for the Amiga/SGI .aif format.  Documentation
  865.     for this format was hard to find.  The only chunk formats
  866.     I could find were for COMM, and SSND.
  867.  
  868. Version 0.3d:
  869. 1.  Added use of the second mouse button (usually the right
  870.     mouse button) for the reverse effect and removed the
  871.     dynamic sorting of the start and end so that the numbers
  872.     don't jump back and forth when the user is entering
  873.     the endpoints.
  874. 2.  Added support for .VOC file formats.
  875.     Note:  I don't know what the hell SOX is doing, but it does
  876.            not seem to produce a useable file.
  877.     I always add an Extended data block to the file.  I don't
  878.       know if this will cause problems, but the extended part
  879.       contains the number of channels.
  880.     I don't know what to do with Repeat/End Repeat information
  881.       so I am currently ignoring it.  Any ideas?
  882.     I currently dump (on the floor) any ASCII text.  Anyone want
  883.       me to keep the stuff in the info field?
  884.     I currently only load 8 bit data.  I cannot deal with packed
  885.       data right now.  It is 1:00am and I am tired.
  886.     Some programs seem to expect the first block to be the
  887.       DATA block so I write this first always.
  888.  
  889. Version 0.3c:
  890. 1.  Added Speed Effect
  891. 2.  Reorganized the Tools notebook.  There were too many
  892.     tools to display the tabs on the notebook so major and
  893.     minor pages were created to group the tools.
  894. 3.  Modified the MMPM support to use a separate region of
  895.     memory than the samples are stored in.  Previously, the
  896.     memory for storing the playlist was taken out of the
  897.     pool for storing the samples for the effects.  As a
  898.     result, if you started the MMPM box an performed a
  899.     effect that took up more memory, a hole would be left
  900.     such that another block of memory could not be
  901.     allocated.  This method prevents creating the holes.
  902. 4.  Added Reverse Effect.
  903.  
  904. Version 0.3b:
  905. 1.  Fixed a big bug in the Bandpass filter.  If a sample
  906.     had multiple channels, it would only bandpass on the
  907.     first channel.
  908. 2.  Fixed a big bug in the Lowpass filter.  If a sample
  909.     had multiple channels, it would only lowpass on the
  910.     first channel.
  911. 3.  Added the little clock pointer to indicate how much
  912.     work has been completed.
  913. 4.  Removed the requirement for the audio device to be a
  914.     form of WaveAudio??.  Any string will work as long as
  915.     the device really exists.
  916. 5.  Multi-threaded all of the effects so that the program
  917.     is not a system hog.  The file read/write functions
  918.     are not multi-threaded.  Should they be?
  919.  
  920. Version 0.3a:
  921. 1.  Fixed the Play button so that it is animated when the
  922.     sample is played as it is loaded.  (What is the longest
  923.     record for staring at a code before you realize that it
  924.     is so late that you have been staring at the bug all
  925.     night and just did not recognize it?...What a dumb error
  926.     on my part!!!)
  927. 2.  Fixed the dynamic linking so that DosLoadModule is used
  928.     rather than linking with the dynamic libraries.  Version
  929.     0.3 would refuse to run on machines without MMPM
  930.     installed because the libraries were loaded even if the
  931.     MMPM support was not enabled.
  932. 3.  Changed to using SW.DLL for the buttons of the MMPM
  933.     dialog box.  This guarantees that the program will use
  934.     the latest formats for the buttons.
  935. 4.  Added command line playing.  I the PLAY_ON_LOAD option
  936.     is selected, any filenames which appear on the command
  937.     line will be played.  If a file is not found, the
  938.     program will signal an error and continue to the next
  939.     command line file.  If EXIT_AFTER_PLAY is not selected,
  940.     the last file that was successfully loaded will be
  941.     the current file in memory.
  942. 5.  Enabled the EXIT_AFTER_PLAY feature and modified the
  943.     behaviour such that the MMPM dialog is not displayed
  944.     during the playback.
  945.  
  946. Version 0.3:
  947. 1.  Removed the RECORD button (now just a blank button until
  948.     I can think of something)
  949. 2.  Changed PLAY button to MMPM and added basic play
  950.     capabilities (i.e. Play, Stop, Rewind, Pause).
  951. 3.  Updated Settings dialog to reflect options for the MMPM
  952.     stuff.
  953.  
  954. Version 0.2: (20 March 94)
  955. 1.  Fixed error with memory settings.  In version 0.1 if you
  956.     opened the Settings box and then applied it by pressing
  957.     the DOIT button it sould clear the data samples even if
  958.     the memory configuration had not changed.
  959. 2.  Fixed bug in version 0 in which the data was cleared
  960.     when the memory configuration was changed, but the
  961.     sample header was not cleared.  This led to th dialogs
  962.     trying to access data that had been released causing a
  963.     protection violation.
  964. 3.  Added the Bandpass notebook page.  This is probably one
  965.     of the most complex user interfaces in the notebook.
  966. 4.  Added the Echo effect.  This is the most complex
  967.     programming challenge for a useable user interface.
  968.     (Note, the echo only works for single channel samples).
  969. 5.  Fixed bug.  In version 0.1, the lowpass function did not
  970.     take into account the number of channels.  This has a
  971.     significant impact on the FFT operation.  This is fixed
  972.     in 0.2.
  973. 6.  Fixed bug.  In version 0.1, the Vibro effect did not
  974.     take into account multiple channels in a sample.  As a
  975.     result, the vibro was not continuous on individual
  976.     channels.
  977.  
  978. Version 0.1:  (13 March 94)
  979. 1.  Added Channel Averaging (0.1a)
  980. 2.  Added Vibro effect
  981. 3.  The .ini file are automatically located in the same directory
  982.     as the executable.
  983. 4.  Individual tool pages no longer have separate HELP buttons
  984. 5.  A HELP button has been added to the tool box for all pages.
  985.     When pressed, the help page for the page shown in the tools
  986.     dialog box will be displayed.
  987. 6.  A DISMISS button has been added to the tools dialog box for
  988.     a more consistent approach to dismissing.  The user can still
  989.     depress the tools button on the main control panel to dismiss
  990.     any tool dialog.
  991. 7.  Rearranged the buttons on the main control panel and added
  992.     two new buttons for Playing and Recording samples (not implemented
  993.     in this release...just placeholders)
  994. 8.  Changed the memory storage requirements so that data takes
  995.     half as much memory.  Each sample is stored as a signed SHORT
  996.     regardless of the sound type.
  997. 9.  Corrected major memory bug which resulted in a memory leak.
  998. 10. The echo effect presents an interesting challenge to the
  999.     user interface.  How do you provide the user with an
  1000.     intuitive method to set the echo locations and the
  1001.     strength of the echo from a dialog box?  My first
  1002.     attempt was to try to display the waveform in a window
  1003.     and then to let the user set the echo points, but the
  1004.     problem of setting the echo strength is still difficult.
  1005.     This operation may have to wait for another revision
  1006.     after I have had some time to "sleep" on it.  The effect
  1007.     itself is very simple, but the interface is much more
  1008.     difficult.
  1009.  
  1010. 0.1a - SOX can averages 4 channels to 1 by putting all four
  1011.        channels into 1.  4 channels to 2 is done by
  1012.        averaging the left channels and the right channels
  1013.        together.  PMsndX allows the user to select any
  1014.        combination of the source channels.
  1015.  
  1016. Version 0.0 (initial release):
  1017. 1.  6 buttons and associated dialog boxes created
  1018. 1.  Ability to load and save .au files
  1019. 2.  Ability to load and save .wav files
  1020. 3.  Tool for changing the sampling rate (0.0a)
  1021. 4.  Display of information about the current sample
  1022.  
  1023. 0.0a - SOX appears to use linear approximation to create the
  1024.        new sample.  PMsndX provides for quality which allows the
  1025.        approximation to be adjusted.
  1026.  
  1027.  
  1028.