Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: New Audio File Conversion Tool (Read 15855 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: New Audio File Conversion Tool

Reply #25
You ever thought about calling it Ferocious SRC? Because it occurred to me that it is a sample rate converter not a file converter.

Re: New Audio File Conversion Tool

Reply #26
You ever thought about calling it Ferocious SRC? Because it occurred to me that it is a sample rate converter not a file converter.
It does both of those functions :-)

1.convert sample rate
2. change file file format.

However, we still have the basic problem that resampler.exe actually does all the converting, whereas ferocious is a controller. So, the semantics are indeed a bit messed up.

Anyway, thanks for the suggestions - rest assured I am giving this all some serious thought - unfortunately, you have to give a project a name when you start it, and sometimes the name just sticks.


Re: New Audio File Conversion Tool

Reply #28
Is one able to select the files in the file open dialog? I must admit I find the pattern matching thing a bit unintuitive.

Re: New Audio File Conversion Tool

Reply #29
Is one able to select the files in the file open dialog? I must admit I find the pattern matching thing a bit unintuitive.
Ok, thanks for the feedback. The idea behind the wildcards is simply so that if you have a folder full of files that you want to convert, you just select one of them, and then type over the last bit of the filename to change it from, for example, e:\music\abba\dancingQueen.wav to e:\music\abba\*.wav and it will process all .wav files in the e:\music\abba folder.

I hear what you are saying about multiple file selction, and I'm planning that as well, but it will have to be for a future release, as there will be quite a bit of code involved.

Re: New Audio File Conversion Tool

Reply #30
3. Add option for FLAC compression level.

On another note, I have just managed to get the flac compression level setting working. I need to test it fully before releasing, though.

Initially, I tried adding an additional textbox on the main screen to take the compression level, but that design just wasn't working. So, I'm putting it in the Options menu, under  Compression Levels >> flac.

I'm doing a similar thing for Ogg Vorbis.

The settings will be persistent.

Re: New Audio File Conversion Tool

Reply #31
I'm pleased to announce that the latest release of Ferocious (v1.0.7) now has Minimum Phase conversion (in addition to Linear Phase).
Ferocious v1.0.7

I don't mind admitting that coding the algorithms to do this was pretty tough (for me, anyway - probably easy for someone who is much smarter than I ... :P ). Very educational, though ... learned a lot in the process !
The min-phase filtering is performing well, but I may need to do some tweaks to the cutoff frequency / sidelobe attenuation, so it's still a WIP ...

I also added some tooltips to the GUI - these can be switched off if/when they become annoying, via the menu.





Re: New Audio File Conversion Tool

Reply #32
3. Add option for FLAC compression level.

On another note, I have just managed to get the flac compression level setting working. I need to test it fully before releasing, though.

Initially, I tried adding an additional textbox on the main screen to take the compression level, but that design just wasn't working. So, I'm putting it in the Options menu, under  Compression Levels >> flac.

I'm doing a similar thing for Ogg Vorbis.

The settings will be persistent.

As promised, the latest build (v1.0.8 ) allows you to set the compression level for flac (0 - 8 ) , and the quality level for vorbis (-1 - 10). This is available under the "options" menu. The settings are persistent (will be remembered the next time you start the app)

(Please note that as of the last 2 versions, an additional dll (libfftw3-3.dll) is required to be in the same folder as resampler.exe. This is because FFTs are required for the minimum-phase calculations, and therefore I used the fftw library.)

Re: New Audio File Conversion Tool

Reply #33
Hey...nice. Linear and min phase are in the GUI!!

Looking great!


Re: New Audio File Conversion Tool

Reply #34
Using the latest GUI from today:

1. It will say not responding when converting (even though it is working fine).
2. The converter output remains blank when doing a batch conversion (probably shouldn't so user doesn't worry if working or not). Once processing is done the screen will fill.
3. In batch mode, the current file being processed is stated just near the bottom of the GUI, but never increments as a new file is processed.
4. On my screen the file name being processed has processed misspelled...says "rocessed"

Re: New Audio File Conversion Tool

Reply #35
Using the latest GUI from today:

1. It will say not responding when converting (even though it is working fine).
2. The converter output remains blank when doing a batch conversion (probably shouldn't so user doesn't worry if working or not). Once processing is done the screen will fill.
3. In batch mode, the current file being processed is stated just near the bottom of the GUI, but never increments as a new file is processed.
4. On my screen the file name being processed has processed misspelled...says "rocessed"

