Announcement

Collapse
No announcement yet.

newbie with a Behringer XR18

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • newbie with a Behringer XR18

    Behringer's XR18 mixer speaks OSC natively. It can also be controlled by MIDI, but only a very limited subset of parameters.
    It looks to me like OSCulator
    should be able to read a generic MIDI controller and spit out OSC to run any parameter on an X Air mixer over ethernet,
    as well as sending back to update the controller. Unfortunately, I can't get OSCulator to see my XR18. I'm sure it's something simple. I'm hoping one of y'all can help.


    I have my MIDI Fighter Twister controller listed under Parameters-I/O, and when I turn a knob, OSCulator posts the MIDI CC.

    OSCulator has OSC input port set to 10024, which is the XR18's port. I also tried the default 8000.
    Under Parameters-OSC Routing, I entered the XR18's address as 192.168.0.128:10024, which it changed to osc.udp://192.168.0.128:10024.
    The XR18 does not show up under the Nearby OSC Services pulldown in that screen. The Macbook OSCulator is running on does.

    There's an XR18 utility called X-Air Live Toolbox for OSC experimentation. When it connects from it's Testing screen,
    it sends /info to 192.168.0.128:10024, and receives the mixer name and firmware rev.
    And when X-Air Live Toolbox sends /ch/01/mix/on ,i 1 the channel turns on.
    This tells me that I have the correct address for the mixer.

    OSCulator doesn't respond to any of this. I expect I have it set up wrong somehow.

  • #2
    Hello nottocloud,

    I am unsure to understand well.
    Do you try to receive messages from the XR18 or send messages to the XR18?

    OSCulator default port of 8000 is fine to receive messages on port 8000.
    It looks like the XR18 receives OSC messages on port 10024, so the destination address is <ip address of the XR18>:10024. UDP seems the correct transport protocol (also the most often used).

    Now that you have properly configured the Target, you might want to create a Routing so that when OSCulator responds to an incoming message, it responds with a OSC event, effectively sending a message to the XR18.

    I don't know the dictionary of OSC messages the XR18 accepts, but I would try '/ch/01/mix/on' as you described to see if it is able to act on the mixer. You will want to pay attention to the type of the arguments. As I see in this specific message, the argument must be an integer.


    Best,
    Cam

    Comment


    • #3
      Originally posted by camille View Post
      Do you try to receive messages from the XR18 or send messages to the XR18?
      Both. Two way communication between the MIDI controller and the XR18. Other things will also be controlling the XR18, and the controller needs to stay updated.

      OSCulator default port of 8000 is fine to receive messages on port 8000.
      I don't seem to be getting anything from the XR18, though. There are no OSC address settings in the mixer.

      It looks like the XR18 receives OSC messages on port 10024, so the destination address is <ip address of the XR18>:10024. UDP seems the correct transport protocol (also the most often used).

      Now that you have properly configured the Target, you might want to create a Routing so that when OSCulator responds to an incoming message, it responds with a OSC event, effectively sending a message to the XR18.

      I don't know the dictionary of OSC messages the XR18 accepts, but I would try '/ch/01/mix/on' as you described to see if it is able to act on the mixer. You will want to pay attention to the type of the arguments. As I see in this specific message, the argument must be an integer.
      Parameters-OSC Routing-Default is set to osc.upd://192.168.0.128:10024, and that seems to be correct.
      If I manually create a Message: /ch/01/mix/on, Event Type: OSC Routing, Value: D, the channel turns on and immediately back off when I trigger it inside OSCulator.
      That makes sense to me, since Quick Look shows a value going from 0 to 1 and back when I trigger it.
      If I manually create a Message: /ch/01/mix/on, Event Type: OSC Routing, Value: D: i:var[0], the channel turns on and stays off when I trigger it inside OSCulator. It doesn't turn back on if triggered again.
      Value D: 0 turns it off. Value D: 1 turns it on. I'm a little puzzled by these, since I'm not doing <all args>. OK, so anyway, we're getting to the XR18.


      Next step is to make a MIDI input trigger that OSC output.
      Mute 1 on my controller shows up in OSCulator as Message: /midi/cc0/2, and I can see it trigger.
      I made that message Event Type: OSC Routing, Value: D: /ch/01/mix/on, i:var[0], same as worked above.
      Nothing happens when I press it. Quick Look shows a toggle between 1 and 0 with each press.

      Comment


      • #4
        I don't seem to be getting anything from the XR18, though. There are no OSC address settings in the mixer.
        There must be a way to tell the mixer the destination to which it must transmit the info.
        Sometimes, it is done via an OSC message (I find this method a bit fiddly, tho).

        Parameters-OSC Routing-Default is set to osc.upd://192.168.0.128:10024, and that seems to be correct.
        ok

        If I manually create a Message: /ch/01/mix/on, Event Type: OSC Routing, Value: D, the channel turns on and immediately back off when I trigger it inside OSCulator.
        OK. Just bear in mind that you'd rather want to put the '/ch/01/mix/on' address in the OSC Routing definition.
        The reason is that OSCulator may receive an OSC message (e.g. '/my-controller/something/1'), that you want to convert to '/ch/01/mix/on'.

        So what happens is that when you click the activity monitor in OSCulator, it artificially triggers the manually created message (/ch/01/mix/on). The OSC Routing event is in turn triggered, and has no specific address, therefore it uses the one from the message that was received.

        That makes sense to me, since Quick Look shows a value going from 0 to 1 and back when I trigger it.
        If I remember correctly, OSCulator arbitrarily uses float values 0.0 and 1.0 then 0.0 again to trigger the message.

        If I manually create a Message: /ch/01/mix/on, Event Type: OSC Routing, Value: D: i:var[0], the channel turns on and stays off when I trigger it inside OSCulator. It doesn't turn back on if triggered again.
        That is normal, you are using a variable that does not change.
        You should rather use i:arg[0] to convert the argument to an integer.

        Value D: 0 turns it off. Value D: 1 turns it on. I'm a little puzzled by these, since I'm not doing <all args>. OK, so anyway, we're getting to the XR18.
        It seems the XR18 dutily accepts float values as well, which can make things a bit easier.
        Please let me know if you have more questions, or if you have new findings.

        Cam

        Comment


        • #5
          Originally posted by camille View Post
          There must be a way to tell the mixer the destination to which it must transmit the info.
          Sometimes, it is done via an OSC message (I find this method a bit fiddly, tho).
          Word is that it transmits back to whatever it receives from.

          OK. Just bear in mind that you'd rather want to put the '/ch/01/mix/on' address in the OSC Routing definition.
          The reason is that OSCulator may receive an OSC message (e.g. '/my-controller/something/1'), that you want to convert to '/ch/01/mix/on'.
          Well, yes, that's exactly what I want to. I can't make it work.

          Mute 1 on my controller shows up in OSCulator as Message: /midi/cc0/2, and I can see it trigger.
          I made that message Event Type: OSC Routing, Value: D: /ch/01/mix/on, i:var[0], same as worked above.
          Nothing happens when I press it. Quick Look shows a toggle between 1 and 0 with each press.
          No difference using 1:arg[0].

          Comment


          • #6
            Hello,

            Mute 1 on my controller shows up in OSCulator as Message: /midi/cc0/2, and I can see it trigger.
            Please note that you are receiving MIDI and sending OSC, could be a source of confusion.

            I made that message Event Type: OSC Routing, Value: D: /ch/01/mix/on, i:var[0], same as worked above.
            Unless you really want to use Variables, please don't use i:var[0]. I don't think you need it to send a message to your mixer.

            Nothing happens when I press it. Quick Look shows a toggle between 1 and 0 with each press.
            No difference using 1:arg[0].
            Then maybe it is the wrong message definition.
            Do you have a dictionary of all messages for the mixer handy?

            Comment


            • #7
              Originally posted by camille View Post
              Please note that you are receiving MIDI and sending OSC, could be a source of confusion.
              Isn't that what OSCulator is for?

              Unless you really want to use Variables, please don't use i:var[0]. I don't think you need it to send a message to your mixer.
              Should I be using i:arg[0]? I want to pass MIDI switches and faders to OSC settings on the mixer, and back.

              Then maybe it is the wrong message definition.
              Do you have a dictionary of all messages for the mixer handy?
              That exact definition works if I manually create it as a Message. I also tried it with i:arg[0].

              Comment


              • #8
                Isn't that what OSCulator is for?
                I thought it was on the same device, and that this device receives and sends OSC.

                Should I be using i:arg[0]? I want to pass MIDI switches and faders to OSC settings on the mixer, and back.
                Since I don't know exactly what the mixer accepts, I can't tell you if that is the right solution.
                At first I would not try to force any conversion, just use <all args> and you should be fine.

                Comment


                • #9
                  Originally posted by camille View Post
                  I thought it was on the same device, and that this device receives and sends OSC.
                  I have a MIDI controller that sends and receives MIDI, and a mixer that sends and receives OSC. I want them to talk to each other.

                  I can send the OSC. I can receive the MIDI. I can't make the MIDI trigger send the OSC.
                  Last edited by nottooloud; 04-11-2016, 02:34 AM.

                  Comment


                  • #10
                    I have read the documentation at http://behringerwiki.music-group.com...emote_Protocol

                    As you said, channel mute switching is done with an integer argument that has a value of 0 (OFF) or 1 (ON).

                    Now, MIDI control change messages received by OSCulator are automatically scaled from [0 127] to [0.0 1.0]. Which means that for a push button, the values are 0.0 and 1.0, and all you have to do is to convert them to an integer.

                    XR18 channel mute.jpg

                    Therefore an OSC Routing used to change the mute status of the channel 1, would have its address set to /ch/01/mix/on and the first argument converted to an integer (i:arg[0]). That's what I would do, and I believe you tried that before. If it does not work, I'd suggest you send me your OSCulator document to camille at osculator dot net, and I'll have a look, see if there's something obvious.


                    Cam

                    Comment


                    • #11
                      i am currently mapping an icon platform m to control a XR18. The mute buttons are momentary and I want the one button to function as mute on and off. currently I have mute ON assigned and mute OFF assigned to a different button. I cannot figure out how to do this in osculator. When I use the Air Toolbox I can send the command: /dca/1/on ,t 0-1 and it toggles the mute on and off. this code does not seem to work in Osculator. any chance you can help me with this? part of the problem is that when i push the button it sends out a CC and sends another when I release it so I'm not sure what to do here. Everything else I programmed works great!

                      Any suggestions?

                      Comment


                      • #12
                        Hi!

                        Just as a minor notice: the OSC syntax looks weird, are you sure it's not /dca/1/on ,s 0-1 ?
                        The comma indicates the type of the argument, and this is usually confusing. If you want to send such a message in OSCulator, the address part is /dca/1/on and the argument value should be "0-1" (a string). So, if you create a OSC Routing with both properly setup I think this should work (though I don't know Air Toolbox so I can't tell exactly).

                        Now, there's always the message type MIDI CC Toggle, have you tried this one? It effectively toggles between two values when it is triggered from a button.

                        Let me know if that helps, we can still devise other solutions.

                        Best,
                        Cam

                        Comment


                        • #13
                          Although it does work when I use MIDI TOGGLE, I want to be all OSC because in my next case there is no MIDI assignment for the solo buttons on the XR18.

                          I want the Solo buttons on BUS 1 to toggle. the solo button on my controller sends a MIDI CC to OSCulator.

                          So here's my problem: when I push the solo button on the controller it sends " /-stat/solosw/41 ,f 1.00 " to the mixer and activates the solo button. HOWEVER- when I RELEASE the button it sends" /-stat/solosw/41 ,f 0.00 " to the mixer and turns the switch off. so what's a boy to do?

                          Comment


                          • #14
                            OK, now I get the special syntax from Air Toolbox. Sorry about the previous message, I didn't see that "t" (which is not a valid OSC type) was used as an indicator to toggle between two values.

                            Unfortunately, OSCulator does not have an easy way to toggle an OSC value on and off.
                            The solution I have is not easy, so I am asking: do you have a lot of solo buttons to map?

                            I'm thinking about a way to solve that more easily...

                            Comment


                            • #15
                              I have 4 buttons to program but I'd love to know what you're thinking. Sounds scary!

                              thanks for hanging in there.
                              g

                              Comment

                              Working...
                              X