To crossfeed or not to crossfeed? That is the question...

Sep 21, 2017 at 5:52 PM Post #91 of 2,192
(reply to 71 dB's lengthy post...)

Well. Wow.

I think you've just pegged the superciliometer with that one.

I might have misunderstood where you are coming from. It was difficult to see what it is you criticize. Sorry if it caused bad blood between us. I am not here to make enemies. I was very surprised about your opinions.
 
Sep 21, 2017 at 5:56 PM Post #92 of 2,192
Dynamic would be the specific amount of crossfeed is altered by some characteristic of the input signal.

Are you saying channel separation and frequency are not characteristics of the input signal? Those are the variables that alter the amount of crossover and delay in the Meier system.

I already described how I did it with a variable gain element.

I don't see that anywhere. I see a brief description of what you did... "I played with dynamic change by adding variable gain control in the L-R because I found that widely separated material became over-compensated." And an account of others' failed attempts. But no explanation of how, and no description of a variable that your gain control responded to.

Dynamic would mean the resistors and capacitors were dynamic and a function of channel separation. If you input Left only, you output left and right so that left > right. That tells you the cross feed level

level = 20*log10 (R/L). That level is constant.

Yes, a variable in the signal, a "function of channel separation". According to your own definition, the Meier design is dynamic.
 
Sep 21, 2017 at 6:40 PM Post #93 of 2,192
Yes, a variable in the signal, a "function of channel separation". According to your own definition, the Meier design is dynamic.
Dynamic in that sense, but not in the sense that history affects what happens now. Dynamic would mean cross feed is stronger now because channels separation has been large or vice versa.
 
Sep 21, 2017 at 7:27 PM Post #94 of 2,192
Are you saying channel separation and frequency are not characteristics of the input signal?
No, that would just be silly.
Those are the variables that alter the amount of crossover and delay in the Meier system.
I don't see the variation in delay, and I only see a fixed crossfeed amount that varies in a linear relationship with amplitude and phase and therefore the pan position of a sound. My idea was to vary crossfeed based on more than just it's position, (amplitdued and phase), in a nonlinear process. Meier isn't doing that I don't think.

I don't see that anywhere. I see a brief description of what you did... "I played with dynamic change by adding variable gain control in the L-R because I found that widely separated material became over-compensated." And an account of others' failed attempts. But no explanation of how, and no description of a variable that your gain control responded to.
Yes, that's what I did. I'm not going to share the schematic, really no point at this stage.
Yes, a variable in the signal, a "function of channel separation". According to your own definition, the Meier design is dynamic.
Well, to me since the amount of crossfeed is derived from a matrix, tracks the signal level exactly, and depends only on the relative amplitude and phase of a sound between channels, it's not dynamic, it's fixed. In other words, the crossfeed signal has the same relationship to the primary signal regardless of level.
 
Last edited:
Sep 21, 2017 at 7:42 PM Post #95 of 2,192
Sep 21, 2017 at 8:45 PM Post #96 of 2,192
Dynamic in that sense, but not in the sense that history affects what happens now. Dynamic would mean cross feed is stronger now because channels separation has been large or vice versa.

Dynamic means constant change or adaptation to the signal. I don't know why that would entail history. History invokes stored data, and adaptation over time. Artificial intelligence uses historical data to adapt. But I can't think of anything in audio that uses historic algorithms except for Pandora's preference learning algorithm or something like it. Can't begin to imagine how a crossover would use historic data though.


I don't see the variation in delay, and I only see a fixed crossfeed amount that varies in a linear relationship with amplitude and phase and therefore the pan position of a sound. My idea was to vary crossfeed based on more than just it's position, (amplitdued and phase), in a nonlinear process. Meier isn't doing that I don't think.

Yes, to quote Meier again: "The more off-center the instrument is placed, the stronger the crossfeed and the longer its delay."

Well, to me since the amount of crossfeed is derived from a matrix, tracks the signal level exactly, and depends only on the relative amplitude and phase of a sound between channels, it's not dynamic, it's fixed.

I would consider a fixed crossover one that cannot fluctuate its values (amplitude, frequency, timing) depending on the signal, and one that can dynamic. I've had rotten experiences with truly fixed crossovers. Meier is not a fixed crossover. Perhaps it's not adapting to the signal variables you want it to, but it is adapting nonetheless.
 
Sep 22, 2017 at 5:25 AM Post #97 of 2,192
Dynamic means constant change or adaptation to the signal. I don't know why that would entail history. History invokes stored data, and adaptation over time. Artificial intelligence uses historical data to adapt. But I can't think of anything in audio that uses historic algorithms except for Pandora's preference learning algorithm or something like it. Can't begin to imagine how a crossover would use historic data though.
You can't chance the behavior very fast with the signal, because that would lead to noise-like artifacts. You need to slow down the change and that requires integrating/averaging the signal with a reasonable time constant, perhaps 0.1 s or so. The channel difference signal (L-R) behaves quite randomly in sort term. At a given moment it can be almost anything. I have tried dynamic cross-feeding in Audacity and found it tricky so I dropped the idea. A dynamic cross-feeder is tricky and I don't know how pinnahertz managed to build one by himself.
 
Sep 22, 2017 at 9:50 AM Post #98 of 2,192
I would consider a fixed crossover one that cannot fluctuate its values (amplitude, frequency, timing) depending on the signal, and one that can dynamic. I've had rotten experiences with truly fixed crossovers. Meier is not a fixed crossover. Perhaps it's not adapting to the signal variables you want it to, but it is adapting nonetheless.
Two things to make clear. First, the Meier crossfeed is not adaptive, crossfeed remains the same ratio to the original affected by a fixed relationship derived from a sound's relative channel level and phase. THte amount of crossfeed signal remains a fixed ratio to the original regardless of level. That's not dynamic, that's fixed.

Second, I said my experiment with dynamic crossfeed didn't work well. It failed. That's why it's not in the Meier algorithm. At this point I'm not advocating dynamic crossfeed, I'm just explaining the difference between it and a fixed crossfeed. The Meier algorithm should work better than the Linkwitz because delay is involved, and crossfeed depends on relative channel level.
 
Sep 22, 2017 at 9:54 AM Post #99 of 2,192
You can't chance the behavior very fast with the signal, because that would lead to noise-like artifacts. You need to slow down the change and that requires integrating/averaging the signal with a reasonable time constant, perhaps 0.1 s or so.
Um...no...that's not true. But I don't think another exercise in countering superciliousness is worth my time.
The channel difference signal (L-R) behaves quite randomly in sort term. At a given moment it can be almost anything.
Um..again...no, if the signal you're trying to crossfeed is hard-panned L, the L-R signal with be mostly L and follow the envelope of the dominant signal.
I have tried dynamic cross-feeding in Audacity and found it tricky so I dropped the idea. A dynamic cross-feeder is tricky and I don't know how pinnahertz managed to build one by himself.
I built it with analog processing many, many years ago. Analog hardware level detectors, gain control elements, etc. I have background in audio processing. It didn't work well for many reasons, but noise modulation wasn't one of them.

If I were to do it today in DSP it would involve a complex program dependant time constant and more than one band of dynamic gain control. Except I wouldn't because the whole idea is wrong!
 
Last edited:
Sep 22, 2017 at 11:13 AM Post #100 of 2,192
Count me in the "why would you want dynamic crossfeed" category. I love crossfeed, though; lots of bang for the buck. Best results I got were altering the parameters to match up with the speaker positioning implied by the headphone's frequency response, which meant my HD800s liked a bit more aggressive crossfeed than my PM-3s.
 
Sep 22, 2017 at 1:07 PM Post #101 of 2,192
Um...no...that's not true. But I don't think another exercise in countering superciliousness is worth my time.
Um..again...no, if the signal you're trying to crossfeed is hard-panned L, the L-R signal with be mostly L and follow the envelope of the dominant signal.

Of course L-R follows closely L if L is dominant. I have been thinking this: LR2MS transform:

a = 1/SQRT(2) = 0.707…

M = a*(L+R) = "Mono part"
S = a*(L-R) = "Side part"

Now, S can be compressed and filtered. Let's call the result Sc. We can calculate new processed stereo signal using LR2MS again:

L' = a*(M+Sc)
R' = a*(M-Sc)

This signal has more constant stereophonic width than the original, hopefully just under the amount that would cause spatial distortion.

I built it with analog processing many, many years ago. Analog hardware level detectors, gain control elements, etc. I have background in audio processing. It didn't work well for many reasons, but noise modulation wasn't one of them.

That is very cool you tried it and I can understand why it didn't work.

If I were to do it today in DSP it would involve a complex program dependant time constant and more than one band of dynamic gain control. Except I wouldn't because the whole idea is wrong!

I also feel that dynamic cross-feed is perhaps going too far. Constant cross-feed seems to do the magic in removing spatial distortion and being constant doesn't mess up things like dynamic solution could.
 
Sep 22, 2017 at 1:30 PM Post #102 of 2,192
The Meier algorithm should work better than the Linkwitz because delay is involved, and crossfeed depends on relative channel level.
Meier and Linkwitz have a different approach to cross-feed. Linkwitz tries to simulate stereo loudspeaker listening idea being that since most recordings are mixed for loudspeakers, simulating that should work. Meier on the other hand re-distributes sounds from left to right depending on how they are panned in the recording, as if we had a lot of loudspeakers next to each other and they played different parts (instruments) of the recording.

I find Meier more vivid/aggressive/wide than Linkwitz which is more relaxed/calm/narrow/forward, so they have own strengths. Meier is a "H"-topology cross-feeder which makes it mono-neutral (it does absolutely nothing to mono signal), but adding multiple cross-feed levels is difficult. Linkwitz is a "X"-topology cross-feeder so it's not mono-neutral, but multiple cross-feed levels is easy. Linkwitz is also easy to incorporate into a headphone adapter, because it's quite flexible in impedance-sense. Meier isn't.
 
Sep 22, 2017 at 1:46 PM Post #103 of 2,192
Of course L-R follows closely L if L is dominant. I have been thinking this: LR2MS transform:

a = 1/SQRT(2) = 0.707…

M = a*(L+R) = "Mono part"
S = a*(L-R) = "Side part"

Now, S can be compressed and filtered. Let's call the result Sc. We can calculate new processed stereo signal using LR2MS again:

L' = a*(M+Sc)
R' = a*(M-Sc)

This signal has more constant stereophonic width than the original, hopefully just under the amount that would cause spatial distortion.



That is very cool you tried it and I can understand why it didn't work.



I also feel that dynamic cross-feed is perhaps going too far. Constant cross-feed seems to do the magic in removing spatial distortion and being constant doesn't mess up things like dynamic solution could.

And what about if real signals are more like this:
L(t)=|L(t)|ejwL(t)
R(t)=|R(t)|ejwR(t)
In other words, what about phase?

To be clear I have no knowledge in cross-feed. Maybe by simplification, maybe for other reason you are not taking into account phase.
I am just curious
 
Sep 22, 2017 at 2:28 PM Post #104 of 2,192
Two things to make clear. First, the Meier crossfeed is not adaptive, crossfeed remains the same ratio to the original affected by a fixed relationship derived from a sound's relative channel level and phase. THte amount of crossfeed signal remains a fixed ratio to the original regardless of level. That's not dynamic, that's fixed.

The Meier algorithm itself is fixed, but the amount of crossfeed (and delay) is dynamic to the signal. If you wanted the algorithm itself to vary, what variable would it change according to?

Second, I said my experiment with dynamic crossfeed didn't work well. It failed. That's why it's not in the Meier algorithm. At this point I'm not advocating dynamic crossfeed, I'm just explaining the difference between it and a fixed crossfeed. The Meier algorithm should work better than the Linkwitz because delay is involved, and crossfeed depends on relative channel level.

Well, I didn’t push for schematics. You could easily mention what input variable your gain responded to, but it’s ultimately your design, and I’m certainly not trying to force you to reveal anything you don’t want to. As long as you’re not referring to it here as a firm example of dynamic crossover, its success or failure is neither here nor there.

But successful implementation aside, on a completely theoretical level, what would a truly dynamic crossfeed function like, and how would it improve crossfeed performance?

It failed. That's why it's not in the Meier algorithm.

Do you design for Meier?
 
Sep 22, 2017 at 2:32 PM Post #105 of 2,192
You can't chance the behavior very fast with the signal, because that would lead to noise-like artifacts. You need to slow down the change and that requires integrating/averaging the signal with a reasonable time constant, perhaps 0.1 s or so. The channel difference signal (L-R) behaves quite randomly in sort term. At a given moment it can be almost anything. I have tried dynamic cross-feeding in Audacity and found it tricky so I dropped the idea. A dynamic cross-feeder is tricky and I don't know how pinnahertz managed to build one by himself.

Ok, understandable, but averaging does not differentiate fixed or dynamic. I'm still trying to figure out what you guys have in mind when you say "dynamic crossfeed" or more specifically what variables you want crossfeed to respond to.
 

Users who are viewing this thread

Back
Top