import numpy as np
import pyfar as pf
import pyrato as ra
from pyrato.analytic import rectangular_room_rigid_walls
L = np.array([8, 5, 3])/10
source_pos = np.array([5, 3, 1.2])/10
receiver_pos = np.array([1, 1, 1.2])/10
rir, _ = rectangular_room_rigid_walls(
    L, source_pos, receiver_pos,
    reverberation_time=1, max_freq=1e3, n_samples=2**16,
    speed_of_sound=343.9)
rir = rir/rir.time.max()
awgn = pf.signals.noise(
    rir.n_samples, rms=rir.time.max()*10**(-50/20),
    sampling_rate=rir.sampling_rate)
rir = rir + awgn
edc = ra.edc.energy_decay_curve_chu_lundeby(rir)
ax = pf.plot.time(rir, dB=True, label='RIR')
pf.plot.time(edc, dB=True, log_prefix=10, label='EDC')
ax.set_ylim(-65, 5)
ax.legend()
