Pseudo stereo - haas stereo enhancer

Hello to all audio connoisseurs,
I would like to make something like a pseudo-stereo from a mono track in Shocut. Such filters are often called Haas stereo enhancer.
My own experiments show that something similar can be done with Shotcut:

  1. duplicate the mono track, i.e. copy it into an additional audio track
  2. with “Balance” move one all the way to the left, the other all the way to the right.
  3. apply the audio filter “Invert” to only one of the two tracks, of course.
    It sounds not bad, much more lively than the pure mono track. But I have big doubts if this really just improves the quality of the audio.

Do any of you have experience with such experiments?
Or does anyone know a completely different way?

Some years ago I read that you if you delay one of the tracks by a millisecond or so it sounds more stereo-like. But I’ve never done this.

1 Like

Maybe try with some reverb, it can make mono vocals feel bigger, Have only tried it in Audacity, don’t know if shotcut reverb has a Stereo Width setting.

1 Like

yes, I would like to get to grips with reverb soon. But my first attempts show a quite powerful effect - I will deal with it separately.

Yes, I have also looked at this effect, this one is also quite strong.
At the moment, using Invert is still the best - but unfortunately I can’t fine-tune this effect.

Or is it?!!
If I combine your two suggestions: delay and reverb, I can fine tune as I like and get a wonderful sound experience. I think my former favorite: “Invert” ruins the sound more than it does any good.

The beauty of this solution: I can individually adjust the sound the way I want it and am not dependent on a prefabricated setting of a special tool. And the sound can stay in Shotcut. Yay!

1 Like

The whole idea is to make some difference between the left or right channel, else it will sound very centered

1 Like

I’m glad to see Invert was dropped as an option. Many cell phones still sum stereo tracks into a mono track when put on loudspeaker mode. If stereo tracks get summed together with one of the tracks being inverted, then they sum to zero and the audio disappears. Or, it is severely distorted (destructive interference) if one track was manipulated a little differently than the other. Inversion is never good when summed to mono (with the possible exception of mid-side stereo).

Reverb can work, but it is very easy to get a muddy sound instead of a wider sound.

The Haas effect works, as you found. The trick is finding the right timings. Faster than 10 milliseconds sounds like out-of-phase distortion. Longer than 40 milliseconds allows the ear to distinguish two separate signals instead of one wide signal. So the magic zone is between 10-40ms.

1 Like

I might be interested to make a Shotcut filter based on the Haas filter. But I do not want to expose a bunch of complex settings to our users.

I wonder what would be the bare minimum settings that would be easy for people to understand. I think that maybe the only thing the user would want to change is the left/right delay.

What do people think of this suggestion:

Name: Mono to Stereo
Settings: left delay, right delay

All other settings would be the avfilter default settings.


1 Like

Why not make two versions of the filter? One that is simple and one that is advanced with the complex settings?

There is already a precedent for it in Shotcut with the filters for Text (Simple and Rich), Chroma Key (Simple and Advanced) and Key Spill (Simple and Advanced).

1 Like

Could be interesting.

For the delays, I can’t tell from the documentation if negative delay is allowed. If it is, what about a single slider for “Stereo width” with a tooltip explaining it’s a delay? The idea is that if a user wants 34ms of separation, then the left channel could be -17ms and the right channel could be +17ms. The “Stereo width” slider would push one negative and the other positive at the same rate. The hope is that the “center” would still be synced to the video it came from. Otherwise, a 34ms delay of the right track would put it an entire frame behind the video if it’s 30fps. Since I haven’t tried this against synced video, I’m not sure which would be worse… audio that’s 17ms early, or audio that’s 34ms late.

Or, maybe it’s best to give the user full control with L/R sliders, and a text note in the filter panel that tells them they can do a +/- manual split as an option.

