git-moss / DrivenByMoss

Bitwig Studio extensions for many controllers: Ableton Push I/II, Akai APC40mkI/mkII/mini, Fire, Arturia Beatstep, Novation Launchpads / Remote SLs, NI Maschine / Komplete, Open Sound Control (OSC) and many more.
https://www.mossgrabers.de/Software/Bitwig/Bitwig.html
GNU Lesser General Public License v3.0
583 stars 141 forks source link

Some help creating an accessible MCU Control Surface for the blind #216

Closed betov75 closed 3 years ago

betov75 commented 3 years ago

Hi! First, thank you very much for all that precious work. Extremely helpful in Reaper! I want to provide myself and multiple other blind musicians an accessible MCU Script. Right now, i've built a Python bridge between Reaper and my 8 faders MCU Console. I intercept Sysex messages, translate them to ASCII and have them spoken out by a Text to speech module. It works fine! I can touch faders, know which fader controls what. I can switch between banks etc..

My only problem is that MCU 6-character standard is unspeakable. Is it possible to have a parallel sysex message that can send full parameter name? Or at least 16 characters?

That line seems to define the width, am I on the right path: d.setCell (0, i, param.doesExist () ? StringUtils.shortenAndFixASCII (param.getName (6), 6) : "").setCell (1, i, StringUtils.shortenAndFixASCII (param.getDisplayedValue (6), 6));

I'd also love to have the same thing with device name. For example, BBC Symphony Orchestra is shorten to BBCSym and it's hard to understand when the blind user is not used to a plugin.

I don't know a thing of JAVA but i'll try to work with the source to create an alternative script and compile. If the parallele 16 (or more) characters sysex lines for parameters or devices is embedded, it may be easier to stay up to date.

Thank you very much for taking the time to read that novel. 👍

Have a great day.

git-moss commented 3 years ago

Hi, interesting application. I want to stick as close as possible to the MCU protocol (it is misused often enough). But for your application there is a simpler solution. Write a short script which monitors the selected track and the cursor device (not sure how helpful my Bitwig API Youtube video tutorials are for you). Send this information to your screenreader process, you could even use TCP or UDP for this and don't have to use MIDI.

betov75 commented 3 years ago

Thank you very much for getting back to me on that matter. I totally understand your reluctance to add a sysex line to your Mackie Control protocol, completely legitimate. Some very old gear work on that!

Sorry for the delayed response, I've been evaluating the script possibilities within Reaper. I watched your video on Bitwig API, it's so much better! In Reaper, scripts don't really have access to midi ports! Or OSC. It's extremely limiting. I was able to learn and write LUA and Python scripts fast, was able to retrieve all fx's and their parameters, have them spoken out by OSARA (Reaper's accessibility plugin) but no way to match my controller.

So, I've tried to learn C++... but i'm so far from being able to do anything with it soon. And my sight is going fast!

Do you think I can use your (amazing) drivenByMoss4Reaper script to recompile something with full names only for my personal use? I've never used JAVA before, never compiled but I can try to find a way. Your script is my only hope! 🗡️

How do you achieve such a fantastic tool? I'm amazed. I've lost too much time on web coding in my life... !

Thanks again, have a great day. Patrick.

git-moss commented 3 years ago

The Reaper version is a very complex thing with a C++ and Java mixture. I did not publish the source since I do not want (and don't have the time) to support that. If you want to code Bitwig is definitvely the easier way to go.

betov75 commented 3 years ago

Hi, Thanks for your hints I understand. But it's very discouraging. Bitwig is not accessible to the blind. Only Reaper and Logic really are. No hardware outside Komplete Kontrol stuff is. And KK don't have motorized faders. I'll find a way. Arilyn's good. Nice project.

git-moss commented 3 years ago

Thanks :-)

betov75 commented 3 years ago

Hi Jürgen, Sorry for getting back to that closed issue of accessible control surface. Don't worry, i've been able to create the perfect accessible control surface for Reaper using a mixture of Python, OSC and a cursor following everything. This was your advice, I started from there and now, it's limitless. You were very helpful. I'm now completely autonomous, no need to rely on another script. It's super smooth, takes no CPU at all, no real lag. I also want to apologize for creating that issue before, I sincerely thought it was the Reaper driver, not the Bitwig one, not knowing you don't share the source etc.. Thanks for still having been polite. Since you helped me more than you think, do you accept to have your name in my special thanks on credits (spoken) display? Have a great day and once again, thank you for all your great work.

git-moss commented 3 years ago

I am always glad to help and great that my suggestion did fix your issue! Sure you can add me to the credits. Post a link when its ready, I would like to take a look at your solution, in case other people come with the same problem.