Generating "Key up" output from MIDI instrument without "Note off" trigger

Hi there,

I’m currently trying out the Midi Translator to convert MIDI guitar signals to key presses on my computer.

Using the translator’s logging feature, I can see that every time I play a note, there’s a MIDI “Note on” event, and the translator outputs a corresponding “Key down”. When the volume of the played note drops below a threshold, there’s a MIDI “Note off” event, and the translator outputs a corresponding “Key up”.

The problem is, sometimes I repeat a note before its volume has dropped below the threshold for a “Note off”. As a result, I don’t get a “Key up” output, and so my new “Key down” output isn’t processed by my computer.

The MIDI guitar is working great by itself, so I’m hoping I can fix something with my Midi Translator configuration. My idea for a simple fix was to have each “Note on” trigger a corresponding “Key up” and then immediately do a “Key down” afterward. That way if a “Note off” hasn’t occurred since the last “Note on”, a new “Note on” input will still cause a new “Key down” to be processed.

I’m not sure if that’s possible in Midi Translator, but I’m sure the ‘Keystroke’ output isn’t what I want because the Midi instrument allows me to play and hold notes until I release them. (I need an inverted keystroke that goes “up” then “down”.) Can someone advise me on what my options are?

Thanks a lot,
Demi

Hi and welcome to the Bome community!

I think I would need to see your MIDI incoming messages to figure this out. Do you say that the guitar itself is generating note-off messages after a given time that the string is plucked? Does the guitar send channel pressure or Polyphonic key pressure messages, or is it taking upon itself when to send note-off messages?

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Hi Steve,

As I mentioned in the original post, I believe once the note’s volume drops below a certain threshold, the MIDI instrument will output a “note off”.

I repeated my tests on another PC and got similar results, here is a screenshot of the log:

In terms of the instrument, this log is the result of me playing two consecutive A-chords. The output keystrokes should be TPW WPT (strumming down then up so the order is reversed), so the log is more or less accurate. If I open notepad, the same keystrokes are written.

However, opening an application like a game, often only 1-2 keystrokes are received for the same MIDI input. (I can keep playing this A-chord and only “T” will be received, despite the MIDI translator log showing other keystrokes being output). Interestingly, the first time I play a chord, all the keystrokes are received. Similarly, if I change the notes I’m playing, like going from an A-chord to a B-chord, all keystrokes are received.

**In other words, repeated MIDI notes show the correct keystroke outputs in the log, however these keystrokes are not received by an application such as a game. ** For the keystrokes to be received, the notes must: be played for the first time, or be different from other recently-played notes, or be played after muting the instrument and waiting a second.

Because the keystrokes are received correctly the first time the chord is played, my suspicion is that something about the NoteOff/KeyUp signal isn’t working with other applications. For example, in the log, the previous “NoteOff” doesn’t occur until the instant before the new “NoteOn”, and the “KeyUp” seems to be sent an instant before the “KeyDown”. My theory is that some applications like games, are simply missing the “KeyUp” because it happens so fast.

Anyway I’m no expert, so I’m hoping someone here can help me adjust my Midi Translator configuration, so that the keystrokes work more consistently with other applications.

Thanks a lot,
demi

Oh, I see. You are using Bome MIDI Translator Classic. I’m not sure if we can get it to work with that. Generally keystroke may have issues with the speed they are sent depending on the application. Typically, some applications require delays between keystrokes to work. The Classic version of Bome MIDI Translator does not have this feature. I can see what I can do with the Pro version if you would like, but I’d like to get an idea that if it works you would purchase it. With that said, I’m sill not 100% sure we will get it to work as there is some pretty complex logic to deal with. A combination of delays, suppressing note-off and then regenerating them at the right time, etc.

Let me know if you would consider MT Pro. What application are you sending keystrokes to?

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Hi Steve,

I’m certainly interested in MT Pro. I know there’s a free trial version so hopefully if we set something up I could validate it on my end.

Yes the keystroke issues depend on application. However, with the same application I can use my PC keyboard, or a MIDI keyboard, and don’t have similar issues. Nor do I have issues when playing a chord for the first time, or switching to a new chord. I only have the issue when playing the same chord/notes repeatedly.

I’ve tried a few applications with varying degrees of success. Final Fantasy 14 is a game with musical instruments built-in, so I’ve been trying to control those, for example. As I mentioned before, if I open a Notepad then all the keystrokes are received correctly, so the issue is certainly application-dependent.

I’m using Midi Guitar 2 to generate the MIDI signals from my live guitar audio. It sounds great when plugging these MIDI signals into a synth, so I don’t think Midi Guitar 2 is the issue.

For your reference, I actually found a thread about this use case: https://www.reddit.com/r/ffxiv/comments/fonv6a/bardic_performance_and_guitar_as_a_midi/

Some software alternatives are mentioned in that thread, but I’m not sure how these could benefit me, since my set-up is working with Notepad etc.

I think the idea of a “NoteOn” triggering:
-“KeyUp”
-short delay
-“KeyDown”

in that order, could fix my problem. So if there’s a way to set that up in MT Pro, please let me know!

Thanks,
demi

OK, below is an example of a series of action for a single note. I’m using note 4 MIDI CH1 to generate
1- Key T Up (no Delay)
2- Key T Down (10ms Delay)
3- Key T Up (20ms Delay)

You would need to do similar for all of your incoming keys.

Note-Up-With-Down-Up-Delay.bmtp (1.5 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz