PC Based SQ DECODING - ALMOST DONE!

QuadraphonicQuad

Help Support QuadraphonicQuad:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
imploder said:
just found this:

http://www.mtsu.edu/~dsmitche/rim456/Quad/Quad_Formats.html

It means, that we decode SQ better than it ever was intended to be...
Nobody thought of a complete reversion of the channel mixdown.

My next step will be to decode QS. Only have to find fitting "Software", I mean recordings.

Maybe someone with a Quadrafile or another QS test record could post somewhere some 30-sec clips with a channel identification, test signal and/or something that has good separation between channels.
IIRC on the Quadrafile there was also PF "Money"? The intro with the cash register will be a good separation test.
 
imploder said:
just found this:

http://www.mtsu.edu/~dsmitche/rim456/Quad/Quad_Formats.html

It means, that we decode SQ better than it ever was intended to be...
Nobody thought of a complete reversion of the channel mixdown.

My next step will be to decode QS. Only have to find fitting "Software", I mean recordings.


Yes whilst there is not alot of QS lp's in comparison to SQ, I really enjoy QS on alot of my standard stereo recordings...especially Beach Boys late 1960's early 1970's.
 
QS is a bit more complocated because it has to be mixed before phase shifting as I found here:

http://www.wendycarlos.com/surround/surround4.html

I try to reflect the QS decoding principle shown there to AA1.5 to get out "no logic" waves first. Then we will see.

Personally I use Marantz' Vari-Matrix to blow up my stereo recordings as it takes the most outer parts of the stereo spectrum and transfers them to the back. This widens the room most amazingly on good (mostly modern...sorry) recordings.
 
Again me...
decoding QS is absolutely simple!
Just phase shift the summary wave by 180 degrees, then remove the 180 degrees phase parts (these are the front parts) from the summary wave and save it as the "back channels".
Take again the original summary wave and just remove the 180 degree parts (these are the rear parts) and save it as the "front channels".

Because in QS (see the link in my above post) already in the ENCODING process the left and right parts are mixed a bit together, there is absolutely no possibility to seperate the left and right channels completely later on, because they are in the same phase and not encoded in the opposite channels.
This means that there is the possibility to separate front from back completely but not left from right. So the matrix was designed and we have to live with it.
But that is the reason, why stereo recordings and especially Dolby Surround sound good on QS: The surround channel (180 degrees shifted) moves to the back.

Or does somebody have annother opinion?
 
Last edited:
CWBudde said:
Hello,

i've received an offer to create a dedicated vst plugin for SQ En/Decoding. Currently i have done a really simple pack, which does the matrix multiplication, which was mentioned by Andreas (i gues it was a scan or something like that).
You might want to grap the pack here. But at least, it doesn't contain any logic. That's the next upcoming step.
Unfortunatly the center channel extractor of audition is somehow complex and not so easy to program, but i already got some ideas about that.
If you have any suggestions, feel free to contact me.

Regards,

Christian

P.S.:Since the development is a custom development i'm not sure about a possible resale. Maybe there will be a free light version.

Hello Christian,

it was your VST plugin that I tried first on my search if somebody already has a finished solution, but the rear channels result in mono like in Dolby Surround if I use it in Nuendo, that's why I came up with the idea to decode SQ the hard way...
 
QUADradial said:
His instructions are as follows...

1. Phase change the original summary signal by -90 degrees each channel and exchange the channels (left gets right and vice versa)
2. Mix this "temp wave" with the original summary signal 1:1, out comes the
"no logic" decoded signal for the rear speakers.


I tried this modified approach...

Open the wav file in Multi-track view. Ctrl + right click on the mouse and drag the mouse into another track. This creates a 2nd copy of the original wav file.
Open that file in the edit view. Then go to effects/filters/graphic phase shifter and apply a -90 degree shift with the Channel set to "both."
Then open Effect/Amplitude/Channel Mixer and apply a "Swap Channels" to the file.
Return to the multitrack view and create a mixdown to an empty track of both the original AND the newly modified copy. Open that file in the edit view. !

