This is cool and all but definitely pushing the limits of what it was designed for. Also, I’m getting reports it crashes the WebUI - which I’ll look into, but not right away. Use with caution and definitely double test before going live with it.
I was curious if it was out of bounds, which is why I posted asking for input. Thanks for the warnings, I’ll be careful with it till you have time to see about it. I haven’t had crashes but I imagine that the level meters create a lot of processing to handle. It doesn’t amount to a lot of resource drain but requires a lot of comparisons. I created it as an indicator for my auto fader rack that I could put in the Controller Bar and it ballooned from there. I never used the WebUI so I guess that’s why I didn’t see any crashes.
I did take a look at the Web UI and noticed right away that it wasn’t as accurate and responsive as the native show notes views were so the traffic is more than the Web UI can keep up or the redraw speed of the browser is lagging or maybe something else. When running audio meter style the Web UI lags by a bit but gives the overall RMS value reliably. My guess is that if that the repeated screen updates are the possible issue. I think that for control value indicators it would be OK because those events are less numerous and spaced out. Anyway more observations about it.
I was fooling with a BPM monitor (different thread) that showed a blinking dot on a floor video screen (WebUI): On for 1/2 a beat then off for 1/2 a beat. At about 120 BPM, the Web UI started skipping blinks. Native screen never misses a beat (ha! ha!).
Would be cool to have something like widgets where it would be possible to put tiles on a canvas and add various elements to a tile. I am normally showing the UI of the plugins to be able to see the status of the knobs and drawbars, but the UIs contains a lot of unecessary information - a small tile/widget with just the essential would make it possible to see a lot more on the screen.
Just dreaming, I know :-).
The WebUI can be edited to only show what you want, so you could pick and choose which parameters of which plugin to show. I guess you could bind any plugin parameter to a CC and send to the onscreen keyboard then it can be displayed on the WebUI. That would be just like what dave_dore did to show the VU meters. Just bind another plugin variable. I just bound a synth volume control “knob” to the dave_dore’s VU meter and the bars move when the knob is turned. Bindings below to send both Level and Synth Volume to Same VU meter on WebUI:
This is some help on editing the WebUI.
Some way to show pre-programmed widgets on the WebUI would be nice. When I’m running Cantabile, the laptop is behind me and there is a video screen at me feet. Anything to allow the WebUI to show more information would be appreciated.
Not necessarily, but not imminent either.
FWIW I create my mixer rack meters for MIDI Designer (and my X-Touch) using standard MCU meter output messages from Cantabile. These messages are basically Channel Pressure messages.
When a standard exists it’s often good to follow on, since it immediately makes it compatible with other recipients.
This is fantastic @dave_dore!! Definitely going to play with this, as it would be useful to me (bearing in mind Brad’s warnings).
It would also be nice if we could insert a VST plugin UI into show notes (for example have a new kind of “Note” for inserting into show notes that just hosts a VST UI). That way we could just use a VST for this kind of thing, and avoid having to have it as a floating plugin that could obscure stuff.
Good to hear from you! I thought of you when I made the discovery. I started out trying to make a bar meter for the Controller Bar buttons to show the condition of my auto fade rack and it led to the Show Notes uses. I think that using it for slider indicators is not taxing the Web UI but porting level meters to it may be dicey. I haven’t had crashes with it natively or with the web UI yet so I’m going to test it few weeks to see what happens. Here are some examples controller button I made with an indicator in the upper field. Since my fader rack has various trigger modes where I can stop the fade at any point it helps me stop at about the right spot level wise. I just go by the number of boxes or the color of the last dot. The lower field shows whether a fade is happening or paused and what direction it is going along with the CC numeric value of the controller number being displayed
and it has uses for warning indicators.
Great to see you out playing again!
Sounds like the old anchored GUI mode in Cantabile 2 but with a twist …
@dave_dore I’ve now added some controller meters like these to my Show Notes song template and to a few existing songs I have, and it works great! Really nice clear view, I love it! Very ingenious work Dave!!!
Hehe, couldn’t resist: I’ve serialized @dave_dore’s original formula for the linear meters. Reduces a bit of the complexity of chained ternary operators, so it might make things a bit easier to digest for Cantabile.
$(cc(7,16)>0?"🟦" : " ")$(cc(7,16)>10?"🟦" : "")$(cc(7,16)>20?"🟩" : "")$(cc(7,16)>30?"🟩" : "")$(cc(7,16)>40?"🟩" : "")$(cc(7,16)>50?"🟨" : "")$(cc(7,16)>60?"🟨" : "")$(cc(7,16)>70?"🟨" : "")$(cc(7,16)>80?"🟧" : "")$(cc(7,16)>90?"🟧" : "")$(cc(7,16)>100?"🟧" : "")$(cc(7,16)>110?"🟥" : "")$(cc(7,16)>120?"🟥" : "")
Not sure if that helps with the WebUI issues? If they’re mainly UI-update-driven, then this shouldn’t be much different, so I wouldn’t bet on it…
I did some experiments with different types of tempo indicators
top to bottom are the scripts used
$(cc(40,16) == 1 ? “①” : cc(40,16) == 2 ? " ②" : cc(40,16) == 3 ? " ③" : cc(40,16) == 4 ? " ④" :"")
$(cc(40,16) == 1 ? “” : cc(40,16) == 2 ? " " : cc(40,16) == 3 ? " " : cc(40,16) == 4 ? " " :"")
in place serial numbers
all are fed by the same binding. You can create different value settings for higher numbers of beats here if you expand on the ternary statements. All examples are 4/4.
all examples are set to full font size = 100.
Nice method @Torsten, I learn something every time you post.
How high a BPM can be successfully displayed via WebUI? My experience has been missed beats on the WebUI >=130 BPM. Mains screen is always good, but WebUI misses beats.
Not sure, I was testing natively. Will look.
It starts to miss redraws on the Cantabile Web UI between 240 and 250 bpm. My drummer likes to take a glance at my laptop to get a visual tempo guide so I was looking at a way to make a big display type for show notes. Show Notes Native runs up to 300 BPM
Mine skips at 130 BPM, but I’m blinking a dot in time using a Midi file every 8th note with cc54 on channel 16. If cc=1, show the dot. if cc<>1, overwrite with a blank.
I believe we may have the same results as my code is sending a redraw at 2x BPM (8th notes) which would be around 260 BPM. Thanks for the answer.
I came up with this other method using the ‘strpart’ function. It allows simple editing of the CC source for the whole expression and I changed the number of indicators to split into multiples of 12. That makes the first yellow indicator 0 db exactly. Way less edits if you make multiple bars lol.
$(strpart(" ;🟢;🟢🟢;🟢🟢🟢;🟢🟢🟢🟢;🟢🟢🟢🟢🟢;🟢🟢🟢🟢🟢🟢;🟢🟢🟢🟢🟢🟢🟢;🟢🟢🟢🟢🟢🟢🟢🟡;🟢🟢🟢🟢🟢🟢🟢🟡🟡;🟢🟢🟢🟢🟢🟢🟢🟡🟡🔴", cc(7,2) / 12))