Author Topic: Pan CC10 MSB + CC42 LSB Support Needed for Visually Impaired Listeners  (Read 122 times)

Jason Glass

  • Posts: 4
Hi Ian,

Claudio over at CoolSoft wrote nice things about you and said I should reach out to you here.  I hope you might be willing to help.

I'm sorry to cross-post and hope you will forgive me, but my original inquiry seems appropriate here since VirtualMIDISynth uses BASS audio library + BASSMIDI plugin to do the heavy lifting.  It's for a good cause, too, since I plan on giving my app away as freeware.  Some people truly need it.  FWIW, it runs Excel in the background for data processing and sending MIDI commands through system default MIDI.

Quote

...

Thank you for your work on this excellent freeware.  Your generosity is deeply appreciated!

I have written an app for visually impaired users that rapidly sends MIDI commands to generate audio that represents huge sets of engineering data that would take screen reader apps days or weeks to speak out.  It allows users to “see” these in seconds or minutes the way sighted people view Cartesian graphs.  I'm working with a blind beta tester who says that it has changed her life and gives her the ability to work with data as a professional engineer.

It currently works fairly well with VirtualMIDISynth running my custom .sf2 that is configured to allow fine pan controls via continuous controller messages CC10 (pan Most Significant Byte) followed by CC42 (pan Least Significant Byte) before each note-on command.  But it sounds like the synth is ignoring CC42 and only panning in CC10's 0-127 value increments.

As you can imagine, when panning tens of thousands to hundreds of thousands of data points across the stereo field, 128 steps is not a fine enough resolution for blind listeners, because it bunches up points together into pan steps that are clearly audible, especially for people who rely on listening rather than vision to see the world.

However, implementation of CC10 + CC42 for fine panning would allow 16,384 steps, which is ideal for this application.

Can you help by implementing this into a VirtualMIDISynth update?
Please let me know.

Best wishes,
Jason Glass

Again, I hope you'll comment and possibly help out with an implementation.

Have a great weekend!

Sincerely,
Jason Glass
« Last Edit: 11 Jan '25 - 19:32 by Jason Glass »

Ian @ un4seen

  • Administrator
  • Posts: 26223
That sounds like an interesting project. I'm not sure I would be able to tell even 128 pan positions apart, but your users will no doubt have more sensitive hearing! Anyway, here's a BASSMIDI update for you to try, which should add support for CC42:

   www.un4seen.com/stuff/bassmidi.zip

Let me know how it goes. One thing to note is that CC10=1 is 100% left (same as 0) to allow 64 to be dead centre (with 127 being 100% right).

Jason Glass

  • Posts: 4
Hi Ian,

This is wonderful!  Thank you very much.  And fast, too.  Amazing!  I'll pass the link along to Claudio.

Have a great day!


Best always,
Jason Glass

Jason Glass

  • Posts: 4
BTW, I have a listening experiment for you if you want to try it.

I'm a professional audio engineer since 1989, and in 1990 I had a techno band that used lots of sequencing that was rudimentary by today's standards.  Back then I noticed that in cases where a sound was intended to smoothly pan to and from the far edges of the field, it sounded great on loudspeakers but on headphones the steps near the outside edges are painfully obvious with some synths, especially during slow sweeps.  A sequence is best but you might be able to replicate this in real time if you map a controller wheel to pan with a 7-bit CC10 synth.  I didn't learn until this project the hows and whys behind 7-bit vs. 14-bit commands and it only took 35 years to crack that nut.   ;D

Jason Glass

  • Posts: 4
Hi Ian,

With Claudio's help, I was able to replace with the new bassmidi.dll in my installation of VirtualMIDISynth and it seems to work like a charm.

As I mentioned to him, you guys working hard and fast on this gives me hope for humanity.  I can't thank you enough!  My beta tester is going to flip over the Moon.


Sincerely,
Jason Glass

Ian @ un4seen

  • Administrator
  • Posts: 26223
Good to hear that it seems to be working well. Hopefully your tester says so too!