Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001666 [XMMS2] plugins feature N/A 07-07-09 00:17 07-10-19 23:03
Reporter syscrash View Status public  
Assigned To andersg
Priority normal Resolution fixed  
Status resolved   Product Version
Summary 0001666: volume normalization plugin
Description I wrote a plugin that dynamically normalizes the audio so that one doesn't have to keep playing with the volume.
This is different from replaygain in that it can be used with shoutcast etc. streams, as well as with songs that don't have replaygain info (lazy user).
Additional Information
Tags No tags attached.
GIT commit id 1a32d71fec67dd5e73847bb4f6a98aec83958e58
Has patch
Attached Files bz2 file icon xmms2-normalize.tar.bz2 [^] (4,786 bytes) 07-07-09 00:17
bz2 file icon xmms2-normalize_v2.tar.bz2 [^] (5,136 bytes) 07-07-09 00:42
bz2 file icon xmms2-normalize_v3.tar.bz2 [^] (5,158 bytes) 07-07-09 01:23
bz2 file icon xmms2-normalize_v4.tar.bz2 [^] (5,040 bytes) 07-07-09 03:24
bz2 file icon xmms2-normalize_v5.tar.bz2 [^] (5,057 bytes) 07-07-10 00:03
? file icon authors.diff [^] (348 bytes) 07-07-10 20:57
bz2 file icon xmms2-normalize_v6.tar.bz2 [^] (4,257 bytes) 07-07-10 23:28
bz2 file icon xmms2-normalize_v7.tar.bz2 [^] (4,295 bytes) 07-07-16 22:04

- Relationships Relation Graph ] Dependency Graph ]
child of 0001428resolvedandersg DrK (Kosmos|Kelso) 

-  Notes
(0002102)
syscrash (reporter)
07-07-09 00:43

xmms2-normalize_v2.tar.bz2 adds legal stuff (LGPL headers) and renames config.h to compress_config.h.
(0002103)
syscrash (reporter)
07-07-09 01:24

v3 gets rid of the few-second inaudibleness when changing songs. The buffer stuff will be freed either on exit (automatically) or when the plugin is disabled.
(0002105)
syscrash (reporter)
07-07-09 03:25

v4 removes some code repetition and removes the use of 'supported_fmt', letting xmms decide that instead. rafl had suggested other code repetition removal stuff, but it would be difficult to do in C due to my use of struct members.
(0002108)
andersg (administrator)
07-07-09 22:51

Gave the code a quick look. Looks pretty good.

A few things came to my mind:

* There are global variables in compress.c, will it work correctly if there are two instances of the effect running at the same time (such as at songchange)

* Where does compress.c come from? It seems to be picked up from another project, is it one of your own projects, are you the copyright owner?

* There are a few indentation errors, especially on multiline statements.

* CompressDo is called with "len" as argument in xmms_normalize_read. Should be number of bytes actually read (read)

* I suggest you do config_params as a struct instead to conform with other code (like formats in oss-plugin, which also uses G_N_ELEMENTS to iterate over it)

Havn't tried to compile the code, only looked at it.

I really want this to be included.
(0002109)
syscrash (reporter)
07-07-10 00:03

The globals should be fine during song change. It may become a problem if it is possible to have two instances of the plugin running at the same time other than in the case of a song change. If such instances are possible, I'd have to modify compress.c to get rid of the globals.

All of the compress_* files come from AudioCompress, an LGPL thingy:
http://beesbuzz.biz/code/audiocompress.php [^]

I was able to spot one indentation error and fixed it.

I fixed the call to CompressDo.

config_params is now done as a struct.

I set it to enable "use_anticlip" by default, since replaygain does this.

Thanks for the comments!
(0002113)
andersg (administrator)
07-07-10 13:01

Great. I have added it to the "normalize" branch of my git tree. I'm missing a patch to AUTHORS to add you.

It would be nice if the globals could be fixed.
(0002115)
syscrash (reporter)
07-07-10 20:59

