RSP MP3 Player OCX 2.5.7 version

ActiveX OCX to play MP3 , MP2 , MP1 , 
MPEG-2.0 ,MPEG-2.5 and wav PCM media files

What is new in the version 2.5.8 (26/Feb/2005 15:48):
Several modifications and enhancements in the spectrum 
analyzer , now it has more auto adjust code , and it 
also was modified to report the information more smoothly
without hard changes in the value , and the levels 
are reported in a such a way to all the bands to have 
the same minimum adjusted level , it gives a better 
representation of the peak level , removed the functions 
to adjust or change the spectrum analyzer, now you 
have only a unique function just to enable or 
disable the spectrum analyzer , no changes made 
to the rest of the code when compared with the 
version 2.5.7 , if the spectrum analyzer is important 
to you then the version 2.5.7 or above is the best 
option

What is new in the version 2.5.7 (25/Feb/2005 20:42):
Fixed a problem that may occur with the new smart 
mode , in this case if the resource is too slow to 
be retrieved the control will freeze until the 
resource is available , this occur because there is 
not way to get some information from the file if 
the file is not available yet , how can you get 
the sample rate of a file if the file is not here 
yet ? , to avoid this problem when a function that 
can block like the getsamplerate function , it will 
enter in a loop and call Sleep for 50 milliseconds 
and call DoEvents , it will make the application 
using the ocx to don't freeze , but yet the function 
will only return when the minimum chunk of the file 
is available to get the samplerate , fixed a problem 
also in the cancel function , the same problem will 
occur like the other problem explained  int this 
case if the resource is being retrieved there is
no way to cancel it unless the function retrieving 
the chunk of the file return , in this case also 
the internal functions in the control will call 
sleep and doevents in order to wait for the 
return of the read resources function in order to
return to the user , tested also the new smart 
buffer function with very slow resources , and 
it is working perfectly , added a new mode to the 
spectrum analyzer , in this new mode the values and 
adjusted to don't reach the limit of the scale , 
this will make the report of the values to be as 
accurate as possible , it is an auto gain adjust 
method , the old mode is still available but not 
recommended , always use the mode 1 and it is 
already pre calibrated , just enable the spectrum 
analyzer and it is already configured for maximum 
response , fixed several small bugs in the smart 
buffer method , the past version will never read 
the last 4096 bytes of the file , and depending on 
the seek on the file some bytes would be lost , 
anyway these bugs are not perceptible but fixed 
in this version , added a new event Bufferizing ,
this event will be raised when the control is 
bufferizing the file due to a slow disk access , 
like when you are accessing a file in the network
, if it detected the slow access response it will
raise the event , and raise the event again when 
the control is ready to initiate the playback , 
it was added to the user know why it is not 
playing and wait for the buffer to be filled 
in order to play , and also it has lots of other 
minor improvements

What is new in the version 2.5.6 (23/Feb/2005 21:49):
Added a spectrum analyzer , it is using a FFT transform 
to retrieve the frequency information , it provides ten 
bands frequency information, exactly as the equalizer 
bands , the frequency information is returned in an 
event called SpectrumAnalyzer , added several new 
functions , they are UseOldFileBufferMode ,
UseSmartFileBufferMode ,PlayFromMemoryFileSizeLimit ,
EnableRepeatPlaylist ,GetShuffleNextItemPlaylist ,
GetNextItemPlaylist ,AddItemToPlaylist ,
SetFilePlayingPlaylist ,ResetPlaylist ,
RegisterFinishedEventMessage ,IsPathFolder ,IsPathFile ,
EnableSpectrumAnalyzer and SpectrumAnalyzerAdjust , 
and events SpectrumAnalyzer and DebugInformation , 
many functions were added to support a playlist 
playback , sample included , added functions to 
optimize the file buffer access , when the new smart 
buffer mode is used the file will be pre loaded 
in portions of 10 to 20 seconds , and it will 
only start the playback when at least 10 to 20 
seconds of playback is available , and it will 
keep bufferizing this way until the end of the playback , 
this is the preferred buffer method to be used and is 
enabled by default , added also a possibility to load 
the whole file to the memory and play from it , notice 
that it is limited to 20 megabytes to avoid system 
crash , and the user will define the file limit in 
this mode , it is initiated at 250 kb limit ( this 
mean that if a file is less than 250 kb it will play 
from the memory ) added two functions to test files or 
folders , added a debug event that will report problems 
on the media file and other important debug information , 
including also the file buffer mode being used , always 
watch this debug information if the control cannot play 
some of your mp3 files , and report it back to us as soon 
as possible , notice also that the spectrum analyzer 
requires a few processor cycles , then only enable it 
when required , it will use approximately 10 to 20 
percent of the time required to decompress a mp3 file , 
then if you can play a mp3 file in a 133 cpu it is possible 
that you will be able to run the spectrum analyzer also , 
by the way the processor time required to play a mp3 in 
real time is 100 mhz , modified the report of the peak 
level value , now when it is paused the values are 0 , 
and not the last value of the peak , the same occur with 
the spectrum analyzer, please , make a few tests at least 
to be certain that this new version is running as 
expected , several modifications were introduced and 
only the time will show whether it is stable enough , 
we have run several sequential tests and they passed , 
the upgrade is highly recommended , thanks to all the 
people that are requesting features and reporting bugs , 
due to your help this control is now better than ever


