rncbc / qsynth

Qsynth - A fluidsynth Qt GUI Interface
https://qsynth.sourceforge.io
GNU General Public License v2.0
66 stars 18 forks source link

Even channels do not play back through JACK when audio group number is set to 2 #37

Open trolley813 opened 3 years ago

trolley813 commented 3 years ago

This commit fixed multi-channel JACK support, although it likely introduced another problem (at least on my ALC1220 hardware on Fedora 33): when JACK is selected as audio output and number of audio groups is forced to 2 (the multi-output checkbox is off), all the even-numbered channels (2, 4, 6, 8, 10, 12, 14 and 16) are not heard, despite MIDI activity is being shown. Odd-numbered channels (1, 3, 5, 7, 9, 11, 13 and 15) play back normally.

Workaround is to manually edit the Qsynth.conf file and force AudioGroups setting to 1, and after that all channels are heard.

This is probably related to commit above, since I've started experiencing that only after updating Qsynth to 0.9.1.

rncbc commented 3 years ago

have you considered to revert https://github.com/rncbc/qsynth/commit/30fa713 and check whether it then goes alright?

trolley813 commented 3 years ago

Not yet, since I didn't build Qsynth from source. But the code in 30fa713 sets the minimum value of the audio groups spinbox to 2, so it's impossible anymore to set the value of 1 via the UI.

trolley813 commented 3 years ago

I still do not understand the purpose of setting the minimum allowed value for the audio groups count to 2. According to the Fluidsynth docs, there's apparently no reason to disallow using 1 audio group with JACK (and it does actually work).

rncbc commented 3 years ago

possible fix in 07d87ce , develop branch

eefano commented 3 years ago

The official Fluidsynth documentation says:

synth.audio-channels Type: Integer (int) Min - Max: 1 - 128 Default: 1 By default, the synthesizer outputs a single stereo signal. Using this option, the synthesizer can output multi-channel audio. Sets the number of stereo channel pairs. So 1 is actually 2 channels (a stereo pair).

When the program is launched from the first time and the settings file is created in the .config folder, you should respect that default.

Same thing for the value of synth.audio-groups that should be 1 also by default.