‘Two Way MIDI’ module for Modul8

Screen shot 2010-11-25 at 21.20.07

What does ‘Two Way MIDI’ do?

Two Way MIDI is a module that enables Modul8 to send a midi signal back to your midi device. Two Way MIDI will keep your midi device updated with the values from Modul8 so that you avoid annoying ‘jumps’ when the current setting of your device doesn’t match the values of Modul8. Two Way MIDI is downloaded from the ‘Online Library’ menu item within the Modul8 application.

Whenever you touch a control in Modul8 or switch to another layer Two way MIDI will update your MIDI device with the current values.

Who can use this module?

This module is only relevant if you have a midi device that is designed to receive MIDI as well as send MIDI. Typically these devices will have motorized faders or 360 degree (endless) knobs with LED displays. Examples of such are Novation MIDI controllers and Behringer BCF2000.

Modul8 – introduction to the ‘Two Way Midi’ module from Udart (Vibeke Bertelsen) on Vimeo.

How do I get started with this module?

Before you start please clear your current midi map. This is not a must but it is recommended to avoid unexpected results when trying out the module. You can save your current midi map by selecting Mapping -> Import/Export -> Export MIDI map. Then remove the map by selecting Mapping -> Edit MIDI map -> Clear map. Please do this for ‘Focus’ as well as ‘Position’ and ‘Layerset + Position’ modes.

1. When you first start the module you’ll see a list called ‘MIDI Device’. Please start by selecting your MIDI device from the list. The module should now be able to communicate with your midi device.

2. Try turning a knob on your midi device. You should see some text appear at the very bottom of the module window. Eg. ‘receive: ch1 cc3 127′. This is information about the midi your device is sending to the module.

3. Now try mapping something. Click Edit, click something in the Modul8 interface. If a text appears in the ‘action’ field (e.g. ‘ctrl_layer_alpha’) you can map it to your midi device. Simply turn a knob and it is mapped.

4. Click another Modul8 control or map multiple MIDI knobs to the same Modul8 control if you wish

5. Click ‘end edit’ when you are done mapping. You should now be able to control Modul8 with your mapped knobs. Also if you change the Modul8 control the change should be reflected on the MIDI device


Will this module work with my device?

The module is currently in beta and has only been tested with the Novation Nocturn and the Behringer BCF2000 MIDI controllers. It is designed to work for all devices that are able to receive MIDI, so it needs to be tested. Please get in touch if you have tested it with other devices.

What version of Modul8 do I need to use this module?

So far this module has only been tested with Modul8 v2.6 but it may work with older versions. Please get in touch if you have tested the module with an older version of Modul8.

What MIDI values are sent for the different Modul8 controls?

0-127 for all scalers and sliders and knobs.

For layerset buttons 0-7 is sent.

For Media set pages 0-7 is sent. (8 for the ‘sp’ page)

And so on 0,1,2,3…. for all special elements like radio buttons etc.

You can see what midi values are being sent out from Modul8 by touching a Modul8 control (one that has been mapped). Look at the very bottom of the module window. A message will appear e.g. ‘send: ch2 cc34 127′. The last number is the midi value. ‘ch’ is channel and the next is ‘cc’ for control change or ‘n’ for note.

How do I set up a button on my MIDI device to select layer sets in Modul8?

Look for a setting on your MIDI device to create a ‘Step’ button. So that first time you press the button it sends 0, next tme 1 etc. with a max value of 7.

You can also set a rotary knob with a minimum of 0 and a max limit of 7.

If this is not possible with your device it is possible to use the regular Modul8 midi mapping (the Mapping menu in Modul8). See Can I use this module together with the regular MIDI mapping in Modul8′.

How do I set up a button on my MIDI device to select media sets in Modul8?

See above. Same method as when mapping layer sets.

Does this module work with all controls in Modul8?

No, there are some major limitations unfortunately. First of all ‘Two Way MIDI’ is not able to work with any of the controls in any of the other modules. Secondly there are also a few features in the main Modul8 interface that does not work with ‘Two Way MIDI’ (e.g. create/duplicate/delete layer).

However there is a workaround. You can use the regular MIDI mapping in Modul8 together with the module to overcome some of these limitations (your only challenge is to keep track of what you have mapped where).

What is the difference between this module and the regular MIDI mapping in Modul8?

– Module sends and receves midi. Buiit in mapping only receives

– Built in mapping has ‘focus’, ‘position’ and ‘layerset + position’ modes. Module only has ‘focus’ and ‘position’ mode.

