[Clam-devel] [Fwd: about CLAM audio]

globot gglobot at gmail.com
Thu Aug 9 21:13:31 PDT 2007


Pau Arumi wrote:

> En/na Xavier Amatriain ha escrit:
>
>> If anybody feels like answering... Note that he reports the doxygen 
>> doc being down (I guess a side effect of
>> Pau's re-structuring)
>
>
> Your guess is right, fixed now.
>
> Globot, thanks for reporting it.
> Your questions are interesting so let's keep the thread in the
> clam-devel ml (you might need to subscribe)
>
>
>> -------- Original Message --------
>> Subject:     about CLAM audio
>> From:     globot <gglobot at gmail.com>
>> Hi,
>>
>> i am starting to use CLAM audio for my project, or more precisely, i 
>> am porting the audio code from FMOD to CLAM cause FMOD Ex have bugs 
>> under linux 64bits and can't handle real time processing.
>>
>> I have tested my needs with the NetworkEditor, it was good with less 
>> than 3ms of latency for a simple network: input microphone with two 3 
>> bands filters (1 for a stereo output and the other for a mono output)
>>
>> but when i start coding, i quickly encounter difficulties with the 
>> documentation...
>
>
> We are working on improving the documentation. The current fronts
> are, programming how-tos in the wiki and better doxygen doc.
> http://clam.iua.upf.edu/wikis/clam/index.php/Main_Page
> Feedback on concrete lacks of documentation is very important.
>

about documentation, to be honest the doxygen doc is like a cheese with 
a lot of hole. You should think about people that don't know much about 
sound (like me). So a small a synthetique explanation about each element 
would be great. For example, i want to use a 3 band filter, there is an 
input for controller named "Amount", i do not know what is it and can't 
find a small explanation (so i have to experiment and loose time).
this kind of example can be found a little evrywhere this is the 
difficulty,
Or in the OutControl class there is a SendControlAsBoolean method, and 
the comment say "see comments on InControl.hxx about 
InControl::GetLastValueAsBoolean" but i can not find this method...

something also very boring is that a doxygen doc don't allow search 
easily (with a search box), so even if i prefer man pages, sometime i 
like the conveniency of a big PDF  file (can be generated by doxy) with 
extensive description of each class, method, var, enum ... because I can 
search fast what i want to use.

of course for people just using network editor extensive definition are 
not needed, but in some case peoples might want to do thinks by hand 
like getting pointers on controlers of a network to sendcontrols with 
there interface and if i don't know what is a TControlData this might 
seem difficult for some people.
I know it is a little boring to explain evrythings, but it is usefull 
for a lot of folks, and it is always better to writte the doc part at 
the same time as the dev progress.

but this is just my opinnion after all :)


>> so here my question is simple, is there a way to seek into a audio 
>> file ? (i have a scroll barre to seek into the file like a lot of 
>> audio player do)
>> I can't find a way to set the position in frame or ms of the "reader" 
>> (like multiChannelAudioFileReader)
>> I can't find a function that will tell me where the reader is in the 
>> file (in frames or ms)
>
>
> This is a missing feature that we actually plan to add soon since
> we needed it for Annotator (to use a network for playing audio file
> and descriptors-audiolization, so we need to sync. the playhead
> with the network audio source.).
>
> However I can't say exactly when we will add this feature. So you
> might be interested on implement it yourself and do a nice
> contribution. We'll follow up and provide feedback.
>
> First idea: I think the FileReader processings should need an
> in-control with the seek time (samples or ms) and an out-control
> with the playing time. We use libsndfile for most of the audiofile
> formats and I guess it implements the seek functionality.
>
> BTW, there is a related refactoring to-do in this area: Drop
> MonoAudioFileReader since it can be the _default_
> MultiChannelAudioFileReader (with a simpler name).
>
for the moment I don't have time to code the seeking and current time 
reading, but if nobody do it in a few weeks i will be obliged to do it 
:) (in fact no because it is not a key feature for my project, but i 
want it).
I don't know exactly when i will do it, i'll keep you informed. You can 
add this task to the TODO list (or feature Requests).

>
>>
>> CLAM is a very good library, the only problem is the documentation 
>> that is generated (lake of a lot of information and explaination).
>>
>> --------------------------------------------------------
>> ps: since yesterday, the doxygen doc on the web site can't be 
>> accessed  => "non- existant file"
>
>
> Solved. Thanks for noticing.
>
>> pps: is there a way to generate code from the NetworkEditor ? I have 
>> only seen the graphical element for QT4 but nothing about audio 
>> processing.
>
>
> We don't generate code from the NE (though maybe we'll do at some
> point). However you can easily embed the NE defined clamnetworks in
> any binary (including plugins). It's really simple. You can see an
> example in NetworkEditor/src/OfflinePlayerMain.cxx
> To have a real-time app just instantiate a JackNetworkPlayer (or
> PortAudioNP) instead of the FreewheelingNetworkPlayer.
>
I have seen it, and i think i will use it :)
but sometime i like to know what is done exacly this is why i look into 
most of class i need, but when using a DataGain in NE which class is used ?




> This article about visual prototyping with clam might also be of
> interest:
> http://www.kgw.tu-berlin.de/~lac2007/papers/lac07_garcia_arumi_amatriain.pdf 
>


I 'll have a look when i have time :)

>
> Feel free to explain what you're doing with Clam :)
> Cheers!
>
> pau
>





More information about the clam-devel mailing list