Usage of Submarine AO modules

Does anyone use Submarine AO modules? I’m absolutely mesmerized and fascinated by these modules but I can only hardly find their place in my patches. Any and all examples would be much appreciated!

1 Like

I can’t explain the theoretical side of it, as i am not that mathematical gifted (maybe Jakub Ciupinski could if he was on this forum).

This is a Mathematical utility that can serve a ton of uses, but if you are willing to attach 2 sources and look at the scope and listen to the results maybe it could take you places where you can find a lot of creative uses for it.

I have attached a strip preset you could use as a starter, beware of audio levels, as the sounds can be very harsh at some times.

Submarin-AO.vcvss (9.6 KB)


Gratuitous plug: use a compressor or limiter to tame out of control levels!


I generally find the Frank Buss Formula easier to use - it has a richer set of functions, more inputs, and you can simply type in your complete formula. But Formula has one major Achilles heel - it only has one output value.

The Submarine AO modules force you to build up a complex formula one step at a time, but with that comes the possibility of outputting intermediate values. For example, with the AO-106 you might have a 6 step computation with the final value appearing in the Y output at the bottom. But the intermediate step values appear in the X outputs to the right. The bottom-most X output will always match the final Y output.

The fact that the outputs are labeled X and Y is kind of misleading. The computation of each cell may have as many as three inputs - X from the left, Y from above, and C from the cell itself. The result of each cell computation is always passed down and to the right - both get the same output value. If the output is feeding into an adjacent cell computation, then the concept of X and Y makes sense. But the final X outputs to the right are simply the answer of the cell immediately to the left. And the Y outputs on the bottom are simply the answer of the cell above.

I have yet to use the AO modules because I have always needed a truncate or round function, and I haven’t figured out a way to do that with AO.


The AO devices can be more efficient than the Frank Buss Formula, but it depends on the algorithm. ymmv.

I hadn’t noticed that truncate was missing. I’ll add it.


It strikes me that if one has the CPU to burn, vcv-prototype make this sort of thing easier assuming some familiarity with luajit.

Doesn’t prototype have a latency of >1 sample?

Doesn’t that depend on what you set the block to? I thought it was single sample by default.

you are probably right.

I use these for all kinds of mathematical operations. Mapping one voltage range to another voltage range just by telling the module a mathematical function is easiest for me sometimes. I haven’t needed the largest of them (AO-136)…yet

1 Like

What kind of maths are people doing in this? Not a maths guy at all so I’m curious to see some examples.

Here’s an instance of AO-136 from a strip I made. The purpose of the whole device is to create a bank of six square-wave LFOs, and make their oscillations more or less periodic using CV. A kind of rhythm irregulator, if you will. One part of the solution I came up with was performing this function on six voltages, in parallel:

fx = (1 / x^2) * 10

Probably there’s a more clever way to do this, and obviously I’m only using three columns out of the AO-136’s six, but in this case I knew a formula I wanted to use and deployed it in the most direct way I knew how. I love the Submarine modules, I think they are indispensable!


Very interesting, thank you.

1 Like