Jump to content

Massive improvements to MIDI & OSC monitoring


aitte

Recommended Posts

Feature #1: A list of all seen OSC / MIDI addresses and their last-seen value:

 

Shows every address, the last-seen data type (int, float, string, etc), and the last-seen value (such as the string "+6.0 dB" for example). Has little "status LEDs" next to each address, that light up whenever MIOS Studio receives a message of that type. In the case of MIDI CC's, it should also have a user-typable "Notes" field which lets you write down what that CC is for in a more human-readable note.

 

OSCulator almost does this but very poorly (has no display of last data-values, no support for strings, etc), so here's a graphical example:

 

WnLptTI.png

 

Feature 2: Floating monitor-windows for watching a particular OSC / MIDI message:

 

The ability to open one or more monitoring windows to display the historical values of any int/float-type data. Here's an example screenshot:

 

up9q6Nz.png

 

Feature 3: The ability to filter out undesired messages so that you don't clutter up the log:

 

This could be achieved by checkboxes like in Feature 1's screenshot. To see why this feature is needed, just look at the below mess; I am dealing with Logic Pro's OSC protocol and it fills the screen with "help tooltip" OSC messages which I'd love to filter out. It becomes much easier to work if it's possible to filter out undesired messages, or only show a couple of desired messages:

 

fQdgArR.png

 

 

 

What do you think?

 

These three features wouldn't be hard to implement (speaking as a programmer); they're basically as easy as building an alphabetically sorted list of seen-addresses for OSC / MIDI and rendering that data in a table-view, drawing a glowing indicator light when data is received on a particular OSC address / MIDI CC, and having the ability to open several small monitor-windows that are watching various values over time.

 

I think these 3 things would be the single biggest possible improvement to MIOS Studio and would make it a dream job to work with debugging OSC and MIDI data.

 

What do you guys think?

Edited by aitte
Link to comment
Share on other sites

I think these 3 things would be the single biggest possible improvement to MIOS Studio and would make it a dream job to work with debugging OSC and MIDI data.

 

Funny wording - sounds like MIOS Studio is currently grap, but with your proposed enhancements (ideas stolen from other tools) we could make some $$$ with this tool that I developed during my sparetime? ;-)

 

Anyhow, contributions to MIOS Studio from other programmers are very welcomed!

The source code can be found under: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Ftools%2Fmios_studio%2F

In order to build the application under Windows/MacOS or Linux you've to unpack the "unpack_me.zip" file under http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Ftools%2Fjuce%2F as well

 

The respository can be downloaded with a common SVN client, URL: svn://svnmios.midibox.org/mios32

 

Just send me your enhancements, and I will bring them into the official release.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

No no no no, back up back up a few steps, man.

 

You're the one saying MIOS was crap before. I never said it.  :hyper:

 

I think MIOS Studio is absolutely fantastic. It's awesome. It's super-duper. It's incredible.  :queen:

 

I'm saying that better monitoring of OSC + MIDI data would be the single biggest improvement possible.

 

How much time do we spend monitoring and debugging data? A lot.

 

I don't think you disagree with this statement. And MIOS Studio does everything else perfectly already.

So improved monitoring tools would therefore be the single biggest improvement. It's logical.

 

I can't do the patches for you, though, because I don't know your codebase, and learning it and how it all fits together would take me a month before I can even begin coding, and then just one afternoon to make the patches (they're that trivial). It's a very lopsided exchange and would make me a fully-capable MIOS Studio coder just for one small change. And then what do I do with this knowledge?

 

The changes are basically this:

 

Table view:

* GUI: tableView (a sorted table of all seen addresses)

* Array seenOSCEvents, seenMIDIEvents.

* onOSCEvent/onMIDIEvent: Loop through seenOSCEvents/seenMIDIEvents. If we find the event address, write a new "last-seen value" and trigger the flash() function of the LED in the GUI for that event address. If we don't find it, add it to the array and then call a function on the tableView() to redraw itself with the newly seen event address.

 

Filtering:

* onOSCEvent/onMIDIEvent: If event is in the tableView, and the user has unchecked the checkbox next to it, then don't output this event into the raw textbox.

 

Monitoring:

* onOSCEvent/onMIDIEvent: If the user has opened a monitoring window for this one, then draw the new value in that window.

 

Actually, Monitoring is a slightly-difficult one since it would need a scrollable window-type and graphical drawing of data.

 

However, Filtering can basically fill that need anyway, since it would be possible to hide all other events and just watch the one you care about.

Link to comment
Share on other sites

I know your use case, and I know how to implement this - but working on MIOS Studio is just currently not on my Agenda (I'm currently working on other projects), and for myself I don't see a big benefit (I'm not saying, that the enhancements would have no benefit at your side...)

 

When I'm working with the monitors, I need the full report with history and timestamps, e.g. to check if all MIDI data has been transmitted with expected timings. If something fails in the firmware, I need this information to trace back the reason.

You need some kind of dashboard which shows the last transfered values of the message types + some filtering - something what would be useless at my side.

 

Therefore please understand that such extensions don't have a high priority at my side (and as you notice, other users don't see to be interested as well, otherwise you would have got more feedback on the proposals)

 

However, programming with Juce is fun because the library is well documented, and you could also use it for other purposes in future.

So, definitely worth to learn this and no wasted time at your side.

You've concrete ideas how to implement this, so why not giving it a try?

 

Best Regards, Thorsten.

Link to comment
Share on other sites

The reason I brought up these features is that they would have been a massive help while I was reverse-engineering Logic's insanely-bad OSC protocol, and know that lots of other people would be helped by those features as well, even if nobody has replied here yet, perhaps because they don't really know how useful it is before they've tried it. It's super useful when reverse-engineering MIDI protocols, figuring out undocumented features, etc. When you're able to see a sorted overview of what the other device is doing over time (rather than just a big text dump), it becomes much easier to reverse-engineer. With a combination of Wireshark, OSCulator (which sucks at the table-view but was better than nothing) and MIOS Studio I was able to complete the project and make a remote controller for Apple Logic Pro X which was needed for a big music project. But it was a lot of work. Apple's coders are insane people and have mixed together OSC with regular network data. It was a nightmare to figure out.

 

You bring up a great point about the value in learning Juce, and now I would actually love to do it! I'm not even kidding. I would love to do it. I've been looking at Juce before and at one point in my life considered making audio plugins, and you bring up the great point that learning MIOS Studio's source would introduce me to Juce, so it would definitely be worth learning it.

 

That's why it hurts me to have to reveal that I don't actually have time for programming this even though I want to.  :no:

 

I'm doing the biggest project of my life in my spare time which is taking up all time for the next 18 months.  :sad:

 

If I had a clone, or a brother, or any other way to help me do both things at once, I would love to have the time to just relax and sit down with some MIOS Studio + Juce coding.

 

As it is now, I have no time to spare. I don't even watch TV! It sounds like you're working on something big too (your other project) and I really wish you a lot of success with that.

 

Thanks for everything you do.

Edited by aitte
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...