Wireless Audio Modules [BETA]
Posted: Wed Jul 09, 2014 12:35 am
Hi All,
Finally got something a bit more useful out of my experiments with data sharing. Audio Transmitter and Receiver modules that allow sending audio streams between plugins. Nodes are given names so that you can set up 'channels' for different audio streams - each transmitter must have a unique name, but multiple receivers are allowed to tap into the same 'channel'. An 'Auto' mode for connections allows them to be easily switched on the fly.
Sorted out the problems I was having before with the DLLs - everything is now embedded, and the modules can be put into the toolbox safely.
And the best part is that in testing so far (ancient Q6700 WinXP machines!), CPU load is very low - fractions of 1% per connection (a little higher when 'auto' nodes are scanning for a connection). And latency is only a single ASIO buffer (though for some reason, it's much longer in Reaper if transmitter is on a record enabled track, and receiver is on a playbback track - some sort of latency compensation CPU optimisation, I think).
This is just a BETA at the moment, as testing so far has been restricted to my own machines (and I've only been writing C++ for a few weeks!). So, as well as the wireless modules, there are a couple of very crude plugin modules that are export ready - they have error reporting built in, so if you have trouble with them, hopefully there'll be some useful de-bugging info presented.
Note that they'll only work properly for plugins that are in the same VST host - so that they're sharing the same ASIO audio clock. Even then, watch your ears/speakers/headphones - if the synchronisation fails, it won't sound nice!!!
NB) Buried deep within the modules is a DLL primitive - DO NOT click the boolean true connected to the 'Embed' input, or the 'DLL Detach' link - if you do that, the code for the embedded DLL will be cleared, and you will need to reload the schematic before making VST plugin exports!
PS) Big shout to Tzarls - your tips on where to look at improving my C++ were exactly what I needed!
Finally got something a bit more useful out of my experiments with data sharing. Audio Transmitter and Receiver modules that allow sending audio streams between plugins. Nodes are given names so that you can set up 'channels' for different audio streams - each transmitter must have a unique name, but multiple receivers are allowed to tap into the same 'channel'. An 'Auto' mode for connections allows them to be easily switched on the fly.
Sorted out the problems I was having before with the DLLs - everything is now embedded, and the modules can be put into the toolbox safely.
And the best part is that in testing so far (ancient Q6700 WinXP machines!), CPU load is very low - fractions of 1% per connection (a little higher when 'auto' nodes are scanning for a connection). And latency is only a single ASIO buffer (though for some reason, it's much longer in Reaper if transmitter is on a record enabled track, and receiver is on a playbback track - some sort of latency compensation CPU optimisation, I think).
This is just a BETA at the moment, as testing so far has been restricted to my own machines (and I've only been writing C++ for a few weeks!). So, as well as the wireless modules, there are a couple of very crude plugin modules that are export ready - they have error reporting built in, so if you have trouble with them, hopefully there'll be some useful de-bugging info presented.
Note that they'll only work properly for plugins that are in the same VST host - so that they're sharing the same ASIO audio clock. Even then, watch your ears/speakers/headphones - if the synchronisation fails, it won't sound nice!!!
NB) Buried deep within the modules is a DLL primitive - DO NOT click the boolean true connected to the 'Embed' input, or the 'DLL Detach' link - if you do that, the code for the embedded DLL will be cleared, and you will need to reload the schematic before making VST plugin exports!
PS) Big shout to Tzarls - your tips on where to look at improving my C++ were exactly what I needed!