Giter Site home page Giter Site logo

Comments (11)

HaHeho avatar HaHeho commented on July 20, 2024 1

For reference, here's a link to the question: http://lists.jackaudio.org/pipermail/jack-devel-jackaudio.org/2019-August/002133.html (it may only work if you are subscribed to the list).

BTW, this is the link to the archived thread on the Jackaudio mailing list (since this version of the list is offline now).
https://lists.linuxaudio.org/archives/jackaudio/2019-August/002133.html

from jackclient-python.

mgeier avatar mgeier commented on July 20, 2024

I don't know if there is a limit on the number of clients, but there is definitely a limit on the number of ports. By default that's 256, and you can increase it when starting jackd with the --port-max option (or with qjackctl).

from jackclient-python.

HaHeho avatar HaHeho commented on July 20, 2024

That could actually be what is limiting there. Since I'm generating clients with 2 in- and 2 output ports, which corresponds to getting close to 256. Thank you, I will investigate if starting JACK with the different configuration will fix it for me. To be continued...

from jackclient-python.

mgeier avatar mgeier commented on July 20, 2024

@HaHeho Any news on this?

from jackclient-python.

HaHeho avatar HaHeho commented on July 20, 2024

Here are some observations of my tests:

jackd --port-max 64 -d coreaudio
not able to create more then 14 clients

jackd --port-max 256 -d coreaudio
not able to create more then 62 clients

jackd --port-max 2048 -d coreaudio
not able to create more then 62 clients

Please consider that the number of JACK clients I'm referencing there are spawned by my benchmarking procedure (2 in and 2 out ports each). Additionally there should not be any other clients or ports active, except for the system recording and system playback ports (2 each). So at this point the JACK server seems to signal the reached limit.

For 64 and 256 (should be default) that limit matches the port limitation theory quite well (15*4=60 + 4 system ports). Sadly for 2048 (tried 512 as well of course) I don't experience the expected up-scaling. Maybe there is another limit?

from jackclient-python.

mgeier avatar mgeier commented on July 20, 2024

Hmmm, there indeed seems to be another limit ...

You should probably ask the JACK mailing list: http://jackaudio.org/community.html

from jackclient-python.

HaHeho avatar HaHeho commented on July 20, 2024

I have encountered the number limitation number of JACK ports in another instance. I have just posted the topic on the JACK-DEVEL mailing list. Lest hope for some insight. :)

BUT, I am not 100% sure that port number is necessarily what also leads to the observed limitation that started this topic. They fail for different reasons as reported by the server, being No more refnum available\nCannot create new client for the client number, and Maximum number of output ports is reached for application ref = 2 in case of the port number.

With the help of jackd --port-max 2048 I was able to raise the port limitation to around 800 (not sure how or why exactly, see mailing list). BUT , this does not result in more than 62 JACK clients that I could instantiate. Again, speaking against the port limitation being an explanation for my initial question.

from jackclient-python.

mgeier avatar mgeier commented on July 20, 2024

For reference, here's a link to the question: http://lists.jackaudio.org/pipermail/jack-devel-jackaudio.org/2019-August/002133.html (it may only work if you are subscribed to the list).

There's already an answer which mentions the constants in https://github.com/jackaudio/jack2/blob/develop/common/JackConstants.h

from jackclient-python.

HaHeho avatar HaHeho commented on July 20, 2024

Yes correct, thanks. Now that I have taken a look again, I noticed #define PORT_NUM_FOR_CLIENT 768 which is actually raising the limitation in my latest test case. I mentioned something around 800, since 768 seemed arbitrary.

Looking at the file most of the numbers still seem arbitrary, but at least there is a known source for the limitations. I will ask what the consequences of raising the limits might be and will try to recompile. But on OSX or potentially Windows, it seems like a not very pleasant adventure at the moment. :/

Sadly, even if I manage, I will not really be able to utilize these changes in my application. I can hardly rely on users having to build JACK themselves to utilize functionality. (Even though these limits only kick in in pretty specific use cases my pipeline, so everything else works fine from pre-build binaries.)

from jackclient-python.

mgeier avatar mgeier commented on July 20, 2024

It might be easier to somehow change your benchmarking system to utilize fewer JACK clients?

Either way, I guess this issue can be closed because there is nothing we can do on the Python side, right?

from jackclient-python.

HaHeho avatar HaHeho commented on July 20, 2024

Correct. As mentioned before, the only way this can be circumvented is by building a modified JACK version yourselves. Anyhow, this is a very specific use case and the limit of ports is not going to be a problem any time soon in realistic use cases.

from jackclient-python.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.