View Full Version : open-source, modular, audio conversion tool
SimonSez07
7th November 2005, 11:55
lately i have been using this prog called dBpowerAMP Music Converter (www.dbpoweramp.com) which is great for what it does, and it has some great plugins, but unfortunately its not free, not open-source and it is limited in a lot of ways (ie. no multi-chanel, no ac3 input ...)
so here is my idea:
what if someone on this board was willing to make a similar tool (maybe using code from our excelent open-source projects like besweet) that is completely modular. so ideally it would just be a basic input-process-output framework that could work with plugin dlls (almost like winamp does) so that anyone could make modules for it. for instance:
azid / faad / multi-channel wav / cdda input plugins
ssrc / downmix / upmix / drc processing plugins
entire host of output plugins like besweet / headac3he has
i mean something that would be simple like dbpoweramp to just r-click audio files and press convert. with easy encode options (but perhaps also an advanced options for each codec)
http://img.photobucket.com/albums/v231/SimonSez07/dmc.gif
anyway, im not much of a coder but i thought i would see if there is interest for such a tool. it would eliminate the use of a lot of seperate tools we use now.
KpeX
7th November 2005, 20:28
Besweet is not open source - although there is documentation for creating plugins and several open-source plugins already.
It definitely would be a helpful tool. I think the closest to this right now in a graphical tool would be foobar2k (also not open source but has an SDK available). Gstreamer is also fairly useful for the modular strategy. There are lots of gst-plugins available but getting them to connect to each other for encoding can be a struggle at this point.
johnman
7th November 2005, 22:01
I to have wondered if i should make ww opensource. I have no fundamental objection against it but so far i have not done it since
a) ww is being developed very much, it would be impossible for anyone but myself to follow the changes. I have rewritten a lot of code more then once.
b) I have asked some questions before about some technical details and never got much responce. I doubt there is even a single person that can and wants to put in some real effort into the development.
c) There have been many rip-ofs of free software. I dont like the idea of someone using my code, without any work of them selfs, and sell it.
d) No real documentation. I once started to document some parts of the code, but to make good documentation takes a significant ammount of time. And since i was spending a lot of time on keeping it all up-to-date, less time went to the development, so i stopped with it again.
Open source might be good idea sometimes, but it doesnt always help the development. If i ever decide to stop developing ww (will not happen anytime soon), ill think ill release the source to give others the possibility to develop it.
BTW the idea of right clicking to convert audio files, i like it and it is now on my todo-list :D.
EDIT: One small remark. You suggest using "plugin dlls". Although the idea sounds good, i dont think its a good idea, since that means that every new lame,faac or whatever , needs a new compile of the plugin. That is why i use the available executables in ww to make sure the user can use always use the newest version. I would much more like to see other programs integrate a standard available lame.dll or lame.exe instead of making use of their own plugin interface.
(If someone has specific needs for an audio conversion tool, im interested to hear them so i can implement them in wavewizard.)
SimonSez07
8th November 2005, 10:13
Besweet is not open source
sorry, always thought it was for some reason. shame. but all the more reason for an open source audio prog. and like you said we already have several open source plugins, which is good.
@johnman - about dlls vs exe: i see what youre saying about custom compiled plugins, but there are advantages to using dlls (like exe's audio input being restricted to whatever formats and channels it was designed to accept, or having to write an intermediate wav file).
one solution to what you mention would perhaps be the development of a standard dll interface for encoders. so that you could just download the new XXX encoder and use it with whatever audio prog you like. if such an interface became widely accepted, i think we would see lame / faac / vorbis ... encoders release compliant dlls. of course, this is unlikely. and as it stands now we have a million plugin sdks for programs like dbpoweramp, nero, winamp, foobar, besweet ... so maybe one of these interfaces could become the 'standard'
as for wavewizard, i have never used it. i will definately check it out and also, Gstreamer.
johnman
8th November 2005, 10:28
@johnman - about dlls vs exe
I was comparing the custom build encoders, with the "general" ones. Not exe vs dll. Wavewizard supports about 10 different encoders, and if i needed to make a new custom build dll or exe, everytime lame,flac,wavpack etc etc comes with a new version i would be a very busy man :eek: .
I also would like a general interface for encoders, but i think this is only wishfull thinking. So untill there is a general interface, im using "Conversion Batcher"(is included in ww) to do all my conversions. If others would like to use CB to, they can contact me. I guess CB provides a sort of interface to the 10 encoders i currently support.
SimonSez07
8th November 2005, 11:18
I was comparing the custom build encoders, with the "general" ones
right. i understand what you are saying now. a program (ie. nero, dbpoweramp) can be designed to accept custom built encoding plugins OR the program (ie. headac3he, ww) can be designed to encode with a fixed set of encoders using their dll's. i can see the advantages to either way, although i would call the former more flexible.
now are you saying that "conversion batcher" introduces third possiblity? so, like a program (ww for example) would just have to implement cb and it would be able to incode to whatever cb supports. so then a new cb is released supporting the new XXX encoder. and now, any program that encodes with cb will be able to output the new XXX format?
genius. especially if more programs were to support it.
johnman
8th November 2005, 12:30
now are you saying that "conversion batcher" introduces third possiblity? so, like a program (ww for example) would just have to implement cb and it would be able to incode to whatever cb supports. so then a new cb is released supporting the new XXX encoder. and now, any program that encodes with cb will be able to output the new XXX format?
genius. especially if more programs were to support it.
I believe you are beginning to understand it :D. Any program that supports CB can encode into any format CB supports. Still the other programs only need to send a simple job. BTW CB also support 2 commercial applications for encoding to ac3 and dts. For something like this its impossible to just make a custom build dll. So in some cases its absolutely needed to use an already excisting .exe.
Although i think its a pretty good solution i HIGHLY doubt cb will ever receive an encoding job from any other program then wavewizard. So thats why i try to make all other programs obsolete ;) (just joking ofcourse)
EDIT
ww v0.54 can only make and read wavs. The conversion to any other formats is done by CB, which is also included in the ww package.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.