Git Product home page Git Product logo

Comments (8)

SpotlightKid avatar SpotlightKid commented on August 19, 2024

It seems that your version of the jack library does not have jack_port_rename. This was added to jack1 in 2016 and to jack2 in summer 2017 at the latest. Let me know, if for some reason you can't update to a more current version of jack and I'll think about a way to make setting the JACK_HAS_PORT_RENAME directive for the compiler configurable.

from python-rtmidi.

adarob avatar adarob commented on August 19, 2024

We're just running sudo apt-get libjack-dev (https://github.com/tensorflow/magenta/blob/master/.travis.yml). Should we be installing it some other way to get a newer version?

from python-rtmidi.

SpotlightKid avatar SpotlightKid commented on August 19, 2024

The Travis build environment is based on Ubuntu 14.04 (Trusty) or 16.04 (Xenial) apparently. Unfortunately, even in the latter, the version of libjack-dev (jack1) is only 0.124.1, which is ancient, and libjack-jackd2-dev (jack2) is version 1.9.10, which is also too old (1.9.11+ should work). :-(

This is unfortunate, since these distributions are probably still widely used and I don't know a simple way to update the jack version on these distros. I'll think about a way to detect the jack version in the python-rtmidi's setup.py and set JACK_HAS_PORT_RENAME accordingly.

Until then, I can only suggest to either a) install jack from source (which isn't too complicated) or b) disable jack support in python-rtmidi (by installing it separately from source and passing --no-jack to python setup.py install.)

from python-rtmidi.

SpotlightKid avatar SpotlightKid commented on August 19, 2024

Tentative fix in e4a4f33.

I still want to set up a Travis environment for Linux builds too before I do a bugfix release.

from python-rtmidi.

adarob avatar adarob commented on August 19, 2024

Thanks!

from python-rtmidi.

SpotlightKid avatar SpotlightKid commented on August 19, 2024

I just released version 1.2.1, which contains the above mentioned fix.

With this release I also enhanced python-rtmidi's own Travis setup to also test the build under Linux (Ubuntu Xenial) for Python 2.7 and 3.4 - 3.5.

Interestingly, when you use the dist: xenial build environment on Travis and when you install libjack-jack2-dev, the deb that gets installed has the version 1.9.10+20150825git1ed50c92~dfsg-1ubuntu1 but JACK identifies itself as version 1.9.11 via pkg-config and it compiles ok with JACK_HAS_PORT_RENAME set. If you install libjack-dev instead, you get JACK 1 version 0.124.x, which triggered the error you were encountering. But with the above mentioned fix, python-rtmidi can be built with either one.

from python-rtmidi.

adarob avatar adarob commented on August 19, 2024

from python-rtmidi.

SpotlightKid avatar SpotlightKid commented on August 19, 2024

It's not strictly necessary, since the new set_port_name method will now work with jack library versions, which do not have the jack_port_rename function as well. But I know from personal conversations with the jack maintainer (falkTX) that jack1 will not be developed any further any more, so jack2 is the way to go, unless you're using features that are still only available in jack1.

Also, the Travis builds for Linux I have set up now are using libjack-jackd2-dev, so this build variant is the one tested.

from python-rtmidi.

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.