
   Copyright 2005 - 2008 : Claudio Fernandes de Souza Rodrigues
                           São Paulo, Brasil.			   
		    
Homepage: http://gnormalize.sourceforge.net
See too : http://www.gnomefiles.org/app.php?soft_id=736	    

For suggestions, grammatical errors and bugs, my email: claudiofsr@yahoo.com

This software is available under GNU General Public License, version 2.


**-----------------------------Introduction-----------------------------**

gnormalize is an audio converter and CD ripper with ReplayGain normalization algorithms,
an audio player and a metadata (tag) editor. It uses gtk2-perl under GNU/Linux. 

gnormalize is a utility that rips, decodes, normalizes, encodes, and converts audio files. 
It uses 'wavegain' to normalize wave files with the accurate gain_analysis.c code 
from ReplayGain. It decodes MP3, MP4 (or M4A or AAC), MPC (or MPP or MP+), OGG, APE, 
or FLAC files to wave, then normalizes the wave and re-encodes it. It can rip audio 
CDs, encode audio data, convert audio formats between MP3, MP4, MPC, OGG, APE, and 
FLAC, and change the encoding properties and edit metadata (tag) (like title, artist, 
album, etc.) of the final normalized files.

Input : supported files format: MP3, MP4 (or M4A or AAC) , MPC (MPP or MP+ - Musepack), 
                                OGG, APE (Monkey's Audio), FLAC, AUDIO CD and WAV.

Output: supported files format: MP3, MP4, MPC, OGG, APE, FLAC and WAV.


gnormalize distinguish this formats only by extension and can make transcoding.
Transcoding is the process of converting audio files from one format to another. 

To be implemented (TODO): 
   - Mix mode of gnormalize;
   - Submit cddb info.
   - To be the most userfriendly interface ever.


       NORMALIZE DESCRIPTION:
      "normalize is used to adjust the volume of WAV audio files to a standard
       volume level. This is useful for things like creating MP3 mixes,  where
       different  recording levels on different albums can cause the volume to
       vary greatly from song to song.

       normalize operates in two phases. In the first phase, it  analyzes  the
       specified  files  as  WAV  audio files, and computes the volume of each
       file. In the second phase, it applies a volume adjustment to each  file
       to set each file's volume to a standard level."       
            ( See the manual of normalize. Author of normalize: Chris Vaill. )
	    

**-----------------------------Dependencies-----------------------------**

Required and recommended programs:
  
  gtk2 (gtk+)        - version >= 2.6.0  
  gtk2-perl          - version >= 1.050
  wavegain           - to normalize the WAV files.
                       (http://www.rarewares.org/others.html)		       
  lame               - for decode MP3 to WAV, and encode WAV to MP3 file.
  mppdec,mppenc      - mppdec (decoder) and mppenc(encoder) for MPC format.
  faac,faad          - faac (encoder) and faad (decoder) for MP4 format.
  vorbis-tools:      - oggenc, oggdec and vorbiscomment.
  cdparanoia or cdda2wav          
                     - to rip audio cd.
  flac and metaflac  - to encode, decode and edit flac format. Version >= 1.1.1
  
  mac (Monkey's Audio Console)  - to encode and decode APE format. 
                       Get the packages mac see 
		       http://supermmx.org/linux/mac (source code)
		       or http://plf.zarb.org or http://rpm.pbone.net 
		       according to your Linux distribuition.
		     
  cdcd		     - command-driven cd player. Download cdcd and libcdaudio
                       from http://libcdaudio.sourceforge.net
		       		     		        
  Perl modules:
   Gtk2
   Glib
   Gtk2::Pango
   File::Find
   Encode
   CDDB_get          - (to install: login as root; connect to the internet;
                       give the command: <perl -MCPAN -e 'install CDDB_get'>
		       Press <q> to quit).
		       Armin Obersteiner is the author of CDDB_get. 
		     
   Audio::CD         - Perl interface to libcdaudio (cd + cddb)	
	               (required: libcdaudio and libcdaudio-devel;
		       perl-devel to compile this module)
		       
		       If you want to use Audio::CD to play audio CD,
		       it MUST have the functions (see man Audio::CD):
		          my ($minutes, $seconds, $frames) = $info->time;
		          my $current_track = $info->current_track;
		       If not so, install Audio-CD-0.04-changed.tar.gz inside 
		       the gnormalize-version.tar.gz package.
		     
   MP3::Info	     - The package MP3::Info is included in the gnormalize. 
                       MP3::Info substitutes mp3info,id3info and id3tag.
                       Chris Nandor is the author of MP3::Info.   
		       
To play audio CD, gnormalize will first search for gnormalize::cdplay perl 
module, next to Audio::CD and finally, the cdcd.	     

**-------------------------------Install-------------------------------**

Execute the bash script commands:
                           tar zxvf gnormalize-0.63.tar.gz
			   cd gnormalize-0.63/                           
			   ./install
as root.

To install only the gnormalize: 'make install'.
To uninstall the gnormalize:    'make uninstall'.
             	     		     		       		    		    	   
	
After install, to execute gnormalize:

                           gnormalize  
			   
			   			   
Make sure that the correct path of perl is '/usr/bin/perl'. If not 
so, change the first line '#!/usr/bin/perl' of gnormalize to the correct path.	

If "cdcd" is used to play audio cd:
When, for the first time, run "cdcd" in command line to make the 
config file .cdcdrc, choose "n" for the question: 
   Are you connected to a network (y/n) [y]?
If choose "y", remove the config file (rm -f ~/.cdcdrc) and run "cdcd" again.   
  
**------------------------------Download-------------------------------**

Download gnormalize:
http://prdownloads.sourceforge.net/gnormalize/gnormalize-0.63.tar.gz?download

**----------------------------Translations-----------------------------**

The basic idea is to search for all variable "$language" inside the gnormalize code!

1) Open gnormalize with one editor. I, particularly, use "nedit".

2) Search for the lines:

   "if ( $language eq 'English' )"
   
   and
   
   "if ( $language eq 'Português' )"

     
3) Add the lines for your language, like, for example:

   "$all_language{'Français'} = $true;"  # this add a new language
   
   and

   "if ( $language eq 'Français' )"
    {
    ...
    ...
    }"
    
   You must to add this lines in the sequence order.
          
