Skip to content

Commit 325b856

Browse files
committed
Edits CHANGELOG. Adds more details about the SOFA files included including origin and license in the documentation.
1 parent 2c48ac2 commit 325b856

File tree

5 files changed

+72
-14
lines changed

5 files changed

+72
-14
lines changed

CHANGELOG.rst

+23-7
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,15 @@ The format is based on `Keep a
88
Changelog <http://keepachangelog.com/en/1.0.0/>`__ and this project
99
adheres to `Semantic Versioning <http://semver.org/spec/v2.0.0.html>`_.
1010

11-
dev/dirpat
12-
----------
11+
`Unreleased`_
12+
-------------
13+
14+
This new version introduces some major changes. In particular, it introduces
15+
the use of measured microphone and source directivities. This new feature
16+
allows to simulate more accurately real recording equipments. See the
17+
`documentation
18+
<https://pyroomacoustics.readthedocs.io/en/latest/pyroomacoustics.directivities.html>`_
19+
for more details.
1320

1421
Added
1522
~~~~~
@@ -25,8 +32,22 @@ Added
2532
the current default is ``False`` to match past behavior, but will be changed to
2633
``True`` in the next release because the filters have less oscillations this way.
2734

35+
- New parameter ``min_phase`` of class ``Room``. If set to ``True``, the band-pass
36+
filters are designed as minimum phase filters.
37+
2838
- Simulation with measured directivity responses in SOFA format (limited file types) is
2939
possible with the image source model.
40+
41+
- A flexible and extensible SOFA file reader with optional spherical interpolation.
42+
- A small database of files is bundled, including the `DIRPAT database
43+
<https://aes2.org/publications/elibrary-page/?id=19538>`_, collected by
44+
Manuel Brandner, Matthias Frank, and Daniel Rudrich University of Music and
45+
Performing Arts Graz, Graz. The file also include two HRTF of the
46+
`MIT KEMAR dummy head <https://sound.media.mit.edu/resources/KEMAR/README>`_.
47+
48+
- Introduces a new class ``pyroomacoustics.directivities.Rotation3D`` to specify
49+
the orientation of sources and receivers in 3D.
50+
3051
- Adds `soxr <https://github.com/dofuuz/python-soxr>`_ as a dependency since resampling
3152
can often be necessary when working with SOFA files.
3253

@@ -40,11 +61,6 @@ Changed
4061
``Bidirectional`` and ``Omnidirectional`` are added in the ``directivity``
4162
sub-module. The enum of type ``DirectivityPattern`` has been removed.
4263

43-
`Unreleased`_
44-
-------------
45-
46-
Nothing yet
47-
4864
`0.7.7`_ - 2024-09-09
4965
---------------------
5066

MANIFEST.in

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Acoustic data for the simulation
22
include pyroomacoustics/data/materials.json
3-
include pyroomacoustics/data/AKG_c480_c414_CUBE.sofa
4-
include pyroomacoustics/data/EM32_Directivity.sofa
3+
include pyroomacoustics/data/sofa_files.json
4+
include pyroomacoustics/data/sofa/AKG_c480_c414_CUBE.sofa
5+
include pyroomacoustics/data/sofa/EM32_Directivity.sofa
56
include pyroomacoustics/data/sofa/mit_kemar_large_pinna.sofa
67
include pyroomacoustics/data/sofa/mit_kemar_normal_pinna.sofa
78

@@ -23,9 +24,12 @@ graft pyroomacoustics/tests
2324
graft pyroomacoustics/adaptive/tests
2425
graft pyroomacoustics/bss/tests
2526
graft pyroomacoustics/datasets/tests
27+
graft pyroomacoustics/denoise/tests
28+
graft pyroomacoustics/directivities/tests
2629
graft pyroomacoustics/doa/tests
2730
graft pyroomacoustics/experimental/tests
2831
graft pyroomacoustics/libroom_src/tests
32+
graft pyroomacoustics/phase/tests
2933
graft pyroomacoustics/transform/tests
3034

