Further jack-session difficulties:
- some applications use a full path as jack-sessions command_line ==>
not platform independent, not at all
(amSynth vs. /usr/bin/amSynth )
- most use single character parameters in the command_line ==> bad:
-P and -p is the same on some platforms
- the so called uuid actually is NO uuid (as defined in RFC 4122) ==>
it's just a simple session-id and should be renamed
(a uuid would look like this: 6a3f88dc-433e-4a58-ab3e-3551aa14b00b
use uuidgen to generate one)
- in the wiki example code, gtk_main_quit(); is called before
jack_session_event_free( ev );
it appears, that jack_session_event_free() will never be called ?
- amSynth has a bug: The session-start command_line is set to NULL, if
using SaveAndQuit, but works with just Save (without Quit)
Maybe there should be a "best practice" section in the jack-session
wiki, pointing out these issues...
2011/7/3 rosea grammostola <rosea.grammostola(a)gmail.com>om>:
On 07/02/2011 07:25 PM, Emanuel Rumpf wrote:
>
How does jack-session know the time, where an application is ready for
creating (establishing)
connections ?
My audio connections seems to work. My midi
connections (via a2j) are not
restored though.
The midi connections of Yoshimi are restored, but it has native JACK MIDI support.
What are the pre-conditions for jack-session, to restore midi connections ?
Does it work with native jack-midi only ?
regarding phasex (r2011-07-02):
Likely BPM is handled as 'generic option' that is patch independent
and thus not saved with / in the patch file.
I suppose, one has to add additional code to store that info.
Also the whole Bank is not stored currently, just the currently active patch.
>
> Suggestions:
> For larger gui-intense applications (which take time to start),
> SaveAndQuit should rather be SaveAndClose(current Documents).
> The some for single-instance applications.
> Else, it may take too much time restarting a whole setup.
>
> jack_session_reply( client, ev );
> could additionally inform jack, whether it is using single instance mode.
> ev->app_in_single_instance_mode = true;
>
> and provide a method to load patches, without closing
> the application:
> int my_load_setup( void* data, void* event );
> ev->load_setup = my_load_setup;
>
> This way, jack-session would be able to distinguish, whether
> to call ev->load_setup() or start the app with ev->command_line
> This load command would tell single_inst. apps to load a document
> and start multi_inst. apps with the path.
>
> An additional close_session command would be good (in qjackctl).
> This would close the documents of single_instance applications
> and quit multi_instance applications (but not jackd and pulse and
> patchage).
>
>
--
E.R.