VC components. History

Subscribe to RSS news feed

April 2018 (2.5.2018.10) Public Release

  • VC is now available at github vcp page in full sources. Yay!

October 2012 (2.5.2012.10) Release

  • fixed compatibility issues with C++Builder 5.0/6.0 and Delphi 4.0/6.0
  • now compatible with RAD Studio XE3
  • new onBeforeDecodeWrite/onAfterDecodeWrite and onBeforeEncodeWrite/onAfterEncodeWrite events make it easier to manipulate data being transmitter/received
  • improved documentation

August 2012 (2.5.2012.08) Release

  • RTP Transmitter: now can re-stream SHOUTcast via RTP
  • WaveOut component: new playbackOptions property
  • Ocassional problems with G.722.1 and other payloads in RTP streaming

Apr 2012 (2.5.2012.04) Release

  • RTCP: BYE packet was not sent at the end of session;
  • RIFF: handle incomplete files;
  • RTP Conference: silent users got disconnected occasionally;
  • RTSP/MPEG SDP for VLC: bitrate, sampling rate will be stripped in IPTransmitter sample;
  • RTP Receiver: reconnect in case of no data for some time;
  • ASIO: new ASIO Loopback and ASIO test samples;

Feb 2012 (2.5.2012.02) Release

  • RTSP server mode for IPTransmitter component, shown in new RTSP Multi-Transmitter sample;
  • New STUN Server and STUN Client components, refer to STUN C/S sample;
  • New DNS Client component works in DNS Client sample;
  • G.722.1 codec was added to conference client and server;

November 2011 (2.5.2011.11) Beta

  • IPTransmitter specific IP streaming mode, check the sample for more details;
  • New G.722.1 and GSM built-in codecs;
  • ACM codecs fix;

