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 <[email protected]>: > 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. _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