– This module treats layer set buttons, media set buttons and other radio buttons as groups instead of separate buttons. E.g. you can map one rotary knob or button to flip through layer sets.

Can I use this module together with the regular MIDI mapping in Modul8?

Yes, it is possible to use this module and the built in MIDI mapping (the mapping menu). The same control can even be mapped in the built in MIDI mapping and in the module at the same time – but I don’t recommend this – I recommend only using the built in MIDI mapping for controls that are not covered by this module.

What are the ‘focus’ and ‘position’ buttons for?

These are buttons for switching between two modes of midi mapping. They are identical to the ‘focus’ and ‘position’ mode of the regular MIDI mapping in Modul8.

In ‘focus’ mode you map the dial to the active layer in Modul8. E.g. you map a dial to the movie speed in ‘focus’ mode. If you go to another layer your dial will change the speed of the selected layer.

In ‘position’ mode you map to a specific layer. E.g. the movie speed of layer 3. If you change focus to any other layer your dial will still control the speed of layer 3.

Why is there no ‘layerset + position’ mode?

The regular Midi mapping in Modul8 has ‘focus’, ‘position’ and ‘layerset + position’ mapping modes. This module only has the ‘focus’ and ‘position’ modes. I have made this decision as I see no advantage of building this into the module. If you need this mode just use the regular midi mapping for this.

Are my MIDI mappings kept next time I start Modul8?

The module has two options for where to save your MIDI mapping ‘Default’ and ‘Project’. When you make a mapping in ‘Default’ mode the MIDI mapping will be kept inside Modul8 and be active next time you start Modul8. If you select ‘Project’ mode and make a MIDI mapping the mapping will be kept inside the your Project file and so the MIDI mapping will be active next time you open that project.

Please be aware that if you edit the module code in the Module editor, you will loose any ‘Default’ map you might have.

Can I have a different MIDI mapping for each project?

Yes. Just choose ‘Project’ mode before you make the mapping.

Can I export my MIDI mapping?

Not directly no. You can however reuse your mapping with a small workaround. E.g. if you want to use your MIDI mapping from project A in Project B: Open project A. Project A will be in ‘project mode’ if it has it’s own MIDI mapping. Click ‘copy to default’. Next open Project B, make sure the module is in ‘default’ mode then click ‘copy to project’.

Also if you wish to back up your default mapping you can create a new blank Modul8 project and click ‘copy to project’. Your default mapping will now be saved inside the project file. You can recover your mapping at a later date if you need it by opening the project and clicking ‘copy to default’.

What happens if I have made a default MIDI mapping and then open a project that has it’s own mapping?

This is not a problem you can freely switch between your default and your project mapping. Just be aware if you are in default or project mode before clicking ‘edit’ and making additional mappings.

Can I use multiple MIDI controllers?

The module is only designed to be used with one MIDI device at a time. There may be workarounds to using multiple controllers but this has not been tested.

