MIDI Monitor

MIDI Monitor

a MIDI event monitor for norns

Feedback appreciated.

Requirements

  • norns version 200424 (for global clock)
  • midi devices
  • PolyPerc engine (included w/ awake)

Documentation

E1 - select MIDI device
E3 - scrollback through MIDI messages

K2 - toggle unmute/mute internal synth playback
K3 - clear screen / buffer

Download

v0.6.2 - Github

26 Likes

Did a minor update for clock tempo updating on screen and added a quick demo video.

Will do some more tweaks (based on feedback, testing) and submit to maiden repo in a week or so.

1 Like

@okyeron, using the Fates device I recently built, I tested the MIDI Monitor with a 16n faderbank and an Akai MPK49 keyboard. In general, everything worked as expected. I found a few minor issues and also have two suggestions.

Issues

  • Channel Pressure notifications appear as “channel_pressure” causing them to overlap the value column. It looks like this will be an issue with any type of notification that has a string > 9 or 10 characters.
  • When devices are unplugged, they still show up as options to select when turning E1 and also in PARAMETERS->EDIT. After putting the device to sleep and restarting, the devices continue to appear. After performing a device reset, the unplugged devices no longer appear as options.
  • If a device is plugged in and assigned to the currently selected slot, the device does not appear until you use E1 to select a different slot and then come back to the one that now has a device assigned to it. For example, use E1 to select the first slot, appearing as “1: none,” and then plug in a device.

Suggestions

  • Perhaps I had too much coffee this morning, but device selection with E1 requires a steady hand. Consider spreading out the selections over a longer span of rotation.
  • Pitchbend values span 0 and 16383. Consider adjusting the values so 0 is the midpoint (i.e. resetting the range to go from -8192 to 8192). FWIW, this is how pitchbend appears in the MIDI monitor application I have running on my computer.
2 Likes

Good notes - thanks!

  • I’ll look at truncating or renaming longer value names

  • The devices showing after they unplug is a norns system thing. Devices are “remembered” even if they’re not there. I believe it’s intended as a feature (so you don’t have to reassign them when unplugging/replugging/etc). Not really sure I should muck with that.

  • devices adding or changing while the script is active - yeah, it will take some interaction to trigger the display change (re-querying the vports list, etc.). Again, not sure that’s a bug on my end as much as a limitation of what we can do with norns as is.

  • I’ll look at encoder sensitivity. I’ll need to do some research to see if this is configurable from the script level

  • Pitchbend - yeah I can change that.

Thanks for this useful script :wink:

yep, this is also happening with program change, and long USB devices

Any suggestions on how best to handle long names?

My 2 cents as a user (don’t know how easy/difficult or possible at all):

  • “cut” some letters in the middle, replace with … preserve the beginning and end of the device name; this important because some devices end with Port1, Port2 etc.
    This how macOS Finder also do it.
    Screenshot 2020-08-04 at 13.37.38
  • Critter&Guitari Organelle - cuts the end, replace with … but some how ports get named MIDI 1, MIDI 2 if similar Device names are connected

Hope some ideas are helpful :wink:

1 Like

I was thinking you could have a scrolling function to display long names. I’ve started coding an example of what I mean and should have something to share later this evening.

EDIT: My brain got all soggy. I’ll post something tomorrow instead of this evening.

@okyeron, here’s some code that attempts to demonstrate scrolling text for long device names and long midi types:

Forked code

https://github.com/jaseknighter/midi-monitor/blob/master/midi-monitor.lua

Device name scrolling is only apllied to the first item in the list of midi events. Also, long midi type strings below the first item in the list are truncated.

The variables that determine when to scroll/truncate text strings are:

  • scr_max_length_device_name
  • scr_max_length_col4

Please feel free to reuse the code as you see fit.

I’ll check this out later tonight.

But funny enough I had already redone the name/message lengths stuff earlier and was going to push an update tonight. :slight_smile:

1 Like

updated to v0.6.2

Changes

  • fix for long midi device names
  • rewrite/shorten long message types
  • change pitchbend amounts to -8192 to 8192
  • increase enc 1 sensitivity
  • ignore active sensing
4 Likes

Great update!! all changes nicely improve usability :wink:
Thanks for all hard work!

Is it possible To make the script sends midi value ? I explain.
I was using monitor to send midi notes from my launch pad via a USB to my fates then another USB to midi cable was sending those notes to my synth. Problem is monitor wasn’t sending cc values.
Do you think it’s possible ?

…So a THRU mode?

Yes I guess. I looked at both .lua files on maiden to see if I could merge them together but… lack of skills. Since fates act as a USB host I think it could be a nice feature

Small update:

MIDI Monitor has been added to the Maiden project manager. Reload the community section of the available tab and install.

3 Likes