Midi manipulation with mididings

All your LV2 and LADSPA goodness and more.

Moderators: MattKingUSA, khz

Post Reply
tavasti
Established Member
Posts: 2047
Joined: Tue Feb 16, 2016 6:56 am
Location: Kangasala, Finland
Has thanked: 369 times
Been thanked: 208 times
Contact:

Midi manipulation with mididings

Post by tavasti »

I did not find any thread covering all the great things that can be done with mididings, so I start such.

Mididings http://das.nasophon.de/mididings/ is great tool in case you need to do something complex mangling to midi. For example, have different states where your midi controller does different things. Sure with great flexibility comes the other side, you need to learn to program it. It has pretty good documentation, but at least I have personally hand some problems to learn to do things with it. It has also mailing list in google groups, but it is pretty dead.

So, to get this little known jewel better known, share your goodies!

Linux veteran & Novice musician

Latest track: https://www.youtube.com/watch?v=ycVrgGtrBmM

tavasti
Established Member
Posts: 2047
Joined: Tue Feb 16, 2016 6:56 am
Location: Kangasala, Finland
Has thanked: 369 times
Been thanked: 208 times
Contact:

Re: Midi manipulation with mididings

Post by tavasti »

I start with my own, midi controller 'multiplexing' script. I have cheap Worlde Tuna Mini midi controller, having 8 sliders and 8 pots (total 16 controllers). For adjusting parameters for synth which has more than 16 parameters, I wanted to have possibility to change state that those controllers map to different values. (I don't anymore remember what synth I was trying when I started learning mididings for doing this task)

I adjusted setting for my controller so that in the beginning CCs are from 14 to 29, and on second mode they will output to values 30-45. Because all values are by hand in the script, source and target values can be anything. For switching mode I use note values 113 and 117, and all note values above 110 are reserved for changing mode in mididings, so they are not forwarded. I have assigned those values to drum pad buttons in controller.

Code: Select all

from mididings import *

config(
    backend='alsa',
    client_name='multiplex',
    )

switcher = (
        (KeyFilter(117) >> SceneSwitch(2)) //
        (KeyFilter(113) >> SceneSwitch(1))
        )

scene2 = (
        (CtrlFilter(14) >> CtrlMap(14,30)) //
        (CtrlFilter(15) >> CtrlMap(15,31)) //
        (CtrlFilter(16) >> CtrlMap(16,32)) //
        (CtrlFilter(17) >> CtrlMap(17,33)) //
        (CtrlFilter(18) >> CtrlMap(18,34)) //
        (CtrlFilter(19) >> CtrlMap(19,35)) //
        (CtrlFilter(20) >> CtrlMap(20,36)) //
        (CtrlFilter(21) >> CtrlMap(21,37)) //
        (CtrlFilter(22) >> CtrlMap(22,38)) //
        (CtrlFilter(23) >> CtrlMap(23,39)) //
        (CtrlFilter(24) >> CtrlMap(24,40)) //
        (CtrlFilter(25) >> CtrlMap(25,41)) //
        (CtrlFilter(26) >> CtrlMap(26,42)) //
        (CtrlFilter(27) >> CtrlMap(27,43)) //
        (CtrlFilter(28) >> CtrlMap(28,44)) //
        (CtrlFilter(29) >> CtrlMap(29,45)) //
        ~CtrlFilter(14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29) //
        ~Filter(CTRL)
        )
run(
    scenes = {
        1: Scene("controls direct", Pass()),
        2: Scene("controls shifted", scene2)
     },
     control = Filter(NOTEON) >> switcher,
     pre = KeyFilter(upper=110)
)
For running this, just run 'mididings -f multiplex.mididings'

Linux veteran & Novice musician

Latest track: https://www.youtube.com/watch?v=ycVrgGtrBmM

User avatar
milkii
Established Member
Posts: 477
Joined: Tue Jan 05, 2016 9:08 am
Location: Edinburgh
Has thanked: 92 times
Been thanked: 91 times
Contact:

Re: Midi manipulation with mididings

Post by milkii »

https://github.com/stefets/flaskdings

"A simple and effective API and UI for MIDIDINGS"

"Goals
Websockets support
The OSC server that communicate with MIDIDINGS
A REST API layer
Provide a HTML5 frontend as an alternative to the livedings frontend
Use Websockets for near realtime refresh"

edit; fuck it, here's a dump of my mididing links

* https://github.com/dsacre/mididings/blo ... c/examples
* https://github.com/orlammd/Sebkha-Chott_Setup
* https://github.com/orlammd/PlagiatSetup
* viewtopic.php?t=14877 - Yamaha One Touch chord alike
* https://pastebin.com/T1RdAaBW mididings-midi-osc.py - Korg nanoKONTROL to Non Mixer https://forum.level1techs.com/t/kde-neo ... tup/113258
* http://leyoy.free.fr/mididings_jack_transport.py.txt
* http://www.rncbc.org/drupal/node/1787 - Novation Launchkey to Qtractor
* https://github.com/m4773rcl0ud/launchpaddings - Novation LaunchPadS
* https://github.com/Excds/seq24-launchpad-mapper

* http://trac.chrisarndt.de/code/wiki/WebDings - A web interface for controlling ​mididings, similar to the livedings gui included with mididings, but based on web technology and running in modern browsers.

* https://github.com/orzdk/midimatrix - MidiMatrix - Tool for manipulating alsa port MIDI routing on linux system with MidiDings integration

they/them ta / libreav.org / wiki.thingsandstuff.org/Audio and related pages / gh

Natelok
Established Member
Posts: 58
Joined: Fri Feb 08, 2019 7:18 pm
Location: Donnybrook Western Australia
Has thanked: 78 times
Been thanked: 14 times

Re: Midi manipulation with mididings

Post by Natelok »

Thanks for this, interesting stuff.

At the moment, I'm using x42 midifilter and x42 rbmf but this looks interesting. I dunno yet if it will simplify what I'm doing, but the scenes part of mididings might be exactly what I need. At the moment I'm using Raysession in between songs that often use exactly the same software, just different midi filters...

Anyway, thanks for sharing. Looks like I've got some reading to do!
Nate!

Music Nerd, Guitarist, Fixer of Things, DJ, currently employed by Donnybrook Balingup Community Radio (Station Manager & Drive Time DJ, Recording Engineer for a small attached studio for local artists)

DAW: Mixbus at home, Mixbus32C at work
Post Reply