Weekly status update July 5th to 17th
this time a small update - but I think some big changes are going to happen till the end of GSoC!
First of all some update on things from last time - the #include and <global> opcodes made it into the master branch. I changed some things about how the preprocessing works and while I was at this I also fixed some things about comments. Currently comments that didn't start with a line we're not recognized as comments - but they are now.
Since #include and #define work the right way one can use FreeAria sfz. I made some Meta-SFZ to load them - find them here. You need to adjust the path according to your install of the FreeSounds.
I also started sfz-parse test (currently there is just one lonely test - but since I now have an idea how we could implement tests it should be easy to add more!).
Further more a bug with the sample based volume in Fluidsynth on windows was fixed (and I got now a windows development setup!) There was a huge distorting (sounding quite similar to a ring modulator. It happened because of rounding errors in floating point math. Switching from float values for amp increment to double/qreal fixed that.
MidiSpanners made a huge step forward. I started implementing soundbanks - you can find an example xml file here - tell me what you think about this structure and if there is anything missing you would like to be able to edit!
There is also a new opensource orchestra soundfont which opens up and plays in master Zerberus but doesn't sound so nice. So I'll have a look at it during the next week and try to find out which opcodes are most important to make it sound nice!
Also I'll add more tests next week and try to finish the soundbank implementation.
The last big change I have in mind during GSoC is a sample pool that keeps track of the samples so that it each sample will just loaded one time. Later (probably after GSoC) this one could also implement stream from disk reducing the memory footprint and the loading times.