Hi list,
(Sorry this question has already been discussed but the search function in the archive of the list does not work)
Is anyone working on the problem of getting Jack up and running on MacOS again? I installed Jack with brew but I get these “could not handle external client request” errors which seems to be old problems from looking at search results and GitHub discussions - problems introduced when MacOS audio architecture was changed a while back. Is there any progress on these matters? Is someone working on it? I need Jack as it is a dependency to another library I would like to use but I realize that I might have to abandon MacOS as a platform in the process.
Kindest regards,
Stefan
Dear list.
I'm the author of one of the Python bindings for JACK:
https://jackclient-python.readthedocs.io/
I was a bit lazy when implementing a generator function that's
supposed to yield all incoming MIDI events one-by-one.
Here's the code if somebody is interested (it's using CFFI and the
_lib object is a wrapper for the JACK API):
def incoming_midi_events(self):
event = self._event
buf = _lib.jack_port_get_buffer(
self._ptr, self._client.blocksize)
for i in range(_lib.jack_midi_get_event_count(buf)):
err = _lib.jack_midi_event_get(event, buf, i)
# TODO: proper error handling if this ever happens:
assert not err, err
yield event.time, _ffi.buffer(event.buffer, event.size)
As you can see, I didn't check the return value of
jack_midi_event_get(), I just added an "assert" statement hoping that
somebody would report it if the call to jack_midi_event_get() would
ever fail.
I didn't hear anything for a long time, but recently I got a bug
report where the assertion was violated:
https://github.com/spatialaudio/jackclient-python/issues/54
This shows that jack_midi_event_get() can raise an error, even if I
check with jack_midi_get_event_count() beforehand.
My question is now: how should I react to this error?
Shall I ...
* discard the current event and continue reading further events?
* discard the current and all following events in this block?
* raise an error?
* do something else?
Can I guarantee that no incoming MIDI events get lost?
Another related question: what error code is supposed to be returned?
The documentation
(http://www.jackaudio.org/api/group__MIDIAPI.html#ga838c794bd1451bfd47edde1c…)
mentions ENODATA, but according to my bug report, ENOBUFS (-105) was
returned.
Is this a bug in JACK or an omission in the documentation?
I don't know which JACK version was used, the OS was Ubuntu 18.04 LTS 64 bits.
cheers,
Matthias
Hey Folks,
I have a problem with Jack running on my Rapi 3:
I start the server like This:
jackdmp 1.9.12
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2016 Grame.
Copyright 2016-2017 Filipe Coelho.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK server starting in realtime mode with priority 10
self-connect-mode is "Don't restrict self connect requests"
Jack: JackPosixThread::StartImp : create non RT thread
Jack: JackPosixThread::ThreadHandler : start
Jack: capture device hw:1
Jack: playback device hw:0
Jack: apparent rate = 32000
Jack: frames per period = 128
Jack: JackDriver::Open capture_driver_name = hw:1
Jack: JackDriver::Open playback_driver_name = hw:0
Jack: Check protocol client = 8 server = 8
Jack: JackEngine::ClientInternalOpen: name = system
Jack: JackEngine::AllocateRefNum ref = 0
Jack: JackPosixSemaphore::Allocate name = jack_sem.1000_default_system val
= 0
Jack: JackEngine::NotifyAddClient: name = system
Jack: JackGraphManager::SetBufferSize size = 128
Jack: JackConnectionManager::DirectConnect first: ref1 = 0 ref2 = 0
Jack: JackGraphManager::ConnectRefNum cur_index = 0 ref1 = 0 ref2 = 0
Jack: JackDriver::SetupDriverSync driver sem in flush mode
creating alsa driver ... hw:0|hw:1|128|6|32000|8|0|nomon|swmeter|-|32bit
configuring for 32000Hz, period = 128 frames (4.0 ms), buffer = 6 periods
ALSA: final selected sample format for capture: 32bit integer little-endian
ALSA: use 6 periods for capture
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: use 6 periods for playback
And after running an Hour, out of nothing, I got this error:
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: Process: graph not finished!
Jack: Process: waiting to switch delta = 3989
JackEngine::XRun: client = MHA was not finished, state = Running
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
JackAudioDriver::ProcessGraphAsyncMaster: Process error
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: **** alsa_pcm: xrun of at least -4232311.296 msecs
Jack: ALSA XRun wait_status = 0
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: **** alsa_pcm: xrun of at least -4232315.904 msecs
Jack: ALSA XRun wait_status = 0
Jack: JackSocketServerChannel::Execute : fPollTable i = 1 fd = 8
Jack: JackRequest::Notification
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackEngine::ClientNotify: no callback for notification = 3
Jack: JackExternalClient::ClientNotify ref = 2 client = MHA name = MHA
notify = 3
Jack: JackSocketServerChannel::Execute : fPollTable i = 2 fd = 9
Jack: **** alsa_pcm: xrun of at least -4232320.256 msecs
Jack: ALSA XRun wait_status = 0
.
.
.
I tried several times with different configs, bus it always crushes like
this. With 4 Periods after around 30min, with this 6 periods after an hour.
Does anyone has an idea what the reason for this behavior could be?
Thanks in advance!
Moritz
Hello.
I use jackd with some music applications and patchbay. After some time after
starting the jack cpu load (according to QJackCtl) becomes 100%, the last
sound (or silence) pins and no more sound appearrs.
I'd like to investigate this situation and to find, which jack client
application consumes CPU. Looking at the jack sourcecode I found
JackEngineProfiling hich seams makes some measuring. But I could not find
how to use this feature?
Ho can I search the distinct CPU load by each jack client application?
--
Sent from: http://jack-audio.10948.n7.nabble.com/Jackit-f3.html
That is such good news. What(low cost) hardware would this development be
used on to support the developers with testing/debugging and maybe even
development ?
* MOTU LP32 (Preferred)
* MiniDSP https://www.minidsp.com/products/network-audio/avb-dg (I think
MOTU's switch uses midDSP switch hardware)
I hope someday it will be possible to connect 4 or more 8 channel ADAT
modules (32 channels) to a PC under Ubuntu via AVB with low latency. The
only option to get this done under Windows is a Focursrite DANTE based
Rednet 3 right now because Thunderbolt is not really available there as
well. Plan to get Rednet3, but that does not solve the Linux environment
which I prefer. Would love to be able to use the Rednet 3 under Linux but
since DANTE is proprietary , so unlikely.
My two wishes:
[a] Multi (16+) channel low latency audio I/O using ADAT audio AD/DA
[b[ Bitwig supporting LV2 plugins.
With those two, the Linux Audio environment would be perfect and the world
a better place.
*(Apology for the re-sends and ignore the previous edits. Web based Gmail
is such a annoyance and un-logically structured)*
On Sun, Jul 08, 2018 at 08:35:53PM +0000, Daniel Farmer wrote:
> So funny. Jack Shit is shitty and shitty developers start telling me how much I suck because they can't take responsibility for their crappy programming "skills".
>
> If you developers were so great we'd at least have "Jack is the shit"
>
>
> But right now all we have is "Jack Shit".
>
>
> LOLOLOLOLOLOLOLOLOLOL
I guess this is an example of how Linux audio software has
become a victim of its own success.
I've been using jackd for audio work since 2005. Up until
recently the level of discussion on most of the Linux audio
mailing lists was quite high. Over the last three or four
years I've gradually unsubscribed from most of them as
they've become unusable due to adolescent behaviour like
the above.
I was hoping jack-devel wouldn't succumb like the others.
Pity.
John
Looking to output 4 discrete channels from Musescore with a USB interface
device for analog audio amplification. Can 2 USB modules with L/R each
output 4 different audio outputs?
Thanks
John