4) Translate all the variables: $langs{all_tabX}, $langs{nameX}, $langs{tipX} and 
   $langs{msgX} (X is one number), between that lines "{ ... ... }" of item 3).
   
5) Search for all "$language" variables and make the suitable change!

6) Send me one email with your Translation.
   My email: claudiofsr@yahoo.com
   I will be in debt immense of endless gratitude.

   --- Translations ---
English             : Claudio FSR.
Português (Brasil)  : Claudio FSR.
Français            : Yaen Pujol.

**-------------------------------Changes-------------------------------**
version 0.63: - some bug fixes;
              - change the loop, random and sound icons.

version 0.62: - Add the possibility to play tracks that satisfies established filters in a more convenient way.
                The available filters are 'Play Tracks From Different Albums/Artists/Genres/Years'. For example, 
		if the filter is set to Albums, then play tracks jumping between different Albums. In this case, 
		all Albums will be played before repeat some Album. In others words, until one track from each 
		Album has been played, the same Album will not be chosen twice;		
	      - Add columns that show the 'Play Count' to the albums and artists tree view;
	      - Start playing when one track is double clicked.

version 0.61: - Add support to Unicode data in UTF8 encoding;
              - Add entry to change the comment tag;
	      - Use Ape Tag 2.0 for wav files.