Here's a patch to AUTHORS.
I didn't really want to hack on compress* so that we could keep in sync with AudioCompress but, seeing as no development is taking place there (it is essentially complete), I guess I should get rid of the global stuff.

I should have it done some time today.
(0002116)
syscrash (reporter)
07-07-10 23:31

v6 gets rid of all static variables by introducing a new typedef'd struct (compress_t) to hold relevant data. The compress code has been reindented and some variables renamed to fit with the XMMS2 style.
(0002124)
syscrash (reporter)
07-07-16 22:04
edited on: 07-07-16 22:07

v7 fixes config handling as described in bug 1676.
Should xmms_plugin_config_lookup be put into a header file? (see normalize.c:43)

(0002127)
andersg (administrator)
07-07-25 23:32

Updated version available in the normalize branch in my tree. Would like the config stuff (0001676) fixed before merge.
(0002407)
automatic (developer)
07-10-19 23:02

commit 33d6486af0c6a174a34cd4b65f88f1b2e40425ff
Author: Anders Waldenborg <andersg@xmms.org>
AuthorDate: Fri Oct 19 22:30:04 2007 +0200
Commit: Anders Waldenborg <andersg@xmms.org>
CommitDate: Fri Oct 19 22:31:30 2007 +0200

    FEATURE(1666): Cleanup normalize plugin
(0002408)
automatic (developer)
07-10-19 23:02

commit 1a32d71fec67dd5e73847bb4f6a98aec83958e58
Author: Javeed Shaikh <syscrash2k@gmail.com>
AuthorDate: Tue Jul 10 12:55:42 2007 +0200
Commit: Anders Waldenborg <andersg@xmms.org>
CommitDate: Fri Oct 19 21:50:09 2007 +0200

    FEATURE(1666): Added normalize effect plugin

- Issue History
Date Modified Username Field Change
07-07-09 00:17 syscrash New Issue
07-07-09 00:17 syscrash File Added: xmms2-normalize.tar.bz2
07-07-09 00:42 syscrash File Added: xmms2-normalize_v2.tar.bz2
07-07-09 00:43 syscrash Note Added: 0002102
07-07-09 01:23 syscrash File Added: xmms2-normalize_v3.tar.bz2
07-07-09 01:24 syscrash Note Added: 0002103
07-07-09 03:24 syscrash File Added: xmms2-normalize_v4.tar.bz2
07-07-09 03:25 syscrash Note Added: 0002105
07-07-09 22:51 andersg Note Added: 0002108
07-07-10 00:03 syscrash File Added: xmms2-normalize_v5.tar.bz2
07-07-10 00:03 syscrash Note Added: 0002109
07-07-10 13:01 andersg Note Added: 0002113
07-07-10 20:57 syscrash File Added: authors.diff
07-07-10 20:59 syscrash Note Added: 0002115
07-07-10 22:50 nano Status new => confirmed
07-07-10 22:51 nano Relationship added child of 0001428
07-07-10 23:28 syscrash File Added: xmms2-normalize_v6.tar.bz2
07-07-10 23:31 syscrash Note Added: 0002116
07-07-16 22:04 syscrash File Added: xmms2-normalize_v7.tar.bz2
07-07-16 22:04 syscrash Note Added: 0002124
07-07-16 22:07 syscrash Note Edited: 0002124
07-07-25 23:32 andersg Note Added: 0002127
07-10-19 23:02 automatic Checkin
07-10-19 23:02 automatic Note Added: 0002407
07-10-19 23:02 automatic Checkin
07-10-19 23:02 automatic Note Added: 0002408
07-10-19 23:03 andersg GIT commit id => 1a32d71fec67dd5e73847bb4f6a98aec83958e58
07-10-19 23:03 andersg Status confirmed => resolved
07-10-19 23:03 andersg Resolution open => fixed
07-10-19 23:03 andersg Assigned To => andersg


Mantis 1.1.6[^]
Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker