Over in DC offset on VCO outputs is bad, part #137 - #33 by baconpaul I suggested that perhaps some of the common problems people identify with modules could be auto-detected or some such. And said if I did it I would open up a quick new thread in development. This thread is that.
As part of a return to some rack work, i’ve sort of revived the bacon plugs modules. These modules always kinda sucked. I wrote them at Rack 0.5 and the first commit was on Dec 11, 2017. They are ancient and were sort of my first foray into rack. But it’s kinda useful to have a set around so I recently fixed some up to do this and that you know.
But in the latest I’ve added a new module, useful for developers only, called LintBuddy. It’s a simple module. It has an input and an output. You hook that input or output up to an output or input of another module and then it traverses the engine graph and finds a reference to that module that it can then run tests on.
It has two tests. The first is are all your inputs, outputs, and params labeled. The second is do you have any bypasses configured. But it’s coded of course so we can add more.
And here’s the label check. You can see one parameter in Clocked doesn’t have a name. (I presume this is a deprecated one of some form since the tooltips all seem to be there).
Anyway this helped me clean up some edges on surge and on bacon plugs so figured I would share. If you want to add a test, it’s pretty easy code. If you want to run it, just build the plugs. I’ll push this to the library soon enough also.
And also all ears on other things you might want to check. The one I’m interested in is: does paramquantity.stringtovalue of paramquantity valuetostring result in a stable conversion, for instance.
OK, I tried it out on Elastika. Pretty cool start!
My module has a lot of controls, so it took me a second to figure out I could use the mouse to drag and scroll the list in LintBuddy. One slight oddity is the scrolling text moves vertically faster than my mouse does.
I connected LintBuddy’s output probe to Elastika’s TILT input CV. When I click on LintBuddy’s “Labels Check” button and select “Probe Bypass”, VCV Rack crashes:
Just installed the daily build on my Windows system. Created a test patch with Meander and dropped LintBuddy in. Seems to work with no problems, but how do I scroll or tab to the right? Many of the Meander labels go out of view to the right in the LintBuddy module window.
I think this is a productive diagnostic module development effort. Thanks for working on this!
Yeah is there a widget in the rack library that already does scrollable text area? I banged that one together myself and it is obviously in need of work. I should have made that clearer
Let me add a “dump to stdout” button also and a json test
So, one or the other has to be hooked up, I suppose. I hooked up both to Meander but the results are the same with both. (with two instances of LintBuddy)
Well the engine knows the modules on both ends of a cable and will hand you a reference to a running module object. So all I have to do is traverse the engine cables and look for who is on the other end, then you get a pointer to a rack::Module which has the same API
1: adds a “dump to stdout” button until i get that UI less crudulent
2: adds a “json extract” test which will pull the json and if there’s non-null json put it in the info panel. this is really good idea.
any hints on how to do scrollable text display area welcome. Otherwise I’ll just code them up some time.