I’m also wondering if it’s worth giving access to the middle_source parameter. A lot of wireless lapel mic receivers and wired mics will send a stereo signal to a 3.5mm camera mic input, even though both channels are the same thing. So a user might get tripped up by “Mono to Stereo” because technically the source is stereo (dual mono). Or sometimes one channel is hot and the other is a -12 dB safety track. If the user needed to choose whether they want to widen the hot or -12 dB track, then providing a Source option could save them some Channel Copy filters.

The other parameters are probably unlikely to be used, and there are existing Shotcut filters to mirror their functionality if absolutely needed. I don’t think there’s enough unique functionality in those extra parameters to warrant a second Advanced filter.

1 Like

Ah, a Haas stereo enhancer would be wonderful.

But it does get a bit complicated, especially if someone like me is recording with a mono mic that has a -20dB safety track on the right.
You have to do some things beforehand. But, if you want this pseudo stereo effect, you’ll get the hang of it.
Is the following procedure correct?
I have to do “Detach Audio” first. Then copy the audio to a second track. Then on one, move the balance to left only. On the second one, I need to enable Swap Channels and move the balance to the far right. Then move one audio track minimally.
Is there a trick to move them specifically?
It is wonderful to experience Shotcut, how alive Shotcut is.
Thanks to all of you. My switch has really benefited me.

Your steps look good. A dedicated Haas filter with selectable source would eliminate most of those steps.

For now, there is an actual filter called Delay that can delay the audio without moving the track and breaking sync. The filter only has two decimal points of precision instead of three, but it should still provide more resolution than offsetting the track.

With Delay I already get very interesting results. However, the manual preparatory work is still necessary:
Make two audio tracks, (in my case, because of the safety track of -20dB I have to do: Swap Channel on the second track), then move one channel with the balance to the far left, the other to the right only.
Now for the Delay: A good setting is Delay: 0.01s and Feedback: very low.
If I put the filter on the left, then it already sounds very good, but then the right channel becomes more distinct, i.e. the sound is clearly perceived from the right. And vice versa.
This can be well balanced, again balance, but now on the “output”. Then it already sounds much better than I had hoped. The idea with delay now works very well.

No effect: If I set this filter to “Output”, or if I put Delay on both channels.

What luck that the Haas filter is not yet available. So I have to tinker myself and learn a lot in the process.

0 is the minimum for delay:

I kind of agree with that comment. Users need to know the nature of their audio sources and it is OK if they need to stack filters to get the desired effect. I think the fundamental purpose of this filter would be to convert a mono (or two mono) channels and make them sound more spacial. Any other conversion should be done with other filters.

With the delay it sounds pretty good. Then I tried how it sounds with a mono playback (VLC Player on mono): The sound is not gone - but it sounds much worse, duller, and I do not know quite how, in any case, I do not like it at all, so that I now leave the fingers of it for now.
Whether a real Haas Stereo Enhancer does it better?

If “mono” means selecting a single channel, then mono will sound like the original source.

If “mono” means summing the left and right channels together, then there will be destructive interference because the peaks and valleys are so closely correlated, given that both tracks are the same thing with only a little delay separating them.

By definition, the Haas effect relies on a delay on one side to make the sound stage seem wider. There is no delay on just one side when the signal is mono. It can’t be done. Haas requires a stereo signal to work.

If there is any chance the final audio will be summed to mono for playback, then Haas is not a good choice for voice effects.


For the next release I have added a Stereo Enhancer filter based on the FFMpeg haas filter:



The Stereo Enhancer works wunderful in the BETA version 22.03
Is it normal that the left channel is always louder than the right channel?

I notice that sometimes one channel is louder than another. I believe this relates to the phase difference between the original sound and the delayed sound that is mixed in. In my testing, you can set the delay value in such a way that it causes “constructive interference” and makes the channel louder. You can also do the opposite and cause “destructive interference”.

If you are interested in this, an interesting test is to open the tone generator and add this filter. Display the waveform scope, and adjust the delay. You will see the amount of delay can cause the sine wave to be much louder or much softer than the original signal. As a game, see if you can find a delay amount that matches the period of the sine wave and make the channel completely silent!