Reverb & chorus effects defaults
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!- SoundChaser
- Anonymous user
- coolsoft
- Posts: 1978
- Joined: 25 Mar 2012 - 01:19
That behaviour is not due to VirtualMIDISynth but the underlying BASS library; it has a default value of 40 for Reverb controller.
Since VirtualMIDISynth does not touch this, if your MIDI file doesn't touch that controller too you'll have 40 as a final effect value.
I'm working on adding an user setting for it on the MIDI Mixer, but that's not easy, because it must me "realtime": I mean, if your MIDI has Reverb controller changes, the new reverb slider should follow it while playing.
- falcosoft
- Posts: 129
- Joined: 25 Set 2013 - 16:38
Hi !
Regarding BASSMIDI reverb and chorus defaults the situation is more complicated. But from a programming point of view your situation is simpler.
The default value of 40 you are referring is actually 0x40 (decimal 64) and can be considered 50% as the range is 00..0x7F (decimal 00..127). But this value is NOT the same as the reverb controller value (MIDI controller 91).
These 2 values are independent from each other. The default value 0x40 can be changed or set only with SysEx: F0 43 10 4C 02 01 0C 40 F7.
And the midi controller message 91 is interpreted as a value WITHIN this range.
So if you send a midi controller message 91 with value 127, that is interpreted as a reverb of 0x40. But if you change the reverb level to eg. 1 with SysEx: F0 43 10 4C 02 01 0C 01 F7 then midi controller message 91 with value 127 will be equal to Reverb level 1.
So you should not worry about user feedback since you change only the SysEx param within your program and that cannot be changed with midi controller messages.
Best Regards:
Zoltán Bacsko
Falcosoft
- coolsoft
- Posts: 1978
- Joined: 25 Mar 2012 - 01:19
You gave a really detailed explanation about how the reverb works.
I didn't know about the SysEx you mentioned (I'm not a musician), thanks for explaining it so clearly.
As first thought I'll implement the reverb control like this (based on your suggestions), but I still have some doubts:
- add a new Reverb slider, creating some new space on the mixer or in a dedicated window
- the value of the new reverb slider will be saved as I already do with track volumes
- at device initialization I'll send that SysEx with the value of the new slider
- from now on the value of controller 91 will be interpreted using the new limit
now the doubts:
- what should I do if the played MIDI contains that SysEx?
- should the new reverb slider change its value according to the received value?
- which value should it save when closing? the one selected by the user or the one received from the MIDI?
Thanks again for your support.
- falcosoft
- Posts: 129
- Joined: 25 Set 2013 - 16:38
Hi!
> "from now on the value of controller 91 will be interpreted using the new limit"
Just to make things clear, this is handled by bassmidi itself you don't have to implement it in your program.
> "what should I do if the played MIDI contains that SysEx?"
Very unlikely. I think this reverb Sysex is Bassmidi specific. In my program Soundfont Midi Player 2 I'm just ignoring bassmidi specific Sysexes at file level. I'm only saving the values that are set in the config dialog of the program. I don't think it would be wise to save a new default value of the reverb engine itself because of a file sending an engine specific sysex (but I doubt any real world midi files contain bassmidi specific sysexes. I have not found any yet).
By the way here is the detailed implementation chart of Bassmidi. (I don't remember whether I have already sent you this or not)
https://kode54.net/bassmididrv/BASSMIDI_Driver_MIDI_Implementation_Chart.htm
- coolsoft
- Posts: 1978
- Joined: 25 Mar 2012 - 01:19
> Just to make things clear, this is handled by bassmidi itself you don't have to implement it in your program.
Yes, that was clear.
> Very unlikely. I think this reverb Sysex is Bassmidi specific.
I made a search to improve my knowledge on this argument and I found this:
http://support.xmplay.com/article.php?id=93
It seems that's an XG standard SysEx (rarely used, I agree).
So I came to this conclusion:
- the value of the new reverb slider should never change, even in the unlikely case the played MIDI contains this SysEx
- at each device initialization (MIDI reset) it should always get back to user seleted value
- the same feature should be applied to MIDI controller 93 (sustain) and its SysEx: F0 43 10 4C 02 01 2C 40 F7
Since these new settings doesn't change at runtime, I can place them into the configurator dialog... this will help keeping MIDI Mixer dialog as small as possible.
I'll prepare a beta version, so I hope you could test it.
Thanks again for your help.
- falcosoft
- Posts: 129
- Joined: 25 Set 2013 - 16:38
"I made a search to improve my knowledge on this argument and I found this:
http://support.xmplay.com/article.php?id=93
It seems that's an XG standard SysEx (rarely used, I agree)."
I can confirm the reverb level sysex is working with standard Yamaha S-YXG50 softsynth.
But the referred xmplay documentation just repeats the Bassmidi charts since Xmplay is using Bassmidi, too :)
Anyway I think you have made the best decisions regarding your implementation plans.
Best wishes:
Zoltán Bacskó
- coolsoft
- Posts: 1978
- Joined: 25 Mar 2012 - 01:19
I just released a beta with this feature.
Feel free to post your feedback here:
http://coolsoft.altervista.org/en/forum/thread/180
Navigazione
Login
Clicca qui per supportare il mio lavoro con PayPal
oppure offrimi un caffè