Documentation / FAQ


Source code documentation (mainly for developpers) is available here

Source Code file structure
--[ ebu_r128                      *ebu_r128 lib*
--[ test                          *folder for test*     
--[ doc                           *folder for  documentation*      
-- loudness.py                    *main python script*      
-- example_template.html          *a template example*      
-- wave_analyze.exe               *static build of wave_analyze tool from ebu_r128 lib for windows platform*      
-- wave_analyze                   *static build of wave_analyze tool from ebu_r128 lib for unix-type platform*

You will also find windows binarie.

How it works

loudness.py launch wave_analyze, gets it output, compute Loudness Range Average meseaure and write a HTML page with graphics based on options.

Build/Compilation


Using unit tests it's easy!
python test/test_build.py
For unix-like platform (linux, MAC OS):
cd ebu_r128
make wave_analyze
cp wave_analyze ../
Windows

wave_analyze.exe binarie is provided as well as loudnessPlotter.exe (see loudnessPlotter-(version)-win32.zip content) but you can built it yourself:
If you need you can compil it with minGW, take a look at Codeblocks IDE as it can be bundle with it. So assuming you have mingw installed:

cd ebu_r128
mingw32-make wave_analyze
copy wave_analyze ..\

Then, if you want, compil the python script using py2exe:

python setup.py py2exe

Passing tests


Some tests may fail as files are missing (EBU and ITU test files are not under version control).

cd test    
python test.py

It will try to:
1. build ebu_r128 lib
2. generate some basic tests
3. analyse/generate EBU and ITU filesets
4. pass conformance test
5. generate source code documentation

Playing with options


For example:

plotter=loudness([testfile.wav],os.getcwd())
plotter.autoscale=False
process()                             #analyse and write html
plotter.template=/path/to/template    #change template
plotter.outfilename                   #change output filename
plotter.write()                       #only write html

Available options:

autoscale : boolean If set to False, y axis will be fixed between -70 and 0 LUFS. Default is True.
outfilename : string specifying output filename. Output filename is 'loudness.html' if not set.
template : path to a template. See example in source code.

Changing HTML templates

As we use the python standard Template module, just make sure you have at least those 2 value:

$tabbedplaceholder    
$plots

See python reference for more information.

For convenience, some example template are included in source distribution. Look at example_template.html file.

Contibuting


Fork on github, develop, and send me patch. Or contact me via e-mail.


Normatives, references

[1] Wikipedia page for loudness
[2] Wikipedia page for loudness monitoring
[3] EBU R128 website
[4] ITU R-REC-BS.1770 on ITU website
[5] radionovas original ebu_r128 lib links