exeldro / obs-audio-monitor

audio monitor filter for OBS Studio
GNU General Public License v2.0
282 stars 29 forks source link

Quick access for Monitoring audio output level + default behaviour #39

Open Trouffman opened 2 years ago

Trouffman commented 2 years ago

Note : this is part of multipel request for improvment.

Goal : Quickly have access to monitoring for all audio tracks / source on the default audio monitoring device. Monitoring is really for monitoring (producer). Extra audio output is really for added devices output.

Implies some rework the UI to streamline this.

Reasoning behind this change (numbered for easier discussion) :

  1. When adding monitoring, the device needs to be explicitly configured for each track & each audio sources image

  2. The volume level slider for the main volume output can differ from the "monitoring" audio output. This is fine for "extra audio devices" but this is counter-intuitive for monitoring. It means that if you want to "monitor" your track or source, you need to ensure tboth sliders are at the same level.

  3. If the device name change, you have to go to 1. all over again. - This Increase misconfiguration risk. Here we target only for the monitoring purpose, not the extra audio output (another ticket is for this!)

  4. There is a default settings in OBS for monitoring devices : Let's use it. image

Suggested implementations steps: A : By default enable monitoring on all tracks & all audio source via the "Monitoring device" by default and switching it "off". This would "pre-configure" monitoring in similar fashion than other similar tools (Vmix, Wirecast, etc).

B : Add a slider specifically to control the output to the "audio Monitoring device", level meter is irrelevant here, the Output level of each source/track you are monitoring is key, and this slider only control the sound level in your monitring device. (See point C for the reason the meter is not useful for the monitoring device)

C : By default, the output level is the same as the source output level. You are monitoring a set of sources/track. This is where the semantic in OP is important.

We are listening to a set of source/track to ensure they are outputin correctly. That being the "output" of a track or an extra audio device. This simplify the UI and you only need to click the relevant icon to monitor the audio. (See "UI/UX section of this post)

D : Make the distinction between Monitoring & Extra Audio Output.

The use of term "Audio Monitoring" is confusing a bit, as adding external audio output are being used in number of ways and purposes. IMHO this should be re-defined for clarity unrelated to use-cases :

(Yes extra audio could be used to "monitor" but this is adding a level of complexity as explain in reason 1. & 2. in intro.)

UI / UX considerations : Challenges: Depending on screen-size and usage of the plugin this can be taking quite a lot of "space". Below are couple of recommendations for UI optimisation and UX.

OBS-Audio monitor

Usage example

Some mockup (these carry more changes request that only this one. There are other tickets for the UI/UX changes.

exeldro commented 2 years ago
  1. its easier to add an "all" option in the menu with the tracks. Would that help?
  2. on the Audio monitor filter enable the checkbox called "Volume linked to source volume", is that what you are looking for?
  3. will solution to point 1 help for this?
  4. that default setting can be set to a different device than the devices used by this plugin on purpose. There is no volume control on the OBS build in monitoring.

A. enabling all tracks by default would confuse most user who only use 1 track. B. I especially made this plugins so that you can have different audio levels on stream and on monitoring otherwise you can use the OBS build in audio monitoring. D. This plugin was made especially for the separate volume control, so would it be better to rename the plugin?

My ideas from this:

Trouffman commented 2 years ago
  1. That could be a workaround but would cluter the layout with an extra (in opposition to the "headset icon" + would limit to monitoring only to the output, not each additional extra output.

  2. This is it indeed. But by default rather than per filter to be added.

  3. That would mitigate indeed,

  4. Okay. To confirm : It is not using the audio monitoring device because there is no volume control on that monitoring device, correct ? Hence we need to get this manually added.

A. If no change to the UI, correct! But if using the suggested UI, it would be transparent. I could rephrase : enable for any "used" tracks. (This could be check with any settings set in output (stream + record, if one only have the track 1 enable, jsut display the track 1, etc.)

B. Understood. This is confusing due to the monitoring vs extra audio output usage.

C. This would be linked to your comment on point 2 and fact there is no level on tracks nor on monitoring device.

D. That came up as well in my teammate discussion. Maybe this would be better name : Advanced Audio Mixer (to be similar to the Advanced scene switcher) in which you can monitor or output to etra audio devices.

You 3 suggestions would be welcome.