If I read this correctly, this is what the quoted operation does:
Lb = Lt - j*Ft
Rb = Rt - j*Lt
(with "j"= 90 deg phase shift). I think this is slightly incorrect, and does not correctly decode the non-logic rears for SQ feeds.

The specs say (see i.e. the Wendy Carlos link given above):
Lb = j*Lt - Rt
Rb = Lt - j*Rt
This excludes the x 0.707 / -3dB gain adjustments.

So in order to extract the rear information in Audion, I use:
1) Open the File in edit-view
2) Edit-menu < Copy to New
3) Edit Left Channel only ; Effects < Filters < Graphic Phase Shifter -> "+ 90 deg"
4) Edit Right Channel only ; Effects < Filters < Graphic Phase Shifter -> "- 90 deg"
5) Edit both channels ; Select Entire Wave ; Copy
6) Switch back to the original file opened under (1)
7) Effects < Amplitude < Channel Mixer -> "Swap Channel" and select "Invert" for "New Left Channel"
8) Mix Paste " (with "overlap") ;The result of this is the decoded non-logic Rears for SQ.

I've verified this with a channel-assignment testfile I created and encoded to SQ, and it de-codes correctly, whereas the the initial process outlines switches Lb vs Rb (and does wrong and probably other things as well).

Finally: In oder to correctly gain the rears, use Effects < Amplitude < Amplify -> 3dB cut just after step (1).

Andreas
 
imploder said:
Hello Christian,

it was your VST plugin that I tried first on my search if somebody already has a finished solution, but the rear channels result in mono like in Dolby Surround if I use it in Nuendo, that's why I came up with the idea to decode SQ the hard way...

You can try the Bidule groups originally developed by David Viens: Quad

The are "just" the non-logic scheme, but work correctly for both SQ and QS, and the resultant file can the be processed by Audion's CCE.

Andreas
 
A dream come true or at least a start.

How is this algorithm related to the "logic" concept? I always believed that a PC-based decoder would work by emulating the Tate II logic in a not-real-time, trial and error fashion, with perhaps some human intervention.

Thanks Andreas.
 
kempfand said:
I've verified this with a channel-assignment testfile I created and encoded to SQ, and it de-codes correctly, whereas the the initial process outlines switches Lb vs Rb (and does wrong and probably other things as well).

I have tried both the original approach and your modified approac with a SQ test tone track i have from a CBS disc: the original approach gave me back the correct channels, yours swapped back left and back right.

I'll post the file somewhere to check out.

http://web.infinito.it/utenti/a/a.bazan/sqtest.mp3

it's a short mp3 file with only the 4 channel locations; quality isn't perfect but it does well the test purpose.
For a better perspective of the real separation with a decent sq-encoded wave (from cd) check out the OpenUpWide graph some pages before.
 
Last edited:
kempfand said:
If I read this correctly, this is what the quoted operation does:
Lb = Lt - j*Ft
Rb = Rt - j*Lt
(with "j"= 90 deg phase shift). I think this is slightly incorrect, and does not correctly decode the non-logic rears for SQ feeds.

The specs say (see i.e. the Wendy Carlos link given above):
Lb = j*Lt - Rt
Rb = Lt - j*Rt
This excludes the x 0.707 / -3dB gain adjustments.

So in order to extract the rear information in Audion, I use:
1) Open the File in edit-view
2) Edit-menu < Copy to New
3) Edit Left Channel only ; Effects < Filters < Graphic Phase Shifter -> "+ 90 deg"
4) Edit Right Channel only ; Effects < Filters < Graphic Phase Shifter -> "- 90 deg"
5) Edit both channels ; Select Entire Wave ; Copy
6) Switch back to the original file opened under (1)
7) Effects < Amplitude < Channel Mixer -> "Swap Channel" and select "Invert" for "New Left Channel"
8) Mix Paste " (with "overlap") ;The result of this is the decoded non-logic Rears for SQ.

