From: Richard F. <rf0...@bl...> - 2007-05-29 17:28:53
|
Hi there - sounds like there's some good stuff happening here. Sox is a great app that I've used over many years - it would be great to make it and its effects more LADSPA-friendly! I'd be inclined to put the plugins into a NEW library rather than CMT though, because CMT is not actively maintained at the moment and it uses a specific C++ approach that I suspect is unnecessary for your purposes (LADSPA itself is a C interface). I don't mind helping a little to get folk off the ground - though the interface is fairly well documented and there's a guide or two on the web. Channel data in LADSPA is handled by use of multiple ports - each individual channel is always mono. This can be a little restrictive - in general I guess that SOX would have to unpack interleaved audio for LADSPA processing and then pack it up again before forwarding it on. (So yes, a vol plugin would work if you didn't unpack the data, but this is a special case - in general, the results you'd get would be bad.) BTW, have a look at Steve Harris' set of LADSPA plugins (http://plugin.org.uk/). Have fun, --Richard -----Original Message----- From: Reuben Thomas [mailto:rr...@sc...] Sent: 28 May 2007 11:12 To: ri...@mu... Cc: SoX developers Subject: New code for CMT [SoX devs: this is an email to the inventor of LADSPA and maintainer of CMT. I think it would be great if we could push some of our effects into CMT. I'll email the list separately about SoX-specific issues.] I'm a maintainer of SoX (http://sox.sf.net/) and I've just added LADSPA support to SoX, so that LADSPA plugins can be used as SoX effects (if they have one input and one output, for the moment). I'm also keen to push effect code out of SoX into LADSPA plugins where that is appropriate. Looking at the list of plugins in CMT, and the list of desired plugins, I seem to have a good fit. There may be some SoX plugins I can simply throw away in favour of existing CMT plugins; some others with extra functionality that can be added to CMT plugins; and some definitely implement desired plugins (in the CMT tasks list). I was wondering if you have any time to help. In particular, I don't know C++, and the existing code is all in C. It's all GPL-compatible. Whether you can help with coding or not, it would be interesting to discuss the best approach to getting plugins into CMT, and also which plugins SoX can simply discard in favour of CMT plugins. Here's the list of SoX effects which I believe could be made into LADSPA plugins: biquads chorus dcshift dither earwax echo echos flanger mcompand phaser reverb stat swap synth, tremolo, vibro vol I already have one specific question: the SoX "vol" effect can cope with any number of channels, but SoX ensures that the channel data is interleaved in the input, one sample from each channel at a time. Would I be right in thinking that the amp_mono plugin in CMT can cope with this, since (presumably) it treats each sample individually? Let me know if you're interested. I'm currently putting a lot of effort into opening SoX up. Until now most of the work has been on the formats and I/O side, adding support for libraries like libsndfile, ffmpeg and libao. I'm keen to let SoX benefit from other libraries, and let other libraries benefit from it, and in the process reduce unnecessary duplication in the open source sound processing community. I posted to the Linux audio dev list recently asking about LADSPA; my conclusion was that SoX can't use LADSPA for all its effects, so that for some applications its existing API is still useful, and should be solidified and promulgated. So I'm not against diversity either. But I am keen to free up open source programmers to create new tools and improve existing ones, rather than keeping on reinventing the wheel. -- http://rrt.sc3d.org/ | Troy is in the Iliad, not in the sand (A. N. Wilson) |