SQP edit - fix 'note off'

Discussion in 'REAKTOR' started by Bill Tribble, Sep 11, 2017.

  1. Bill Tribble

    Bill Tribble Member

    Messages:
    77
    Some synths and other devices don't play nice with SQP's method of 'stopping' notes by sending a note with 0 velocity, so I'm trying to figure out how to edit the device so it sends true 'note off' instead of just a note with velocity '0'.

    Is such a thing possible? Could I make a filter that finds notes with '0' velocity and converts them into 'note off' for that note?
     
  2. colB

    colB NI Product Owner

    Messages:
    1,832
    One of the last things SQP does in its processing chain is send Pitch and Gate to a Primary 'Note Pitch/Gate' module that converts these to midi note-on and note-off messages.
    It shouldn't be too difficult to replace this with a custom macro that converts the gate and pitch explicitly and sends on and off messages using a Channel Message module. You would have to test thoroughly to ensure that there is enough time between events to prevent dropped notes on whatever destination synth you are targeting.

    FWIW, a note-on with velocity 0 is just as 'true' a note-off signal as a specific note-off (it's in the MIDI standard specifications document). A synth or module that doesn't recognise both is not fully MIDI compatible
     
  3. Bill Tribble

    Bill Tribble Member

    Messages:
    77
    AH, thanks for letting me know, colB! Interesting to know.
    Specifically it's Godel's Arp that I'm having trouble with so far (plays dead notes when it receives vel 0), - Serum synth also seems to do the opposite and play 'vel 0' notes out loud o_O ..

    Just to complicate things, I'm playing with my 'hacked for triggered steps' version of the SQP too... which uses a 'hold' to set note length.

    My biggest problem is I don't know how to test 'two values at the same time' - I mean, I need to:

    1. Capture 'pitch' and 'gate' together
    2. Test the gate value, pass both thru if velocity = positive
    3. Send a 'note off' with note value, if velocity=0

    Is there a Reaktor module that makes this testing easy? Think I've used lists in messages and z commands in Max to achieve similar.
     
    Last edited: Sep 11, 2017
  4. colB

    colB NI Product Owner

    Messages:
    1,832
    In Primary, use a value module, so the pitch goes to the value, then the gate signal can trigger the value when you need it.
    In core, you can use latches for similar functionality. Core is better for this type of thing IMO. Once you have received the required events from Primary, and used latches to make them simultaneous (use the last required event to arrive to clock latches that the others are fed through), everything is simpler because the values are functionally simultaneous.
     
  5. Bill Tribble

    Bill Tribble Member

    Messages:
    77
    OK thanks for letting me know... I tried making a device that would send a true 'note off' from Reaktor, but it just sends a 'velocity 0' to Ableton anyway, so I give up!

    Seems there are a ton of other arps to choose from so I'll see if I can connect something else...
     
  6. colB

    colB NI Product Owner

    Messages:
    1,832
    Like I said, a note-on with velocity zero IS a 'true' note off.
    Any device that doesn't recognise it as such is not MIDI compatible. You should pass it on to the developer of that device.
    EDIT: here's a grab from the MIDI spec documents:
    MIDI note-off.PNG
    -----------------------
    How did you build your note-off widget? Did you use a channel message module for the final MIDI output?
     
    Last edited: Sep 13, 2017
  7. Bill Tribble

    Bill Tribble Member

    Messages:
    77
    Yep that's right - channel message.

    Development ceased many years ago on the arp I was trying to link to ;) (Godel)
     
  8. colB

    colB NI Product Owner

    Messages:
    1,832
    If you are telling the channel message module to sent a note-off and it's sending a note-on with velocity zero, then that's a bug - have you included a non-zero velocity with the note-off to see if that helps?

    Can you post an example?
     
  9. Bill Tribble

    Bill Tribble Member

    Messages:
    77
    Sure thing. Looks like this - sends note on or off on 'C'
    Screen Shot 2017-09-13 at 20.51.22.png
     
  10. colB

    colB NI Product Owner

    Messages:
    1,832
    I did a brief and inconclusive test using a loopback device and MIDI ox on windows 10, and it seems that in my case the note offs are being sent (according to the loopback and Midi ox devices that potentially could be 'fixing' things... though id be surprised) as note-off rather than note-on velocity=0. If I send a note-on velocity=0 via the MIDI channel message module it is output as a note-off.

    MIDI support in Reaktor has never been good.
    Maybe tech support can give some more definitive answer.
     
  11. Bill Tribble

    Bill Tribble Member

    Messages:
    77
    OK thanks! I think it may just be Max for Live being inaccurate... when I test internally in Reaktor with MIDI monitor, they show up as proper 'note off's.