SysEx System Exclusive msg via VMS

Please let our ADS show!

This sites offers only FREE software and it's supported by a few advertisement boxes (no intrusive popups).
Please:

  • disable your AdBlocker by adding CoolSoft website to whitelist
  • give the proper cookie consent
  • enable JavaScript for this website

This seconds wait is to let you update your browser configuration...

Ok, I've done the required changes... now show me your content!
!!! Please enable JavaScript !!!

Pages

Posts: 44
Joined: June 28, 2018 - 13:02
Re: SysEx System Exclusive msg via VMS

I agree it is not correct to send sysex msg with invalid value but if you try sending the following two GS VOLUME sysex msgs you can notice that volume increases: so bassmidi does not check value but anyway apply the value.

F0 41 10 42 12 40 00 04 7F 3D F7 (7F correct)

F0 41 10 42 12 40 00 04 FF 3D F7 (FF invalid but still responsive)

I have had a look at the list and I noted that it seems bassmidi recognize, for example, XG REVERB TYPE and LEVEL setting but not GS. There are a lot of midi files containing GS sysex, so that's an issue.

Posts: 30
Joined: April 19, 2017 - 08:14
Re: SysEx System Exclusive msg via VMS

Yes, You are right.

This faulty sysEx should be silently ignored on the BASS side.

In fields, accepting higher values than specified may create undesirable problems.

Posts: 129
Joined: September 25, 2013 - 16:38
Re: SysEx System Exclusive msg via VMS

1.

Yes, it seems Bassmidi also accepts F0 7F 7F 04 01 FF FF F7  GM Master Volume message that is also out of specification.  Furthermore these out of spec values do not set maximum volume (that is 100% volume) but function as a Gain. So values above 0x7F can cause haeavy clipping and distortion. Fortunately no sain software/midi files that I know of send invalid SysEx GM/GS Master Volume SysEx messages so in parictice this is not a big problem, but I also consider this behavior a bug.

2.

As  I have written that list of supported SysEx messages is not exhaustive (but still the best I have met so far). Bassmidi also supports GS like Reverb/Chorus type and Reverb/Chorus level SysEx mesages. You can try them with my Midi Player (Device Settings dialog -> SysEx Effects). There you can set both XG and GS Reverb/Chorus settings. Bassmidi reacts to them correctly.

Other GS SysEx messages that are not included in the referenced document but I checked and Bassmidi supports them are:

Tone Map (to set Banks/Instuments), Set Rhythm Part (to set Drum channels other than channel 10) and SC-88 Mode set (works just like a GS Reset) messages.

Posts: 44
Joined: June 28, 2018 - 13:02
Re: SysEx System Exclusive msg via VMS

Having a look at https://www.un4seen.com/doc/#bassmidi/BASS_MIDI_StreamEvent.html (Global events) it seems that bassmidi let you call routines that set Volume, Reverb, Chorus passing values that do not "directly" correspond to those in sysex msgs.

I don't see in the library a function like, for example, MIDI_EVENT_SYSEXMSG.

So I can imagine that to accomplish GS sysex msg REVERB MACRO (F0 41 10 42 12 40 01 30 0X ck F7 where X=00-07 Room1,2,3,Hall1,2,Plate,Delay,Panning) the calling routine (driver) should know and interpret the incoming sysex msg and call bassmidi library accordingly. Correct? What about VMS?

Posts: 129
Joined: September 25, 2013 - 16:38
Re: SysEx System Exclusive msg via VMS

Bassmidi enables you to use its own routines if you want, but it does not force you to use them. So no, this is not the exact way Bassmidi is working.

You can use Bass_Midi_StreamEvent() calls with Bassmidi specific constants if you want, but you can also use BASS_MIDI_StreamEvents() calls with the  BASS_MIDI_EVENTS_RAW  flag (https://www.un4seen.com/doc/#bassmidi/BASS_MIDI_StreamEvents.html).

Using this flag you can send raw midi messages (including SySex) exactly the way you would send to a real hardware synth (e.g. such as Roland SC-55).

So you do not see a function like MIDI_EVENT_SYSEXMSG() since it's not needed.  BASS_MIDI_StreamEvents() calls with the  BASS_MIDI_EVENTS_RAW flag can handle all kinds of short and long(SysEx) messages.

Claudio should confirm this, but I really think that for sending SySex messages to Bassmidi VMS most likey also uses BASS_MIDI_StreamEvents() calls with BASS_MIDI_EVENTS_RAW flag, since preprocessing SySex messages just to convert them to Bassmidi specific Bass_Midi_StreamEvent() calls is pointless.

Posts: 44
Joined: June 28, 2018 - 13:02
Re: SysEx System Exclusive msg via VMS

Thank you very much for your clear explanation!
Now I will be waiting for Claudio reply hoping that VMS calls the nice routine BASS_MIDI_StreamEvents() with BASS_MIDI_EVENTS_RAW flag set.

Posts: 1972
Joined: March 25, 2012 - 01:19
Re: SysEx System Exclusive msg via VMS
syryo wrote:
...hoping that VMS calls the nice routine BASS_MIDI_StreamEvents() with BASS_MIDI_EVENTS_RAW flag set.

Of course it does.
VMS does some parsing on received data to, i.e., update instruments shown on the Mixer channels, detect MIDI mode changes (GM, GS, XG) and detect MIDI activity... but at the very end MIDI data is sent untouched to BASS through BASS_MIDI_StreamEvents() with BASS_MIDI_EVENTS_RAW flag set.

Posts: 44
Joined: June 28, 2018 - 13:02
Re: SysEx System Exclusive msg via VMS

Perfect!

So in VMS option "Default GS/XG MIDI effects values", when "Override received MIDI SYSEX messages" is not checked, max levels are initial values sent to bassmidi at VMS startup or at "Apply" press button. In this scenario, if a midi song contains a sysex msg like GS REVERB/CHORUS level, VMS sends them unfiltered. What about GS/XG reset mode? Does it change REVERB/CHORUS level?
Is there a particular reason you called "max" level? Does this option limit the max level?

Posts: 1972
Joined: March 25, 2012 - 01:19
Re: SysEx System Exclusive msg via VMS
syryo wrote:
when "Override received MIDI SYSEX messages" is not checked [...] if a midi song contains a sysex msg like GS REVERB/CHORUS level, VMS sends them unfiltered

Yes, it does. No changes on received SYSEXes, they're sent untouched.

syryo wrote:
What about GS/XG reset mode? Does it change REVERB/CHORUS level?

The GS/XG reset is intercepted by VMS which resets Reverb&Chorus to the configured values.
The "Override received MIDI SYSEX messages" option forces VMS to discard Reverb/Chorus messages received during play.

syryo wrote:
Is there a particular reason you called "max" level? Does this option limit the max level?

Some kind of "historical" reason ;).
See here for a longer thread on the same argument...
https://coolsoft.altervista.org/en/forum/thread/577

Pages