Synth Engine update for more SoundFont support

Started by kinwie,

kinwie

Hi,

I am a CoolSoft VirtualMIDISynth user.
Do you take any user's feedback and request?
I have few for the soundfont parameters which is not supported yet by BASS library

Thanks,
kinwie

Ian @ un4seen

Sure, feel free to post any requests that you have. Of course, I can't promise that they will be implemented, but they will at least be considered :)

kinwie

Thanks, Ian

I was suggested by Claudio to ask and post a request here.

First, what i've asked is about soundfont modulator support by the BASS engine. I've performed several test that conform the sf2 modulator is not yet supported. Well, the modulator is part of the soundfont standard spec.

Then, i also check on sf2 parameters to see which one works or not. So far, only these four that not working within VMS/BASS engine :

- Keynum to hold (for Volume & Modulation envelope)
- Keynum to decay (for Volume & Modulation envelope)
- Fixed key
- Fixed velocity

They are quite useful parameters for sf2 designing. For example, the fixed velocity can be very useful to override the volume of the velocity response.

I understand that maybe sf2 modulator could be complicated to implemented in the BASS engine, but maybe there's a chance for it?

Other question is about the modulation/filter envelope (AHDSR) but i will continue it later in next post

Ian @ un4seen

Do you have any example soundfonts that make use those options? If so, please upload them to test with here...

   ftp.un4seen.com/incoming/

kinwie

I just made one example of synth sound from an old soundfont,
which use fixed velocity to make the volume velocity to no response (zero) ---> edited (was typo: fixed key)
this kind of setting should be common for organ sound too.

i click the ftp link, but how to upload it? i have no clue how to put the file there :)

if you need another examples of another parameters, please tell me, i'll find or make a soundfont of that.

for the "keynum to decay" parameter usage, you can test it with an old soundfont, called SynthGMS.sf2, which is a standard E-mu's 1MB general midi bank. The piano preset use that parameter, so at higher note the volume envelope decay quicker (shorter note)

Ian @ un4seen

The simplest way to upload to the FTP server is to open the link above in Windows Explorer. You can then drag'n'drop (or copy'n'paste) the file(s) into it.

I'll check out the SYNTHGMS.SF2 soundfont.

kinwie

i just successfully drag 'n drop the file via win-explorer, it is uploaded i guess.

a little info for the files inside the rar :
- the example soundfont use "fixed velocity" 127
- i include a midi file and a wave/bounced file
- if you play the midi with that sf2 with VMS or XMPlay, the volume of the low velocity notes become lower too, while it should be constant/no change, as you can hear in the wave file.

* similar to this function can be achieve using the modulator too,
with the "Note-on velocity" as source and "Volume/Attenuation" as target

thanks, Ian

Ian @ un4seen

Thanks for the test files. I can see the "Keynum to hold/decay" options in Vienna and the SF2 specs, but I'm struggling to find "Fixed key/velocity" options. Please clarify what/where those option are. A "fixed key" could be achieved by setting "Scale tuning" to 0. That should already be supported by BASSMIDI though, so I guess you're referring to something else.

kinwie

You're welcome...

I've been not using Vienna for very long time, so i can't remember where the 'fixed key/vel' parameter placed.
But if you look at the SF2.1 spec, they called as "Keynum" and "Velocity", they are parameter No. 46 & 47.
Both of them can be seen clearly within newer sf2 editor like Polyphone or Viena (one N).
I'm sorry, i use different names for them.

Yes, you are correct about the 'fixed key', that it's quite similar with the 'Scale tuning' and same result can be achieved.

And I also had explained that the 'fixed velocity' can also be achieved using the modulator function, but the modulator not yet supported by BASS.
IMHO, volume setting is essential in sf2 designing and sf2 spec only have the "Attenuation" where the volume can't be higher than '0 dB', so overriding volume level for samples at low velocity can be done by using 'fixed velocity' or the modulator.
*I've checked also that make 'Attenuation' setting to e.g: -6, won't make the sound louder in VMS or XMPlay, which is a true condition.

So, if the modulator can be implemented, then i think the 'fixed velocity' can be ignored an use modulator instead.
Well, at least modulator for Note-on velocity (Key on velocity) to control parameters like Volume/attenuation, Filter cutoff or Sample-start offset... will be very nice.
And hope the 'keynum to hold/decay' can be included :)

For simple saying about the sound quality of BASS engine...it's Amazing!

kinwie

Quote from: Ian @ un4seenA "fixed key" could be achieved by setting "Scale tuning" to 0. That should already be supported by BASSMIDI though, so I guess you're referring to something else.

Sorry, i was in hurry, mis-typing "fixed velocity" use in the example soundfont as fixed key

Ian @ un4seen

Quote from: kinwieBut if you look at the SF2.1 spec, they called as "Keynum" and "Velocity", they are parameter No. 46 & 47.

Ah yes, there they are. Here now is a BASSMIDI update for you to try, which should support all 4 of the things you requested...

   www.un4seen.com/stuff/bassmidi.dll

It hasn't been tested very much yet, so please report how you get on with it.

kinwie

Thanks a lot,

I have it tested, all 4 parameters works perfectly!
I tried with a lot of settings, high, medium and low parameters value and also with several different sf2.
They are all great.
This is really awesome...

kinwie

I just re-test the update again, they works okay.
I will inform Claudio about this or hope he also read this thread.

Really thanks a lot, Ian.

*for the Mod/filter AHDSR, i think they just fine and only need some adjustment in the soundfont itself.

nicorac

#13
Quote from: kinwieI will inform Claudio about this or hope he also read this thread.

I'm reading the thread ;).

I'll wait for both the x86 and x64 versions of BASSMIDI.dll because I need both of them to rebuild VirtualMIDISynth.
Hope Ian will build them soon.

@kinwie: thanks for the detailed request and for having it forwarded here.
@Ian: thanks for being so kind with all of us, users of your great work.

Ian @ un4seen

Good to hear that the update is working well. The changes will be present in the next BASSMIDI release. In the meantime, you can use the update above, and here's an x64 build too...

   www.un4seen.com/stuff/bassmidi.zip

nicorac

#15
@Ian: I just released an updated version of VirtualMIDISynth (1.9.1) with the new DLLs.
Some antiviruses had false positive reports with the 32bit version of BASSMIDI.dll.

This is a detailed VirusTotal scan of the DLLs included into VirtualMIDISynth 1.9.1:

BASSMIDI.dll
------------
32bit (3 positives):
https://www.virustotal.com/it/file/438e4671f24c3e528b026afcbfa394764e2c10697ae5d425b49ae7d329643918/analysis/1400493438/
64bit (clean):
https://www.virustotal.com/it/file/8e46663a2ca16cbba6a60e1f1f5343ae07eecfe3213215dd4eb8207813f25f9d/analysis/1400493535/

BASS.dll
--------
32bit (clean):
https://www.virustotal.com/it/file/a3b00967d5c4ef1a2b4980183934d46ef36cee4b3dc1b2a6da1f820d63448390/analysis/1400493848/
64bit (clean):
https://www.virustotal.com/it/file/eda3f66eedc49ff9b9506c1ccf679a7822104c771eaab3afa367f0d6a2c9bbd5/analysis/1400493675/

VirtualMIDISynth.dll
--------------------
32bit (clean):
https://www.virustotal.com/it/file/6bfa7dcd5aff3091514556b3754b3ca4757d0ab94244f263959d25bbc41564ff/analysis/1400493932/
64bit (clean):
https://www.virustotal.com/it/file/6c1c40e5f1adfc9072540d10242ccc3a4526c5825d8e25c7fd2b60020581388d/analysis/1400494034/

The "virus" is Heur.Packed.Unknown, which is (I suppose) an executable packer.
I know this is really annoying for programmers and maybe it will automatically fix with next antivirus update but... I thought it worths a notice ;)

nicorac

UPDATE: Today 3 antiviruses mark bassmidi.dll (32bit) as infected:

Bkav: HW32.CDB.1e13
Comodo: Heur.Packed.Unknown
TrendMicro-HouseCall: TROJ_GEN.F47V0519

kinwie

@Ian, When testing, I didn't notice this, because i don't have any antivirus installed on my system.
(they slow down my DAW sometimes randomly)

@Claudio, so far i don't face any problem, so is that okay if i stay with the v1.9.1 or should i rollback to previous version?

nicorac

Since we all trust Ian and his work, this is a FALSE POSITIVE, so there's no problem using it.

I added a warning on VirtualMIDISynth webpage and version 1.9.0 stil available for everyone not trusting 1.9.1.

Ian @ un4seen

Quote from: nicoracThe "virus" is Heur.Packed.Unknown, which is (I suppose) an executable packer.

Yep, that will be down to the DLL being packed. The affected virus scanners should eventually pick up on it, although I think in some cases that might not be until the DLL is an official release. There are a few more tweaks that I want to make before the next BASSMIDI release, but it's probably not all that far away.

nicorac

That's fine, I'll wait for it.

It would be great if you upload the final DLLs to https://www.virustotal.com to check if the issue has gone.

rv

Hello Ian,

Can you publish here a list of supported SF2 Generators?

I am designing sounds, but I am no sure witch parameter will BASS undertand

Generators types can go from 0 to 58.

You can even post only numbers of supported generators :)

Thank You

Ian @ un4seen

The update above added support for the last few SF2 generators, so they're all supported now :)

kinwie

Yes, I have them all checked. Those last four completed all sf2 parameters/generators.

rv

Congratulation Ian !!!!

That's why you go now SFZ

Need new challenges :)