In case of broken links or downloads, read the whole page products, chances are that you will find a supercede version of the software that you are looking with a different project name, as an example the MP3 OCX is now project rsppmp3 at

Last update: Thu Sep 10 15:34:37 2009


RSP OGG Vorbis Player OCX 3.3.2

Release date(Thu Sep 10 15:34:37 2009)



rspnormalizationnew.png (4375 bytes)

rspmp3play2504.png (5143 bytes)

rspmp3play2503.png (5573 bytes)

 spectrumanalyzer2.png (6386 bytes)

ActiveX OCX to play and decode OGG Vorbis media files



What is new in the version 3.3.2 (Thu Sep 10 15:22:24 2009) Small modifications to reflect the changes , files rsp_ogg_player_ocx1.dll and rsp_ogg_player_ocx2.dll are required in the same path of the ocx

What is new in the version 3.2.0 (Wed Jun 04 17:35:45 2008): Added Windows Vista compatability , minor modifications
, now the embedded dlls are external

What is new in the version 2.8.1 (Mon Sep 26 14:30:26 2005): Added option to save the streaming file , added option to control the size of the playback buffer , minor bugs fixed

What is new in the version 2.8.0 (Sun Sep 25 14:49:16 2005): Added streaming capabilities , the new release can play files directly from the internet , minor modifications

What is new in the version 2.7.9 (Thu Sep 22 18:50:51 2005): Fixed a bug that will not get the ogg tag from encrypted files , now the control can get the ogg tags from normal ogg files or encrypted ogg files , minor modifications

What is new in the version 2.7.8 (Thu Sep 15 09:28:47 2005): Added the possibility to play encrypted files , now the control can encrypt files and play it encrypted , it will solve the problem of people that want to control the playback of media files , two functions were added , the UseEncryption and EncryptFile , the sample has the code to show how to encrypt and play the files , minor bugs fixed

What is new in the version 2.7.6 (Fri Aug 12 13:28:22 2005):
Added two surround like effects , fixed some minor bugs

Multiplayer problem in Win98 (22/Mar/2005 17:11) : A problem related to the MP3 and OGG Vorbis controls was reported regarding problems in generating a multiplayer in Win98

If the wave out cannot be used by multiples players at the same time , then the controls will be unable to generate a multiplayer

Installing the latest version of DirectX may solve the problem , but if your soundcard cannot mix the streams in hardware then no known solution will solve the problem ( at this moment )

This is a limitation of the operating system and not a problem in the controls

A solution would be to create a mixer that will receive the wave streams , mix it and send to a unique instance of the wave out , we will try to add it to a future release , anyway , this is not a priority

What is new in the version 2.7.5 (19/Mar/2005 10:53): Added a spectrum analyzer, added OGG tags support , added debug event , added a smart buffer method , added wave effects , added peak level meter , added playlist playback support , 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 OGG 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 because after a file is loaded to the memory it don't have any other access to the file unless you play it again , 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

About the new fast normalization mode (18/Mar/2005 18:20): The new fast normalization mode is an improvement over the original Replaygain algorithm , it is an optimization to don't waste time scanning for information that will not change , due to this improvement the new mode can get the Replaygain level in a fraction of a second , while the normal mode may requires a few seconds to finish even in a fast machine , due to this improvement now you can enable the volume normalization on any file without any noticeable delay on the playback , and the value generated in fast mode is close enough to the original mode that no difference in the playback level can be perceived

This is a list of files used during the development of the new release of this control and the multiplication factor generated by the original mode and new fast mode:

Slow            Fast

