home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Development
General Development (no feature request here!)
MediaPortal Audio renderer - better video playback quality
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="arion_p" data-source="post: 642418" data-attributes="member: 45945"><p>Thinking again my previous reply regarding SoundTouch, I realize some of my statements were wrong or at least inaccurate:</p><p></p><p>In fact the auto-correlation is computed on the average of the two channels, so in the multichannel case we would need compute it on the average of all the channels. This means that the amount of data the the auto-correlation works on does not change and as a result it will not be any slower than it already is. It is not however clear to me if the subsequent segmentation and stitching of the sample data is done separately for each channel or as channel pair. If the former is true then expanding to multiple channels should be relatively easy and would not require additional SSEx code. Otherwise it would probably need to re-implement existing SSEx code once for each channel count above 2 (i.e for 2.1/3, 4, 4.1/5, 5.1/6, 7 and 7.1/8).</p><p></p><p>So, adapting SoundTouch for multichannel may not be out of the question after all. It will certainly require more work than the current implementation but it might be doable.</p><p></p><p>Also the above means that instead of using the dominant channels for coherency we should use a carefully selected mix of all channels. If <em>Ci</em> is channel i (1 to N), we want SoundTouch to compute the auto-correlation on </p><p></p><p>Q(t) = Sum(Ci(t), i=1..N)/N</p><p></p><p>SoundTouch uses Q(t) = (L(t)+R(t))/2</p><p></p><p>So in order to time-stretch channel j we want:</p><p></p><p>L(t) = Cj(t)</p><p></p><p>and </p><p></p><p>R(t) = 2*Sum(Ci(t), i=1..N)/N - Cj(t)</p><p></p><p>The latter could be a problem when SoundTouch is working on integer samples. Floating point samples OTOH are no problem, so in this case we might need to switch to floating point samples. After all there is no point processing 24bit audio using 16 bit integer intermediate results.</p></blockquote><p></p>
[QUOTE="arion_p, post: 642418, member: 45945"] Thinking again my previous reply regarding SoundTouch, I realize some of my statements were wrong or at least inaccurate: In fact the auto-correlation is computed on the average of the two channels, so in the multichannel case we would need compute it on the average of all the channels. This means that the amount of data the the auto-correlation works on does not change and as a result it will not be any slower than it already is. It is not however clear to me if the subsequent segmentation and stitching of the sample data is done separately for each channel or as channel pair. If the former is true then expanding to multiple channels should be relatively easy and would not require additional SSEx code. Otherwise it would probably need to re-implement existing SSEx code once for each channel count above 2 (i.e for 2.1/3, 4, 4.1/5, 5.1/6, 7 and 7.1/8). So, adapting SoundTouch for multichannel may not be out of the question after all. It will certainly require more work than the current implementation but it might be doable. Also the above means that instead of using the dominant channels for coherency we should use a carefully selected mix of all channels. If [I]Ci[/I] is channel i (1 to N), we want SoundTouch to compute the auto-correlation on Q(t) = Sum(Ci(t), i=1..N)/N SoundTouch uses Q(t) = (L(t)+R(t))/2 So in order to time-stretch channel j we want: L(t) = Cj(t) and R(t) = 2*Sum(Ci(t), i=1..N)/N - Cj(t) The latter could be a problem when SoundTouch is working on integer samples. Floating point samples OTOH are no problem, so in this case we might need to switch to floating point samples. After all there is no point processing 24bit audio using 16 bit integer intermediate results. [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
General Development (no feature request here!)
MediaPortal Audio renderer - better video playback quality
Contact us
RSS
Top
Bottom