dsacre / mididings

A MIDI router/processor based on Python
http://das.nasophon.de/mididings/
GNU General Public License v2.0
120 stars 40 forks source link

Request for community contributors #43

Open grawlinson opened 1 year ago

grawlinson commented 1 year ago

I've created another fork of the project with patches from various forks, so that there's really just one community-maintained fork.

https://github.com/mididings/mididings

I'll provide repository access to any contributors that maintain their own fork, so feel free to come on over. :)

grawlinson commented 1 year ago

Forgot to add, I maintain the mididings AUR package, and am an Arch Linux package maintainer with a vested interest in ensuring this project continues.

stefets commented 1 year ago

At last! This is very good news and I had been hoping for this for years, this software should not die under any circumstances.

I want to contribute as best I can. First, I'm a musician and a programmer but I don't know the C language, I would like to be able to open the project in an IDE if I had details of the necessary configuration.

I've been a mididings superuser for 5 years on a daily basis; I have an important project which exploits the engine in stefets/live-config; I created and maintain a HTML5 interface to control mididings in stefets/flaskdings; I also support users on the mididings Google group (you should make an announcement in the group).

I have a fork in stefets/mididings but I will get rid of it and follow yours.

Today I successfully compiled and installed your version in 2 virtual environments Python 3.10 and Python 3.11.1

Everything works fine with Python 3.10 but, FYI, there is a problem with Python 3.11.1 and Boost; when I run mididings the following error occurs:

Activate Python 3.10

pi@rpi4:~/.venv $ . middings2-py3.10/bin/activate
(mididings2-py3.10) pi@rpi4:~/.venv $mididings --version
middings 2.0.0, using Python 3.10.3

Activate Python 3.11.1

(mididings2-py3.10) pi@rpi4:~/.venv$ . middings-3.11.1/bin/activate
(mididings-3.11.1) pi@rpi4:~/.venv $ mididings --version
Traceback (most recent call last):
   File "/home/pi/.venv/mididings-3.11.1/bin/mididings", line 20, in <module>
     import middings
   File "/home/pi/.venv/mididings-3.11.1/lib/python3.11/site-packages/mididings/__init__.py", line 13, in <module>
     import _middings
SystemError: type Boost.Python.enum has the Py_TPFLAGS_HAVE_GC flag but has no traverse function

Thank you for your work on the sustainability of mididings !

grawlinson commented 1 year ago

It looks like there's an issue open with boost here, and the fix requires recompilation of boost with this patch applied.

What version of boost are you using? It looks like this patch was merged in 1.81.0.

I'll get around to making an announcement in the google groups soon, thanks for your kind words. :)

stefets commented 1 year ago

I am actually using boost 1.78.0 on my Raspbian OS; I will use mididings with Python 3.10 for the moment, it's not a problem for me, but I will rebuild the latest Boost with the patch and try again in the next couple days; I trend to build mididings with the very latest libs and the latest Python for sustainability.

grawlinson commented 1 year ago

From memory, boost takes an excessive amount of time to compile, I recommend seeing if Raspbian OS has an up to date version, or open an issue with them to backport that patch?

stefets commented 1 year ago

FYI mididings works fine with Boost 1.81 and Python 3.11 and the pyliblo fixed for 3.11 (thanks again)

$ ldd ./build/lib.linux-x86_64-cpython-311/_mididings.cpython-311-x86_64-linux-gnu.so libboost_python311.so.1.81.0 => /usr/lib/x86_64-linux-gnu/libboost_python311.so.1.81.0 (0x00007fa035a3d000) libboost_thread.so.1.81.0 => /usr/lib/libboost_thread.so.1.81.0 (0x00007fa035825000)

Boost is fast to compile by specifing --with-libraries=python --with-libraries=thread; it will not compile the other libs