ReplayGain

Amarok 1.x Scripts

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net

1
5.7
Description:

amaroK replaygain
v1.0.0-beta5 by Miguel Angel Alvarez (maacruz at gmail.com)
October 20, 2007

An amaroK script to normalize volume using the replaygain method
Now on your language: english, spanish, german, hungarian, french, russian, slovak, finnish, polish, portuguesse, italian, turkish, swedish
(more translators wanted!!!)

Using replaygain will make all your songs have the same perceived volume, making unnecesary to adjust the volume on each song change (specially if they are from different albums/artists)


--Release Notes--
1.0.0beta5: Workaround for amarok saving playlist with non valid utf8 characters, which in turn would cause the script to crash. The internal scanner for wma/asf files is now x10 faster.
1.0.0-beta series:
Major enhancements and new features.
Support for streams: now streams can be scanned. The scan must be manually started in track mode. It will rip 60 seconds and set the gain accordingly, so some variance can be expected. The stream must broadcast normalized somewhat for this to have any sense. Requires mplayer.
Support for wma: Using a new internal scanner (only for wma for now, but soon to be expanded for all filetypes). It is quite experimental but since beta5 it is very fast and will use 3dnow on AMD cpu's. Requires mplayer.
Autoscan mode: now replaygain will autoscan the playlist when it is modified (files are added or removed). The autoscan only can do track mode. Streams are not autoscanned (by now). The autoscan starts after a configurable amount of time once the playlist has changed, to avoid putting the cpu under high load during track change in dynamic playlists. Autoscan runs in a separated thread, so replaygain works while the scan is in progress; beware that the manual scan still runs in the main thread (the script will not work on anything else). Autoscan can be enabled/disabled using the playlist context menu, if you want to stop a running autoscan simply disable it; starting a manual scan will also stop a running autoscan; changing the playlist while autoscan is running will let it finish the current file and start a new autoscan. Requires amarok>=1.4.6 and python-xml
New anti-lag meassure: the script follows the playlist and will guess the next track to be played, avoiding to query amarok. Only works if amarok is not playing in random track mode. Requires amarok>=1.4.6 and python-xml.
Minor improvements:
The scripts keeps you informed while a scan is in progress (previous versions only informed when the scan started and finished).
The configuration dialog now informs you of what's supported and any dependency unmet.
Memory usage has been reduced
Files are checked if writeable before scanning them (many thanks to dAniel hAhler http://daniel.hahler.de/ for suggestion and patch)
Volume is updated if the current playing file hadn't replaygain tags after it is scanned (manually or automatically)
More bugs
--End of notes--

Please report any bug

Files supported:
vorbis (ogg), mp3, aac (mp4/m4a), flac, musepack (mpc), wma/asf

Dependencies:

Needed:
kdebase3 (kdialog and dcop), python 2.3 or later, and UTF8 filesystem character set (to use national characters in the filename).
Optional:
pygtk (python-gtk) for the advanced configuration interface.
python-xml for easy playlist album scanning, autoscan, lag-reduction
mplayer, oggenc (vorbis-tools), vorbisgain for streams and wma support.
kdebindings3-python for lag-reduction
The following external utilities:
. metaflac (flac): to apply replaygain tags on flac files. This is likely a standard package on your distribution
. vorbisgain: to apply replaygain tags on vorbis ogg files
. aacgain: to apply replaygain tags on mp4/m4a aac files (works for mp3 too)
. mp3gain: to apply replaygain tags on mp3 files. Not needed if you have aacgain
. replaygain (musepack): to apply replaygain info on mpc (musepack) files.
. mplayer plus oggenc (vorbis-tools) and vorbisgain: to apply replaygain tags on wma/asf files and streams.

Where you can get the needed utilities:

Check your distribution's software repositories first.
Guru's page for SuSE Linux has mp3gain and vorbisgain. (http://linux01.gwdg.de/~pbleser/rpm-navigation.php?cat=Sound/)
Packman has musepack packages (they include replaygain) for SuSE Linux (http://packman.links2linux.de/)
Musepack home page (http://www.musepack.net/index.php?pg=lin)
Vorbisgain home page (http://sjeng.org/vorbisgain.html)
mp3gain home page (http://mp3gain.sourceforge.net/download.php)
aacgain home page (http://altosdesign.com/aacgain/).
mplayer home page (http://mplayerhq.hu

How to use
First you need to analyze all your song files using replaygain. The replaygain algorithm calculates a perceptual volume (gain) for each track (track mode) and album (album mode) and uses this information to correct the playback volume so all tracks or albums sound equally loud. In album mode the relative differences between tracks of an album are preserved, so more quiet tracks will sound more quiet, and louder tracks will sound louder. Album mode is better for live recordings and albums meant to be more than a collection of tracks, while track mode is better for heterogeneus mixes and compillations.
This analysis will not change your file's sound data, it will store the information in tags.

You can analyze a stream, file, album or your whole collection from the playlist's context menu:
Apply Replaygain tags->
-- To selected files in track mode: tag one or more files (as selected in playlist) with their respective track gain (track mode).
-- To playlist in album mode: tag all files in the playlist with both album and track gain tags (album mode), as if the playlist is one album.
-- To entire collection using album tags: the script will group the files in the database using their "Album" tag, and scan each group in album mode.
-- Autoscan: if this is activated, files in the playlist will be automatically tagged (track mode tags only).
It is recommended to have python-xml installed for album tagging (if not installed, playlist tagging as such and autoscan will not be available).

Once a file is tagged with replaygain data, the script will be able to read such tags and it will update the volume as needed.

The mode tags used are selected from the playlist context menu:
- Replaygain mode: which mode will use (track or album)

If a file doesn't have replaygain tags or it is of an unsupported type, it will be played at the default gain.

You can configure the script's operation in the configure script dialog. The most important parameters are:
- Pregain: this is the reference gain in dB (from the 0 point set at 55% volume in amarok). The range goes aproximately from 11 dB to -17 dB. Any replaygain volume correction will be relative to this gain, so you should leave enough space in the range for the script to work. The recommended value is 6.0 dB.
- Peak protection: If enabled, the volume may be adjusted to avoid clipping.
- Default gain: this is the assumed gain for files with no replaygain information. A good value could be -6.0 dB.
- Autoscan delay: amount of time in seconds between the playlist change and the autoscan start. Avoids reacting too quickly to manual playlist changes, and most important, clogging the CPU at track change when using dynamic playlists.

Crossfade is supported, so the volume changes slowly when crossfading.
You have also the option of sudden or smooth volume change when crossfade is disabled in amarok.

Lag reducing howto
Some people are affected by large lag between track change and the replaygain volume update
Lag seems caused by amarok itself by taking too much time to return from dcop calls.
This has been related to high cpu load caused by sqllite and cover image rendering.
So, if you are affected, what can you do?
In amarok 1.4.6 and later the script keeps track of playlist changes, to guess what the next song is and tell amarok to adjust volume inmediatly, needs python-xml and only works if track are played secuentially.
The cpu load for using sqllite has been reduced in 1.4.0 and later, and if you are using 1.3.9 you can apply the patch included in the amarok replaygain script package. Install either of those. Using a external database may be a good idea if you have a large collection, too.
Install kdebindings3-python to take advantage of new script's code.
If you are using the script's OSD control (the "Disable OSD during...." option) disable the OSD or uncheck the script option, it couldn't be optimized because of bugs in pykde
To see how cover rendering affects you, you can move your covers elsewere (try with an author or two) so they are not found. Large cover files may have a big impact, if this is the case, use gimp to reduce them.
Run amarok minimized in the tray, it will not update visual elements saving much time.
Resource intensive software affects too (some screensavers, p2p, ...)
During this beta release debug output is enabled. Have a look at your lag (in seconds) by typing in a konsole/xterm:
tail -f ~/.kde/share/apps/amarok/scripts-data/replayggain.log|grep time
As a reference, my lag is well under 0.1 s (usually 0.01-0.05)


Feedback appreciated.

Enjoy!
Miguel Angel
Last changelog:

13 years ago

0.1-0.3.3
Old vorbisgain releases

0.5-beta "Reborn"
Major rewriting, now it is python
Renamed to replaygain
Add Album and peak support
New nice pygtk interface
Thanks to Kevin Radloff and Jocke "Firetech" for their suggestions and testing

0.5
Uses the new (since amarok 1.3.2) readConfig dcop calls if available, now the script is aware of amarok configuration changes
Added support for musepack (mpc) files

0.5.5
Added support for AAC (mp4/m4a) files
The script checks for external utilities when closing the configure dialog

0.6 "Clean OSD"
New option to disable osd updates during volume changes solving the annoying quick osd changes
Changed detection of external utilities since mp3gain has different behaviour depending on its version (thanks Jocke for pointing this out)
Settings are reread only when the engine starts playing, not at every song change
Fixed the check for external utilities so it solves the "mp3gain not found" missleading message, and a typo which prevented using aacgain when present.
Fixed flac on latest flac releases (thanks Gary Virta)
Changed the "utility not found" dialog to a less annoying notification
Many optimizations and speedups
Thanks Jocke and Roberto for all your testing

0.6.1
Hotfix: fix script breaking on amarok older than 1.3.2 when osd is disabled

0.7
Many new configuration options, not all can be accesed through the kdialog interface
Clipping protection may be disabled so volume doesn't go to 0 on some broken mp3 files
Pregain (volume reference level) may be adjusted by moving the volume slider
Pregain is now adjusted to tenths of dB instead of integer dB
The volume transitions may be smoothed over any specified amount of time when crossfade is disabled
Accurate timing so crossfaded/smoothed volume changes don't take longer than they should
Pygtk interface now has help as tooltips
Changes in script configuration take effect inmediately instead of waiting till next song
Script configuration is saved when amarok stops playing

0.7.1
Added support for mp3 files tagged with foobar (id3v2 tags), it requires id3v2 installed
SIGTERM handler

0.7.2
Added context menu shortcut to change replaygain mode

0.8.0
Internacionalization. Spanish translation.
New option to set the gain (volume) for files without replaygain info (or unsupported files).
Context menu options to apply/delete replaygain tags to playlist/collection. It is recommended to have python-xml installed for almbum tagging.
Some bugfixes

0.8.1
German, french and hungarian translations

0.8.2
Hotfix: do not break while scanning collection if unsupported file has no album tag.

0.8.3
Fix problems with special shell characters in filenames

0.8.4
Fix breaking if enviroment LANG variable is not set (assumes ISO8859-1 charset)

0.8.5
Fix encoding strings headache caused by gettext not returning unicode strings

0.8.6
Couple of small fixes

0.9.0
This release is designed to reduce lag (thanks Stewie for all your testing). Requires installing kdebindings3-python (aka python-kde) to take advantage of new code. Uses pykde for dcop calls if possible
Finnish GUI translation thanks to Samu Voutilainen
Slovak GUI translation thanks to Jozef Ří­ha
Russian translation thanks to Anton Chumak.
Reworked kdialog interface to fix problems caused by X error messages
Corrects collection scanning if using dynamic collection (patch by Frederic Dinh).
Use mutagen-1.4 library (http://www.sacredchao.net/quodlibet/wiki/Development/Mutagen) to read tags, except on mp4/m4a and mpc. Code for mpc and mp4 tag reading thanks to Justus Pendleton and QuodLibet player (needs ctypes python module). Dropped dependency on external utilities for tag reading.
Added support for RVA2 tags (used by QuodLibet and normalize)
Many bugfixes

0.9.1 Add portuguesse and polish GUI translations, updated finnish translation, thanks to Candido Lopes, Jaroslaw Gorny and Samu Voutilainen.

0.9.2: Add italian and turkish GUI translations. Many thanks to Davide "DuffyDac" and Fatih í‡iroglu

0.9.3: Add swedish GUI and README translation. Many thanks to Göran Jartin

C

maacruz

14 years ago

I'll upload soon a new release with this bug fixed.
About collection tagging, don't worry about album mode because album mode implies track mode too, that is, each song will have both track mode tags and album mode tags.

Report

cypherpunk

14 years ago

In amarok_replaygain.py, check_utils() checks for vorbiscomment but replaygain_command actually uses vorbisgain. Which means I couldn't actually apply replaygain to vorbis files since I didn't have vorbisgain installed...

Might want to fix that :)

Works great otherwise (including files with non-ASCII names); thanks a lot.

Report

C

maacruz

14 years ago

It's a remmant from old releases, when it depended on external utilities to read tags...
Will be fixed in next release, thanks.

Report

skralljt

14 years ago

I was a bit worried when I read in the context menu of this replaygain scanner that you could "apply replaygain to entire collection".
Other software refers to applying gain when actually modifying the wave form of the file, not when writing a tag to the file. Perhaps it would be more clear if the replaygain menu instead referred to applying replaygain tags to files? Congratulations on making a very useable peice of software though, I couldn't have left winxp and foobar2000 without this.

Report

C

maacruz

14 years ago

Not a bad idea. Thanks for the suggestion.

Report

jojoesyoyo

14 years ago

Hey this script is very useful, and i made some changes in the main script so that it would apply_replaygain when the replaygain is not available, and it changes the playing volume when it finishes.

I achieved this by putting all the code that was in if sinput.startswith('engineStateChange: playing') in a function, and plus a few troubleshooting i got it working. it would be better, though, if the playing volume was also updated when its manualy apply_replaygain'ed, and that in the configuration dialog you can select wether or not to applyreplaygain when its not available, but I don't have more time right now ;). well, here is the code that I put before the #main_loop comment in amarok_replaygain.py:



def update_volume (is_playing):
#reread amarok config if possible
if not(is_playing) and (amarok_version>=10302):#changing track also sends the playing signal, so to avoid latency and osd messing the config will be read only if the previous state was "stop"
read_amarok_config()
is_playing = True
proft1 = time.time()
song_url = str(amarok_dcop.player.encodedURL()[1])
if debug: flog.write('Get url time: '+str(time.time()-proft1)+'\n')
if song_url.startswith('file:'): #we can only read tags on local files
pregain = float(replaygain_config['pregain'])
mode = replaygain_config['mode']
song_name = urllib.url2pathname(song_url)[5:]
proft = time.time()
song_gain,peak = read_tags(song_name,mode)
if debug: flog.write('Tag reading time: '+str(time.time()-proft)+'\n')
if not(isNaN(song_gain)):
gain = song_gain+pregain
if gain>calibration[0][1]+1:#warn of out of range gain
os.popen('dcop knotify default notify eventname amarok "'+_('Replaygain script warning\ngain too big by ').encode(LC,'replace')+str(gain-calibration[0][1])+'dB" "" "" 16 0')
gain = calibration[0][1]
if (gain+peak > calibration[0][1])and(replaygain_config['no_peak'] == 'false'): #will peak clip?
gain = gain-peak #if so limit gain
if debug: flog.write('Final gain: '+str(gain)+'\n')
else:
amarok_dcop.playlist.popupMessage(_('This song has no replaygain info. Applying replaygain...').encode(LC,'replace'))
gain = float(replaygain_config['gain_default'])+pregain
if replaygain_config['mode'] == 'track':
mymode = TRACK_TAGS
elif replaygain_config['mode'] == 'album':
mymode = ALBUM_TAGS
apply_replaygain([song_url],mymode)
is_playing=update_volume(is_playing)
v = gain2vol(gain)
if v < 5:
os.popen('dcop knotify default notify eventname amarok "'+_('Replaygain script warning\ngain too low by ').encode(LC,'replace')+str(gain-calibration[len(calibration)-1][1])+'dB" "" "" 16 0')
#support crossfade
if is_crossfaded or replaygain_config['smooth'] == 'true':
if amarok_osd and osd_disabled:#if the crossfade thread is running it may have disabled the osd, so we show osd or the song change will not have osd
if (time.time()-last_osd_time) < osd_duration:
amarok_dcop.player.showOSD()
amarok_dcop.player.showOSD() #if osd was showing the first command would hide it so it must be shown again
if debug: flog.write('hide and show osd\n')
else:
amarok_dcop.player.showOSD()
if debug: flog.write('show osd\n')
last_osd_time = time.time()
stop_thread = True #signal crossfade thread to stop if running
timer.cancel() #interrupt thread timer
thread_lock.acquire() #wait till thread has exited
thread_lock.release()
if is_crossfaded:
start_new_thread(do_crossfade,(v,crosstime,thread_lock,timer))
else:
start_new_thread(do_crossfade,(v,float(replaygain_config['smooth_time']),thread_lock,timer))
else: #no crossfade
proft = time.time()
if replaygain_config['no_osd'] == 'true' and amarok_osd:
amarok_dcop.player.enableOSD(False)
vol_upd_list.append(v)
amarok_dcop.player.setVolume(v)
if replaygain_config['no_osd'] == 'true' and amarok_osd:
amarok_dcop.player.enableOSD(True)
if debug: flog.write('Setvolume time: '+str(time.time()-proft)+'\n')
if debug: flog.write('Total trackchange time: '+str(time.time()-proft1)+'\n')
if time.time()-proft1>0.5:
if is_console_dcop:
msgbox(_('Large lag has been detected:\nYou may install kdebindings3-python/python-kde3'),mode='msgbox',nonblock=True,dontagain='kdebindings')
else:
if replaygain_config['no_osd'] == 'true' and amarok_osd:
msgbox(_('Large lag has been detected:\nIt is recomended to disable the script osd control'),mode='msgbox',nonblock=True,dontagain='osd')
else:
msgbox(_('Large lag has been detected:\nYou may try removing or reducing covers'),mode='msgbox',nonblock=True,dontagain='covers')
else:
song_gain = float('NaN')
return is_playing




and in the condtional if sinput.startswith('engineStateChange: playing'):


is_playing = update_volume(is_playing)


hope I help to improve this awesome script! ;)

Report

C

maacruz

14 years ago

That is a feature I had planned for a later release.
Unfortunately posting here has messed the code, please send me your script by mail.
Thanks.

Report

burna

14 years ago

Is the script replaygaining a playlist in album mode on basis of the album tags or does it take the playlist as one album?

Report

C

maacruz

14 years ago

> Is the script replaygaining a playlist in album mode on basis of the album tags or does it take the playlist as one album?

The playlist is taken as one album, tags are not taken into account because the user can select exactly what he wants to be in the playlist, and tags may be broken.
If you want to use tags to replaygain albums you should use the collection scan.
I have no plans to replicate foobar's scan modes because I think it doesn't have much sense in amarok, foobar doesn't have a database as amarok has.
If you have to do a mass scanning, simply use the collection scanner. It doesn't scan already scanned albums, so it is faster in succesive uses.
If you have your collection already scanned and add an album from time to time, use the playlist scan.

Report

burna

14 years ago

Applying replaygain, in Foobar you can choose between:
"scan selection as single album"
"scan selection as albums (by tags)"
"scan selection as albums (by directories)"

That would give you more control on how you would like to apply replaygain to your files. Could that be included in the next version?

Report

VFiend

14 years ago

Choosing to scan the entire collection does nothing (no mp3gain, etc. processes running, no messages in the UI), but scanning the playlist works fine and applies properly with feedback.

Using 0.9.0-beta7 with Amarok 1.4.4 (Kubuntu packages) on Ubuntu 6.10 (Edgy).
Oh, that might be it, maybe it's a new issue introduced by Amarok 1.4.4?

Report

VFiend

14 years ago

Hmm, just checked, same issue with Amarok 1.4.3

Report

C

maacruz

14 years ago

Works fine for me with amarok 1.4.4
What database are you using?
Anything special with your collection's filesystem?

Report

VFiend

14 years ago

Default ext3 file system, default sqlite database, mp3s and flac files.. That said, it worked now when I just tried it, though I'm not sure why. I'm running it under GNOME so maybe there was some weirdness which prevented the kdialog from popping up.

Either way, problem's solved, I suppose.Thanks for the reply and making the script.

Report

jetpeach

14 years ago

I'm wondering if there are plans to move replaygain to python 2.4 and possibly remove the gtk dependencies. Currently, I'm running Kubuntu and after bringing up the Kdialog to configure it, I select one and click configure, but it just exits then. On my other computer, I have ubuntu-desktop installed as well as kubuntu so all the gtk libaries and gnome junk are installed, and it works there.

I went through tons of libraries trying to find which gtk dependency is missing, but I don't know which it is. Looking over your dependency list, I have all those, I've checked and double checked, but still there is no configuration screen...
I'd really rather not have to completely install gnome to get the screen to show up, any advise is appreciated.
Thanks, great script!

Report

C

maacruz

14 years ago

Hi,
Replaygain is developed with python 2.4. It works with python 2.3 too, and should work with python 2.5 (although I have not tested it).

The gtk dependencies are voluntary, you don't need them to do a basic usage of the script, it should use the kdialog interface instead.

To run the gtk interface you need only two dependences, the gtk libraries (obviously) and the python-gtk (aka pygtk) python package. Not gnome at all, just plain gtk. It is developed with gtk 1.2.10 and pygtk 2.8, but I think it should work on any later version.

The kdialog interface should work, at least it works for me with no trouble.
Are you running the latest script release? Which kde release?

Report

jetpeach

14 years ago

yes, running the latest beta7 and using kde 3.5.5, amarok 1.4.3
so i removed python2.3 since that isn't needed (i have 2.4) but i still no luck.

when amarok starts at the terminal, i notice this message
amarok: [ScriptManager] [ERROR!] amarok_replaygain.py:
amarok: Failed to open device

not sure what that's all about.

when i click configure, i get a KDialog popup with the choice of what to configure. then, choosing Pregain, i get the message window passive popup in the top left saying "Replaygain script warning
some utilities not found, replaygain will not work on,..."
and it states aacgain and replaygain are not installed.
but after this popup, nothing happens. on the terminal, the following is output:

hmm it's a little long for a comment here. i don't see anything that says error though.
any advice? i can send more debugging info.

Report

C

maacruz

14 years ago

>> It is developed with gtk 1.2.10 ---That's me sleeping, I mean gtk 2.6 :)
It seems that, for some reason, the kdialog combobox doesn't return the expected string when you select one option, so it miss and return. You may safely ignore the popup (it opens after the configuration is done).
Please, send me the file replaygain.log located in ~/.kde/share/apps/amarok/scripts/scripts-data
May be I can get some more info there.

Report

dotancohen

14 years ago

Thanks. It seems a good script, but it keeps complaining that it wants kdebindings3-python and I can't seem to find it:
dotancohen@ubuntu:~$ sudo apt-get install kdebindings3-python
Password:
Reading package lists... Done
Building dependency tree... Done
E: Couldn't find package kdebindings3-python
dotancohen@ubuntu:~$ sudo apt-get install kdebindings-python
Reading package lists... Done
Building dependency tree... Done
E: Couldn't find package kdebindings-python
dotancohen@ubuntu:~$

Report

C

maacruz

14 years ago

Hi,
I think in (k)ubuntu/debian it is called python-kde3
If you don't want to install it you may safely check the "Don't ask again" checkbox.

Report

dotancohen

14 years ago

Thanks, got it installed. Without this, it would not function on mp3 (and other formats) files.

Great work.

Report

C

maacruz

14 years ago

It should work regardless if those bindings are installed or not. If it doesn't work, then probably there is a bug, so please, tell me if really didn't worked at all.

Report

dogfin

14 years ago

I noticed that the script (0.9.0-beta7) doesn't preserve the date/time of the files it analyzes. There are options for the analyzers you use that will attempt to preserve the date and time. I put it the '-p' option on aacgain and '--preserve-modtime' for metaflac.

I don't have the other programs, vorbisgain and replaygain, so I don't know what their option is. My collection isn't large (under 500 files), but it spans 7 years+, I almost caused all those dates to be altered. It would be sweet if you could add that in. Thanks for a great script!


dogfin -

Report

C

maacruz

14 years ago

Thanks for your suggestion. I'll have a look into it.
It's unfortunate you have lost all those dates.

Report

crux

14 years ago

Hi!

I'd like to know if the option "Apply Replaygain -> To entire collection using album tags" is, as I assume, going to apply replaygain in album mode to every album in my collection telling them apart by the Album field of the ID3 tag.

I'm not sure about this and I've made a couple of tests on .mp3 files and I see mp3gain executing on a pair (always 2) files but without the -a switch. I have the script set in album mode though.

If you can enlighten me on this topic I'd very much appreciate it. And maybe the info can be added to the documentation for others like me :9

Thanks and well done with this script!

Report

13 years ago

0.1-0.3.3
Old vorbisgain releases

0.5-beta "Reborn"
Major rewriting, now it is python
Renamed to replaygain
Add Album and peak support
New nice pygtk interface
Thanks to Kevin Radloff and Jocke "Firetech" for their suggestions and testing

0.5
Uses the new (since amarok 1.3.2) readConfig dcop calls if available, now the script is aware of amarok configuration changes
Added support for musepack (mpc) files

0.5.5
Added support for AAC (mp4/m4a) files
The script checks for external utilities when closing the configure dialog

0.6 "Clean OSD"
New option to disable osd updates during volume changes solving the annoying quick osd changes
Changed detection of external utilities since mp3gain has different behaviour depending on its version (thanks Jocke for pointing this out)
Settings are reread only when the engine starts playing, not at every song change
Fixed the check for external utilities so it solves the "mp3gain not found" missleading message, and a typo which prevented using aacgain when present.
Fixed flac on latest flac releases (thanks Gary Virta)
Changed the "utility not found" dialog to a less annoying notification
Many optimizations and speedups
Thanks Jocke and Roberto for all your testing

0.6.1
Hotfix: fix script breaking on amarok older than 1.3.2 when osd is disabled

0.7
Many new configuration options, not all can be accesed through the kdialog interface
Clipping protection may be disabled so volume doesn't go to 0 on some broken mp3 files
Pregain (volume reference level) may be adjusted by moving the volume slider
Pregain is now adjusted to tenths of dB instead of integer dB
The volume transitions may be smoothed over any specified amount of time when crossfade is disabled
Accurate timing so crossfaded/smoothed volume changes don't take longer than they should
Pygtk interface now has help as tooltips
Changes in script configuration take effect inmediately instead of waiting till next song
Script configuration is saved when amarok stops playing

0.7.1
Added support for mp3 files tagged with foobar (id3v2 tags), it requires id3v2 installed
SIGTERM handler

0.7.2
Added context menu shortcut to change replaygain mode

0.8.0
Internacionalization. Spanish translation.
New option to set the gain (volume) for files without replaygain info (or unsupported files).
Context menu options to apply/delete replaygain tags to playlist/collection. It is recommended to have python-xml installed for almbum tagging.
Some bugfixes

0.8.1
German, french and hungarian translations

0.8.2
Hotfix: do not break while scanning collection if unsupported file has no album tag.

0.8.3
Fix problems with special shell characters in filenames

0.8.4
Fix breaking if enviroment LANG variable is not set (assumes ISO8859-1 charset)

0.8.5
Fix encoding strings headache caused by gettext not returning unicode strings

0.8.6
Couple of small fixes

0.9.0
This release is designed to reduce lag (thanks Stewie for all your testing). Requires installing kdebindings3-python (aka python-kde) to take advantage of new code. Uses pykde for dcop calls if possible
Finnish GUI translation thanks to Samu Voutilainen
Slovak GUI translation thanks to Jozef Ří­ha
Russian translation thanks to Anton Chumak.
Reworked kdialog interface to fix problems caused by X error messages
Corrects collection scanning if using dynamic collection (patch by Frederic Dinh).
Use mutagen-1.4 library (http://www.sacredchao.net/quodlibet/wiki/Development/Mutagen) to read tags, except on mp4/m4a and mpc. Code for mpc and mp4 tag reading thanks to Justus Pendleton and QuodLibet player (needs ctypes python module). Dropped dependency on external utilities for tag reading.
Added support for RVA2 tags (used by QuodLibet and normalize)
Many bugfixes

0.9.1 Add portuguesse and polish GUI translations, updated finnish translation, thanks to Candido Lopes, Jaroslaw Gorny and Samu Voutilainen.

0.9.2: Add italian and turkish GUI translations. Many thanks to Davide "DuffyDac" and Fatih í‡iroglu

0.9.3: Add swedish GUI and README translation. Many thanks to Göran Jartin

12345678910
1
product-maker LazyKent Dec 09 2010 9 excellent
Be the first to comment
thoughtcrime
Jul 20 2009
File (click to download) Version Description Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
version
1.0.0-beta5
updated Oct 20 2007
added Jul 03 2005
downloads 24h
0
mediaviews 24h 0
pageviews 24h 15
System Tags addon