0.446684 - 0.459727
0.459727 - 0.449262
0.462381 - 0.469354
0.464515 - 0.465050
0.473696 - 0.470977
0.474242 - 0.491473
0.476980 - 0.476431
0.481948 - 0.505243
0.493742 - 0.509918
0.496592 - 0.589522
0.500035 - 0.537032
0.508160 - 0.555265
0.509331 - 0.507575
0.512271 - 0.552078
0.512271 - 0.570821
0.512861 - 0.485289
0.513452 - 0.464515
0.513452 - 0.517607
0.516416 - 0.582103
0.519398 - 0.564937
0.520595 - 0.572796
0.521795 - 0.518800
0.526017 - 0.540132
0.528445 - 0.548277
0.531496 - 0.526623
0.533335 - 0.529054
0.538270 - 0.517607
0.540754 - 0.540754
0.541377 - 0.527837
0.542625 - 0.511093
0.543876 - 0.485848
0.549541 - 0.570164
0.550174 - 0.581434
0.553988 - 0.577431
0.556545 - 0.541377
0.557186 - 0.580096
0.558470 - 0.540754
0.558470 - 0.540754
0.559114 - 0.616595
0.561048 - 0.588844
0.561048 - 0.623017
0.563638 - 0.537032
0.564287 - 0.567545
0.567545 - 0.507575
0.568853 - 0.592243
0.572137 - 0.585464
0.572796 - 0.576103
0.572796 - 0.580765
0.574117 - 0.636063
0.582774 - 0.612350
0.584117 - 0.565588
0.588166 - 0.630957
0.591562 - 0.607435
0.592243 - 0.624453
0.593608 - 0.628058
0.595662 - 0.563638
0.599101 - 0.633140
0.599101 - 0.638999
0.599791 - 0.576767
0.602560 - 0.651628
0.604644 - 0.642688
0.607435 - 0.603949
0.607435 - 0.611646
0.610239 - 0.691831
0.611646 - 0.598412
0.613056 - 0.592925
0.614469 - 0.600482
0.623735 - 0.667575
0.627336 - 0.684700
0.629506 - 0.631684
0.634600 - 0.631684
0.635331 - 0.615177
0.641210 - 0.671429
0.641948 - 0.654636
0.642688 - 0.689446
0.648635 - 0.648635
0.649382 - 0.653883
0.649382 - 0.693426
0.656901 - 0.636796
0.657658 - 0.647888
0.668344 - 0.697429
0.684700 - 0.647888
0.725271 - 0.729458
0.728618 - 0.789769
0.741310 - 0.744732

What is new in the version 2.7.0 (24/Jan/2005 19:40): 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" , modified the Seek function , now it will seek instantaneously , 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 functions SeekBasedOnSeconds and SeekBasedOnSecondsPrecise these functions make it possible to seek in the file based on seconds or seconds and milliseconds , 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 because it access the system mixer , then to avoid the volume affecting all the files playing always use the InternalVolume function to set the playback volume and it is the preferred method to change the volume playback now , added function DoubleBuffer , this function will double the gain of the equalizer function , fixed several other minor problems


mixerdemo.png (6349 bytes)




Bug found on the new fade sample (21/Jan/2005 16:41) The fade playback sample has a few bugs that can make the application to don't work as expected , an updated version of the sample was posted that don't have the problem , click here to download the updated version

New sample project (21/Jan/2005 10:49) Our friend Norman from Digital Tanagent Limited have generated a sample project with fade playback support between tracks , it can fade in and fade out when playing multiple tracks at the same time , the samples are available to download in this link ( link removed due to a bug , this is a new release )

What is new in the version 2.6.0 (27/Dec/2004 14:09) Fixed a problem that may occur when retrieving the properties of the OGG Vorbis 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

Problem found in the OGG Vorbis control (27/Dec/2004 10:39) A licensed user have found a problem that can occur in the control , this problem affect the way the information is retrieved from the OGG file

If you use code to only retrieve the information from OGG Vorbis files , then you need to review your code to avoid some problems

Code like this are affected by the problem:

ogg.OpenFile "c:\myoggfiles\file.ogg"

MsgBox ogg.GetLengthString

In this case the call to the GetLengthString function may return the value of the last OGG file loaded instead the new loaded file

Why this problem occur ?

The problem occur because the control use a different thread to decompose the OGG Vorbis file , and the function OpenFile may return before the thread has finished the load process , and the function GetLengthString like many other functions that retrieve information from the OGG file just return the value of a variable and this variable are not updated yet in the thread that is running the decoder , this is why the GetLengthString may return the value of the last loaded media file

If the unique thing that you need is to retrieve information from OGG vorbis media files and you want to be certain that it will retrieve the correct value just make two subsequent calls to the OpenFile like this :

ogg.OpenFile "c:\myoggfiles\file.ogg"

ogg.OpenFile "c:\myoggfiles\file.ogg"

MsgBox ogg.GetLengthString

Doing this you will be certain that the value returned is correct

Future versions of this control may be modified to return the Get based functions only after the function that load the media file terminate the load process

