home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
disk
/
cdrom
/
yacdp
/
yacdp.doc
< prev
next >
Wrap
Text File
|
1995-02-27
|
17KB
|
450 lines
__ _____ ____ ____ ____ _ _
\ \ / / _ \ / ___| _ \| _ \ / | / |
\ 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 SCSI-2 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 (95 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) or RAW (*)
(*) 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 should edit the tooltypes:
TOOLPRI [0]
The taskpriority of YACDP (must be a number from -128 to 127).
If you often want to use the "via SCSI" mode, I recommend a
taskpriority of 1
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.
Use "%S" if your editor expects AmigaDOS wildcards
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
VIASCSI [NO]
Content of "via SCSI" at startup:
YES = checked
NO = not checked
AUDIOCHANNELS [----]
If the "via SCSI" mode is used the playback is done by the Amiga which
has four audio channels (two for the left and two for the right).
The default is to allocate any left-right pair. Normally there should be
no reason to change this, but you can. The four chars mean:
XXXX
Amiga's left _____||||_____ Amiga's left
channel 0 || channel 1
/ \
Amiga's right< >Amiga's right
channel 0 channel 1
Where X may be: - = don't use
L = use for left audio data
R = use for right audio data
Note: YACDP currently does no stereo playback, i.e. there is no difference
between L and R. But this may change in future versions.
For example to use all channels you would write "AUDIOCHANNELS=LRRL".
AMIGAVOL [64]
Start volume for Amiga
CDROMVOL [255]
Start volume for CD-ROM
AUTOSTART []
Start playback on track 1 whenever a new CD is inserted
AUTOEJECT []
Only works in conjunction with AUTOSTART. The CD is ejected when
the end of the CD is reached
ALTERNATETIME []
Show the time rather in "00:00:00" format than in "0h 0m 0s" format
NOVIASCSI []
Hide menu and button that can only be used by CD-ROM's which can
send audio data over the SCSI bus
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
¯¯¯¯¯¯¯
ICON
¯¯¯¯
a SCSI cable with a the program couldn't connect to your CD-ROM.
flashing question-mark You should have seen a requester with more
detailed information. Play around with the
parameters in the menu "SCSI"
a CD with a flashing the program found a CD-ROM, but you didn't
question-mark insert a CD yet
a CD with 0's and 1's you inserted a CD, but it's a data CD
on it
a CD with notes on it you inserted an audio CD
BUTTONS
¯¯¯¯¯¯¯
For most funktions you will obviously have to put a audio CD into your
CD-ROM or the gadgets will stay ghosted.
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)
^ Eject 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 (at least for 68000er's), 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.
The slider titled with "Vol" let's you control the volume for the CD-ROM
and the Amiga depending on the state of the "via SCSI"-checkbox.
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.
"SCSI" All menuitems change the value of the corresponding
tooltype.
"Filter" The condition of the lowpass filter (defaults to off).
"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)
KEYBOARD SHORTCUTS
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
0..9 : Start playback at entered track. If the track consists of two
digits the second digit must be entered within a second. If
you enter more than two digits the last is shifted out, e.g.
if you type 5 - 1 - 6 the track 16 will be played.
G : Same as "> " button
P : Same as "||" button
S or
<RETURN> : Same as " " button
<Cursor
Down > : Same as "|<" button
<Cursor
Up > : Same as ">|" button
<Cursor
Left > : Same as "<<" button (also same qualifier)
<Cursor
Right > : Same as ">>" button (also same qualifier)
< : Same as "««" button
> : Same as "»»" button
^ : Same as "^ " button
<HELP> : Same as if you pick the menu item "About CD"
SAVE AUDIO AS IFF/RAW
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
COPYRIGHT
¯¯¯¯¯¯¯¯¯
Though you own the CD you do not own the rights for the CD. Especially the
RAW option enables you to copy CD's without loss of data. YOU are
responsible that no existing rights are violated.
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.
o RAW: Do absolute no conversion (the file created is simply a dump of the
data present on the CD, i.e. the file is not in IFF format)
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.
COMPATIBLITY
¯¯¯¯¯¯¯¯¯¯¯¯
Following drives are known to work with YACDP:
Vendor | Product | Supports "via SCSI"
--------------------------+----------------------+---------------------
Pioneer Electronic Corp. | CD-ROM DRM-604X | no
Sony Corporation Japan | CD-ROM CDU-561 | yes
| CD-ROM CDU-8003A | yes
Texel | CD-ROM DM-XX24 K | no
Toshiba Japan | CD-ROM XM-3401TA | yes
| CD-ROM XM-4101TA | yes
TO DO
¯¯¯¯¯
o other playback modes (random and program), A-B range play, repeat button,
cuing
o Ability to save CD specific settings such as volume, favourite tracks,
"via SCSI", ...
o Stero playback in "via SCSI" mode
o AREXX-port
o add an option to replace buttons by listview
o find optimum "Scale Sample" value
o jog-shuttle-wheel
o fontsensitive GUI
HOW TO SUPPORT YACDP
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
o It would be nice if you could write me about your success/problems
with the program, especially if your CD-ROM isn't yet in the
COMPATIBLITY list. Please include information about your Amiga model
and the output of the program TestCDROM (the program only works in
the CLI and accepts the parameters DEVICE, BOARD, UNIT, LUN which
are the same as the tooltypes of YACDP), i.e. type something like
"TestCDROM >T:CDROM.log DEVICE=scsi.device BOARD=0 UNIT=1 LUN=0"
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, aside those
already present in the "TO DO" list.
Send mail to
Frank Würkner
Georgenschwaigstr. 22
D-80807 München
Germany
or
E-Mail: wuerkner@informatik.tu-muenchen.de
THANKS
¯¯¯¯¯¯
Many thanks to following persons which helped to improve YACDP
DarkStar
Eric Bachfischer
James Cooper
Lance Kibblewhite
Mario Kemper
Marquart Franz
Stefan Kaintoch
Urs Utzinger-Brunner
HISTORY
¯¯¯¯¯¯¯
1.0
¯¯¯
first release
1.1
¯¯¯
o removed a bug that caused some CD-ROM's to report
"INVALID FIELD IN CDB" when starting audio playback
o "via SCSI" now works for Toshiba drives (of course only those
who support to send audio as digital data over the SCSI bus)
o most buttons now have keyboard shortcuts
o volume now adjustable
o new tooltype AMIGAVOL and CDROMVOL to set the start volume
o IFF format now more correct
o removed SCSI error text that didn't belong to CD-ROM's
o updated vendor identification list
o device, board, unit, LUN now changeable within the program
and therefore invalid start parameter don't quit the program
anymore
o tooltype EDITOR now also accepts %S for editors that expect
AmigaDOS wildcards
o new tooltype VIASCSI to allow "via SCSI" to be checked at startup
o new tooltype AUDIOCHANNELS to specify which of the four audio
channels are used
o new tooltype AUTOSTART to start playback whenever a CD is inserted
o new tooltype AUTOEJECT to eject CD at end of playback
o new tooltype ALTERNATETIME (time in 00:00:00 format)
o new tooltype NOVIASCSI to hide menu and button that can only be
used by CD-ROM's which are able to send audio data over the SCSI bus
o windows now open activated
o Now included the command TestCDROM to simplify (bug) reports