Mixer suggestions

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

Anonymous user
Mixer suggestions

Hi! Congratulations for a great software. I have been using Virtual SoundCanvas as a virtual sinth for quite long, but sound is average and cannot load patches as your sinth does. I think you can easily improve the mixer with simple changes as:

  1. Moving the channels volume sliders dinamically according with the volume control change value (7)
  2. Adding active vumeters to every channel to clearly show which channels are playing. Vumeter level can be taken from note velocity. For a more simple implementation, you can only make the loudspeaker icon in each track to flash when playing.

Going further, you could also add knobs for pan, reverb and chorus values :)

The only thing that is disapointing me from this great software is the song ending. It seems that the connections with the device is cut when the last note finishes, so if the note has a reverb effect applied, the effect is not played after the note, making the song ending too abrupt.

I hope you find this suggestions interesting.

Posts: 1972
Joined: March 25, 2012 - 01:19
Feedback

Thanks for your suggestions.

  1. Volume sliders are meant to be "additional" to the volume control change recorded into MIDI. See it like to e Windows Mixer, spitted into MIDI channels.
    Suppose you have a MIDI with a too louder guitar track: you can lower its volume slider to 50% and that track will play at 50% all over the time. If the MIDI author set a volume change into MIDI file, this change is "added" to your 50% but without moving the slider (I think this will be misleading for users...).
  2. This was already requested, but the underlying library doesn't support it (it only returns the master volume).
    I already asked BASS author if he's going to add this feature but he said it will require a lot of CPU.
    Anyway your suggestion to intercept noteOn and noteOff messages is interesting; flashing active channels will greatly help finding out which one needs to be muted.

As for the song ending, could you please check if VirtualMIDISynth icon disappears at song ending (when the synth is shutted off). If yes, it could be the player that closes the device too early, so the chorus effect can't complete. This could also be an architectural issue, because VirtualMIDISynth is a DLL multimedia driver, so if the player unloads it there's nothing I could do on my side.

If you tell me which player you're using and send me a sample MIDI I'll have a look...

Anonymous user
Thanks for your quick reply!

Thanks for your quick reply!

With respect the volume, I understand your implementation, but then, what happens in case you have a track at too low volume?. The sliders do not help in that case. In my proposed implementation, since normally the volume control change is at the begining of the track, you easily see tracks at low level by the slider position and can set them up. There are other more elaborated songs with several volume changes during play. In these songs you could see volume changes in the mixer by the sliders moves.

You could also keep the current implementation and add a switch to change mode to read/write the volume control change, so sliders reflects the current vontrol value and moving them send a new control 7 value to synth.

For tracks without volume change control on them, the default value is 100, I believe.

With respect the midi player, I use Karafun Player and I´ll check if it has any setting not to close the device too quick.

Posts: 1972
Joined: March 25, 2012 - 01:19
Brainstorming

You're talking about definitive changes to a MIDI song, i.e. one with a too low or too high track.
In this case VirtualMIDISynth is not the right tool, IMHO.

These changes are needed EACH time you play that MIDI file; it also happened to me to play such kind of files.
I edited them once for all with a simple MIDI editor software (I'm not a musician, I only patched volume or tempo changes), making my changes permanent.

Doing this "patch" with the MIDI Mixer will force you to wait till the play starts (or reaches a specific time) and so correct channel slider position just before (or mostly just after) it happens.
What if you have to change 2 or more channels?

MIDI Mixer was added to help in "equalizing" volumes during live play. Think about a karaoke session: at start you can play track 4 (usually the lyrics track) at full volume, then when the singer feels comfortable with the song, you can lower it to zero. You can even "reactivate" the channel if he/she gets lost ;)

> what happens in case you have a track at too low volume?
your question gave me an idea: adding a "Gain" feature to each channel...
Let me think about it, I'll add to my TODO list.

Thanks for this brainstorming :D

Anonymous user
Volume

I could be wrong on this - I haven't studied the ENTIRE spec. - but as I understand it, there actually aren't any global volume commands.  Each note has its own velocity and aftertouch and that's it.  I think the way that the faders work now is that every velocity and aftertouch gets scaled by the fader value before it gets to the synth.

To correct low volume, perhaps the unity gain position could be 50% or 70% (sqrt(2) if you want to get fancy) of the way up instead of the top?

I don't know if the MIDI data itself is actually visible to the UI or not.  If it is, it should be easy to implement both pre- and post-fade meters (maybe one meter per channel that's switchable) based entirely on velocities and aftertouches.  If it's not, then you're kind-of up a creek, if you know what I mean.  I like the idea, though.

This might be getting out of hand at this point, but what if you had an MRU list of MIDI files and their final settings?  If you play one again that's in the list, all the settings are preloaded as they were when that file finished playing the last time.

Anonymous user
Mixer suggestions

Not really. It is only the posibility to receive and send control changes from the sliders as it does the great VSC from Roland. It has also switches to change the fadders function among different control changes. Perhaps this is too much to make the program really efficient but doing it only for the volume level would be nice.

Think about one thing: Midi volume value for one track can go from 0 to 128, so even if you implement a gain function, which is a multiplier, if the volume value is 0, it will remain 0, and if it goes over 128, it will stay at 128. For this reason a see much more clear to act directly over the volume midi message as any midi controller does.

Jusy in case you don´t know the VSC mixer, here is it. There you can act directly over any midi parameter in realtime. In fact you can also change the instruments ;) even though nothing is saved.

http://www.midiking.com/otherneatstuff/images/vsc-mp1.gif

I hope you find this interesting.

Thanks again.

Anonymous user
With respect the sound

With respect the sound cutting at the end of the song, I can avoid it using Midi Matrix mapper and Midi Yoke virtual midi ports. After opening Midi Matrix it opens all output ports, including Virtual MidiSynth and it keeps it open (I know it because the mixer shows up). Then I map Midi Yoke 1 input to Virtual MidiSynth output and redirect the Karafun Player output to Midi Yoke 1. It is a little bit complicated but is the only way I've found to avoid abrupt song endings.

Do you have any easier solution?

Thanks.

Posts: 1972
Joined: March 25, 2012 - 01:19
Not possible, sadly

No, sadly there's no solution at all; it's an architectural issue and it can't be solved. VMS is a DLL and if the client software (KaraFun) decide to unload it, VMS DLL will be unloaded instantly; it olny has the time to close all open handles quickly. Maybe version 2.x (see here) could improve this situation a bit, but the fail is on client side.

Posts: 1972
Joined: March 25, 2012 - 01:19
Volume adjustment on BASS

Volume adjustment on BASS library is done on the "analog" side, not on MIDI messages. So a gain can be applied even if the channel is already set to 128.

As for the level meter on each track, it will be a CPU intensive task without being really useful.
I agree with Ian Luck from un4seen (BASS creator) on this.

But I agree on having a kind of "activity indicator" on each channel, useful for debugging purposes and also on live usage to find out which track is actually playing.

MRU si not really possible: VMS is a (virtual) device, so it has no knowledge about the file you're playing; that's up to your player.
It only receives a MIDI stream.

Anonymous user
There are control changes (CC

There are control changes (CC) for many track parameters as volume(7), expresiion(11), pan(10), reverb(91), chorus(93), etc. Theese control changes affect all notes in the track, so if you set the track volume to 0 using the corresponding CC 7, it doesn't matter the note velocities, they will not sound at all.

In fact the final volume of the notes is a combination of note velocity value, track volume value and track experssion value.

 

Pages