We submitted update 1.3 to the Apple AppStore today. This update adds 8 new shaders as promised.
Some thoughts for extension
I think, we will overwork the entire concept.
At the beginning we merely had the simple idea to provide an easy to use audio visualizer based on the AudioUnit framework, which can select different prepared shaders and apply several audio analysis results to the rendering of visuals via parametric control in realtime…
But now I can see the huge potential of this and want to apply a more complex concept. So we probably will introduce a second dynamic texture layer, which can blend with the first. This significantly will increase the possibilities. Both shaders will be independently in their parameters and computation.
But this will require to specialise the shaders even more. These must support true alpha transparency and additionally all commonly used graphics composition blend modi on the shader level. This all will increase the current parameter set significantly, of course.
The performance of the Metal framework is excellent and 2 layers should work without any problems according the GPU/CPU usage. ( You may have recognized already, that the audio unit is using CPU around 1 percent at current state and so outperforms any other realtime visualizer we have seen yet. )
A later extension ( PRO version? ) also could integrate a shader coder environment, meaning a text editor and just in time (JIT) compiler, where the user can put in own code, which then is validated and compiled in realtime to a new user created Metal shader. This shader coder, of course would user Apples shader language consequently, which is somewhat different than the commonly used GLSL language and also more strict regarding memory sharing and usage.
The significantly increased parameter set probably also would require a new parameter editor and so on. So maybe this all is for a “PRO” version of the JAX AudioVisualizer.
A third step could be a MIDI based parameter sequencer, which allows to create a complete timeline driven storyboard with the entire system for controlled playback.