I've verified this with a channel-assignment testfile I created and encoded to SQ, and it de-codes correctly, whereas the the initial process outlines switches Lb vs Rb (and does wrong and probably other things as well).

Finally: In oder to correctly gain the rears, use Effects < Amplitude < Amplify -> 3dB cut just after step (1).

Andreas

I will try it out, but I am still sure that -90 deg. per channel is the right way, I do not use the formulas for the matrix but the graphical view of the process and it says -90 phase shift for each channel.
Please try it with the original CBS SQ testfile like I did (Thanks Tab!).
 
@ winopener : Thanks for the sqtest. It does indeed decode "correctly" with the original approach, and switches rear channels for the modified approach I posted. I still believe that the modified process is the "correct" one (i.e. according to the specs, see below).
Could it be the sqtest is wrong ?

I do not have a DTS-transfer of the Chase Open Up Wide (otherwise I'd demux the dts and compare to the visual you posted), i.e. I would be very keen to see if the Chase clip decoded via a Tate II gives the same visual for the rears.

@ Andreas : I think the graphics you posted is not correct ... I saved it as BMP and zoom it up, and it looks to me like there were some "changes" made to it for some of the - a/o + signs.

I.e. it reads:
Lb = -0.707 * -j * Lt + 0.707 * Rt
whereas i.e. the spec from Wendy Carlos reads:
Lb = -0.707 * -j * Lt - 0.707 * Rt which is the same as ( 0.707 * (j*Lt - Rt) ) <- what I posted above
Same for the Rb.

The Wendy Carlos visual scheme
sqchart.jpg
is 100% in line with the schemes found in some of the original papers, i.e. JAES September 1971,Volume 19, Number 8: A Compatible Stereo-Quadraphonic SQ) Record System by Benjamin B. Bauer, Daniel W. Graveraux, AND Arthur J. Gust.

Andreas
 
Andreas I tried this last night, and the left/right are transposed. Two different test lp's produced the same result so it is unlikely that they are at fault. The obvious solution is to swap channels again when complete.
I am having difficulty with the centre channel extraction. Following both methods works ok up to that point, but I must be missing something in the translation. I have the rear channels, with the expected 3dB separation, and any further work using centre chanel extractor simply obliterates the audio.
:confused:
Any ideas?

Malcolm
 
Malcolm2010 said:
Andreas I tried this last night, and the left/right are transposed. Two different test lp's produced the same result so it is unlikely that they are at fault. The obvious solution is to swap channels again when complete.
I am having difficulty with the centre channel extraction. Following both methods works ok up to that point, but I must be missing something in the translation. I have the rear channels, with the expected 3dB separation, and any further work using centre chanel extractor simply obliterates the audio.
:confused:
Any ideas?
Malcolm

I have automated a bit the processing; here's how i do it:
1) place the wave file sq-encoded on c:\sq
2) open it in AA, convert (if not already) to 32-bit res. and normalize at -6dB
3) save it as front.wav
4) save it again as rear.wav
5) run the script below; after the script complete, raise front.wav by 3dB

***begin of script***
Collection: Winopener
Title: SQdecoding
Description:
Mode: 1
Undo: 0

cmd: Channel Both

cmd: Command 1100
1: C:\sq\rear.wav
2: sÿ

Selected: 0 to 156262176 SR 44100
Freq: Off
Comment: Filters\Graphic Phase Shifter
cmd: {FC0778B7-D686-4B7C-B40F-5F112504D8CC}
1: 65536
2: 2
3: 0
4: 900
5: 4096
6: 900
7: 1
8: 0
9: -180
10: 180
11: 3

Freq: Off
Comment: Amplitude\Channel Mixer
cmd: {4EB62A8D-32F7-4515-8C90-919A17A50EE5}
1: 0
2: 1
3: 1
4: 0
5: 0
6: 0
7: 0

