# Please allow for mono recording of Microphones - I'll explain why...



## DrWolfsherz (May 10, 2018)

Hello dear people of the OBS Project,

i would like to request the possibility to record mono for Microphones.
When using an XLR Mic with a preamp and audio interface it is standard to have mono input on these mics. You can do something about it (usiny y-cable and other silly things) but it is not common to do in audio processing.
When recording with these kind of setup, the volume of the recording gets halved, because OBS mixes the mono channel up to stereo. I know you can then convert it back to mono, but the volume is 50% nonetheless, as it is not really a mono recording with that option. I also know you can just increase the volume of the Microphone in OBS to 200% to counter this issue, but this causes distortions, as it simply adds gain to both channels...

In other software you can select to record in mono directly and I wish OBS had the same ability. Some people have decent equipment and the mic goes through a channel strip, which does all the required steps (compressor, de-esser, noise gate, expander ...) and then OBS mixes that perfect sound to stereo, halving the volume which makes it a requirement to put gain on it. This is crippling the perfect sound to something which is just not good anymore. Please, please consider my request. Thank you!



English is not my native language, so please ask when I did not explain well enough. I will do my best to clarify. Thank you.


----------



## DrWolfsherz (May 10, 2018)

I just realised that I should have put this under Ideas / Suggestions. Maybe some friendly moderator can move this thread accordingly.


----------



## Fenrir (May 11, 2018)

Have you checked Edit -> Advanced Audio Properties? There is a "Downmix to mono" checkbox already present.


----------



## DrWolfsherz (May 11, 2018)

As I have written, yes. That checkbox is known. But it does not change the recording. Audio is ALWAYS recorded Stereo with OBS (resulting in halved audio for mono mics). That checkbox just mixes the stereo tracks down afterwards, halved volume persists.


----------



## Fenrir (May 11, 2018)

Thanks for the report. I'll check into this.


----------



## DrWolfsherz (May 12, 2018)

Thank you Fenrir.


----------



## pkv (May 20, 2018)

DrWolfsherz said:


> As I have written, yes. That checkbox is known. But it does not change the recording. Audio is ALWAYS recorded Stereo with OBS (resulting in halved audio for mono mics). That checkbox just mixes the stereo tracks down afterwards, halved volume persists.


it's because you've setup audio output to stereo in Settings > audio. This is to be expected.
Select mono and your mikes will be recorded as mono without upmixing.

If on the other hand you want to stream stereo but record mono you're in a bind.
A way out would be to pan your mono to both left and right with the help of rematrixer plugin (search in the plugins section of this forum) which will allow you to route your signal to both left and right and reset the volume to 100%.


----------



## DrWolfsherz (May 20, 2018)

That is a nice plugin, indeed. But it does not help the issue, that the recording is still in Stereo.
What I and others with professional mics severely need is the option to record the game in stereo, and the mic in mono. Everything you do with filters (also the rematrix filter) is applied to the recording AFTERWARDS and at that point the damage is already done, because recording a mono mic in stero results in volume reduction. Putting gain on it AFTERWARDS or mixing it back to stereo damages the audio quality.

Setting OBS to record mono for all sources (Settings > Audio) is problematic for games where you need Stereo for the localisation of enemies for example. You can not use rematrix to mix the audio from game back to stereo as there is only one channel recorded after all.

To conclude: I suggest adding the possibility to set recording mode for several sources. Not mixing them afterwards but how to record them in first place. The OBS wide setting in Settings > Audio is a clue on how this can be achieved. Just add a second setting there for example.


----------



## pkv (May 20, 2018)

not a simple task to develop in the current audio pipeline; i doubt this will be ever implemented. IMO the best thing to do in your case is to capture your mike in a daw and route to obs; look for tutorials on audio routing between apps using virtual audio drivers like virtual audio cable, voicemeeter, synchronous audio router or rearoute included in reaper (though the latter requires asio support).


----------



## axd (Jul 10, 2018)

Reading phrases like "_i doubt this will be ever implemented_" makes me crimp because the request is absolutely valid, but being a developer myself I can perfectly understand. To me this is an indication of a flaw in the software architecture that has become too heavy to correct; technical debt, I'd say. (another example is my request: output volume visualization · OBS Studio Ideas and Suggestions .)

Is there an "advanced wishlist" ? There are several feature requests that appear to be very good, but difficult (or impossible) to implement (because of decisions taken in the past, for example, or due to lack of understanding of the issue).

Such an issue could until then be categorized as a "known issue" or "limitation".


----------



## Fenrir (Jul 10, 2018)

