<div dir="ltr"><div dir="ltr">correction to b) <div><p class="MsoNormal"><span style="font-family:Consolas">proposed</span></p><p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6'</span></p><p class="MsoNormal"><span style="font-family:Consolas">          indexStream='0,1'</span></p></div><div><span style="font-family:Consolas"><br></span></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 5, 2023 at 6:44 AM GPU Group <<a href="mailto:gpugroup@gmail.com">gpugroup@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Here's an even better proposed design using a 3-tuple, and showing more tested scenarios<br><div><p class="MsoNormal">CHANNEL NODE DESIGN COMPARISON<span></span></p>

<p class="MsoNormal">v4: channel nodes as written in v4 Spec Draft Sound
Component<span></span></p><p class="MsoNormal">- merger.children is a sequential list of output/destination channels</p>

<p class="MsoNormal">proposed: add 3 fields to ChannelMerger <span></span></p>

<p class="MsoNormal">-  MFInt32 indexStream,
indexSource, indexDestination<span></span></p>

<p class="MsoNormal">- and eliminate ChannelSelector node. </p><p class="MsoNormal">- Merger.children is a list of audio streams.<span></span></p>

<p class="MsoNormal">I have both v4 and proposed implemented in freewrl: if indexStream,
Source or Destination is empty, thunks to v4<span></span></p>

<p class="MsoNormal">I tested both methods on 5 scenarios and they both work as
follows:<span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">a) swapping 2 channels<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">v4<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='1'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">                 <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector channelSelection='0'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">proposed<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexStream='0,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexSource='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexDestination='1,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">b) merging 2 channels
into 1<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">v4<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          <Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='1'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">                 <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='0'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          </Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">proposed<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexStream='0,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexSource='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexDestination='0,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">c) merging 2 channels
into 2nd merger channel (skipping first output channel)<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">v4<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          <Gain/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          <Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='1'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">                 <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='0'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          </Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">proposed:<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' <span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexStream='0,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexSource='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexDestination='1,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas"> </span></p>

<p class="MsoNormal"><span style="font-family:Consolas">d) assign different audio
streams to first and 2nd channnels (play beat in left, cnote in right)<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">v4<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='2' ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <Gain
gain='.5'><AudioClip url='"sound/beat.mp3"'/></Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <Gain
gain='.5'><AudioClip url='"sound/cnote.wav"'/></Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">proposed:<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='2' <span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexSteam='0,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexSourc='-1,-1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexDestination='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <Gain
gain='.5'><AudioClip url='"sound/beat.mp3"'/></Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <Gain
gain='.5'><AudioClip url='"sound/cnote.wav"'/></Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">e) assign different audio
streams to first and 2nd channnels via splitter take first channel (play beat
in left, cnote in right)<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">v4<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='2' ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelChoice='0'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
channelCount='2'><AudioClip url='"sound/beat.mp3"'/></ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelChoice='0'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
channelCount='2'><AudioClip url='"sound/cnote.wav"'/></ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">proposed:<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='2'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexStream='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexSourc='0,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indexDestination='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
channelCount='2'><AudioClip url='"sound/beat.mp3"'/></ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
channelCount='2'><AudioClip url='"sound/cnote.wav"'/></ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">/</span>CHANNEL NODE
DESIGN COMPARISON<span></span></p></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 4, 2023 at 10:20 AM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><p class="MsoNormal">CHANNEL NODE DESIGN COMPARISON<span></span></p>

<p class="MsoNormal">v4: channel nodes as written in v4 Spec Draft Sound
Component<span></span></p>

<p class="MsoNormal">Doug proposed: add 2 fields to ChannelMerger MFInt32 indxDst
and indxSrc and eliminate ChannelSelector node<span></span></p>

<p class="MsoNormal">I have both v4 and Doug proposed implemented in freewrl: if
indxDst or indxSrc is empty, thunks to v4<span></span></p>

<p class="MsoNormal">I tested both methods on 3 scenarios and they both work as
follows:<span></span></p>

<p class="MsoNormal">a) swapping 2 channels<span></span></p>

<p class="MsoNormal">v4<span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='1'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">                 <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">           
</ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='0'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">Doug proposed<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' <span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indxSrc='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indxDst='1,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             
<AudioClip url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">b) merging 2 channels
into 1<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">v4<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          <Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='1'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">                 <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='0'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          </Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">Doug proposed<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' <span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indxSrc='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indxDst='0,0'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              
<AudioClip url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">c) merging 2 channels
into 2nd merger channel (skipping first output channel)<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">v4<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          <Gain/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          <Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='1'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">                 <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">               </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSelector
channelSelection='0'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            </ChannelSelector><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          </Gain><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">Doug proposed:<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        <ChannelMerger channelCount='6' <span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indxSrc='0,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          indxDst='1,1'<span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">          ><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             <ChannelSplitter
DEF='Channel_Splitter' channelCount='6'><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">              <AudioClip
url='"sound/6_Channel_ID.wav"'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">             </ChannelSplitter><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">            <ChannelSplitter
USE='Channel_Splitter'/><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas">        </ChannelMerger><span></span></span></p>

<p class="MsoNormal"><span style="font-family:Consolas"> </span></p>

<p class="MsoNormal">/CHANNEL NODE DESIGN COMPARISON<span></span></p><p class="MsoNormal">-Doug</p></div></div>
</blockquote></div>
</blockquote></div>