UE4.27 Midi workflow

Answered

Comments

9 comments

  • Avatar
    Shipping & Sales

    Hey Rob, without seeing the exact implementation I can give you a few ideas for troubleshooting:

    1. Quit Unreal and use MidiMonitor.com (note: only works on Chrome or Chromium browsers) or Hexler Protokol to ensure that the Monogram hardware is sending MIDI messages correctly. This is a basic test to make sure your MIDI assignments work as expected.

    2. Make sure you're using "Bind Event to On MIDI Control Change" if you've mapped your console to MIDI CCs (the default). Some tutorials show this for MIDI notes instead, which are only supported for press actions, not turn/slide/tilt, plus CCs are a superior choice vs notes for control messages.

    3. Make sure your blueprint is set up to expect the same data format as the Monogram modules are sending. Here's a quick rundown of the defaults:
    • Dial and Orbiter ring turns use the relative 2's complement format. This means that they send repeating values of 1 (or higher, up to 63) when turned right and 127 (or lower, down to 64) when turned left. This can be changed to absolute mapping in Creator, where they'll behave as a slider (details below)

    • Dial and Key presses rest at a value of 0 and send a value of 127 when pressed. Your on/off values can be customized in Creator, and you can choose a Toggle behaviour (like a latching switch) versus the default Momentary behaviour (like a pushbutton).

    • Sliders and Orbiter discs move smoothly between values of 0 and 127, directly correlating to their position. Sliders of course stay at their last position, while Orbiters snap back to center, meaning they rest at 63.
    0
    Comment actions Permalink
  • Avatar
    Shipping & Sales

    Last thing: Here's more info about how to set up various MIDI messages with Monogram Creator.

    And here is Epic's documentation regarding the Remote Control MIDI plugin:

    0
    Comment actions Permalink
  • Avatar
    Rob

    Thanks Andy

    MidiMonitor shows input from Monogram, so that's working.

    I've ditched BP's for now, and I'm using the web remote interface (image attached)
    this has a Midi input, and I can see Monogram from the dropdown device name list.

    So, in theory, I should be getting that input here, and seeing changes. But, I'm not. Any ideas?

    0
    Comment actions Permalink
  • Avatar
    Shipping & Sales

    Ahhh, I see what may be happening:

    1. Click the grey button at the top-right of the MIDI panel (next to the X) until it turns Green
    2. Match "Mapped Channel ID" in the UE Control Panel to "CC Number" in Creator
    3. Match "Channel" in UE to "Channel" in Creator

    One last thing: As it's set up right now, the control is going to transform the rotation of your Niagara system across all 3 axes. So you may want to change the axis values corresponding to input = 127 so that only one of them is changed from 0 deg.

    0
    Comment actions Permalink
  • Avatar
    Rob

    Magic, thankyou.

    This now works.
    I also changed Creator from "Relative", to "Absolute" output and I'm getting nice smooth rotation. 


    0
    Comment actions Permalink
  • Avatar
    Shipping & Sales

    Perfect!

    Yes, the Remote Control panel seems to assume Absolute values only. I believe to take advantage of the Relative values you'd need to use a blueprint.

    That's an understandable limitation on the Unreal Engine side since the MIDI standard assumes absolute values, but we'll touch base with Epic and see if they're willing to add Relative CC support too :)

    0
    Comment actions Permalink
  • Avatar
    Rob

    I've got one more thing to add, and it may be a limitation.

    Once I have monogram bound to rotate an object, I can specify the range in X, for example, from 0-360.
    Rotate the wheel, and the object updates in X.

    But, the Y and Z axis, that I told web remote to have a min/max of 0, get set to 0 every time I use monogram to rotate the object.

    So far I can't see a way within web remote to have monogram bound to only one axis. 
    Or for a binding to read the existing values, and alter them.
    Possible in blueprints, but would be amazing to be able to do it all from the UI in web remote and certainly much faster.

    Am I missing a trick?

    Thanks for all the help so far.

    0
    Comment actions Permalink
  • Avatar
    Shipping & Sales

    It looks like that's a limitation of the UE Remote Control panel. I have an idea to work around it though: 

    1. Transform the actor to its desired rotation in the World Outliner
    2. Return to the Remote Control panel and go to Midi > Ranges
    3. Select the two back arrows next to the min and max input fields. They should say "Use current property value" when you hover over them.
    4. Change only the min and max values of the axis you want to transform.

    Note: this will need to be repeated every time you transform the actor, so at a certain point you're better off learning to bind this all to a blueprint that doesn't have the same limitations.

    0
    Comment actions Permalink
  • Avatar
    Rob

    Thanks Andy

    I've got this working in blueprints. I now have per axis control over any object, which is great.

    Would love to ask more questions about using the Monogram core, as opposed to MIDI.
    But will save that for another thread.


    0
    Comment actions Permalink

Please sign in to leave a comment.

Powered by Zendesk