Thanks for the feedback - much appreciated. I think the whole multi-file processing engine needs an overhaul. I'm on it ...

Re: New Audio File Conversion Tool

Reply #36
Using the latest GUI from today:

1. It will say not responding when converting (even though it is working fine).
2. The converter output remains blank when doing a batch conversion (probably shouldn't so user doesn't worry if working or not). Once processing is done the screen will fill.
3. In batch mode, the current file being processed is stated just near the bottom of the GUI, but never increments as a new file is processed.
4. On my screen the file name being processed has processed misspelled...says "rocessed"

Build v1.0.9 should address those issues. It now has multiple-input-file selection, and it also has a multi-line editor to edit the list of files (or paste them in from clipboard if you really wanted to ...).
 
There are also "clear" buttons on the input and output filename boxes, for convenience.

When in multi-file mode, the output filenames are automatically generated according to the rules you set in "Output File Options". 
(I tried doing it various other ways, but they were getting way too complicated)
 
The problems with "Not responding" notifications and not updating the output window should be completely gone now.

I will update the documentation shortly. Ferocious File Conversion

Re: New Audio File Conversion Tool

Reply #37
I love this update...especially the flashing green conversion button!

A couple of notes:

1. I have not used the GUI for a while...just busy, but was at first disappointed that the Autoblank was missing...but there it was when dither was clicked! I just forgot. So, maybe it is useful to always have it displayed and greyed out if dither option is not used. It is the only option not presented anyway, so why not have it up?

2. Do you think having a prevent clipping box under normalization would be useful? I've never really understood the normalization values. With r8brain, SoX and others, they have prevent clipping options. No sure if you think it is a good idea or not.

3. Have a suggested dither amount populated. I'm not sure again what a dither of 1, vs 1.5 really means. Maybe it is just me.

Overall nice job!!!

Re: New Audio File Conversion Tool

Reply #38
Thanks very much for the feedback. I really appreciate you taking the time to test it out.

I love this update...especially the flashing green conversion button!

A couple of notes:

1. I have not used the GUI for a while...just busy, but was at first disappointed that the Autoblank was missing...but there it was when dither was clicked! I just forgot. So, maybe it is useful to always have it displayed and greyed out if dither option is not used. It is the only option not presented anyway, so why not have it up?

2. Do you think having a prevent clipping box under normalization would be useful? I've never really understood the normalization values. With r8brain, SoX and others, they have prevent clipping options. No sure if you think it is a good idea or not.

3. Have a suggested dither amount populated. I'm not sure again what a dither of 1, vs 1.5 really means. Maybe it is just me.

Overall nice job!!!

1. Autoblank is only relevant when dither is activated, Originally, I did have it disabled (rather than hidden) when dither was deactivated, but I didn't like the aesthetics of the way Qt rendered the disabled button - maybe I can work on it a bit with some css styling tweaks !

2.  Clipping protection is always activated - whenever clipping occurs, the program will notify you and run a second pass with an adjusted gain level to avoid clipping. The normalization values are 1.0 = maximum level (100%), 0.0 = silence (0%), anything between will give you something in between. eg 0.5 = half. Actually,  0.5 is about -6dB in decibels because of the logarithmic nature of hearing - to convert gain to dB, you use the formula dB=20*log10(gain)
It works the same way as Cool edit's normalize function except the latter uses a percentage (ie 0-100), whereas mine uses the equivalent range (0-1)

3. Done - I have pre-populated it with 1.0, and this will be in the next release.
I'm not sure how else I can explain the dither setting other than it represents how much dither to add. A lot of pro sound programs I know (eg Ozone, Cool Edit Pro, Samplitude etc) work the same way. For example, in Cool Edit Pro's "Convert Sample Type" function, it has "Dither depth (bits)" and the default is 1.

Anyway, once again - thanks very much. I will endeavour to make it as user-friendly and useful as possible.

Cheers,
Judd
 

Re: New Audio File Conversion Tool

Reply #39
sounds good!!

when you say:

Quote
2.  Clipping protection is always activated - whenever clipping occurs, the program will notify you and run a second pass with an adjusted gain level to avoid clipping. The normalization values are 1.0 = maximum level (100%), 0.0 = silence (0%), anything between will give you something in between. eg 0.5 = half. Actually,  0.5 is about -6dB in decibels because of the logarithmic nature of hearing - to convert gain to dB, you use the formula dB=20*log10(gain)
It works the same way as Cool edit's normalize function except the latter uses a percentage (ie 0-100), whereas mine uses the equivalent range (0-1)

