Help - Search - Members - Calendar
Full Version: Front End Programming
Hydrogenaudio Forums > Misc. > Off-Topic
Pages: 1, 2
JEN
No one here knows this but I am a visual basic programmer. I am interested in developing a front end for some of the audio codecs in this forum. Can anyone point me to any useful links which I might find helpful. For example source codes!
westgroveg
http://www.dors.de/razorlame/index.php

QUOTE
After almost 4 years of working on mp3 encoder front-ends, I'm finally losing the interest in it personally. RL does what I want and need quite well, and while there certainly could be some nice improvements made, I'm just not feeling like I really should sacrifice my precious spare time on it.


It would be nice if someone could put the finishing touches on one of the best LAME encoding front-end.

IMO missing features:
-Encoding window resize problem
-read/write m3u playlists
-nogap support
-ID3 tags support
-Number of VBR frames used in histogram
M
Hmm... RazorLame was always one of the most highly-configurable (yes, I know "configurable" isn't officially a word; I'm a writer, and we're allowed to do things like that! B) ) LAME frontends around. But you said you were a Visual Basic programmer, and RazorLame was written in Delphi. The upside is that the source code for this frontend is available, but the downside is that I haven't the foggiest idea how to help you translate that to VB. However, if you felt up to adapting RazorLame for universal transcoding - that is, allow it to serve as a frontend for any codec-supported format - I'm sure it would be a much appreciated development.

RazorLame source code: http://www.dors.de/razorlame/rlsource.zip

I don't have links to all the various code sources for audio formats handy at the moment, but if your focus is developing frontends then perhaps you would be satisfied with precompiled binaries? A fair collection of binaries for lossless transcoding may be found at Mirror1 of RareWares (http://homepage.ntlworld.com/jfe1205/lossless_codecs.zip) which includes FLAC, LPAC, Monkey's Audio, OptimFrog, Shorten and WavPack. However, the WavPack binary supplied is only for decoding, and in order to encode WV files you will also need the full distribution. Here it is: http://www.wavpack.com/wavpack.zip

Binaries for lossy compression are not as conveniently grouped, but most of them (OGG, AAC, MPC, MP3, MP4, Speex...) may be found at the RareWares site. Go to http://www.inf.ufpr.br/~rja00/ and have fun exploring.

Westgroveg, you may have already found this one on your own, but Speek has made a wonderful frontend for LAME which already does most of what I've described above - AND it has gapless support and with the ability to add ID3 tags. Go here: http://home.wanadoo.nl/~w.speek/all2lame.htm

Hope some of that ramble was useful.

- M.
Jan S.
Here's my first shot at a frontend idea.

Each tab at the top should be a drop down menu...
At the sides you have buttons.

user posted image
Encoder: Drop-down menu with all possible encoders...ogg, lame, mpc, aac, flac, ape, optimfrog, etc.

Setting: encoder setting. with add button at the end to add your own encoder command-line.

Post prossesing: drop-down menu with checking...you should be able to check: albumgain, radiogain, and possibly some tagging thingy.



It should be possible to encode from every format. If the encoder doesn't allow input from the specific format the file should be decoded automatically to wav first.
madah
I've actually been working on a frontend like this for some time now, but it's not ready for release yet... it is fully configurable for each format you want supported, just like Jan S said. It also support pipes, so flac -> mp3 is possible, but this doesn't work perfectly yet...

It's written in Delphi and I'm considering releasing the source when it's done.

The gui is very similar to Monkey's Audio, here's a screenshot of an early version.

Expect a beta-release in a couple of weeks!
Jan S.
looks great!!! smile.gif
dunovant
QUOTE(M @ Sep 27 2002 - 10:52 PM)
However, the WavPack binary supplied is only for decoding, and in order to encode WV files you will also need the full distribution. Here it is: http://www.wavpack.com/wavpack.zip

  Hope some of that ramble was useful.

It certainly was (is!) useful to me. I couldn't find a link to the WavPack distribution on the web site.

Now, to continue work on a front end that doesn't bury newbies under more details than they can handle, and doesn't prevent hard-core types from getting at whatever they want to use.
Hanky
QUOTE(jenny @ Sep 26 2002 - 12:01 AM)
....developing a front end for some of the audio codecs in this forum.  Can anyone point me to any useful links which I might find helpful.

I bet you are aware of Speek's frontends for most of the codecs. They are small, simple and do the job. If you like to make them better, perhaps he will give you access to his sources.
Speek's frontends
JEN
Iv already spoken to him smile.gif
ChS
I have a front-end source in VB if anybody wants it as well. Based on the same original source as Speek's.
JEN
I'm interested! (w00t)

Is your code documented?
Volcano
QUOTE(ChS @ Sep 28 2002 - 10:29 PM)
I have a front-end source in VB if anybody wants it as well. Based on the same original source as Speek's.

You mean VBLamer? Oh my GOD, that prog was so UGLY! rolleyes.gif

Madah: Your frontend looks really good, I'm looking forward to the beta! Looks like this may become the "dream frontend" everybody here has missed until now. smile.gif
jcoalson
QUOTE(madah @ Sep 28 2002 - 08:02 AM)
I've actually been working on a frontend like this for some time now, but it's not ready for release yet...  it is fully configurable for each format you want supported, just like Jan S said. It also support pipes, so flac -> mp3 is possible, but this doesn't work perfectly yet...

It's written in Delphi and I'm considering releasing the source when it's done.

The gui is very similar to Monkey's Audio, here's a screenshot of an early version.

Expect a beta-release in a couple of weeks!

Is Delphi a Windows-only thing? The reason I ask is that I've also been working on a transcoder GUI (using wxWindows) since I don't know of any that are open-source and cross-platform (i.e. at least Windows, *nix, and Mac).

It's not prettified yet but it the basics are working if anyone has any suggestions. Check out the 'fui' module from FLAC CVS (http://sourceforge.net/cvs/?group_id=13478). fui does the processing in a separate thread so that you can mess with options, add more files, etc. while it's working.

Josh
B
Since replaygain is finding its way to more formats, a replaygain function should be added too. A automatic replaygain after encoding would be even better !
ChS
QUOTE(Volcano @ Sep 28 2002 - 02:11 PM)
QUOTE(ChS @ Sep 28 2002 - 10:29 PM)
I have a front-end source in VB if anybody wants it as well. Based on the same original source as Speek's.

You mean VBLamer? Oh my GOD, that prog was so UGLY! rolleyes.gif

Damn ugly for sure. But I un-uglified it somewhat. tongue.gif
SK1
About programming language choice..
Assembler RULES! smile.gif
As i've read in many places, nothing beats Assembler when it comes to speed.
Assembler is 3L|T3 smile.gif.
But hey, i'm not a programmer and know nothing about it so who am i to say anything... Don't listen to me, even i don't listen to me about things i'm not sure about smile.gif..
Steve
Assembler rules?

That depends on the application, SK1.

A frontend for a encoders should NOT be a processor intensive application, nomatter what language you're writing it in. I mean, really, these programs use VERY VERY LITTLE resources.

ASM would be overkill, you would waste way more time writing it than you'd really get in the end from any "speed boost".

You should write it in whatever language is easiest to you, whether it be VB, C, or whatever. It really doesn't matter in this case.
layer3maniac
QUOTE(jcoalson @ Sep 28 2002 - 02:36 PM)
Is Delphi a Windows-only thing?

Yes and no - there's Kylix for Linux.
Destroid
QUOTE(jcoalson @ Sep 28 2002 - 10:36 PM)
QUOTE(madah @ Sep 28 2002 - 08:02 AM)
I've actually been working on a frontend like this for some time now, but it's not ready for release yet...  it is fully configurable for each format you want supported, just like Jan S said. It also support pipes, so flac -> mp3 is possible, but this doesn't work perfectly yet...

It's written in Delphi and I'm considering releasing the source when it's done.

The gui is very similar to Monkey's Audio, here's a screenshot of an early version.

Expect a beta-release in a couple of weeks!

Is Delphi a Windows-only thing? The reason I ask is that I've also been working on a transcoder GUI (using wxWindows) since I don't know of any that are open-source and cross-platform (i.e. at least Windows, *nix, and Mac).

It's not prettified yet but it the basics are working if anyone has any suggestions. Check out the 'fui' module from FLAC CVS (http://sourceforge.net/cvs/?group_id=13478). fui does the processing in a separate thread so that you can mess with options, add more files, etc. while it's working.

Josh

@madah: Neat-o! Looks like the Matrix version of Monkey's wink.gif Very nice.

Very interesting to hear of a X-platfrom GUI frontend, it would be the first of its kind for audio codecs AFAIK. And that fui stuff sounds like a ingenius idea. I'm thinking it would be excellent if files were going to be processed with different formats/options: while the first file (i.e. FLAC->MPC -q5) is working a second file can be added (i.e. MAC->LAME --aps) and the user wouldn't waste time setting every file's options before encoding begins. Or maybe I should ask, is this the general idea?

QUOTE
About programming language choice..
Assembler RULES! smile.gif

blink.gif
AgentMil
Anything intuitive for a frontend is very much appreciated, examples are RazorLame and Speek's Frontends. Both are easy to use and learn, hard ones just serve to frustrate the user.

The design that Jan.S is a perfect example of what it should look like! biggrin.gif

Madah good work! Can't wait to see and use the real deal. biggrin.gif
Benjamin Lebsanft
great work, but please make it brighter!
dunovant
QUOTE(AgentMil @ Sep 29 2002 - 02:28 AM)
Anything intuitive for a frontend is very much appreciated, examples are RazorLame and Speek's Frontends. Both are easy to use and learn, hard ones just serve to frustrate the user.

Seriously tipping my hand here, because I'm still in the design phase, but I think in the digital music case, intuitive for beginners means:

1-The UI should focus on the jukebox functionality, since beginners will be using that the most. I'm thinking the default format should be a lossless one, since transcoding will likely be the second most common thing the user does. At least the sort of user I'm thinking about.
2-High quality defaults for ripping and transcoding. A new user should see, at most, a couple of radio buttons. Say, for ripping, a choice between archival quality, most efficient use of disk space and a compromise between the two. Each supported format will have defaults for each option. The transcoding defaults should be for speed.
3-Automatic tagging of ripped files with data from CDDB/FreeDB where available
4-A "normalized" tag editor. I'm thinking a tabbed dialog. First page should have the most common fields from the ID3v2. It should save the tags in whatever format the file type specifies without asking. Transcoded files should get ID3v1 tags, since it's most likely the user will be dropping the files in their portable MP3 player and that's the tag type most of the read (looking for correction here, if I'm wrong).

