Commit 9d5cad35 authored by Anika Treffehn's avatar Anika Treffehn
Browse files

adapted evs for planar osba

parent cb06342a
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -349,6 +349,7 @@ def split_channels(
    in_nchans: int,
    out_nchans: int,
    is_planar: Optional[bool] = False,
    is_planar_offset: Optional[int] = 0,
    in_fs: Optional[int] = 48000,
) -> None:
    """
@@ -366,6 +367,8 @@ def split_channels(
        Number of channels to be split
    is_planar: Optional[bool]
        If true vertical SBA channels are set to zero
    is_planar_offset: Optional[int]
        Offset of SBA due to OSBA (corresponds to num of ISM channels)
    in_fs: Optional[int] = 48000
        Input sampling rate, default 48000 Hz

@@ -386,7 +389,7 @@ def split_channels(
    x, in_fs = read(in_file, nchannels=in_nchans, fs=in_fs)

    if is_planar:
        x[:, VERT_HOA_CHANNELS_ACN[VERT_HOA_CHANNELS_ACN < in_nchans]] = 0
        x[:, VERT_HOA_CHANNELS_ACN[VERT_HOA_CHANNELS_ACN < (in_nchans - is_planar_offset)] + is_planar_offset] = 0

    # Write output files
    for idx, out_file in enumerate(out_filenames):
+7 −0
Original line number Diff line number Diff line
@@ -177,7 +177,13 @@ class EVS(Processing):
        # flag for zeroing of channels for planar SBA formats
        is_planar = (
            isinstance(self.in_fmt, audio.SceneBasedAudio) and self.in_fmt.is_planar
            or
            isinstance(self.in_fmt, audio.OSBAAudio) and self.in_fmt.is_planar
        )
        if isinstance(self.in_fmt, audio.OSBAAudio) and self.in_fmt.is_planar:
            is_planar_offset = self.in_fmt.num_ism_channels
        else:
            is_planar_offset = 0

        # Split the channels to prepare for multi-mono coding
        split_chan_files = [
@@ -191,6 +197,7 @@ class EVS(Processing):
            out_nchans=self.in_fmt.num_channels,
            in_fs=self.in_fs,
            is_planar=is_planar,
            is_planar_offset=is_planar_offset,
        )

        # run processing