ADLplug icon indicating copy to clipboard operation
ADLplug copied to clipboard

Lack of automatable parameters renders VSTi useless to blind patch creator

Open ultrasound1372 opened this issue 4 years ago • 4 comments

Hello. I am on Windows using the x64 VST3i from within reaper. The way that I control the few synthesizers that I can use without sight are through the parameters list, what VSTs call the automation parameters. I am missing many critical controls there, unless they are mapped to MIDI ccs which I see parameters for, why? I first would like to give my thanks for the parameters that do exist in the list having their sliders properly labeled, things like the emulation core select and such give me meaningful values instead of just numbers. However I cannot control the ADSR, waveform, panning, and basically everything but the carrier and modulator levels. Like any VST the UI is completely inaccessible to a screen reader and there's really nothing you can do about that, which is why I'm requesting automation so I can manipulate the patches. I would really like to harness the unique sound of the OPL due to its waveforms. Can anything be done here? I'd think the algorithm, waveforms, ADSR, etc could be exposed on each part like you expose the levels now, so when I look at them in the list I have all the controls for part 1, then all the controls for part 2, etc.

ultrasound1372 avatar Nov 29 '19 16:11 ultrasound1372

Hi @ultrasound1372

Only a limited set of controls are available through the parameters, as you have observed. In the initial design, I had put the entire set of controls in there, but some people have reported it to be a problem in practice, because some plugin hosts are going to lag severely in presence of a lot of parameters.

A reason why I kept the operator volumes and not much else, it's because these have a moderately high resolution (6 bit), while others are much less due to limitations of OPL chip registers (2 to 4 bit).

It supports a fair set of standard MIDI and GM, but unfortunately nothing yet that could let you edit.

The best I can possibly do I think, it's to research how to implement Microsoft's accessibility into the plugin. No promises, since it's for me an unknown territory, and possibly complicated, but I'll check it.

jpcima avatar Nov 29 '19 19:11 jpcima

I have an idea that you could implement in the automation side without having to add MSAA, which would break if somebody tried to use the VST on Mac reaper. I was unaware of the hosts lagging because of many parameters, so a possible resolution is to expose all the controls for one part, and above them a part select. The values would be set for the part you're messing with, and then when you flipped the part select slider it would snap the other sliders back to the values for that other part. As long as they were able to update due to receiving program change this could allow a kind of preset tweaking, where I send a program change for a GM instrument on a given channel, switch to that channel's part and make edits. Could this be reasonably implemented?

ultrasound1372 avatar Jan 07 '20 13:01 ultrasound1372

It will an addition of complexity into an already complex state management, which I prefer avoiding. It was this way at the very start of the development. Then I've checked how Roland did in Sound Canvas software as a reference, and I did similar.

I've thought then as an alternative, that I can choose to expose only the parameters of the channel 1. Unfortunately you'll still miss the bank load functionality at this time.

Anyway, given how this had been a request for a little time, it's a reason why I've started this project to make a "OPL3 lite".

jpcima avatar Jan 08 '20 06:01 jpcima

Considering ADLPlug is multi-timbrial, it might make more sense to use assignable MIDI CC's, since each MIDI channel gets its own set of CC's for automation purposes.

V2 by farbrausch comes with two versions of the VST, one is 'single', and the main one is multi-timbrial. It has a 'mod matrix' where CC's 1-7 can be assigned to a parameter and automated on a per-channel basis.

Also, issue #78 is relevant to this discussion. Automation of all parameter is good, but it only takes effect on each new note, which can be a limiting factor. For example, modulating the Release Rate value during the actual release stage, to simulate a damper or sustain pedal. Even if these parameters were available, it would still not be possible. This isn't a chip limitation, but a driver limitation.

bryc avatar Jan 10 '22 05:01 bryc