What happens if one does not fill in a value for normalization?

I am under the impression that normalization changes overall volume to reach a fixed target level. And I think you only do this to either get the maximum volume you can or to match volumes. If one is simply re-sampling audio from, say 192/24 to 44.1/16, you really only need to worry about clipping, which is why some SRCs have a "Prevent Clipping" option. If yours already does this sanity check, then what is the default normalization value? I would think in most cases one would not want to have any value there? Seems to me this is the case, as I think normalization it technically destructive, even at 32-bit float.

Also, you interested in adding a "Stop" button to the gui?  Not sure if easy or necessary.

Re: New Audio File Conversion Tool

Reply #40
What happens if one does not fill in a value for normalization?

Normalization is not activated unless you tick the Normalization box.
If You Tick it, and do not enter a value, it will default to 1.0

Quote
I am under the impression that normalization changes overall volume to reach a fixed target level. And I think you only do this to either get the maximum volume you can or to match volumes.
Yes, but technically it's the peak level. Normalization forces the peak level to be a particular level. In my app, if you switch normalization on, and set the value to 1.0, it will force the peak level to be 1.0 (ie maximum).
If you activate normalization, and set the value to 0.8, it will force the peak level to be 80% of maximum.

If you don't switch normalization on, it won't do this.

Quote
If one is simply re-sampling audio from, say 192/24 to 44.1/16, you really only need to worry about clipping, which is why some SRCs have a "Prevent Clipping" option. If yours already does this sanity check, then what is the default normalization value? I would think in most cases one would not want to have any value there? Seems to me this is the case, as I think normalization it technically destructive, even at 32-bit float.

It doesn't normalize unless normalizing is switched on. It runs the conversion, and keeps track of the peak level. If the peak output level doesn't exceed the maximum level, then great - conversion completed.
If, for whatever reason (usually due to filter overshoot), the peak signal exceeds the maximum value, then this is counted as clipping. The program keeps track of how much it exceeded the maximum level by, and then runs a second conversion, but this time with the level scaled down by the same amount as what it exceeded the maximum by, so that clipping won't happen the second time around.

Anyway, i don't really understand why anyone would actually want clipping (other than for experimental reasons), so the clipping protection mechanism is always on. 

Also, when you are going from 24-bit to 16-bit, I think you seem to be under the impression that 24-bit "goes louder" than 16-bit (and thus could potentially cause clipping), but the usual interpretation is that 0dB FS in 24bit is the same as 0dB FS in 16-bit (ie they both have the same maximum level). The difference is that the extra 8-bits of resolution in 24-bit are used for the "quiet" parts, so 24-bit is capable of going much quieter than 16-bit relative to the maximum level (-144dB vs -96dB respectively). This is the reason why dither is used when going from 24-bit to 16-bit (to try to preserve some of the lost resolution, which would otherwise be lost through truncation).

Now, about this "destructive" thing - If normalization is destructive ( a simple linear scaling of the data by a constant factor), then running your signal through a Low-pass Finite Impulse Response filter (Necessary to do resampling) must be significantly more destructive, because it has a large number of multiplications and additions performed on every sample, which theoretically introduce small, but cumulative arithmetic errors. In other words, the evils of normalization or any type of gain change are nothing compared to something like running a basic DSP filter.

Quote
Also, you interested in adding a "Stop" button to the gui?  Not sure if easy or necessary.

Absolutely - are you reading my mind ? :-)
Stop / pause / abort / save project ... etc - all in good time :-)

Re: New Audio File Conversion Tool

Reply #41
sounds good!!

What happens if one does not fill in a value for normalization?


I have given this some thought, (and in anticipation of what I suspect you may ask me next :-) - apologies if I was wrong ...) , I have populated the Normalization value with a default of 0.999 (99.9%) - I chose this instead of 1.0 because the conventional wisdom says that there is still some (mostly older) hardware out there with analog restoration filters that clip under some circumstances when given a Full-Scale digital signal. I don't know if this is still relevant these days, but it's just a precaution. I'm open to feedback if anyone can elaborate on it.

Cheers,

Re: New Audio File Conversion Tool

