RSP MP3 Component .Net 3.1.0 

.Net component to play MP3 , MP2 , MP1 , 
MPEG-2.0 ,MPEG-2.5 and wav PCM media files

 

Install:
To install the .Net component extract the files to
an empty folder and execute c#sample.sln for the
c# sample project or vbsample.sln for the vb.net sample
project

Notice that the project is for .Net framework 3.5 , 
Visual Studio 2008

If you are using Visual Studio 2005 or older
maybe you need to modify the project to load
correctly , but it is up to you

Trying to add or remove references outside the IDE can make the
references to the interfaces disappear and some unexpected form
load problems occur

Unistall:
Just delete the files

What is new in the version 3.1.0 (Fri Dec 28 00:19:49 2007):
Removed the OCX requirement , now it is a pure .Net framework 3.5
component , several modifications and enhancements , added
a vb.net sample project

What is new in the version 3.0.0 (Thu Dec 13 19:46:35 2007):
Fixed a bug in the playback with mp3 files that has damaged
id3v1 tags in the end of the file , in this case a quick noise
can appear in the end of the playback , to reproduce the
problem search for the mp3:
Elvis Presley - Marie's The Name Of His Latest Flame.mp3
size - 2.994.816 bytes
on internet and play it , as you will see in some cases
in the end of the playback the noise will occur
, this problem occurs because some id3v1 software write
the tag inside the last frame and not in the end , in this
case the id3v1 tag can be confused with a valid mp3 frame
and will be decomposed in noise , correct id3 v1 tags need 
to be created above the last frame in this case no decoder 
will decode the tag because there is no frame header to 
initiate the frame sincronizing , to solve the problem 
the decoder now dont decode the last frame , added support 
to playback of wav 32 bits floating point , added a new
progress bar , added code to open files , added code to
make the sample acts as a normal player like loading
media files in the startup and playing it and playing 
other media files that are sent to the sample project 
via explorer shell , added code to save and restore 
settings in the registry , added more wafe effects and 
stereo enhancements , now it have 14 wave effects to 
be used and some of them are very interesting , minor 
bugs fixed

What is new in the version 2.7.6 (Sat Mar 04 08:21:46 2006):
Fixed bug when handling damaged id3v2 tags, in this case a 
damaged file can crash the control , fixed also some 
other minor bugs

What is new in the version 2.7.5 (Wed Sep 28 10:56:45 2005):
Added ability to play streaming files , now the control can
play and save files directly from the Internet , added
ability to play encrypted mp3 files , the encryptor is 
included in the form 15 , several other minor modifications
, despite the modifications the control is fully compatible 
with older versions , then no modification required in 
order to use this new release

What is new in the version 2.7.3 (Wed Aug 10 17:20:51 2005):
Added two surround like effects , fixed some minor bugs

What is new in the version 2.7.1 (25/Mar/2005 17:22):
Fixed a minor problem in the smartbuffer method

What is new in the version 2.7.0 (18/Mar/2005 18:20):
Modified the report of the playback position , now it
is as accurate as 100 milliseconds , it was modified
by user request , modified the smart buffer method ,
indeed most portions was completely redesigned , added
also support to enlarging and shrinking files (this
means files that have their size modified during
playback ,like adding or removing id3 tags or
downloading a file from internet while playing ) ,
notice that it is supported in both smart buffer mode
and old buffer mode , there is no way to make the
memory playback mode to support it beause after a file
is loaded to the memory it don't have any other access
to the file unless you play it again , , fixed a bug
in the ID3 v2 tag support , if the mp3 file has 
invalid ID3 v2 tag information the control may just
crash , now the control will first validate the
information and if it is inside some predefined limits
it will work if not then it will just consider the ID3
v2 information invalid , notice that this problem
affect also Winamp , the homepage has a damaged mp3
file that trigger the problem in the mp3 ocx 2.6.2 and
Winamp , and you need to be aware that when the new
wave effects change the number of samples then the
time reported will not be the correct playback
position , this mean that the file may terminate the
playback after or before the real playback position ,
this occur because there is no way to update the time
information correctly when the number of samples are
changing dynamically , this occur with the pitch wave
effect at this moment but more wave effects in the
future may have the same limitation , added a new fast
mode to retrieve the normalization of the file , the
normal mode requires a few seconds even in a fast
machine while the new fast mode requires less than a
second , it is fast because it is only measuring the
levels on small portions of the file , but even
verifying small portions of the file it gives results
very close to the results got with the normal mode ,
the new functions using this new fast mode are
EnableOnTheFlyVolumeNormalizationFast and
EnableOnTheFlyVolumeNormalizationAndWriteTAGFast , and
since the resulting value is very close to the normal
method this is the recommended mode to be used from
now on , several other minor problems were fixed

What is new in the version 2.6.2 (10/Mar/2005 23:30):
Added a few dsp based wave effects , it includes 
voice removal , echo and pitch playback control , 
for more information on it take a look in the 
sample or the documentation ( that soon will be 
available in the homepage ) , notice that this 
is our first attempt in the dsp area , many 
other wave effects will be added in the future , 
anyone that have a few knowledge on dsp code 
and want to help , please , contact us , removed 
the function ChangeSpeed , it was removed because 
now we have a dsp based code that does it, and 
it work on the wave stream while the ChangeSpeed 
function was just changing the samplerate on the 
waveOutWrite function ,modified the progressbar 
to make it work without problems in environments 
other than VB , the progressbar in the version 
2.5.8 will just crash if used in other development 
tools as an example the Fujitsu Cobol , fixed a 
bug in the smart buffer method , the version
2.5.8 may show an assert message box about a 
error in the file filebuffer.c at line 595 or 
line 790 with a "assert (bytesleft >= 0)" information 
, this error occurs if the size of the file 
change while it is playing , to reproduce the 
problem load a small mp3 file , start the playback 
and while it is playing bring up the id3 tag 
form and add or remove the id3 v1 or v2 tag , 
and wait for the end of the playback , in the 
end of the playback you will see the error 
assert message box , this problem is fixed 
in this version , notice that anyway the chances 
of a file size change during playback is very 
small , minor other modifications


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 2000 , Windows XP , Windows Vista

Documentation

The documentation is available online in the homepage



Homepage
http://rspsoftware.bighost.com.br

Homepage of the control
http://rspsoftware.bighost.com.br/rspmp3playnet.htm

Email 
info@rspsoftware.bighost.com.br

Phone

cel #55 41 9614 4533

Thanks for using our software

RSP Software 1996-2007