Weekly status update August 1st to 7th
this week I added a new opcode to zerberus - the gain_cc (or also known as gain_oncc in sfz v2). This makes it possible to create single note crescendos in zerberus!
While it was looking at that code I found out that our implementation of amp_veltrack differs from the specification. There the scaling of the impact of the velocity happens in dB but in out implementation it is the gain factor that is scales. Interestingly linuxsampler seems to do the same "mistake" - so I wonder what most people would prefer? Linuxsampler way or the official specification way? I guess this opcode is not used that much but if you know more I'm all ears!
Another bug was fixed in volume based Fluidsynth. This time it was because modenv (which is operating like in the traditional Fluidsynth) and volenv became de-synced which can lead to clicks at the beginning of the sound. See #120061: Clicking sound in playback. This happens because the filter is changing its values to fast. There is actually also a fixme in this source file explaining that this can happen! (Normally when it happens the sound is too silent to notice it though!)
Biggest part of the last week was more development in the soundbank implementation. I made a video which I hope most of you saw.
Lasconic and I had some discussion whether this is the best way this can work - and I changed it that a soundbank itself doesn't change instrument or loads sounds or anything - but adds new instruments that have a changed configuration. I plan to make a new video next week and show you more about it!
So with this reaching a usable stage I plan on starting a sample manager next week and hope I can also add direct streaming of audio data from disk to it. This will hugely improve loading times and memory footprint of Zerberus!