Still no news on the HourGlass 1.5 release. :( Been occupied with all kinds of more or less relevant stuff lately.
However the release is still in the plans. (Well, I’ve been writing that for the past 6 months so maybe this isn’t so convincing anymore…)
I again did some testing with how to allow entering panning paths graphically…Curves can be added to the path and the path then “scanned” with the usual HourGlass envelope. (Click the image to get a larger animation.)
While this is neat, it does currently have the downside that the added curves can’t be edited later. I need to look into some solutions for that…
Qt has a nice class named QPainterPath that made this easy so far. Various shapes can be added to path and the path can later be evaluated according to a percentage value. This in turn allows creating look up tables that the audio code can use to obtain the panning positions. Hopefully Juce has something similar for the future…(And yes, this similar system could be used to implement the fragment internal panning too, but I will still have to see if it’s worth it doing that.)
I am only now again looking into the HourGlass 1.5.x code.
If things go well, an initial beta release will happen during this month. For Windows I will probably need to require the users to install the C++ runtimes separately. A big and long sigh, but what can I do. That crappy way of doing it is what Microsoft wants. :(
Some progress (click image for bigger animation) :
Finally did some work on HourGlass so as to not forget about it all.
The multichannel stuff for the VST plugins is just about getting actual multichannel plugins to run more properly. I bumped into crash issues trying to use the GRM Tools Spaces plugin, which has 32 inputs and 32 outputs. Well…Of course the HourGlass code has had just 8 channels worth of buffers allocated for VST plugins for many years. (Even before doing work on the multichannel stuff, I bumped into some plugin that wanted 8 I/O channels by default, so I provided that many back then already…)
It’s another matter making mono or stereo only plugins run as pseudo multichannel. I will try to make that happen at some point…
The latest commit for OS-X is a nice bonus. I wanted to myself see the ini files for HourGlass on OS-X and it was quite a hunt! The default location the Qt framework gives for them is quite irritating. So I finally made the ini files be located in /UserName/Library/Application Support/Xenakios. Should be somewhat easier to get access to them now!
I’ve been busy making a new composition during August (based on water sounds…) and haven’t done any work on the HourGlass code. I will be busy with the composition during September too, so a release of HourGlass 1.5 even as a beta isn’t likely soon.
The Microsoft runtime library issue still seems unclear. There isn’t an official update on the issue but some comments in the Microsoft C++ compiler blog indicate it might now be possible to deploy applications with the needed libraries with the application itself without the need to install the libraries first. This isn’t a HUGE issue but it sure is annoying me a lot on principle. Especially considering there have been reports the separate library install may also require a reboot of the computer. I would completely hate having to install something like that myself when trying/updating a software. There is still the possibility to go back to VS2013 too, but I’d rather not, since VS2015 has the newer C++ compiler and standard library. (For the technically inclined : static linking of the C++ runtime is problematic because HourGlass uses the Qt library which has had mentions in the past that static linking isn’t really supported. There may also be licensing implications mixing LGPL licensed code with Microsoft’s code.)
I’ve also started thinking there should probably be more comprehensive support for multichannel operation in HourGlass. The code still has some limitations on the number of channels supported and the fragment spatialization still can only pan to 4 channels. I’ve done some experimenting with a 5th loudspeaker in my set up and have started to like that so much that I’d like HourGlass to be able to do something with it (and more channels in the future) too.
Also I’ve realized there are hardly any 3rd party plugins that support multichannel operation, so having some solution in HourGlass to use those plugins at least in “pseudo multichannel” mode seems essential now…Technically that should be pretty simple to implement but I just haven’t got to that yet. (I feel a bit ashamed about this, since even damn Pro Tools implemented that in the first version that supported multichannel operation back in 2001 or so! On the other hand, Reaper still doesn’t have a convenient solution for it…)
I was almost ready to post a build but bumped to a Microsoft caused issue a few days ago. The latest build on Windows has been done with Visual Studio 2015 which has added an annoying problem of how the software built with it it supposed to be deployed to other computers. It would basically be going back to how things were with Visual Studio 2008 and how I had to tell people to install the Visual Studio runtimes before trying to run HourGlass. Isn’t it great how progress progresses from 2008 to 2015? Oh wait…
I am going to see a for a while if Microsoft will again make it possible to distribute the Visual Studio runtime DLLs directly in the application’s own directory. If they won’t make that possible, I will have to revert back to Visual Studio 2013.
Oh and as a sidenote to Windows XP users…Sorry, that age is now over. HourGlass 1.5.0 won’t run on Windows XP, no matter if it is built with Visual Studio 2013 or 2015. Microsoft says it’s still possible to build for Windows XP with the newer Visual Studios, but I’ve never got that actually to work and I am not really interested anymore in spending time and effort on that. I certainly don’t love Microsoft and everything new they do (as evidenced by the above displeasure with VS2015 and I doubt I’ll be getting Windows 10 either), but sticking with Windows XP just doesn’t seem reasonable to me anymore.