Live Sound Input Analyser for Virtools 2.x

For the project TAKT we needed a plugin for the program Virtools 2.1 to analyse sound input 'real time'. We dived into the Virtools SDK and main coder of Knip 'n Plak wreck and myself coded the plugin. Now the TAKT project has finished and performed we decided to release the plugin and code under the GNU Lesser Public License.

UPDATE: Version 2 supports stereo sound. We know some people have been adding this already. We've included this feature in this new release.

Thanks to Jon Lee we now have the plugin running under Dev2.5. It's compiled against DirectX 9. We haven't tested it ourselves so please provide us with feedback.

Downloads

Virtools 4.0/5.0

Ben Cole has provided the dll's for version 4.0 and 5.0:

The error was caused because the variable “left” was a BOOL which seems to be understood differently in the newer version of Visual Studio. I simply changed it to a float or integer to solve the problem.

Attached are the dll's for Virtools 4.0 and Virtools 5.0, I have tested and confirmed that the 4.0 one is working beautifully. I will test the 5.0 out tomorrow, but I do not forsee any problems. Feel free to post them on your site and do whatever you want with them.

-Ben Cole

System requirements

  • DirectX 8.1 or higher
  • Soundcard installed.
  • Virtools 2.x (Virtools 2.5 has not been tested by us)

We've found problems while using Windows '98. Best results were with Windows 2000 which is the target platform.

Installation notes

Just copy the DLL into your 'managers' directory. When you start Virtools you will find a new section Building Blocks - Sound - InputAnalyser in which you'll find three Building Blocks:

  • IAGetFreqBB: This building block will output FFT frequency analysis. The freqeuncy range is 0 - 22KHz. This is divided into 256. You can add input parameters (integers) so you can select a range of frequencies. (i.e. integer 1 and 3 will output a range of about 87 Hz to 261 Hz).

From version 2.0 the plugin supports stereo sound. You can set which side to output.

  • IAGetMaxFreqBB: This Building block will output the array number (number between 0-255) of the frequency most found in the sound. From this number you can calculate the frequency range. (the output number times 87)
  • IAGetVolBB: This building block will output the volume of the sound. The output is an integer

License & copyrights

This plugin is copyright 2003/2004 sphaero.org/KnP. All rights reserved. The plugin has been released under the Gnu Lesser Public License for others to enjoy.

We would like to know if people are using this plugin for any purpose. If you make modifications or additions to this plugin please let us know so we might include it into future releases of the plugin.

Problems or questions please contact us by email