[LAD] PHASEX (jacksession)

Emanuel Rumpf xbran at web.de
Sun Jul 3 17:28:51 UTC 2011


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 at gmail.com>:
> 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.



More information about the Linux-audio-dev mailing list