[CLAM] Doing new things with CLAM

Vegard Sandvold vegard.sandvold at notam02.no
Fri Sep 9 05:14:22 PDT 2005

Hi all,

after I spoke to Pau at the ICMC banquet the other day, I thought I could
share some of my latest CLAM experiences with the community.

I have ventured where no-one has ever gone before (I think), deep down
into the abyss of Microsoft. Basically, I have written a Windows Service
for doing real-time music analysis, using the .NET framework. Running the
analysis program as a service was a requirement from my "contractor", and
not something I did for fun. Because it wasn't...

The main problems arose from a MS invention called Managed C++, which is
an integral part of their .NET class library. The service class had to be
written in managed c++, while the music analysis is of course written
using clam. If I tried adding clam objects as class members to my service
class, the compiler complained about some problems with default
constructors in various clam classes. The same applies to std::string
objects aswell. I use .NET version 7.1.

I got by by declaring all clam stuff as local variables in the main "do"
method. Also, every time I run srcdeps, I have to edit the project
configuration to set ut the service specific options. This is just a
convenience request, but would it be possible to extend the setting.cfg
file to make it possible to set other, and possible arbitrary
configuration directives?

If this is to time consuming to be worth doing, could we at least make it
possible to specify a DLL compilation rather than an executable
compilation? I have also written a Winamp dsp plug-in with clam, and
everytime, after having run srcdeps, I have to go in and change the
configuration to produce a dll.

Well, having said all that, both my service and the plug-in are working
great:-) The service is currently streaming, decoding and analysing NINE
Internet radio channels in real-time on a dual Xeon processor machine.


More information about the clam-users mailing list