Skip to content

Separate sound card input and output selection #681

@kwindrem

Description

@kwindrem

The soundcard list can get extremely long if more than a couple of soundcards are active. This is because the list is build for all combinations of input and output soundcards. For example, if there are 4 sound cards, the list has 16 entries. Selecting the proper one in the list is error prone.
I suggest the sound card selection be split into separate input and output selections.

After further thought, I've had some additional ideas that change the device selection and interaction with Audio Channels. These proposed changes not only make sound card configuration easier and less error prone, but provide some additional functionality.

Proposal:

The Soundcard area of the Settings dialog is changed as shown in the attached image.

U:I changes.pdf

The single Device selection is split into separate Input Device and and Output Device drop-downs which reduces the number of choices significantly. (The current Device list includes every combination of all input and output devices which can grow to 40 or more choices. The new lists would be only 6-7 or so each for the same 40 combinations.)
The Input Channel Mapping and Output Channel Mapping drop-downs are shown even if the device only has one or two channels. "None" is added to the channel lists indicating that no audio interface will be routed to that specific input or output channel.

A "Mono" check box is added next to each pair of channel selectors.

For the Input Device if Mono is selected, the active channels are summed to mono and sent to the Jamulus server as mono. This is identical behavior to the Audio Channels: Mono or Mono in/Stereo out mode.

If Input Device Mono is unchecked, the left and right channels are sent to Jamulus independently. If one of the channels is set to None then silence is sent for that channel.

For the Output Device if Mono is checked, the Jamulus mixer output is summed to mono and sent to the active output channels.

If the Output Device Mono is not checked, the Jamulus mixer routes a stereo signal to the selected channels.

What happens if either the left or right Output Device channels are set to None? There are two possibilities. The mixer could simply drop the "None" channel; or the mixer could act as if Mono were checked.

The next change to the user interfaces is to eliminate the Audio Channels selection in the Misc section. The Audio Channels selection provides 3 of the 4 selections possible with separartete input/output Mono check boxes. (Stereo in/Mono out is missing and could be added.) I belive sepatate input and output mono selections is easier to understand. Because of other interactions, I feel the correct place for the Mono check boxes is in the Soundcard area as I've drawn it.

The remainder of the Soundcard area remains unchanged.

When selecting an Input Device or Output Device, the L and R selectors are set to 1 and 2, respectively even if there are additional channels. This means that for simple setups the user doesn't need to make channel selections. Some audio interfaces only have one input. If such a device is selected, the L and R selections would both be set to 1. This says that mono source would appear in the center of the sound image.

Other abnormal but potentially useful settings:

Setting R to None and NOT checking Mono, would result in the left source appearing only on the left side of a mix. No left source with Mono unchecked would force the source to the right side of the mix.

Generally, an output device will be two channels and receive a stereo mix. But there may be times when you want to listen to the mix in mono. Checking the Output Mono check box would premit that.

It would be possible to route the mix to only one channel of the output device by setting L or R to none. In that case, you'd receive only the left or right side of the mix unless the output Mono check box was checked.

These changes permit the same audio devie to be used by separate instances of Jamulus. Separate instances allows one musician to provide for example voice and guitar independently to the session. In this scenario, the musician would be interested in only one mix and one of the Jamulus instances could turn off both channels of the output device.

In a similar way, Jamulus could be set up for "listen only" by turning off both input device channels. This is technically like Mute Myself, but an enhancement to the system would be to not instantiate a mixer input for the client in this case. Other clients would then not see a fader, etc for a signal that could never exist. You could also hide the Input meters, Mute Myself for this client, or gray them out.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions