Missing Instruments

Posts: 1
Joined: October 13, 2018 - 02:18
Missing Instruments

I have the soundfont CrisisGeneralMidi and  use it with everything. I used it in application for music notation called Musescore. You can directly load the soundfont onto that application. I could see all of the regular instruments, and additonal instrument variations like Slow Violin or Slow French Horn. When I use VirtualMidiSynth on both FL Studio and MidiEditor,  don't see the additional variations of instruments. This is frustrating because I actually prefer the sound the variations of certain instruments on certain songs rather than the original. Both FL Studio and MidiEditor show the exact instruments available and the both use VirtualMIDISynth as Midi Out. Can someone tell me how to be able to use those extra instruments. Or atleast explain to me why I can't.

Posts: 71
Joined: September 25, 2013 - 16:38
Re: Missing Instruments

As you have written  'You can directly load the soundfont onto Musescore'. That's why you can see the exact instrument names, since Musescore can read the instrument list directly from the soundfont itself.

When you use other Midi software that use VMS as a simple Midi out port the software themselves cannot read the instrument list from the soundfont. Actually other Midi software cannot even know that the output port even uses soundfonts or not. So these software usually show the GM instrument list (https://en.wikipedia.org/wiki/General_MIDI#Program_change_events) as the most common one (whether it's correct or not) or may allow you to select the correct instrument definition file (*.ins) manually by yourself.

But VMS itself can show you the instrument list of your soundfont if you click on a soundfont's name in the soundfont list (Soundfont details-> 0:0 = Acoustic Piano etc.).

The 'x:y =' part designates the Bank MSB (Midi message: Common Controller 0) and Program (Midi message: Program Change) that you have to set/insert in your editor/Midi software to use the given instrument.

Posts: 1492
Joined: March 25, 2012 - 01:19
Re: Missing Instruments

In addition to @falcosoft reply (thanks again ;)), there's already a discussion about retriving instrument names from SF2 instead of a static table.
https://coolsoft.altervista.org/forum/post/3792#post3792

Sadly that discussion died, so I'll add this new one to the already added TODO list item here:
https://coolsoft.altervista.org/en/virtualmidisynth/todo

Posts: 71
Joined: September 25, 2013 - 16:38
Re: Missing Instruments

@Claudio:

This would only help VMS to display proper soundfont instrument names (in its mixer dialog) but could not solve the problem of original poster. Namely other Midi software ( FL Studio and MidiEditor) using VMS as Midi out port cannot reach the soundfont instrument list even if VMS itself implements displaying proper soundfont names. It's because there is no standard mechanism in Windows Midi architecture to get instrument names from Midi ports. Contrary e.g. in VST world there are standard functions to get instrument names from VSTi plugins: getCurrentMidiProgram(), getMidiProgramName().

That's why my Bassmidi VSTi plugin can send SF2 instrument names to VST Hosts that support this functionality (e.g. Cubase).

Also in my Soundfont Midi Player I have implemented displaying proper instrument names on channels, you can use it as a reference if you want.

You should be aware that currently there is no simple way to do this with Bassmidi since there is no dedicated function to get the active instrument name for a given Bank:Program combination on a channel. Instead you have to loop through all stacked soundfonts in priority order and get the (not NULL) names with the help of BASS_MIDI_FontGetPreset(). The soundfont with the highest priority that has a non-NULL name for the given Bank:Program combination wins.

Posts: 1492
Joined: March 25, 2012 - 01:19
Re: Missing Instruments

@Falcosoft: yes, you're right.

I'm not going to fix client displayed name but VMS mixer one, as you wrote.

The main motivation to add instrument name on VMS mixer was to help users to quickly find (and mute) the voice track (usually #4).
Maybe, with hindsight, it could have been implemented in a different way but now that's there I'd like to show a much more likely name.

This is not something I'm going to add soon because, as you predicted, retrieving that name is not so easy.

warning

Warning, JavaScript is disabled!

JavaScript is not available, maybe because you disabled it globally into your browser settings or you are using an addon like NoScript.

We do not have any dangerous JavaScript running here.
Please enable JavaScript; if you're using NoScript this image will help you adding CoolSoft to your whitelist.

Thanks for your comprehension and enjoy CoolSoft.