%global _empty_manifest_terminate_build 0 Name: python-pyloudnorm Version: 0.1.1 Release: 1 Summary: Implementation of ITU-R BS.1770-4 loudness algorithm in Python. License: MIT URL: https://github.com/csteinmetz1/pyloudnorm Source0: https://mirrors.nju.edu.cn/pypi/web/packages/75/b5/39d59c44ecd828fabfdbd796b50a561e6543ca90ef440ab307374f107856/pyloudnorm-0.1.1.tar.gz BuildArch: noarch Requires: python3-scipy Requires: python3-numpy Requires: python3-future %description # pyloudnorm [![Build Status](https://travis-ci.org/csteinmetz1/pyloudnorm.svg?branch=master)](https://travis-ci.org/csteinmetz1/pyloudnorm) ![Zenodo](https://zenodo.org/badge/DOI/10.5281/zenodo.3551801.svg) Flexible audio loudness meter in Python. Implementation of [ITU-R BS.1770-4](https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-4-201510-I!!PDF-E.pdf).
Allows control over gating block size and frequency weighting filters for additional control. For full details on the implementation see our [paper](https://csteinmetz1.github.io/pyloudnorm-eval/paper/pyloudnorm_preprint.pdf) with a summary in our [AES presentation video](https://www.youtube.com/watch?v=krSJpQ3d4gE). ## Installation You can install with pip as follows ``` pip install pyloudnorm ``` For the latest releases always install from the GitHub repo ``` pip install git+https://github.com/csteinmetz1/pyloudnorm ``` ## Usage ### Find the loudness of an audio file It's easy to measure the loudness of a wav file. Here we use PySoundFile to read a .wav file as an ndarray. ```python import soundfile as sf import pyloudnorm as pyln data, rate = sf.read("test.wav") # load audio (with shape (samples, channels)) meter = pyln.Meter(rate) # create BS.1770 meter loudness = meter.integrated_loudness(data) # measure loudness ``` ### Loudness normalize and peak normalize audio files Methods are included to normalize audio files to desired peak values or desired loudness. ```python import soundfile as sf import pyloudnorm as pyln data, rate = sf.read("test.wav") # load audio # peak normalize audio to -1 dB peak_normalized_audio = pyln.normalize.peak(data, -1.0) # measure the loudness first meter = pyln.Meter(rate) # create BS.1770 meter loudness = meter.integrated_loudness(data) # loudness normalize audio to -12 dB LUFS loudness_normalized_audio = pyln.normalize.loudness(data, loudness, -12.0) ``` ### Advanced operation A number of alternate weighting filters are available, as well as the ability to adjust the analysis block size. Examples are shown below. ```python import soundfile as sf import pyloudnorm as pyln from pyloudnorm import IIRfilter data, rate = sf.read("test.wav") # load audio # block size meter1 = pyln.Meter(rate) # 400ms block size meter2 = pyln.Meter(rate, block_size=0.200) # 200ms block size # filter classes meter3 = pyln.Meter(rate) # BS.1770 meter meter4 = pyln.Meter(rate, filter_class="DeMan") # fully compliant filters meter5 = pyln.Meter(rate, filter_class="Fenton/Lee 1") # low complexity improvement by Fenton and Lee meter6 = pyln.Meter(rate, filter_class="Fenton/Lee 2") # higher complexity improvement by Fenton and Lee meter7 = pyln.Meter(rate, filter_class="Dash et al.") # early modification option # create your own IIR filters my_high_pass = IIRfilter(0.0, 0.5, 20.0, rate, 'high_pass') my_high_shelf = IIRfilter(2.0, 0.7, 1525.0, rate, 'high_shelf') # create a meter initialized without filters meter8 = pyln.Meter(rate, filter_class="custom") # load your filters into the meter meter8._filters = {'my_high_pass' : my_high_pass, 'my_high_shelf' : my_high_shelf} ``` ## Dependancies - **SciPy** ([https://www.scipy.org/](https://www.scipy.org/)) - **NumPy** ([http://www.numpy.org/](http://www.numpy.org/)) ## Citation If you use pyloudnorm in your work please consider citing us. ``` @inproceedings{steinmetz2021pyloudnorm, title={pyloudnorm: {A} simple yet flexible loudness meter in Python}, author={Steinmetz, Christian J. and Reiss, Joshua D.}, booktitle={150th AES Convention}, year={2021}} ``` ## References > Ian Dash, Luis Miranda, and Densil Cabrera, "[Multichannel Loudness Listening Test](http://www.aes.org/e-lib/browse.cfm?elib=14581)," > 124th International Convention of the Audio Engineering Society, May 2008 > Pedro D. Pestana and Álvaro Barbosa, "[Accuracy of ITU-R BS.1770 Algorithm in Evaluating Multitrack Material](http://www.aes.org/e-lib/online/browse.cfm?elib=16608)," > 133rd International Convention of the Audio Engineering Society, October 2012 > Pedro D. Pestana, Josh D. Reiss, and Álvaro Barbosa, "[Loudness Measurement of Multitrack Audio Content Using Modifications of ITU-R BS.1770](http://www.aes.org/e-lib/browse.cfm?elib=16714)," > 134th International Convention of the Audio Engineering Society, May 2013 > Steven Fenton and Hyunkook Lee, "[Alternative Weighting Filters for Multi-Track Program Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19215)," > 143rd International Convention of the Audio Engineering Society, October 2017 > Brecht De Man, "[Evaluation of Implementations of the EBU R128 Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19790)," > 145th International Convention of the Audio Engineering Society, October 2018. %package -n python3-pyloudnorm Summary: Implementation of ITU-R BS.1770-4 loudness algorithm in Python. Provides: python-pyloudnorm BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-pyloudnorm # pyloudnorm [![Build Status](https://travis-ci.org/csteinmetz1/pyloudnorm.svg?branch=master)](https://travis-ci.org/csteinmetz1/pyloudnorm) ![Zenodo](https://zenodo.org/badge/DOI/10.5281/zenodo.3551801.svg) Flexible audio loudness meter in Python. Implementation of [ITU-R BS.1770-4](https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-4-201510-I!!PDF-E.pdf).
Allows control over gating block size and frequency weighting filters for additional control. For full details on the implementation see our [paper](https://csteinmetz1.github.io/pyloudnorm-eval/paper/pyloudnorm_preprint.pdf) with a summary in our [AES presentation video](https://www.youtube.com/watch?v=krSJpQ3d4gE). ## Installation You can install with pip as follows ``` pip install pyloudnorm ``` For the latest releases always install from the GitHub repo ``` pip install git+https://github.com/csteinmetz1/pyloudnorm ``` ## Usage ### Find the loudness of an audio file It's easy to measure the loudness of a wav file. Here we use PySoundFile to read a .wav file as an ndarray. ```python import soundfile as sf import pyloudnorm as pyln data, rate = sf.read("test.wav") # load audio (with shape (samples, channels)) meter = pyln.Meter(rate) # create BS.1770 meter loudness = meter.integrated_loudness(data) # measure loudness ``` ### Loudness normalize and peak normalize audio files Methods are included to normalize audio files to desired peak values or desired loudness. ```python import soundfile as sf import pyloudnorm as pyln data, rate = sf.read("test.wav") # load audio # peak normalize audio to -1 dB peak_normalized_audio = pyln.normalize.peak(data, -1.0) # measure the loudness first meter = pyln.Meter(rate) # create BS.1770 meter loudness = meter.integrated_loudness(data) # loudness normalize audio to -12 dB LUFS loudness_normalized_audio = pyln.normalize.loudness(data, loudness, -12.0) ``` ### Advanced operation A number of alternate weighting filters are available, as well as the ability to adjust the analysis block size. Examples are shown below. ```python import soundfile as sf import pyloudnorm as pyln from pyloudnorm import IIRfilter data, rate = sf.read("test.wav") # load audio # block size meter1 = pyln.Meter(rate) # 400ms block size meter2 = pyln.Meter(rate, block_size=0.200) # 200ms block size # filter classes meter3 = pyln.Meter(rate) # BS.1770 meter meter4 = pyln.Meter(rate, filter_class="DeMan") # fully compliant filters meter5 = pyln.Meter(rate, filter_class="Fenton/Lee 1") # low complexity improvement by Fenton and Lee meter6 = pyln.Meter(rate, filter_class="Fenton/Lee 2") # higher complexity improvement by Fenton and Lee meter7 = pyln.Meter(rate, filter_class="Dash et al.") # early modification option # create your own IIR filters my_high_pass = IIRfilter(0.0, 0.5, 20.0, rate, 'high_pass') my_high_shelf = IIRfilter(2.0, 0.7, 1525.0, rate, 'high_shelf') # create a meter initialized without filters meter8 = pyln.Meter(rate, filter_class="custom") # load your filters into the meter meter8._filters = {'my_high_pass' : my_high_pass, 'my_high_shelf' : my_high_shelf} ``` ## Dependancies - **SciPy** ([https://www.scipy.org/](https://www.scipy.org/)) - **NumPy** ([http://www.numpy.org/](http://www.numpy.org/)) ## Citation If you use pyloudnorm in your work please consider citing us. ``` @inproceedings{steinmetz2021pyloudnorm, title={pyloudnorm: {A} simple yet flexible loudness meter in Python}, author={Steinmetz, Christian J. and Reiss, Joshua D.}, booktitle={150th AES Convention}, year={2021}} ``` ## References > Ian Dash, Luis Miranda, and Densil Cabrera, "[Multichannel Loudness Listening Test](http://www.aes.org/e-lib/browse.cfm?elib=14581)," > 124th International Convention of the Audio Engineering Society, May 2008 > Pedro D. Pestana and Álvaro Barbosa, "[Accuracy of ITU-R BS.1770 Algorithm in Evaluating Multitrack Material](http://www.aes.org/e-lib/online/browse.cfm?elib=16608)," > 133rd International Convention of the Audio Engineering Society, October 2012 > Pedro D. Pestana, Josh D. Reiss, and Álvaro Barbosa, "[Loudness Measurement of Multitrack Audio Content Using Modifications of ITU-R BS.1770](http://www.aes.org/e-lib/browse.cfm?elib=16714)," > 134th International Convention of the Audio Engineering Society, May 2013 > Steven Fenton and Hyunkook Lee, "[Alternative Weighting Filters for Multi-Track Program Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19215)," > 143rd International Convention of the Audio Engineering Society, October 2017 > Brecht De Man, "[Evaluation of Implementations of the EBU R128 Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19790)," > 145th International Convention of the Audio Engineering Society, October 2018. %package help Summary: Development documents and examples for pyloudnorm Provides: python3-pyloudnorm-doc %description help # pyloudnorm [![Build Status](https://travis-ci.org/csteinmetz1/pyloudnorm.svg?branch=master)](https://travis-ci.org/csteinmetz1/pyloudnorm) ![Zenodo](https://zenodo.org/badge/DOI/10.5281/zenodo.3551801.svg) Flexible audio loudness meter in Python. Implementation of [ITU-R BS.1770-4](https://www.itu.int/dms_pubrec/itu-r/rec/bs/R-REC-BS.1770-4-201510-I!!PDF-E.pdf).
Allows control over gating block size and frequency weighting filters for additional control. For full details on the implementation see our [paper](https://csteinmetz1.github.io/pyloudnorm-eval/paper/pyloudnorm_preprint.pdf) with a summary in our [AES presentation video](https://www.youtube.com/watch?v=krSJpQ3d4gE). ## Installation You can install with pip as follows ``` pip install pyloudnorm ``` For the latest releases always install from the GitHub repo ``` pip install git+https://github.com/csteinmetz1/pyloudnorm ``` ## Usage ### Find the loudness of an audio file It's easy to measure the loudness of a wav file. Here we use PySoundFile to read a .wav file as an ndarray. ```python import soundfile as sf import pyloudnorm as pyln data, rate = sf.read("test.wav") # load audio (with shape (samples, channels)) meter = pyln.Meter(rate) # create BS.1770 meter loudness = meter.integrated_loudness(data) # measure loudness ``` ### Loudness normalize and peak normalize audio files Methods are included to normalize audio files to desired peak values or desired loudness. ```python import soundfile as sf import pyloudnorm as pyln data, rate = sf.read("test.wav") # load audio # peak normalize audio to -1 dB peak_normalized_audio = pyln.normalize.peak(data, -1.0) # measure the loudness first meter = pyln.Meter(rate) # create BS.1770 meter loudness = meter.integrated_loudness(data) # loudness normalize audio to -12 dB LUFS loudness_normalized_audio = pyln.normalize.loudness(data, loudness, -12.0) ``` ### Advanced operation A number of alternate weighting filters are available, as well as the ability to adjust the analysis block size. Examples are shown below. ```python import soundfile as sf import pyloudnorm as pyln from pyloudnorm import IIRfilter data, rate = sf.read("test.wav") # load audio # block size meter1 = pyln.Meter(rate) # 400ms block size meter2 = pyln.Meter(rate, block_size=0.200) # 200ms block size # filter classes meter3 = pyln.Meter(rate) # BS.1770 meter meter4 = pyln.Meter(rate, filter_class="DeMan") # fully compliant filters meter5 = pyln.Meter(rate, filter_class="Fenton/Lee 1") # low complexity improvement by Fenton and Lee meter6 = pyln.Meter(rate, filter_class="Fenton/Lee 2") # higher complexity improvement by Fenton and Lee meter7 = pyln.Meter(rate, filter_class="Dash et al.") # early modification option # create your own IIR filters my_high_pass = IIRfilter(0.0, 0.5, 20.0, rate, 'high_pass') my_high_shelf = IIRfilter(2.0, 0.7, 1525.0, rate, 'high_shelf') # create a meter initialized without filters meter8 = pyln.Meter(rate, filter_class="custom") # load your filters into the meter meter8._filters = {'my_high_pass' : my_high_pass, 'my_high_shelf' : my_high_shelf} ``` ## Dependancies - **SciPy** ([https://www.scipy.org/](https://www.scipy.org/)) - **NumPy** ([http://www.numpy.org/](http://www.numpy.org/)) ## Citation If you use pyloudnorm in your work please consider citing us. ``` @inproceedings{steinmetz2021pyloudnorm, title={pyloudnorm: {A} simple yet flexible loudness meter in Python}, author={Steinmetz, Christian J. and Reiss, Joshua D.}, booktitle={150th AES Convention}, year={2021}} ``` ## References > Ian Dash, Luis Miranda, and Densil Cabrera, "[Multichannel Loudness Listening Test](http://www.aes.org/e-lib/browse.cfm?elib=14581)," > 124th International Convention of the Audio Engineering Society, May 2008 > Pedro D. Pestana and Álvaro Barbosa, "[Accuracy of ITU-R BS.1770 Algorithm in Evaluating Multitrack Material](http://www.aes.org/e-lib/online/browse.cfm?elib=16608)," > 133rd International Convention of the Audio Engineering Society, October 2012 > Pedro D. Pestana, Josh D. Reiss, and Álvaro Barbosa, "[Loudness Measurement of Multitrack Audio Content Using Modifications of ITU-R BS.1770](http://www.aes.org/e-lib/browse.cfm?elib=16714)," > 134th International Convention of the Audio Engineering Society, May 2013 > Steven Fenton and Hyunkook Lee, "[Alternative Weighting Filters for Multi-Track Program Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19215)," > 143rd International Convention of the Audio Engineering Society, October 2017 > Brecht De Man, "[Evaluation of Implementations of the EBU R128 Loudness Measurement](http://www.aes.org/e-lib/browse.cfm?elib=19790)," > 145th International Convention of the Audio Engineering Society, October 2018. %prep %autosetup -n pyloudnorm-0.1.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-pyloudnorm -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Mon Apr 10 2023 Python_Bot - 0.1.1-1 - Package Spec generated