What is new in the version 2.5.5 (14/Feb/2005 12:43):
Added full id3 tag support , it include id3v1 , id3v1.1 
and id3v2.3.0 or 2.4.0 , the functions are very easy to use ,
the tags are directly based on what Winamp provides , 
then it will read and write all the id3 tags 
supported in Winamp , fixed normalization problem 
that may cause the multiplication factor
to become too high when the file is pure silence , 
now it is limited to no more than 15 , added milliseconds 
based functions to retrieve position and length of 
the media file , fixed problem when opening files , 
in this case the peak level meter will show an invalid 
value in the middle of the progressbar , this version 
will only initiate the update of the progressbar after 
the playback initiated , fixed also the report of 
milliseconds when the file is opened and not played , 
in this case the value will not be 0 but a few 
milliseconds , fixed also the peak level metter , 
now it is more accurate , added full support to VBR
files based on the Fraunhoffer vbr tag "VBRI" , older 
versions will not detect and read this tag , fixed 
detection of vbr files , older versions will report 
vbr files all Xing based vbr files , some files has 
a Info vbr tag , that isnot a reference to a vbr 
file but a cbr file , now it will only report a 
file as vbr if it has a Xing vbr tag or VBRI vbr 
tag , thanks to Vassilis Antonoulas for helping in 
fixing this problem and adding VBRI tag support ,
minor bugs fixed

What is new in the version 2.5.4 (27/Jan/2005 19:15):
Added new event to show the wave out peak level , the
PeakLevel event , it will return the left and right 
channel independently , this event occurs 20 times 
in a second , added a new function to change the 
playback speed , the ChangeSpeed function , it 
range from 0 to 100 , and 50 is the normal playback 
position , the speed can be modified during playback 
, minor other modifications

What is new in the version 2.5.3 (25/Jan/2005 23:10):
Added code to detect and fix the seek on the 
mp3 file on the fly , due to this modification now 
the seek occurs instantaneously , older versions 
required in some cases more than one second to 
finish the seek , added code to detect and avoid 
bad sections on the mp3 file , now in case of a 
bad mp3 frame it will just skip over it silently , 
added support to change the volume using the 
InternalVolume function on wav files 8 bits , 
modified the pause method , now the decoder will 
follow the slider position instantaneously , older 
versions will only apply the change in the seek 
after the resume is called , added sample project 
to play files in a directory , minor other modifications

What is new in the version 2.5.2 (24/Jan/2005 13:52):
Fixed a reference to the standard Microsoft VB controls
that mistakenly was added to the version 2.5.0 and 2.5.1
versions , now it don't have any references to any Microsoft
controls , fixed the preamplifier sample that was referencing
InternalVolume instead of PreamplifierValue , the mixer demo
has a little mofifications also

What is new in the version 2.5.1 (23/Jan/2005 16:33):
Modified the initialization of the playback to always 
initiate at 0 , and not at the slider position , if 
you want to initiate the playback in a predefined 
position , then open the media file , move the 
slider or call Seek with the position then call 
ResumePlayback , it was modified to avoid possible 
confusion , fixed a bug in the GetStatus event , 
that will not be raised when the file is opened 
and the playback is resumed , in this case the event 
will not raise with the updated status "play" , 
minor modifications

What is new in the version 2.5.0 (22/Jan/2005 17:01):
Modified the Seek function , now it will
seek instantaneously and it will disable
the output sound during the seek ,
fixed a bug that will not free allocated memory
used by the wave out functions , a call to 
waveOutUnprepareHeader was missing in the 
end of the playback or when the cancel function 
was called , added fade in and out sample in 
the package ( by Normam ) , added the function 
DisableSliderUpdateDuringSeek , this function 
will disable the update of the slider during 
seek  , it is required because now the seek
is based in the KeyUp and MouseUp event of 
the slider , and not in the Scroll event 
anymore , older versions required the control 
to wait for the seek value to stabilize before 
applying the value in the control , added the 
function CheckVolumeTag , it will check to 
see whether the normalization volume tag is 
in the media file , added the function 
SeekBasedOnSeconds , it will seek on the 
file based in the second position , then 
if you pass 20 , it will seek to the second 
20 in the playback , the function SetVolumeGain
was modified , now it range from 0 to 100 
and not from 0 to 10 anymore ,
added enum StatusValue it is the return 
value of the new function GetStatusLong
, added function InternalVolume , it has 
the same effect as the  SetVolumeGain , 
but it will only affect the file playing 
in the control , while the SetVolumeGain
will affect all the wave out based files 
playing , since it access the system mixer
, it is the preferred method to change the 
volume playback , added function DoubleBuffer ,
this function will double the gain of the 
equalizer function , added also the 
possibility to define the initial playback 
position , to use it just move the slider 
to the position desired , then open or play 
the file , and it will initiate at that 
position , if you want to always initiate 
at position 0 even if the slider is moved , 
then make a call to Seek with a value -1 
before opening or playing the file , and 
it will always initiate at 0 , fixed several 
other minor problems