Freq: Off
cmd: Paste Special
1: 1
2: 1
3: 3
4: 1
5: 0
6: 1
7: C:\sq\front.wav
8: 0
9: 0

Freq: Off
Comment: Filters\Center Channel Extractor
cmd: {2A0B716A-4C11-4871-8C81-36BAB58A47B6}
1: 1
2: 20480
3: 0
4: 16
5: 6
6: 2
7: -48
8: 90
9: 0
10: 22050
11: 0
12: 1124
13: 8
14: 4
15: 48
16: 0
17: 0
18: 0

Freq: Off
Comment: Filters\Center Channel Extractor
cmd: {2A0B716A-4C11-4871-8C81-36BAB58A47B6}
1: 1
2: 20480
3: 0
4: 16
5: 6
6: 2
7: -48
8: 90
9: 0
10: 22050
11: 90
12: 1124
13: 8
14: 4
15: 52
16: 0
17: 0
18: 0

Freq: Off
Comment: Filters\Center Channel Extractor
cmd: {2A0B716A-4C11-4871-8C81-36BAB58A47B6}
1: 1
2: 20480
3: 0
4: 16
5: 6
6: 2
7: -48
8: 90
9: 0
10: 22050
11: 270
12: 1124
13: 8
14: 4
15: 52
16: 0
17: 0
18: 0

cmd: Command 1100
1: C:\sq\front.wav
2: sÿ

Freq: Off
Comment: Filters\Center Channel Extractor
cmd: {2A0B716A-4C11-4871-8C81-36BAB58A47B6}
1: 1
2: 20480
3: 0
4: 16
5: 6
6: 2
7: -48
8: 90
9: 0
10: 22050
11: 270
12: 1124
13: 8
14: 4
15: 52
16: 0
17: 0
18: 0

Freq: Off
Comment: Filters\Center Channel Extractor
cmd: {2A0B716A-4C11-4871-8C81-36BAB58A47B6}
1: 1
2: 20480
3: 0
4: 16
5: 6
6: 2
7: -48
8: 90
9: 0
10: 22050
11: 90
12: 1124
13: 8
14: 4
15: 52
16: 0
17: 0
18: 0

Freq: Off
Comment: Filters\Center Channel Extractor
cmd: {2A0B716A-4C11-4871-8C81-36BAB58A47B6}
1: 1
2: 20480
3: 0
4: 16
5: 6
6: 2
7: -48
8: 90
9: 0
10: 22050
11: 180
12: 1124
13: 8
14: 4
15: 52
16: 0
17: 0
18: 0

End:

***end of script***

This does works ok here.
 
What is
cmd: Command 1100
1: C:\sq\rear.wav
2: sÿ

in particular the last statement - I cannot type this - unless I just copy/Paste directly?
 
neil wilkes said:
What is
cmd: Command 1100
1: C:\sq\rear.wav
2: sÿ

in particular the last statement - I cannot type this - unless I just copy/Paste directly?


Neil these are the commands to load the relevant files, I do not have AA here, but one home I will check it out.

Malcolm
 
In the Tate patent there's a mention of "constant power balance control" that seems to be the key to its logic.

This is, as far as I understand, a dynamic process, not one that can be fully emulated by summing and substracting signals.

Please tell me I'm wrong.
 

Attachments

  • US04063032__6.bmp
    24 KB
You aren't wrong...but for some reason this approach works better. There are no pumping artifacts at all. Of course, none of this is in real time. From what little I've decoded, I prefer this approach over using a Tate.
 
QUADradial said:
You aren't wrong...but for some reason this approach works better. There are no pumping artifacts at all. Of course, none of this is in real time. From what little I've decoded, I prefer this approach over using a Tate.

Hello Tab.

The great thing about my fantasy software decoder was that it could read ahead in the file and do the separation enhancement at the right moment, even go back n-times until getting it perfect.

This is great!!!

Hope Andreas explains the basis for his work sometime in the near future.
 
Back
Top