rncbc / qsynth

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

(Request) synth.device-id to be variable #86

Open nanitaro opened 6 months ago

nanitaro commented 6 months ago

Sorry to keep pestering you.

Is there a way to change the FluidSynth option synth.device-id in the Qsynth UI? The Settings tab in the setup window seems to only allow me to view the settings. I have looked in the registry but can't seem to find it.

The default value of synth.device-id is 0. However, the default device-id for classic GS and XG devices was 16 (0x10 in hexadecimal). It has been confirmed that when classic SMF (.mid) is replayed in Qsynth, the intended GS and XG reset behavior is not performed due to the device-id difference. See also.FluidSynth/fluidsynth/issues/1323

It would be useful if synth.device-id could be variable in order to get closer to the behavior of classic GS and XG devices.

pedrolcl commented 6 months ago

It is not possible to set this parameter in the GUI, but you can set it on the command line:

$ flatpak run org.rncbc.qsynth -o synth.device-id=127

image

To see all the command line options, you may run qsynth with the --help-all or --help argument:

$ flatpak run org.rncbc.qsynth --help-all
Qt: Session management error: Could not open network socket
Usage: qsynth [options] [soundfonts] [midifiles]
Qsynth - A fluidsynth Qt GUI Interface

Options:
  -n, --no-midi-in                     Don't create a midi driver to read MIDI
                                       input events [default = yes]
  -m, --midi-driver <label>            The name of the midi driver to use
                                       [oss,alsa,alsa_seq,...]
  -K, --midi-channels <num>            The number of midi channels [default =
                                       16]
  -a, --audio-driver <label>           The audio driver
                                       [alsa,jack,oss,dsound,...]
  -j, --connect-jack-outputs           Attempt to connect the jack outputs to
                                       the physical ports
  -L, --audio-channels <num>           The number of stereo audio channels
                                       [default = 1]
  -G, --audio-groups <num>             The number of audio groups [default = 1]
  -z, --audio-bufsize <size>           Size of each audio buffer
  -c, --audio-bufcount <count>         Number of audio buffers
  -r, --sample-rate <rate>             Set the sample rate
  -R, --reverb <flag>                  Turn the reverb on or off
                                       [1|0|yes|no|on|off, default = on]
  -C, --chorus <flag>                  Turn the chorus on or off
                                       [1|0|yes|no|on|off, default = on]
  -g, --gain <gain>                    Set the master gain [0 < gain < 2,
                                       default = 1]
  -o, --option <name=value>            Define a setting name=value
  -s, --server                         Create and start server [default = no]
  -i, --no-shell                       Don't read commands from the shell
                                       [ignored]
  -d, --dump                           Dump midi router events
  -V, --verbose                        Print out verbose messages about midi
                                       events
  -h, --help                           Displays help on commandline options.
  --help-all                           Displays help, including generic Qt
                                       options.
  -v, --version                        Displays version information.
  --qmljsdebugger <value>              Activates the QML/JS debugger with a
                                       specified port. The value must be of
                                       format port:1234[,block]. "block" makes
                                       the application wait for a connection.
  --platform <platformName[:options]>  QPA plugin. See QGuiApplication
                                       documentation for available options for
                                       each plugin.
  --platformpluginpath <path>          Path to the platform plugins.
  --platformtheme <theme>              Platform theme.
  --plugin <plugin>                    Additional plugins to load, can be
                                       specified multiple times.
  --qwindowgeometry <geometry>         Window geometry for the main window,
                                       using the X11-syntax, like 100x100+50+50.
  --qwindowicon <icon>                 Default window icon.
  --qwindowtitle <title>               Title of the first window.
  --reverse                            Sets the application's layout direction
                                       to Qt::RightToLeft (debugging helper).
  --session <session>                  Restores the application from an earlier
                                       session.
  --display <display>                  Display name, overrides $DISPLAY.
  --name <name>                        Instance name according to ICCCM
                                       4.1.2.5.
  --nograb                             Disable mouse grabbing (useful in
                                       debuggers).
  --dograb                             Force mouse grabbing (even when running
                                       in a debugger).
  --visual <id>                        ID of the X11 Visual to use.
  --geometry <geometry>                Alias for --qwindowgeometry.
  --icon <icon>                        Alias for --qwindowicon.
  --title <title>                      Alias for --qwindowtitle.

Arguments:
  soundfonts                           SoundFont Files
  midifiles                            MIDI Files
nanitaro commented 6 months ago

Thank you. I have confirmed in the Windows environment that it can only be changed by command line options.

If you do not think it is necessary to implement this in the GUI, please close this issue.

pedrolcl commented 6 months ago

I leave the decision to @rncbc