AminetAminet
Search:
84520 packages online
About
Recent
Browse
Search
Upload
Setup
Services

mus/play/finnpeg.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:V1.3, a mpega.library frontend w/ cyclic buffering
Author:tumu at kempele.fi (Tuomas Lukinmaa)
Uploader:tumu kempele fi (Tuomas Lukinmaa)
Type:mus/play
Version:1.3
Requires:dev/c/AsyncIO.lha, KS 39+
Architecture:m68k-amigaos
Date:1998-10-07
Download:http://aminet.net/mus/play/finnpeg.lha - View contents
Readme:http://aminet.net/mus/play/finnpeg.readme
Downloads:864

Introduction and legal mush:
----------------------------

Finnpeg is an highly optimized assembly written frontend for mpega.library
using cyclic buffering, asyncio.library and AHI audio system.

Finnpeg uses the device-interface in AHI. Please look notes section below.

Finnpeg is a postcardware product. Postcardware is a form of freeware where
you should send me a postcard if you are using finnpeg regularly.

Finnpeg has been tested with Enforcer, Mungwall and Segtracker.

Finnpeg is Copyrighted © 1998 by Tuomas Lukinmaa. All rights reserved.

mpega.library is Copyrighted © Stephane Tavenard.
AHI audio system is Copyrighted © by Martin Blom.
AsyncIO library is Copyrighted © by Magnus Holmgren and Martin Taillefer.
All rights reserved by their respective authors.

          THERE IS   NO  WARRANTY  FOR  THE  PROGRAMS,  TO  THE  EXTENT
       PERMITTED  BY  APPLICABLE  LAW.  EXCEPT WHEN OTHERWISE STATED IN
       WRITING  THE  COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
       PROGRAMS  "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
       OR   IMPLIED,   INCLUDING,  BUT  NOT  LIMITED  TO,  THE  IMPLIED
       WARRANTIES  OF  MERCHANTABILITY  AND  FITNESS  FOR  A PARTICULAR
       PURPOSE.   THE  ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF
       THE  PROGRAMS IS WITH YOU.  SHOULD THE PROGRAMS PROVE DEFECTIVE,
       YOU  ASSUME  THE  COST  OF  ALL  NECESSARY  SERVICING, REPAIR OR
       CORRECTION.

          IN NO  EVENT  UNLESS  REQUIRED BY APPLICABLE LAW OR AGREED TO
       IN  WRITING  WILL  ANY  COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO
       MAY  REDISTRIBUTE  THE PROGRAMS AS PERMITTED ABOVE, BE LIABLE TO
       YOU  FOR  DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
       CONSEQUENTIAL  DAMAGES  ARISING  OUT  OF THE USE OR INABILITY TO
       USE  THE  PROGRAMS (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
       DATA  BEING  RENDERED  INACCURATE  OR LOSSES SUSTAINED BY YOU OR
       THIRD  PARTIES  OR A FAILURE OF THE PROGRAMS TO OPERATE WITH ANY
       OTHER  PROGRAMS),  EVEN  IF  SUCH HOLDER OR OTHER PARTY HAS BEEN
       ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Requirements:
-------------

AmigaOS 3.0 (KS39) or better. (Actually finnpeg requires only 2.04 (KS37)
but mpega.library requires KS39.)
MC68020 or better with or without a FPU. (This is again a mpega.library
requirement, finnpeg requires only MC68000 or better.)
Any version of AsyncIO.library but newest recommended.
AHI audio system version 4 or better.

Usage:
------

NAME/A,DIV=DIVISOR/N,QTY=QUALITY/N,MONO/S,UNIT/N/K,BUF=BUFFERS/N,
FPB=FRAMESPERBUFFER/N,IOBUF=IOBUFFERS/N,QUIET/S

NAME is abbreviation for filename to be played.
No defaults here. =)

DIV or DIVISOR is divisor value given to mpega.library which is one of
the following: 1=play with full sampling rate, 2=play with half sampling
rate and 4=play with quarter sampling rate.
Default is playing with full sampling rate.

Examples: You have a layer 3-file with sampling rate of 44100 khz and you
give DIV=2 parameter to finnpeg, so finnpeg plays it with 22050 khz.
You have a layer 3-file with sampling rate of 22050 khz and you
give DIV=2 parameter to finnpeg, so finnpeg plays it with 11025 khz.

QTY or QUALITY is quality value gigen to mpega.library. Ranges from
0 (worst) to 2 (best).
Default is best quality.

MONO activates force mono switch in mpega.library which causes it
to decode stream in mono (only left channel decoded).
Finnpeg also plays the stream with mono from both speakers.
Playing in mono also divides the buffer memory requirements in half.
Default is to decode and play in stereo. Please look notes section below.

UNIT is an AHI option to give the unit number which to open. In theory
you could play upto 4 streams at the same time (if your Amiga has
CPU power). =) Ranges from 0 (default) to 3.

