home *** CD-ROM | disk | FTP | other *** search
/ WDR Computer Club Digital 1995 June / CLUB_0695.BIN / shareos2 / pmsndx / smallhlp.hlp (.txt) < prev    next >
OS/2 Help File  |  1995-02-19  |  127KB  |  2,893 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4.                                    PMsndX 1.38
  5.                                        by
  6.                                 William S. Hiles
  7.                              copyright WiSHware Inc.
  8.  
  9. Please see Known Problems with this release for important information before 
  10. using this version of PMsndX. 
  11.  
  12. First off, what is PMsndX?  PMsndX is the acronym that I created to mean 
  13. Presentation Manager sound eXchange. PMsndX was written specifically for OS/2 
  14. to provide an editor for sound samples of many different formats.  The editor 
  15. goes beyond just a cut and paste tool like the Digital Audio applet provided 
  16. with OS/2 by providing a rich set of tools for manipulating samples in memory. 
  17. PMsndX utilizes a large set of features of OS/2 and if present, the MMPM/2 
  18. interface is used to allow playback of any of the supported formats from 
  19. memory. 
  20.  
  21. Using dialog boxes, PMsndX provides an intuitive user interface for utilizing 
  22. the clipboard, MMPM/2 AUDIO, and algorithms for adding special effects to 
  23. samples.  Everything is integrated together to make it easy to manage the 
  24. process of extracting or building samples in many different formats. 
  25.  
  26. Wow, you are still reading!  Well, now for some information on the user 
  27. interface.  There is nothing more frustrating than trying to use a program with 
  28. a difficult or complex user interface.  Twelve years ago I started programming 
  29. a TI99/4A in assembly language and from the start I have put more effort into a 
  30. clean user interface than anything.  It wasn't till I ran across JOEVIEW that I 
  31. realized that OS/2 had one of the most capable environments that I had seen. 
  32. Presentation Manager programming has got to be one of the easiest environments 
  33. to use and is a breeze compared to Microsoft Windows or the X environment. 
  34.  
  35. In any case, I spent more time on the user interface of this program than I 
  36. ever thought possible.  It is designed around a single coordinating window 
  37. populated by bitmaps.  Each bitmap has some sort of image that changes when the 
  38. button is pushed.  To make sure that the literate people out there (or the icon 
  39. impaired) understand the buttons, I put a bit of text on them to describe the 
  40. function. 
  41.  
  42. Now, I have used programs on a lot of platforms and I have my favorites along 
  43. with those that annoy me too.  My pet peeves are the applications like Procomm 
  44. for Windows which just assumes that you want the darn thing to fill up your 
  45. screen.  Or something like Microsoft Word which has so many menus and submenus 
  46. that it is hard to remember where a function is.  So, taking this into account, 
  47. I designed the interface such that the main functions of the program are 
  48. accessible from the main panel.  Pressing the button for the function will then 
  49. bring up a dialog box which asks for the necessary information.  Pushing the 
  50. button again will remove the dialog box.  I prefer this interface because it 
  51. provides a single point of control.  Well, you just need to play with it for a 
  52. bit to get an understanding of what I am talking about here. 
  53.  
  54.  
  55. ΓòÉΓòÉΓòÉ 2. Conventions ΓòÉΓòÉΓòÉ
  56.  
  57. Throughout the documentation provided with PMsndX a number of terms are used 
  58. which may be common to Presentation Manager programs but uncommon to 
  59. conversational English.  There are also terms which are specific to PMsndX 
  60. which may be new to a user of this program.  The intent of this section is not 
  61. to recreate the OS/2 documentation; rather, it is intended to identify some 
  62. basic terms necessary to understand the language used in this documentation. 
  63.  
  64.  Presentation Manager: 
  65.     The Presentation Manager is the Graphical User Interface (GUI) for most 
  66.     OS/2 systems.  There are other GUIs available for OS/2 but this is the most 
  67.     common and the one that comes with OS/2 out of the box.  In general most 
  68.     people refer to the Presentation Manager by the acronym PM. 
  69.  
  70.  SYSTEM MENU: 
  71.     Every PM program for OS/2 generally provides a SYSTEM MENU through an icon 
  72.     in the upper left corner of the window interface.  By default, the system 
  73.     menu will contain the basic functions necessary to control the window on 
  74.     the OS/2 PM desktop. 
  75.  
  76.  TITLE BAR: 
  77.     In order for a window to be moved about the desktop with the mouse, a 
  78.     window must have a titlebar.  This is the thick bar at the top of the 
  79.     window.  The titlebar provides another function in that it allows the 
  80.     program to display relevant messages to the user. 
  81.  
  82.  MINIMIZE BUTTON: 
  83.     A PM program may provide various control buttons for a window in the top 
  84.     right corner of a window.  One of these buttons is the MINIMIZE button. 
  85.     When the user selects this button, the window will be removed from the 
  86.     desktop and replaced by a small icon somewhere on the screen.  In most 
  87.     cases, the icon is placed at the bottom of the screen.  To restore the 
  88.     window the user can double click on the icon or can use a mouse button to 
  89.     bring up a menu and select Restore. 
  90.  
  91.  MAIN CONTROL PANEL: 
  92.     The main control panel for PMsndX is the window that is initially displayed 
  93.     when the program is executed.  This window is the main point of control for 
  94.     the program and provides access to all of the above mentioned controls as 
  95.     well as access to all of the functions of the program. 
  96.  
  97.  ACCELERATOR KEYS: 
  98.     The buttons on the main control panel and many of the controls in the 
  99.     associated tools provide accelerator keys.  These are marked on the 
  100.     displays by an underline.  To access the particular item without using the 
  101.     mouse, hold down the ALT key and press the underlined key.  As an example, 
  102.     to activate the OPEN button on the main control panel, hold down the ALT 
  103.     key and press the letter o. 
  104.  
  105.  Dialog Pushbuttons: 
  106.     PMsndX uses a number of buttons to convey an action that can be selected to 
  107.     perform a process.  In most cases, a common set of buttons are used; 
  108.     however, under special circumstances, a unique name may be used to convey 
  109.     the appropriate meaning.  The following are buttons that are commonly used. 
  110.  
  111.                         Stop an active thread 
  112.                         Reset the controls of the dialog box back to the way 
  113.                         they were the last time the APPLY button was pressed 
  114.                         Open the help window for the specific dialog that is 
  115.                         currently active 
  116.                         Display special information about the current dialog 
  117.                         box. 
  118.                         Start loading a file into memory 
  119.                         Open up the registration dialog box to enter a password 
  120.                         Redraw the display 
  121.                         Undo the last operation or effect 
  122.                         Save the current memory to a file 
  123.  
  124.  
  125. ΓòÉΓòÉΓòÉ 3. Mouse Pointer ΓòÉΓòÉΓòÉ
  126.  
  127. The mouse pointer is used as an indication of the state of the program.  When 
  128. the program is processing, the mouse pointer will be changed to a small dial 
  129. with 10 markers on the dial.  The percentage of work completed is then 
  130. indicated by the hand of the dial.  When the dial reaches the vertical 
  131. position, the work has been completed. 
  132.  
  133. There is one exception to this operation.  When the echo effect is used, the 
  134. dial for the pointer will rotate more than once. This is because the results of 
  135. the echo effect change the length of the data depending on the markers and 
  136. volumes such that the resulting length is unpredictable. 
  137.  
  138. PMsndX uses multiple threads to accomplish many of its tasks.  As a result, 
  139. when a file is loaded the clock may turn more than once because each thread 
  140. will run as the resources that it is waiting on complete.  An example of this 
  141. is opening a file when the AUDIO box is open.  In this case, as soon as the 
  142. file is completely loaded, the AUDIO task will immediately start copying it to 
  143. the buffer for the playlist and the clock will turn around a second time. 
  144.  
  145.  
  146. ΓòÉΓòÉΓòÉ 4. Command Line Parameters ΓòÉΓòÉΓòÉ
  147.  
  148. Although PMsndX is primarily designed around a point and click user interface, 
  149. it does accept parameters on the command line.  The effect of command line 
  150. parameters is dependent on the startup values set in the Properties dialog box. 
  151. When Play sample on Load or Play on commandline load is selected, all command 
  152. line parameters are treated as filenames and are automatically played through 
  153. the audio device or run as a REXX script. 
  154.  
  155. The extension of the file to be loaded is use to determine the type of sample; 
  156. therefore, samples loaded from the command line must contain a valid header. 
  157. Two exceptions exist. The first is with Sun .AU files.  If the Force all .au to 
  158. ULaw is selected, any file with an extension of .AU will be loaded as a ULaw 
  159. file regardless of the header.  The second is with REXX .CMD files.  If a file 
  160. has an extension of .CMD, it will automatically be passed to the REXX 
  161. interpreter.  Only one REXX script may be run from the command line.  All 
  162. command line processing ends after the first rexx script encountered. 
  163.  
  164. PMsndX may be used to simply play samples from the command line by setting Exit 
  165. after commandline play.  When this option is set, if any samples are provided 
  166. on the command line, PMsndX will exit after it completes playing each of the 
  167. files.  If no parameters are specified, the normal user interface is started 
  168. regardless of the status of Exit after commandline play. 
  169.  
  170. After playing a rexx script, PMsndX will not exit regardless of the status of 
  171. Exit after Play.  To exit PMsndX after a rexx script, add the command PMSNDX 
  172. EXIT to the end of the REXX script. 
  173.  
  174.  
  175. ΓòÉΓòÉΓòÉ 5. System Menu ΓòÉΓòÉΓòÉ
  176.  
  177. As with any OS/2 program written for the Presentation Manager, PMsndX has an 
  178. icon in the top left corner of the control window.  Pressing this icon will 
  179. bring up a menu of system operations. 
  180.  
  181. The menu items provided in the system menu are: 
  182.  
  183.  Restore        Restore the windows after being minimized 
  184.  Move           Move the control window 
  185.  Size           Resize the main control panel 
  186.  Minimize       Minimize all of the windows of PMsndX to an icon 
  187.  Close          Close the all windows and exit 
  188.  About          Display information about the author and version and 
  189.                 registration 
  190.  Welcome        Display information about what is new to this version 
  191.  Help           Bring up the help system 
  192.  Reset Size     Reset the size of the main control panel to the default 
  193.  Properties     Change program operational parameters 
  194.  
  195.  
  196. ΓòÉΓòÉΓòÉ 5.1. Restore ΓòÉΓòÉΓòÉ
  197.  
  198. During the use of PMsndX, the user may select to Minimize the windows to an 
  199. icon on the desktop.  To restore the window from the icon the user may either 
  200. double click on the icon or may press a mouse button while the pointer is over 
  201. the icon to bring up the system menu and select the restore item. 
  202.  
  203.  
  204. ΓòÉΓòÉΓòÉ 5.2. Move ΓòÉΓòÉΓòÉ
  205.  
  206. PMsndX provides the standard controls for moving the windows around on the 
  207. desktop.  It is generally easiest to use the mouse to select the titlebar of 
  208. the window and drag the window to the new location.  If the user uses the 
  209. system menu to move the window, the mouse will be centered in the control 
  210. window and any movement of the mouse will move the window until a mouse button 
  211. is pressed. 
  212.  
  213.  
  214. ΓòÉΓòÉΓòÉ 5.3. Size ΓòÉΓòÉΓòÉ
  215.  
  216. PMsndX provides the standard control for resizing the main control panel.  When 
  217. resizing, the main control panel will automatically adjust the vertical size of 
  218. the window to maintain the aspect of the buttons. 
  219.  
  220.  
  221. ΓòÉΓòÉΓòÉ 5.4. Minimize ΓòÉΓòÉΓòÉ
  222.  
  223. All of the windows of PMsndX can be minimized quickly by either selecting the 
  224. minimize button on the upper right corner of the control panel or by using the 
  225. Minimize menu item of the system menu.  Either action performs the same 
  226. function. 
  227.  
  228.  
  229. ΓòÉΓòÉΓòÉ 5.5. Close ΓòÉΓòÉΓòÉ
  230.  
  231. To exit PMsndX the user can select the Close menu item from the system menu. 
  232. This is the default selection of the menu which enables the user to double 
  233. click on the PMsndX icon in the top left corner of the control panel to exit 
  234. the program. 
  235.  
  236. When the EXIT button is pressed, the program terminates.  If changes have been 
  237. made to the Properties box, the data will be saved to the initialization file 
  238. before the program exits.  Before exiting, PMsndX requests verification that 
  239. the user wants to exit to prevent accidentally exiting. All windows of PMsndX, 
  240. including any dialog boxes, are removed from the screen when the program 
  241. terminates. 
  242.  
  243. If the data in the memory buffers has been modified, PMsndX will warn the user 
  244. that there are modified buffers and ask for verification that the user really 
  245. wants to exit. 
  246.  
  247.  
  248. ΓòÉΓòÉΓòÉ 5.6. About ΓòÉΓòÉΓòÉ
  249.  
  250. To find out the current version and other information about PMsndX the About 
  251. menu item can be selected from the system menu. The registration can be updated 
  252. by pressing the REGISTER button. 
  253.  
  254. PMsndX is just one of the programs written by the Author for Intel based 
  255. machines.  All programs developed under the WiSHware Inc. name have been 
  256. developed solely by the author (duhh, the Author is the sole member of the 
  257. company) and are copyrighted by US Copyright laws. 
  258.  
  259.  
  260. ΓòÉΓòÉΓòÉ 5.7. Welcome ΓòÉΓòÉΓòÉ
  261.  
  262. The HISTORY.TXT file contains a very complete list of all the changes between 
  263. each of the versions.  When viewed as a whole, it also summarizes the total 
  264. functionality of PMsndX.  Each version has specific changes which are 
  265. highlighted in the Welcome display. This display also shows the current 
  266. registration status of the program and the registration can be updated by 
  267. pressing the REGISTER button. 
  268.  
  269.  
  270. ΓòÉΓòÉΓòÉ 5.8. Help ΓòÉΓòÉΓòÉ
  271.  
  272. PMsndX is equipped with extensive on line help that can be accessed by 
  273. selecting HELP from the system menu from the main control panel.  When this 
  274. item is selected a window will appear which will display the start of the help 
  275. information. Help can also be accessed by pressing Alt-H or the F1 key. 
  276.  
  277. Links to other text is displayed in a blue-green color and can be selected to 
  278. jump to that description in the text. When the control panel buttons appear in 
  279. a tabular form, the buttons are active links in the help like the blue-green 
  280. colored text.  Pressing these buttons will jump to the respective text. 
  281.  
  282.  
  283. ΓòÉΓòÉΓòÉ 5.9. Reset Size ΓòÉΓòÉΓòÉ
  284.  
  285. The default button size for the display is 64x64. At any time, the user may 
  286. select to reset the size of the main control panel so that it returns to the 
  287. defaults.  The main control panel may be resized, using the border of the 
  288. window. 
  289.  
  290.  
  291. ΓòÉΓòÉΓòÉ 5.10. Program Properties ΓòÉΓòÉΓòÉ
  292.  
  293. PMsndX can store a number of properties (user options) that users commonly set 
  294. in a file called pmsndx.ini.  The location of this file may be specified only 
  295. if PMsndX is registered; otherwise, the file will be located wherever the 
  296. executable program is started. From the PROPERTIES dialog box the user may 
  297. select to save the current window positions, open and save file path, maximum 
  298. memory, MMPM/2 options, and REXX options. 
  299.  
  300. After the user has set all of the information in the PROPERTIES dialog box, the 
  301. ACCEPT button must be used to save the changes. When this button is pressed, 
  302. the changes are applied. 
  303.  
  304. Note:  Changes to the maximum memory will be checked when a new sample is 
  305.        loaded or when an opertion that requires memory is attempted. 
  306.  
  307.  To restore the PROPERTIES box to the settings the last time the APPLY button 
  308.  was pressed, the CANCEL button can be used.  All information entered by the 
  309.  user is cleared and the PROPERTIES remain unchanged. 
  310.  
  311.  The window positions and file paths are maintained as long as PMsndX is 
  312.  running.  When PMsndX is terminated, it will not save the current positions 
  313.  and paths for file operations unless the boxes are checked in the PROPERTIES 
  314.  dialog box.  Selecting these buttons has no effect on remembering the current 
  315.  window positions during a single session; rather, they only affect saving the 
  316.  information between sessions. 
  317.  
  318.  Note:  The information in the PROPERTIES dialog box is only saved when the 
  319.         program is terminated. 
  320.  
  321.  Finally, to remove the Properties dialog box from the screen, select close 
  322.  from the system menu or double click on the system menu icon for the 
  323.  properties dialog.  If the APPLY button has not been pressed, any changes made 
  324.  to the display will be lost. 
  325.  
  326.  
  327. ΓòÉΓòÉΓòÉ 5.10.1. Audio Properties ΓòÉΓòÉΓòÉ
  328.  
  329. Enable MMPM/2 Support 
  330.  
  331. PMsndX supports playing samples from memory directly to the MMPM/2 digital 
  332. audio device of OS/2.  This allows samples to be played without having to save 
  333. the sample to disk in the native .WAV format.  The PROPERTIES dialog box 
  334. provides controls for disabling or enabling MMPM/2 support and for controlling 
  335. the actions taken when a file is loaded (e.g. Play sample on load, convert to a 
  336. standard rate when loaded, and exit after play from the command line). 
  337. Additionally, the digital audio device may be specified. 
  338.  
  339. If the MMPM/2 capabilities of the program are not needed or if MMPM/2 support 
  340. is not installed on a particular system, the MMPM/2 may be disabled from the 
  341. PROPERTIES dialog box.  By disabling the MMPM/2 support, the button on the main 
  342. control panel for AUDIO is disabled.  By default the program will enable MMPM/2 
  343. support.  If MMPM/2 is available but disabled and the AUDIO button is selected, 
  344. a message is displayed to the user to indicate that the setting should be 
  345. turned on from the PROPERTIES dialog box. 
  346.  
  347. The controls for MMPM/2 and the ability to play the "playlist" using MMPM/2 
  348. utilize the files SW.DLL and MDM.DLL.  These are part of the standard MMPM/2 
  349. distribution and must be present in the DLL path for the MMPM/2 portion of this 
  350. program to operate.  The MMPM/2 support is not linked into the executable of 
  351. this program.  Rather, it is only loaded when the user enables it.  This allows 
  352. the program to run on machines which do not have MMPM/2 installed. 
  353.  
  354. The MMPM/2 functionality of PMsndX has been implemented to share the audio 
  355. device with other programs on the system. However, by disabling the MMPM/2 
  356. support, the audio device is freed up completely. 
  357.  
  358. Share audio device 
  359.  
  360. The audio device can be shared with the system such that while a sound is 
  361. playing, it may be interrupted by system sounds. 
  362.  
  363. Play on commandline load 
  364.  
  365. When the Play on commandline load box is selected, a sample will be played when 
  366. specified on the command line.  The AUDIO dialog is opened after the file has 
  367. been loaded to allow for user control.  This feature can be used in conjunction 
  368. with the Exit after commandline play to allow a sample to be played from the 
  369. command line without bringing up the full user interface. 
  370.  
  371. Play sample on Load 
  372.  
  373. If the Play sample on load box is selected, a sample is immediately played when 
  374. it is loaded into memory.  To provide control during playback, the AUDIO dialog 
  375. box is opened after the file has been loaded.  When this feature is used in 
  376. conjunction with the Exit after commandline play feature, PMsndX provides the 
  377. ability to play any supported sample file format from the command line and have 
  378. the program exit when it is finished. 
  379.  
  380. Note:  This setting does not affect playback of REXX scripts.  If a REXX script 
  381.        is specified on the command line, it will automatically start running. 
  382.        When a REXX script is run which contains the command AUDIO PLAY SYNC or 
  383.        AUDIO PLAY ASYNC the samples may start playing, and then restart.  This 
  384.        is because the file starts playing as soon as it is loaded and then the 
  385.        AUDIO command starts it over.  To avoid this, deselect the Play sample 
  386.        on load from the script prior to loading the file. 
  387.  
  388.  If this parameter is not specified, the sample will still be loaded from the 
  389.  command line; however, it will not be played until the presses the play button 
  390.  on the AUDIO dialog. 
  391.  
  392.  Exit after commandline play 
  393.  
  394.  The Exit after commandline play option provides the ability for PMsndX to exit 
  395.  after playing the sample when the file is loaded from the command line.  This 
  396.  is primarily intended to provide a means to play any of the supported formats 
  397.  from the command line. 
  398.  
  399.  Play 16 bits on 8 bit audio 
  400.  
  401.  The Play 16 bits on 8 bit audio option allows 16 bit samples to be played on 8 
  402.  bit audio adaptor.  Although most samples will produce square waves (resulting 
  403.  in noisy results), some will play (most notably .au files).  Although the data 
  404.  is sent to the audio device in 8 bit format, it is still maintained in its 
  405.  original format and all manipulations including saving the file are performed 
  406.  in the original size of the file. 
  407.  
  408.  Note:  When this option is selected, all files are played as 8 bit samples 
  409.         regardless of what is supported by the audio adapter.  Use this option 
  410.         only if you have an 8 bit card! 
  411.  
  412.  Device 
  413.  
  414.  Obviously not every machine has the same digital audio device.  PMsndX 
  415.  provides a means to use a different audio device than the default digital 
  416.  audio interface.  By default the device name is Waveaudio01.  Any Waveaudio 
  417.  device may be selected by entering the device name in the Device entry field. 
  418.  
  419.  Note:  Setting the audio device to an invalid string will cause random errors. 
  420.         The worst case is the PMsndX will crash whenever the AUDIO dialog is 
  421.         opened.  To reset the audio device back to Waveaudio01, clear this 
  422.         field and then exit PMsndX.  When PMsndX is reloaded, it will reset the 
  423.         device to Waveaudio01. 
  424.  
  425.  
  426. ΓòÉΓòÉΓòÉ 5.10.2. Memory Properties ΓòÉΓòÉΓòÉ
  427.  
  428. Auto 
  429.  
  430. PMsndX takes advantage of OS/2's advanced memory management facilities.  When 
  431. the program is started, it only takes up the memory required for the executable 
  432. to load.  PMsndX then only requests memory from OS/2 when an operation requires 
  433. storage space for a sample.  The maximum memory limitation is provided to avoid 
  434. overcommitting the memory in the system and creating a large swap file. 
  435.  
  436. Memory is primarily used to hold samples for operations; however, whenever the 
  437. sound is manipulated in such a way that either the output has a different 
  438. number of samples or the operation requires the samples to remain in tact 
  439. during the entire operation, additional memory is used to hold the new data. 
  440. Once the operation has been completed, the memory is freed unless the UNDO 
  441. feature is enabled. When setting the maximum memory, the user must take into 
  442. account the size of the data in memory as well as the size of the results of 
  443. any operations. With the exception of Sampling Rate changes, the maximum memory 
  444. requirements will not exceed twice the size of a sample.  When changing rate, 
  445. the size is dependent on the new sampling rate.  If the new rate is higher than 
  446. the current rate, the memory requirements will increase.  If the new rate is 
  447. lower than the original rate, the memory requirements will shrink. 
  448.  
  449. If the user selects the AUTO mode for memory (the default), PMsndX will request 
  450. as much memory as OS/2 will give it. 
  451.  
  452. If the user chooses to limit the memory to a specific value, the AUTO checkbox 
  453. can be turned off and a value may be entered.  Since the minimum OS/2 memory 
  454. block size is 4096 (4k) bytes, the user may specify the number of 4k pages for 
  455. the limit.  The user may either use the up and down arrows to increment or 
  456. decrement the amount of memory or may place the cursor in the window and type 
  457. the specific value. 
  458.  
  459.  
  460. ΓòÉΓòÉΓòÉ 5.10.3. Misc Properties ΓòÉΓòÉΓòÉ
  461.  
  462. Enable UNDO 
  463.  
  464. When a sample file is changed through the editor or the tools or a new file is 
  465. loaded, the sample before the change is maintained so that it can be retrieved 
  466. by the user.  To access the UNDO feature, selecting the UNDO button on the Edit 
  467. dialog.  The UNDO feature is only available when PMsndX is registered. 
  468.  
  469. Note:  By default the UNDO feature is not enabled to conserve memory.
  470.  
  471.  Ignore unknown header blocks 
  472.  
  473.  Many sound formats contain optional header blocks and user defined header 
  474.  blocks which PMsndX may not support.  By default, PMsndX will warn the user 
  475.  when it encounters an unsupported header block.  By selecting this option, 
  476.  PMsndX will not display the warning. 
  477.  
  478.  Note:  When the unsupported header block warning is displayed, PMsndX provides 
  479.         the option of disabling the warning by selecting YES.  This is not the 
  480.         same as the Ignore unknown header blocks option and only disables the 
  481.         warning for the current session of PMsndX. 
  482.  
  483.  Require header in .au files 
  484.  
  485.  Samples taken from a Sun usually contain a header but there are files which do 
  486.  not.  Typically a Sun file will not contain a header if the sample is recorded 
  487.  from the audio device as if it were a file (e.g. "cat < /dev/audio > 
  488.  sample.au").  By default, PMsndX will recognize the extension of .au and force 
  489.  a headerless file to be loaded as a sun file with a sampling rate of 8012 Hz. 
  490.  When this option is selected, headerless Sun files must be loaded using the 
  491.  format RAW .ul format.  This method for loading headerless Sun files allows 
  492.  the user to specify the sampling rate for the file. 
  493.  
  494.  Force all .AU to ULaw 
  495.  
  496.  PMsndX is capable of loading and saving .AU files formatted with ULAW, LINEAR 
  497.  8 (signed 8 bit), and LINEAR 16 (signed 16 bit) samples.  Since the ULAW 
  498.  format is a lossy compression technique, it is best to save data in its native 
  499.  8 or 16 bit format.  Some machines cannot play .AU files unless they are 
  500.  stored in ULaw format and PMsndX has settings which allow the user to control 
  501.  the action taken when a file is saved which is not ULaw. 
  502.  
  503.  The Force all .AU to ULaw setting is a tri-state checkbox. When the box is 
  504.  cleared, PMsndX will save the data in the best format to match the current 
  505.  format.  When the button is in the checked state (indiated by a checkmark in 
  506.  the box), PMsndX will always save the data in ULaw format regardless of the 
  507.  current format.  When the box is set in the intermediate state (a greyed out 
  508.  box), PMsndX will present the user with the following message: 
  509.  
  510.  The current data format is not ULAW.  The .AU file format supports this dtaa 
  511.  type; however, some systems only support the ULAW format. 
  512.  
  513.  At that time, the user may select to either force the file to become ULaw or 
  514.  to allow PMsndX to save in the most accurate format for that data. 
  515.  
  516.  If you find that a .AU sample cannot be played on another platform and results 
  517.  in noise or an error, try saving the data in the ULaw format to correct the 
  518.  problem. 
  519.  
  520.  Location of .INI 
  521.  
  522.  By default, the file pmsndx.ini is stored at the location of the executable 
  523.  program.  However, this location may be changed by modifying this field.  The 
  524.  path is tested for validity when the parameters are applied; and, if the path 
  525.  is found to be invalid, and error is displayed and the current path is left 
  526.  unchanged. If the path is blank, the default path will be restored. 
  527.  
  528.  Note:  This option is only valid when the program is registered.  The data for 
  529.         the path to the pmsndx.ini file is stored in the os2.ini file which is 
  530.         only modified if the program is registered to prevent storing data in 
  531.         the os2.ini when a user is just testing out the program. 
  532.  
  533.  
  534. ΓòÉΓòÉΓòÉ 5.10.4. REXX Properties ΓòÉΓòÉΓòÉ
  535.  
  536. STDIN color 
  537.  
  538. This defines the color of text read from STDIN in the REXX output window.  By 
  539. default, this is set to BLACK. 
  540.  
  541. STDOUT color 
  542.  
  543. This defines the color of text written to STDOUT in the REXX output window.  By 
  544. default, this is set to BLACK. 
  545.  
  546. STDERR color 
  547.  
  548. This defines the color of text written to STDERR in the REXX output window.  By 
  549. default, this is set to RED. 
  550.  
  551. COMMAND color 
  552.  
  553. This defines the color of the PMsndX commands written in the REXX output 
  554. window.  By default, this is set to GREEN. 
  555.  
  556. REXX display history 
  557.  
  558. Setting the number in the entry field for this item modifies the number of 
  559. lines maintained by the REXX output window and may take on values between 64 
  560. and 0x7fff.  The default is 64 Changes made to this value will be used on 
  561. successive REXX command scripts.  Each line of REXX output reserves 256 
  562. characters of data and as a result, the number of rexx lines maintained for 
  563. history impacts the memory requirements of the program while REXX is running. 
  564.  
  565. Note:  Changes to the REXX display history parameter does not take effect till 
  566.        the next command script.  (i.e. If a REXX output window is open when 
  567.        this parameter is changed, the number of lines currently held is not 
  568.        changed.) 
  569.  
  570.  
  571. ΓòÉΓòÉΓòÉ 5.10.5. Startup Properties ΓòÉΓòÉΓòÉ
  572.  
  573. Show Footnote window 
  574.  
  575. PMsndX can display a window at the bottom of the main control panel with text 
  576. indicating the action of each of the items under the mouse pointer.  When this 
  577. box is set, the window is displayed. 
  578.  
  579. Note:  The effect of setting this item will not be seen until PMsndX is 
  580.        restarted. 
  581.  
  582.  Save Window positions 
  583.  
  584.  During a session, the user can move any of the dialog boxes around on the 
  585.  screen.  If the WINDOW POSITIONS box is checked, these window positions will 
  586.  be saved when the program is terminated.  If this button is deselected before 
  587.  the program is terminated, the next session will revert to the previous window 
  588.  positions saved by the program.  By default, if no window position has been 
  589.  saved for a particular window, the window will be opened in the lower left 
  590.  corner of the desktop. 
  591.  
  592.  Save file Open paths 
  593.  
  594.  The cache of files that have been successfully opened may be saved between 
  595.  sessions by selecting the Save file Open path checkbox.  If this button is 
  596.  deselected before the program is terminated, the next session will revert to 
  597.  the paths from the previous session. If no information is saved for the 
  598.  program at any time, the current path will become the default path for open 
  599.  operations. 
  600.  
  601.  Save file Save paths 
  602.  
  603.  The cache of files that have been successfully saved may be saved between 
  604.  sessions by selecting the Save file Save path checkbox.  If this button is 
  605.  deselected before the program is terminated, the next session will revert to 
  606.  the path from the previous session. If no information has not been saved 
  607.  between sessions, the current path will become the default path for save 
  608.  operations. 
  609.  
  610.  
  611. ΓòÉΓòÉΓòÉ 6. Resizing the main panel ΓòÉΓòÉΓòÉ
  612.  
  613. In accordance with the recommended Common User Access (CUA) guidelines, the 
  614. main control panel may be resized using the border of the window.  The 
  615. horizontal and vertical proportions of the buttons is always fixed such that 
  616. the overall window proportions will display the buttons properly. When the 
  617. width of the main panel is changed, the height is automatically adjusted to 
  618. maintain the proper shape of the buttons. 
  619.  
  620. Note:  Note.  To resize the window, either the corners or the vertical sides of 
  621.        the window must be used.  The horizontal sides of the window have no 
  622.        effect when used alone. 
  623.  
  624.  
  625. ΓòÉΓòÉΓòÉ 7. Drag and Drop ΓòÉΓòÉΓòÉ
  626.  
  627. PMsndX supports Drag and Drop of all sound files other than the RAW formats and 
  628. performs a COPY operation when a file is dropped ont PMsndX. To use this 
  629. capability the sound samples must be stored in a file.  If an application 
  630. attempts to transfer data without specifying a filename, PMsndX will request 
  631. that the application RENDER the file before transferring it to PMsndX. 
  632.  
  633. To drag a sample to PMsndX, use the second mouse button (usually the right 
  634. mouse button) to select the file.  While holding the second mouse button down, 
  635. move the mouse pointer over the PMsndX control panel and lift the mouse button. 
  636. PMsndX will then attempt to load the file using the same rules as the Open 
  637. dialog function uses. 
  638.  
  639.  
  640. ΓòÉΓòÉΓòÉ 8. Buttons ΓòÉΓòÉΓòÉ
  641.  
  642. The main control panel provides the user with access to all tools and functions 
  643. through a set of buttons.  Each button contains an icon and a single word which 
  644. describes the function of the button. The buttons have been designed as toggle 
  645. type push buttons.  To select a particular button, the mouse must be positioned 
  646. over the button and the first mouse button pressed.  This will depress the 
  647. button and activate a dialog for the desired function.  The dialogs present 
  648. information to the user about the desired operation and request input from the 
  649. user to complete the operation. 
  650.  
  651. The control panel is the main point of control for both activating and 
  652. deactivating a particular function.  The dialog boxes can be removed from the 
  653. screen by positioning the mouse over a depressed button and pressing the first 
  654. mouse button.  The dialog box will be removed and the button will return to the 
  655. non-depressed position. It is important to note that when a dialog box is 
  656. removed through this means, any information in the dialog is ignored and the 
  657. function is canceled.  For each dialog box, the user must enter all of the 
  658. information required and then select the appropriate action on the push buttons 
  659. at the bottom of the dialog box. The Open and Save Dialog boxes may also be 
  660. removed once the file operation has been completed.  This is the default 
  661. operation but may be changed so that the dialogs are not automatically 
  662. dismissed by deselecting the "AUTO Dismiss" box in the lower right corner of 
  663. the dialog window. 
  664.  
  665. Now for the buttons.  There are five buttons on the main control panel.  These 
  666. are listed below with a brief explanation of their function. 
  667.  
  668.                 Opens and reads a new sample file 
  669.                 Saves the current sample to a file 
  670.                 Plays the current sample to an audio device 
  671.                 Edit using the Clipboard 
  672.                 Displays a notebook of tools 
  673.  
  674.  
  675. ΓòÉΓòÉΓòÉ 8.1. Open ΓòÉΓòÉΓòÉ
  676.  
  677. The dialog box for opening a file and reading the sample into memory is 
  678. accessed from the OPEN button on the main control panel.  When reading in a 
  679. file, PMsndX will attempt to open the file as the type indicated by the 
  680. extension on the filename.  However, in the event that the file cannot be 
  681. loaded by the extension, PMsndX will automatically try to determine the type of 
  682. the file as it reads it based on any header that may be present.  If the sample 
  683. header does not match any of the known header types, PMsndX will refuse to load 
  684. the file unless the format of the file is specified in the OPEN dialog box. 
  685.  
  686. When loading a file, the user may select to force PMsndX to load a file in a 
  687. specific format.  This is required to load headerless formats (i.e. the formats 
  688. marked as RAW).  To override the file format, select one of the formats in the 
  689. Format pulldown list. 
  690.  
  691. Note:  If a Format override is specified, the file must still match the given 
  692.        format if it contains a header.  PMsndX will automatically recognize the 
  693.        header format and load it using the correct format. 
  694.  
  695.  The default filename to open is the last file that was successfully opened. 
  696.  The name of the file to be opened may be selected in a number of ways.  The 
  697.  filename may be entered in the Full Filename entry field.  The name may be 
  698.  fully qualified with a drive and directory, or may be any valid filename.  The 
  699.  name will be resolved when passed to the OS/2 IO procedures.  The filename may 
  700.  also be selected by chosing the drive, directory, and name using the 
  701.  corresponding list boxes.  The files to be displayed in the File display are 
  702.  controlled by the File Mask selected. Finally, whenever a file is successfully 
  703.  loaded, it is added to the Full Filename list box.  The previously loaded file 
  704.  names can be displayed by pulling down the list box. 
  705.  
  706.  Note:  The cache of successfully opened files can be saved between sessions by 
  707.         selecting Save file Open paths in the Properties box. 
  708.  
  709.  Once a file has been selected, either double click on the file name or press 
  710.  the Load button.  During the time that the file is being loaded, the user may 
  711.  press the Abort button to stop the loading process.  All data which may have 
  712.  previously been loaded will be discarded. 
  713.  
  714.  The File Mask list box contains the common filters for extensions that PMsndX 
  715.  recognizes.  This list box can be edited for any mask that the user needs. 
  716.  
  717.  The Format list box contains the common file FORMATS that PMsndX recognizes. 
  718.  Each format identifies the type as well as the extension that PMsndX 
  719.  recognizes.  This list is not editable and is loaded with only those formats 
  720.  that are currently supported.  If PMsndX has not been registered, the listed 
  721.  formats may be considerably less than the total of fully supported formats. 
  722.  
  723.  By default, the OPEN dialog box is automatically dismissed when the file has 
  724.  been loaded.  If an error occurs during the loading process, the dialog will 
  725.  not automatically dismiss itself.  To disable this feature (i.e. force the 
  726.  dialog box to remain visible even after a file has been loaded) deselect the 
  727.  AUTO Dismiss checkbox in the lower right corner of the window. 
  728.  
  729.  
  730. ΓòÉΓòÉΓòÉ 8.2. Save ΓòÉΓòÉΓòÉ
  731.  
  732. The dialog box for saving a file to disk is accessed from the SAVE button on 
  733. the main control panel.  When saving a file, the extension of the file will 
  734. automatically determine the type of output to write for the file (e.g. if the 
  735. extension entered by the user is .wav, then the file will be saved in WAVE 
  736. format.) or the user may override the file type by selecting one of the buttons 
  737. for the type of file. 
  738.  
  739. When saving a file, the extension of the file normally determines the format to 
  740. save the file in.  The primary use of this feature will be to promote the use 
  741. of standard file name extensions for the various sample types. However, the 
  742. user may specify that the information is stored in a particular format 
  743. regardless of the file extension.  In the event that no extension is specified 
  744. for the file, the PMsndX will automatically save the file under the specified 
  745. name under the format currently selected in the FORMAT field. If the file type 
  746. of Auto is selected, then the extension of the file will be used to determine 
  747. the file type. 
  748.  
  749. The default filename to save is the same as that which was used to open the 
  750. file. The name of the file to be saved may be selected in a number of ways. 
  751. The filename may be entered in the Full Filename entry field.  The name may be 
  752. fully qualified with a drive and directory, or may be any valid filename.  The 
  753. name will be resolved when passed to the OS/2 IO procedures.  The filename may 
  754. also be selected by chosing the drive, directory, and name using the 
  755. corresponding list boxes.  The files to be displayed in the File display are 
  756. controlled by the File Mask selected. Finally, whenever a file is successfully 
  757. loaded, it is added to the Full Filename list box.  The previously loaded file 
  758. names can be displayed by pulling down the list box. 
  759.  
  760. Note:  The cache of successfully saved files can be saved between sessions by 
  761.        selecting Save file Save paths in the Properties box. 
  762.  
  763.  Once a file has been selected, either double click on the file name or press 
  764.  the Load button.  During the time that the file is being loaded, the user may 
  765.  press the Abort button to stop the loading process.  All data which may have 
  766.  previously been loaded will be discarded. 
  767.  
  768.  The File Mask list box contains the common filters for extensions that PMsndX 
  769.  recognizes.  This list box can be edited for any mask that the user needs. 
  770.  
  771.  The Format list box contains the common file FORMATS that PMsndX recognizes. 
  772.  Each format identifies the type as well as the extension that PMsndX 
  773.  recognizes.  This list is not editable and is loaded with only those formats 
  774.  that are currently supported.  If PMsndX has not been registered, the listed 
  775.  formats may be considerably less than the total of fully supported formats. 
  776.  
  777.  By default, the SAVE dialog box is automatically dismissed when the file has 
  778.  been loaded.  If an error occurs during the saving process, the dialog will 
  779.  not automatically dismiss itself.  To disable this feature (i.e. force the 
  780.  dialog box to remain visible even after a file has been loaded) deselect the 
  781.  AUTO Dismiss checkbox in the lower right corner of the window. 
  782.  
  783.  
  784. ΓòÉΓòÉΓòÉ 8.3. AUDIO ΓòÉΓòÉΓòÉ
  785.  
  786. So, you are interested in playing or recording some samples using my little 
  787. program?  Good. 
  788.  
  789. The ability to play and record a sample is not intended to provide the full 
  790. capabilities of the digital audio player.  It is intended to allow samples to 
  791. be played or recorded without having to save to disk.  Additionally, this 
  792. feature allows the user to play a file of any format currently supported by 
  793. PMsndX.  The sample rates are limited to those supported by the audio device 
  794. and if a sample is loaded with an unsupported sample rate, sample size (bits 
  795. per sample), or channels, a warning will be displayed and the sample cannot be 
  796. played. To play such a sample, the sample must be converted to a supported 
  797. size, rate, or channls before it can be played. 
  798.  
  799. Note:  Whenever a sample is loaded and the AUDIO dialog is open, PMsndX will 
  800.        attempt to load the audio buffers with the sound data.  If the sample 
  801.        cannot be played (the number of channels or the sampling rate is not 
  802.        supported by the audio adapter) a warning is displayed.  PMsndX will not 
  803.        attempt to play a file that the audio adapter does not support. 
  804.  
  805.  PMsndX records all data directly to memory rather than to disk. If recording 
  806.  at high data rates for significant periods, this may require a great deal of 
  807.  memory.  As a result, when a new recording is started, the swap file may grow 
  808.  significantly to hold the memory allocated by PMsndX. 
  809.  
  810.  If you don't have MMPM/2 installed with your OS/2, don't worry.  PMsndX has 
  811.  been written to provide as much of its capabilities as it can with or without 
  812.  MMPM/2 installed. None of the tools, nor the editor require MMPM/2 to perform. 
  813.  However, the AUDIO button will be marked out if MMPM/2 is not installed 
  814.  because there will be no means to play the sounds. 
  815.  
  816.  When the AUDIO button is pressed, a dialog box is opened which contains a set 
  817.  of standard controls for playing and recording sounds. 
  818.  
  819.  The controls for the AUDIO player are basically the same as those used on the 
  820.  digital audio player provided with the MMPM/2 package for OS/2. 
  821.  
  822.            Starts recording. 
  823.            Stops playback or recording. 
  824.            Pauses playback or recording. 
  825.            Starts or continues playback. 
  826.  
  827.  Samples can be recorded from either the LINE or the Microphone input of an 
  828.  audio adapter supported by MMPM/2 (CD support may be added at a later date). 
  829.  Before data can be recorded, information must be entered to control the 
  830.  recording operation.  The controls for the recording are input through the 
  831.  Record Options item on the system menu of the MMPM Audio dialog. 
  832.  
  833.  
  834. ΓòÉΓòÉΓòÉ 8.3.1. Playback Options ΓòÉΓòÉΓòÉ
  835.  
  836. The system menu for the AUDIO dialog contains a menu item for playback options. 
  837. From this menu a dialog box can be brought to select options that control the 
  838. playback of samples.  This dialog is not application modal and can remain open 
  839. as long as the AUDIO dialog is open.  When the AUDIO dialog is closed, the 
  840. PLAYBACK OPTIONS will be closed too. 
  841.  
  842. The PLAYBACK OPTIONS dialog provides a checkbox to allow a sample to be looped 
  843. such that it will continuously repeat.  When this checkbox is selected, the 
  844. repeat function is enabled. Playback can be stopped by deselecting the repeat 
  845. checkbox (in which case, the sample will complete playback before stopping) or 
  846. by pressing the button. 
  847.  
  848. The PLAYBACK OPTIONS dialog also has the capability of playing a selected range 
  849. and/or a selected channel.  If the edit dialog is active, the range and 
  850. channels for manipulation may be used to select the part of a sample to be 
  851. played. When the Use Channel Selection box is selected, the channels selected 
  852. in the editor will be played.  This allows the user to extract and play 
  853. individual channels.  Similarly, when the Use Range Selection box is selected, 
  854. the range specified in the editor will be played. 
  855.  
  856. Note:  If the edit dialog window is not open, the full sample (including all 
  857.        channels) is automatically used. 
  858.  
  859.  
  860. ΓòÉΓòÉΓòÉ 8.3.2. Record Options ΓòÉΓòÉΓòÉ
  861.  
  862. This dialog box is used to set the recording parameters for the AUDIO tool of 
  863. PMsndX.  Changes made to this dialog are saved between sessions and it is not 
  864. necessary to open this dialog except to modify the recording options.  When the 
  865. Record Options dialog is opened, PMsndX tests the audio adapter and only 
  866. enables the features which are supported by the adapter. 
  867.  
  868. PMsndX records all audio directly to memory; consequently, the most important 
  869. control for recording is the limit to the amount of memory in which the data is 
  870. stored.  The limit on the memory requirements for recording audio is displayed 
  871. and changed in three different ways.  The first is to specify the amount of 
  872. time for recording, the second is to specify the number of samples, and the 
  873. third is to specify the amount of memory.  Changes to each of the entry fields 
  874. automatically updates the other fields when the focus is changed.  The limit is 
  875. stored internally as the number of samples to be recorded.  For this reason, 
  876. changes to the rate, quality, and channels affects the time and memory 
  877. requirements to record the sample.  These options should be set before 
  878. establishing the limits. 
  879.  
  880. Note:  The memory limit field specifies the amount of raw memory required to 
  881.        hold the recorded data and is synonymous with the amount of data that 
  882.        would be stored in a .WAV file. This limit should not be confused with 
  883.        the internal memory requirements of PMsndX. After the recording has been 
  884.        made, the data will be converted to the internal format. 
  885.  
  886.  By default, PMsndX will warn the user when the recorder is started while a 
  887.  sample is in memory.  This safeguard can be disabled by selecting the 
  888.  Overwrite checkbox on the Record Options dialog. 
  889.  
  890.  Note:  The CD selection is disabled in this version.  Reading an AUDIO CD is 
  891.         more complicated than the normal input ports. I have not figured out 
  892.         how to make the MCI_AMP_SET_MONITOR work on my SB16.  Setting or 
  893.         clearing Monitor Input has no effect on my system.  If it does 
  894.         something for you, then let me know.  I know what it is suppose to do. 
  895.  
  896.  
  897. ΓòÉΓòÉΓòÉ 8.4. Edit ΓòÉΓòÉΓòÉ
  898.  
  899. The editor is designed to be compatible with the format of data pasted to the 
  900. clipboard using the OS/2 Digital Audio Application to allow bi-directional use 
  901. of the clipboard between the two applications.  To describe the use of the 
  902. editor each of the categories of controls will be described.  Most are very 
  903. obvious, but some (particularly the operation buttons) have rules of 
  904. operation). 
  905.  
  906. The editor is the central point of control for selecting the range and channels 
  907. for all operations.  As a result, when an operation is being performed (as 
  908. indicated by the mouse pointer displayed as a clock face) if the range is 
  909. changed or the channel to manipulate is changed, a warning beep will be 
  910. produced; however, the display will indicate that the selection has been made. 
  911. For the editor, the change will be made, but the rest of the tools and AUDIO 
  912. will not be updated until another selection is made causing changes to the 
  913. channels or range.  Additionally, attempts to perform operations (i.e. Cut, 
  914. Paste, Copy, Remove, and Zero) will result in a audible warning and the 
  915. function will not be performed. 
  916.  
  917. As with other tools, operations which take a significant amount of time to 
  918. accomplish will provide an indicator for the percentage of the task completed. 
  919. Operations which copy data to the clipboard or delete data from memory utilize 
  920. the DMA memory transfers and are fast enough that the indicator is not used. 
  921. Operations which copy data from the clipboard use the indicator because the 
  922. operation is much more complicated. Please be aware that all clipboard 
  923. operations are accessed from the main execution thread.  This is required 
  924. because the thread accessing the clipboard must have a message queue; 
  925. consequently, during long editing processes such as pasting or merging with 
  926. large samples, the message queue will stop receiving input and the desktop may 
  927. appear to freeze.  Once the process has been completed, normal message 
  928. processing will continue. 
  929.  
  930. Note:  The editor has been written without the use of the MMPM/2 libraries. 
  931.        Although MMPM/2 has all the functions necessary to perform the clipboard 
  932.        operations, they can only be used if MMPM/2 is installed.  Since this 
  933.        program has been written to do its core work on any OS/2 system (with or 
  934.        without MMPM/2), everything is done manually.  This provided a bit more 
  935.        control over the PASTE operation and it is still very quick. 
  936.  
  937.  The editor has been written to provide a robust method of manipulating parts 
  938.  (or all) of a sample.  The functions are broken down into groups (marked by a 
  939.  box around the group). 
  940.  
  941.  Channel Displayed: 
  942.  
  943.  The edit dialog box allows the user to view a single channel at a time through 
  944.  the graphical display.  The channel to be displayed is selected using radio 
  945.  buttons which are enabled based on the number of channels in the current 
  946.  sample in memory. 
  947.  
  948.  Area: 
  949.  
  950.  When using the Copy, Cut, Zero, and Remove operations, the user selects the 
  951.  area of the sample to be affected by either selecting the entire sample or 
  952.  selecting a part of the sample.  When the radio button for the "Entire Sample" 
  953.  is selected, the start and end will be set to the beginning and end of the 
  954.  sample respectively.  To select a part, the user may either select the Select 
  955.  Part radio button or use the left or right buttons to select the start and end 
  956.  respectively for the interval of the operation. 
  957.  
  958.  Selection: 
  959.  
  960.  The user may specify a specific time for the begin or end of the interval for 
  961.  the desired operation by typing the time directly.  The editor will 
  962.  automatically adjust the time down to the nearest actual sample.  To activate 
  963.  the Selection entry fields, select the Select Part radio button in the Area 
  964.  field. 
  965.  
  966.  Manipulate: 
  967.  
  968.  This is probably the one field to draw the most confusion.  This group of 
  969.  buttons allows the user to specify which channel to operate on.  By default 
  970.  the editor will operate on all channels of a sample.  However, the user may 
  971.  select a specific channel for the operation by pressing the "Selected Chan" 
  972.  radio button and then selecting the channel for the operation.  Once the 
  973.  operation is performed, the Manipulate group will default back to All 
  974.  Channels. 
  975.  
  976.   The editor is integrated into the PMsndX such that the Tools and the AUDIO 
  977.  dialogs utilize the information from the editor.  Each tool indicates that it 
  978.  uses the range or channels selected in the editor through a checkbox in the 
  979.  lower left corner of the tool.  The AUDIO dialog provides checkboxes to enable 
  980.  or disable the usage of the channel and range selection. 
  981.  
  982.  Each of the groups provides the user with a means to select the parameters of 
  983.  the various operations.  Each operation has a set of rules defining how they 
  984.  behave under the various conditions.  These are defined in the following text. 
  985.  
  986.  Rules for cut: 
  987.  
  988.  1.  If the channel to operate on is "ALL", the copy all of the data over the 
  989.  specified interval and shift all data over to the left. 
  990.  
  991.  2.  If the channel to operate on is specified, then copy the data over the 
  992.  specified interval for that single channel to the clipboard, and shift the 
  993.  data after the interval over to the left while clearing the end of the data 
  994.  for the specified channel. 
  995.  
  996.  Rules for paste: 
  997.  
  998.  The PASTE button is used the paste the contents of the clipboard into memory. 
  999.  If the SHIFT key is pressed while the Editor has the window focus, the text on 
  1000.  the PASTE button will change to MERGE.  When the MERGE button is pushed, the 
  1001.  editor will merge the data from the clipboard with the data in memory.  When 
  1002.  the merge function is used the rules for PASTE apply except that the data is 
  1003.  averaged equally instead of being inserted. 
  1004.  
  1005.  The paste operation varies depending on the number of channels in the current 
  1006.  sample and the number of samples in the data on the clipboard. After the paste 
  1007.  operation, the start marker will be set at the beginning of the sample pasted 
  1008.  from the clipboard and the end marker will be set to the end of the new data. 
  1009.  
  1010.  1.  If there is no current data, then just copy the clipboard directly to 
  1011.  memory. 
  1012.  
  1013.  2.  If the number of pasted channels is the same as the current data, then 
  1014.  past the data in based on the selected channel for manipulation. 
  1015.  
  1016.  Note:  When merging, the data is averaged based on the selected channel for 
  1017.         manipulation.  Any excess difference between the length of the two will 
  1018.         be left unafffected.
  1019.  
  1020.  3.  If the number of pasted channels is 1, then just copy the data to the 
  1021.  channel(s) selected for manipulation and insert blank space for the 
  1022.  corresponding channels which are not being manipulated.  If the number of 
  1023.  channels for manipulation is "ALL" then duplicate the data for the single 
  1024.  channel across all channels of the current data. 
  1025.  
  1026.  Note:  If the number of merged channels is 1, then average the data from the 
  1027.         clipboard to the channel(s) selected for manipulation.  If the length 
  1028.         of the samples does not match the data will be averaged for the common 
  1029.         length of the two and excess will not be modified.
  1030.  
  1031.  4.  If the number of pasted/merged channels is less than the current number of 
  1032.  channels (but greater than 1), then 
  1033.  
  1034.  a) if the channels selected for manipulation is set to "ALL" then copy the 
  1035.  channels from the clipboard directly into the current sample and zero out the 
  1036.  non-existent channels. 
  1037.  
  1038.  Note:  When merging, average the data from the clipboard directly into the 
  1039.         current sample and leave the non-existent channels unaffected.
  1040.  
  1041.  b) copy the first channel from the pasted sample into the selected channel for 
  1042.  manipulation. 
  1043.  
  1044.  Note:  When merging, average the first channel from the clipboard with the 
  1045.         selected channel for manipulation.
  1046.  
  1047.  5.  If the pasted/merged sample has more channels than the current sample, 
  1048.  then 
  1049.  
  1050.  a) if the channels selected for manipulation is set to "ALL" then create the 
  1051.  new channels in the existing data and set all non-existent channels in the 
  1052.  existing data to zero. 
  1053.  
  1054.  Note:  When merging, average the existing channels and copy the clipboard data 
  1055.         directly to the channels that did not exist in memory. 
  1056.  
  1057.  b) copy the first channel from the pasted sample into the selected channel for 
  1058.  manipulation. 
  1059.  
  1060.  Note:  When merging, the first channel is merged into the selected channel for manipulation.
  1061.  
  1062.  6.  If all of this fails, then just warn the user and give up. 
  1063.  
  1064.  Rules for Copy Operation: 
  1065.  
  1066.  1.  If the channel to operate on is ALL, copy all of the data over the 
  1067.  specified interval to the to the clipboard. 
  1068.  
  1069.  2.  If the channel to operate on is specified, then copy that single channel 
  1070.  to the clipboard. 
  1071.  
  1072.  Rules for Zero operation: 
  1073.  
  1074.  Set the data over the specified interval to 0 for the channels specified. 
  1075.  
  1076.  Rules for Remove operation: 
  1077.  
  1078.  1.  If the channel to operate on is "ALL", then remove the data over the 
  1079.  interval specified and shift all data to the left. 
  1080.  
  1081.  2.  if the channel to operate on is specified, then remove the data for that 
  1082.  channel over the interval and shift the end of that channel to the left while 
  1083.  zeroing out the end of the channel. 
  1084.  
  1085.  Rules for Clear operation: 
  1086.  
  1087.  This operation clears all data from the clipboard.  It has no effect on data 
  1088.  currently in memory. 
  1089.  
  1090.  UNDO: 
  1091.  
  1092.  PMsndX utilizes a lot of memory to ensure that the current data in memory is 
  1093.  not lost if an operation fails.  Normally the original data is deleted from 
  1094.  memory once an operation is completed to reduce the long term memory 
  1095.  requirements of the program.  However, If the Enable UNDO checkbox is selected 
  1096.  from the properties display, PMsndX will store a single buffer for performing 
  1097.  one level of UNDO. 
  1098.  
  1099.  After any operation from the toolbox, any of the manipulations from the 
  1100.  editor, or after loading a new file, if the UNDO option is enabled, the 
  1101.  current data will be stored in a buffer.  Pressing the UNDO button from the 
  1102.  editor will swap the current memory with the buffer.  Pressing UNDO again will 
  1103.  swap them back.  With this setup, the UNDO functions as a redo button. 
  1104.  
  1105.  Note:  The UNDO capability is only available in the registered version of 
  1106.         PMsndX. 
  1107.  
  1108.  
  1109. ΓòÉΓòÉΓòÉ 8.5. Tools ΓòÉΓòÉΓòÉ
  1110.  
  1111. Using a notebook to display the TOOLS has some unique presentation advantages. 
  1112. Primarily the notebook allows the effects to be displayed in a single dialog 
  1113. window.  Since each effect is mutually exclusive of any other tool this 
  1114. approach displays the maximum information that the user can utilize at any 
  1115. time.  Another approach would have been to develop a dialog box for each tool. 
  1116. This approach has the disadvantage that it would require a second control panel 
  1117. to select the specific tools.  This would violate the approach of providing a 
  1118. single control panel for the user and would necessitate managing a number of 
  1119. different windows which could potentially clutter the screen.  The notebook is 
  1120. a clean and aesthetically pleasing means for managing the tools. 
  1121.  
  1122. The heart of manipulating the samples is accessed from the TOOLS notebook. 
  1123. Some of the pages of the notebook provide information while others let the user 
  1124. apply a particular effect on the current sound sample.  The TOOLS notebook can 
  1125. be dismissed by pressing the TOOLS button on the main control panel or by 
  1126. pulling down the system menu for the toolbox and selecting CLOSE. 
  1127.  
  1128. The notebook is divided into sections such that functions with similar 
  1129. operations are grouped together.  The tabs on the right of the notebook access 
  1130. the section and the tabs at the bottom of the page are used to access the 
  1131. individual functions of the grouping. The tabs on the notebook provide access 
  1132. to the Info, Type, Average, Duplicate, Band Pass, Low Pass, Rate, Speed, Echo, 
  1133. Invert, Reverse, Vibro, Limit, Fade, and Balance functions for manipulating the 
  1134. samples. 
  1135.  
  1136. The notebook may be navigated by either selecting the tab on the right of the 
  1137. book for the desired function or by using the small Plus and Minus buttons at 
  1138. the bottom of the notebook.  Using the Plus and Minus buttons will move through 
  1139. the notebook a single page at a time. 
  1140.  
  1141. To select the tabs using the keyboard, the focus for the notebook must be set 
  1142. for the notebook container (by clicking the mouse outside of one of the tools 
  1143. or by pressing the ALT key and the UP arrow). Selecting any character that is 
  1144. underlined will bring that page to the top of the display. 
  1145.  
  1146. The notebook can be displayed regardless of the presence of sample data in 
  1147. memory.  When no sample is present, the pages of the notebook will be 
  1148. invalidated but can still be viewed. 
  1149.  
  1150.  
  1151. ΓòÉΓòÉΓòÉ 8.5.1. Info ΓòÉΓòÉΓòÉ
  1152.  
  1153. The Info page displays all of the relevant information about the samples 
  1154. currently in memory.  This includes the following categories: 
  1155.  
  1156.  Load Format     One of the formats which the program can save or open 
  1157.  Data Type       The default extension for this file format. 
  1158.  Data Style      SIGNED, UNSIGNED, ULAW, or ALAW 
  1159.  Channels        Number of channels in the sample 
  1160.  Sampling Rate   The number of samples taken each second 
  1161.  Data Size       BYTE (8 bits), WORD (16 bits), LONG (32 bits) 
  1162.  Samples         The number of samples that make up each channel 
  1163.  Comments        Some sample files may contain comments.  Any comments found 
  1164.                  are displayed in this window 
  1165.  Byte Order      The natural order of the bytes in each sample.  This field can 
  1166.                  display either Big Endian or Little Endian 
  1167.  
  1168.  
  1169. ΓòÉΓòÉΓòÉ 8.5.2. Type ΓòÉΓòÉΓòÉ
  1170.  
  1171. The type of the file is determined by the header written to the beginning of 
  1172. the file.  See Save for information how the file type is determined when a file 
  1173. is saved to disk.  Additionally, the user may use the this tool to change the 
  1174. Load Format (displayed in the Info page of the tools notebook).  When the file 
  1175. is saved, the default file format will automatically be set to whatever has 
  1176. been chosen on this page of the notebook.  Changing the file name extension or 
  1177. selecting a file format in the SAVE dialog will override this setting. 
  1178.  
  1179. Each file format utilizes different headers for the actual data.  By selecting 
  1180. one of the standard formats on this page the Info page will show the user how 
  1181. the samples will be saved.  The fields that are most likely to change are the 
  1182. Load Format, Data Type, Data Style, and Data Size. 
  1183.  
  1184.  
  1185. ΓòÉΓòÉΓòÉ 8.5.3. Average ΓòÉΓòÉΓòÉ
  1186.  
  1187. A sample with an even number of channels may be averaged to produce a sample 
  1188. with half the initial number of channels. For example, a sample with four 
  1189. channels can be averaged to produce a sample with two channels and a sample 
  1190. with two samples can be averaged to produce a sample with one channel. 
  1191.  
  1192. Channels may be averaged in three ways.  The simplest is to take the left or 
  1193. right channel data as the final data.  A more complex method is to average the 
  1194. samples of the left and right to produce a center sample. The results of these 
  1195. operations are significantly different and can result in very different output 
  1196. samples. 
  1197.  
  1198. When a sample contains four channels, it is composed of four sound sources at 
  1199. 45 degrees in each quadrant.  This corresponds to the Front Left, Front Right, 
  1200. Rear Left, or Rear Right.  To average these into two channels the user can 
  1201. select to use any of the four channels or to average based on the left or 
  1202. right. To select or average any combination of the channels into either of the 
  1203. output channels, check the box for the channels from the source sample.  To aid 
  1204. in this, two radio buttons have been provided which enable or disable the 
  1205. selection of check boxes in the second channel depending on the number of 
  1206. output channels selected. 
  1207.  
  1208.  
  1209. ΓòÉΓòÉΓòÉ 8.5.4. Dupe ΓòÉΓòÉΓòÉ
  1210.  
  1211. Channels can be duplicated such that a single channel sample can be made to 
  1212. have two channels which are identical or two channels can be duplicated to form 
  1213. four channels. 
  1214.  
  1215. When copying two channels to 4, PMsndX allows the user to specify which of the 
  1216. input channels will be placed on the output channels.  In this way, a single 
  1217. channel of a dual channel sample can be copied to any of the four output 
  1218. channels. 
  1219.  
  1220.  
  1221. ΓòÉΓòÉΓòÉ 8.5.5. Band Pass ΓòÉΓòÉΓòÉ
  1222.  
  1223. This tool provides the ability to apply a band-pass filter to a sample. The 
  1224. frequency response for the filter is designed to drop logarithmically around a 
  1225. center frequency.  The slope of the drop at the desired start (Wp) and end (Ws) 
  1226. of the filter varies with the distance between the Wp and Ws.  This width is 
  1227. used to determine the slope of the dropoff at the edges of the filter.  The 
  1228. frequencies at Wp and Ws will be approximately half of their original 
  1229. amplitudes and all frequencies outside of the Center - Wp and the Center + Ws 
  1230. will be eliminated.  The bandpass filter can be mode oriented to pitched 
  1231. signals (i.e. voice, singing, or instrumental music) or can be modified by 
  1232. adding noise to the filter so that un-pitched signals can be effectively 
  1233. processed. 
  1234.  
  1235. Note:  To aid the user in locating the maximum effective center frequency, a 
  1236.        light blue vertical bar is placed at half the sampling rate for the 
  1237.        data. 
  1238.  
  1239.   The transformation for the Bandpass filter was derived from a a program 
  1240.  called MUSIC56K (as documented in the MUSIC56K source code) and implemented in 
  1241.  C++ for this program. 
  1242.  
  1243.  Operation of the bandpass filter tool is probably one of the most complex 
  1244.  interfaces in the toolbox.  It is based on a simple principle.  The entire 
  1245.  display of the filter represents the frequency response of the filter and is 
  1246.  operated like a slider.  However, since the Start frequency and the Stop 
  1247.  frequency are independent, the sliding bar is divided into identical controls 
  1248.  for each filter edge. Before getting into the operation of the controls the 
  1249.  display needs to be explained to establish the terms that will be used. 
  1250.  
  1251.  As mentioned, the display is designed to illustrate the frequency response of 
  1252.  the bandpass filter (independent of any added noise).  The center of the Start 
  1253.  (Wp) and End (Ws) of the filter are marked by vertical BLUE bars.  The Center 
  1254.  (Wc) of the filter is marked by a vertical RED bar.  These three markers 
  1255.  provide the means for the user to modify the filter.  The region to the left 
  1256.  of the RED center frequency is always the start of the filter.  The user may 
  1257.  click the mouse to the left of Wp to decrease Wp by 1000 Hz.  Clicking between 
  1258.  Wp and Wc increases Wp by 1000 Hz.  Likewise, clicking between Wc and Ws 
  1259.  decreases Ws by 1000 Hz and clicking to the right of Ws increases Ws by 1000 
  1260.  Hz.  The user may also click the mouse near Ws or Wp to drag the respective 
  1261.  ends of the filter quickly. 
  1262.  
  1263.  To provide fine control of the filter, Right and Left arrows are provided for 
  1264.  both Wp and Ws.  Clicking on either the right or left arrow will increase the 
  1265.  indicated filter edge by 1 Hz.  To increase or decrease the filter edges by 10 
  1266.  Hz, the user may select the plus or minus corresponding to the filter edges. 
  1267.  The left set of controls affects Wp and the right set of controls affects Ws. 
  1268.  
  1269.  As the mouse is used to adjust Wp and Ws, the exact frequencies for Wp, Ws, 
  1270.  Wc, and the filter Width are updated in the text input fields.  The user can 
  1271.  use the mouse to select one of the input fields and modify it directly.  To 
  1272.  accept a value in the entry field and recalculated the dependent frequencies 
  1273.  select another window or click on another item which moves the focus from the 
  1274.  notebook.  The rules for the fields are as follows: 
  1275.  
  1276.    1. If the Center frequency is modified, new values for Wp and Ws are 
  1277.       immediately calculated using the current Width. If Wp or Ws are outside 
  1278.       of the possible ranges, then Wp or Ws are set to the limit of the 
  1279.       acceptable range and the Width and Center are recalculated. 
  1280.    2. If the Width of the filter is modified, new values for Wp and Ws are 
  1281.       immediately calculated using the current Center frequency.  If Wp or Ws 
  1282.       are then outside of the acceptable ranges, Wp or Ws is then set to its 
  1283.       limit and the Center and Width are recalculated. 
  1284.    3. If Wp is changed, the Width and Center are automatically recalculated to 
  1285.       reflect the new start of the filter. 
  1286.    4. If Ws is changed, the Width and Center are automatically recalculated to 
  1287.       reflect the new end of the filter. 
  1288.  
  1289.  The bandpass filter has been selected because of the desirable effect on 
  1290.  typical sounds that will be processed by PMsndX such as voice or music. 
  1291.  However, if other types of noise are to be filtered, noise can be added to the 
  1292.  filter which results in a sharper peak of the filter.  To add this noise, 
  1293.  select the checkbox for "Add filter noise". Selecting the checkbox again will 
  1294.  disable the filter noise. 
  1295.  
  1296.  Note:  The display of the frequency response for the filter does not reflect 
  1297.         added noise. 
  1298.  
  1299.  
  1300. ΓòÉΓòÉΓòÉ 8.5.6. Low Pass ΓòÉΓòÉΓòÉ
  1301.  
  1302. A Low Pass filter can be applied to a sample to eliminate high frequencies. 
  1303. Filtering is accomplished in the digital domain through the use of a very 
  1304. simple second order digital Fourier transform.  Future implementation may have 
  1305. a more complex Fourier transform; however, the chosen function is desirable 
  1306. because it provides a smooth dropoff without significant ringing. The 
  1307. performance of the filter is determined by the cutoff frequency and the rate of 
  1308. drop.  If the dropoff is made too quickly, the filter will exhibit a ringing 
  1309. effect at the begin and end of the dropoff.  If the dropoff is performed too 
  1310. slowly, the filter will suppress more frequencies toward the end of the desired 
  1311. range.  The more orders of the filter (more stages), the better the frequency 
  1312. response; however, more orders increase the time for filtering significantly. A 
  1313. two order filter works adequately. 
  1314.  
  1315. When performing the digital convolution of the sample with the step function a 
  1316. Gain factor is used to normalize the output data.  This acts as a Volume 
  1317. control for the sample to prevent losses due to numerical overflow.  Values for 
  1318. the gain range from 0 to 1 in increments of 0.01.  A slider bar is used to set 
  1319. the gain of the low pass filter.  When the low pass filter is first brought up, 
  1320. the Gain will default to a value of 0.8.  If this is changed, it will remain at 
  1321. the new setting until the session is terminated. 
  1322.  
  1323. The Frequency response of the low pass filter is determined by a the 
  1324. centerpoint of the dropoff at the end of the step function.  When performing a 
  1325. digital filter, it is not possible to prevent the gradual drop at the end of 
  1326. the step function due to the convolution of the samples used in the 
  1327. transformation.  This is true for analog components also. The centerpoint of 
  1328. the dropoff can be set in three ways. The user may enter the specific frequency 
  1329. in the text entry box in the lower right corner or may use the filter display 
  1330. like a sliding bar.  As is typical of a sliding bar, the mouse may be used to 
  1331. capture the cutoff frequency by pressing the mouse button while the mouse is 
  1332. near the cutoff frequency.  By holding the button down, the user may drag the 
  1333. frequency to the desired range.  Additionally, the user may click to the right 
  1334. or the left of the frequency cutoff to increase or decrease the frequency by 
  1335. 1000 Hz. The right and left arrows in the corners of the display may be used to 
  1336. increase or decrease the frequency by 1 Hz. The plus and minus buttons in the 
  1337. corners of the display may be used to increase or decrease the frequency by 10 
  1338. Hz. The frequency response curve illustrates the dropoff that occurs at the end 
  1339. of the step function. 
  1340.  
  1341.  
  1342. ΓòÉΓòÉΓòÉ 8.5.7. Rate ΓòÉΓòÉΓòÉ
  1343.  
  1344. Once a sample has been loaded into memory, the current rate information is 
  1345. displayed on the RATE page of the notebook. The user can change the rate of the 
  1346. sample using this page of the tools notebook. 
  1347.  
  1348. Note:  Changing the sampling rate may degrade the quality of the sound. 
  1349.  
  1350.   The user may select from a set of standard sampling rates for common computer 
  1351.  formats or may specify a specific rate. OS/2 and Windows use standard rates 
  1352.  which are multiples of 11025 Hz.  Sun, DEC, and NeXT computers commonly use a 
  1353.  sampling rate of 8000 Hz.  Standard rates of 8000, 11025, 22050, and 44100 Hz 
  1354.  have been provided for the user to select. 
  1355.  
  1356.  If the user wishes to use a sampling rate which is not one of these, the 
  1357.  button for Non-Standard should be pressed.  This will activate the slider bar 
  1358.  and user input windows to allow the user to specify the rate.  The slider bar 
  1359.  can be used to quickly change the rate in the input window or the user may 
  1360.  select the input window and type in the desired rate. 
  1361.  
  1362.  
  1363. ΓòÉΓòÉΓòÉ 8.5.8. Speed ΓòÉΓòÉΓòÉ
  1364.  
  1365. This function will change the playback speed of a sample. This is the same 
  1366. thing as setting a phonograph to a different speed such that the sound is 
  1367. played too fast or too slow.  The controls for this effect simply specify the 
  1368. new playback speed.  Once a new speed is selected, the sample is resampled to 
  1369. interpolate the new playback points. As a result, a sample is still played at 
  1370. the same rate, but the data is modified to play at the new rate.  This allows 
  1371. the sample to be stored in a file which is of a standard rate. 
  1372.  
  1373. The user may select any of the standard rates including 8000 Hz, 11025 Hz, 
  1374. 22050 Hz, and 44100 Hz.  Additionally, the user may specify the playback speed 
  1375. to be either double (x2) or half (x1/2) or may specify a specify playback speed 
  1376. by selecting the User button.  If a speed other than the current speed is 
  1377. specified, the DOIT button will be activated which will allow the user to 
  1378. perform the change. 
  1379.  
  1380.  
  1381. ΓòÉΓòÉΓòÉ 8.5.9. Echo ΓòÉΓòÉΓòÉ
  1382.  
  1383. The echo effect will modify a sample to provide attenuation at specific points 
  1384. in a sample.  The operator must specify the points where the echo effects are 
  1385. to start and an attenuation or Volume for the echo.  The attenuation determines 
  1386. the length of time that it takes for the echo to die away.  If the Attenuation 
  1387. specified for all of the echo points is greater than 1, then the echo will 
  1388. "melt" rather than fading away and consequently may take a long time to 
  1389. complete.  If an attenuation is set to 0 or less, the Echo point is ignored. 
  1390.  
  1391. The echo effect presents an interesting challenge to the user interface.  How 
  1392. do you provide the user with an intuitive method to set the echo locations and 
  1393. the strength of the echo from a dialog box?  Well, look at the ECHO notebook 
  1394. page and follow along in the explanation of the operation.  This notebook page 
  1395. includes a graphical display of the current sample, a text entry field for 
  1396. editing (e.g. adding or deleting) time marks, and a volume control for setting 
  1397. the strength of the echo. 
  1398.  
  1399. The ECHO notebook is centered around the graph at the top of the page.  This 
  1400. display is the primary point of control. However, to allow for a bit more 
  1401. direct control, the user may use the entry fields to add and delete echo points 
  1402. too. To explain it all, I will start with the graphical display first and then 
  1403. lead to the secondary controls. 
  1404.  
  1405. Once a sample has been loaded into memory, the graphical display will become 
  1406. active.  The display is controlled through two slider bars for the position in 
  1407. the sample and for the magnification. The sample is normalized so that the 
  1408. largest sample value will hit the limit of the display.  This makes the display 
  1409. volume independent but gives maximum clarity of the actual waveform in memory. 
  1410. Markers may be added or moved to set the echo points in the waveform.  To aid 
  1411. the operator in locating the desired echo point, the display contains a status 
  1412. bar for the starting timemark for the sample in the window, the current 
  1413. timemark under the mouse, and the magnification factor. 
  1414.  
  1415. To move to the right or left in the display, the horizontal slider bar may be 
  1416. used.  Pressing the end arrows moves the display one displayed sample to the 
  1417. left or right.  When the slider bar is pressed, the display will move one half 
  1418. screen to the right or left.  The user may move the display to a region quickly 
  1419. by selecting the slider button and dragging it to the appropriate position. 
  1420. The display is immediately updated to display the current position. 
  1421.  
  1422. The display area at the bottom of the graph provides a timemark indicator for 
  1423. the first sample appearing at the left of the graph.  This provides a reference 
  1424. for moving through the data.  The time marker is displayed in the form of 
  1425. m:ss.ssss where m is the number of minutes into the sample and ss.ssss is the 
  1426. number of seconds into the sample. 
  1427.  
  1428. Even the smallest sample contains more data than can fit on the graphical 
  1429. display.  For this reason the vertical slider to the right of the graphical 
  1430. display is used to adjust the viewing magnification of the samples.  The 
  1431. maximum magnification of the samples is determined by the length of the sample 
  1432. and is calculated by dividing the total sample length by the largest number of 
  1433. data points which may be scrolled through on the display.  The display is 
  1434. limited to the maximum size of an signed 16 bit value due to the limitations of 
  1435. the signals for the horizontal slider bar. This results in a maximum of 32767 
  1436. data points which can be displayed and scrolled through. 
  1437.  
  1438. Initially, the magnification is set for the maximum displayable.  To decrease 
  1439. the magnification ( i.e. zoom out) on the sample, move the slider down the bar. 
  1440. The arrows on the ends of the bar can be used to increase or decrease the 
  1441. magnification in increments of 1.  Selecting between the button and the arrows 
  1442. doubles or halves the magnification. If the button is selected, the 
  1443. magnification can be set immediately to a value.  Markers are displayed for the 
  1444. nearest point in the zoom.  However, markers can only be set on exact multiples 
  1445. of the zoom.  Therefore, when trying to move a marker, if it is set at a 
  1446. different magnification, it may not be possible to move the marker without 
  1447. returning to that zoom.  Essentially, the marker is displayed but cannot be 
  1448. selected because that exact sample point is not visible. I considered making 
  1449. the mouse select the nearest marker, but this is a point of confusion if many 
  1450. markers are displayed at the same location for a specific magnification. 
  1451.  
  1452. The current magnification is displayed in the status area of the display in the 
  1453. form of "x1/nnnnn" where "nnnnn" is replaced by the current magnification 
  1454. number (i.e. number of points represented by a single point on the display). 
  1455. If the display says that the zoom is x1/2, then the magnification of the 
  1456. display is halved.  If this sounds confusing, then just play with the notebook 
  1457. page for a bit to get a feel for the operation of the zoom. 
  1458.  
  1459. Before going on, another area of the display needs to be described.  The center 
  1460. number on the status area of the display indicates the timemark for the current 
  1461. (or last) mouse position. Whenever the mouse is moved into the display area, 
  1462. this number will be updated to indicate the time offset for that particular 
  1463. point.  This takes into account the magnification. 
  1464.  
  1465. Now for the fun part.  To add an echo point to the sample, move the mouse to 
  1466. the place where you desire the echo.  The status display will provide a 
  1467. reference for the timemark. When the proper position has been selected, click 
  1468. the mouse and a blue marker will be placed.  If the mouse is released, the 
  1469. marker will be set at that location in the sample.  If the mouse is not 
  1470. released, the marker may be dragged across the display. This marker may be 
  1471. moved later if necessary by other means too. 
  1472.  
  1473. Note:  If at any time the mouse pointer is moved outside of the display before 
  1474.        the mouse button is released, the marker will not be set and the blue 
  1475.        mark will be erased from the display. 
  1476.  
  1477.   A echo marker may be moved by positioning the mouse pointer over the marker 
  1478.  and pressing the mouse button.  If the marker is on a multiple of the zoom 
  1479.  level, it will be selected and will follow the mouse as long as the button is 
  1480.  pressed.  When the button is released, the marker will be placed at that 
  1481.  position. 
  1482.  
  1483.  A marker may be moved to another time delay by entering the desired delay 
  1484.  directly through the Time Mark entry field. 
  1485.  
  1486.  Note:  If the mouse is moved off the display area, the marker will be restored 
  1487.         to its original position. 
  1488.  
  1489.   For each marker displayed, the timemark is stored in a Combo Box.  This box 
  1490.  is like an entry field in that the user can edit the time directly; however, 
  1491.  it also has a drop down box that can scroll vertically through all of the 
  1492.  different markers.  This type of box provides a great deal of flexibility for 
  1493.  the user. 
  1494.  
  1495.  To add a marker at a specific time, position the cursor in the Timemark box 
  1496.  and edit the time index.  The format is the same as that used to display the 
  1497.  time marks in the main display.  Enter the number of minutes followed by the 
  1498.  seconds.  The granularity of the seconds is on the order of 1/10000 of a 
  1499.  second.  For example, entering 6:54.4253 would accept a time mark at 6 
  1500.  minutes, 54.4253 seconds.  If a value is entered with is beyond the maximum 
  1501.  sample of the file or less than 0, then the data is ignored. 
  1502.  
  1503.  Once the desired time mark has been entered, the user may press the Add button 
  1504.  to place the marker in the current database.  All timemarks added to the 
  1505.  display use the volume specified for the last timemark, or 0 if no volume has 
  1506.  been set yet. 
  1507.  
  1508.  When the listbox is pulled down for the timemarks, each of the timemarks that 
  1509.  have been entered are displayed in a vertically and horizontally scrollable 
  1510.  window.  Up to 32 markers may be placed in the file and any markers which are 
  1511.  unused are displayed with the word "EMPTY".  The markers are placed in the 
  1512.  database in the order that they are entered unless a free slot is open (from 
  1513.  being deleted).  The user may select any of the time marks using the combo 
  1514.  box. If the selected timemark is not empty, the display will be updated to 
  1515.  display the selected timemark in the center of the graph.  In the event that 
  1516.  the timemark is too close to the end or beginning of the sample to display in 
  1517.  the center of the graph, the timemark will be displayed without being 
  1518.  centered.  Once a timemark has been selected, the Del button may be pressed to 
  1519.  delete the marker from the database.  The entry field is not cleared in order 
  1520.  to allow the user to directly edit the timemark which was deleted and add it 
  1521.  later. 
  1522.  
  1523.  The volume for each timemark may be set by specifying a value in the volume 
  1524.  entry field.  This is a simple entry field in which the user can type or 
  1525.  delete numbers.  Since the volume (attenuation) for each timemark may range 
  1526.  from 0 to infinity, the only method for entering the volume is through the 
  1527.  keyboard.  Sorry, no sliders here.  As each character is typed, it is stored. 
  1528.  The user does not have to press enter or any key to accept the value. 
  1529.  
  1530.  I have not found a big use for numbers greater than 1, but I could not find 
  1531.  any reason to limit the user to a specific range of numbers.  Anyone who has 
  1532.  experience with this effect and knows of a reason for a limitation should 
  1533.  contact the author and I will be happy to set up something to make entry of 
  1534.  the Volume easier. 
  1535.  
  1536.  Note:  The most common mistake for the echo effect is in forgetting to enter a 
  1537.         value in the Volume field.  Remember that you must provide an 
  1538.         attenuation for the echo in the Volume entry field to make the echo 
  1539.         point valid. 
  1540.  
  1541.  
  1542. ΓòÉΓòÉΓòÉ 8.5.10. Invert ΓòÉΓòÉΓòÉ
  1543.  
  1544. A sample is composed of numbers which are digital snapshots of an analog wave 
  1545. at regular intervals.  These numbers can take on positive and negative values 
  1546. which push or release the cone of a speaker to produce sound. The range and 
  1547. channels for this function are selected through the editor. 
  1548.  
  1549. Any series of samples may be inverted such that all positive values become 
  1550. negative and all negative values become positive.  To the human ear, there is 
  1551. no difference in the sound produced; however, mathematically, the new wave is 
  1552. very different.  An inverted wave may be added to a normal wave to 
  1553. mathematically subtract one from another. When this function is combined with 
  1554. the MERGE function of the editor, samples can be added together to eliminate 
  1555. common frequencies. 
  1556.  
  1557.  
  1558. ΓòÉΓòÉΓòÉ 8.5.11. Reverse ΓòÉΓòÉΓòÉ
  1559.  
  1560. This effect allows the user to reverse a section (or all) of a sample.  The 
  1561. range and channels for this function are selected through the editor. 
  1562.  
  1563.  
  1564. ΓòÉΓòÉΓòÉ 8.5.12. Vibro ΓòÉΓòÉΓòÉ
  1565.  
  1566. This function performs the "world-famous" Fender Vibro-Champ sound effect to a 
  1567. sound sample by using a sine wave as the amplitude of the volume at each 
  1568. sample.  This tool requires that the user set the Speed and the Depth of the 
  1569. sine wave. 
  1570.  
  1571. The speed setting gives the frequency of the sine wave in Hertz.  The range of 
  1572. values for the slider are from 1 to 30 in increments of 1 Hertz.  A value of 0 
  1573. would be useless for a frequency and is not allowed. 
  1574.  
  1575. The depth setting gives the amount by which the volume will be cut into by the 
  1576. sine wave.  The range of values for the slider are from 0.0 to 1.0 in 
  1577. increments of 0.01.  The initial value of the slider is 0.5. 
  1578.  
  1579.  
  1580. ΓòÉΓòÉΓòÉ 8.5.13. Fade ΓòÉΓòÉΓòÉ
  1581.  
  1582. This effect allows the user to either fade in or fade out the volume of a 
  1583. sample.  Fading the data in a sample is produced by increasing or decreasing 
  1584. the volume of the sample over a period.  To fade a sample in is to slowly 
  1585. increase the volume of the sample from 0 to the normal volume of the sample 
  1586. over a block of time.  To fade the sound out is just the opposite in which the 
  1587. volume of the sample is slowly reduced over a period. 
  1588.  
  1589. The FADE tool provides three methods for fading which provide a robust means 
  1590. for controlling the volume of the data over the specified range of operation. 
  1591. These are Linear, Slow Geometric, and Fast Geometric. 
  1592.  
  1593.  
  1594. ΓòÉΓòÉΓòÉ 8.5.14. Limit ΓòÉΓòÉΓòÉ
  1595.  
  1596. Most anyone who has received a sound sample from different sources has had the 
  1597. problem that the recorded volume is inconsistent between different samples. 
  1598. After all, there is no standard recording level for the different machines or 
  1599. different software. 
  1600.  
  1601. To allow the user to adjust the volume of a sample, PMsndX provides a tool 
  1602. which can either adjust the volume by multiplying every sample by a fixed 
  1603. amount or by multiplying the samples by a value based on the limit of the data 
  1604. that can held in memory. 
  1605.  
  1606. By specifying a maximum value for the sound sample, all sound samples can be 
  1607. set to have a similar maximum.  The obvious use for this function is to allow a 
  1608. library of sounds to be set at the same volume.  The value used for the maximum 
  1609. volume is based on a percentage of the maximum data that can be held in a 
  1610. single sample.  As an example, a value of 100% for the volume represents a 
  1611. value of 127 for a signed byte sample. 
  1612.  
  1613. When the button for the Maximum is selected, the slider bar directly beneath 
  1614. the button is activated.  Initially, this will be set to the current volume in 
  1615. terms of the percentage of the maximum value for the sample.  The volume may be 
  1616. adjusted by setting the slider to a value between 0 and 100 percent of the 
  1617. maximum. 
  1618.  
  1619. Since the value is based on a percentage of the maximum value of the data that 
  1620. can be stored in a sample, clipping is not possible. 
  1621.  
  1622. When the button for the Fixed value is selected, the slider bar directly 
  1623. beneath the button is activated as well as the checkbox for clipping.  The 
  1624. fixed bar provides the means to multiply all sound samples by a fixed value 
  1625. between 0 and 2 in increments of 0.1. A value of 1 makes no change.  Any value 
  1626. greater than 1 increases the volume and any value less than 1 decreases the 
  1627. volume.  A value of 2 doubles the volume of the sample. 
  1628.  
  1629. When using fixed sampling it is possible to exceed the maximum data that may be 
  1630. stored for a sample.  The Allow Clipping checkbox may be selected to allow the 
  1631. data to be clipped.  If the checkbox is not set and if the fixed multiple will 
  1632. result in clipping, then the multiple will be set to the maximum value that 
  1633. will not result in clipping.  If the clipping box is set, data may exceed the 
  1634. maximum that may be stored for the sample which will result in noise. 
  1635.  
  1636.  
  1637. ΓòÉΓòÉΓòÉ 8.5.15. Balance ΓòÉΓòÉΓòÉ
  1638.  
  1639. When a sample has more than one channel, the volume of the individual channels 
  1640. can be varied.  The balance of the channels can be achieved either 
  1641. instantaneously or over a period of time.  These are the same basic functions 
  1642. as used in the FADE and SWAP effects and are Linear, Slow Geometric, and Fast 
  1643. Geometric, and Step. 
  1644.  
  1645. The volume of a sample may vary by either starting at the specified percentage 
  1646. of the current volume for each channel and progressively approaching full 
  1647. volume.  This is similar to fading in a sample and is achieved by selecting the 
  1648. "IN" button.  The opposite effect is achieved when the volume starts at the 
  1649. current volume and progressively decreases to a percentage of the current 
  1650. volume. 
  1651.  
  1652. When balancing a sample, the user must specify a percentage for each channel. 
  1653. When fading in, this is the percentage that the volume will start at for each 
  1654. respective channel. When fading out, this is the final percentage of the 
  1655. original volume.  The display at the top of this dialog varies depending on the 
  1656. number of channels in the current sample. 
  1657.  
  1658.  
  1659. ΓòÉΓòÉΓòÉ 9. Command Scripts ΓòÉΓòÉΓòÉ
  1660.  
  1661. PMsndX integrates the features of REXX to provide a powerful command scripting 
  1662. capability.  PMsndX provides the necessary extensions to REXX to provide full 
  1663. access to all of the features normally provided through the dialogs of the user 
  1664. interface. 
  1665.  
  1666. Any REXX command script can be run through any of the means for opening a file 
  1667. such as using the OPEN dialog box or through a DRAG/DROP operation.  As with 
  1668. all REXX command scripts, the first line of the file must be a comment of the 
  1669. form /* ... */. PMsndX will automatically recognize a command script using the 
  1670. extension of .CMD or the OPEN dialog allows any file to be recognized as a 
  1671. command script by providing an override in the Format group of the OPEN dialog. 
  1672.  
  1673. As with any REXX script, the SAY command may be used to write to standard 
  1674. output (stdout); and, the PULL command may be used to retrieve information from 
  1675. standard input (stdin). When input is requested from the REXX window, the 
  1676. desktop focus will automatically be directed to the REXX window and it will be 
  1677. brought to the foreground. 
  1678.  
  1679. Note:  Do not use CHARIN to retrieve input from the keyboard. 
  1680.  
  1681.  The syntax of the language is divided up into groups associated with the 
  1682.  buttons on the main control panel. Additionally, a few other controls are 
  1683.  provided to enhance a script capability for enhancing the user interface. 
  1684.  
  1685.  When a REXX command script is run, a REXX OUTPUT window  is opened to display 
  1686.  any outputs from the script.  All standard outputs (e.g. output from SAY 
  1687.  commands or commands echoed) are displayed in black.  Outputs from PMsndX 
  1688.  commands is written in blue, and any errors are written in red.  A REXX script 
  1689.  can be stopped at any time by closing the REXX OUTPUT window.  If no errors 
  1690.  occur while executing the REXX command script, the REXX OUTPUT window will 
  1691.  automatically be dismissed.  If errors occur, the window will remain open 
  1692.  until the user closes it.  Only one REXX OUTPUT window can be open at any one 
  1693.  time so the window must be closed before another REXX script can be run. 
  1694.  
  1695.  Note:  As with REXX scripts, all commands can be entered in any combination of 
  1696.         lower and upper case.  For example, the following commands are 
  1697.         equivalent: "file open tmp.au", "FILE open TMP.AU", "FiLe OpEn TmP.Au". 
  1698.  
  1699.  
  1700. ΓòÉΓòÉΓòÉ 9.1. Syntax Conventions ΓòÉΓòÉΓòÉ
  1701.  
  1702. The extensions provided by PMsndX have been designed to utilize a consistent 
  1703. format.  The extensions are divided into three groups:  commands, functions, 
  1704. and arguments. 
  1705.  
  1706. REXX commands are those extensions provided by PMsndX which allow the REXX 
  1707. script to control execution of PMsndX.  The command extensions use the 
  1708. arguments to modify the actions. 
  1709.  
  1710. REXX functions are those extensions provided by PMsndX which require that 
  1711. PMsndX return some value to the calling REXX script.  The function extensions 
  1712. use the arguments to specify the information that is to be returned. 
  1713.  
  1714. REXX arguments are the keywords and parameters which are added to commands and 
  1715. functions to provide information about the specific task to be performed.  All 
  1716. arguments follow a repetitive format which utilizes keywords and associated 
  1717. parameters. 
  1718.  
  1719.  
  1720. ΓòÉΓòÉΓòÉ 9.1.1. Command Syntax ΓòÉΓòÉΓòÉ
  1721.  
  1722. REXX commands are indicated by a name, followed by keyword and parameter 
  1723. combinations separtated by spaces. Commands do not return data to the calling 
  1724. REXX scrip. 
  1725.  
  1726. Following is the general syntax of a command: 
  1727.  
  1728. COMMAND keyword Parameter ... [keyword Parameter ...] 
  1729.  
  1730.  
  1731. ΓòÉΓòÉΓòÉ 9.1.2. Function Syntax ΓòÉΓòÉΓòÉ
  1732.  
  1733. REXX functions are composed of a name followed by keyword and parameter 
  1734. combinations separated by commas and enclosed in parenthesis.  Functions are 
  1735. used to return data to the calling REXX script and so always appear on the 
  1736. right side of an = character. 
  1737.  
  1738. The general syntax of a function is: 
  1739.  
  1740. X=FUNCTION(keyword, Parameter, [,keyword, Parameter,...]) 
  1741.  
  1742.  
  1743. ΓòÉΓòÉΓòÉ 9.1.3. Argument Syntax ΓòÉΓòÉΓòÉ
  1744.  
  1745. The Arguments used in PMsndX should be in order of a keyword followed 
  1746. immediately by a parameter (if one is necessary). All required 
  1747. keyword/parameter combinations must appear first, followed by any optional 
  1748. keyword/parameter combinations. 
  1749.  
  1750. To convey the syntax of the REXX extensions, the individual components are 
  1751. color keyed to indicate their use. The following legend should be referred to 
  1752. when reading the actual command and function syntax: 
  1753.  
  1754. COMMAND or FUNCTION: The name of the command or function is always first and is 
  1755. required. 
  1756.  
  1757. keyword:  Special keywords are used to indicate that a parameter is being 
  1758. specified for a command. The keywords of a command may be entered in any order 
  1759. but must be followed by their corresponding parameter. 
  1760.  
  1761. Parameters:  Portions of a command which are used as variable parameters can 
  1762. take on different formats and must be entered after the corresponding keyword. 
  1763.  
  1764. [...]:  Parameters which are optional will appear between brackets ([]). 
  1765. Anything between the brackets is not required for the command but may be added 
  1766. to modify the operation. 
  1767.  
  1768. When numeric values are required, the format will be indicated as follows: 
  1769.  
  1770. 'mm:ss.hhhh' indicates that a time is to be entered. The format indicates that 
  1771. the time is to be given in minutes followed by a colon (:), the number of 
  1772. seconds followed by a period (.) and the fractions of seconds.  For example, 
  1773. '10:58.0001' indicates 10 minutes, 58 seconds, and 1 ten-thousandth of a 
  1774. second.  Note that the time must be enclosed between single quotes. 
  1775.  
  1776. #.# indicates that a decimal number is to be entered.  The range for the number 
  1777. is provided in braces immediately following.  For example, #.#{0.0-1.0} 
  1778. indicates that a number between 0.0 and 1.0 inclusive is requred. 
  1779.  
  1780. #{range} indicates that a numeric value is required and the range is specified 
  1781. in the braces.  For example, #{1-8192} indicates that a numeric value between 1 
  1782. and 8192 inclusive is required. 
  1783.  
  1784. 'text' indicates that a text string is required.  The text must be enclosed in 
  1785. single quotes and must appear as the last parameter in the line.  All data 
  1786. after the keyword TEXT will be treated as the text for the operation. 
  1787.  
  1788. {item1,item2,...} is used to indicate that a finite set of values are required. 
  1789.  
  1790. Note:  The parameter YES is equivalent to setting a checkbox.  The parameter NO 
  1791.        is equivalent to clearing a checkbox. 
  1792.  
  1793.  Descriptions:  With each command group is a short description of the operation 
  1794.  of the commands in that group. Additionally, every command may also have 
  1795.  special information which is unique to the command or pertinent to the usage 
  1796.  of the command. 
  1797.  
  1798.  
  1799. ΓòÉΓòÉΓòÉ 9.2. File Operations ΓòÉΓòÉΓòÉ
  1800.  
  1801. All of the features of the OPEN and SAVE dialog boxes are available through the 
  1802. FILE operations.  In addition to the standard items in the dialog box, the 
  1803. capability to set the default OPEN and SAVE paths is provided to simplify batch 
  1804. operations. 
  1805.  
  1806. The FILE operations are provided through functions and return the fully 
  1807. qualified path to the file or path provided to the command.  There are two 
  1808. reasons that the FILE commands are implemented as functions instead of 
  1809. subcommands.  The first is that the REXX script may provide a partially 
  1810. qualified filename and PMsndX will return a fully qualified name if it is 
  1811. valid.  Additionally, the parameters of a subcommand are separated by spaces or 
  1812. other special parameters which PMsndX does not receive even if the parameters 
  1813. are in quotations.  By using the function interface to REXX, PMsndX receives 
  1814. the necessary delimiters to allow filenames to contain special characters and 
  1815. spaces. 
  1816.  
  1817. x=FILE(OPENPATH, PATH) 
  1818.  
  1819. Filenames can be specified in any form (i.e. they may contain a drive letter, a 
  1820. file path, and the actual filename).  However, to make batch operations 
  1821. simpler, the path and drive may be specified using this command and any 
  1822. filenames without paths or drives will use the OPENPATH to locate the file.  By 
  1823. default, the current working directory will be used as the OPENPATH. 
  1824.  
  1825. x=FILE(SAVEPATH, PATH) 
  1826.  
  1827. When saving a file, a default path can be saved similar to the OPENPATH 
  1828. command.  All save operations in which the drive and path are not specified 
  1829. will use the specified path.  By default, the current working directory will be 
  1830. used as the SAVEPATH. 
  1831.  
  1832. x=FILE(OPEN, filename, [FORMAT, {AU, AIF, AVI, HCM, SF, VOC, SMP, WAV, IFF}]) 
  1833.  
  1834. x=FILE(OPEN, filename, [FORMAT, {UB, SB, UL}, RATE, #{1-65535}, CHANNELS, 
  1835. {1,2,4}]) 
  1836.  
  1837. x=FILE(OPEN, filename, [FORMAT, {UW, SW}, RATE, #{1-65535}, CHANNELS, {1,2,4}, 
  1838. ENDIAN, {BIG, LITTLE}]) 
  1839.  
  1840. Filenames must contain the name of a valid file and may optionally include a 
  1841. drive letter and a specific path. If the path and drive letter are not 
  1842. specified, PMsndX will use the current working directory or the path specified 
  1843. in the OPENPATH command. 
  1844.  
  1845. x=FILE(SAVE, filename, [FORMAT, {AU, AIF, HCM, SF, VOC, SMP, WAV, IFF, UB, SB, 
  1846. UL}]) 
  1847.  
  1848. x=FILE(SAVE, filename, [FORMAT, {UW, SW}, ENDIAN, {BIG, LITTLE}]) 
  1849.  
  1850. Filenames must contain the name of a valid file and may optionally include a 
  1851. drive letter and a specific path. If the path and drive letter are not 
  1852. specified, PMsndX will use the current working directory or the path specified 
  1853. in the SAVEPATH command. 
  1854.  
  1855.  
  1856. ΓòÉΓòÉΓòÉ 9.3. Audio Operations ΓòÉΓòÉΓòÉ
  1857.  
  1858. All operations available through the AUDIO dialog are accessible through the 
  1859. AUDIO Operations group.  When ever an AUDIO command is encountered, the AUDIO 
  1860. dialog is opened if it is not already open.  In the event that the AUDIO file 
  1861. cannot be played, the REXX will hang.  To continue the REXX script without 
  1862. playing the file, close the audio box. 
  1863.  
  1864. AUDIO VOLUME #{0-100} 
  1865.  
  1866. AUDIO PLAY {ASYNC, SYNC} 
  1867.  
  1868. The ASYNC option causes the sound to start playing and lets the REXX script 
  1869. continue.  The SYNC option causes the REXX script to pause while waiting for 
  1870. the playback to complete. 
  1871.  
  1872. AUDIO RECORD {ASYNC, SYNC} TIME 'mm:ss.hhhh' INPUT {MIC, LINE} QUALITY {8, 16} 
  1873. CHANNELS {1, 2} RATE #{1-65535} [OVERWRITE {YES, NO}] [MONITOR {YES, NO}] 
  1874.  
  1875. AUDIO RECORD {ASYNC, SYNC} COUNT #{1-} INPUT {MIC, LINE} QUALITY {8, 16} 
  1876. CHANNELS {1, 2} RATE #{1-65535} [OVERWRITE {YES, NO}] [MONITOR {YES, NO}] 
  1877.  
  1878. AUDIO RECORD {ASYNC, SYNC} MEMORY #{1-} INPUT {MIC, LINE} QUALITY {8, 16} 
  1879. CHANNELS {1, 2} RATE #{1-65535} [OVERWRITE {YES, NO}] [MONITOR {YES, NO}] 
  1880.  
  1881.  
  1882. ΓòÉΓòÉΓòÉ 9.3.1. Audio Playback Options ΓòÉΓòÉΓòÉ
  1883.  
  1884. AUDIO REPEAT {YES, NO} 
  1885.  
  1886. AUDIO CHANNEL_SELECTION {YES, NO} 
  1887.  
  1888. AUDIO RANGE_SELECTION {YES, NO} 
  1889.  
  1890.  
  1891. ΓòÉΓòÉΓòÉ 9.4. Properties Operations ΓòÉΓòÉΓòÉ
  1892.  
  1893. PROPERTIES FOOTNOTES {YES, NO} 
  1894.  
  1895. PROPERTIES SAVE_POSITIONS {YES, NO} 
  1896.  
  1897. PROPERTIES SAVE_OPENPATH {YES, NO} 
  1898.  
  1899. PROPERTIES SAVE_SAVEPATH {YES, NO} 
  1900.  
  1901. PROPERTIES MEMORY AUTO 
  1902.  
  1903. PROPERTIES MEMORY #{1-8192} 
  1904.  
  1905. PROPERTIES ENABLE_MMPM {YES, NO} 
  1906.  
  1907. PROPERTIES SHARE_AUDIO {YES, NO} 
  1908.  
  1909. PROPERTIES PLAY_FROM_COMMANDLINE {YES, NO} 
  1910.  
  1911. PROPERTIES PLAY_ON_LOAD {YES, NO} 
  1912.  
  1913. PROPERTIES EXIT_AFTER_COMMANDLINE_PLAY {YES, NO} 
  1914.  
  1915. PROPERTIES PLAY_16ON8 {YES, NO} 
  1916.  
  1917. PROPERTIES DEVICE devicename 
  1918.  
  1919. PROPERTIES UNDO {YES, NO} 
  1920.  
  1921. PROPERTIES IGNORE_HEADER_STYLE {YES, NO} 
  1922.  
  1923. PROPERTIES REQUIRE_AU_HEADER {YES, NO} 
  1924.  
  1925. PROPERTIES FORCE_ULAW {YES, NO, MAYBE} 
  1926.  
  1927. PROPERTIES REXX_DISPLAY_HISTORY #{64-32767} 
  1928.  
  1929. PROPERTIES INI_PATH path 
  1930.  
  1931.  
  1932. ΓòÉΓòÉΓòÉ 9.5. Edit Operations ΓòÉΓòÉΓòÉ
  1933.  
  1934. EDIT MANIPULATE {ALL, 1, 2, 3, 4} 
  1935.  
  1936. EDIT AREA ENTIRE_SAMPLE 
  1937.  
  1938. EDIT AREA PART START 'mm:ss.hhhh' END 'mm:ss.hhhh' 
  1939.  
  1940. EDIT OPERATION {COPY, CUT, PASTE, ZERO, REMOVE, CLEAR, MERGE} 
  1941.  
  1942. EDIT UNDO 
  1943.  
  1944.  
  1945. ΓòÉΓòÉΓòÉ 9.6. Effects Operations ΓòÉΓòÉΓòÉ
  1946.  
  1947. TOOLS FORMAT {AU, AIF, HCM, SF, VOC, SMP, WAV, IFF, UB, SB, UL, UW, SW} 
  1948.  
  1949. TOOLS AVERAGE 2_TO_1 FROM {LEFT, CENTER, RIGHT} 
  1950.  
  1951. TOOLS AVERAGE 4_TO_1 FROM {FL, FR, RL, RR} [FROM {FL, FR, RL, RR}...] 
  1952.  
  1953. TOOLS AVERAGE 4_TO_2 FROM {FL, FR, RL, RR} TO {L, R} [FROM {FL, FR, RL, RR} TO 
  1954. {L, R}...] 
  1955.  
  1956. TOOLS DUPE {1_TO_2, 1_TO_4} 
  1957.  
  1958. TOOLS DUPE 2_TO_4 FROM {L, R} TO {FL, FR, RL, RR} [FROM {L, R} TO {FL, FR, RL, 
  1959. RR}...] 
  1960.  
  1961. TOOLS RATE #{1-65535} 
  1962.  
  1963. TOOLS SPEED #{1-65535} 
  1964.  
  1965. TOOLS SPEED {X2, X1/2} 
  1966.  
  1967.  
  1968. ΓòÉΓòÉΓòÉ 9.6.1. Filter Effects Operations ΓòÉΓòÉΓòÉ
  1969.  
  1970. TOOLS FILTER BANDPASS START #{1-65535} CUTOFF #{1-65535} [ADD_NOISE {YES, NO}] 
  1971.  
  1972. TOOLS FILTER BANDPASS CENTER #{1-65535} WIDTH #{1-65535} [ADD_NOISE {YES, NO}] 
  1973.  
  1974. TOOLS FILTER LOWPASS CENTER #{1-65535} GAIN #.#{0.0-1.0} 
  1975.  
  1976.  
  1977. ΓòÉΓòÉΓòÉ 9.6.2. Special Effects Operations ΓòÉΓòÉΓòÉ
  1978.  
  1979. TOOLS EFFECT ECHO MARK 'mm:ss.hhhh' VOLUME #.#{0.0-1.0} [MARK 'mm:ss.hhhh' 
  1980. VOLUME #.#{0.0-1.0} ...] 
  1981.  
  1982. TOOLS EFFECT INVERT 
  1983.  
  1984. TOOLS EFFECT REVERSE 
  1985.  
  1986. TOOLS EFFECT VIBRO SPEED #{0-30} DEPTH #.#{0.0-1.0} 
  1987.  
  1988. TOOLS EFFECT FADE DIRECTION {IN, OUT} METHOD {LINEAR, SLOW, FAST} 
  1989.  
  1990. TOOLS EFFECT LIMIT MAX #{0-100} 
  1991.  
  1992. TOOLS EFFECT LIMIT MULTIPLE #.#{0.0-2.0} 
  1993.  
  1994. TOOLS EFFECT BALANCE2 L #{0-100} R #{0-100} DIRECTION {IN, OUT} METHOD {LINEAR, 
  1995. SLOW, FAST, STEP} 
  1996.  
  1997. TOOLS EFFECT BALANCE4 FL #{0-100} FR #{0-100} RL #{0-100} RR #{0-100} DIRECTION 
  1998. {IN, OUT} METHOD {LINEAR, SLOW, FAST, STEP} 
  1999.  
  2000.  
  2001. ΓòÉΓòÉΓòÉ 9.7. User Operations ΓòÉΓòÉΓòÉ
  2002.  
  2003. PMsndX also provides a dialog method of user input through standard OS/2 
  2004. MESSAGE dialog boxes.  A message dialog provides the user with a means to 
  2005. present text with a dialog containing a icon and standard buttons along with 
  2006. standard OS/2 system sounds to catch the attention of the user.  Since a value 
  2007. is returned from the MESSAGE, it must be formatted as a function. 
  2008.  
  2009. x=MESSAGE(ASK, {OK, OKCANCEL, CANCEL, ENTER, ENTERCANCEL, RETRYCANCEL, 
  2010. ABORTRETRYIGNORE, YESNO, YESNOCANCEL}, ICON, {NOICON, ICONHAND, QUESTION, 
  2011. EXCLAMATION, ASTERISK, INFORMATION, QUERY, WARNING, ERROR}, [MODE, 
  2012. {APPLICATION, SYSTEM},] [MOVEABLE, {YES, NO},] TEXT, 'text', TITLE, 'text') 
  2013.  
  2014. The ASK parameter determines the possible return values. The data returned is a 
  2015. string representing the button pressed by the user.  The possible return values 
  2016. are: 
  2017.  
  2018. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2019. ΓöéType            ΓöéReturn  Γöé
  2020. Γöé                Γöé        Γöé
  2021. ΓöéOK              ΓöéOK      Γöé
  2022. Γöé                Γöé        Γöé
  2023. Γöé                ΓöéERROR   Γöé
  2024. Γöé                Γöé        Γöé
  2025. ΓöéOKCANCEL        ΓöéOK      Γöé
  2026. Γöé                Γöé        Γöé
  2027. Γöé                ΓöéCANCEL  Γöé
  2028. Γöé                Γöé        Γöé
  2029. Γöé                ΓöéERROR   Γöé
  2030. Γöé                Γöé        Γöé
  2031. ΓöéCANCEL          ΓöéCANCEL  Γöé
  2032. Γöé                Γöé        Γöé
  2033. Γöé                ΓöéERROR   Γöé
  2034. Γöé                Γöé        Γöé
  2035. ΓöéENTER           ΓöéENTER   Γöé
  2036. Γöé                Γöé        Γöé
  2037. Γöé                ΓöéERROR   Γöé
  2038. Γöé                Γöé        Γöé
  2039. ΓöéENTERCANCEL     ΓöéENTER   Γöé
  2040. Γöé                Γöé        Γöé
  2041. Γöé                ΓöéCANCEL  Γöé
  2042. Γöé                Γöé        Γöé
  2043. Γöé                ΓöéERROR   Γöé
  2044. Γöé                Γöé        Γöé
  2045. ΓöéRETRYCANCEL     ΓöéRETRY   Γöé
  2046. Γöé                Γöé        Γöé
  2047. Γöé                ΓöéCANCEL  Γöé
  2048. Γöé                Γöé        Γöé
  2049. Γöé                ΓöéERROR   Γöé
  2050. Γöé                Γöé        Γöé
  2051. ΓöéABORTRETRYIGNOREΓöéABORT   Γöé
  2052. Γöé                Γöé        Γöé
  2053. Γöé                ΓöéRETRY   Γöé
  2054. Γöé                Γöé        Γöé
  2055. Γöé                ΓöéIGNORE  Γöé
  2056. Γöé                Γöé        Γöé
  2057. Γöé                ΓöéERROR   Γöé
  2058. Γöé                Γöé        Γöé
  2059. ΓöéYESNO           ΓöéYES     Γöé
  2060. Γöé                Γöé        Γöé
  2061. Γöé                ΓöéNO      Γöé
  2062. Γöé                Γöé        Γöé
  2063. Γöé                ΓöéERROR   Γöé
  2064. Γöé                Γöé        Γöé
  2065. ΓöéYESNOCANCEL     ΓöéYES     Γöé
  2066. Γöé                Γöé        Γöé
  2067. Γöé                ΓöéNO      Γöé
  2068. Γöé                Γöé        Γöé
  2069. Γöé                ΓöéCANCEL  Γöé
  2070. Γöé                Γöé        Γöé
  2071. Γöé                ΓöéERROR   Γöé
  2072. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2073.  
  2074. The following ICONs and the associated sounds for the dialog (from the System 
  2075. Events in the MMPM Sound setup): 
  2076.  
  2077.       NOICON - () - NONE 
  2078.       ICONHAND - () - Error sound 
  2079.       QUESTION - () - Information sound 
  2080.       EXCLAMATION - () - Warning sound 
  2081.       ASTERISK - () - NONE 
  2082.       INFORMATION - () - NONE 
  2083.       QUERY - () - Information sound 
  2084.       WARNING - () - Warning sound 
  2085.       ERROR - () - Error sound 
  2086.  
  2087.  The MODE specifies how the window is displayed with relation to other windows 
  2088.  on the system.  If no MODE keyword is specified or APPLICATION is specified, 
  2089.  then the dialog window will can be covered by other windows from the desktop. 
  2090.  If SYSTEM is specified, then the dialog box will prevent other windows on the 
  2091.  desktop from covering it. 
  2092.  
  2093.  The MOVEABLE keyword is used to determine if a titlebar is provided on the 
  2094.  message dialog box.  If the MOVEABLE keyword is not specified or if it is 
  2095.  specified as NO, then there will be no titlebar on the message dialog and it 
  2096.  cannot be moved around the screen.  Specifying YES allows the user to move the 
  2097.  message dialog box around the screen. 
  2098.  
  2099.  
  2100. ΓòÉΓòÉΓòÉ 9.8. Miscellaneous Operations ΓòÉΓòÉΓòÉ
  2101.  
  2102. PMSNDX EXIT 
  2103.  
  2104. The EXIT keyword sends a message to PMsndX to exit.  This is the same as 
  2105. clicking CLOSE on the system menu of the control panel. 
  2106.  
  2107. PMSNDX UPDATEWINDOWS 
  2108.  
  2109. The UPDATEWINDOWS keyword forces PMsndX to update all windows that are 
  2110. currently displayed.  During the processing of a REXX script, most windows are 
  2111. not updated when they are open.  Of course there are exceptions to this such as 
  2112. the EDITOR and the AUDIO dialogs in which updates are required to allow the 
  2113. user to maintain control over the current operation. 
  2114.  
  2115. PMSNDX CLOSE {YES,NO} 
  2116.  
  2117. If no errors occur during the execution of a REXX script, the REXX output 
  2118. window will automatically close itself.  However, by specifying the CLOSE 
  2119. keyword and the parameter YES, the window can be forced to remain open.  In the 
  2120. event that an error occurs in the REXX script, this command has no effect. 
  2121.  
  2122. PMSNDX IGNORE_SYNTAX_ERRORS {YES,NO} 
  2123.  
  2124. When writing REXX scripts for PMsndX, it may be desirable to pass the REXX 
  2125. through the interpreter to check the syntax of the commands without having 
  2126. PMsndX stop at each error.  When this option is turned on, PMsndX will still 
  2127. display the errors in RED, but will not stop after the error. 
  2128.  
  2129. PMSNDX OUTPUT {YES,NO} 
  2130.  
  2131. By default, PMsndX displays each PMsndX command or function as it is executed. 
  2132. This output can be turned off with this command by specifying NO 
  2133.  
  2134. PMSNDX TEST_MODE {YES,NO} 
  2135.  
  2136. By setting PMsndX into REXX TEST_MODE, REXX scripts will be processed as usual 
  2137. except that the commands will not actually be executed.  This option is 
  2138. primarily used during the testing of the REXX syntax parser during the 
  2139. development of PMsndX, and has been provided to allow scripts to be tested 
  2140. syntatically before using them. 
  2141.  
  2142. return 'text' 
  2143.  
  2144.  
  2145. ΓòÉΓòÉΓòÉ 9.9. Query/Test Operations ΓòÉΓòÉΓòÉ
  2146.  
  2147. The functions which make up the QUERY group return values which are identical 
  2148. to the parameters expected by the indicated command.  To determine the range of 
  2149. values that may be returned, see the corresponding command and keyword 
  2150. combinations. 
  2151.  
  2152. X=QUERY(FILE, OPENPATH) 
  2153.  
  2154. X=QUERY(FILE, SAVEPATH) 
  2155.  
  2156. X=QUERY(FILE, FILENAME) 
  2157.  
  2158. X=QUERY(INFO, FORMAT) 
  2159.  
  2160. X=QUERY(INFO, DATASTYLE) 
  2161.  
  2162. X=QUERY(INFO, CHANNELS) 
  2163.  
  2164. X=QUERY(INFO, RATE) 
  2165.  
  2166. X=QUERY(INFO, DATASIZE) 
  2167.  
  2168. X=QUERY(INFO, SAMPLES) 
  2169.  
  2170. X=QUERY(INFO, TIME) 
  2171.  
  2172. X=QUERY(INFO, MEMORY) 
  2173.  
  2174. X=QUERY(INFO, COMMENT) 
  2175.  
  2176. X=QUERY(INFO, BYTEORDER) 
  2177.  
  2178. X=QUERY(AUDIO, VOLUME) 
  2179.  
  2180. X=QUERY(AUDIO, REPEAT) 
  2181.  
  2182. X=QUERY(AUDIO, CHANNEL_SELECTION) 
  2183.  
  2184. X=QUERY(AUDIO, RANGE_SELECTION) 
  2185.  
  2186. X=QUERY(AUDIO, TIME) 
  2187.  
  2188. X=QUERY(AUDIO, COUNT) 
  2189.  
  2190. X=QUERY(AUDIO, MEMORY) 
  2191.  
  2192. X=QUERY(AUDIO, INPUT) 
  2193.  
  2194. X=QUERY(AUDIO, QUALITY) 
  2195.  
  2196. X=QUERY(AUDIO, CHANNELS) 
  2197.  
  2198. X=QUERY(AUDIO, RATE) 
  2199.  
  2200. X=QUERY(AUDIO, OVERWRITE) 
  2201.  
  2202. X=QUERY(AUDIO, MONITOR) 
  2203.  
  2204. X=QUERY(PROPERTIES, FOOTNOTES) 
  2205.  
  2206. X=QUERY(PROPERTIES, SAVE_POSITIONS) 
  2207.  
  2208. X=QUERY(PROPERTIES, SAVE_OPENPATH) 
  2209.  
  2210. X=QUERY(PROPERTIES, SAVE_SAVEPATH) 
  2211.  
  2212. X=QUERY(PROPERTIES, MEMORY) 
  2213.  
  2214. X=QUERY(PROPERTIES, ENABLE_MMPM) 
  2215.  
  2216. X=QUERY(PROPERTIES, SHARE_AUDIO) 
  2217.  
  2218. X=QUERY(PROPERTIES, PLAY_ON_LOAD) 
  2219.  
  2220. X=QUERY(PROPERTIES, EXIT_AFTER_COMMANDLINE_PLAY) 
  2221.  
  2222. X=QUERY(PROPERTIES, PLAY_16ON8) 
  2223.  
  2224. X=QUERY(PROPERTIES, DEVICE) 
  2225.  
  2226. X=QUERY(PROPERTIES, UNDO) 
  2227.  
  2228. X=QUERY(PROPERTIES, IGNORE_HEADER_STYLE) 
  2229.  
  2230. X=QUERY(PROPERTIES, REQUIRE_AU_HEADER) 
  2231.  
  2232. X=QUERY(PROPERTIES, FORCE_ULAW) 
  2233.  
  2234. X=QUERY(PROPERTIES, REXX_DISPLAY_HISTORY) 
  2235.  
  2236. X=QUERY(PROPERTIES, INI_PATH) 
  2237.  
  2238. x=QUERY(PMSNDX, VERSION) 
  2239.  
  2240. Returns the current version number. 
  2241.  
  2242. x=QUERY(PMSNDX, REGISTERED) 
  2243.  
  2244. Returns {YES,NO} to indicate whether PMsndX has been registered. 
  2245.  
  2246. x=QUERY(PMSNDX, ERROR_OCCURRED) 
  2247.  
  2248. Returns {YES,NO} indicating whether an error has occurred.  If this is set to 
  2249. YES then the REXX output window will not close when the REXX script has 
  2250. completed execution. 
  2251.  
  2252. x=QUERY(PMSNDX, CLOSE) 
  2253.  
  2254. Returns {YES,NO} indicating whether the REXX script has told PMsndX not to 
  2255. close the REXX output window when the script completes. 
  2256.  
  2257. x=QUERY(PMSNDX, IGNORE_SYNTAX_ERRORS) 
  2258.  
  2259. Returns {YES,NO} indicating whether the PMsndX has been told to ignore errors. 
  2260.  
  2261. x=QUERY(PMSNDX, OUTPUT) 
  2262.  
  2263. Returns {YES,NO} indicating whether the PMsndX commands are echoed in the REXX 
  2264. output window. 
  2265.  
  2266. x=QUERY(PMSNDX, TEST_MODE) 
  2267.  
  2268. Returns {YES,NO} indicating that the PMsndX is in TEST_MODE. 
  2269.  
  2270.  
  2271. ΓòÉΓòÉΓòÉ 9.10. Animation Operations ΓòÉΓòÉΓòÉ
  2272.  
  2273. During the processing of a REXX script, the various dialogs may be 
  2274. automatically opened and the user may wish to "clean up" the screen before 
  2275. completing the rexx script.  A set of controls is provided to allow for user 
  2276. controlled animation of the desktop. 
  2277.  
  2278. DISPLAY EDITOR {YES, NO} [CHANNEL {1, 2, 3, 4}] 
  2279.  
  2280. If the optional CHANNEL keyword is specified, the editor will display the 
  2281. selected channel when it is opened.  If the editor is already displayed, the 
  2282. channel displayed will change to that specified.  If the new channel to display 
  2283. is larger than the number of channels in the sample, the displayed channel will 
  2284. remain unchanged. 
  2285.  
  2286. DISPLAY TOOLS {YES, NO} 
  2287.  
  2288. DISPLAY TOOLPAGE {INFO, FORMAT, CHANNELS, AVERAGE, DUPE, FILTER, BANDPASS, 
  2289. LOWPASS, SAMPLE, RATE, SPEED, EFFECT, ECHO, INVERT, REVERSE, VIBRO, VOLUME, 
  2290. FADE, LIMIT, BALANCE} 
  2291.  
  2292. DISPLAY OPEN {YES, NO} 
  2293.  
  2294. DISPLAY SAVE {YES, NO} 
  2295.  
  2296. DISPLAY PROPERTIES {YES, NO} 
  2297.  
  2298. DISPLAY PROPPAGE {AUDIO, MEMORY, MISC, REXX, STARTUP} 
  2299.  
  2300. DISPLAY AUDIO {YES, NO} 
  2301.  
  2302.  
  2303. ΓòÉΓòÉΓòÉ 9.11. REXX return values ΓòÉΓòÉΓòÉ
  2304.  
  2305. Both FUNCTIONS and COMMANDS return error codes in the event that an error 
  2306. occurs when processing the commands.  The error codes are composed of two 8 bit 
  2307. numbers logically ORed together. 
  2308.  
  2309. The upper 8 bits of the return code indicates the command command group which 
  2310. caused the error.  The following table lists the possible values. 
  2311.  
  2312. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2313. ΓöéGroup               ΓöéValue       Γöé
  2314. Γöé                    Γöé            Γöé
  2315. ΓöéUnknown             Γöé0x00000100  Γöé
  2316. Γöé                    Γöé            Γöé
  2317. ΓöéFILE                Γöé0x00000200  Γöé
  2318. Γöé                    Γöé            Γöé
  2319. ΓöéAUDIO               Γöé0x00000300  Γöé
  2320. Γöé                    Γöé            Γöé
  2321. ΓöéPROPERTIES          Γöé0x00000400  Γöé
  2322. Γöé                    Γöé            Γöé
  2323. ΓöéEDIT                Γöé0x00000500  Γöé
  2324. Γöé                    Γöé            Γöé
  2325. ΓöéTOOLS               Γöé0x00000600  Γöé
  2326. Γöé                    Γöé            Γöé
  2327. ΓöéMESSAGE             Γöé0x00000700  Γöé
  2328. Γöé                    Γöé            Γöé
  2329. ΓöéPMSNDX              Γöé0x00000800  Γöé
  2330. Γöé                    Γöé            Γöé
  2331. ΓöéQUERY               Γöé0x00000900  Γöé
  2332. Γöé                    Γöé            Γöé
  2333. ΓöéDISPLAY             Γöé0x00000a00  Γöé
  2334. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2335.  
  2336. The lower 8 bits of the result indicate the reason for the error. The possible 
  2337. values are listed in the following table. 
  2338.  
  2339. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2340. ΓöéError               ΓöéValue       Γöé
  2341. Γöé                    Γöé            Γöé
  2342. ΓöéNOT IMPLEMENTED     Γöé0x00000001  Γöé
  2343. Γöé                    Γöé            Γöé
  2344. ΓöéBAD VALUE           Γöé0x00000002  Γöé
  2345. Γöé                    Γöé            Γöé
  2346. ΓöéUNKNOWN PARAMETER   Γöé0x00000003  Γöé
  2347. Γöé                    Γöé            Γöé
  2348. ΓöéUNKNOWN KEYWORD     Γöé0x00000004  Γöé
  2349. Γöé                    Γöé            Γöé
  2350. ΓöéUNKNOWN COMMAND     Γöé0x00000005  Γöé
  2351. Γöé                    Γöé            Γöé
  2352. ΓöéUNKNOWN FUNCTION    Γöé0x00000006  Γöé
  2353. Γöé                    Γöé            Γöé
  2354. ΓöéMISSING PARAMETER   Γöé0x00000007  Γöé
  2355. Γöé                    Γöé            Γöé
  2356. ΓöéMISSING KEYWORD     Γöé0x00000008  Γöé
  2357. Γöé                    Γöé            Γöé
  2358. ΓöéMISSING COMMAND     Γöé0X00000009  Γöé
  2359. Γöé                    Γöé            Γöé
  2360. ΓöéMISSING FUNCTION    Γöé0X0000000a  Γöé
  2361. Γöé                    Γöé            Γöé
  2362. ΓöéUNBALANCED KEYWORD  Γöé0x0000000b  Γöé
  2363. Γöé                    Γöé            Γöé
  2364. ΓöéEXTRA DATA          Γöé0x0000000c  Γöé
  2365. Γöé                    Γöé            Γöé
  2366. ΓöéDUPLICATE KEYWORD   Γöé0x0000000d  Γöé
  2367. Γöé                    Γöé            Γöé
  2368. ΓöéINVALID PATH        Γöé0x00000010  Γöé
  2369. Γöé                    Γöé            Γöé
  2370. ΓöéBAD FILE NAME       Γöé0x00000011  Γöé
  2371. Γöé                    Γöé            Γöé
  2372. ΓöéNO SAMPLES          Γöé0x00000012  Γöé
  2373. Γöé                    Γöé            Γöé
  2374. ΓöéCANNOT PLAYBACK     Γöé0x00000013  Γöé
  2375. Γöé                    Γöé            Γöé
  2376. ΓöéCANNOT RECORD       Γöé0x00000014  Γöé
  2377. Γöé                    Γöé            Γöé
  2378. ΓöéNO MMPM INSTALLED   Γöé0x00000020  Γöé
  2379. Γöé                    Γöé            Γöé
  2380. ΓöéMMPM NOT ENABLED    Γöé0x00000021  Γöé
  2381. Γöé                    Γöé            Γöé
  2382. ΓöéGENERAL FUNCTION    Γöé0x00000030  Γöé
  2383. ΓöéERROR               Γöé            Γöé
  2384. Γöé                    Γöé            Γöé
  2385. ΓöéGENERAL COMMAND     Γöé0x00000031  Γöé
  2386. ΓöéERROR               Γöé            Γöé
  2387. Γöé                    Γöé            Γöé
  2388. ΓöéPROGRAM NOT         Γöé0x000000ff  Γöé
  2389. ΓöéREGISTERED          Γöé            Γöé
  2390. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2391.  
  2392.  
  2393. ΓòÉΓòÉΓòÉ 10. Technical Issues ΓòÉΓòÉΓòÉ
  2394.  
  2395. Memory Usage: I have worked with means for storing and converting from one 
  2396. format to another efficiently.  Initially I tried to store things in a data 
  2397. structure which was a union of all of the types of data that are used by the 
  2398. computers.  However, converting from one format to another was difficult and 
  2399. each effect had to be able to understand the initial and final format.  This 
  2400. became unwieldy considering that there can be either signed or unsigned samples 
  2401. of sizes byte or word.  As new effects were added, it became unmanageable.  At 
  2402. a sacrifice to memory efficiency, I have changed it to store all data as a 
  2403. signed SHORT (2 byte) sample.  The effects then operate generically on the 
  2404. samples and the only time that the type of data is important is when reading or 
  2405. writing the samples.  The savings in complexity justified the memory 
  2406. requirements.  As a result, if a sample is 1k of bytes (.wav format), then in 
  2407. memory it will take up 2k.  Currently the program will only read and write 8 
  2408. and 16 bit samples. Since I don't know of any sound cards that can sample at 
  2409. greater bit sizes, this is the limit.  In the future, this approach to memory 
  2410. usage can be easily extended to 32 bits without rewriting every part of the 
  2411. program.  In fact, to change the storage sizes, two definitions have to be 
  2412. changed and then the proper input/output routines written.  Simple? I think so. 
  2413.  
  2414.  
  2415. ΓòÉΓòÉΓòÉ 10.1. Additional known faults ΓòÉΓòÉΓòÉ
  2416.  
  2417. There is a known problem with PMsndX and version 3.0 of MMPM/2 which affects 
  2418. the performance of the Audio playback. When running PMsndX under Warp, anything 
  2419. which interrupts the playback of a sample (such as a system sound or pressing 
  2420. Pause) will cause PMsndX to hang the next time playback is requested. I have 
  2421. tried to correct this but have found no solution at this time.  For this 
  2422. reason, I have provided the option to have PMsndX open the Audio device without 
  2423. sharing it (the default). This problem does not appear to affect PMsndX on 
  2424. previous versions of OS/2 (i.e. 2.0, 2.1 and 2.11). 
  2425.  
  2426. From an OS/2 window run the command SYSLEVEL.  If you receive the following 
  2427. output, then your system will probably exhibit the problem. 
  2428.  
  2429.       E:\MMOS2\INSTALL\SYSLEVEL.MPM 
  2430.                    IBM Multimedia Presentation Manager/2 
  2431.       Version 3.00   Component ID 562137400 
  2432.       Type W 
  2433.       Current CSD level: XR03000 
  2434.       Prior  CSD level: XR03000 
  2435.  
  2436.  To test to see if your system will encounter this problem, open a sample file 
  2437.  and select the AUDIO button on the main control panel. Start playback by 
  2438.  pressing the PLAY button and then pressing the PAUSE button.  Press the PAUSE 
  2439.  button again to resume playback. If the PLAY button stops moving after the 
  2440.  sample has finished playing, PMsndX will not lock up on your system.  You 
  2441.  should set PMsndX to share the audio device by going to the startup properties 
  2442.  page (from the main control panel system menu). If the playback button does 
  2443.  not stop moving after the sample has finished, then you should avoid using the 
  2444.  PAUSE button and leave PMsndX set so that it does not share the AUDIO device. 
  2445.  
  2446.  I apologize for this problem, and a new revision of MMPM/2 will correct this 
  2447.  in the future. 
  2448.  
  2449.  Minor limitations: 
  2450.  
  2451.    1. When recording a sample, the CD input cannot be used at this time. 
  2452.    2. There is no way to edit multiple sounds at the same time. 
  2453.  
  2454.  
  2455. ΓòÉΓòÉΓòÉ 11. About the Author ΓòÉΓòÉΓòÉ
  2456.  
  2457. My name is William Scott Hiles but I usually go by the name Scott.  I have a 
  2458. masters degree in signal processing and satellite communications. 
  2459. Unfortunately, my occupation utilizes very little of my formal education and 
  2460. takes more advantage of my less formally learned talents.  I work as an 
  2461. electrical engineer for the Navy in the area of LAN and WAN research. My job is 
  2462. centered around promoting open systems in networking within the Navy and I am a 
  2463. Navy expert on fiber optic networking.  I have worked with the ANSI X3 
  2464. committees for the past 5 years and currently (1993-1994) am the chairman of 
  2465. the FDDI Repeater specification.  Enough of that dribble...the point is that I 
  2466. don't use my education in my job. 
  2467.  
  2468. Which leads me into the purpose of this program.  I am an electrical engineer, 
  2469. and my heart lies in hardware design and programming.  Well, with this program 
  2470. I can at least satisfy my need to create software.  So, this program came about 
  2471. because I was playing with sampling and recreating sound with my Sound Blaster 
  2472. 16 when I had the need to convert from the .wav format to the Sun .au format. 
  2473. After finding a little program that would convert Sun audio files to the PC 
  2474. format I found that it had problems with the new version of .WAV files.  So, I 
  2475. set out to write something that worked with the latest versions.  Well, from 
  2476. there it was not difficult to add other formats, and then I started playing 
  2477. with manipulations and so forth.  Over about 11 months of very time consuming 
  2478. work, I came up with the present program called PMsndX. 
  2479.  
  2480. My resources are modest.  I am 29 (1993) and have programmed everything from a 
  2481. PC to a 486 for the past 10 years.  I dumped my 286 in February of 1993 and got 
  2482. me a nice 486.  I decked the thing out and got OS/2.  I had been playing with 
  2483. OS/2 since 1.3 on machines that I did not own, but this was the first time I 
  2484. had it at home to play with as I pleased. Programming under OS/2 provided a 
  2485. unique challenge with unlimited creative abilities.  The company called 
  2486. WiSHware which is listed in the About box was formed as a shareware/freeware 
  2487. incorporated name for anything I write.  I have a significant library of 
  2488. programs for DOS and even a couple for Windows.  PMsndX is the second program 
  2489. for OS/2 that I have written.  The first one was not well received as it did 
  2490. not provide a significant function to the community.  Big deal.  I use it at 
  2491. home and I don't care. 
  2492.  
  2493. So that is my history and my qualification.  I am a bit surprised that you read 
  2494. this far.  Congratulations. By the way, did you wonder why I chose a little 
  2495. blue motorcycle for the icon? Very simply put, the modern day sportsbike 
  2496. represents the art of functional integration while still maintaining the 
  2497. quality and sound of much more expensive motorcycles. 
  2498.  
  2499. I can easily be reached through US mail at: 
  2500.  
  2501.       Scott Hiles 
  2502.       4421 Savannah St. 
  2503.       King George, VA 22485 
  2504.  
  2505.  I can also be reached through email at: 
  2506.  
  2507.       wishware@cais.com 
  2508.  
  2509.  WiSHware is a sole Proprietorship and can be reached through the phone at 
  2510.  (703) 663-0815.  This is the author's home phone and should not be called 
  2511.  unless the author cannot be contacted through any other means. 
  2512.  
  2513.  
  2514. ΓòÉΓòÉΓòÉ 12. Registration ΓòÉΓòÉΓòÉ
  2515.  
  2516. PMsndX is a form of SHAREWARE and as such requires a registration for all of 
  2517. the functions of the program to be used.  What makes PMsndX different from 
  2518. other shareware programs?  Well, simply put, any individual who contacts the 
  2519. author will receive a free registration.  The only time that a registration 
  2520. must be paid for is when it is used for business purposes in which an 
  2521. individual, company, or government agency uses PMsndX in the office environment 
  2522. or makes a profit from the use of PMsndX.  If you make a profit, then I want to 
  2523. make a profit.  This is not to say that I will not accept donations for my 
  2524. efforts; rather, they are not required for individuals.  This is the reason 
  2525. that the program still requires a password and is also the reason that the user 
  2526. must contact the author to get a registration.  It lets me keep track of who is 
  2527. using it, how popular it is, and how far the distribution has gotten. 
  2528.  
  2529. Registrations are available by contacting the Author. Paid registrations do not 
  2530. expire.  The expiration feature is provided to allow trial periods for 
  2531. businesses and packages which intend to distribute PMsndX at a cost to the 
  2532. user. 
  2533.  
  2534. Licensing and registration fees apply to the user interface and style of the 
  2535. program but do not apply to the algorithms used to create the effects.  These 
  2536. algorithms are public domain and may be copied and distributed freely. 
  2537.  
  2538. I have put a lot of effort into making this program robust and very pleasing. 
  2539. It has taken me more than nine months and 35,000 lines of code to get this 
  2540. program to where it is now, and I would hope that if you like the program and 
  2541. use it, you will appreciate it enough to send me a little cash to help fund 
  2542. future work.  I don't expect much. 
  2543.  
  2544. Asking for money is a sticky thing.  The big problem is to give people a 
  2545. program so that they can play with to see what it can do and yet hold back 
  2546. enough to get people to want to register the program.  I put a lot of thought 
  2547. into this and have considered the many ways that authors achieve their goals. 
  2548. My solution was to disable the ability to read or write any formats other than 
  2549. the PC (.WAV) and Sun (.AU) types, disable the UNDO capibility, and limit the 
  2550. editing capability. 
  2551.  
  2552.  
  2553. ΓòÉΓòÉΓòÉ 13. Shareware ΓòÉΓòÉΓòÉ
  2554.  
  2555. I have three options which I can offer which seem to follow with common 
  2556. SHAREWARE practice.  I have looked in stores for something that provides 
  2557. anything similar and found that a commercial product for Windows with half the 
  2558. functions cost considerably more.  A registration form is provided and the 
  2559. following are the options for registration. 
  2560.  
  2561. 1.  $0.00 will get an individual a password that will enable all of the 
  2562. functions of the program up to a particular revision. 
  2563.  
  2564. 2.  $15.00 will get you a password that will enable all of the functions of the 
  2565. current version. 
  2566.  
  2567. 3.  $30.00 will get you a password that will enable all of the functions for 
  2568. all versions up to the next major release.  If you chose to register using 
  2569. option 2 first and then want to upgrade, I will give you a $10 credit and you 
  2570. can get option 3 for $20.00. 
  2571.  
  2572. 4.  $50.00 will get you a password that will enable all of the functions for 
  2573. all future versions.  If you have chosen to register using option 3 first, I 
  2574. will give you a $20 credit and you can get the lifetime registration for 
  2575. $30.00.  If you have registered with option 2 first, then I will give you $10 
  2576. credit and you can get the lifetime registration for $40.00. 
  2577.  
  2578. Note:  Please note.  These prices cover just the registration.  Shipping 
  2579.        charges for the disks through the Postal service are extra.  If you 
  2580.        order the program through the mail, add $5.00 to cover the media and 
  2581.        shipping costs.  If you are an individual and do not have access to the 
  2582.        internet, I can send you a disk and registration for the fee of $5.00 to 
  2583.        cover the media and shipping costs.  Also, I also retain the right to 
  2584.        deny registrations at any time.  I will typically deny registration to 
  2585.        anyone who has an address that implies that it will be used in a 
  2586.        corporate environment. 
  2587.  
  2588.   The section describing the Author provides my email and US postal mail 
  2589.  addresses. 
  2590.  
  2591.  Now, what do you get when you register.  Well, you obviously get a password 
  2592.  that will enable all functions of the program.  The functions that are 
  2593.  disabled for unregistered users are: 
  2594.  
  2595.  Formats   Only .WAV format can be loaded and saved 
  2596.  Editor    The Cut and Paste operations of the editor only work for the full 
  2597.            sample (i.e. will not work for ranges) 
  2598.  Undo      The UNDO function is disabled 
  2599.  REXX      The REXX functionality is disabled 
  2600.  
  2601.  In addition to that, I can provide limited technical support for paying users 
  2602.  through regular phone service, email, or the US Postal service.  A number of 
  2603.  people have contacted me to ask for special programs (e.g. programs that will 
  2604.  just play any format without the overhead of the editor or a program that will 
  2605.  just convert between formats).  These will be fairly easy to create using the 
  2606.  existing objects of PMsndX.  If you are registered for PMsndX, these programs 
  2607.  will automatically recognize the registration and work on your system. 
  2608.  
  2609.  If and when you register, you will receive a password through whatever means 
  2610.  that you prefer.  If you choose the postal service, you will receive it via 
  2611.  disk along with the latest copy of the program (remember to include an 
  2612.  additional $5.00 to cover the shipping and media).  If you choose to receive 
  2613.  your registration through email, you will receive an email message that can be 
  2614.  imported using the FILE button of the registration dialog.  Registrations will 
  2615.  be sent after your form of payment has cleared. 
  2616.  
  2617.  Since PMsndX is provided as SHAREWARE, there is no provision for refunds.  In 
  2618.  the event that you are dissatisified with the operation of PMsndX due to an 
  2619.  error in loading or saving a format, contact me and I will fix the program if 
  2620.  you can provide me with a copy of the file that is causing the problem or 
  2621.  enough detail that I can recreate the problem. 
  2622.  
  2623.  
  2624. ΓòÉΓòÉΓòÉ 14. Entering Registration Info ΓòÉΓòÉΓòÉ
  2625.  
  2626. Once you receive your registration you have a couple of options for entering it 
  2627. into the program.  First, pull up either the Welcome or About dialog box from 
  2628. the system menu of PMsndX.  Press the REGISTER button to bring up the 
  2629. registration dialog box. 
  2630.  
  2631. You may enter the data directly into the entry fields or you may have the 
  2632. program scan a data file for your registration information. When entering data, 
  2633. enter it exactly as it is shown in the file or text for your registration.  The 
  2634. Name field must not have any additional spaces and it must be entered in exact 
  2635. case. The password is 16 characters long and will never contain any space 
  2636. characters.  It is case sensitive so be careful to get the case right. 
  2637. Passwords never contain the upper case letter O or the upper case letter I to 
  2638. avoid confusion with similar looking numbers. 
  2639.  
  2640. When PMsndX scans a file for the password information, it looks for the 
  2641. following keys: 
  2642.  
  2643.       PMsndX Name: 
  2644.       Through version: 
  2645.       Expiration date: 
  2646.       PMsndX Password: 
  2647.  
  2648.  These lines can be anywhere in a file so there is no need to remove a mail 
  2649.  header or extra information.  PMsndX will search the file for the specific 
  2650.  text that it is looking for and extract it. 
  2651.  
  2652.  The registration information is stored in the file called os2.ini.  This 
  2653.  allows a copy of PMsndX to be run from a network and each machine can have 
  2654.  it's own registration. This also allows the pmsndx.ini file to be copied form 
  2655.  one machine to another without violating the licensing agreement.  Five items 
  2656.  are stored in the os2.ini and total about 100 bytes.  Any .ini editor can be 
  2657.  used to remove this information if the user wishes to delete PMsndX from the 
  2658.  system. 
  2659.  
  2660.  Note:  The information in the os2.ini file is only written when the program is 
  2661.         registered.  This avoids adding stuff to the os2.ini file unless the 
  2662.         user has chosen that the program is worth keeping. 
  2663.  
  2664.  
  2665. ΓòÉΓòÉΓòÉ 15. Tradeoffs ΓòÉΓòÉΓòÉ
  2666.  
  2667. When PMsndX is operating on a sample for the clipboard, AUDIO, or the tools, it 
  2668. stores the entire sample in memory.  This has the advantage that the program 
  2669. can double buffer the sample for faster operation; but, it has the disadvantage 
  2670. that it can take up a tremendous amount of memory to hold large samples. 
  2671. PMsndX provides the user with a simple interface at the expense of resources on 
  2672. the host computer. 
  2673.  
  2674.  
  2675. ΓòÉΓòÉΓòÉ 16. Copyright ΓòÉΓòÉΓòÉ
  2676.  
  2677. The author makes NO WARRANTY or representation, either expressed or implied, 
  2678. with respect to PMsndX, its quality, accuracy, merchantability, or fitness for 
  2679. a particular purpose.  This software is provided "AS IS" and you, its user, 
  2680. assume the entire risk as to its quality and accuracy. 
  2681.  
  2682. This software is copyright (C) 1994, William S. Hiles.  All rights Reserved 
  2683. except as specified below. 
  2684.  
  2685. Permission is hereby granted to use, copy, and distribute this software (or 
  2686. portions thereof) for any purpose, without fee, subject to these conditions: 
  2687.  
  2688. (1) The seven files, pmsndx.exe, pmsndx.hlp, readme.txt, history.txt, 
  2689. license.txt, order.txt and file_id.diz must always be included during 
  2690. distribution. Any alterations to the files must be clearly documented.  No 
  2691. changes may be made to the About screen or any of the copyright information. 
  2692.  
  2693. (2) Permission for use of this software is granted only if the user accepts 
  2694. full responsibility for any undesirable consequences.  The author accepts NO 
  2695. LIABILITY for damages of any kind. 
  2696.  
  2697. (3) Permission is not granted for the use of the author's name or company name 
  2698. in advertising or publicity relating to this software or products derived from 
  2699. it. 
  2700.  
  2701. (4) Users are granted permission to collect fees for the distribution of 
  2702. PMsndX, (such as BBS's that have a membership fee or a downloading charge, or 
  2703. FTP sites that sell cdrom versions of their archives) but users are 
  2704. specifically prohibited from selling PMsndX as a product or bundling PMsndX 
  2705. with other products that are then sold. 
  2706.  
  2707. (5) Unless otherwise negotiated in writing with the Author, registration 
  2708. passwords for PMsndX may not be distributed in part or in whole.  Registrations 
  2709. are provided to individuals (or for site licensing as negotiated at time of 
  2710. registration) and may not be distributed or transferred. 
  2711.  
  2712.  
  2713. ΓòÉΓòÉΓòÉ 17. Acknowledgements ΓòÉΓòÉΓòÉ
  2714.  
  2715. Of course, IBM deserves a great deal of recognition for providing an operating 
  2716. system that is robust and stable and affordable enough for the general user. 
  2717. Many thanks to IBM for a fine job on creating OS/2. 
  2718.  
  2719. A special thanks is required for Linden deCarmo for his help in understanding 
  2720. the MMPM/2 portion of OS/2. 
  2721.  
  2722. Many thanks to the fine group of people who made suggestions for corrections 
  2723. and improvements in this program.  This team of very patient individuals from 
  2724. around the world comprised the Beta Test team.  Each and every one of them 
  2725. contributed in some way to the development of PMsndX.  Their names are listed 
  2726. below (in alphabetical order). 
  2727.  
  2728.       David Charlap 
  2729.       Christopher W. Curtis 
  2730.       Linden deCarmo 
  2731.       Terrance L. Eck 
  2732.       Scott E. Garfinkle 
  2733.       Jesse Gearhart 
  2734.       Nicole Greiber 
  2735.       Christopher Hemmer 
  2736.       Rick Huebner 
  2737.       Mark R. Johnson 
  2738.       Dov Nelkin 
  2739.       Lara Olofsson 
  2740.       Steve Patrick 
  2741.       Rupa Schomaker 
  2742.       Kamal Shakker 
  2743.       Brett Sherron-Ferrell 
  2744.       Jimmy Shaw 
  2745.       Kent Williams 
  2746.  
  2747.  And of course, that special person and the kids who took the many hours of 
  2748.  clicking away at the keyboard in stride.  They stuck by me throughout this 
  2749.  entire thing, read all the documentation, tested the user interface, and 
  2750.  actually began to understand how sound really works. 
  2751.  
  2752.  Sounds like a Grammy award, huh. 
  2753.  
  2754.  
  2755. ΓòÉΓòÉΓòÉ 18. Installation ΓòÉΓòÉΓòÉ
  2756.  
  2757. PMsndX includes a rudimentary installation program which copies the necessary 
  2758. files to the user specified destination directories. This program relies on the 
  2759. PATH and HELP variable to select the paths to copy the executable and help 
  2760. files to. 
  2761.  
  2762. From 
  2763.  
  2764. When the installation program is run, a window is displayed with a field which 
  2765. indicates where the source files are located.  By default, this is filled in 
  2766. with the location of the installation program.  If the installation program has 
  2767. been moved from a directory other than where it was originally unzipped to, 
  2768. specify the directory where the files pmsndx.exe, pmsndx.hlp, and smallhlp.hlp 
  2769. are located. 
  2770.  
  2771. Location of executable 
  2772.  
  2773. The paths specified in the system PATH variable are displayed in this window. 
  2774. In order for PMsndX to be run from the command line or used by other programs 
  2775. for playback, PMsndX must be in a directory specified in the PATH variable. 
  2776. The user may enter a different path in the editable window; however, PMsndX may 
  2777. not be able to be run from the command line without specifying a complete path. 
  2778. All directories must exist before running the installation program. 
  2779.  
  2780. Location of Help file 
  2781.  
  2782. The paths specifed in the system HELP variable are displayed in this window. 
  2783. When PMsndX is run, it will look in the directory from where the executable was 
  2784. started and then in the directories specified in the HELP variable.  The user 
  2785. may specify a directory other than one that is listed in the window, but it 
  2786. must exist for the installation program to complete.  Additionally, it is up to 
  2787. the user to add the new path to the help variable of the config.sys. 
  2788.  
  2789. Help Version 
  2790.  
  2791. PMsndX comes with two versions of the HELP file.  The default version is called 
  2792. pmsndx.hlp and includes bitmaps of the various windows and is about three times 
  2793. the size of the other help file.  The condensed help file does not include the 
  2794. bitmaps and is really intended for users who are tight on disk space. 
  2795.  
  2796. Create WPS Object 
  2797.  
  2798. The current revision of the installation program cannot create WPS objects.  To 
  2799. create one by manually, open the Templates folder and drag a PROGRAM opject to 
  2800. the desired location.  Open the SETUP for the object and specify the location 
  2801. of the executable that was specified in the installation program.  You can then 
  2802. drag sound samples to the object for playback from the desktop. 
  2803.  
  2804.  
  2805. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2806.  
  2807. JoeView is an excellent program written by Joe Burkley.  If you ever need to 
  2808. view a graphics image of virtually any format, this is the program for you!!! 
  2809.  
  2810.  
  2811. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2812.  
  2813. The following formats are supported by PMsndX. 
  2814.  
  2815.  APPLE (.aif)   Apple 8/16 bit unsigned multi-channel samples 
  2816.  SUN (.au)      Sun/DEC/NeXT 8 or 16 bit single channel signed data samples or 
  2817.                 8 bit ULaw samples. 
  2818.  RIFF (.avi)    OS/2 movie format (PMsndX extracts the Audio and discards the 
  2819.                 video information) 
  2820.  MAC (.hcm)     Apple Macintosh 8 bit single channel samples 
  2821.  RAW (.ub)      Raw 8 bit single channel unsigned samples without header 
  2822.                 information 
  2823.  RAW (.sb)      Raw 8 bit single channel signed samples without header 
  2824.                 information 
  2825.  RAW (.uw)      Raw 16 bit single channel unsigned samples without header 
  2826.                 information 
  2827.  RAW (.sw)      Raw 16 bit single channel signed samples without header 
  2828.                 information 
  2829.  RAW (.ul)      Raw 16 bit U-Law single channel samples 
  2830.  IRACAM (.sf)   Software produced 16 bit signed samples 
  2831.  PC (.voc)      Creative Voice file format, 8 bit single channel unsigned 
  2832.                 samples 
  2833.  SAMP (.smp)    Turtle beach samplevision files 
  2834.  PC (.wav)      Windows or OS/2 8 bit unsigned/16 bit signed multi-channel data 
  2835.                 samples 
  2836.  REXX (.cmd)    REXX command script 
  2837.  
  2838.  The .WAV format is actually defined as a RIFF file.  The header and data are 
  2839.  very robust and there are extensions for proprietary keywords and formats. 
  2840.  PMsndX only supports the standard PCM format and will not load proprietary 
  2841.  formats.  You will receive a STYLE error if it contains an unsupported format. 
  2842.  
  2843.  
  2844. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2845.  
  2846. The bits in a word are stored such that the leftmost bit is stored first in the 
  2847. first byte and the rightmost bit is stored last in the last byte.  If a word is 
  2848. composed of 16 bits, the word would be written to a file starting with bit 16 
  2849. and ending in bit 0. 
  2850.  
  2851. The number 0x1234 (0001 0010 0011 0100) is actually stored as 0001 0010 0011 
  2852. 0100. 
  2853.  
  2854.  
  2855. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2856.  
  2857. The bits in a word are stored such that the leftmost bit is stored first in the 
  2858. last byte and the rightmost bit is stored last in the first byte.  If a word is 
  2859. composed of 16 bits, the word would be written to a file starting with bit 7 
  2860. and ending in bit 8. 
  2861.  
  2862. The number 0x1234 (0001 0010 0011 0100) is actually stored as 0011 0100 0001 
  2863. 0010. 
  2864.  
  2865.  
  2866. ΓòÉΓòÉΓòÉ <hidden>  ΓòÉΓòÉΓòÉ
  2867.  
  2868. There are four methods of transitioning channels in a sample. These methods are 
  2869. used in various tools to provide a smooth transition from one end of a range to 
  2870. another.  The four types of transitions are listed in the following text. 
  2871.  
  2872. The first method is linear.  In this case, the increase or decrease in the 
  2873. volume is constant over time.  This can be defined by the mathematical 
  2874. equation: 
  2875.  
  2876. volume(t) = volume(t) * t/interval 
  2877.  
  2878. A second method for adjusting the volume is to use a geometric expression so 
  2879. that the sample transitions slowly in the beginning of the range and then 
  2880. changes quickly toward the end of the range. To transition a sample out slowly 
  2881. over time a form of the function: 
  2882.  
  2883. volume(t) = volume(t) * (1 - (t/interval))┬ñ 
  2884.  
  2885. The third method is exactly the reverse of the slow transition in which the 
  2886. transition moves very quickly in the beginning of the range and then slowly 
  2887. reaches the end of the range. The equation for this is as follows: 
  2888.  
  2889. volume(t) = volume(t) * (t/interval)┬ñ 
  2890.  
  2891. Finally a fourth method is to have the samples make an immediate transition or 
  2892. a step.  In this case, the transition is made immediately at the beginning of 
  2893. the range.