MCPcopy Create free account
hub / github.com/PyTTaMaster/PyTTa / reverb_time_regression

Function reverb_time_regression

pytta/classes/analysis.py:1497–1509  ·  view source on GitHub ↗

Interpolate the EDT to get the reverberation time.

(energyDecay, energyVector, upperLim, lowerLim)

Source from the content-addressed store, hash-verified

1495
1496# @njit
1497def reverb_time_regression(energyDecay, energyVector, upperLim, lowerLim):
1498 """Interpolate the EDT to get the reverberation time."""
1499 if not np.any(energyDecay):
1500 return 0
1501 first = np.where(10*np.log10(energyDecay) >= upperLim)[0][-1]
1502 last = np.where(10*np.log10(energyDecay) >= lowerLim)[0][-1]
1503 if last <= first:
1504 # return np.nan
1505 return 0
1506 X = np.ones((last-first, 2))
1507 X[:, 1] = energyVector[first:last]
1508 c = np.linalg.lstsq(X, 10*np.log10(energyDecay[first:last]), rcond=-1)[0]
1509 return -60/c[1]
1510
1511
1512def reverberation_time(decay, listEDC):

Callers 1

reverberation_timeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected