[Jack-Devel] Jack2 alsarawmidi slave: Pluggable device registration problem?

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

[Jack-Devel] Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
Hi!

When I plug in my USB midi device after starting Jack2 with alsarawmidi,
 it does not register at all, as jack_lsp shows.

But if I instead start Jack2 after the device is plugged in, ports are there.

But then if I unplug the device, strangely the ports do not unregister and
 I can even make connections to them in qjctl.

Having seen the second problem first, I thought it might be a new 'feature' -
 Persistent Ports!

But now having seen the first problem I guess not...

What could be wrong?
Thanks. Tim.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
On September 27, 2014 07:47:01 PM Tim E. Real wrote:

> Hi!
>
> When I plug in my USB midi device after starting Jack2 with alsarawmidi,
>  it does not register at all, as jack_lsp shows.
>
> But if I instead start Jack2 after the device is plugged in, ports are
> there.
>
> But then if I unplug the device, strangely the ports do not unregister and
>  I can even make connections to them in qjctl.
>
> Having seen the second problem first, I thought it might be a new 'feature'
> - Persistent Ports!
>
> But now having seen the first problem I guess not...
>
> What could be wrong?
> Thanks. Tim.


Here we go, some output:


Start Jack, USB device is already plugged in:

...
Not shown: Early startup stuff, we pick it up at last USB midi port...
...

JackALSARawMidiDriver::Attach - output port registered
(name='system:midi_playback_2', alias='system:2-1 MidiSport 2x2 2 out').
Jack: JackEngine::PortRegister ref = 2 name = system:midi_playback_3 type = 8
bit raw midi flags = 21 buffer_size = 256
Jack: JackGraphManager::AllocatePortAux port_index = 28 name =
system:midi_playback_3 type = 8 bit raw midi
Jack: JackConnectionManager::AddInputPort ref = 2 port = 28
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
Jack: JackEngine::ClientNotify: no callback for notification = 9
JackALSARawMidiDriver::Attach - output port registered
(name='system:midi_playback_3', alias='system:3-1 M Audio Delta 1010LT MIDI 1
out').
Jack: JackServer::Start
Jack: JackThreadedDriver::Start
JackALSARawMidiDriver::Start - Starting 'alsarawmidi' driver.
JackALSARawMidiDriver::Start - starting ALSA thread ...
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackPosixThread::AcquireRealTimeImp priority = 31
JackALSARawMidiDriver::Start - started ALSA thread.
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackThreadedDriver::Init real-time
Jack: JackPosixThread::AcquireRealTimeImp priority = 30
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: JackSocketServerChannel::ClientCreate socket
Jack: JackSocketServerChannel::BuildPoolTable size = 2
Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 29
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
Jack: JackRequest::Notification
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
notify = 18
Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
notify = 18
Jack: JackEngine::ClientNotify: no callback for notification = 4
Jack: JackEngine::ClientNotify: no callback for notification = 4
Jack: JackEngine::ClientNotify: no callback for notification = 4

...
Idle
...


Now unplug USB device:

JackALSARawMidiPort::GetIOPollEvents - the file descriptor is invalid.
JackALSARawMidiDriver::Execute - a fatal error occurred while processing ALSA
output events.
JackALSARawMidiDriver::Execute - ALSA thread exiting.
Jack: JackPosixThread::ThreadHandler : exit
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29

...
Idle
...

Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29

...

Now re-plug USB device:

No output, nothing changes.

...


Thanks. Tim.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Stéphane Letz
The reason is that this is probably no "dynamic plug/unplug" handing code in the JackALSARawMidiDriver backend.

Stéphane

Le 28 sept. 2014 à 04:43, Tim E. Real <[hidden email]> a écrit :

> On September 27, 2014 07:47:01 PM Tim E. Real wrote:
>> Hi!
>>
>> When I plug in my USB midi device after starting Jack2 with alsarawmidi,
>> it does not register at all, as jack_lsp shows.
>>
>> But if I instead start Jack2 after the device is plugged in, ports are
>> there.
>>
>> But then if I unplug the device, strangely the ports do not unregister and
>> I can even make connections to them in qjctl.
>>
>> Having seen the second problem first, I thought it might be a new 'feature'
>> - Persistent Ports!
>>
>> But now having seen the first problem I guess not...
>>
>> What could be wrong?
>> Thanks. Tim.
>
>
> Here we go, some output:
>
>
> Start Jack, USB device is already plugged in:
>
> ...
> Not shown: Early startup stuff, we pick it up at last USB midi port...
> ...
>
> JackALSARawMidiDriver::Attach - output port registered
> (name='system:midi_playback_2', alias='system:2-1 MidiSport 2x2 2 out').
> Jack: JackEngine::PortRegister ref = 2 name = system:midi_playback_3 type = 8
> bit raw midi flags = 21 buffer_size = 256
> Jack: JackGraphManager::AllocatePortAux port_index = 28 name =
> system:midi_playback_3 type = 8 bit raw midi
> Jack: JackConnectionManager::AddInputPort ref = 2 port = 28
> Jack: JackEngine::ClientNotify: no callback for notification = 9
> Jack: JackEngine::ClientNotify: no callback for notification = 9
> Jack: JackEngine::ClientNotify: no callback for notification = 9
> JackALSARawMidiDriver::Attach - output port registered
> (name='system:midi_playback_3', alias='system:3-1 M Audio Delta 1010LT MIDI 1
> out').
> Jack: JackServer::Start
> Jack: JackThreadedDriver::Start
> JackALSARawMidiDriver::Start - Starting 'alsarawmidi' driver.
> JackALSARawMidiDriver::Start - starting ALSA thread ...
> Jack: JackPosixThread::StartImp : create non RT thread
> Jack: JackPosixThread::ThreadHandler : start
> Jack: JackPosixThread::AcquireRealTimeImp priority = 31
> JackALSARawMidiDriver::Start - started ALSA thread.
> Jack: JackPosixThread::StartImp : create non RT thread
> Jack: JackPosixThread::ThreadHandler : start
> Jack: JackThreadedDriver::Init real-time
> Jack: JackPosixThread::AcquireRealTimeImp priority = 30
> Jack: JackPosixThread::StartImp : create non RT thread
> Jack: JackPosixThread::ThreadHandler : start
> Jack: JackSocketServerChannel::ClientCreate socket
> Jack: JackSocketServerChannel::BuildPoolTable size = 2
> Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 29
> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
> Jack: JackRequest::Notification
> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
> notify = 18
> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
> notify = 18
> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
> notify = 18
> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
> notify = 18
> Jack: JackEngine::ClientNotify: no callback for notification = 4
> Jack: JackEngine::ClientNotify: no callback for notification = 4
> Jack: JackEngine::ClientNotify: no callback for notification = 4
>
> ...
> Idle
> ...
>
>
> Now unplug USB device:
>
> JackALSARawMidiPort::GetIOPollEvents - the file descriptor is invalid.
> JackALSARawMidiDriver::Execute - a fatal error occurred while processing ALSA
> output events.
> JackALSARawMidiDriver::Execute - ALSA thread exiting.
> Jack: JackPosixThread::ThreadHandler : exit
> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>
> ...
> Idle
> ...
>
> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>
> ...
>
> Now re-plug USB device:
>
> No output, nothing changes.
>
> ...
>
>
> Thanks. Tim.
> _______________________________________________
> Jack-Devel mailing list
> [hidden email]
> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
On September 28, 2014 09:18:38 AM you wrote:
> The reason is that this is probably no "dynamic plug/unplug" handing code in
> the JackALSARawMidiDriver backend.
>
> Stéphane

Hi thanks. Yes, poking around the code I noticed a peculiar absence of
 some registration code, compared to the other drivers.

Is this code waiting to be done? Should I wait?

Thanks.
Tim.


>
> Le 28 sept. 2014 à 04:43, Tim E. Real <[hidden email]> a écrit :
> > On September 27, 2014 07:47:01 PM Tim E. Real wrote:
> >> Hi!
> >>
> >> When I plug in my USB midi device after starting Jack2 with alsarawmidi,
> >> it does not register at all, as jack_lsp shows.
> >>
> >> But if I instead start Jack2 after the device is plugged in, ports are
> >> there.
> >>
> >> But then if I unplug the device, strangely the ports do not unregister
> >> and
> >> I can even make connections to them in qjctl.
> >>
> >> Having seen the second problem first, I thought it might be a new
> >> 'feature'
> >> - Persistent Ports!
> >>
> >> But now having seen the first problem I guess not...
> >>
> >> What could be wrong?
> >> Thanks. Tim.
> >
> > Here we go, some output:
> >
> >
> > Start Jack, USB device is already plugged in:
> >
> > ...
> > Not shown: Early startup stuff, we pick it up at last USB midi port...
> > ...
> >
> > JackALSARawMidiDriver::Attach - output port registered
> > (name='system:midi_playback_2', alias='system:2-1 MidiSport 2x2 2 out').
> > Jack: JackEngine::PortRegister ref = 2 name = system:midi_playback_3 type
> > = 8 bit raw midi flags = 21 buffer_size = 256
> > Jack: JackGraphManager::AllocatePortAux port_index = 28 name =
> > system:midi_playback_3 type = 8 bit raw midi
> > Jack: JackConnectionManager::AddInputPort ref = 2 port = 28
> > Jack: JackEngine::ClientNotify: no callback for notification = 9
> > Jack: JackEngine::ClientNotify: no callback for notification = 9
> > Jack: JackEngine::ClientNotify: no callback for notification = 9
> > JackALSARawMidiDriver::Attach - output port registered
> > (name='system:midi_playback_3', alias='system:3-1 M Audio Delta 1010LT
> > MIDI 1 out').
> > Jack: JackServer::Start
> > Jack: JackThreadedDriver::Start
> > JackALSARawMidiDriver::Start - Starting 'alsarawmidi' driver.
> > JackALSARawMidiDriver::Start - starting ALSA thread ...
> > Jack: JackPosixThread::StartImp : create non RT thread
> > Jack: JackPosixThread::ThreadHandler : start
> > Jack: JackPosixThread::AcquireRealTimeImp priority = 31
> > JackALSARawMidiDriver::Start - started ALSA thread.
> > Jack: JackPosixThread::StartImp : create non RT thread
> > Jack: JackPosixThread::ThreadHandler : start
> > Jack: JackThreadedDriver::Init real-time
> > Jack: JackPosixThread::AcquireRealTimeImp priority = 30
> > Jack: JackPosixThread::StartImp : create non RT thread
> > Jack: JackPosixThread::ThreadHandler : start
> > Jack: JackSocketServerChannel::ClientCreate socket
> > Jack: JackSocketServerChannel::BuildPoolTable size = 2
> > Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 29
> > Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
> > Jack: JackRequest::Notification
> > Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
> > notify = 18
> > Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
> > notify = 18
> > Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
> > notify = 18
> > Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
> > notify = 18
> > Jack: JackEngine::ClientNotify: no callback for notification = 4
> > Jack: JackEngine::ClientNotify: no callback for notification = 4
> > Jack: JackEngine::ClientNotify: no callback for notification = 4
> >
> > ...
> > Idle
> > ...
> >
> >
> > Now unplug USB device:
> >
> > JackALSARawMidiPort::GetIOPollEvents - the file descriptor is invalid.
> > JackALSARawMidiDriver::Execute - a fatal error occurred while processing
> > ALSA output events.
> > JackALSARawMidiDriver::Execute - ALSA thread exiting.
> > Jack: JackPosixThread::ThreadHandler : exit
> > Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
> >
> > ...
> > Idle
> > ...
> >
> > Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
> > Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
> >
> > ...
> >
> > Now re-plug USB device:
> >
> > No output, nothing changes.
> >
> > ...
> >
> >
> > Thanks. Tim.
> > _______________________________________________
> > Jack-Devel mailing list
> > [hidden email]
> > http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Stéphane Letz
Patch welcome I guess.

Stephane

Le 28 sept. 2014 à 17:32, Tim E. Real <[hidden email]> a écrit :

> On September 28, 2014 09:18:38 AM you wrote:
>> The reason is that this is probably no "dynamic plug/unplug" handing code in
>> the JackALSARawMidiDriver backend.
>>
>> Stéphane
>
> Hi thanks. Yes, poking around the code I noticed a peculiar absence of
> some registration code, compared to the other drivers.
>
> Is this code waiting to be done? Should I wait?
>
> Thanks.
> Tim.
>
>
>>
>> Le 28 sept. 2014 à 04:43, Tim E. Real <[hidden email]> a écrit :
>>> On September 27, 2014 07:47:01 PM Tim E. Real wrote:
>>>> Hi!
>>>>
>>>> When I plug in my USB midi device after starting Jack2 with alsarawmidi,
>>>> it does not register at all, as jack_lsp shows.
>>>>
>>>> But if I instead start Jack2 after the device is plugged in, ports are
>>>> there.
>>>>
>>>> But then if I unplug the device, strangely the ports do not unregister
>>>> and
>>>> I can even make connections to them in qjctl.
>>>>
>>>> Having seen the second problem first, I thought it might be a new
>>>> 'feature'
>>>> - Persistent Ports!
>>>>
>>>> But now having seen the first problem I guess not...
>>>>
>>>> What could be wrong?
>>>> Thanks. Tim.
>>>
>>> Here we go, some output:
>>>
>>>
>>> Start Jack, USB device is already plugged in:
>>>
>>> ...
>>> Not shown: Early startup stuff, we pick it up at last USB midi port...
>>> ...
>>>
>>> JackALSARawMidiDriver::Attach - output port registered
>>> (name='system:midi_playback_2', alias='system:2-1 MidiSport 2x2 2 out').
>>> Jack: JackEngine::PortRegister ref = 2 name = system:midi_playback_3 type
>>> = 8 bit raw midi flags = 21 buffer_size = 256
>>> Jack: JackGraphManager::AllocatePortAux port_index = 28 name =
>>> system:midi_playback_3 type = 8 bit raw midi
>>> Jack: JackConnectionManager::AddInputPort ref = 2 port = 28
>>> Jack: JackEngine::ClientNotify: no callback for notification = 9
>>> Jack: JackEngine::ClientNotify: no callback for notification = 9
>>> Jack: JackEngine::ClientNotify: no callback for notification = 9
>>> JackALSARawMidiDriver::Attach - output port registered
>>> (name='system:midi_playback_3', alias='system:3-1 M Audio Delta 1010LT
>>> MIDI 1 out').
>>> Jack: JackServer::Start
>>> Jack: JackThreadedDriver::Start
>>> JackALSARawMidiDriver::Start - Starting 'alsarawmidi' driver.
>>> JackALSARawMidiDriver::Start - starting ALSA thread ...
>>> Jack: JackPosixThread::StartImp : create non RT thread
>>> Jack: JackPosixThread::ThreadHandler : start
>>> Jack: JackPosixThread::AcquireRealTimeImp priority = 31
>>> JackALSARawMidiDriver::Start - started ALSA thread.
>>> Jack: JackPosixThread::StartImp : create non RT thread
>>> Jack: JackPosixThread::ThreadHandler : start
>>> Jack: JackThreadedDriver::Init real-time
>>> Jack: JackPosixThread::AcquireRealTimeImp priority = 30
>>> Jack: JackPosixThread::StartImp : create non RT thread
>>> Jack: JackPosixThread::ThreadHandler : start
>>> Jack: JackSocketServerChannel::ClientCreate socket
>>> Jack: JackSocketServerChannel::BuildPoolTable size = 2
>>> Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 29
>>> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>>> Jack: JackRequest::Notification
>>> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
>>> notify = 18
>>> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
>>> notify = 18
>>> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
>>> notify = 18
>>> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
>>> notify = 18
>>> Jack: JackEngine::ClientNotify: no callback for notification = 4
>>> Jack: JackEngine::ClientNotify: no callback for notification = 4
>>> Jack: JackEngine::ClientNotify: no callback for notification = 4
>>>
>>> ...
>>> Idle
>>> ...
>>>
>>>
>>> Now unplug USB device:
>>>
>>> JackALSARawMidiPort::GetIOPollEvents - the file descriptor is invalid.
>>> JackALSARawMidiDriver::Execute - a fatal error occurred while processing
>>> ALSA output events.
>>> JackALSARawMidiDriver::Execute - ALSA thread exiting.
>>> Jack: JackPosixThread::ThreadHandler : exit
>>> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>>>
>>> ...
>>> Idle
>>> ...
>>>
>>> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>>> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>>>
>>> ...
>>>
>>> Now re-plug USB device:
>>>
>>> No output, nothing changes.
>>>
>>> ...
>>>
>>>
>>> Thanks. Tim.
>>> _______________________________________________
>>> Jack-Devel mailing list
>>> [hidden email]
>>> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
>
> _______________________________________________
> Jack-Devel mailing list
> [hidden email]
> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Dan MacDonald-3
I'm also keen to see this fixed.

Any news Tim?

On Sun, Sep 28, 2014 at 5:43 PM, Stéphane Letz <[hidden email]> wrote:
Patch welcome I guess.

Stephane

Le 28 sept. 2014 à 17:32, Tim E. Real <[hidden email]> a écrit :

> On September 28, 2014 09:18:38 AM you wrote:
>> The reason is that this is probably no "dynamic plug/unplug" handing code in
>> the JackALSARawMidiDriver backend.
>>
>> Stéphane
>
> Hi thanks. Yes, poking around the code I noticed a peculiar absence of
> some registration code, compared to the other drivers.
>
> Is this code waiting to be done? Should I wait?
>
> Thanks.
> Tim.
>
>
>>
>> Le 28 sept. 2014 à 04:43, Tim E. Real <[hidden email]> a écrit :
>>> On September 27, 2014 07:47:01 PM Tim E. Real wrote:
>>>> Hi!
>>>>
>>>> When I plug in my USB midi device after starting Jack2 with alsarawmidi,
>>>> it does not register at all, as jack_lsp shows.
>>>>
>>>> But if I instead start Jack2 after the device is plugged in, ports are
>>>> there.
>>>>
>>>> But then if I unplug the device, strangely the ports do not unregister
>>>> and
>>>> I can even make connections to them in qjctl.
>>>>
>>>> Having seen the second problem first, I thought it might be a new
>>>> 'feature'
>>>> - Persistent Ports!
>>>>
>>>> But now having seen the first problem I guess not...
>>>>
>>>> What could be wrong?
>>>> Thanks. Tim.
>>>
>>> Here we go, some output:
>>>
>>>
>>> Start Jack, USB device is already plugged in:
>>>
>>> ...
>>> Not shown: Early startup stuff, we pick it up at last USB midi port...
>>> ...
>>>
>>> JackALSARawMidiDriver::Attach - output port registered
>>> (name='system:midi_playback_2', alias='system:2-1 MidiSport 2x2 2 out').
>>> Jack: JackEngine::PortRegister ref = 2 name = system:midi_playback_3 type
>>> = 8 bit raw midi flags = 21 buffer_size = 256
>>> Jack: JackGraphManager::AllocatePortAux port_index = 28 name =
>>> system:midi_playback_3 type = 8 bit raw midi
>>> Jack: JackConnectionManager::AddInputPort ref = 2 port = 28
>>> Jack: JackEngine::ClientNotify: no callback for notification = 9
>>> Jack: JackEngine::ClientNotify: no callback for notification = 9
>>> Jack: JackEngine::ClientNotify: no callback for notification = 9
>>> JackALSARawMidiDriver::Attach - output port registered
>>> (name='system:midi_playback_3', alias='system:3-1 M Audio Delta 1010LT
>>> MIDI 1 out').
>>> Jack: JackServer::Start
>>> Jack: JackThreadedDriver::Start
>>> JackALSARawMidiDriver::Start - Starting 'alsarawmidi' driver.
>>> JackALSARawMidiDriver::Start - starting ALSA thread ...
>>> Jack: JackPosixThread::StartImp : create non RT thread
>>> Jack: JackPosixThread::ThreadHandler : start
>>> Jack: JackPosixThread::AcquireRealTimeImp priority = 31
>>> JackALSARawMidiDriver::Start - started ALSA thread.
>>> Jack: JackPosixThread::StartImp : create non RT thread
>>> Jack: JackPosixThread::ThreadHandler : start
>>> Jack: JackThreadedDriver::Init real-time
>>> Jack: JackPosixThread::AcquireRealTimeImp priority = 30
>>> Jack: JackPosixThread::StartImp : create non RT thread
>>> Jack: JackPosixThread::ThreadHandler : start
>>> Jack: JackSocketServerChannel::ClientCreate socket
>>> Jack: JackSocketServerChannel::BuildPoolTable size = 2
>>> Jack: JackSocketServerChannel::BuildPoolTable fSocketTable i = 1 fd = 29
>>> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>>> Jack: JackRequest::Notification
>>> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
>>> notify = 18
>>> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
>>> notify = 18
>>> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
>>> notify = 18
>>> Jack: JackDriver::ClientNotify ref = 1 driver = freewheel name = freewheel
>>> notify = 18
>>> Jack: JackEngine::ClientNotify: no callback for notification = 4
>>> Jack: JackEngine::ClientNotify: no callback for notification = 4
>>> Jack: JackEngine::ClientNotify: no callback for notification = 4
>>>
>>> ...
>>> Idle
>>> ...
>>>
>>>
>>> Now unplug USB device:
>>>
>>> JackALSARawMidiPort::GetIOPollEvents - the file descriptor is invalid.
>>> JackALSARawMidiDriver::Execute - a fatal error occurred while processing
>>> ALSA output events.
>>> JackALSARawMidiDriver::Execute - ALSA thread exiting.
>>> Jack: JackPosixThread::ThreadHandler : exit
>>> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>>>
>>> ...
>>> Idle
>>> ...
>>>
>>> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>>> Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 29
>>>
>>> ...
>>>
>>> Now re-plug USB device:
>>>
>>> No output, nothing changes.
>>>
>>> ...
>>>
>>>
>>> Thanks. Tim.
>>> _______________________________________________
>>> Jack-Devel mailing list
>>> [hidden email]
>>> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
>
> _______________________________________________
> Jack-Devel mailing list
> [hidden email]
> http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Devin Anderson-2
In reply to this post by Tim-2
Hi Tim,

On Sat, Sep 27, 2014 at 4:47 PM, Tim E. Real <[hidden email]> wrote:

> When I plug in my USB midi device after starting Jack2 with alsarawmidi,
>  it does not register at all, as jack_lsp shows.

That's because the driver doesn't detect new devices.  It looks at the
devices that are connected when you start JACK, and assumes that those
are the devices that will be used.  I took this approach when I wrote
the driver because, at the time (it may still be this way), there
wasn't an elegant way to detect new devices using ALSA's rawmidi
interface.  I believe the ALSA sequencer interface has an event
mechanism for new devices; the rawmidi interface, in contrast, has no
such mechanism.

> But then if I unplug the device, strangely the ports do not unregister and
> I can even make connections to them in qjctl.

I'm not surprised that the ports don't disappear, but I am surprised
that there isn't a bunch of (poll-related) error messages that flood
your JACK console.

I'm happy to help brainstorm on ideas about how to best solve the
problem.  I can't guarantee that I'll find time to actually fix the
problem if and when a reasonable solution pops up.

Thanks,

--
Devin Anderson
surfacepatterns (at) gmail (dot) com

blog - http://surfacepatterns.blogspot.com/
midisnoop - http://midisnoop.googlecode.com/
psinsights - http://psinsights.googlecode.com/
synthclone - http://synthclone.googlecode.com/
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
On October 2, 2014 12:27:28 PM Devin Anderson wrote:

> Hi Tim,
>
> On Sat, Sep 27, 2014 at 4:47 PM, Tim E. Real <[hidden email]> wrote:
> > When I plug in my USB midi device after starting Jack2 with alsarawmidi,
> >
> >  it does not register at all, as jack_lsp shows.
>
> That's because the driver doesn't detect new devices.  It looks at the
> devices that are connected when you start JACK, and assumes that those
> are the devices that will be used.  I took this approach when I wrote
> the driver because, at the time (it may still be this way), there
> wasn't an elegant way to detect new devices using ALSA's rawmidi
> interface.  I believe the ALSA sequencer interface has an event
> mechanism for new devices; the rawmidi interface, in contrast, has no
> such mechanism.
>
> > But then if I unplug the device, strangely the ports do not unregister and
> > I can even make connections to them in qjctl.
>
> I'm not surprised that the ports don't disappear, but I am surprised
> that there isn't a bunch of (poll-related) error messages that flood
> your JACK console.
>
> I'm happy to help brainstorm on ideas about how to best solve the
> problem.  I can't guarantee that I'll find time to actually fix the
> problem if and when a reasonable solution pops up.
>
> Thanks,


Greetings Devin! Thanks for replying.

As Dan mentions, we are keen to finish this driver because it,
 along with the corresponding alsamidi Jack1 driver, is being touted
 as the replacement for the raw and seq drivers.

(Sadly the a2jmidid project doesn't compile any more because of the
 infamous compiler library linking ordering switcheroo which
 happened a few years ago - libraries must now come at the end.
There is a recent August bug report filed there. Hope Nedko sees it.)

Devin, the old raw driver seems to detect and remove devices just fine.
Is there something that would not be right, some ugliness, in using that
 existing code?

I looked at the code in the old raw driver and this newer one.
I /think/ I might be able to try it, no stranger to alsa here, but the two
 code bases are quite different, I'm not sure where to 'put' any new stuff.

Thanks.
Tim.

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Devin Anderson-2
On Thu, Oct 2, 2014 at 3:56 PM, Tim E. Real <[hidden email]> wrote:

> As Dan mentions, we are keen to finish this driver because it,
> along with the corresponding alsamidi Jack1 driver, is being touted
> as the replacement for the raw and seq drivers.

Corresponding?  I thought JACK 1's 'alsamidi' driver was based on
Nedko's work.  Is there a port of 'alsarawmidi' to JACK 1?  I think I
heard at some point that this might be done, but I haven't heard
anything beyond that.

> Devin, the old raw driver seems to detect and remove devices just fine.
> Is there something that would not be right, some ugliness, in using that
> existing code?

One of the reasons I didn't port over that code is because it was a
hacked up way of trying to do what the ALSA seq MIDI driver did.  I
was hoping to find a more elegant solution.  If there *really* isn't a
better solution, then I suppose it's okay, but it should really be
documented as being hacked-up code that should be replaced if and when
a more elegant solution is available.

I wonder if it's possible to use the ALSA seq notification solution to
trigger a device refresh in the 'alsarawmidi' driver.  The idea also
feels hacky, but at least there wouldn't be a thread endlessly polling
for new devices every two seconds.

> I looked at the code in the old raw driver and this newer one.
> I /think/ I might be able to try it, no stranger to alsa here, but the two
> code bases are quite different, I'm not sure where to 'put' any new stuff.

The complex part, I think, is going to be interfacing with the poll
thread and the JACK thread.  You need to push a new set of file
descriptors to the poll loop each time a device is added or removed
without interrupting the poll loop for too long, and you need to
attach new ports that JACK knows about.

I haven't looked at the code in a while, but I'd either create a new
class to handle device polling, or put the code in the main driver
class, depending upon how much the code needed to know about the
private data in the main device class, and how much would need to be
added to the main driver class' public interface to make things work
with a separate class.  Maybe I'd revamp the whole thing.  IDK.

I'll try to refamiliarize myself with the code at some point in the
near future so that I can help out to whatever extent I'm able, given
the amount of free time I have.

Thanks,

--
Devin Anderson
surfacepatterns (at) gmail (dot) com

blog - http://surfacepatterns.blogspot.com/
midisnoop - http://midisnoop.googlecode.com/
psinsights - http://psinsights.googlecode.com/
synthclone - http://synthclone.googlecode.com/
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Chris Caudle
On Thu, October 2, 2014 7:27 pm, Devin Anderson wrote:
> Corresponding?  I thought JACK 1's 'alsamidi' driver was based on
> Nedko's work.

I thought Paul said the new jack1 driver just needed to be ported to jack2
as an internal client.  I wasn't paying close attention, but I thought he
said something about it already being in git, someone just needed to
integrate to jack2.   I probably missed a lot of necessary details that go
along with that since I wasn't paying attention, but seems like that would
be the place to start rather than trying to band-aid the old hacks.

--
Chris Caudle





_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
On October 2, 2014 08:56:50 PM you wrote:
> On Thu, October 2, 2014 7:27 pm, Devin Anderson wrote:

> > Corresponding?  

Er, I meant close cousin...?

> > I thought JACK 1's 'alsamidi' driver was based on
> > Nedko's work.

I think so. I think Paul said nearly identical.

> I thought Paul said the new jack1 driver just needed to be ported to jack2
> as an internal client.  I wasn't paying close attention, but I thought he
> said something about it already being in git, someone just needed to
> integrate to jack2.   I probably missed a lot of necessary details that go
> along with that since I wasn't paying attention, but seems like that would
> be the place to start rather than trying to band-aid the old hacks.

Awesome! My mistake if so. I probably read that too.

Tim.


_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
In reply to this post by Tim-2
On October 2, 2014 06:56:25 PM Tim E. Real wrote:
> Sadly the a2jmidid project doesn't compile any more because of the
>  infamous compiler library linking ordering

Er, I think. That is after researching and experience, but no proof yet.
Instead libpthread could simply be missing from linker lines.

I tried modifying the waf script, ng but I should study waf more.
I tried dropping in a newer waf program (the one from Jack)
 but I guess those things are customized, and compressed python?
Can't seem to find an actual makefile.

And how does my distro deal with this each distro release, if I can't?
If libpthread is simply missing from linker lines, maybe an environmental flag.

Tim.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
In reply to this post by Tim-2
[Oops, to the list not just Devin:]

On October 2, 2014 08:56:50 PM Chris Caudle  wrote:
> I thought Paul said the new jack1 driver just needed to be ported to jack2
> as an internal client.  I wasn't paying close attention, but I thought he
> said something about it already being in git, someone just needed to
> integrate to jack2.   I probably missed a lot of necessary details that go
> along with that since I wasn't paying attention, but seems like that would
> be the place to start rather than trying to band-aid the old hacks.

D'oh! Just a few days ago. And I read it.
From the current discussion in LAD  "Bridging alsa and jack midi":

Paul Davis wrote:
> the actual implementation is nothing to do with the old -X seq
> code, and is actually a2jmidid converted into an internal client.
> Note that JACK2 could use this client too - its source code is
> even in the theoretically "shared" git repo for JACK tools.

Sorry about that.
Came upon this problem in a haphazard way, was too focused on it.
Great stuff! Thanks.

No really, this is so ironic.

Weeks ago someone made a simple request for an option in MusE.

I began to add it, then realized MusE has been missing something a long time:
Persistent ports.
That is, unplug and re-plug a device and we automatically reconnect to it.
I cache the port names and use them to match up with the re-appearing ports.

But that's when I began investigating how Jack drivers name their ports.
There's trouble.

Side note:
Please please, don't add numbers in the port names, like alsa addresses.
And please don't ever use an auto-incrementing numbering scheme
 like in the alsa raw and seq drivers.
Each time the device is re-plugged, it gets a new name!
Canonical schemes are fine but this cannot be satisfied for alsa midi.
Actually because of that, I think canonical scheme needs to be abandoned.
Look at it this way: You're going to have to do something about port names
 if you deprecate aliases in favour of the metadata because it would make
 no sense having some drivers use canonical names and others full names
 already similar to the metadata.
The most sensible names I saw so far were the two aliases for the seq driver.
If a user sees two identical port names due to identical cards, it is up to
 them to fix the problem at the source - using udev device re-naming which
 I just learned about.

So anyway, I looked at the drivers and bridges out there.
At the same time I followed the LAD thread on "Bridging alsa and jack midi".
Where Paul talked about the new alsamidi driver, and metadata.
Ironically it's that thread which led me to try the alsarawmidi driver,
 being a Jack2 user.

So I fired up alsarawmidi and what did I see? As I said in my first post:

>But then if I unplug the device, strangely the ports do not unregister and
> I can even make connections to them in qjctl.
>
> ... I thought it might be a new 'feature' -
> Persistent Ports!

See the irony? "Wow, Jack added my Persistent Ports idea!"

Also ironic that persistent ports are discussed briefly on the Jack site.
It says very few clients do this kind of thing. I think port naming is why.
It mentions session managers. Should a session manager deal with this
 reconnect stuff? If so, why - everything I need is in normal Jack itself, no?
And not even a session manager could deal with bad port naming/reordering.

Anyway I feel better now knowing more about metadata :-)

I think drivers should fill in 'hardware' and maybe 'pretty name' with
 default values. And as above, if numbers such as midi indexing are
 desired they should be made separate properties since they might
 change day to day.

Question: Some metadata such as the 'hardware' property might be
 crucial and should not change.
How about adding a read-only 'lock' to metadata?

As usual I'm either waaay off or just off.
Thanks for listening, thanks for your help. Good weekend to all.
Tim.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Paul Davis


On Fri, Oct 3, 2014 at 1:10 AM, Tim E. Real <[hidden email]> wrote:

I think drivers should fill in 'hardware' and maybe 'pretty name' with
 default values. And as above, if numbers such as midi indexing are
 desired they should be made separate properties since they might
 change day to day.

"pretty name" could only be meaningfully set by a backend that can talk to some layer that knows that (eg.) channel 26 of an RME HDSP device is "S/PDIF R". ALSA does not provide this information, CoreAudio does. Thus if you want this functionality on Linux, it isn't available.

I set my HDSP channel names with this script:

--------------

#!/bin/sh

#
# set up nice names for all the ports
#

for n in `seq 1 24` ; do       
    jack_property -p -s system:playback_$n http://jackaudio.org/metadata/pretty-name "ADAT $n"
    jack_property -p -s system:capture_$n http://jackaudio.org/metadata/pretty-name "ADAT $n"
done
jack_property -p -s system:playback_25 http://jackaudio.org/metadata/pretty-name "S/PDIF L"
jack_property -p -s system:capture_25 http://jackaudio.org/metadata/pretty-name "S/PDIF L"
jack_property -p -s system:playback_26 http://jackaudio.org/metadata/pretty-name "S/PDIF R"
jack_property -p -s system:capture_26 http://jackaudio.org/metadata/pretty-name "S/PDIF R"

# and now the driver itself

jack_property -c -s system http://jackaudio.org/metadata/pretty-name "RME HDSP"

exit 0

-------------------------

The "hardware" property is something I don't remember very well, but with the memory I have of it, it suffers from the same problem: on Linux the device driver cannot/does not provide the information required to set it.
 

Question: Some metadata such as the 'hardware' property might be
 crucial and should not change.

No metadata/properties should be considered "crucial".
 

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Chris Caudle
On Fri, October 3, 2014 8:50 am, Paul Davis wrote:
> jack_property

I don't find that on my Fedora 20 system.  Is that one of those new
features which has not been implemented in JACK2 yet?

--
Chris Caudle




_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Paul Davis


On Fri, Oct 3, 2014 at 3:07 PM, Chris Caudle <[hidden email]> wrote:
On Fri, October 3, 2014 8:50 am, Paul Davis wrote:
> jack_property

I don't find that on my Fedora 20 system.  Is that one of those new
features which has not been implemented in JACK2 yet?

absolutely. i clearly documented that the new metadata API was implemented in Jack1, and not Jack2. someone (falktx?) has done some work on a version of Jack2 but it is not part of the Jack2 codebase AFAIK.
 

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
On October 3, 2014 03:59:50 PM Paul Davis wrote:

> On Fri, Oct 3, 2014 at 3:07 PM, Chris Caudle <[hidden email]> wrote:
> > On Fri, October 3, 2014 8:50 am, Paul Davis wrote:
> > > jack_property
> >
> > I don't find that on my Fedora 20 system.  Is that one of those new
> > features which has not been implemented in JACK2 yet?
>
> absolutely. i clearly documented that the new metadata API was implemented
> in Jack1, and not Jack2. someone (falktx?) has done some work on a version
> of Jack2 but it is not part of the Jack2 codebase AFAIK.

Actually metadata is in Jack2 now as I can see, but haven't tried it yet.
I built it from source and metadata API is there - yet no jack_property
 program is installed.

Tim.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Paul Davis


On Fri, Oct 3, 2014 at 7:15 PM, Tim E. Real <[hidden email]> wrote:
On October 3, 2014 03:59:50 PM Paul Davis wrote:
> On Fri, Oct 3, 2014 at 3:07 PM, Chris Caudle <[hidden email]> wrote:
> > On Fri, October 3, 2014 8:50 am, Paul Davis wrote:
> > > jack_property
> >
> > I don't find that on my Fedora 20 system.  Is that one of those new
> > features which has not been implemented in JACK2 yet?
>
> absolutely. i clearly documented that the new metadata API was implemented
> in Jack1, and not Jack2. someone (falktx?) has done some work on a version
> of Jack2 but it is not part of the Jack2 codebase AFAIK.

Actually metadata is in Jack2 now as I can see, but haven't tried it yet.
I built it from source and metadata API is there - yet no jack_property
 program is installed.

jack_property is part of the jack-tools repository which as i've mentioned before was intended to be shared by all implementations of the JACK API.

the source code should just build given a suitable version of JACK, except of course that the build system may not appreciate its new surroundings.
 

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Tim-2
On October 3, 2014 07:23:11 PM you wrote:

> On Fri, Oct 3, 2014 at 7:15 PM, Tim E. Real <[hidden email]> wrote:
> > On October 3, 2014 03:59:50 PM Paul Davis wrote:
> > > On Fri, Oct 3, 2014 at 3:07 PM, Chris Caudle <[hidden email]>
> >
> > wrote:
> > > > On Fri, October 3, 2014 8:50 am, Paul Davis wrote:
> > > > > jack_property
> > > >
> > > > I don't find that on my Fedora 20 system.  Is that one of those new
> > > > features which has not been implemented in JACK2 yet?
> > >
> > > absolutely. i clearly documented that the new metadata API was
> >
> > implemented
> >
> > > in Jack1, and not Jack2. someone (falktx?) has done some work on a
> >
> > version
> >
> > > of Jack2 but it is not part of the Jack2 codebase AFAIK.
> >
> > Actually metadata is in Jack2 now as I can see, but haven't tried it yet.
> > I built it from source and metadata API is there - yet no jack_property
> >
> >  program is installed.
>
> jack_property is part of the jack-tools repository which as i've mentioned
> before was intended to be shared by all implementations of the JACK API.
>
> the source code should just build given a suitable version of JACK, except
> of course that the build system may not appreciate its new surroundings.

Cool!
Thanks for your patience in these matters.
Tim.
_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org
Reply | Threaded
Open this post in threaded view
|

Re: Jack2 alsarawmidi slave: Pluggable device registration problem?

Stéphane Letz
In reply to this post by Tim-2

Le 4 oct. 2014 à 01:15, Tim E. Real <[hidden email]> a écrit :

> On October 3, 2014 03:59:50 PM Paul Davis wrote:
>> On Fri, Oct 3, 2014 at 3:07 PM, Chris Caudle <[hidden email]> wrote:
>>> On Fri, October 3, 2014 8:50 am, Paul Davis wrote:
>>>> jack_property
>>>
>>> I don't find that on my Fedora 20 system.  Is that one of those new
>>> features which has not been implemented in JACK2 yet?
>>
>> absolutely. i clearly documented that the new metadata API was implemented
>> in Jack1, and not Jack2. someone (falktx?) has done some work on a version
>> of Jack2 but it is not part of the Jack2 codebase AFAIK.
>
> Actually metadata is in Jack2 now as I can see, but haven't tried it yet.
> I built it from source and metadata API is there - yet no jack_property
> program is installed.
>
> Tim.

The meta dat API is in jack2 but the implementation is empty.

Stéphane

_______________________________________________
Jack-Devel mailing list
[hidden email]
http://lists.jackaudio.org/listinfo.cgi/jack-devel-jackaudio.org