I made an app that let's control *all* the parameters of your software synth with just 4 knobs on your MIDI Controller

Audio Plugin Hosts and other audio software applications discussion
Post Reply New Topic
RELATED
PRODUCTS

Post

AUTO-ADMIN: Non-MP3, WAV, OGG, SoundCloud, YouTube, Vimeo, Twitter and Facebook links in this post have been protected automatically. Once the member reaches 5 posts the links will function as normal.
Hi,
I made an app that let's control *all* the parameters of your software synth with just 4 knobs on your MIDI Controller. It works by turning your MIDI controller into a computer mouse.

Demo VIDEO: https://www.youtube.com/watch?v=hVVDJ-jgU80
FEEE download for Win+Mac: https://www.kvraudio.com/product/pointe ... an-matting or https://github.com/smatting/pointer-cc/ (https://github.com/smatting/pointer-cc/)

Some background: I was looking for an alternative to the computer mouse for controlling all the parameters on my retro software synths. MIDI mapping was frustrating to me, because these instruments have way more parameters than I have knobs on my MIDI controllers. MIDI mapping is also very tedious.

I was experimenting with an alternative approach: using the MIDI controller, but simulating the mouse pointer! This solution turned out to be much more ELEGANT and FUN that I expected. So I spent the last weeks turning my experimental script into a full app with the hopes that it would help others in the same way.

Let me know what you think! Feel free to ask for support here if you're having troubles setting it up.
Last edited by smatting on Sun Apr 21, 2024 4:25 pm, edited 1 time in total.

Post

This is a wonderful approach. Do you have to teach the app where to snap the mouse pointer or dies the VST make that available to the app automatically? Is it easy to to switch control to another plugin?

Thanks , looks very promising.

Post

Yes you have to teach it: you have take a screen shot and mark it with dots, but it doesn't take very long. See the GitHub page for the documentation on the details.

Yes, it automatically switches between instruments! It detects the open windows and takes into account where the mouse pointer is to figure out which instrument window to target.

Post

Thanks for the response.

Post

Its a fun idea, though I would probably rather get a trackball instead...; - )

Post

Pointer-CC
Instructions on GitHub.
GitHub Release page.
KVR download page.

Comment originally posted on Youtube:
Great idea! Thanks for this, I'm giving it a try with Sylenth right now. Just creating the PNG with the dots. Does it matter how big the dots are? Is there a minimum or maximum size for these dots?

Also some helpful points would improve things...
1. On Windows please can you save all config files and any other app related stuff in the app folder by default. This allows the app to be portable. It makes it so much easier to backup the app and any config's you've setup. So within the pointer-cc folder, have a 'Config' folder or 'User' folder that stores all the configs into. Or, at least add the option of where to save the config folder, or detect if it exists in the apps folder to use that first.

2. To make editing a text file easier, please change the format of inst-renameme.txt to inst-renameme.INI as it allows us to use syntax highlighting to make it easier to read.

3. Please add an option to rescan a PNG for an updated screenshot. For example, I tested Sylenth with just a few controls to see how it worked, but then added more circles for more control, but found I had to restart the Add Instrument.

4. Minor issue... very slow movements aren't picked up. Unless I've missed something?

5. Option to disable 'freewheeling' as I have endless rotary encoders, it isn't required. But as I keep accidentally nudging it, it's an issue.

6. Quite some time ago, I had the idea to use mouse and have a single knob that adjusts whatever is under the cursor, but nothing existed like the old Novation Automap anymore. This does exactly that, so I would also like to disable the X and Y knobs too please.

7. Allow app to be minimised to tray.

8. Would also be great if we could map clickable encoders, or is that possible already? So, rotating an encoder works as normal, but click and rotate makes either fine or coarse adjustments, depending how you want it. Or the click could activate a button under the cursor, just like a mouse left-click.

9. Adjust so that the cursor point appears centre of the circles/rectangles you add to the screenshot rather than top-left.

10. For some reason, although the controls work fine, it stops my DAW (MuLab) from being able to recognise this device. Used Akai MPK MiniPlus to test first. Just tried Arturia Beatstep Pro and that works ok too. The issue is that whichever device is used with Pointer-CC, it is not accessible to my DAW (MuLab). So I can use the Akai keyboard and all controls, but the Beatstep works ONLY with P-CC. This means that whatever device is set to be used with P-CC, it is not accessible via another application. Is there a way around this? Is it a Windows issue? Perhaps a driver is needed?

Thanks.
Stefan's reply: wrote: @StefanMatting
Hi, thank you for your in-depth feedback!

Regarding point 1.: I'm thinking about making this config folder configurable, then you can choose it freely on your machine. Currently pointer-cc saves its config in AppData, which is where Windows apps are supposed to save their working / config files.

