Skip to content

Commit 7cb9778

Browse files
committed
HOA: allow overloading decoder design for other formats
1 parent 163f7d0 commit 7cb9778

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

ear/core/scenebased/design.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
from functools import singledispatch
12
import numpy as np
23
import warnings
34
from .. import hoa
5+
from ..layout import Layout
46
from .. import point_source
57

68

@@ -85,3 +87,13 @@ def design(self, type_metadata):
8587
decoder /= np.sqrt(np.mean(np.sum(np.dot(decoder, K_v) ** 2, axis=0)))
8688

8789
return decoder
90+
91+
92+
@singledispatch
93+
def build_hoa_decoder_design(layout, **options):
94+
return None
95+
96+
97+
@build_hoa_decoder_design.register(Layout)
98+
def _build_hoa_decoder_design_speakers(layout, **options):
99+
return HOADecoderDesign(layout, **options)

ear/core/scenebased/renderer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import numpy as np
22
from attr import attrs, attrib
3-
from .design import HOADecoderDesign
3+
from .design import build_hoa_decoder_design
44
from ..renderer_common import BlockProcessingChannel, InterpretTimingMetadata, ProcessingBlock
55
from ..track_processor import MultiTrackProcessor
66

@@ -65,7 +65,7 @@ class HOARenderer(object):
6565
"""
6666

6767
def __init__(self, layout, design_opts={}):
68-
self._decoder_design = HOADecoderDesign(layout.without_lfe, **design_opts)
68+
self._decoder_design = build_hoa_decoder_design(layout.without_lfe, **design_opts)
6969
self._output_channels = ~layout.is_lfe
7070

7171
self.block_processing_channels = []

0 commit comments

Comments
 (0)