Skip to content

Commit

Permalink
fixes issue #353 and adds a test
Browse files Browse the repository at this point in the history
  • Loading branch information
fakufaku committed Jun 18, 2024
1 parent 40e973c commit b8155bf
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 1 deletion.
3 changes: 2 additions & 1 deletion pyroomacoustics/room.py
Original file line number Diff line number Diff line change
Expand Up @@ -2258,7 +2258,8 @@ def compute_rir(self):

# compute the distance from image sources
dist = np.sqrt(np.sum((src.images - mic[:, None]) ** 2, axis=0))
time = dist / self.c
# the RIR building routine works in float32, so we cast here
time = (dist / self.c).astype(np.float32)
t_max = time.max()
N = int(math.ceil(t_max * self.fs))

Expand Down
43 changes: 43 additions & 0 deletions pyroomacoustics/tests/test_issue_353.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
"""
# Test for Issue 353
[issue #353](https://github.com/LCAV/pyroomacoustics/issues/353)
The cause of the issue was that the time of the maximum delay
in the RIR is used to determine the necessary size of the array.
The float64 value of the delay was used to determine the size and construct the array.
However, the `rir_build` routine takes float32.
After conversion, the array size would evaluate to one delay more due to rounding
offset and an array size check would fail.
Converting the delay time array to float32 before creating the rir array
solved the issue.
"""
import numpy as np
import pyroomacoustics as pra


def test_issue_353():
room_dims = np.array([10., 10., 10.])
room = pra.ShoeBox(
room_dims,
fs=24000,
materials=None,
max_order=22,
use_rand_ism=False
)

source = np.array([[6.35551912],[4.33308523], [3.69586303]])
room.add_source(source)

mic_array_in_room = np.array(
[
[1.5205189, 1.49366285, 1.73302404, 1.67847898],
[4.68430529, 4.76250254, 4.67956424, 4.60702604],
[2.68214263, 2.7980202, 2.55341851, 2.72701718]
]
)
room.add_microphone_array(mic_array_in_room)

room.compute_rir()

0 comments on commit b8155bf

Please sign in to comment.