What is new in the version 2.3.0 : Fixed a
problem that may occur with very damaged mp3 files
(mp3 files with wrong binary information that
may confuse the mp3 decoding engine in the 
beginning of the file or in the middle ) now
the decoder is less susceptible to problems to
decode the mp3 file , fixed a problem that 
may occur when retrieving the properties of 
the mp3 files , in some cases the 
value reported is the value of the last 
media file loaded and not the actual media 
file loaded , this occur if the call to 
retrieve the information from the media file 
occurs just after the load or play functions 
, thanks to Revivo Eyal for reporting and 
explaining about the problem , fixed a bug 
when setting the volume of the playback , 
the change in the volume only occurs when 
the file is loaded or playing , to test for 
the bug , just change the volume slider before 
the load or play of the file , as you will see 
the volume will not change, now the volume 
will change no matter the file is stopped or 
loaded or playing , minor bugs fixed

What is new in the version 2.1.0 : Added volume
normalization , it is based on the ReplayGain
algorithm , the volume normalization can be generated
on the fly and write to the file for later use , if the volume
tag is available it will be used , if not it will be 
generated on the fly , the sample has the explanation about
the use of the normalization , fixed a bug that may use
all the processor time when the Wait playback mode is
used, minor changes

What is new in the version 2.0.0 :
Fixed a bug that will show a message box with
"error loading the dll" when any of the functions
EnableEqualizer EqualizerSettings EnablePreamplifier
or PreamplifierValue are called as the first function
called in the control , this don't occur after any other
function is called , fixed in this version , thanks to
AdiEyal for reporting the problem

What is new in the version 1.9.0 : Added
a high quality graphical equalizer with 
10 bands , and with more than +-14dB of gain 
per band , it was derived from a XMMS 
equalizer plugin , any feedback about the
equalizer will be very important , and it can 
be extended to 15 , 25 or 31 bands , minor
bugs fixed

What is new in the version 1.8.0 : Added
code to skip over the id3v2 tag to avoid
some binary data being considered a valid
mp3 header frame

What is new in the version 1.7.0 : Fixed bug
in the retrieve of the playback time , now it
work smoothly with any kind of mp3 files and it
is more accurate , changed the size of the 
internal buffers to be based on the mp3 file

What is new in the version 1.6.0 : Fixed bug
that occur when playing very small mp3 files , 
changed the way the type of file is detected , 
now it will detect whether the file is wav or mpeg
in a more consistent way , and it isnot based on the
extension anymore , minor bugs fixed

What is new in the version 1.5.0 : Changed the
mp3 decoder to a more advanced version and more
fast , fixed several bugs regarding the handle of VBR
files including seeking , changed the interface 
to a new set of functions , notice that you cannot
just replace the code using older versions with this new
version because the function names have changed , 
minor bugs fixed

What is new in the version 1.4.0 : Added multiplayer
capabilities to the control , now you can add up to
ten instances of the control to a form in order to 
create a multiplayer , each instance is totally
independent , multiplayer sample project is included
, minor bugs fixed

What is new in the version 1.3.0 : Added function to 
set the volume , added mp3 to wav conversion function , 
fixed bug in the pause and resume functions , now the pause 
and resume will execute instantaneously , fixed bug in the 
Finish event , minor bugs fixed

Features

- This controls is using a high quality decoder engine

- Ability to play media files in the following formats :
	wav in PCM format
	MPEG 1 layer 3 ( MP3 ) , 
	MPEG 1 layer 2 
	MPEG 1 layer 1 
	MPEG 2.0 ( sample rates 16000 , 24000 and 22050 Hz)
	MPEG 2.5 ( sample rates 8000 , 11025 and 12000 Hz)

- The decoder engine is loaded dynamically in the process

- You can define what wave out device ( soundcard ) 
	will play the MP3 file

- The control has support to Xing based VBR files

- The control can retrieve bitrate , sample rate , 
	layer , stereo mode and the time of the mp3 file as 
	formatted string or milliseconds

Operating System Compliance 
 
Windows 95 , Windows 98 , Windows NT 4.0 , Windows 2000 , Windows XP

Documentation

The documentation is available online in the homepage

Install

- To install the control , open the package , decompress "OCX install.zip"
and execute setup.exe , it will initialize the installation execution
of the control
- To use the sample , decompress the "sample project.zip" to an empty folder
and load the project in your VB
- To uninstall the control , search for the package in the add/remove applications
in the controle panel , and select remove , it will remove the control
from the system

Homepage
http://rspsoftware.clic3.net
http://rspsoftware.tripod.com
http://www.geocities.com/rspsoftware1/

Homepage of the control
http://rspsoftware.clic3.net/rspmp3play.htm
http://rspsoftware.tripod.com/rspmp3play.htm
http://www.geocities.com/rspsoftware1/rspmp3play.htm

Email 
info@rspsoftware.clic3.net
rspsoftware1@yahoo.com
maquisistem@wln.com.br

Phone
#55 46 2323994

Thanks for using our software

RSP Software 1996-2005