__ _____ ____ ____ ____ _ ___ \ \ / / _ \ / ___| _ \| _ \ / | / _ \ \ V / |_| | | | | | | |_) | | || | | | | || _ | |___| |_| | __/ | || |_| | |_||_| |_|\____|____/|_| |_(_)___/ Yet Another CD Player © 1994 by Frank Würkner All Rights Reserved COPYRIGHT NOTE ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ The program YACDP is copyrighted © 1994 by Frank Würkner. All rights reserved. YACDP is FREEWARE. This program may be freely distributed as long as - the executable and documentation remain unchanged and are included in the distribution - No other charge is made than to cover time and copying costs DISCLAIMER ¯¯¯¯¯¯¯¯¯¯ No warranties of any kind are made as to the functionality of this program. You are using it ENTIRE at your own risk. SYSTEM REQUIREMENTS ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ o OS2.0 or higher o reqtools.library © 1991-1994 by Nico François (thanks Nico!) o a SCSI bus adapter capable of sending SCSI direct commands o a CD-ROM which can read CD-DA ("Red Book") encoded discs (i.e. you should see a headphone jack on the front panel) o optionally your CD-ROM should be capable of sending the audio as 16-bit digital data over the SCSI bus FEATURES ¯¯¯¯¯¯¯¯ o GUI that let's you access all basic functions of a normal CD-Player o is a Commodity o can display songnames and CD title (of course you once have to enter the names) o doesn't wastes memory o SCSI errors are displayed as text (190 known) o realtime playback of audio on your Amiga, even on 68000 machines (*) (achieved by highly optimised assembler routines) o ability to save (parts of) songs as IFF (8SVX) (*) (*) CD-ROM must be able to send audio over SCSI bus (see SYSTEM REQUIREMENTS) GETTING STARTED ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ If you often use audio CD's you might like to put the program into the WBStartup drawer. But any other place is fine too. But before the first use you MUST edit the tooltypes: CX_PRIORITY [0] The priority for the commodity (must be a number from -128 to 127) CX_POPUP [YES] YES = show GUI when started NO = don't show GUI CX_POPKEY [CTRL SHIFT ALT C] Hotkey to bring up the GUI DEVICE [scsi.device] Your SCSI device (caution: the devicename is casesensitive) BOARD [0] Controller board number (0 to 7), normally 0 UNIT [1] SCSI target ID (0 to 7) LUN [0] SCSI logical unit (0 to 7), normally 0 SONGDIR [PROGDIR:Songs/] Valid directory where to store the songfiles EDITOR [C:Ed %s] Your favorite texteditor which will be used if you edit the songnames IFFDIR [RAM:] Default directory where the IFF files are saved WINDOWX [0] Windows x position WINDOWY [11] Windows y position ZIPWINDOWX [0] x position of the zipped window ZIPWINDOWY [11] y position of the zipped window CHIPMEM | FASTMEM | 24BITDMAMEM [any] If any of the keywords is given the buffer for audio playback will be either chipmemory, fastmemory or 24Bit-DMA-memory THE GUI ¯¯¯¯¯¯¯ For most funktions you will obviously have to put a audio CD into your CD-ROM or the gadgets will stay ghosted. BUTTONS ¯¯¯¯¯¯¯ 1-39 Clicking on one of them will start the audio replay at this track (song). If your CD has more than 39 tracks you can use the "> " button on lower right of the window, which will bring up a requester where you can enter your desired track. > If no playback is in progress it will start at track 1. If the playback is paused it will start again. If the CD is currently playing, it will restart the playback at the begin of the current track. || (Un)pause playback [ ] stop playback |< Start playback of previous track, not possible for 1st track :-) >| Start playback of next track, not possible if you are already at the last track >> Skip n seconds back \ qualifier | n << Skip n seconds forward / ------------------- SHIFT | 10 secs none | 20 secs ALT | 40 secs CTRL | 60 secs «« Skip to previous index »» Skip to next index («« and »» only work if not in "via SCSI" mode) ^ Ejact the CD If the "via SCSI" is checked the audio data will be send over the SCSI bus, converted and played by the audio device. This will result in a heavy CPU load, so you might not be able to "multitask" much or the playback is not continous anymore. If not checked the playback is done by the CD-ROM. Only the GUI is updated every second. MENU ¯¯¯¯ "About Program" Display a requester about the program (what surprise) "About CD-ROM" Display a requester about the CD-ROM including vendor, the productname and the revision "About CD" Display a requester with the songnames (if present) and the playing time of each song "Edit Songs" Start the texteditor so you can enter the songnames. The filname is either the Universal-Product-Code (bar code) of the CD or if not available an identifier built with the number of tracks, the total playing time and the playing time of the first track. "Update" You may need this if you change something in the corresponding songfile of the CD or the data displayed about the CD isn't correct. "Hide" Hide the GUI "Quit" Quit the program "Release Device" If you first play back audio data, some additional buffers and soundchannels of the sound device are allocated. Use this if you want the program to give them back. "Save Audio" Show a window where you can enter the parameters which part of the CD you want to save as IFF. (see below) SAVE AUDIO AS IFF ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ BACKGROUND ¯¯¯¯¯¯¯¯¯¯ CD-DA discs have their audio data stored in blocks of 2352 bytes plus additional information each containing 588 signed 16-bit numbers for the left and the right channel. The samplingrate of an audio CD is 44100, which means 44100 signed 16-bit numbers for each channel reconstruct the original waveform for one second. So 75 (=44100/588) blocks on a CD-DA discs make one second. For example 1 minute in CD quality has a total size of 75*2352*60 = 10584000 (about 10MB). The Amiga hardware (currently ???) can play back signed 8-bit numbers in a maximum samplingrate of 28867. CONVERTING AUDIO ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ So the audio data send by the CD-ROM has to be reduced, but how? The program let's you controll the conversion by the o Samplingrate: 22050 ==> 1/2 original samplingrate 14700 ==> 1/3 " " 11025 ==> 1/4 " " 8820 ==> 1/5 " " ... Reducing the samplingrate beyond 11025 will result in very pure quality. o Channels: Left & Right ==> the data for the left and the right channel is combined. Right ==> only the audio data for the right channel is taken into account Left ==> only the audio data for the left channel is taken into account o Scale samples: Sometimes the audio data will sound rather low, so you can scale them by any amount, especialy by a power of 2. Try 2, 4, 8, 16. Example: Let's say you have choosen a samplingrate of 14700 and "Left & Right" and scale the samples by 2, how would this input be reduced: L R L R L R -9785, 456, -23764, 135, -32768, -343 o First all samples will be summed up: -66069 o The divisor is (256*2*3) / 2 = 768 ^ ^ ^ ^ 16-bit to 8-bit | | scale samples with 2 left & right channel | 14700, i.e. 1/3 o The final output would be -66069 / 768 = -86 Note: If you had choosen to scale with 4 the result would have been -172, which doesn't fit in 8-bit and therefore would have been reduced to -128 (As well as numbers greater than 127 will be reduced to 127). If this case happens too often your audio data will sound pretty ugly. o The scrollers on the left side represent the start track the relative time in this track and finally the absolute blocks (remember 1 second makes 75 blocks?). The scrollers on the right side represent the same for the end position. o "PLAY START" plays 10 seconds from your current start position "PLAY END" plays 10 seconds before your current end position "PLAY ALL" plays all of your selected audio data "STOP" stop any audio playback Hit "OK" to proceed and a filerequster let's you select the filename. "CANCEL" brings you back to the main window. If all goes fine you should see a little window showing the success of the conversion. Press ESC or CTRL-C in the window if you want to abort the conversion. HOW TO SUPPORT YACDP ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ o It would be nice if you could write me about your success/problems with the program. Please include information about your Amiga model, SCSI device, which CD-ROM you are using and version of YACDP. o If you know your CD-ROM to be capable of sending audio data over the SCSI bus, but YACDP doesn't yet support your CD-ROM you might ask the vendor about how to access audio data and send the information to me. I will try to suport your CD-ROM at the next release. o If you entered the songnames of some CD's you should send the files to me (best would be compressed with lha and uuencoded to my email address) so I can include them with the next release. o Tell me what features you would like to see in YACDP. I thought of adding an AREXX-port, other playback modes (such as random or program), ... Send mail to Frank Würkner Georgenschwaigstr. 22 D-80807 München Germany or E-Mail: wuerkner@informatik.tu-muenchen.de