3135
global-exclude *.py[co]

pyroomacoustics/datasets/sofa.py

+35-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
r"""
2525
Pyroomacoustics contains a small database of SOFA files that have been tested
2626
and can be used for simultions.
27-
The database can be loaded using the function :py:class:`~pyroomacoustics.datasets.sofa.SOFADatabase`.
27+
The database can be loaded using the function
28+
:py:class:`~pyroomacoustics.datasets.sofa.SOFADatabase`.
2829
2930
.. code-block:: python
3031
@@ -33,6 +34,39 @@
3334
3435
db = SOFADatabase()
3536
db.list()
37+
38+
The database contains the following files.
39+
40+
- Three files from the `DIRPAT database
41+
<https://phaidra.kug.ac.at/detail/o:68229#?page=1&pagesize=10&collection=o:67857>`_
42+
collected by Manuel Brandner, Matthias Frank, and Daniel Rudrich University
43+
of Music and Performing Arts, Graz.
44+
45+
- ``AKG_c480_c414_CUBE.sofa`` containing the directive responses of a
46+
microphone with 4 different patterns.
47+
- ``EM32_Directivity.sofa`` that contains the directional response of the
48+
`Eigenmike em32 <https://eigenmike.com/eigenmike-em32>`_ microphone array.
49+
- ``LSPs_HATS_GuitarCabinets_Akustikmessplatz.sofa`` that contains 12 source
50+
directivities. This file is dynamically downloaded upon its first use.
51+
- The files are public domain
52+
(`CC0 <https://creativecommons.org/public-domain/cc0/>`_),
53+
but if you use them in your research, please cite the following
54+
`paper <https://aes2.org/publications/elibrary-page/?id=19538>`_.
55+
56+
::
57+
58+
M. Brandner, M. Frank, and D. Rudrich, "DirPat—Database and
59+
Viewer of 2D/3D Directivity Patterns of Sound Sources and Receivers,"
60+
in Audio Engineering Society Convention 144, Paper 425, 2018.
61+
62+
- Two head-related transfer functions of the MIT KEMAR dummy head
63+
with normal and large pinna. The data was collected by Bill Gardner
64+
and Keith Martin from MIT and is free to use provided the authors are
65+
cited. See the
66+
`full license <https://sound.media.mit.edu/resources/KEMAR/README>`_
67+
for more details.
68+
69+
3670
"""
3771

3872

pyroomacoustics/directivities/base.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,12 @@
2828
directivity patterns.
2929
3030
The class should implement the following methods:
31-
- `get_response` to get the response for a given angle and frequency
32-
- `is_impulse_response` to indicate whether the directivity is an impulse response or just band coefficients
33-
- `filter_len_ir` to return the length of the impulse response. This should return 1 if the directivity is not an impulse response.
31+
32+
- ``get_response`` to get the response for a given angle and frequency
33+
- ``is_impulse_response`` to indicate whether the directivity is an impulse response or
34+
just band coefficients
35+
- ``filter_len_ir`` to return the length of the impulse response. This should return 1
36+
if the directivity is not an impulse response.
3437
"""
3538
import abc
3639

pyroomacoustics/directivities/direction.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,8 @@ def _make_rot_matrix(a, axis):
129129

130130
class Rotation3D:
131131
"""
132-
An object representing 3D rotations by their [Euler angles](https://en.wikipedia.org/wiki/Euler_angles).
132+
An object representing 3D rotations by their
133+
`Euler angles <https://en.wikipedia.org/wiki/Euler_angles>`_.
133134
134135
A rotation in 3D space can be fully described by 3 angles (i.e., the Euler angles). Each rotation is applied
135136
around one of the three axes and there are 12 possible ways of pickinig the order or the rotations.

0 commit comments

Comments
 (0)