Share it:


  1. Luka

    Amazing, I’ll give it a try in next couple of days.

    Thank you very much for this module!!!!

  2. Hi, thanks for the module.

    I’m testing with Ipad using TouchOSC and Osculator but it’s not working.
    I know that TouchOSC sends and receive data, but with your module I’m not receiving messeges back to ipad.

    Could you help me?


  3. Thank you so much for making this module, I have not yet downloaded, but it was something that I was wanting and thinking about over the last month.

    Very good explanation aswel!


  4. Tested and approved … modul8 + iPad + Osculator + OSC Touch.
    Solved an old problem.
    Very thanks.

  5. Udart (Author)

    @VJ Fabinho. That’s an interesting setup. Did not think of that option. Could you perhaps share a video or a tutorial on how to do this? I’m quite curious – do you manage to get MIDI feedback onto the iPad?
    Also it seems Toshiro would like some help from you…

  6. Tested With my Touch OSC Layer + OSCulator + Ipad + Modul8 Too.

    Very Thanks You Vibeke.

  7. yes, I have feedback on MIDI iPad.
    I just followed the footsteps of his video, without any difficulty.
    if so, whether they still want a video showing it, I’ll write more later

  8. i tried too with osculator, ipad , touch osc but couldnt get it working – i dont get the feedback what settings do you use – can you share your osculator file?

  9. vj algo

    Super, ça l’air de fonctionné terrible, ce qui ma bien fait marré, c’est de voir bouger les faders d’opacité alors qu’il sont télécommandé par un LFO du modul BPM master, c’est grand !

    petit soucis pour passer d’un hardware a un autre, je suis passer d’une bcf 2000 à une apc 40, modul8 reconnait bien l’APC mais il faut rebooter pour que ‘Two Way MIDI’ l’a reconnaisse, oups

  10. It’s funny when I made this module I didn’t even think of TouscOSC. Now it seems a lot of people are using it in conjunction with TouchOSC. Thanx for sharing…

  11. I didn’t write this comment, It seems like “I made this module” I just use it to create this: http://www.youtube.com/watch?v=PKUYJz5sX68. I think you made a mistake when you edit it. But Still love you module.

  12. Udart (Author)

    I made some sort of error. The comment above is written by my not luiscript


  13. JAY

    Your modul seems to be exactly what i was looking for. Thanks for sharing it – but where`s the download link? Maybe i`m blind?!

  14. Udart (Author)

    All modules are available from the menu inside Modul8

  15. doctor whom

    thanks for making this . you rock. plan on using this one every time i vj i imagine.

  16. AcessDenied?

    I had a problem on my Macbook pro… it didn’t work but I saw that my IAC driver (Gestionnaire IAC) wasn’t ON so to turn that On you do:

    First you should have in your Two way midi module:
    – IAC driver – bus 1
    -” the name of your midi controller”

    If not:—>

    1- finder –> applications –> utility —> audio and midi config
    2- Windows menu –> open MIDI windows
    3- you should have an icon IAC driver “double-clic”
    4- select on the box near “the driver is connected”

    than you should see “IAC driver – Bus 1″ in the “two way midi(udart) module …in french “gestionnaire IAC – bus 1″

    don’t know if i’m clear … i’m french by the way…

  17. KjellV

    I was wondering if you could help me with a problem I was wondering about, since it seems that you have some midi skills.
    Is there a way to send midi commands that light up specific leds on my midi controller when a certain filter s active?

  18. Udart (Author)

    Hi Kjell,
    I am assuming you mean the filters of the Filters module? As far as I am aware it’s not possible ‘out of the box’. It would require a new module e.g. a version of the existing Filters module that is modified to send MIDI commands to your controller.

  19. As with other I got your module working with TouchOSC/iPad. Thanks.
    Going to try and get my Modules to send midi for their states, not sure it will be as smart as yours – might just have to direct into hardcoded midi addresses. Either way thanks again and lets hope this get built in to Modul8 sooner than later.

  20. Udart (Author)

    Uri, the modle is in he Online Library -> Public Library.

  21. nuno

    I don’t see no download area available! Help please! :/

  22. Udart (Author)

    The module is downloaded from the ‘Online Library’ menu item within the Modul8 application.

  23. I have followed the instructions and got two way signals running from my ipad through osculator to modul8 vers 2.6.3. and back. But everytime I try and use it, it triggers multiple layers and buttons, jumps and selects several layers at once. Basically its not working as it should. Can anyone lend some advice?

  24. vj lucky

    I managed to run the VMX CODANOVA two I’d never get it to work.
    I tried using the BCR BCFe, but still nothing you can give me an idea?
    There are other settings to do?
    Thank you.
    sorry if I repeat

  25. Udart (Author)

    @Lucky. Could you please elaborate. I am not sure I understand your problem. You are also welcome to send a quicktime screen recording that illustrates the problem. Often this is the best way to understand what went wrong.

  26. Not sure if I ever congratulated you for writing such a nice piece of software. It definitely makes the midi experience much better in M8 with a BCF device.
    Thanks a lot,
    keep up the great work.

  27. Thx so much for this I am so close!! I am using an ipad thru MIDI Network Setup and connecting but not using an oscilator? Is that why the TWO WAY MIDI isn’t detecting my ipad as a valid controller? the “action” codes wont go into the “mapped actions” box after i click each one. Plz help! thx!! powerhuggs

  28. anwar guerra

    Hi there from Mexico, ithink your modul is amazing. Other way i have a cuestion, now days a have a vci 100 dj midi controller of vestax, so i have mapping the controller with your modul, but i think i didn´t well. My situatuion is if i turn the knob previusly mapp since cero at the begin to the left to 127 at the end, just in the middle the parameter (after 63 points, automaticly the parameter shows 127 points, i repeat just when the knob is right in the middle, and i have an annoying jump 0-62-127-63-127, what i need to do to change this situation, i will aprecite so much. thnks

  29. Udart (Author)

    Hi there, it’s a bit hard to understand exactly what is happening with your controller from what you write. But if you want to get deeper into finding a solution you should monitor exactly which values your vestax sends out. Maybe it simply sends those values to Modul8. if that is the case the problem is not on the module rather you should look for some setting on the Vestax to change it’s behaviour. Please try out this or some other MIDI testing app: http://www.snoize.com/MIDIMonitor/ and let me know what results you get.

  30. Udart (Author)

    Hi jigglesworth, I am not quite sure from your description and I have no experience with using the iPad for this. Sorry.

  31. Christopher

    Hello, I would like to start with a “Thank You”! The module is great! Works awesome. I am however stuck with an issue, that I am unaware of how to correct.
    I mapped a rotart knob from a BCR2000 for “Layer Focus”
    I would like to be able to select the layer, which I have successfully achieved.
    My issue is that when selected from the rotary knob – none of the selected Layer controls are updated on the BCR2000. Have you heard of an issue like this before?
    All of my other controls are updated to the BCR2000 when the layer is selected within Modul8.

  32. Udart (Author)

    Hi Christopher, thanx for getting in touch. As I don’t have the BCR2000 myself it’s difficult for me to give you any advice. But perhaps someone else seens this who can help out.

  33. Christopher

    Im using the Bcr2000 in conjunction with Touch OSC for the iPad and I have live routing communicating between both of them so that they act as controller for each other. If I control from within modul8 (computer) I can only send the data to one midi device in the selection window.
    Is there a way to send to multiple devices? multiple selections or all?
    I found the code in the editor :
    #User clicked an item in the midi device list. Set MidiDevice
    elif msg == ‘MIDIDevice':
    MIDIDevice = param[‘selection’]
    #print ‘MIDIDevice ‘ + MIDIDevice

    I attempted ‘all’ for the param with no success.
    Thanks in advance.

  34. Christopher

    Here is a video to show you my configuration, I prob was not too clear in my previous statement. Thanks udart.

  35. Udart (Author)

    Hi Christopher,
    I don’t know if you’ll ever see this as I am replying five months later. I am pretty far away from anything to do with Modul8 right now. I am sorry i cannot be of more help but I am not able to answer what you’re looking for without diving more into Modul8 and the module again. But I will def. take this problem with me if/when I update the module.

  36. Tim

    I’m having trouble with the lemur app and two way midi module. My faders jump whenever I get feedback. Anyone dealing with this or have a solution?

  37. Just shared a modified version of this module in public library, see (ray lab) Hybrid Two Way MIDI (UDART).
    1. Extensions to handle devices or controls that do not support MIDI feedback: module will lock the incoming values until they match the current value of Modul8 control (sliders en knobs), so they wan’t jump when switching between layers. Use ‘feedback’ checkbox to choose. If checked, feedback is sent to control (original behaviour). If unchecked, module will lock the incoming value until match.
    2. Togggle option for buttons (very useful)
    3. Save/Load current midi map to/from file. Loading simply overwrites the current map.

    This is beta, please test before using in production!

  38. Kevin Graber

    Hi Udart
    I just discovered your recently built (Raylab) Hybrid Two Way Midi Out on the Modules Library. It works well with my BCR2000. With the “regular Two Way Midi Out” i wasnt succesful!
    Thanks a lot!
    What about the TOGGLE & FEEDBACK switches? What do they do?

  39. Hey Kevin,

    Sorry for late reaction, wasn’t following this thread for a while.

    Toggle is a latch function, to handle controller with piano keys. They usually sen MIDI ON and then immediately OFF, so you M8 button with jump back to original value. Select it if you experience this problem

    Feedback: when selected, will work as original UDART version and send MIDI back to you device. I use it with TouchOSC on IPad, to sync controls on IPad with Module8 values.
    When deselected, it will NOT send MIDI feedback, but will prevent jumping sliders for controllers they don’t read MIDI feedback.

    New save/load function will allow you to save the settings in a file, so you could easy switch between presets.

    There are also few improvements to the original code and I’m happy it works for you!

  40. Hey

    I’ve developed a software to manipulate the midi data which is coming from a controller, so that I can use midi controllers with “NoteOn, NoteOff” buttons and special controls in Modul8.

    So in my software I create a new VirtualMidiEndpoint (it looks like a normal midi device) and map this virtual endpoint to Modul8. The real device is disabled in Modul8.

    Now everything works fine except of your two way midi module, because it doesn’t show my virtual endpoint. Even if I disable the real device in the preferences of Modul8, it is shown in your application.

    Would it be possible to fix this and just show the Midi devices which are enabled in Modul8 and also the virtual midi devices?

    Sorry for my english!

    Kindly regards

Leave a Comment