October 2011 (2.5.2011.10) RC

  • Improved MPEG-TS demuxer, now it provides list of PIDs to choose from (see updated IPReceiver for example;
  • New mpegTSdx console sample shows how to get infromation from MPEG-TS demuxer;
  • Compatibility with x64 compiler (Delphi XE2);
  • Delphi XE/XE2 even more boolean properties compatibility issues;
  • Updated TunadspFFTControl component and FFT bands sample;

April 2011 (2.5.2011.04)

  • Smoother playback
  • RTP conference: CELT codec added, client room change whitout re-connection, RTT, connection issues, inactive speaker audio port timeout
  • Timer issues on some PCs
  • Dulpex sample bugs fixed
  • Support for multicast TTL option in SDP in RTP streaming
  • RTP packets seq# wrap was causing transmission interrupt for a short time
  • Number of lost packets was reset on each RTP packets seq# wrap
  • Switch to new CELT library (not compatible with old one)
  • Fixed bool properties compatibility issue with Delphi XE IDE

January 2011 (2.5.2011.01)

  • New RTP streaming IPStreamPusher: sample;
  • IPReceiver/IPTransmitter streaming logic reversed;
  • IPReceiver now makes "NAT holes" for RTP/RTCP to work properly;
  • Better RTCP support in RTP conference server and client;
  • RTP conference server severe bugs fixed;
  • Listen to Ukrainian Radio directly from our server: simply start IPReceiver sample and press [Open];

December 2010 (2.5.2010.12)

  • New RTP streaming samples and components: IPText, IPDuplex, IPTunnel and IPCustom codec;
  • More complete RTCP protocol support;
  • Internal implementation of ADPCM codec (compatible with DVI format, defined in RFC 3551);
  • Support for CELT codec;
  • Now compatible with Embarcadero RAD Studio XE.
  • Freeware version.
  • Git access to sources.

March 2010 (2.5.2010.03)

  • New RAW/RTP streaming components: TunaIPReceiver and TunaIPTransmitter. Refer to new vcIpStreaming demo for details;
  • New RTP-based conference server and client components: TunaConfRTPserver and TunaConfRTPclient. Refer to new confRTP project sample for details;
  • New SHOUTcast receiver class: unaSHOUTreceiver in unaSocks_SHOUT.pas;
  • New VAD mode: unasdm_3GPPVAD1;
  • Direct support for mpg123 library;
  • Direct support for Speex library;
  • Internal implementation of G.711 codec (A-Law and u-Law);
  • Memory leak fixed in classes based on unaMsAcmStreamDevice class;
  • Improved internal multi-threading locking objects performance;
  • Now compatible with Embarcadero RAD Studio 2010.

June 2009 (2.5.2009.06)

  • now compatible with CodeGear Delphi/C++Builder 2009;
  • more stable streaming and other bugfixes.

July 2008 (2.5.2008.07)

  • New setVolume100() method for all wave components;
  • now compatible with CodeGear Delphi/C++Builder 2007;
  • multi-channel support, new Surround Mixer sample;
  • properties minVolumeLevel, minActiveTimeand and onThreshold event were moved to base WAVE class (unavclInOutWavePipe);
  • .WAV file reader now can read and parse large files (over 1 GB);
  • several improvements in streaming and playback (unavclWaveOutDevice) components;
  • improved components' documentation.

January 2008 (2.5.2008.01)

April 2007 (2.5.2007.04)

  • new DSP Library units (unaDspDLib.pas, unaDspDLibPipes.pas, unaDspLibAutomation.pas) and classes bring native general purpose audio processing support into VC components: new silenceDetectionMode property; two new pipes TunavclDSPDLibEQ and TunavclDSPDLibMBSP; new demos vcDspDetectors and vcDspEQDemo; vcLoopback and voiceRecDemo demos now has additional functionality; more to come in next update;
  • new streamingMode property, IP components now supports "raw" streaming mode. New vcStreamingRaw demo;
  • IP Client component now can bind to specified interface and port (new bindToPort property), refer to updated vcTalkNow demo for example;
  • new onFormatChangeBefore and onFormatChangeAfter events;
  • new enableDataProcessing property;
  • support for BDS 2005/2006 added;
  • realTime property was removed from codec component;
  • native support for BASS version up to 2.3;
  • native support for latest version of Ogg/Vorbis encoder (rever to Ogg/Vorbis DLL section);
  • fixed multi-threading issues with fast multi-core CPUs;

November 2005

  • new ConfRoom sample is a multi-client audio conference;
  • new DAF sample shows how to manipulate audio buffers manually to achieve controllable delay in audio loopback;
  • new Frequency bands sample shows how to use new TunadspFFTControl component;
  • new Multicast sample shows how to use multicast UDP sockets to send and receive live audio streams;
  • new Tape Recorder sample shows how to create a digital analog of simple tape recorder;
  • the vcMp3Demo sample now can send and receive live MP3 streams over TCP/IP networks;
  • the TunavclWaveCodecDevice component now supports OpenH323 plugin mode, so it is possible to stream audio compressed with those plugins. Try selecting this mode in vcTalkNow demo and see how it works;
  • both TunavclIPOutStream (ipClient) and TunavclIPInStream (ipServer) components now have new bindTo property, so it is possible to bind them to non-default network interface;
  • new udpTimeout property was added to TunavclIPInStream (ipServer) component. When this property is set to 0 the ipServer will no disconnect UDP clients which do not stream any data to server;
  • a bug which prevents selecting the MuLaw and some other codecs was fixed;
  • fixed several bugs in non-visual classes from unaMsMixer.pas unit.

March 2004

  • Support for MpgLib (MP3 decoder) added;
  • now compatible with both BASS 1.8 and BASS 2.0;
  • improved format negotiation (faster activation of linked components);
  • new vcAudioTunnel demo, some other demos were also updated.

October 2003

  • new vcMultiConsumer demo, add more consumers to waveIn at run-time;
  • new pushBMP demo, send custom data to remote side using same connection;
  • Broadcast and TCP transmission bugs fixed;
  • ipServer component now can enable/disable specific client streams, refer to updated version of mediaGate demo;
  • improved waveIn/waveOut buffers processing;
  • now it is possible to select DSP TrueSpeech and some other codecs.

July 2003

  • MS G.723 codec is now supported;
  • C++ Builder version of Delphi demos added: mediaGate, vcBroadcast, vcIcyClient, vcMixerDemo, vcMp3Demo, vcTalkNow and vcVoiceRec;
  • server part of mediaGate demo is not using codecs anymore;
  • Ogg/Vorbis decoder bug fixed (thanks to Thomas Schoessow);
  • chunk size was reduced to 1/25 sec.

June 2003

  • new VCL componet - TunavclScriptor;
  • new vcScriptor demo;
  • new vcIcyClient demo;

April 2003

  • small memory leaks and multi-threading issues were fixed;
  • new mediaGate demo;
  • extended vcMixerDemo;
  • added new notification events and methods for RIFF component.

March 2003

  • added multi-client connections support for TunavclIPInStream component (refer to redesigned vcTalkNow demo for example);
  • new wavOut and redesigned vcLoopback demos;
  • new easy to reuse u_common_audioConfig.pas form, designed to allow custom audio configuration for end-users;
  • default chunk size was changed to 1/20 second (lower latency of audio processing).

February 2003

  • added support for BASS library;
  • new vcShannelSep, vcBASSDemo and vcVoiceChat demos;
  • TCP/IP code improved for better throughput and less CPU usage;
  • support for loading multiply instances of Blade and Lame encoder libraries;
  • added support for creation of non-PCM WAVe files;
  • added support for installable ACM drivers;
  • better real time performance in CPU high-load conditions;
  • added C++Builder demos: cbvcLoopback, cbvcVoiceChat and cbvcWavePlayer;
  • better support for components created in run time.

November 2002

  • wav2ogg and ogg2wav demos added. External Vorbis/Ogg encoder and decoder are now supported;
  • vcMp3Demo now can produce Vorbis/Ogg files.

October 2002

  • vcWavePlayer demo added; unaRiffStream now has additional properties: streamSize, streamPosition and streamIsDone;
  • vcMp3Demo and wav2mp3 demos added; new classes unaBladeMp3Enc and unaLameMp3Enc are useful when integrating VC components with Blade and Lame MP3 encoders;
  • communication protocol between TunavclIPOutStream and TunavclIPIntStream components has been cleared out, some locks which can happen before on server startup/shutdown should be removed;
  • VC components are now compatible with Delphi 7.

August 2002

  • Improved recording/playback startup sequence. Should completely remove gaps and clicks that usually appear right after playback activation;
  • New demo application - vcPulseGen - generate sine waves and check out how they are mixed on oscilloscope window.

July 2002

  • UDP Broadcast classes and demo application were added.
  • Improved internal locking code and memory streams management, which should provide better performance;
  • Streaming protocol was improved to allow transmission at maximum throughput;
  • Added a vcMixerDemo demo application, which shows how to use a new unit included in VC 2.5 Pro - unaMsMixer.pas;
  • Registration information will be stored in Windows Registry, not the INI file.

What's new in version 2.5 Pro

PCM Resampler

PCM resampler allows you to convert audio streams sampling parameters fast and efficient. It does not use ACM codecs. 8, 16 and 32 bits streams are supported, with virtually unlimited number of channels and samples per second. Refer to vcSampler demo application for details.

PCM Software mixer

This version includes the software PCM mixer, which allows you to mix virtually unlimited number of PCM streams. "Software" means you do no need any special support from the sound card hardware or other devices to perform mixing. Refer to vcSampler demo application for details.


Use the unaRiffStream class to load or create WAVE files. You can use this class in the same manner as recording device (unaWaveInDevice class), when you set the realTime parameter to true. Refer to vcSampler demo application for details.

Volume level and silence detection

unaWaveInDevice has build-in code for calculating the volume level of audio stream. It could also stop producing the stream until its volume became louder than specified level. This is useful when you wish to skip the silence. You can check the volLevel application to see how it works.


This version of VC components is 100% compatible with multi-threading environment. Every base class, such as unaList or unaStream has internal locking code which prevents several threads of modifying the data of each other.

VCL components

Pro version includes VCL components of most classes from VC 2.1 Lite. Here is the components palette which appear after installing the VC 2.5 Pro components package:

Network streaming protocol

Two VCL components included in VC 2.5 Pro helps you to add two-way streaming protocol in your applications. You can send audio streams, text messages of user-defined data using these components. Refer to the vcNetTalk demo application for usage example.