Skip to content

Commit 9aecbef

Browse files
committed
direct speakers: allow overloading panner for other formats
1 parent 7700d3a commit 9aecbef

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

ear/core/direct_speakers/panner.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
from attr import attrs, attrib, evolve
2+
from functools import singledispatch
23
from multipledispatch import dispatch
34
import numpy as np
45
import re
56
import warnings
67
from ..geom import inside_angle_range
78
from .. import point_source
89
from .. import allocentric
10+
from ..layout import Layout
911
from ..renderer_common import is_lfe
1012
from ..screen_edge_lock import ScreenEdgeLockHandler
1113
from ...fileio.adm.elements import DirectSpeakerCartesianPosition, DirectSpeakerPolarPosition
@@ -463,3 +465,13 @@ def handle(self, type_metadata):
463465
pv = np.zeros(self.n_channels)
464466
pv[~self.is_lfe] = psp.handle(position)
465467
return pv
468+
469+
470+
@singledispatch
471+
def build_direct_speakers_panner(layout, **options):
472+
return None
473+
474+
475+
@build_direct_speakers_panner.register(Layout)
476+
def _build_direct_speakers_panner_speakers(layout, **options):
477+
return DirectSpeakersPanner(layout, **options)

ear/core/direct_speakers/renderer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import numpy as np
2-
from .panner import DirectSpeakersPanner
2+
from .panner import build_direct_speakers_panner
33
from ..renderer_common import BlockProcessingChannel, InterpretTimingMetadata, FixedGains
44
from ..track_processor import TrackProcessor
55

@@ -44,7 +44,7 @@ class DirectSpeakersRenderer(object):
4444
"""
4545

4646
def __init__(self, layout, **options):
47-
self._panner = DirectSpeakersPanner(layout, **options)
47+
self._panner = build_direct_speakers_panner(layout, **options)
4848
self._nchannels = layout.num_channels
4949

5050
# tuples of a track spec processor and a BlockProcessingChannel to

0 commit comments

Comments
 (0)