What is new in the version 2.5.0 (04/Nov/2004 15:42) 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

If you are interested in Volume Normalization , then visit this link :

What is new in the version 2.4.0 (25/Oct/2004 12:54) 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 2.3.0 (17/Oct/2004 11:02) 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 2.2.0 (09/Oct/2004 14:41) Fixed a bug that may occur when a very small media file is loaded , in this case the control may hang , modified the number of maximum multiples instances , now there is no 10 instances limit so any number of multiples instances of the control may be loaded to a form , fixed a bug that may keep an opened handle in the termination of the control , minor bugs fixed

What is new in the version 2.1.1 (02/Oct/2004 11:07) Fixed a bug that will keep some opened handles in the system wasting memory and eating resources , the new release will free all the resources and handles after playing the media file , minor bugs fixed

What is new in the version 2.1.0 (29/Sep/2004 13:57) 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 2.0.3 (09/Sep/2004 15:03) Added a new property to retrieve the playback position as percentage , the PlayBackPosition property

What is new in the version 2.0.2 (07/Sep/2004 11:50) Added functions to select the wave out device to play the OGG Vorbis file , added functions GetWaveOutDevicesName , GetNumberofWaveOutDevices and SetWaveOutDevice , minor bugs fixed

What is new in the version 2.0.1 (24/Aug/2004 14:20) Added volume control , added properties to get time length and time position as string and as long , minor bugs fixed

What is new in the version 1.8.0 (05/Jul/2004 13:12) Added processor priority code ( SetPriority ) to avoid interruption of the playback when running on the background , the initial state is high priority by default , this addition will fix the bug report about interruption on the playback when loading other applications or starting any process concurrently with the OGG Vorbis player , minor bugs fixed

What is new in the version 1.7.0 (15/Mar/2004 20:52) Modified internal buffers to self-adjust based on the bitrate and samplerate of the OGG Vorbis file ( ogg from now ) , the ogg file now can be converted to wav PCM with the new function OGGVorbisToWav , added seek capabilities ( sorry for the delay ) , added functions to check the validity of the seek capabilities based on the ogg file ,fixed possible bugs regarding damaged ogg files that may cause the player to crash , minor bugs fixed , the upgrade is recommended

RSP OGG Vorbis Player OCX 1.5.0 bug fix released (09/Mar/2004 19:42) Fixed a weird bug that occur in the Finished event that may cause the event to don't fire , making it impossible to play in sequence multiples OGG files , the bug was caused by the event Finished being fired before the real termination of the internal execution , now in the version 1.5.0 and above , the event will only be raised after all the internal execution is finished , so the player is really ready to play another file without problem , we want to thanks Mike for explaining and reporting the problem , the upgrade to the version 1.5.0 is recommended to any user of any prior version , as a licensed user just send email asking for your upgrade

What is new in the version 1.4.0 (12/Feb/2004 11:48) Fixed bug that will not show correctly the settings of some OGG Vorbis Files , fixed bug that can cause the incorrect playback of mono files , modified the loop enable function to play continuously without interruption , minor bugs fixed

What is new in the version 1.2.0 (10/Feb/2004 15:56) Fixed bug that will keep some open handles during the playback , fixed bug that may possible crash the player when the playback function is called multiple times before the end of the playback , added functions to control playback loop , and whether the playback function will return immediatelly or only after the end of the playback , minor bugs fixed

We have also an ActiveX OCX to encode wav files to OGG Vorbis format , RSP OGG Vorbis Encode OCX 1.5.0



- Ability to play and extract OGG Vorbis media files

- The decoding engine is loaded dinamically in the process

- The processor time required to decode the OGG Vorbis is less than MP3 files

- The decoder quality is very good or better than MP3 files

- The decoder engine is unencumbered of patents

- The decoder can be modified to fit the needs of any developer

- The technology used in the OGG Vorbis decoder is superior in features and quality over WMA , MP3 and similar encoder formats

- Embedded equalizer with 10 bands and +-12 db of gain

- Full multiplayer support

- Full multiples instances support

- Volume normalization support


oggvorbis1.png (3629 bytes)


OGG Vorbis format description

Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit, polyphonic) audio and music at fixed and variable bitrates from 16 to 128 kbps/channel.

