PlaySound plays samples using PlayIt, try booting or running it and double clicking on a Wave file or dragging one onto the PlaySound icon.
This section is only here because I get annoyed with documentation that doesn't tell you what the program does.
Interesting Features
====================
Plays 16 bit sound, reads and writes Wave text annotation, can be controlled only using the iconbar icon, iconbar icon shows playing status, can play raw data files as well as the usual formats.
Usage
=====
The program is very simple to use, after loading PlaySound double-click on a Wave, Armadeus, Audio IFF, AudioWorks, AmigaIFF, DataVox, DSEdit RawSound, CDTrack or drag any file (including ARMovie, Creative Voice (.VOC), Infocom, Psion A-law, Sun audio (.au) and Symphony Sample) to either the iconbar icon or the control window to play the sound.
If the format is recognised the sample will start to play using the parameters in the file. If the format can't be determined then the file will be assumed to be raw data and the parameters chosen in the control window will be used. If a sample format (eg Wave) is recognised by PlayIt but the sub format (eg 16bit signed linear, Audio MPEG) cannot be played then a message is displayed and the next sample in the queue, if there is one, is loaded. A different message is displayed if the ARMovie does not contain a sound track. To get the title of the sample already loaded back just click twice on the title/message field.
The icon will change to include a play symbol.
Dragging a directory to any PlaySound window or the iconbar icon will recursively search for any files which can be played by PlayIt (ie those of the above filetypes or Data files) and add them to the queue.
By default:
Clicking Select on the icon will open the Control window.
Clicking Shift-Select on the icon will close the Control window.
Clicking Control-Select on the icon will open the Queue window.
Clicking Alt-Select on the icon will close the Queue window.
These can be changed using the preferences window.
When a sample is playing clicking with Adjust will pause the sample until the icon is clicked on with Adjust again.
Clicking with Shift-Adjust will stop the sample playing.
When a sample has been stopped clicking with Adjust will start it playing from the beginning.
Main menu
=========
Info: Add it all up and it all spells 'duh'. Note the version of PlayIt currently loaded is displayed in the version field, this is updated every time the main menu is opened.
Preferences: Opens the Preferences window.
Annotation: Opens the Annotation window, only enabled when Wave files are loaded.
Buffers: Set the buffer size for PlayIt in kilobytes, PlayIt actually used two buffers, each half the size of the menu option. You can type your own number into the bottom menu item. The actual buffer size used will not normally be updated until the next sample is started. Note, setting a buffer size of less than 2 will not work, the previous buffer size will actually be used.
Volume: Selecting Loud, Medium or Quiet will change the volume of the sample, the writable icon is for you to enter a different value between 1 and 192. If you enter a number that corresponds to a preset value: Quiet is number 31, Medium 79 and Loud 127, then that item will be ticked as opposed to the writable icon. Anything above 127 is amplified and may be distorted. If the volume is exactly one of the volumes in the menu then that menu item is ticked.
Queue: Opens the queue window.
Loop: Selecting the Loop menu item will make the sample loop forever. Note that if the sample is near the end when looping is turned on it may not work, if the sample stops just start it again and the looping will then work. This problem is due to PlayIt.
Control: Opens the Control window.
Quit: Hmm, wonder what this does? Why not try it and see? No, not now, hey Dave, what are you doing? I don't understand why you're doing this to me.. Daisy, Daisy give me your answer do. I'm half crazy all for the love of you...
Control window
=============
This window opens automatically when a sample is loaded. The green bar controls the volume, when the amplify button shows 100%, the volume can range from 0 to 127 ie no amplifying. Click the amplify button to rescale the slider so amplification is possible, when 200% shows the volume ranges from 0 to 192 (not strictly 200% but the maximum volume in PlayIt is 192 which is amplified 16 times).
The red bar shows the progress through the sample and may be clicked on to change the position.
The field at the top displays the filename or the Title field in the wave text annotation if it exists. Clicking on this field will show the Artist field for two seconds and will then revert back to the Title field.
For more information on text annotation in Wave files (otherwise known as the why does my sample have a click at the beginning/end problem) see the PlayIt documentation or the AnnoWave program both at the PlayIt web site, see the Credits section for the address.
Underneath the title are the current position in the sample (which if clicked on will swap to the time remaining) and the total length of the sample in seconds.
The button to the right of Play Time is the loop control, exactly as on the menu.
The control buttons along the bottom are Stop, Play, Pause, cue backwards, cue forwards, move to start of sample, move to end of sample.
If there are no samples in the queue then move to end of sample will also pause the playback, otherwise the next sample in the queue will be played.
If there are samples in the queue and the current status is 'Stop' then Adjust clicking the Play button will move to the next sample.
When paused the sample can be unpaused by pressing either play or pause.
Ctrl-clicking on pause will write the current time index to the caret position, useful for timing where cuts should be made using programs such as CDPrep. It won't work with Extract ATM as it uses the minutes:seconds format, if you want it to work email me. Also characters seem to get lost when being sent to StrongEd, Edit and writable icons work fine though.
If a sample is less than 50 seconds long then the cue buttons move the position in the sample by half a second, if it is longer then the position is moved by 1% of the sample length.
Holding down Ctrl when clicking on a cue button will always move the position be half a second to allow fine movement on long samples. Holding down Shift will move the position by 0.1% on samples longer than 50 seconds for a slightly coarser control.
Clicking Adjust on the cue or start and end buttons will have the opposite effect of clicking Select.
Enlarging the window gives more details about the sample. Filename, type of sample eg Wave, sample format eg 8-bit signed linear, channels, mono or stereo, length in frames, frequency in Hertz and Play Time in seconds.
The Interpret As section allows samples of unknown type to be played, ie with filetypes RawSound or Data.
Queue window
============
This window shows the filenames of the samples that are in the queue.
To add a sample to the queue drag it to this window. A group of files may also be dragged into the window, all filetypes will be accepted except text files which are assumed to be queue lists and will be searched for sample path names. If you wish to load a sample with a text filetype then hold down shift when it is dropped into the queue window.
If, whilst dragging a sample file to the queue window, Ctrl is held down, and the file is dropped on an existing entry, then that sample will be inserted into the queue just before the entry it was dropped on. Note: This won't work is the queue is full.
Dragging a directory to any PlaySound window or the iconbar icon will recursively search for any filetypes which can be played by PlayIt and add them to the queue, this includes Data files.
It is possible to play samples from the queue by double clicking on their name.
Notes can also be added to each queue item, resize the window to see the Notes section.
To load a previously saved queue file drag the text file to the queue window.
Queue menu
----------
Delete sample 'number': This removes the sample 'number' from the menu, 'number' is the sample which was underneath where the menu was opened.
Annotate sample 'number': This opens the Annotation window for the sample 'number', a beep occurs if the sample if not a Wave file as none Wave files cannot be annotated.
Clear queue: This clears all the samples in the queue.
Loop queue: This will make the queue loop around, either by adding the current sample to the end of the queue if 'Keep queue' is not ticked or by starting from the beginning once all the samples have played if 'Keep queue' is ticked.
Keep queue: If ticked samples are not deleted from the queue when they start playing.
Continue queue: If not ticked after a sample has finished playing the next sample is no started. Either Adjust click on the Play button in the Control window or double click on the next sample you want to play.
Save queue: This saves a plain text file containing the filenames in the queue and any notes that have been added. To load a previously saved queue file drag the text file to the queue window.
Preferences window
==================
The icon bar actions can be changed using the first section of the preferences window, the second section changes the default sample type for raw samples.
The Auto Actions On Load section allows the play and queue windows to be opened on startup, and set whether looping is on or off by default.
Also if Set Volume is ticked, then the volume when Save is selected will be saved and set to the next load, if it is not ticked the volume will either be set to 100% (ie 127) if PlayIt is loaded by PlaySound or left at the current value if PlayIt is already loaded.
Queue defaults allows the default settings of the queue menu options to be set.
PlaySound now has the ability to load the entire sample into memory before playing, to enable this ensure Large buffers is selected. The maximum size of a large buffer can be set in megabytes. Also two options are provided to ensure there will still be some memory available after PlayIt has increased its' buffer size. Leave Next free will take as much memory as needed from the Free slot but leave everything in the Next slot, this allows easy control of the amount of memory not taken, see the Task Manager window for more details (click Select on the Task Manager icon which is at the far right of the iconbar). The number of megabytes in Min free will always be left. If Leave Next free is also ticked the combined size of memory will be left.
If there is not enough memory to allow the whole sample to be loaded according to the conditions imposed then the normal sized buffers will be used.
The options in PlayIt configuration allow two parts of PlayIt to be configured. Stop other sounds will make sure no other samples are played using PlayIt whilst a sample is already playing. So if you start a sample playing in PlaySound and an 'event' type sound, eg a New Mail chime, is sent to PlayIt it will be ignored. PlaySound will not itself be affected at it sends a stop command to PlayIt before opening a new sample.
The number in the Pause time icon is the length of time, in seconds, which PlaySound will pause for before loading the next entry in the queue, this allows a short break between playing the queue entries.
The Kill PlayIt on exit will RMKill PlayIt when PlaySound is quit if no other clients have registered themselves with PlayIt. This will save a bit of memory, and it will remove the buffers as well.
Annotation window
=================
This window lets you view all the text annotation items PlayIt understands, you may alter these and, if the file of the Wave format and not currently playing, click save to alter the wave file. You cannot click save when the sample is playing or paused, as the file is open and can't be written to.
Click on the up and down Queue buttons to move through the Wave files in the queue, if you haven't save any changes you have made they will be lost.
This feature uses AnnoWave by Rick Hudson.
Warning from the AnnoWave help file: Don't try it on your only copy of a file, it could go wrong, although with correctly formatted wave files it should be OK. See the AnnoWave Docs for more details.
Personally I've never lost a sample.
Errors
======
PlayIt has not been booted, please see the !Help file: This means either the computer hasn't been booted properly or !PlayIt isn't installed, check !Boot.Resources for the !PlayIt application, if it is not there try downloading a new copy from Rick Hudson's web site, see the credits section.
If you get an error click OK if you want to try to continue running the program or Cancel to quit the program, for example if you have not got enough free memory for the buffer size you have chosen an error will appear, clicking OK will try to resume the program and you can then reduce the buffer or free some memory and try again. However if you get an error such as Address exception if would probably be a good idea to click Cancel and quit, and then save all your work under new filenames etc, not that I've got any serious errors recently.
If the choices file becomes corrupted just delete it and the default values will be used, a new choices file will be saved only when Save is chosen from the Preferences window.
Please email me if you get errors that you think are my fault with lots of details, computer, OS, version of PlaySound, version of PlayIt (It should be in the info window, but if not press F12 and type '*help PlayIt' to find out), what caused it, whether it can be repeated etc.
Slightly technical bit about filetypes
======================================
When PlaySound is booted any filetypes which it can play, not including data, which aren't already claimed by another program are claimed by PlaySound.
In addition if the system variable <playsoundgrab> = TRUE then all those filetypes are claimed anyway.
To stop PlaySound claiming the filetypes that are already claimed just change the line
Set PlaySoundGrab TRUE
to
Set PlaySoundGrab FALSE
for more specific requirements comment out the lines referring to filetypes you don't want to be claimed.
Note this only works when PlaySound isn't loaded, once loaded it will accept any filetype it can play when they are double clicked on.
Altering the program
====================
Feel free to alter the program, but do not distribute an altered version. If you send me any improvements you've made I might include them in a future version.
I've crunched this version to save on memory whilst running. I've included the original files as well, if you don't want them just delete !RunImFull, DrWimp and !RunFull. To use the uncompressed version rename !Run to something else and !RunFull to !Run, this will use more memory and be slightly slower. If you wanted you could pass the files !RunImFull through StrongBS again to create a new !RunImage.
The most useful things to change are the number of files that can be queued, 77 by default, this can be changed by altering maxqueue%=77 in the !RunImage file. Note that only the first 77 files will be shown in the queue although the rest are stored in memory and will appear as the queue reduces in size.
The number of decimal places used in the time index icon can also be changed, most usefully from 0 to 1. Change indexdp% near the start of the program.
Also you may want to change the default sizes and positions of the various windows using a template editor, I've set it up for my 1024x768 desktop but it works quite well at other sizes.
If anyone wants to alter the Sprites file to look like the Sprites22 file please send me the finished version. I don't want to spend time doing this if no one will be using them. At the moment the Sprites22 file is used all the time, to use the Sprites file remove the REM from the IF FNwimp_getscreenres line near the beginning of the program.
Also if anyone wants to make a small filer sprite or alter the default sprite to look better in 16 colour modes please send me the finished version.
Copying
=======
Note as well as copying !PlaySound you must also copy !PlayIt from the !Boot.Resources directory if you want to give PlaySound to someone else.
The Complete and Possibly Even Accurate Chronicles of PlaySound est. 1998
Plays samples, loops, icon playing status doesn't return to normal after playing stops.
Version 1.10 28-Jan-1999 Released
Changed looping code as the new version of PlayIt changed the method of looping. Added volume control. Fixed Playing icon returning to normal.
Version 1.17 21-Mar-1999
Added Control window.
Version 1.18 02-Apr-1999
Improved Control window functionality. Fixed a few bugs.
Added ability to display the name text annotation instead of the filename if it exists.
Changed the wimp library DrWimp to Version 3.50.
Changed Control icons.
Version 1.20 06-Apr-1999
Added queue window and functionality.
Version 1.30 18-Apr-1999
Added loading of raw sample data filetyped Data (ffd) and RawSound (ed0) with user chosen type and frequency.
Added loading and saving of queue.
Version 1.31 21-Apr-1999
Fixed loading of queue (I was trapping all text loads, even double clicks!).
Changed sprites to private area instead of wimp area.
Changed PlaySound's loading of PlayIt to conform to the guidelines, basically check if it's already loaded, if it is then check if it's a compatible version and if not prompt whether to load in a compatible version. I've also checked whether the version PlaySound loads is compatible just in case.
Version 1.32 22-Apr-1999
Added Amplify button to Control window.
Version 1.33 22-Apr-1999
Altered !Boot and !Run files to claim filetypes not already claimed and optionally to claim all filetypes PlaySound can play.
Version 1.40 24-Apr-1999 Released, as are all versions from now on
Added Preferences window (Why are the shortest entries in the history always the most difficult?).
Changed name of Control window from Player window.
Temporarily stopped raw data files trying to get text information so they still play properly until a bug is fixed. As no information would ever be there this is probably an improvement.
Also fixed a probable/potential bug where I could be writing outside the area of memory I'd DIMed.
Changed PlayIt buffers to be Transient, ie they only exist whilst a file is playing, if Dynamic areas are being used, usually if you are running RiscOS 3.5 of greater. Be careful to leave enough memory for the buffers, 64k by default.
Version 1.42 28-Apr-1999
Added switching to Author field for two seconds if title field is clicked on.
Added switching to Time remaining if Index icon clicked, and switching back if clicked again.
Fixed rounding bug in conversion from seconds to minutes, seconds and fractions of a second.
Didn't update to new version of PlayIt as I left my disc at university, D'oh.
Internally now reading the first nine text annotation fields.
The correct menu entries are now ticked when the preferences are loaded.
Version 1.43 30-Apr-1999
Added Annotation window
Changed PlayIt version to 1.48 and added client registration (doesn't work yet)
Added ability to recursively search through directories for files PlayIt can play.
Version 1.44 01-May-1999
Whoops, wrote this version and then copied the old version over it and had to do it again, the help file was better as well.
Added changing of wave text annotations using the command line version of AnnoWave, but it doesn't work.
Added PlayIt version currently loaded in Info window.
Stopped PlaySound giving an error if PlayIt is not loaded when quitting.
Changed the way RawSound and Data files are loaded, first auto sample detect is tried, if that doesn't work then they are assumed to be raw data. This allows eg Sun Audio files filetyped as data to be played
Fixed bug which could sometimes cause the wrong frequency to be used when playing raw data.
Version 1.45 02-May-1999
Fixed the annotation saving, thanks Rick.
Changed 'Shrink PlayIt buffers on exit' to 'Kill PlayIt on exit'
Now uses version 1.49 of PlayIt and uses the client registration system, if PlaySound started PlayIt and no other programs have registered with PlayIt and the 'Kill PlayIt on exit' preferences icon is ticked, then PlayIt is killed when PlaySound is quit.
Changed DrWimp to version 3.51, should now take less processor time when nulls are turned off, ie when not playing samples.
Version 1.46 03-May-1999
Added Set Buffer to Preferences window.
Made directory scanning work correctly, it would only do 77 files per directory before.
Version 1.47 04-May-1999
Added Pause time between queue entries.
Fixed setting volume to nothing not changing volume.
Added PlayIt 1.49 to the distribution archive, forgot it in version 1.45.
If the choices file is too short, ie you are trying to use an older version then PlaySound will automatically save a new choices file with the default values. I thought this would be easier than having to delete the old one yourself.
Version 1.48 05-May-1999
Stopped claiming double clicks on data files.
Fixed problem with Interpret as frequency.
Corrected the dates in the help file and program.
Fixed a problem with the filename in the Annotation window.
Disabled annotation save button when sample is not stopped to prevent 'This file is already open' error.
Version 1.49 06-May-1999
Now uses version 1.50 of PlayIt so the ADPCM position bug is fixed.
Altered the adding PlayIt version number to work with version numbers ending in 0
Turned on transient buffers again, I forgot I'd turned them off to test something.
Improved trapping of some common errors including a full disc, the choices file being open, and not enough memory for the PlayIt buffer.
PlaySound should now almost always close any files it opens.
Made menu clicks on icons in the Interpret Unknown As preferences section work.
Version 1.50 08-May-1999 Caught up with PlayIt version number :-)
Changed the annotation window so the annotations aren't updated every time play is clicked on, this means you can now stop and play the sample whilst typing in the annotations.
Changed the wimpslot back to 200k, forgot to change it last time before releasing it.
Added a nicer error for annotations being too long.
Version 1.51 10-May-1999
Changed AnnoWave to version 1.04, it now understands the last three fields in the annotation window.
Changed all necessary occurrences of <PlaySound$Dir> to a variable that is evaluated at the start of the program, so you should be able to run two copies of PlaySound at once and save the choices separately, if you really want to.
Version 1.52 11-May-1999
Changed the loading of PlayIt so if a version of PlayIt is loaded that is older but still compatible with PlaySound is loaded the option is given to continue using that version.
If a choices file is present but corrupt the option will now be given to just use the default choices or write a new choices file with the default choices.
Altered the way annotations are sent, now each field is send separately so the fields can now each be 63 characters long.
Version 1.53 15-May-1999
Changed the way the queue buttons work.
Removed the pausing before moving the sample position as PlayIt does that automatically since version 1.47
Fixed a bug involving user chosen frame rates, thanks to Robert Purchase for pointing that one out.
Removed the =Source item from the menu as it didn't do anything except mess other bits up!
Added deleting of queue items.
Added ticks to volume and buffer menus, you have no idea how hard this was!
Version 1.54 18-May-1999
Made the way annotations are sent more efficient, now as many fields as possible are collated together, until the command line would exceed 250 characters before sending them to AnnoWave.
Version 1.55 24-May-1999
Added the current PlayIt driver to the info window and moved the PlayIt version to the new field.
Version 1.56 29-May-1999
If, whilst dragging a sample file to the queue window, Ctrl is held down, and the icon is dropped on an existing entry then that sample will be inserted into the queue before the entry it was dropped on. Note: This won't work is the queue is full.
Internal changes in the queue processing to allow for the above feature and eventually drag and drop queue entries.
Changed the order of the menu entries again.
The hourglass is turned on when searching through directories.
Version 1.57 10-Jun-1999
Added ability to play CDtrack files from AudioFS2.
Version 1.58 12-Jun-1999
Now using wimp_pollidle with 0.1 secs for samples >=60 seconds long and 0.05 for
samples <60 seconds long. I had to alter DrWimp to use a real variable for the idle time in seconds for this to work.
Version 1.59 13-Jun-1999
Now uses PlayIt 1.52 which can auto detect CDAudio files.
Added CDAudio to the Type field.
I hope this works as I can't get AudioFS2 to work ATM, I keep getting Data in wrong mode or SLCD timeouts.
Altered DrWimp so small slider values work.
Now loads files of any file type if they are dragged onto a window except text files, which are assumed to be queue lists and must be dragged to the queue window. First the file is tried using auto format detect and if the format can't be detected it is played as raw data.
Version 1.60 15-Jun-1999
Altered the Type field to show the PlayIt type returned if it's unknown.
Altered DrWimp to use the new Null code when using Wimp_PollIdle.
Position slider now goes to very end if sample finishes.
Version 1.61 23-Jun-1999
Tweaked the templates so larger desktop fonts, like system, fit better.
Now uses PlayIt 1.53 which has some small bugs fixed, VOC files return the correct type, files >512MB work, and there has been a slight improvement to RIFF header parsing.
Altered DrWimp so pollidles now work properly, there was a mistake in the PRM! Now there should be 10 null polls a second for samples >=60secs and 20 for samples <60 secs. Also changed the variables passed to be centiseconds and integers.
Altered the choices file to use a system variable that is set up in the !Run file. There are commented lines which will allow you to save the choices in the !Boot structure if you want.
Added a bit more error checking, PlaySound should now automatically detect corruption of the choices file and save a new default copy. Also if you accidentally alter the access attributes it should notice but won't alter them back.
The program is now crunched and therefore only takes up a 100k wimp slot, if you get any out of memory errors please tell me.
Version 1.62 01-Jul-1999
Fixed a bug which only showed up after crunching had occurred, a misplaced ELSE was to blame.
When playing or paused PlaySound now alters the volume slider if the volume is changed by something other than PlaySound. Load 2 copies of PlaySound and be amazed, although don't try using two copies at once as they will get very confused.
The main menu and info box now work correctly when no PlayIt driver is installed.
Version 1.63 02-Jul-1999
Updated PlayIt to 1.54
Version 1.64 11-Jul-1999
Now uses PlayIt 1.55 beta which can be installed as a system wide resource, either in a Risc PC style boot structure in the Resources directory, or if you don't have one make sure it is booted before PlaySound, eg put !PlayIt in the same directory as !PlaySound.
PlayIt 1.55 has a new facility to report changes in it's status to frontends. This means altering PlayIt's status via another program, or a command line, then PlaySound's status will be updated.
Queue looping added, when a file has finished playing and a new one is fetched from the queue the old file is added to the end of the queue.
Fixed bug that stopped a full queue being cleared properly.
Version 1.65 22-Jul-1999
Now uses the release version of PlayIt 1.55.
Altered DrWimp slightly to fix a bug that I introduced that caused the first menu opened to give an error if the menu option was selected with adjust and it was opened by clicking on an icon not by clicking menu.
When the Title field in the control window is clicked on to show the Artist and then clicked again to go back to the Title it now doesn't change to show the Artist field again.
Changed the Author Unknown to be Artist Unknown to correspond with the Annotation field titles.
Version 1.66 23-Jul-1999
Interesting fact of the version: Over 700 films have been filmed in 1.66:1 ratio.
Now doesn't use transient areas as there is a bug in PlayIt 1.55 and before that causes Wimp_GetRectangle not called correctly errors in other programs.
Fixed a bug that stopped the next queue item being started is the last one was ended by unpausing the sample when it had been right at the end, probably because the move to end of sample button had ben clicked whilst the sample was paused.
Now accepts image files such as zip files as directories and searches them.
Version 1.67 25-Jul-1999
Fixed very small problem with the button (and internal) status not updating correctly when two PlayIt event were issued a small time apart.
When an unknown error occurs the queue window is now updated to reflect the fact that the queue has been cleared.
Version 1.68 27-Jul-1999
Now uses PlayIt version 1.56.
Removed debugging code left in version 1.67, whoops!
Made the out of memory error work properly.
Added a check for correct registering of pollword with PlayIt.
Fixed turning off looping bug.
Now checks for PlayIt over running it's looping when the sample is smaller than the buffer and sends a stop command.
Version 1.69 12-Aug-1999
Fixed problems with ticks in the volume submenu and the Loop item.
Added PROCwimp_menutickon and PROCwimp_menutickoff to DrWimp.
Removed check for PlayIt over running as it interferes with any other samples played via PlayIt whilst Playsound is loaded.
Version 1.70 15-Aug-1999 Announced on comp.sys.acorn.announce on 10-Sep-1999
Fixed problem with ticks in the buffer submenu.
Version 1.71 10-Sep-1999 Released 12 hours after the csa.announce message arrived :-)
Fixed problems with very small files (0-3 bytes) causing divide by zero errors.
Stopped the flickering of the iconbar icon when the icon wasn't actually changing, ie when playing and clicking of the position slider.
Fixed a problem with files of filetype text containing characters OS_File didn't like.
Improved error checking if you rename !PlaySound and try to save the preferences.
Thanks to GUS of !Freeze fame for pointing these problems out.
Version 1.72 14-Sep-1999 (Where is the moon?)
Now using DrWimp 3.53, with my alterations.
Ctrl-clicking on pause will write the current time index to the caret position, useful for timing where cuts should be made using programs such as CDPrep.
Made the number of decimal places in the index time icon easily changeable in the program.
Holding down Ctrl when clicking on a cue button will always move the position be half a second to allow fine movement on long samples. Holding down Shift will move the position by 0.1% for a slightly coarser control.
Clicking Adjust on the cue or start and end buttons will have the opposite effect of clicking Select.
Thanks to Michael Rozdoba for the suggestions.
Version 1.73 08-Nov-1999
Ctrl-clicking on Play whilst Stopped will advance to the next sample in the queue.
Any sample in the queue can be played by double clicking on it.
New queue options: Keep and Continue queue.
Makes PlayIt buffers as big as the sample playing if enough memory is free.
Can load files filetyped as text, if loading into the queue hold down shift so it isn't interpreted as a queue list.
Added support for new formats eg ARMovie.
Annotation window can now always be opened but only saved if the file is a Wave file and not the file currently playing or paused. (Again, you have no idea how hard this was!)
If a sample format (eg Wave) is recognised by PlayIt but the sub format (eg 16bit signed linear, Audio MPEG) cannot be played then a message is displayed and the next sample in the queue is loaded, if there is one. A different message is displayed if the ARMovie does not contain a sound track.
Lots of new options in Preferences, setting of queue defaults, control of large buffers, 2 configuration options for PlayIt, and an option to not stop a sample playing when PlaySound is quit.
Fixed a bug that stopped the Interpret Unknown As preferences being carried through to the Control window which caused the menu options there to become confused.
Altered minplayitversion% to 160 as PlayIt 1.60 is needed for the pre-emption to work.
Added PlayIt_Stop before PlayIt_Open to stop pre-emption affecting Playsound.
Version 1.74 09-Nov-1999
Slightly altered the display in the type field.
Added check to discard text files that are longer than 300*maxqueue% bytes long.
To Do
=====
Improve the queueing system. (I added the 'add at any point in the queue' feature, hope to add drag and drop for queue items as soon as DrWimp supports them)
Improve trapping of errors.
Add anything other people ask for, if I want to.
Possible additions, only if someone asks for them (or I get bored):
Balance Control, Playback limits.
Dr Wimp
=======
As Dr Wimp is written in Basic it can easily be altered if you need new features or find a bug.
I have changed DrWimp 3.53 to allow Wimp_PollIdle times to be in centiseconds rather than seconds, added support for wimp reason code 13, correct opening of menus from icons and fixed the writable icon bug. The changes I've made have been passed on to Ray Favre and may be included in a later release. Check his web site for more details and to download the full DrWimp package: http://www.argonet.co.uk/users/rayfavre/
I have also altered the function wimp_getleafname to alter the string returned when the leaf name is ARMovie, as used by MovieFS.
Known Bugs
==========
PlayIt doesn't recognise that looping has been set if the sample is playing and near the end. Also if the sample is smaller than the buffer and looping is turned off then the sample may play for a few more times before stopping. This was fixed in PlaySound in version 1.68 but has been removed in 1.69 as it interferes with any other samples being played via PlayIt.
PlaySound still updates it's display if a sample if played from another program using PlayIt.
Unknown Bugs
============
Well I don't know about them, you tell me.
Credits (or should that be MovieDB? ;-) )
=========================================
Thanks go to me for writing it, Rick Hudson for writing PlayIt (and MovieDB and Thump and CBase and SoundCon) for more details see the PlayIt homepage at http://members.xoom.com/rick_hudson/software/index.html Newer versions of PlayIt should work and you can either load yourself before running PlaySound or copy the PlayIt module into !PlaySound.PlayIt To make sure the new version is loaded change the value of currentversion% near the top of the !RunImage file and RMKill the old version of PlayIt.
Also thanks to Rick for ideas to put in the program and for fixing the bugs in PlayIt as I found them.
AnnoWave is also written by Rick Hudson and the command line version is included in this distribution, for the full version see the Playit page of Rick's web site. Thanks to Rick for adding the command line options to AnnoWave.
Thanks to Andrew Ayre for writing DrWimp and Stuart Halliday for writing PlaySnd which started me off writing PlaySound, it probably gave me a few tips for the name as well ;-).
Thanks to Mohsen Alshayef for writing StrongBS which I used to crunch the program. StrongBS can probably be found at http://www.geocities.com/SiliconValley/Heights/7423
Thanks to my brother James for being a human spell checker, all mistakes in this file are now his fault ;-)
I'd also like to thank the universe for existing, Guttorm Vik for writing StrongEd, and J. Michael Straczynski for creating Babylon 5.
License Conditions
==================
PlaySound is freeware, ie the parts I wrote are copyright Mark Scholes, but you can give it away, unaltered, to other people.
If you use it please email me and tell me, if you find any bugs please email me, I might even be able to fix them. If you want to send me money please do, email me for my address (well it was worth a try).
My email address is: markscholes@scientist.com
Other software included in this distribution:
PlayIt is freeware and copyright Rick Hudson
The PlayIt drivers are freeware and copyright their authors
AnnoWave is freeware and copyright Rick Hudson
DrWimp is copyright Andrew Ayre and the license conditions are at the top of the DrWimp file
Boring Disclaimer
=================
PlaySound is distributed on an “As Is” basis, without warranty. No liability can be accepted for any consequential loss or damage, however caused, arising from the use of this program.
Of course if you find a problem I'd be interested in hearing about it.
Slightly Less Boring Version Of The Disclaimer
==============================================
It's not my fault.
THE END
And now for those of you who have been archiving this ISN special documentary, the people responsible:
Starring (in alphabetical order)
Mark Scholes
Produced, Directed and Written by
Mark Scholes
A Mark Scholes Production
in association with
Mark Scholes
2nd 2nd assistant director: Mark Scholes
Catering: Mark Scholes
2nd 2nd assistant accountant: Mark Scholes
My carnivorous plants? Don't ask.
Wait, worry, who cares. This is who we are. The time is near. May 5th 2000.
Funding for this program was made possible with grants from the Anla'shok memorial fund (unfortunately they don't exist so I wasn't paid anything :-( (they don't exist, really? I don't believe you (Oh oh, nested brackets))).