Are GLD midi strips bidirectional

Forums Forums GLD Forums GLD general discussions Are GLD midi strips bidirectional

This topic contains 3 replies, has 2 voices, and was last updated by Profile photo of MikeShand MikeShand 3 years ago.

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #63810
    Profile photo of MikeShand
    MikeShand
    Participant

    Reading various bits of documentation it hints that the midi strips are bidirectional ( as they seem to be on the QU) I.e. When you move the GLD control it sends the configured MIDI message, AND when the GLD receives that message it changes the midi strip accordingly. E.g. Sets or clears the mute LED, or moves the fader.

    However, I haven’t been able to get this to work. It’s possible I am doing something wrong, but also possible that it is not supposed to work, despite the documentation hints!

    If that is the case, it would be helpful to know to save me trying to figure out what I am doing wrong.

    Thanks.

    Mike

    #63843
    Profile photo of MikeShand
    MikeShand
    Participant

    So I can answer my own question. Yes they are bidirectional, BUT in the case of setting the rotary gain, while it does update the actual value stored in the strip it doesn’t update the display in the LCD until you either move the knob slightly or switch to display pan or one of the custom values then switch back to gain. Not too much of an issue, but it led me to believe that setting a value in the GLD via midi wasn’t working.

    Setting the fader level works fine fortunately.

    I haven’t tried any of the others except setting the mute LED which does work, so this seems like a reasonable work around to the problem of not being able to independently set the local/non local state of the three buttons, since you can leave local off and then set it remotely in response to pressing the button.

    All good fun 🙂

    Mike

    #100174
    Profile photo of dant
    dant
    Participant

    Hi Mike,

    realise this was written quite a while ago now but I’m just in the process of trying to wrap my head around precisely what it looks like you cracked! Specifically how did you get the Mute light to work without setting it to local or using Mackie Control. Any help much appreciated! I’m trying to map GLD to Logic X so for example when I have Midi Control set to Midi Thru assigning the mute button works but the LED won’t light. If I switch Midi Control to Mackie Control the mute button works and lights up but then I can’t assign Pan and the other three rotaries.

    Thanks
    Dan

    #100182
    Profile photo of MikeShand
    MikeShand
    Participant

    Hi Dan,

    Wow! That’s a long time ago, and I really can’t remember, or even understand my own post!

    To give you some context, I was writing a python program running on a raspberry pi to interact with the GDL via midi. My memory is very hazy, but looking at the code it seems to be the case that pressing a mute button on the GLD sends a midi message saying it has been pressed, but doesn’t change the setting of the mute light on the surface, so what I do when I receive a mute pressed message is perform the actions I want, and then send a message back to the GLD to toggle the state of the light.

    The midi configuration of midi channel 1 mute switch is

    91,00,<VAR> local OFF

    i.e. local is off. Hence pressing mute doesn’t change it on the surface.

    See this snippet of python code in case it is any help at all.

    elif m.type == ‘note_on’ and m.channel == 1:
    if m.note < 0x20:
    # MUTE
    strip = m.note
    if m.velocity >= 0x40:
    print(“MUTE ON”, strip + 1)
    # toggle the current mute setting for this channel
    newMute = not lights[strip].getMute()
    lights[strip].setMute(newMute)
    # and echo it back to the GLD
    sendMute(strip, newMute)

    and sendMute is defined as

    def sendMute(strip, muteOn):
    “”” Send midi strip mute setting message to GLD.

    MUTE ON send velocity 127
    MUTE OFF send velocity 0
    followed by note off
    “””
    if muteOn:
    vel = 0x7F
    else:
    vel = 0x3F
    muteMessage = Message(‘note_on’,
    channel = 1,
    note = strip,
    velocity = vel)
    gld.send(muteMessage)
    muteMessage = Message(‘note_off’,
    channel = 1,
    note = strip,
    velocity = 0)
    gld.send(muteMessage)

    I hope this might be of some small help to you, but I rather suspect not.

    Mike

Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.