Reply #42
Quote
Yes, but technically it's the peak level. Normalization forces the peak level to be a particular level. In my app, if you switch normalization on, and set the value to 1.0, it will force the peak level to be 1.0 (ie maximum).
If you activate normalization, and set the value to 0.8, it will force the peak level to be 80% of maximum.

If you don't switch normalization on, it won't do this.

So, just to be clear, by utilizing your setting of 1.0, the volume of the audio file will be as loud as possible given the peak volume calculated at 0 dBFS, since normalizing to this value will make the "loudest" file subject to your prevent clipping detection? I've never normalized any audio..I don't record any and I figure the music I have is fine on its own, so I'm just trying to educate myself.  Do you use normalization?  If so, why?


One final thing, with long path names, sometimes the S in "Status: processing" gets cut off in the bottom of the GUI, maybe wrap it? Seems like enough room to wrap.

cheers!

Re: New Audio File Conversion Tool

Reply #43
So, just to be clear, by utilizing your setting of 1.0, the volume of the audio file will be as loud as possible given the peak volume calculated at 0 dBFS, since normalizing to this value will make the "loudest" file subject to your prevent clipping detection?

yes, setting it to 1.0 will force the peaks hit the maximum possible level, and make the file as loud as it can safely be (whilst still preserving the relative dynamics of the music). However, always keep in mind that the peak level and the "loudness" are two different, but related things.

For example, in contrast to normalizing, if you were to use a limiter or compressor, you could "squash" the dynamics of a track to make it sound louder, even though the peak levels are still the same. This is the basis of the dreaded "loudness war" which plagues so much of music mastered in the last 10-15 years.

Quote
I've never normalized any audio..I don't record any and I figure the music I have is fine on its own, so I'm just trying to educate myself.  Do you use normalization?  If so, why?

You need to have a specific reason to normalize.

Do I normalize my whole music collection ? No. and I don't recommend it - If you have some audio that has already been professionally mastered (which all professional releases should be), then just leave things alone.
 
However, there are other situations where normalizing is appropriate:
For example, suppose you are creating a sample library, to be played back on a MIDI keyboard. You are sampling an instrument (let's say a tenor saxophone), and you want to sample every note on the instrument. You want each of the samples to be as consistent as possible, So, you would probably want to normalize them so that they are all at a consistent level. (Later, you will be setting the attack/decay/sustain/release/ loop points etc for each note, and it's actually really hard work - I did this sort of thing once, years ago)

Another (more common) example, is when someone has given you a video (or just audio) recording to clean up and, for whatever reason, when they captured it, the microphone levels were not set up properly, and they are too quiet. In this situation, one of the first things you would consider doing is normalizing it, to get the level up. (Then you might consider some audio restoration techniques such as noise reduction etc, depending on how poor the quality of the source material).

Another application is in forensic audio, where you might need to amplify something really quiet.

Or, another situation (which I recently have been in), is testing out the dithering in my app - In order to really hear what it's doing, i sometimes normalize it to hear it up close (like a microscope for audio).

But to sum up - should you be using normalization on your pristine hi-fi. hi-rez audio ? I don't think so, unless you have a specific reason to do so.
  
Quote
One final thing, with long path names, sometimes the S in "Status: processing" gets cut off in the bottom of the GUI, maybe wrap it? Seems like enough room to wrap.

Ok, thanks - I'll look into it.

 

Re: New Audio File Conversion Tool

Reply #44
here is what I meant by the S being cut off


Re: New Audio File Conversion Tool

Reply #45
New build fixes display issue....nice.

What else can I complain about???


Re: New Audio File Conversion Tool

Reply #47
maybe saving tags upon conversion? Is that possible?

Re: New Audio File Conversion Tool

Reply #48
maybe saving tags upon conversion? Is that possible?
Hey, yes, tagging would be possible for those formats which support metadata (tags) in the file.
However, I'd really like to get the UI design right for doing this, so I want to take some time to get it right.

Also, please note that the most recent build of Ferocious has a progress bar, which should help to give the app a more responsive feel.
The 64-bit binary is available here ferocious-converter64.zip (click on "View Raw" to download the zip file).

Re: New Audio File Conversion Tool

Reply #49
thank you for making this tool. I wanted to convert an entire folder of files on a NAS. I can select all the files i want to convert when i 'browse' to the directory. However, I cannot specify the output directory. I tried typing in 'c:\music\*.flac' but when i hit the save button, nothing happens. I read the wildcard usage pdf but it seems, wildcards don't work in windows?