I'm glad you like it, my friend!
What concerns bass.dll (not sound
synthesis but just playback of music etc.), I saw their music sound shaders and I think I understand how the thing actually works under the hood.
Modern bass.dll is able to output in real time an array of up to 1024 audio samples of current music, each in its very narrow frequency band pretty much the same as an analog band-pass filter does. Each sample carries its own volume level and thus the array may be used for fine simulation of a spectrum analyzer.
The set of array samples should constitute the X axis of a 1024x1024 px large 2D bitmap. The Y axis should represent a proportionately scaled volume level of the loudest sample, i.e. the max allowable volume, in the band-pass filter bands. Such a BMP "snapshot" should be taken 30 or 60 times per second (as the CPU/GPU/bass.dll audio buffer permit), converted into an OpenGL 2D texture, and bound to some iChannelX sampler like an ordinary 2D texture would. The texture is then sampled by the graphics shader to modulate its other parameters, etc.
Actually, the number of band samples in the bitmap may be much lower if we aren't going to simulate a full-blown spectrum analyzer. E.g. there may be only 4 sample bands in it, say, some high frequency band, one high-mid, one low-mid, and one mid-bass. And only those 4 samples are going to be used for graphics shader modulation. Given there are 256 gradations of volume level in a sample, the 4 samples can be packed a 1x1 px large 32-bit BMP/texture. BMP creation, BMP-to-texture conversion, and sampling of such a tiny "texture" can run lightning fast and easy for the GPU.
Or you can just take a combined volume output of bass.dll and create a 1x1 px large 8-bit 256-level grayscale texture from it to modulate you graphics to the overall music beat.
BTW video capture is done in a similar way but the number of samples depends on the exact current video frame size, and samples are taken and converted to BMPs at the exact current video frame frequency. There are lots of video shaders on Shadertoy that implement such technique.
Now, the question. Do you think you can provide me with a working scheme to create such BMPs on the fly based on bass.dll's band-pass output as I described above? I can then step in and add texture creation and manipulation code for us to be able to modulate our 2D and 3D display in OR with the sweet sounds of music we like.