In 1-2 weeks, we will roll out a new TKaroakeUSB build that will support auto volume. When turned on, it will automatically change the preamp volume when the playing songs that are too soft or too loud. This effectively allow you to play any song on your collection w/o having to adjust the volume manually to avoid having too soft or too loud sound. This feature will soon roll to TKaraoke Android and TKaraokePro.
The approach that we take to implement this feature is different than traditional AGC (auto gain control). The AGC feature in TKaraokePro now using VST effect is a type of AGC. Honestly, I don't like any AGC that are out there, especially the China-made one under $100. In theory it claims to normalize the auto but in practice, it can make your songs-that-already-sound-good sounds bad. The reason why traditional AGC can't do well is because they have to process in real-time and w/o causing too much delay, they can only analyze based on millisecond worth of audio data to determine the appropriate volume. This limited data can cause it to make the wrong decision, causing negative effects.
The approach we are using is similar to
ReplayGain. We analyze the entire song offline and use this data to adjust the volume when playing the song. This allows us to avoid the two major problems that AGC has: real-time processing requirement and incomplete audio data. With this approach, the entire song is amplified or de-amplifed
by the same factor, one quality advantage that AVC can't guarantee because it doesn't have complete knowledge of the entire song. Effectively, our approach is like what you normally would do w/o the auto volume feature: pick up the remote and change the volume when the playing song is too soft or too loud. Note that you change the volume for the entire song, not part of it and then change again in another part of the same song!
Note that our approach is better than normalizing the audio tracks and mux them back into the video file. This encoding of audio files will lose quality and a bad normalizer decision cause permanent damage to the song - you replaced the original audio tracks w/ the encoded one. Our approach doesn't re-encode the audio tracks at all.- hence, no audio quality loss and future builds can make changes to the normalizer decision w/o any side effect because the audio tracks of the song were not temperated with by the older builds.
Our approach has many advantages but also came with one big disadvantage: it takes time to analyze the songs up-front! On a 40000 songs collection, it's estimated to take over a week to finish analyzing the volume data of all the songs. This is a one-time cost that must be done to have the volume data ready when TKaraoke play your songs.
I will provide the songs volume data for my collection so if you bought a package from me, you'll are all set. I will release the tool later so that you can use it to gather volume data for your own collection as well. TKaraokePro can analyze the data on-the-fly but it's recommended to perform offline analysis to improve performance.
Comments and suggestions are welcomed. My initialize testing of this feature shows that it works very very well. I'm excited to use this feature on my next karaoke party.
Demo:
Edited by user Monday, October 16, 2017 8:45:29 AM(UTC)
| Reason: Not specified