Just to jump in here, I'm talking with the rest of the team and we're looking in to fixing the downmix to mono checkbox. There is no need for any further complication of the audio settings, the checkbox already exists and this functionality is supposed to already be present, but there is a bug currently. The correct resolution here is to fix the bug, not invent complicated alternate workarounds.


----------



## pkv (Jul 18, 2018)

axd said:


> Reading phrases like "_i doubt this will be ever implemented_" makes me crimp because the request is absolutely valid, but being a developer myself I can perfectly understand. To me this is an indication of a flaw in the software architecture that has become too heavy to correct; technical debt, I'd say. (another example is my request: output volume visualization · OBS Studio Ideas and Suggestions .)
> 
> Is there an "advanced wishlist" ? There are several feature requests that appear to be very good, but difficult (or impossible) to implement (because of decisions taken in the past, for example, or due to lack of understanding of the issue).
> 
> Such an issue could until then be categorized as a "known issue" or "limitation".



the request is indeed valid; I investigated allowing different audio channel setups for Recording and Streaming outputs when I was working on adding surround sound support to obs (mono for recording, stereo for streaming for instance). At that time I talked about that to Jim who told me it would be very difficult to implement. It's do-able IMO but I think the API changes would be too much for Jim for a very niche case. So the balance between maintaining more complex code and user benefits is not good. imo.

Edit: in my setup which may or may not apply to you, I capture xlr mikes in an asio sound device. They are mono of course. In order to achieve what you want with right levels, I would use my asio plugin (check my repo on github, pkviet) . With obs audio settings at stereo, two channels are requested by the asio plugin: I would pick twice the mono mike.


----------



## DrWolfsherz (Sep 3, 2018)

@pkv That is wonderful! I am now using your plugin and record the audio from my mic your way. Instantly the distortions (which were caused by the gain applied) are gone and my Mic sounds like the 400€ it cost me to buy. Too bad this can not be done by the OBS Team.
Also, do you have any suggestion how to work with push to mute for the asio-solution?

@Fenrir Not sure which bug you were referring to regarding my issue. The problem is not that the feature of downmixing does not work, it is just that this way of handling mono recording is just not good. You might do something to detect which track (of the stereo recording) contains no audio and just delete that specific one. The issue with downmixing would be solved because eliminating the quiet track does not lower the audio volume.


----------



## pkv (Sep 4, 2018)

push to mute works with asio ... did you setup the hotkey and enable push to mute in Settings > audio > asio source ?


----------



## DrWolfsherz (Sep 4, 2018)

Actually no, i did not. Thanks for pointing this out. I did not notice the new options :)


----------



## Suslik V (Sep 4, 2018)

Just wondering, how you get mono in your modern PC (in the first place)?


----------



## DrWolfsherz (Sep 4, 2018)

Actually all Microphones record mono only. USB Mics (or mics directly connected to a soundcard) are usually just handled in a way that stereo is simulated by putting the mono recording in both tracks of a stereo signal.
This is not the case with mics connected via XLR and an Audio Interface. Every modern software usually has a method to record a mono source these days. Even Audacity does have this "feature". So this is not an issue usually. Unfortunately OBS doesn't do it "right" by mixing the mono source down to stereo, effectively halving its volume (see first thread for further explanation why this is bad). The correct way to handle this would be to eliminate the track that does not have audio in it or just allow recording of mono directly.


----------



## Suslik V (Sep 4, 2018)

I cannot imagine that your interface cannot do stereo while it has 2 inputs... Is this USB device? Is there any options in Windows _Recording devices>Properties>Advanced_ tab?


----------



## DrWolfsherz (Sep 4, 2018)

The interface is connected via USB to the computer. I am using the line input from port 1, coming from the dbx 286s mic preamp, which is connected to the microphone via XLR. It just is a fact, that the way to do it right is to enable recording in mono as does every DAW and other modern software.


----------



## Suslik V (Sep 4, 2018)

And what model of the device that has this USB that is connected to the PC?


----------



## DrWolfsherz (Sep 4, 2018)

The audio interface is a Focusrite Scarlett 2i4.


----------



## Suslik V (Sep 4, 2018)

And what is set for the _Default Format_ of the device (in Windows)?


----------



## DrWolfsherz (Sep 4, 2018)

*sigh* This does not lead anywhere. Don't you think I have already done everything to resolve the issue in every possible way? I know exactly what your point is and where you want to go. The problem is: Setting the interface to stereo results in halved audio volume too, as this is also the way windows handles this. That is EXACTLY why DAW's and other software allow for mono recording.


----------



## Suslik V (Sep 4, 2018)