Regarding point 2.: The actual configuration format is actually TOML, so the correct file ending should be .toml. I chose .txt regardless so that all users can open with clicking, without having to install - or even know about - text editors. Maybe we could the bridge the gab to text editor users such as you and me by driopping a https://editorconfig.org/ file in the config directory that enables TOML syntax highlighting for .txt files.

Regarding point 3.: That's a great idea, but bit tricky to exactly define: How to preserve the changes the user has made to configuration file given a new set of coordinates. For example: How would you know if a new point of from a second screenshot is A) a point from previously unmapped control element or B) a minor correction of control element. I think a better solution would be an built-in editor of the points instead of relying on dots on a screenshot. But it's a lot of work.

Regarding point 4.: I need to look into this.
'
Regarding point 5.: I think this is already possible: you just have to remove the freewheeling mapping form the config for that.

Regarding point 6.: Yeah makes sense. I think that's not hard to add.
'
Regarding point 7.: Same, will do.

Regarding point 8.: Yeah, I'm missing this functionality myself. I will add this.

Regarding point 9.: I think the cursor is intended to be placed in the center, rather than the upper left. If it appears on the upper left then probably there is a small imperfection in the mapping from the screenshot coordinates to the window coordinates. This can happen if there a border, or if my assumption about the sizes of the window decoration are not correct. Maybe I can improve the situation by adding the possibility to nudge the overall mapping by some offset horizontally and vertically.
-
My reply: wrote:Added point 10 above. This is a major issue!
Thanks for reviewing and accepting the ideas.
2: As INI files are opened by default in Notepad, it wouldn't affect users. Adding EditorConfig seems like a lot of work for something that just needs .ini adding to the naming of the file when it's saved and P-CC recognising that as it's config files instead of searching for TXT files. Wouldn't that be a simpler solution?

4: If it's any help, I was using an Akai MPK MiniPlus to test Pointer-CC. This has smooth endless encoders, ie, not notched. I then tried using my Arturia Beatstep Pro, which has notched endless encoders. Moving them slowly doesn't work, but move them faster and they work.

9: Maybe I've set the circles too large? I made them suit the screenshot size, so they are 12x12 pixels against a screenshot size of 908x591. Is there a minimum or maximum size? Would Pointer-CC pick up, say, squares of just 2x2 pixels? I'll give it a try actually and report back.
I've also found that the Beatstep encoders have their values shown in the display, but when their value reaches minimum or maximum, ie, 0 or 127, they seem to stop transmitting and therefore stop working. I suspect it's down to Arturia? But then I tested the MiniPlus and it does exactly the same! FFS! Bloody manufacturers!

Is there anything you can do about this? Maybe a 'Pickup' mode where the Parameter waits until it reaches the value specified on the hardware encoder? This would negate the need for the 'feedback' option, as the slider, knob or encoder would just pickup the value as it's rotated past the actual parameter value. Many synths have this function. Then only 3 sliders, knobs or encoders are required. But I feel it necessary to keep the feedback as an alternative for users who prefer that way of working.
Last edited by sl23 on Mon May 06, 2024 1:35 pm, edited 4 times in total.

Post

Will other devices be supported, like trackpads and trackballs?
And maybe SysEx and NRPN?

My SP-404Mk2 doesn't work with P-CC. It is added as a MIDI device, but knob movements aren't picked up.

EDIT: Tested screenshot with 2x2 pixel square and P-CC worked ok with that too.

Post

I seem to have made a discovery wrt size of the dots. perhaps the documentation should state this too...
Using the small 2x2 pixel squares has made P-CC more efficient when using X and Y knobs, but also has possibly reduced the effect of slow moving knobs? I think the larger dots may have confused P-CC's detection?

Point 10: In addition to the points made regarding knob tracking above, I tried to set my MiniPlus knob from Absolute to Relative, which is basically the Pickup I mentioned.
Akai MiniPlus Manual wrote:Knob Mode -
Absolute: knob position directly corresponds to MIDI CC value (0 – 127).
Relative: knob position corresponds to knobs in your DAW.
Now, the Absolute Mode works in P-CC, except if the MPK knob reaches minimum or maximum value BEFORE the software (VST/CLAP/DAW) knob, then the software value stops and does not increase or decrease further despite turning the MPK knob.

But when I set the knob to Relative Mode, the software no longer functions correctly, and seems erratic, jumping about without any smooth adjusting going on.

The thing is, when I assign same MPK knob, after closing P-CC, to any DAW/VST knob, it works as expected in Absolute Mode. ie, the software adjusts to the hardware knob value. Relative Mode in this instance, seems to act as an On/Off switch. Switching a software knob from Min to Max.

Post Reply

Return to “Hosts & Applications (Sequencers, DAWs, Audio Editors, etc.)”