You are here
Home › Forum home › VirtualMIDISynth › General discussions & questions › SysEx System Exclusive msg via VMS ›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!Pages
- syryo
- Posts: 44
- Joined: June 28, 2018 - 13:02
- Ziya Mete Demircan
- Posts: 30
- Joined: April 19, 2017 - 08:14
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.
- falcosoft
- Posts: 129
- Joined: September 25, 2013 - 16:38
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.
- syryo
- Posts: 44
- Joined: June 28, 2018 - 13:02
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?
- falcosoft
- Posts: 129
- Joined: September 25, 2013 - 16:38
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.
- syryo
- Posts: 44
- Joined: June 28, 2018 - 13:02
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.
- coolsoft
- Posts: 1972
- Joined: March 25, 2012 - 01:19
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.
- syryo
- Posts: 44
- Joined: June 28, 2018 - 13:02
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?
- coolsoft
- Posts: 1972
- Joined: March 25, 2012 - 01:19
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
Navigation
Login
Support me
Click here if you want to support CoolSoft using PayPal