I just want to say that the rematrix plugin (https://obsproject.com/forum/resources/rematrix-filter-plugin.620/) should work fine for you, as long as you have one almost zero channel and second as signal. So, strange that this solution not works for you. The mentioned device setting from the Windows - is the task for the device driver (usually, it just outputs what it has on inputs in case of stereo mode), of course, the driver updates may change this behavior.


----------



## DrWolfsherz (Sep 4, 2018)

Rematrix does not help. See https://obsproject.com/forum/thread...microphones-ill-explain-why.84834/post-353390

I am using the obs-asio plugin for now. It is doing the job quite nicely. I still think that this needs to be acomplished from within OBS still.


----------



## Andersama (Sep 5, 2018)

The rematrix plugin came out of the fact I could pick out asio channels and I thought it was silly that it wasn't a plugin, it's a bit redundant w/ asio b/c it has that as a core feature in order to work. If you need help w/ something audio related feel free to ping me on discord.

I'm assuming you're in advanced mode and outputting your mic to a separate track, not sure I understand the issue w/ the stereo vs mono and audio being "halved". When editing most software allows you to extract a channel as is. How many inputs do you have in OBS?

*As for the downmix to mono* turning to stereo in recording output, the current audio pipeline resamples sources to the settings like you guys mentioned in settings, then sources are mixed together to their respective tracks and output. Meaning if you're in stereo mode all tracks output are stereo. I'm not sure if certain file formats have that as a limitation, that would seem strange to me. With all the work pkv and I've already sunk into the audio system I'm sure individual tracks could have their own settings as opposed to a global one. I'll keep the idea in my back pocket.


----------



## Suslik V (Sep 5, 2018)

@Andersama He says that the OBS Studio mixer shows only one channel audio (mono) via single line of the audio meter, but it already has lower amplitude then it "actually should", as I understand. Then is not a question to the OBS Studio at all.

@DrWolfsherz Only known amplitude change when OBS Studio converts formats is:
https://sound.stackexchange.com/que...nversion-from-mono-to-stereo-lower-the-volume , just -3dB as default FFmpeg panning (const power law) applied. Easily detected with OBS Studio's audio meter, mono test file and stereo output. OBS Studio is simple tool it uses defaults of FFmpeg processing, there is no sample delay filter (sometimes needed for stereo), and many other advanced things still missing. Some VST plugins works, but this is all you have right now. If your audio source has significant drop in loudness - then look for the solution in some other place...

...also, you may wanna try WDM driver mode of your device to try to use the stereo with 1 muted channel and rematrix filter.


----------



## DrWolfsherz (Sep 5, 2018)

@Suslik V You are right. Mic Source is represented as single line in OBS Studio's audio meter and has lower amplitude then e.g in Audacity where everything is where it should be. I counter this by adding gain (+6dB). Then it is at the same amplitude as in Audacity.

This points to OBS as the cause of this issue. Does it not?


----------



## Suslik V (Sep 5, 2018)

Is not an issue at all. Also, the value of the gain says that either you have a problem or you just discovered new bug in OBS Studio. For example, try to set OBS Studio to Mono output and add your device again - the level meter set to True Peak (I don't know what signal you will try to test in OBS Studio, so just in case) - now look at meter again, is there any level drop? If you see overload - move the fader (slider in OBS) a bit (-0.3dB or so), if overload is gone - all seems to be OK, your source is just maxed out.


----------



## DrWolfsherz (Sep 5, 2018)

Have a look at this. It shows the peaks of ASIO-Source, Standard OBS Mic Input and Audacity. As you can see the one from OBS is clearly lower:

https://youtu.be/hYiX1j1vZz0


----------



## Suslik V (Sep 5, 2018)

That only means that some conditions are different. I can only guess on this. For example, try to specify WASAPI instead of MME in Audacity (Preferences, Host).
https://obsproject.com/forum/threads/please-post-a-log-with-your-issue-heres-how.23074/


----------



## DrWolfsherz (Sep 5, 2018)

Switched to WASAPI in Audacity. Same level as before.
Logfile:
https://obsproject.com/logs/91ou0m_KKh2dKp10

I have removed the Mic from my OBS configuration and continue to use the asio-plugin.


----------



## Suslik V (Sep 6, 2018)

And if the Studio set to Mono output? Also, please, make new Scene Collection and New Profile for tests in OBS Studio. Of course, same base is needed to perform the full tests: sample rates of the devices, number of channels, driver mode, same instruments etc.

Just for info: log says that _asio-plugin_ is not perfect too.

As for your suggestion/feature request - I think, there is similar one, it asks to record individual source/scene to standalone file (I think, that setup may has different audio/video settings). So, I have a question for you.
How you see this request (to save Mono tracks with OBS Studio while audio output set to any other number of channels):

The source should be saved into standalone file with its original settings (no filters, no samplerate conversion, no faders, no mute).
The source should be saved into standalone file with all selected filters applied, samplerate conversion, faders, mute if any.
The source should be saved into the same file as new Track but in its original form (no filters, no samplerate conversion, no faders, no mute) if output format can't handle the input parameters - the error should rise and capture stopped.
The source should be saved into the same file as new Track and filter processing should apply to the file including samplerate conversion, faders, mute but it can't be mixed with other sources (just Mono track). If output format not allows it - the error should rise and capture stopped.
The source should be saved into the same file as new Track and filter processing should apply to the file including samplerate conversion, faders, mute and you'll be able to specify _type of the mixing_ with other sources (in case of Mono to Stereo -> do panning, swap channels, place to channel #1, #2, to both etc.). The track is still multi-channel but you'll have full control over the mixing options (maybe per channel sample delay, gain, inversion etc., like a filter per channel).
*Edit: *I forgot about Audio Monitoring in this request... It is important to have it the same as the Mixing.


----------



## DrWolfsherz (Sep 6, 2018)

Nr. 5 is what would best fit my own request.


----------



## DrWolfsherz (Sep 6, 2018)

So, this evening I did some more thorough testing of the different recording modes and settings.
I noticed the following, and it struck me, that it didn't occur tot me earlier:
The recording of the mono Microphone seems to end up exactly -3dB lower than that of Audacity or Dxtory in OBS. When adding exactly +3dB Gain to the Mic in OBS the volume was exactly the same than in those other two programs. There must be an explanation for this. Is this the reduction when OBS puts that mono Signal to a stereo track?

Before these tests I always had the feeling that the volume felt somewhat halved, but the exact amount of reduction I found out now is "only" -3dB. This is certainly a lot lower than the original source but not as drastic as my ears thought it would be.


----------



## Andersama (Sep 6, 2018)

A consideration to make (with your video) is that obs's meters have a setting for the decay rate, obviously as a decay rate it displays the highest peak and lowers at a constant rate until a new peak is higher. I forget where in the settings you can change it, but that'd be another reason why your meters don't quite match up, in addition to the true peak setting. As far as I can tell from your example you can see that the decay rate is far faster in audacity, so keep that in mind. I'm guessing though you're actually checking waveforms of recordings.

As for the almost exact 3db reduction @DrWolfsherz @Suslik V is right, OBS itself doesn't make any modifications to the audio stream, outside of resampling via ffmpeg and filters. If you don't have filters that would modify the gain, ffmpeg would be the issue. The way to counter that would be (as you've already done) add a 3db gain.


----------



## RytoEX (Sep 9, 2018)

@DrWolfsherz @Andersama
While I was digging through the Mantis bug reports, I found Mantis 960: Audio from mono input quieter than in other recording programs, which may be relevant here.  The 3db difference is explicitly mentioned there, and it seems to be how FFmpeg works by design:


> Okay, I have taken a look at the code. It seems to be a fundamental thing how ffmpeg works. The downmixing option is not involved, but the resampling that happens in obs-source.c (also in audio-io.c, but this is not relevant for the recording, I think, but maybe for other things). In both cases it uses the resampling implemented in audio-resampler-ffmpeg.c.
> 
> Bottom line is that swr_convert, which is used in audio_resampler_resample(), seems to be the culprit. Given a 1-channel input and 2-channel output, it generates two quieter stereo streams.



Not being deeply embedded in audio things myself, I'm not sure what the best way to address that would be, and the conversation there seems to have stalled on whether behind-the-scenes code magic or documentation and user education is the best path forward.


----------



## Suslik V (Sep 9, 2018)

Why it is stalled? The idea to give to user full control over the mixing is major change in OBS and the request that require many hard work. As obs overlay, that requested long time ago (while projectors exist where all sources always visible).


----------



## RytoEX (Sep 10, 2018)

Suslik V said:


> Why it is stalled? The idea to give to user full control over the mixing is major change in OBS and the request that require many hard work. As obs overlay, that requested long time ago (while projectors exist where all sources always visible).


I'm referring specifically to this part:


> Now the question is, is this what we would expect swr_convert to do? Is this what we expect OBS to do?
> 
> EDIT: To be clear, I think that the way ffmpeg works makes sense depending on what you expect. If a mono signal would actually be output by only one speaker, then distributing the signal over all channels to get the same total power output after the conversion makes sense. However, it might be a counterintuitive result in case of OBS (at least I think so). I'm used to the fact that a mono signal is usually output on all channels/speakers by common audio recording and editing tools. Of course, the user could increase the recording volume in OBS in this particular case of mono input and stereo output, but I'm not sure whether this could potentially decrease the audio quality by first narrowing and then widening the dynamic range again. Also, I'm not sure whether this should be something the user needs to be taught to do in the particular case of a mono input and a stereo output.



So is FFmpeg returning an expected result, or is its behavior a bug?  If OBS were to adjust for that behavior, are there cases where that would be undesirable?  Does this create a new obscure problem for someone else down the road?  How and where do we provide documentation guidelines on expected behavior and how to adjust for the behavior you want?

Also, there seems to be no clear consensus _after that point_ on what the best path forward is for all users, just personal preference.  There has been no new discussion since July to solve the challenges I listed above.  That is what I mean when I say the conversation has stalled.


----------



## fsimon (Sep 10, 2018)

Slightly offtopic, but if this causes you a real problem, you can always solve it on a hardware level as well..
For example I have a boss-ve-20 vocal processor that can output stereo.. (not sure if it actually applies stereo effects when effects are applied or just doubles the output).. so basically my mic goes into the pedal via XLR and 2 XLR cables go from the pedal to each channel on my Focusrite 2i2.. 
I don't have to mess with any downmixing or plugins plus I can use the preamps on the interface to pan my mic left / right just by balancing the levels on the individual channels, which is kinda cool, so unless you need the second input for something else, it works perfectly. 

Now, I'm not saying that this shouldn't be worked on, but if you do have a real problem with it and your mic for some reason sounds horrible because of it, then it is a solution.. and that pedal is overkill for something like this, I just had it laying around, but you can get an XLR splitter for like $30 or less and that should work just as well. I mean if you have a $400 mic, then you can just consider that an accessory.. 

Cheers!


----------



## pkv (Feb 24, 2019)

I fixed the issue in this PR: https://github.com/obsproject/obs-studio/pull/1686


----------



## DrWolfsherz (Feb 24, 2019)

pkv said:


> I fixed the issue in this PR: https://github.com/obsproject/obs-studio/pull/1686


Thats great to hear! Thank you very much! How can I test this?


----------



## Suslik V (Feb 24, 2019)

@DrWolfsherz this PR doesn't changes number of output channels in the track, it only changes mixing. You can look at the similar solution (filter): https://obsproject.com/forum/resources/rematrix-filter-plugin.620/


----------



## pkv (Feb 24, 2019)

@Suslik V rematrix filter is post resampler so it will still get the -3 dB
@DrWolfsherz the PR does not allow recording of mono tracks alongside stereo tracks. But it solves the level issue. In order to test you have to either compile obs or ping me on obs discord server  (@pkv) and I'll provide you a test build.


----------



## DeMoN (Mar 1, 2019)

Suslik V said:


> I cannot imagine that your interface cannot do stereo while it has 2 inputs... Is this USB device? Is there any options in Windows _Recording devices>Properties>Advanced_ tab?


It is stereo, but with just one mic connected and not 2. The interfaces have 2 inputs.
So what you get is a stereo with just one channel filled with audio.
The solution is to just remove the 2nd empty channel and keeping just the filled channel instead of mixing both together to mono (which results into the 50% volume then.


----------



## Suslik V (Mar 1, 2019)

@DeMoN if you missed it - https://obsproject.com/forum/resources/rematrix-filter-plugin.620/


----------



## DeMoN (Mar 1, 2019)

Cool. That will help me :)


----------



## pkv (Mar 4, 2019)

The PR was merged into master. It can be tested in nightlies : https://ci.appveyor.com/api/buildjobs/dtfrgeuxd7v3ujua/artifacts/23.0.1-45-ged374645.zip


----------



## Hotchocolatejazz (Mar 25, 2020)

Hello. How would I build the rematrix filter plugin to work on my Mac version of OBS ?


----------



## callybug (Dec 17, 2020)

Hi guys, first post because I've had the same problem. This here's my solution.

First of all, make sure "Downmix to mono" is off!

Download the ReaPlugs VST pack (from REAPER's site). Their ReaJS VST has a utility built in called "channelmixer". Turn "L->L Mix" and "L->R Mix" up to 0dB, then "R->R Mix" and "R->L Mix" to -120dB.





You now have your full level, with no +6dB compensation! The ReaPlugs pack's very useful for OBS generally 'cause they're super lightweight.


----------

