Well, I don't have the matlab, nor could find a corresponding plugin for avisynth yet.
Which is why I want to share my idea looking for positive contributions from anybody talented and equipped.
Below is my draft plan to figure out the closest DPL II model for s/w emulations, possibly in a very OPEN, independant, objective, fair and fully reflected but economic way.
Now some more tests are included such as 'the verification of the Hilbert() algo' as well as many other essential considerations to go through the proper approach & procedure.
If the minimum test environment is not setup soon, I am going to add the results in my original thread when available.
1. prepare proper tools & organize the test.
. s/w tools : matlab or avisynth/sox with proper plugin(esp. for 90 deg phase shift)
. resource orgarnizer : an independant user with proper DPL II understanding, s/w tools, h/w equips, resources.
. refined model : the orgarnizer refines the test procedures & models
. prepare, test, report and share the results
2. prepare a 6ch mixed original source for full channel complexity and easy identification
The DPL II encoding with avisynth is listed in the below thread.(for models m12, m22)
http://forum.doom9.org/showpost.php?...0&postcount=82
<avs 6ch clips mixing example>
spk=DirectShowSource("SSWAV06.m4a")
muz=DirectShowSource("6chmusic.m4a")
...
mxx=MixAudio(spk, muz, 0.4, 1)
..
dpl2Enc(mxx, 0.7071, 0.7071, 0.866, -0.5, -0.5, 0.866)
...
3. identify the weights of orginal matrices : including the coefficients on rears to be shared on each channel, with no phase shifts(passive)
Code:
<mxA> : widely used for s/w encoding
DPL II Lf Rf C Ls Rs
Lt 1.000 0.000 0.7071 0.866 0.5
Rt 0.000 1.000 0.7071 0.5 0.866
<mxB> : Wikipedia one, possibly from Dolby
DPL II Lf Rf C Ls Rs
Lt 1.000 0.000 0.707 0.8165 0.5774
Rt 0.000 1.000 0.707 0.5774 0.8165
4. identify target DPL II models(formula) to compare
<m11>
Lt = mix(Lf.0°, C.0°, Ls1.-90°, Rs2.-90°) == mix(mix(Lf, C),
mix(Ls1, Rs2).-90°)
Rt = mix(Rf.0°, C.0°, Ls2.+90°, Rs1.+90°) == mix(mix(Lf, C),
mix(Ls2, Rs1).+90°)
<m12> rears(m11).-90°
Lt = mix(Lf.0°, C.0°, Ls1.-180°, Rs2.-180°) == mix(mix(Lf, C),-
mix(Ls1, Rs2))
Rt = mix(Rf.0°., C.0°., Ls2.0°, Rs1.0°} ==
mix(Rf, C, Ls2, Rs1)
<m13> m11.-90° == m11?
Lt = mix(Lf.-90°, C.-90°, Ls1.-180°, Rs2.-180°) == mix(mix(Lf, C).-90°,-mix(Ls1, Rs2))
Rt = mix(Rf.-90°, C.-90°, Ls2.0°, Rs1.0°) == mix(mix(Rf, C).-90°, mix(Ls2, Rs1))
...
<m21>
Lt = mix(Lf.0°, C.0°, Ls1.+90°, Rs2.-90°) == mix(mix(Lf, C), Ls1.+90°, Rs2.-90°)
Rt = mix(Rf.0°, C.0°, Ls2.-90°, Rs1.+90°) == mix(mix(Rf, C), Ls2.-90°, Rs1.+90°)
<m22> rears(m21).-90°
Lt = mix(Lf.0°, C.0°, Ls1.0°, Rs2.-180°) == mix(
mix(Lf, C, Ls1),-Rs2)
Rt = mix(Rf.0°, C.0°, Ls2.-180°, Rs1.0°) == mix(
mix(Rf, C, Rs1),-Ls2)
...
When -180° = -, +90° = Hilbert(), -90° = -180°.+90° = -.+90°
5. perform the verification of Hilbert() algo if any useful, with m12 * mxA
<m12>
Lt = mix(Lf.0°, C.0°, Ls1.-180°, Rs2.-180°) == mix(mix(Lf, C), -mix(Ls1, Rs2)})
Rt = mix(Rf.0°, C.0°, Ls2.0°, Rs1.0°) == mix(Rf, C, Ls2, Rs1)
<-180° = -(+90°.+90°) == -Hilbert().Hilbert()>
Lt = mix(Lf.0°, C.0°, Ls1.-90°.-90°, Rs2.-90°.-90° == mix(mix(Lf, C), -mix(Ls1, Rs2).+90°.+90°)
Rt = mix(Rf.0°, C.0°, Ls2.0°, Rs1.0°)
6. verify if m13 == m11 with mxA
.discard m13 if identical or refine the 'phase shift' concept
7. verify if different phase shift degrees makes any difference with (m11, m12) * mxA
.discard the worse model
8. prepare & perform the seperation fidelity comparison with remaining candidates combination(matrices, models)
m11 * mxA : <reference1>
m11 * mxB :
m12 * mxA : <reference2>
m13 * mxA :
m21 * mxA : <reference3>
m21 * mxB :
m22 * mxA : <reference4>
9. conclusions
. the test orgarnizer share & report the test results
. users evaluate & verify the results(polls and/or posts)
Thanks,