diff --git a/examples/energy_decay_curves_and_reverberation_time.ipynb b/examples/energy_decay_curves_and_reverberation_time.ipynb index 0c3d6a2..a4e3c8c 100644 --- a/examples/energy_decay_curves_and_reverberation_time.ipynb +++ b/examples/energy_decay_curves_and_reverberation_time.ipynb @@ -164,7 +164,7 @@ "plt.axvline(rir_1_noise.signal_length*interval[0], color='red', label='Interval')\n", "plt.axvline(rir_1_noise.signal_length*interval[1], color='red')\n", "\n", - "noise_energy = ra.estimate_noise_energy(\n", + "noise_energy = ra.dsp.estimate_noise_energy(\n", " rir_1_noise, interval=interval, is_energy=False)\n", "\n", "noise_energy_db = 10*np.log10(noise_energy)\n", @@ -232,12 +232,12 @@ "outputs": [], "source": [ "start_sample = pf.dsp.find_impulse_response_start(rir_1_noise)\n", - "rir_noise_shifted = ra.time_shift(rir_1_noise, -start_sample, circular_shift=False)\n", - "edc_full_rir = ra.schroeder_integration(rir_noise_shifted, is_energy=False)\n", + "rir_noise_shifted = pf.dsp.time_shift(rir_1_noise, -start_sample, mode='linear')\n", + "edc_full_rir = ra.edc.schroeder_integration(rir_noise_shifted, is_energy=False)\n", "\n", "start_sample = pf.dsp.find_impulse_response_start(rir_1)\n", - "rir_shifted = ra.time_shift(rir_1, -start_sample, circular_shift=False)\n", - "edc_full_rir_compare = ra.schroeder_integration(rir_shifted, is_energy=False)\n", + "rir_shifted = pf.dsp.time_shift(rir_1, -start_sample, mode='linear')\n", + "edc_full_rir_compare = ra.edc.schroeder_integration(rir_shifted, is_energy=False)\n", "edc_full_rir_compare.time /= np.atleast_2d(edc_full_rir_compare.time[..., 0]).T\n", "edc_full_rir.time /= np.atleast_2d(edc_full_rir.time[..., 0]).T\n", "\n", @@ -275,7 +275,7 @@ "outputs": [], "source": [ "intersection_time, late_reveberation_time, noise_level_lundeby = \\\n", - " ra.intersection_time_lundeby(\n", + " ra.edc.intersection_time_lundeby(\n", " rir_1_noise, freq='broadband', is_energy=False,\n", " time_shift=True, channel_independent=False, plot=True)\n", "\n", @@ -296,7 +296,7 @@ "metadata": {}, "outputs": [], "source": [ - "edc_truncation = ra.energy_decay_curve_truncation(\n", + "edc_truncation = ra.edc.energy_decay_curve_truncation(\n", " rir_1_noise, freq='broadband', is_energy=False, time_shift=True,\n", " channel_independent=False, normalize=True, plot=False)\n", "\n", @@ -325,7 +325,7 @@ "metadata": {}, "outputs": [], "source": [ - "edc_chu_auto = ra.energy_decay_curve_chu(\n", + "edc_chu_auto = ra.edc.energy_decay_curve_chu(\n", " rir_1_noise, noise_level='auto', is_energy=False, time_shift=True,\n", " channel_independent=False, normalize=True, plot=False)" ] @@ -336,8 +336,8 @@ "metadata": {}, "outputs": [], "source": [ - "noise_level_man = ra.estimate_noise_energy(rir_1_noise, interval=[0.6, 1.0], is_energy=False)\n", - "edc_chu_man = ra.energy_decay_curve_chu(\n", + "noise_level_man = ra.dsp.estimate_noise_energy(rir_1_noise, interval=[0.6, 1.0], is_energy=False)\n", + "edc_chu_man = ra.edc.energy_decay_curve_chu(\n", " rir_1_noise, noise_level=noise_level_man, is_energy=False, time_shift=True,\n", " channel_independent=False, normalize=True, plot=False)" ] @@ -348,7 +348,7 @@ "metadata": {}, "outputs": [], "source": [ - "edc_chu_noise_lundeby = ra.energy_decay_curve_chu(\n", + "edc_chu_noise_lundeby = ra.edc.energy_decay_curve_chu(\n", " rir_1_noise, noise_level=noise_level_lundeby, is_energy=False, time_shift=True,\n", " channel_independent=False, normalize=True, plot=False)" ] @@ -392,7 +392,7 @@ "metadata": {}, "outputs": [], "source": [ - "edc_lundeby = ra.energy_decay_curve_lundeby(\n", + "edc_lundeby = ra.edc.energy_decay_curve_lundeby(\n", " rir_1_noise, is_energy=False, time_shift=True,\n", " channel_independent=False, normalize=True, plot=False)\n", "\n", @@ -421,7 +421,7 @@ "metadata": {}, "outputs": [], "source": [ - "edc_chu_lundeby = ra.energy_decay_curve_chu_lundeby(\n", + "edc_chu_lundeby = ra.edc.energy_decay_curve_chu_lundeby(\n", " rir_1_noise, freq='broadband', is_energy=False, time_shift=True,\n", " channel_independent=False, normalize=True, plot=False)\n", "\n", @@ -472,7 +472,7 @@ "reverberation_times = np.zeros(len(edcs))\n", "for idx, edc in enumerate(edcs):\n", " reverberation_times[idx] = \\\n", - " ra.reverberation_time_linear_regression(\n", + " ra.parameters.reverberation_time_linear_regression(\n", " edc, T=Tx)" ] }, @@ -528,7 +528,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.11" + "version": "3.13.4" } }, "nbformat": 4, diff --git a/pyrato/__init__.py b/pyrato/__init__.py index ead2c25..4c2ca2c 100644 --- a/pyrato/__init__.py +++ b/pyrato/__init__.py @@ -23,5 +23,5 @@ 'dsp', 'analytic', 'parametric', - 'air_attenuation_coefficient' + 'air_attenuation_coefficient', ] diff --git a/pyrato/parameters.py b/pyrato/parameters.py index 2d80a48..bbaaca2 100644 --- a/pyrato/parameters.py +++ b/pyrato/parameters.py @@ -60,7 +60,7 @@ def reverberation_time_linear_regression( >>> rir = rir + awgn ... >>> edc = ra.energy_decay_curve_chu_lundeby(rir) - >>> t_20 = ra.reverberation_time_linear_regression(edc, 'T20') + >>> t_20 = ra.parameters.reverberation_time_linear_regression(edc, 'T20') >>> t_20 ... array([0.99526253]) diff --git a/pyrato/parametric.py b/pyrato/parametric.py index 1869d38..d0809ac 100644 --- a/pyrato/parametric.py +++ b/pyrato/parametric.py @@ -1,13 +1,10 @@ -# -*- coding: utf-8 -*- -"""Module for room acoustics related functions.""" +"""Module for room acoustics related functions. -"""Parametric room acoustics calculations using simple geometric considerations +Parametric room acoustics calculations using simple geometric considerations such as Sabine's theory of sound in rooms. """ - import numpy as np - def energy_decay_curve_analytic( surfaces, alphas, volume, times, source=None, receiver=None, method='eyring', c=343.4, frequency=None, @@ -115,7 +112,7 @@ def air_attenuation_coefficient( warnings.warn( 'Will be replaced by respective function in pyfar before v1.0.0', - PyfarDeprecationWarning) + PyfarDeprecationWarning, stacklevel=2) # room temperature in Kelvin t_K = temperature + 273.16 diff --git a/tests/test_deprecation_warnings.py b/tests/test_deprecation_warnings.py index e62d389..ea9693b 100644 --- a/tests/test_deprecation_warnings.py +++ b/tests/test_deprecation_warnings.py @@ -36,13 +36,3 @@ def test_warning_start_ir(): sig = pf.Signal([0, 0, 1, 0, 0], 44100) pyrato.dsp.find_impulse_response_start(sig) - - -def test_warning_rt_edc(): - times = np.linspace(0, 1.5, 2**9) - m = -60 - edc = times * m - edc_exp = pf.TimeData(10**(edc/10), times) - with pytest.warns(DeprecationWarning, match='0.5.0'): - pyrato.reverberation_time_energy_decay_curve( - edc_exp) diff --git a/tests/test_edc.py b/tests/test_edc.py index 73981a0..64607dc 100644 --- a/tests/test_edc.py +++ b/tests/test_edc.py @@ -16,7 +16,7 @@ def test_edc_eyring(): surfaces = [2, 5*2] volume = 2*2*2 times = np.linspace(0, 0.25, 50) - edc = ra.energy_decay_curve_analytic( + edc = ra.parametric.energy_decay_curve_analytic( surfaces, alphas, volume, times, method='eyring', air_absorption=False) truth = array([ @@ -43,7 +43,7 @@ def test_edc_sabine(): surfaces = [2, 5*2] volume = 2*2*2 times = np.linspace(0, 0.25, 50) - edc = ra.energy_decay_curve_analytic( + edc = ra.parametric.energy_decay_curve_analytic( surfaces, alphas, volume, times, method='sabine', air_absorption=False) truth = array([ diff --git a/tests/test_rt.py b/tests/test_rt.py index f8e55ca..8a34a0a 100644 --- a/tests/test_rt.py +++ b/tests/test_rt.py @@ -17,7 +17,7 @@ def test_rt_from_edc(tx): m = -60 edc = times * m edc_exp = pf.TimeData(10**(edc/10), times) - RT_est = ra.reverberation_time_linear_regression( + RT_est = ra.parameters.reverberation_time_linear_regression( edc_exp, T=tx) npt.assert_allclose(RT_est, 1.) @@ -30,7 +30,7 @@ def test_rt_from_edc_mulitchannel(tx): m = -60 edc = np.atleast_2d(m/Ts).T @ np.atleast_2d(times) edc_exp = pf.TimeData(10**(edc/10), times) - RT_est = ra.reverberation_time_linear_regression( + RT_est = ra.parameters.reverberation_time_linear_regression( edc_exp, T=tx) npt.assert_allclose(RT_est, Ts) @@ -47,7 +47,7 @@ def test_rt_from_edc_mulitchannel_amplitude(tx): edc[idx] = As[idx] + m*times/Ts[idx] edc_exp = pf.TimeData(10**(edc/10), times) - RT_est, A_est = ra.reverberation_time_linear_regression( + RT_est, A_est = ra.parameters.reverberation_time_linear_regression( edc_exp, T=tx, return_intercept=True) npt.assert_allclose(RT_est, Ts) npt.assert_allclose(A_est, 10**(As/10)) @@ -61,4 +61,4 @@ def test_rt_from_edc_error(): T = 'Bla' with pytest.raises(ValueError, match='is not a valid interval.'): - ra.reverberation_time_linear_regression(edc_exp, T=T) + ra.parameters.reverberation_time_linear_regression(edc_exp, T=T)