Dynamic labels

0 votes
asked May 20, 2020 in Suggestions (Reviewed) by the-elf (1,190 points)
edited Jun 1, 2020 by MIDI Designer Team (Dan)
I would like anything helping with string data, including this.  This actually seems a combination of two improvements, a display only dynamic control (vs label, which is static), and some string handling.  The show / hide doesn't help here, since the minimum size of the panel is much larger than the label, so you cannot effectively swap out labels with show/hide.  (Works well otherwise.)
Glad it broadly meets your approval too. I'm suggesting relatively limited functionality; the header could include text/background colour, for instance, but I'd take a simpler version soon than a more complex version never! Essentially all I envisage is a unique addresss for a label, then a text offset. If all you want to do it overwrite 7 characters from the 28th text position in Label #6, then this would enable it.
I appreciate the suggestions. It's on the list but not on the roadmap yet and might not be for a while. One thing that will be on the roadmap is allowing you to have a label that JUST displays the named tick value of a control. This is some of the easier-to-implement, basic stuff we're missing.
Thanks for the response, Dan. Static tick lists are OK when you know what possible values will be received. I am now thinking about 7 single-character A-Z tick-list labels side by side to create a 7-character 'dynamic label' of sorts! Whether I can fit 8 of these 7-char blocks side by side across my mixer Layout is another matter, I suppose.
Understood and I agree: this is amazing. Dumb questions: 1) Is it Ascii text encoded in the sysex? 2) what midi target knows how to send back these encoded messages? I can personally think of enough ways to encode text in sysex, but one doubt has always been the second question. Thanks.
Not the OP, but my use case would be pulling text out of Sysex Messages reporting patch, scene, program etc., names.  The length of the sysex coming in is known, and you know which positions would hold the characters to extract.  Instead of V and V number of bytes, something like SS and NN, where SS is the string placeholder, NN is the length.
Okay so we've got some pre-agreed-upon strings, but then... who knows how to send them back to MD?
I'm sending my messages from Cantabile, but any MCU-compatible host would send the same messages. This is why I'm interested in creating this MCU-compatible Layout, since it should work with almost any DAW.
With Cantabile I can send the Sys-Ex string on any event I choose, for example, on song load, crossing a bar/beat point, reaction to a button press... loads of options. Basically, if I can get MD to display the text I can have text in the Layout following the song and showing me what is assigned to any given mixer channel. Page 17 of this document shows the character set that I'm specifically following, but I'm open to whatever makes your life easier: https://www.dropbox.com/s/r7wpumg2a9bzxv4/MackieControlProtocol_EN.pdf?dl=0
Shorter version - standard Sysex messages with standard Ascii encoding.
What software or hardware do I need to own to see these messages happen at a minimum?
Let me get back to you tomorrow. I'll rustle up a Layout that generates scribble strip messages that my Behringer X-Touch responds to and displays. That will give you a working example of the MCU standard message.
That would be great, but then don't be surprised if this takes us a while to implement. Also we have the HUI docs from Reaper, which will be helpful when we're ready.

Please put the layout on this question so we have it around.

Thanks!!!
Here's everything you should need: A quick test Layout with a couple of buttons that populate row 1 and 2 of the display; a text file of my example Sys-Ex messages; a photo of the X-Touch's response to the messages (best photo I can manage!). Some of the Sys-Ex header is going to be device-specific, no doubt - easily remedied in StreamByter: https://www.dropbox.com/s/1aomfwyr1sqgz8w/MD%20Text.zip?dl=0
Just seen an update announced. Is dynamic text in it?
Any word on this yet, Dan? I really could have done with it recently as I set up my rig for a live stream event. Cantabile will let me send sys-ex text per State now, but I can't display it in MD yet.
Hey Paul, we're just barely keeping pace with Apple and actually falling behind a bit. There are some small bugs in iOS 14 and we *just* managed to get a build working. Things are taking a long time because we extremely busy doing fundraising (i.e., day job).

So I talked to SpookyZoo the other day and it turns out he's got some weird solution using StreamByter which uses Named Ticks in the current MIDI Designer to respond to labels sent back from the Circuit. Could be useful to you. Send me an email if you want and I'll put you in touch. It's pretty technical work but at least it might unblock you. And from what I know, you're not shy about putting in the work.

Thanks!
Thanks, Dan. I can certainly take a look, but it's a lot of text to find room for on a panel (8-char labels for each channel, Song name, State names...). I'm not sure it would be tenable. But I'm open to trying.
...had to edit my comment to answer to attach files below....
Thanks for this. Unfortunately I don't think this is going to fly for me. I need 8 channels of 7-char channel names at the least, plus Song name and State name. That's a lot of characters to find space for on my packed mixer Layout!

Given that we are all trying to find ways around the lack of it, I hope a dynamic text box soon finds its way to the top of Dan's priority list!

1 Answer

0 votes
Hiya. The solution that Dan was referring to was my way of retrieving and displaying patch names from Novation Circuit into MIDI Designer via a SysEx patch dump.

Essentially what I did was place 16 short sliders in a row. These all used the same named ticks I created to display ASCII characters based on their Hex values.

Locating the address in the SysEx patch file from Circuit showed me that the Patch name started at the 10th Byte and would span for 16 characters.

I then used some very simple rules on the StreamByter (longhand, no looping logic) to parse the values from the SysEx dump and display them across the sliders.

There have since been some Syntax additions in the MIDIFire version of StreamByter that I have used for a more complex version of the code. I was personally always using the MIDIFire StreamByter for my parsing as the patch name was just a small part of a larger layout which had controls using NRPNs and these require a delay flay between messages so everything is not sent at once and cancelling each other out.

Anyhow, I've tried to put together some docs here of both the simple and complex versions. This is a layout that only has the function of retrieving the currently loaded patches in Novation Circuit for Synths 1 & 2. There is a momentary SysEx button in the MD layout to trigger the dump.

Hopefully attaching a zipped folder with everything in.

Let me know if you have any questions,

cheers,

Stuart
Downloads: 286
MDPRO - CIRCUIT Patch Names Only.zip
Downloads: 287
Images
MD LAYOUT PIC - Circuit Patch Names Only.jpg
MD LAYOUT PIC - Circuit Patch Names Only.jpg
answered Nov 20, 2020 by spookyzoo (440 points)
That's impressive!. But as I said above - it's not going to work for me. I have a lot of dynamic text to find room for - up to 2x7 characters for each mixer channel, plus Song and State name. That's a lot of text to find room for using that method. I'm still hoping for dynamic text boxes based on the MCU protocol for a future update.
...