Thread: [qsynth-devel] Best way to manage presets?
A fluidsynth Qt GUI Interface
Brought to you by:
rncbc
|
From: Lorenzo S. <lor...@gm...> - 2022-09-10 10:14:10
|
Hi, What would the best way to manage 'presets' of soundfonts in Qsynth? I can't seem to understand the presets option in the channel window if multiple soundfonts are loaded, especially with sounfonts (imagine a general midi one) which have similar intruments. My idea would be to have a number of engines each with an assigned soundfont an settings, e.g. Engine 1 = Soundfont 1, Engine 2 = soundfont 2, etc. and be able to 'snapshot' and re-load them. Would this be possible in some way? Thanks! Lorenzo. |
|
From: Rui N. C. <rn...@rn...> - 2022-09-10 10:51:34
|
On 9/10/22 11:13, Lorenzo Sutton wrote: > Hi, > > What would the best way to manage 'presets' of soundfonts in Qsynth? > > I can't seem to understand the presets option in the channel window if > multiple soundfonts are loaded, especially with sounfonts (imagine a > general midi one) which have similar intruments. > > My idea would be to have a number of engines each with an assigned > soundfont an settings, e.g. Engine 1 = Soundfont 1, Engine 2 = soundfont > 2, etc. and be able to 'snapshot' and re-load them. Would this be > possible in some way? > if more than one sf2 is loaded, you may have a bank offset on the 2nd sf2 and 3rd. etc. so their instrument presets be addressable by the original bank no. plus respective offset. that's the way for you may address the hidden/overlapped instruments across several stacked sf2's and thus be possible to assign or map to a channel slot; it is this map of 16-channel slots that is called a "qsynth preset" and here managed on the channels window of course. hth. cheers -- rncbc aka. Rui Nuno Capela rn...@rn... |
|
From: <ped...@gm...> - 2022-09-10 11:08:53
|
On s?bado, 10 de septiembre de 2022 12:50:50 (CEST) Rui Nuno Capela via qsynth-devel wrote: > > My idea would be to have a number of engines each with an assigned > > soundfont an settings, e.g. Engine 1 = Soundfont 1, Engine 2 = > > soundfont > > 2, etc. and be able to 'snapshot' and re-load them. Would this be > > possible in some way? > > if more than one sf2 is loaded, you may have a bank offset on the 2nd > sf2 and 3rd. etc. so their instrument presets be addressable by the > original bank no. plus respective offset. The soundfont offset is relevant when more than one soundfont is loaded within the same engine (fluidsynth instance). But Lorenzo's use case is about loading different soundfonts in different engines/instances, so no need to set offsets in this case. The channel presets are stored in the program configuration, ( which in Linux is located at ~/.config/rncbc.org/Qsynth.conf ). Each preset is associated to its engine, so I see no problems with Lorenzo's scenario. Regards, Pedro |
|
From: Lorenzo S. <lor...@gm...> - 2022-09-10 11:18:01
|
Thanks both for the quick answers :-) On 10/09/2022 13:08, ped...@gm... wrote: > On s?bado, 10 de septiembre de 2022 12:50:50 (CEST) Rui Nuno Capela via > qsynth-devel wrote: >>> My idea would be to have a number of engines each with an assigned >>> soundfont an settings, e.g. Engine 1 = Soundfont 1, Engine 2 = >>> soundfont >>> 2, etc. and be able to 'snapshot' and re-load them. Would this be >>> possible in some way? >> >> if more than one sf2 is loaded, you may have a bank offset on the 2nd >> sf2 and 3rd. etc. so their instrument presets be addressable by the >> original bank no. plus respective offset. OK thanks, now it's clearer. Can a MIDI client (e.g. sequencer), change the preset instrument e.g. on a channel? In that case an idea would be to set-up a preset which has 'placeholder' instruments from sf1 on channels 1-16, from sf2 on channels 17-32, etc. > > The soundfont offset is relevant when more than one soundfont is loaded > within the same engine (fluidsynth instance). But Lorenzo's use case is > about loading different soundfonts in different engines/instances, so no > need to set offsets in this case. yes, that's what I was thinking of. Also because there are some soundfonts which are constructed as 1 instrument per soundfont (e.g. a drum soundfont) and it can be useful to have them on a separate engine and control certain parameters independently (poliphony, reverb, ...). The added value is also that each engine gets its midi input. > > The channel presets are stored in the program configuration, ( which in > Linux is located at ~/.config/rncbc.org/Qsynth.conf ). Each preset is > associated to its engine, so I see no problems with Lorenzo's scenario. So currently I could achieve this by setting up and configuring the needed engines and then making a copy of Qsynth.conf for potential later re-use. Not integrated but could e.g. be scripted. At the moment it seems this cpnfig file is hard-coded right (that's what the man page seems to suggest)? Lorenzo. |
|
From: <ped...@gm...> - 2022-09-10 12:05:59
|
On s?bado, 10 de septiembre de 2022 13:17:47 (CEST) Lorenzo Sutton wrote: > Can a MIDI client (e.g. sequencer), change > the preset instrument e.g. on a channel? In that case an idea would be > to set-up a preset which has 'placeholder' instruments from sf1 on > channels 1-16, from sf2 on channels 17-32, etc. Each synth engine has a set of MIDI channels, starting by channel 0. The number of available MIDI channels is a setting in the engine's Setup->MIDI tab. It may be a number between 1 and 256 (defaults to 16). This is a fluidsynth setting: https://www.fluidsynth.org/api/ settings_synth.html#settings_synth_midi-channels The soundfont/offset has nothing to do with the MIDI channel numbers. The same soundfont(s) are used for all MIDI channels within the same engine. In the MIDI 1.0 protocol each MIDI port/connection/cable has a limit of 16 channels. All programs and hardware MIDI devices conforming the protocol share the same limit. This will change with MIDI 2.0 though. But answering your question: yes, of course. Most DAW apps have settings for MIDI tracks to set the MIDI channel, bank and program numbers. For instance, in Rosegarden each track has an Instrument parameter, which in turn has MIDI Bank / Program / Channel parameters. Look at the boxes at the left of the tracks list. In Qtractor, each MIDI track has channel/bank and program parameters. Those track parameters will be saved for each song on most applications, and of course will override your channel presets when playing back the song. Standard MIDI files usually send program change events at the beginning. They will override your presets as well. Channel presets when using Qsynth with a DAW or MIDI player are not very useful, IMO. They are very interesting when using Qsynth with MIDI controllers, especially with controllers that do not set an initial channels setup. This is the case of many hardware MIDI controllers. Be careful for instance with VMPK, which has a checkbox in Preferences- >Behavior->"MIDI channel state consistency" to activate or deactivate this feature. When enabled, it will override your channel presets as well. Regards, Pedro |
|
From: Lorenzo S. <lor...@gm...> - 2022-09-12 14:58:30
|
On 10/09/2022 14:05, ped...@gm... wrote: > On s?bado, 10 de septiembre de 2022 13:17:47 (CEST) Lorenzo Sutton wrote: >> Can a MIDI client (e.g. sequencer), change >> the preset instrument e.g. on a channel? In that case an idea would be >> to set-up a preset which has 'placeholder' instruments from sf1 on >> channels 1-16, from sf2 on channels 17-32, etc. > > Each synth engine has a set of MIDI channels, starting by channel 0. The > number of available MIDI channels is a setting in the engine's Setup->MIDI > tab. It may be a number between 1 and 256 (defaults to 16). This is a > fluidsynth setting: https://www.fluidsynth.org/api/ > settings_synth.html#settings_synth_midi-channels > > The soundfont/offset has nothing to do with the MIDI channel numbers. The > same soundfont(s) are used for all MIDI channels within the same engine. Yes, yes that's clear. > > In the MIDI 1.0 protocol each MIDI port/connection/cable has a limit of 16 > channels. All programs and hardware MIDI devices conforming the protocol > share the same limit. This will change with MIDI 2.0 though. Yep well-known, after all Midi (1) is 40 years old :-) > > But answering your question: yes, of course. Most DAW apps have settings > for MIDI tracks to set the MIDI channel, bank and program numbers. For > instance, in Rosegarden each track has an Instrument parameter, which in > turn has MIDI Bank / Program / Channel parameters. Look at the boxes at the > left of the tracks list. In Qtractor, each MIDI track has channel/bank and > program parameters. Those track parameters will be saved for each song on > most applications, and of course will override your channel presets when > playing back the song. Indeed. I've been promoting a feature request in Rosegarden to *not* send program changes exactly to account for synths where you'd like to set-up your own programs... > > Standard MIDI files usually send program change events at the beginning. > They will override your presets as well. > > Channel presets when using Qsynth with a DAW or MIDI player are not very > useful, IMO. They are very interesting when using Qsynth with MIDI > controllers, especially with controllers that do not set an initial > channels setup. This is the case of many hardware MIDI controllers. Ditto. Be > careful for instance with VMPK, which has a checkbox in Preferences- >> Behavior->"MIDI channel state consistency" to activate or deactivate this > feature. When enabled, it will override your channel presets as well. > Thanks for the very detailed explanations :-) Lorenzo |