[x3d-public] Sound v4 > channel nodes > node design comparison v4 vs Doug proposed

GPU Group gpugroup at gmail.com
Sat Mar 4 09:20:53 PST 2023


CHANNEL NODE DESIGN COMPARISON

v4: channel nodes as written in v4 Spec Draft Sound Component

Doug proposed: add 2 fields to ChannelMerger MFInt32 indxDst and indxSrc
and eliminate ChannelSelector node

I have both v4 and Doug proposed implemented in freewrl: if indxDst or
indxSrc is empty, thunks to v4

I tested both methods on 3 scenarios and they both work as follows:

a) swapping 2 channels

v4

        <ChannelMerger channelCount='6' >

            <ChannelSelector channelSelection='1'>

               <ChannelSplitter DEF='Channel_Splitter' channelCount='6'>

                 <AudioClip url='"sound/6_Channel_ID.wav"'/>

               </ChannelSplitter>

            </ChannelSelector>

            <ChannelSelector channelSelection='0'>

              <ChannelSplitter USE='Channel_Splitter'/>

            </ChannelSelector>

        </ChannelMerger>

Doug proposed

        <ChannelMerger channelCount='6'

          indxSrc='0,1'

          indxDst='1,0'

          >

             <ChannelSplitter DEF='Channel_Splitter' channelCount='6'>

              <AudioClip url='"sound/6_Channel_ID.wav"'/>

             </ChannelSplitter>

            <ChannelSplitter USE='Channel_Splitter'/>

        </ChannelMerger>

b) merging 2 channels into 1

v4

        <ChannelMerger channelCount='6' >

          <Gain>

            <ChannelSelector channelSelection='1'>

               <ChannelSplitter DEF='Channel_Splitter' channelCount='6'>

                 <AudioClip url='"sound/6_Channel_ID.wav"'/>

               </ChannelSplitter>

            </ChannelSelector>

            <ChannelSelector channelSelection='0'>

              <ChannelSplitter USE='Channel_Splitter'/>

            </ChannelSelector>

          </Gain>

        </ChannelMerger>

Doug proposed

        <ChannelMerger channelCount='6'

          indxSrc='0,1'

          indxDst='0,0'

          >

             <ChannelSplitter DEF='Channel_Splitter' channelCount='6'>

               <AudioClip url='"sound/6_Channel_ID.wav"'/>

             </ChannelSplitter>

             <ChannelSplitter USE='Channel_Splitter'/>

        </ChannelMerger>

c) merging 2 channels into 2nd merger channel (skipping first output
channel)

v4

        <ChannelMerger channelCount='6' >

          <Gain/>

          <Gain>

            <ChannelSelector channelSelection='1'>

               <ChannelSplitter DEF='Channel_Splitter' channelCount='6'>

                <AudioClip url='"sound/6_Channel_ID.wav"'/>

               </ChannelSplitter>

            </ChannelSelector>

            <ChannelSelector channelSelection='0'>

              <ChannelSplitter USE='Channel_Splitter'/>

            </ChannelSelector>

          </Gain>

        </ChannelMerger>

Doug proposed:

        <ChannelMerger channelCount='6'

          indxSrc='0,1'

          indxDst='1,1'

          >

             <ChannelSplitter DEF='Channel_Splitter' channelCount='6'>

              <AudioClip url='"sound/6_Channel_ID.wav"'/>

             </ChannelSplitter>

            <ChannelSplitter USE='Channel_Splitter'/>

        </ChannelMerger>



/CHANNEL NODE DESIGN COMPARISON

-Doug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230304/4e2fde94/attachment.html>


More information about the x3d-public mailing list