BUF or BUFFERS specify how many cyclic buffer slots to reserve.
BUFFERS is multiplied with FRAMESPERBUFFER value.
Default is 16.

FPB or FRAMESPERBUFFER specify how many mpega.library frames are
allocated for play in one go. One full frame is 1152 words.
FPB number of full frames are filled before playing buffer with AHI.
Default is 8. If using 060/PPC, try 4 or even 2 to have better sync.

Total memory usage formula in bytes:

	for tables: BUFFERS*(4*2+4)+4
	for buffers: 1152*2*FPB*BUFFERS [*2 if playing in stereo]

IOBUF or IOBUFFERS is an AsyncIO library option which specifies how many
kilobytes to use in IO buffers. AsyncIO divides this value in half to
make use of double buffered reads.

QUIET instructs finnpeg not to print startup banner.
Default is to print the banner. =)

Examples:

Plays stream with DIV=2, QUALITY=1 and MONO. Also plays 16 frames in one go.
I use these options playing streams with my machine which is 030/50.
finnpeg "CD0:mp3/Windows95 Sucks.mp3" 2 1 mono fpb=16

Plays stream with DIV=2, QUALITY=2 and STEREO. (suitable for 040s)
finnpeg "CD0:mp3/Queen - Bohemian Rhapsody" 2 2

Plays stream with full quality, no divisor and stereo. Also uses about
5MB total cyclic buffer with 36KB audio buffers for each channel.
finnpeg "CD0:mp3/Ren&Stimpy/happyjoy.mp3" FPB=32 BUF=32

Notes:
------
AHI's 8 bit modes seem to cause lot of background static because of
mixing 16 bit audio data to 8 bits. Use 14 bit or better modes
(like calibrated ones) for best quality.

Remember to set the channels slider at least to 2 in AHI settings
if playing in stereo, otherwise audio will loop strangely. It is a
restriction caused by AHI.

If using DIV=2 or even DIV=4 parameter, using appropriate mixing rate
(22050 Hz or 11025 Hz) in AHI prefs should reduce CPU load caused
by mixing routines in AHI.

Device-interface of AHI does NOT use the "music unit" but the units 0-3.
Note this when changing AHI settings.

There may be a bug in UNIT allocation in AHI because opening
ahi.device with different UNIT-number to play many streams at same time
seems to return a error. I have checked paula-driver sources and it
always opens audio.device with unit 0. Maybe this is only a restriction
of paula-driver. Someone owning an audio card could try to play many
streams at same time to see if this is only a problem with paula-driver.
Also noted that you can play many streams at the same time if using
the same UNIT. Weird. =)

If playing stereo streams with PPC, try value 4 or even 2 for FPB to
have better sync with channels. 060 owners can also try this method
if channels are not played in sync.

And for the question why I don't use the library interface of AHI.
That's because one of my friends got a PPC and I would like to see
a PPC decoding and playing many streams together. Also it would
be a nice real-life stress test to compare PPC speeds.
(Also it would be fun to show PPC power to lame PeeCee users. =D)
Maybe I will code the library-interface routines in finnpeg.

And why use two channels instead of one mixed stereo sample? That's
because it would need a mixing routine which would slow things.
Using library-interface in AHI would be much better solution.

Todo list:
----------
-Loading full stream in memory before playing.
-GUI with support for WinAMP skins and equalizators.
-audio.device support (needs own mixing routines).
-Option to use normal io.
-Playlist files.
-Library-interface routines.
-ARexx server
-Commodity

Hi's to:
--------
People in IRCnet channel #AmigaFIN.
Stefane Tavenard for making mpega.library. Keep doing optimizations! =)
Martin Blom for making AHI. Pity I don't own an audio card. =(
All Amiga-users who are using this frontend.

Enjoy even faster mpeg audio. =)

Author's contact information:
-----------------------------
For bugreports, gifts, postcards (no digital ones) and other stuff
(excluding trading copyrighted mpeg-files), use one of following addresses:
(All mail will be read)

	Snail-mail:

	Tuomas Lukinmaa
	Einarintie 27
	FI-90440 KEMPELE
	Finland, EU

	E-mail: tumu at kempele.fi (preferred)

For latest stable and beta releases of finnpeg can also be found from my
www-site at:

	http://come.to/tumu/


Contents of mus/play/finnpeg.lha
 PERMSSN    UID  GID    PACKED    SIZE  RATIO     CRC       STAMP          NAME
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                 2427    4240  57.2% -lh5- 18db Oct  5  1998 finnpeg/finnpeg
[generic]                 1869    3811  49.0% -lh5- 643a Oct  5  1998 finnpeg/finnpeg.history
[generic]                 3806    8304  45.8% -lh5- 5769 Oct  5  1998 finnpeg/finnpeg.txt
[generic]                  471     663  71.0% -lh5- 508f Oct  5  1998 finnpeg/md5sums.asc
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total         4 files    8573   17018  50.4%            Oct  7  1998

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>