Proposal for a module: mididings

It would be great, if ‘mididings’ could be installed as a module on Patchbox. Mididings is a pythonic MIDI-processor enviroment. The Kernel is C/C++ but configuration is done as a Python scripts. Connection to OSC is also given.
I use mididings on a headless raspberry pi as USB-host and MIDI data center in a setup of several keyboards and synths. It starts, when the raspberry power is plugged in and distributes/filters MIDI channels, convertes CC messages to other CCs or NRPN and sends a clock from master keyboard to slave synths. Mididings has a scene concept, so you can switch different configurations on the fly. In addition there are some functions to manipulate MIDI data for transposing, harmonization, sysex etc. Doing this very efficient, without noticeable latency or jitter.
I think mididings fits perfect into the patchbox/pisound concept, for users who lean towards scripting and programming with MIDI-data.

Why make a module?
I am a linux-noob (aka Windows-user) and struggled a lot to make mididings run. But there is nothing similar lean and power full out there in the public domain. It was developed under Python 2 and there is a debian package available for that version. Transition to Python 3 is possible, but it was a bumpy road for me, because I am not familiar with linux to identify all dependencies and the recent versions of the necessary packages for apt and pip.I did a lot of trial and error, and I am shure now there is more in the raspi memory than necessary. There is a small community still supporting the project, however the original author does no longer merge pull requests into the github repository. (No criticism from my side, this just the fate of so many non-commercial open source projects)
May be as a patchbox module this nice software would gain some more interest and support.

Some relevant links
http://das.nasophon.de/mididings/
https://github.com/dsacre/mididings, The original repository
https://github.com/markk/mididings, A maintained fork which solved some incompatibilities with python 3.7

Sorry for the long post.

Nevertheless, thank you for all the effort you do with the pisound hardware and patchbox OS. I enjoy playing with it very much, still exploring all the possibilities.

Best regards,
Roman

5 Likes

Thank you for suggesting this, it sounds like it would be a great addition to the modules. :slight_smile:

We have documented the Patchbox modules here: https://blokas.io/patchbox-os/docs/Modules/.

Now the most important step would be to figure out how to get this properly installed on a fresh Patchbox OS system, basically an install script.

Could you or someone who also used mididings help in writing the install script? We can then try and help simplify it and integrate as a module.

Btw, most of the pip3 packages are also available as some python3-... apt package, if possible, apt should be preferred, as it’s a bit easier to manage.

I take that as challenge. The hint to python3-… apt packages was very helpfull. I didn’t think of that. Manual install on a virgin Patchbox OS does already work.

1 Like

I spend some time on the mididings topic. Unfortunately it is no longer actively maintained by the originator, who did a great job. I found a fork, which has fixed some newer issues. I adapted the scripts to run in Python3 and made a new install.sh to install mididings and its dependencies on a virgin raspberry. Finally I have put all my stuff on Github now. DISCLAIMER: I am not an Linux or Python expert. I just tried to NOT screw things up and make it work.

https://github.com/rodisch/mididings

In a second repository I have compiled some patches of my setup, including a key to drum-sample mapper for the Novation Circuit and a CC to NRPN patch for my old Roland gear.

https://github.com/rodisch/mididings-mypatches

I hope this helps some noobs like me to set things up and have a really great MIDI tool.

Regards,
RoDi

2 Likes