Still working on the multichannel stuff in HourGlass.
Plugins/effects in the mixer now work to the extent that things won’t crash or sound corrupted when more than 2 channels are in use. This however was implemented rather crudely at this point, the effects are simply made to process the first 2 channels and pass the rest of the channels unprocessed. I can probably make most of the HourGlass built-in effects support multichannel processing but 3rd party VST plugins are trickier. (Many of them don’t support processing more than 2 channels.) A system would need to be implemented that instantiates several copies of the plugins and gangs the parameters etc…That will be somewhat involved to do and probably won’t make it into the initial HourGlass 1.5 release.
Some things still need to be added. Previewing the loaded sounds probably doesn’t at the moment work for multichannel files or outputs. A channel routing system should be added to the master channel. A multichannel panner DSP effect/module would be nice to have too…
HourGlass can now import and play back up to 4 channel sound files, with output panning of each of the input channels. Adding support for up to some sane number of input file channels isn’t too hard…4 was just a convenient amount to test with, that is different from 2 and isn’t something odd like 3. (The colors of the dots in the Spatialization window indicate which input channel is panned to what location in the output.)
Did a very crude freehand drawing thing for the surround pan positions…It should be clear at least my own mouse freehand drawing skills are not great ;) So I guess I need to add a way to draw straight lines, curves or something to this…(For Tom : This still is about the static pan positions of the grains/fragments. Making the grains have an internal panning envelope is still something I am considering, but not started implementing yet.)
Added some Eel scripting support and visualization of the voice pan positions.
This won’t completely depend on the user being able to write scripts. I will include some presets and probably also think of some kind of a visual designer for the pan movements…
Took some work but now I have a very preliminary surround sound/multichannel implementation working in HourGlass. As evidence, a screenshot from Reaper of a file rendered with the new HourGlass version :
As you can see, the fragments/grains are panned (randomly) across 4 audio channels. All this has been implemented with the minimal possible code to get something running, so this isn’t anywhere near release-ready at this point. I also have plans to make this a bit more advanced than just panning the fragments randomly within a quadrophonic space…(Some of that planned stuff may also be interesting for people doing only stereo productions.)
edit : Here’s a quadrophonic example file if anyone happens to have a suitable setup to listen to it…
More work certainly needs to be done for the spatial imaging and how the pan positions of the sound fragments are determined. (In the example file, the pan XY positions are taken from a uniform random distribution.). I’ve been considering Ambisonics based processing etc…Remains to be seen how it ends up.
Still not much news about anything.
I am currently in the process of making HourGlass build on my new Windows development machine. (HourGlass’s build set up isn’t that “smooth” so each time I’ve updated my computer/OS in some way, it needs to be reworked…Sigh.) I have been considering whether I should do an update based on the 1.4.5 code base…Mainly I am interested in adding at least some basic N-channel (aka “surround”) support for HourGlass. The update would be numbered as 1.5.0. Or if I really want to go to the land of bad jokes, it could be HourGlass 5.1 or maybe 4.0. No promises that build ever appears but if I get started with it well and it seems to run reasonably well, I’ll probably also post the build publicly.
HourGlass 2.x is on “ice”. I still don’t know how I should proceed with that.
Last night I decided it was time to rethink how my CDP (Composer’s Desktop Project) frontend works. I smashed up a graph data structure and then a GUI for that.
This works in all sorts of ways better than the previous system.
edit : More fun with nodes that autoconnect in proximity to other nodes :