Intermediate and advanced users will get more options, but I'm not sure how to divide the functions up-maybe there should only be beginner and advanced like EAC does it. Also being a Delphi dude B), I'll be looking ate RazorLame for ideas.
jcoalson
QUOTE(Destroid @ Sep 29 2002 - 04:53 AM)
Very interesting to hear of a X-platfrom GUI frontend, it would be the first of its kind for audio codecs AFAIK. And that fui stuff sounds like a ingenius idea. I'm thinking it would be excellent if files were going to be processed with different formats/options: while the first file (i.e. FLAC->MPC -q5) is working a second file can be added (i.e. MAC->LAME --aps) and the user wouldn't waste time setting every file's options before encoding begins. Or maybe I should ask, is this the general idea?

Yep, each enqueued file has it's own options. When you add files they get enqueued with the current options. You can hit the start button and then while it's converting those, change options, add more files, etc. If I figure it out how to do it in wxWindows I'll add drag'n'drop of filenames for enqueuing.

Josh
SK1
"ASM would be overkill, you would waste way more time writing it than you'd really get in the end from any "speed boost"."
Yep, i understand...
And yeah, i've read that Assembler is very hard compared to other languages.
But still, it rules biggrin.gif....
12345
If transcoding options are meant to be implemented (which I think is a very good idea) I think the program automatically should add a "This file was transcoded from FORMATX" type of warning in a separate (or comment field, for formats that don't allow the creation of own fields) field when doing lossy -> lossy transcoding. A warning message should also pop up when doing lossy -> lossy in which you could click to be pointed to a document that really tells you WHY transcoding is bad.
I may express myself myself shitty right now... I'll blame it on being awfully tired. blink.gif
dunovant
QUOTE
If transcoding options are meant to be implemented (which I think is a very good idea) I think the program automatically should add a "This file was transcoded from FORMATX" type of warning in a separate (or comment field, for formats that don't allow the creation of own fields) field when doing lossy -> lossy transcoding.


I don't know . . . beginners will rarely see the message and folks like people in these forums will know already. And it's sorta why I think the default format should be a lossless one. The transcoding will then have the same output as an original rip.

QUOTE
A warning message should also pop up when doing lossy -> lossy in which you could click to be pointed to a document that really tells you WHY transcoding is bad.


Hm. Maybe. With a check box that says don't remind me anymore. After all, the intent is to help them get the best audio they can as easily as possible. I don't want to help them hurt themselves.

That would mean writing or finding an appropriate document, though.

Well, that's one to keep in mind. It'd be easy enough to add at the end of the process.
JEN
Hi

When do you guys think a frontend should have at standard selectable quality settings for the following codecs

MP3, AAC, MPC, OGG

A few settings best for beginner users?

What kind of quality settings would you like to see as experienced users on the standard screen

standard screen = for beginners - only the basics
advanced screen = for advanced users - full range of settings
Jan S.
Add lossless formats too...

And for settings I think it's best if the installation only have the most used settings and then you have an option to add your own settings.
Volcano
jenny:

QUOTE
When do you guys think a frontend should have at standard selectable quality settings for the following codecs

MP3, AAC, MPC, OGG

A few settings best for beginner users?

What kind of quality settings would you like to see as experienced users on the standard screen


I'd say, leave the quality settings as simple as possible for all users. You know what happens, everybody considers himself as "experienced", like release group ripper people for example, and comes up with shit like "--alt-preset cbr 192 -m s" etc.



MP3

VBR: --alt-preset standard (default)
--alt-preset standard -Y
--alt-preset extreme
--alt-preset fast standard
--alt-preset fast extreme
maybe --r3mix?

CBR/ABR: Any bitrate selectable, mapped to alt-presets.

No ability to set stereo modes, lowpass filters etc. ("simple stereo is better" / "hmm, preset xxx cuts off too much HF content, so I'll just set the lowpass to 22500 Hz", you know what I mean smile.gif)


Ogg Vorbis

Only VBR quality settings, no more.


MPC

Same here; only quality settings (perhaps with the names of the presets like "Standard" or "Xtreme", just to provide guidance for users who are used to the preset names).


FLAC

Only compression setting.


I can't comment on AAC since I'm not familiar with it.


For experienced users (real experienced users, not pseudo-experts), the ability to enter a custom command line could be provided. But I think even that is a step too far.

Just my 0.02€ smile.gif

CU

Dominic
Volcano
I forgot something.

When the mods at the German Audiograbber forum collected suggestions for the next version of the program, I drew up these "design studies" (or "dreamshots" wink.gif):

LAME configuration
Vorbis configuration
MPC configuration
FLAC configuration
User Defined Encoder configuration

That's my idea of keeping things simple and hiding the commonly misused options. smile.gif I know config dialogs like those wouldn't go into a frontend like that, but the available options should IMHO (except, perhaps, for the tagging, although that shouldn't even be too big a problem with Tag.exe).

CU

Dominic

<nitpick>PS: Note the "Tahoma" font used in the pics, as it should be done with any state-of-the-art GUI. biggrin.gif</nitpick>
dunovant
This thread is incredibly useful.

Speaking of off-topic, if I hit the "email topic" button, will the entire thread be sent ina single email? Because I want to save this for near-future reference.
JEN
QUOTE(Jan S. @ Sep 30 2002 - 09:03 PM)
Add lossless formats too...

And for settings I think it's best if the installation only have the most used settings and then you have an option to add your own settings.

Thanx for all the replies. I now have a good idea of which basic settings to include. However, I dont know anything about lossless formats, but as everyone seems interested in it, can you please tell me more about it.

1. how many lossless formats are there (i get the feeling theres more than 1)
2. f theres more than 1 should I include all of them
3. where can I download the codecs from
4. how good are they compared to aac, mpc, ogg, mp3

thanx for all the tips smile.gif
dunovant
QUOTE(jenny @ Sep 30 2002 - 01:27 PM)
1. how many lossless formats are there (i get the feeling theres more than 1)
2. If theres more than 1 should I include all of them
3. where can I download the codecs from
4. how good are they compared to aac, mpc, ogg, mp3


1- I know of WavPack (.wvc), FLAC (.flac), LPAC (.pac), Shorten (.shn) and Monkey (.ape).
2- I'm thinking of FLAC (because there's at least one portable player out there that supports it) and Monkey (because it gets a lot of good word-of-mouth-type press for its compression rate). The downside of Monkey, though, is the developer sez he's still working out the format, so one day he might make a necessary change that will require you to distribute a new dll to read files compressed by the latest version.
3- Check out the lossless forum here. In fact, my next question will be posted there.
4- Good? Well, lossless formats keep all the audio data, while lossy formats dispose of the parts it doesn't think you can hear anyway. Plus for lossy is, the compression ratios are MUCH better than lossless formats. Plus for lossless, you can reproduce the original sound perfectly.

Should you include support for one or more of them in your front end? Depends entirely what you think your prospective users (even if it's only you) will use it for. Which format? Again, the lossless forum here looks like a good resource. If you want to get REALLY nuts, each format is more or less effective depending on the content being compressed (classical, hip hop, metal, etc). The guys in lossless will have discussed this thoroughly and may be able to give you a link to the discussion.

EDIT: I found Speek's lossless format comparison pages. That may help you decide.
JEN
QUOTE(dunovant @ Sep 30 2002 - 11:44 PM)
QUOTE(jenny @ Sep 30 2002 - 01:27 PM)
1. how many lossless formats are there (i get the feeling theres more than 1)
2. If theres more than 1 should I include all of them
3. where can I download the codecs from
4. how good are they compared to aac, mpc, ogg, mp3


1- I know of WavPack (.wvc), FLAC (.flac), LPAC (.pac), Shorten (.shn) and Monkey (.ape).
2- I'm thinking of FLAC (because there's at least one portable player out there that supports it) and Monkey (because it gets a lot of good word-of-mouth-type press for its compression rate). The downside of Monkey, though, is the developer sez he's still working out the format, so one day he might make a necessary change that will require you to distribute a new dll to read files compressed by the latest version.
3- Check out the lossless forum here. In fact, my next question will be posted there.
4- Good? Well, lossless formats keep all the audio data, while lossy formats dispose of the parts it doesn't think you can hear anyway. Plus for lossy is, the compression ratios are MUCH better than lossless formats. Plus for lossless, you can reproduce the original sound perfectly.

Should you include support for one or more of them in your front end? Depends entirely what you think your prospective users (even if it's only you) will use it for. Which format? Again, the lossless forum here looks like a good resource. If you want to get REALLY nuts, each format is more or less effective depending on the content being compressed (classical, hip hop, metal, etc). The guys in lossless will have discussed this thoroughly and may be able to give you a link to the discussion.

EDIT: I found Speek's lossless format comparison pages. That may help you decide.

So even at the highest compression lossless will not loose any quality! is that what your saying?
vividos
Hi jenny,

I don't want to discourage you writing an all-in-one frontend, but it might take more time than you think (and maybe you want to spend). I started winLAME back in spring 2001, and it still isn't finished yet (but soon biggrin.gif), and I don't know how often I rewrote it. And it only supports LAME and Ogg Vorbis in terms of codecs. So there may be more work than you think.

Ok, developing in VB surely is easier as opposed to C++, so I hope this will get to something. Good luck! (btw, when I could/would rewrite winLAME, I would use a platform independent library for it, e.g. wxWindows).

bye
vividos
winLAME home page
JEN
This is what I have done so far

drag&drop, encodes wav to aac, mpc, mp3 and ogg using selectable quality settings from comboboxes. the gui its self is a big mess

I want to get everything working first!
justinj88
QUOTE(jenny @ Sep 30 2002 - 06:00 PM)
So even at the highest compression lossless will not loose any quality! is that what your saying?

Exactly! When the file is decompressed back to a WAV, it will be 100% identical to the original wav.

But an average losslessly compressed file is only compressed to about 50-60% of the original size, while lossy codecs compress music much more.

Personally, I think you should include support for FLAC and APE.
JEN
looks like I'v got a lot to do. I havent even thought of a name for the frontend yet!

Any suggestions?
ChS
QUOTE(jenny @ Sep 30 2002 - 03:12 PM)
looks like I'v got a lot to do.  I havent even thought of a name for the frontend yet!

Any suggestions?

I like the sound of "iJenny XP SX Profesional Gold Edition Frontend System 2003"?
dunovant
QUOTE(jenny @ Sep 30 2002 - 03:07 PM)
This is what I have done so far

drag&drop, encodes wav to aac, mpc, mp3 and ogg using selectable quality settings from comboboxes.  the gui its self is a big mess

I want to get everything working first!

Interesting. This is my first audio project, so I'm studying the tech while figuring out the GUI. I'll be working the GUI first, with stub routines for the actual encoding. So I'm sorta working it in the opposite order that you are.

I'm curious--are you building around command line encoders or working with DLLs?
JEN
Im building around command line arguments
JEN
QUOTE(ChS @ Oct 1 2002 - 12:32 AM)
QUOTE(jenny @ Sep 30 2002 - 03:12 PM)
looks like I'v got a lot to do.  I havent even thought of a name for the frontend yet!

Any suggestions?

I like the sound of "iJenny XP SX Profesional Gold Edition Frontend System 2003"?

huh.gif

any other suggestions tongue.gif
JEN
What would you classify .wav as lossy or lossless?
Jan S.
QUOTE(jenny @ Oct 1 2002 - 03:22 PM)
What would you classify .wav as lossy or lossless?

argh!! lossless! It's the uncompressed source!
JEN
user posted image
bryant
QUOTE(jenny @ Oct 1 2002 - 05:22 AM)
What would you classify .wav as lossy or lossless?

I would say that .wav files are neither lossy nor lossless because those words describe compression and .wavs are not compressed.

Well, at least most of the .wavs around here are not compressed. It's possible to have .wav files that are compressed with ADPCM or MP3 (and others), but most command-line programs that accept .wav files as input do not accept those kind of .wavs (but most Windows utilities do).

Gee, that probably didn't help much! sad.gif
rjamorim
QUOTE(Jan S. @ Oct 1 2002 - 10:24 AM)
QUOTE(jenny @ Oct 1 2002 - 03:22 PM)
What would you classify .wav as lossy or lossless?

argh!! lossless! It's the uncompressed source!

Wrong.

WAV is not an audio format, people. It's a container (for audio formats).

Inside, you can put PCM audio samples (that's the "uncompressed source", lossless), but you can put compressed audio as well, like ADPCM, MP3, ATRAC3, Vorbis, AAC, a-Law, GSM, VoxWare, ACELP.NET...
Jan S.
QUOTE(rjamorim @ Oct 1 2002 - 07:30 PM)
QUOTE(Jan S. @ Oct 1 2002 - 10:24 AM)
QUOTE(jenny @ Oct 1 2002 - 03:22 PM)
What would you classify .wav as lossy or lossless?

argh!! lossless! It's the uncompressed source!

Wrong.

WAV is not an audio format, people. It's a container (for audio formats).

Inside, you can put PCM audio samples (that's the "uncompressed source", lossless), but you can put compressed audio as well, like ADPCM, MP3, ATRAC3, Vorbis, AAC, a-Law, GSM, VoxWare, ACELP.NET...

Believing that almost always a wav is PCM, a wav file almost always mean the lossless source.

But technically yes...you're right.
JEN
How do you get wav to contain aac. If that can be done, will it play like a normal wav file in standard players (portable and software)?
JEN
I have a question about audio licences. If I ever get this front end finished, and I decide to share it with everyone on the internet, will I need to get the licence to use mp3, mpc, aac and anyother audio codec which is not free?

user posted image
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.