Highlighted
Contributor - Level 2

MOXAir for Mac (MIDI to OSC X-Air Bridge)

MIDI+OSC+X-Air = MOXAir

MOXAir for Mac is up and running translating incoming MIDI to OSC and passing them on to your X-Air. When it gets data back from the X-Air, it reverse maps those commands back to MIDI and updates the controller.

This is the configuration for my X-Touch Mini:



It's super simple. You give it an INI-style configuration and start the bridge. It does the rest. I'm trying to make MOXAir dumb enough to stay out of the way. Everything should be done in the config file.

You need to move the AUX to a different encoder? Easy:

[LIST=1]
  • Change the config file.
  • Stop the bridge.
  • Start the bridge.


    So far I've only implemented layers (unlimited layers), channel selects, faders, and mutes, because I was on a time crunch and needed it running for a show earlier this evening.

    Like layers, channel selects are internal to MOXAir, but they allow you to do EQ and everything channel specific. First, you set up a bank of buttons to do channel selection:

    c88=selectChannel,01
    c89=selectChannel,02
    c90=selectChannel,03
    etc....

    Then maybe you set up encoders to control EQ for the selected channel:
    c33=/ch//eq/1/f
    c34=/ch//eq/1/g
    c35=/ch//eq/1/q
    c33=/ch//eq/2/f
    c34=/ch//eq/3/g
    c35=/ch//eq/4/q
    etc...

    Many thanks to all the hard work of others who have made it easier, especially Dave Meadowcroft, Patrick-Gilles Maillot, Ken Mitchell, Paul Vannatto, plus many others I'm sure.

    If there's interest, I'll post an ALPHA when I iron a few more things out.
  • BenVigil Contributor - Level 2 2017-05-16

    2017-05-16

    MOXAir for Mac (MIDI to OSC X-Air Bridge)

    MIDI+OSC+X-Air = MOXAir

    MOXAir for Mac is up and running translating incoming MIDI to OSC and passing them on to your X-Air. When it gets data back from the X-Air, it reverse maps those commands back to MIDI and updates the controller.

    This is the configuration for my X-Touch Mini:



    It's super simple. You give it an INI-style configuration and start the bridge. It does the rest. I'm trying to make MOXAir dumb enough to stay out of the way. Everything should be done in the config file.

    You need to move the AUX to a different encoder? Easy:

    [LIST=1]

  • Change the config file.
  • Stop the bridge.
  • Start the bridge.


    So far I've only implemented layers (unlimited layers), channel selects, faders, and mutes, because I was on a time crunch and needed it running for a show earlier this evening.

    Like layers, channel selects are internal to MOXAir, but they allow you to do EQ and everything channel specific. First, you set up a bank of buttons to do channel selection:

    c88=selectChannel,01
    c89=selectChannel,02
    c90=selectChannel,03
    etc....

    Then maybe you set up encoders to control EQ for the selected channel:
    c33=/ch//eq/1/f
    c34=/ch//eq/1/g
    c35=/ch//eq/1/q
    c33=/ch//eq/2/f
    c34=/ch//eq/3/g
    c35=/ch//eq/4/q
    etc...

    Many thanks to all the hard work of others who have made it easier, especially Dave Meadowcroft, Patrick-Gilles Maillot, Ken Mitchell, Paul Vannatto, plus many others I'm sure.

    If there's interest, I'll post an ALPHA when I iron a few more things out.
    • 0 Kudos
    • 12 Replies
    • Reply
    Volunteer Moderator

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Congratulations Ben. Glad to see you have a running prototype. I would imagine you be seeing a lot of interest in your app.

    I've been fighting the portmidi library (for Lazarus) to the point I'm about to give up on it. But I may have a solution for Windows soon (with a much simpler library).
    Paul Vannatto, Volunteer Forum Administrator and Moderator
    Super Contributor - Level 1

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Ben,

    Looks cool; Always welcome new apps!

    Do you plan for a Windows version too?

    -Patrick
    Contributor - Level 2

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Patrick-Gilles Maillot;123838 wrote:
    Ben,

    Looks cool; Always welcome new apps!

    Do you plan for a Windows version too?

    -Patrick

    Not likely. (READ: 0.00293% chance of happening)

    As with most projects, this started from a personal need with a very quick deadline. But now that the core is written, it'll be very easy to extend, and it works fantastic with the BCF/BCR-2000 and X-Touch Compact too.

    There are other things that are probably lower priority, like meters, when 99% of MIDI controllers have no metering capability and since this runs attached to a Mac, you have metering already. But ya never know...
    Contributor - Level 2

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Paul Vannatto;123824 wrote:
    Congratulations Ben. Glad to see you have a running prototype. I would imagine you be seeing a lot of interest in your app.

    I've been fighting the portmidi library (for Lazarus) to the point I'm about to give up on it. But I may have a solution for Windows soon (with a much simpler library).

    Honestly, most of my time was spent finding an OSC library that did what I wanted. I tried FIVE different libraries/frameworks!!
    Super Contributor - Level 1

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Ben Vigil;123846 wrote:
    Honestly, most of my time was spent finding an OSC library that did what I wanted. I tried FIVE different libraries/frameworks!!


    @Ben: Interested to learn what you ended up using; which language?

    @Paul: Windows' MIDI implementation is not that bad and proved to be a lot easier to use than expected. Although I only tried/use the C interface with several programs I have using MIDI.
    Contributor - Level 2

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Patrick-Gilles Maillot;123848 wrote:
    @Ben: Interested to learn what you ended up using; which language?


    Objective-C using XCode.
    Valued Contributor - Level 1

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Ben,

    I just ran across your post over on the X-Touch Mini forum pointing here and I'm definitely interested in your bridge. I developed a similar bridge tool awhile back that allows non-Behringer OSC clients like TouchOSC and Lemur to talk to an XAir mixer. It's actually based off of work done by Patrick.

    https://forum.music-group.com/showthread.php?12937-XR18-with-TouchOSC-other-OSC-Clients

    Any chance you might open source your code so someone could develop a Linux and/or Windows version?

    --Ken
    If you want "Loud", then run a piece of sheet metal through a table saw. --Ivan Beaver
    Contributor - Level 2

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Patrick-Gilles Maillot;123848 wrote:
    @Paul: Windows' MIDI implementation is not that bad and proved to be a lot easier to use than expected. Although I only tried/use the C interface with several programs I have using MIDI.


    Hi Paul,

    I do it the same way as Patrick on Windows. There are libraries but it's just as easy to use the stuff built into Windows in C: https://msdn.microsoft.com/en-us/library/windows/desktop/dd757277(v=vs.85).aspx

    When programming for Windows I generally use C#, but even with that it's easy enough to PInvoke to gain access to the unmanaged functions and wrap them (with custom structs/classes) for use in .NET - Just gotta be careful to release resources as it's no longer managed for you
    Volunteer Moderator

    Re: MOXAir for Mac (MIDI to OSC X-Air Bridge)

    Dave Meadowcroft;127491 wrote:
    Hi Paul,

    I do it the same way as Patrick on Windows. There are libraries but it's just as easy to use the stuff built into Windows in C:

    Thanks Dave. Yes it does seem simpler with the built in Windows midi implementation - and there are pascal wrappers available for them. I still want to provide Live Toolbox for all OS platforms (Win, OSX, linux, RPi) as much as I can. Unfortunately I've had to put all coding aside, due to the very busy summer events schedule. Hoping to get back at it in September.

    When programming for Windows I generally use C#, but even with that it's easy enough to PInvoke to gain access to the unmanaged functions and wrap them (with custom structs/classes) for use in .NET

    I realize that serious programmers use some flavour of C. I'm just comfortable with pascal (coming from the fortran world of the early 70's).

    Just gotta be careful to release resources as it's no longer managed for you

    I do that religiously, since I hate resource leaks.
    Paul Vannatto, Volunteer Forum Administrator and Moderator