[LAU] mididings Python woes; workaround or fix?

Jonathan E. Brickman jeb at ponderworthy.com
Tue Feb 1 13:33:20 CET 2022


Thanks to Christopher Arndt, I appear to have made a functioning fork:

https://github.com/ponderworthy/mididings

I'm not positive I have the namespace altogether consistent -- some of 
the instances of 'Callable' are within a renamed collection, so I had to 
rename the rename, in two files under 'units'; but it does seem to 
work.  Wiser Python heads may want to correct the error of my ways if I 
miswrote!

Also, interestingly enough, there are apparently 37 forks of mididings 
right now :-)  I forked mine off the latest to date. Happy to see that 
community.

J.E.B.

On 1/31/22 6:39 AM, Jonathan E. Brickman wrote:
>
> Mididings may be the only JACK-api MIDI router/filter tool around; if 
> there is another I'd love to know about it.  On the other hand t was 
> working just dandy until, I think, some changes to both Python3 and 
> legacy support for Python2.  I was using its Python3 AUR adaptation 
> (mididings-git) under Manjaro, but then after package upgrades, it 
> began to fail at 'from mididings import *' (see below).  I found 
> similar failures in Ubuntu 20, and found different failures in both 
> when I tried setting up to use Python2 (which obviously we would 
> rather not be doing).  The failure is similar to a number of failures 
> reported starting with Python 3.10, so this may be related, but I was 
> not able to figure out how to apply those workarounds to the mididings 
> source, I tried several different variations, including a number of 
> the different forks in github.
>
> Thoughts, anyone?  I found Pigiron and Jamrouter and puredata, but 
> none of these appear to do JACK.  I'm using pipewire now, so I could 
> theoretically revise the whole rig around ALSA MIDI, but all of the 
> apps needing MIDI use JACK, and mididings is so elegant...
>
> J.E.B.
>
>
> |[jeb at newbnr ~]$ python Python 3.10.1 (main, Dec 18 2021, 23:53:45) 
> [GCC 11.1.0] on linux Type "help", "copyright", "credits" or "license" 
> for more information. >>> from mididings import * Traceback (most 
> recent call last): File "<stdin>", line 1, in <module> File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10- 
> linux-x86_64.egg/mididings/__init__.py", line 15, in <module> from 
> mididings.engine import run, process_file File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/engine.py", 
> line 15, in <module> import mididings.patch as _patch File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10- 
> linux-x86_64.egg/mididings/patch.py", line 15, in <module> import 
> mididings.units as _units File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/units/__init__.py", 
> line 14, in <module> from mididings.units.engine import * File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/units/engine.py", 
> line 55, in <module> def SceneSwitch(number=_constants.EVENT_PROGRAM): 
> File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/unitrepr.py", 
> line 46, in composed return arguments.accept(*constraints, **kwargs) 
> (store(f)) File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/arguments.py", 
> line 49, in __init__ self.constraints = [_make_constraint(c) for c in 
> constraints] File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/arguments.py", 
> line 49, in <listcomp> self.constraints = [_make_constraint(c) for c 
> in constraints] File 
> "/usr/lib/python3.10/site-packages/mididings-2.0.0+r26a40db-py3.10-linux-x86_64.egg/mididings/arguments.py", 
> line 160, in _make_constraint elif isinstance(c, 
> collections.Callable): AttributeError: module 'collections' has no 
> attribute 'Callable' >>>|
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.linuxaudio.org/archives/linux-audio-user/attachments/20220201/bb585c1e/attachment.html>


More information about the Linux-audio-user mailing list