This places Vorbis in the same competitive class as audio representations such as MPEG-4 (AAC), and similar to, but higher performance than MPEG-1/2 audio layer 3, MPEG-4 audio (TwinVQ), WMA and PAC.

For more information about OGG Vorbis format click here


Vorbis is a general purpose perceptual audio CODEC intended to allow maximum encoder flexibility, thus allowing it to scale competitively over an exceptionally wide range of bitrates.

At the high quality/bitrate end of the scale (CD or DAT rate stereo, 16/24 bits), it is in the same league as MPEG-2 and MPC.

Similarly, the 1.0 encoder can encode high-quality CD and DAT rate stereo at below 48kpbs without resampling to a lower rate.

Vorbis is also intended for lower and higher sample rates (from 8kHz telephony to 192kHz digital masters) and a range of channel representations (monaural, polyphonic, stereo, quadraphonic, 5.1, ambisonic, or up to 255 discrete channels).


Vorbis I is a forward-adaptive monolithic transform CODEC based on the Modified Discrete Cosine Transform.

The codec is structured to allow addition of a hybrid wavelet filterbank in Vorbis II to offer better transient response and reproduction using a transform better suited to localized time events.


The Vorbis CODEC design assumes a complex, psychoacoustically-aware encoder and simple, low-complexity decoder.

Vorbis decode is computationally simpler than mp3, although it does require more working memory as Vorbis has no static probability model; the vector codebooks used in the first stage of decoding from the bitstream are packed, in their entirety, into the Vorbis bitstream headers.

In packed form, these codebooks occupy only a few kilobytes; the extent to which they are pre-decoded into a cache is the dominant factor in decoder memory usage.

Vorbis provides none of its own framing, synchronization or protection against errors; it is solely a method of accepting input audio, dividing it into individual frames and compressing these frames into raw, unformatted 'packets'.

The decoder then accepts these raw packets in sequence, decodes them, synthesizes audio frames from them, and reassembles the frames into a facsimile of the original audio stream.

Vorbis is a free-form VBR codec and packets have no minimum size, maximum size, or fixed/expected size.

Packets are designed that they may be truncated (or padded) and remain decodable; this is not to be considered an error condition and is used extensively in bitrate management in peeling.

Both the transport mechanism and decoder must allow that a packet may be any size, or end before or after packet decode expects.

Vorbis packets are thus intended to be used with a transport mechanism that provides free-form framing, sync, positioning and error correction in accordance with these design assumptions, such as Ogg (for file transport) or RTP (for network multicast).

For purposes of a few examples in this document, we will assume that Vorbis is to be embedded in an Ogg stream specifically, although this is by no means a requirement or fundamental assumption in the Vorbis design.


Documentation of the RSP OGG Vorbis Player OCX 2.8.1 CHM format

Documentation of the RSP OGG Vorbis Player OCX 2.7.6 CHM format

Documentation of the RSP OGG Vorbis Player OCX 2.7.0 CHM format

Documentation of the RSP OGG Vorbis Player OCX 2.0.2

Documentation of the RSP OGG Vorbis Player OCX 1.8.0

Documentation of the RSP OGG Vorbis Player OCX 1.7.0

The documentation of the RSP OGG Vorbis Player OCX 1.2.0 in HTML Help format



- Execute register_ocx.exe , if Vista then admin


- Execute unregister_ocx.exe , if Vista then admin

Operating System Compliance

Windows 95 , Windows 98 , Windows Millenium , Windows NT 4.0(sp6a) , Windows 2000 , Windows XP , Windows (Bad) Vista



All our software is also available to download from Winsite , click here to access our Winsite page

winsite.gif (8705 bytes)


RSP OGG Vorbis Player OCX 3.3.2

RSP OGG Vorbis Player OCX 3.3.0

RSP OGG Vorbis Player OCX 3.2.0

RSP OGG Vorbis Player OCX 2.8.1

RSP OGG Vorbis Player OCX 2.7.6

RSP OGG Vorbis Player OCX 2.7.0

RSP OGG Vorbis Player OCX 2.0.3

RSP OGG Vorbis Player OCX 1.5.0

RSP OGG Vorbis Player OCX 1.0.0


This control is available to register at Shareit! , click in the link below to register

After the registration the licensed version will be emailed to you , thanks for considering the registration

Home   Contact   About   Development   C Programming

RSP_C   Processor Research   Products   License   Mirrors


RSP Software