version 0.60: - Now, gnormalize uses 'wavegain' to normalize wav files because 'wavegain' 
                is based on more accurate gain_analysis.c code from ReplayGain to adjust and 
		normalize the sound amplitude;	
	      - I change WaveGain-1.2.6/wavegain.c and remove the bug when using rename() c function 
		on Linux. The Author of wavegain is John Edwards;
              - New Method for easy translations;
              - Remove 'file chooser' Check Button because 'Gtk2::FileSelection' is deprecated;
	      - Minimum required gtk2 version >= 2.6.0;
	      - Don't need more to make Wave copy; 
	      - Add mac (Monkey's Audio Console) to encode and decode APE format inside gnormalize*.tar.gz;
	      - Can use mplayer to play all supported files format;
              - Some Bug Fixes.

version 0.53: - Translation to French by Yaen Pujol;
              - The ability to create artist and album subdirectories when ripping an
	        Audio CD. For example, we can choose filename rip format "%a/%b/%n-%t".

version 0.52: - Bug Fixes.

version 0.51: - Show the Scrolling Text on the vertical or horizontal direction.

version 0.50: - Bugfixe on used Gtk2::Button icons.
              - Bugfixe on strings values of set_popdown_strings 
	        function (thanks to Björn C. Schaefer).
              - Show/Hide file number, artist and track columns of playlist.
              - Color for artists and albuns columns when a file is played.
	      - Changes on Interval and Step for Scrolling Text.

version 0.49: - The possibility to change the Remaining Time color.
              - Add a button to show/hide the progress bar.
	      - remove the '--athtype 2' option for --vbr-new lame encoding.
              - Make a Makefile.

version 0.48: - Only some bugfixes.

version 0.47: - Only some bugfixes.

version 0.46: - Play APE format with the command: 
                   mac "song.ape"  - -d | play -t wav -
                'mac' is the "Monkey's Audio Console" and 'play' comes with 'sox'.

version 0.45: - The ability to select more than one album or artist by pressing 
                the control key and mouse button.

version 0.44: - The ability to choose what columns to show on the playlist.
              - Some bugfixes.

version 0.43: - Some color on playlist.
              - The ability to remove the selected musics from playlist.
	      - Use the directory name for Album list if no album name is found.

version 0.42: - Save the playlist in the configuration file and show the playlist 
                like Rhythmbox.
              - The output directory can be selected.

version 0.41: - The ability to play MP3, MP4, MPC, OGG, FLAC and WAV format was added.
                gnormalize play MP3 with mpg321/mpg123/madplay, MPC with mppdec, 
		OGG with ogg123, FLAC with flac123/MPlayer and WAV with MPlayer.
				
              - Convert/Normalize all supported files inside the directory to one 
	        specific format. 
              - Output to WAV without need to encode.
              - Change the cd player skin.

version 0.40: - The ability to select one skin to cd player was added.

version 0.39: - Only CD player display mode was added.
              - Display with scrolling text and customized button colors.

version 0.38: - More improve on the CD player display.

version 0.37: - Set the relative audio track position and improve the
                buttons appearance on the CD player.

version 0.36: - Select the type of files for Gtk2::FileChooser.
	      - Verify the perl module depence for CDDB_get.
	      - More animations.

version 0.35: - Add a Gtk2::VPaned to adjust debug informations.
              - Show some animations in the "about" textview, just for fun.

version 0.34: - Change fonts whithout gnome-font-properties.
              - Some bugfixes. 

version 0.33: - Remove the Audio::CD or cdcd dependencies to play Audio CDs 
                and substitute with the new internal gnormalize::cdplay package 
		writen in perl (only valid for Linux) without any dependecies.
	      - A bug in the 'ID3_SET_SIZE28' subroutine which set 32 bit 
	        synchsafe integer used by ID3v2.3.0 was fixed.	

version 0.32.1: Remove one bug in cd player when Audio::CD is used.

version 0.32: - Resizing the main window is now allowed.
              - New button to change the volume level of Audio CDs.
	      - New entry to choose the audio cd player.
              - If Audio::CD is used to play Audio CD, recompile and install 
	        Audio-CD-0.04-changed.tar.gz because this perl module uses 
		the new function $info->current_track .

version 0.31: - New icons for notebook.
              - Remove the ogginfo dependence. Now, use the new internal subroutines.
              - Minimum required METAFLAC version >= 1.1.1 ( the new version
	        changed the command --set-vc-field to --set-tag ).
	      - Add filesize in the technical info (metainfo).
	      - Some bugfixes.

version 0.30: - Support for translations enables by rearrange the tooltips.
              - Translation to portuguese (Brasil).
              - Some bugfixes.

version 0.29.1: Only some bugfixes.

version 0.29: - Can read directory recursively.

version 0.28: - New entry for additional command line used by encoders.
              - New entry for rip filename format.
              - Edit and save the tag of cddb info for Audio CD; add cddb configurations.
	      - New file chooser used when a file is selected.
	      - Some bugfixes.

version 0.27: - Get the first parameter from the command line as selected file,
                for example: 'gnormalize music.mp3'.
	      - Support new 'mac' encoder (version >= 3.98) for APE files.
	      - Some bugfixes.	

version 0.26: - Support for mp4 format with dependencies on faac (encoder) and faad (decoder).
              - improve the subroutine 'save_ID3v2_mp3_tag' of gnormalize that saves
                ID3tagv2 to mp3 files.

version 0.25: - Make new perl subroutines to get informations about flac and ape 
                files like time, bitrate, frequency, ...
	      - Some bugfixes.	

version 0.24: - Remove the id3info, id3tag and mp3info dependence.
              - Include MP3::Info to obtain mp3 informations.
	      - Make new perl subroutines to edit ID3v1 and ID3v2 tag for mp3 files.
	      - Make new perl subroutines to edit APE tag for mpc and ape files.

