Guys, I have noticed wild variations in loudness from one song to another during shows. One easy way to correct that would be a volume adjustment slider that could be set for each and every song. Would that be possible? Keep up the good work. :)
You might want to implement a normalization scheme such as the one documented by Savonet here. I like the idea that Airtime would allow normalization through the web UI. This can be very useful if the loudness varies a lot between various media files.
(This is the example provided in the liquidsoap documentation and it could be modified to work in ls_script.liq):
# Listen to your playlist, but normalize the volume liquidsoap 'out(normalize(playlist("playlist_file")))'
Thanks for the links guys. However, I would prefer a solution that allow the user to directly control the adjustment, think of it as a virtual "gain" button, like on a mixing board, or as the volume adjustment feature on the tracks' option menu of iTunes(right click on a track->select get info->select options tab->volume adjustement). That could also be easier to implement because there is no need to analyze the track. What do you think?
Not sure if we need that at the moment. Problem is that there is a huge delay when you are streaming over the net, and you could be fiddling with the volume and turning it too high, then too low as there is no immediate feedback to your ears.
Perhaps this is something that could be added in the future, but auto normalization is a much higher priority IMO.
One more advantage to having the levels set on the actual files in the library is if you are sharing the library with Mixxx, as we will, the levels are the same across the board for both playback situations.
Todd Fisher Wallin, Operations Coordinator - WDRT-FM Viroqua, WI
Our current implementation of ReplayGain (for Airtime 2.2) calculates the normalization value at import time and then stores this in the DB (similar to Rivendell as you mentioned). We don't actually touch the files.
Our assumption was that many users would not want their files touched or modified in any way.
Perhaps it would be nice to provide an option to normalize the actual file as well if the user wishes...
Post edited by Martin Konecny at 2012-07-31 23:32:08
I am not sure how Rivendell is doing their normalization on input. Perhaps some sort of compressor algorithm, but it doesn't work well, whatever they are doing. Perhaps they just don't allow high enough gain values to be set in the DB? My testing and use has indicated, that setting the max peak to 0dB seems to yield the best results when listening to the results on playback.
There is a nice advantage if sharing a library with Mixxx to having all of the actual files in the library at the same level. It would simplify our workflow to have the option to process all files on input instead of doing it manually before import, but isn't a deal breaker either.
Todd Fisher Wallin, Operations Coordinator - WDRT-FM Viroqua, WI
My experience in a production environment would suggest normalizing all tracks, based on peak amplitude, when importing into the library. This is something that was struggled with using rivendell in our case. Rivendell has the ability to set the playback gain for a track, and retain that in the database, but this proved troublesome and inadequate. Our solution is to set all of the playback gain values in the database to 0 and to use sox, or another application, to set all of the actual files to a peak level of 0dB.
When CDs are ripped, they are set to peak values of 0dB before being imported, and when local production is created, it is amplified to a peak value of 0dB before being exported from audacity.
Using replay gain is also going to wreck havoc with cross fading if things are not done properly.
Somethings are easier to tackle by standardizing your library instead of relying on the software to attempt to make all things equal on playback, as it inevitably fails on some tracks.
Todd
Todd Fisher Wallin, Operations Coordinator - WDRT-FM Viroqua, WI