Category: Tips

Modular Basics

The development of the Editor was greatly inspired by Native Instrument’s Reaktor, with which i had played around since 2000. A few decisions had been made regarding it’s design and workings. First of all, each parameter of each module should be visible as plain number and should be modulateable. To make the implementation easier and the whole concept more consistent it was also decided to calculate everything at the sample-rate. There is no distinction between events and audio-converters like Camel Crusher. For each audio-sample the whole patch is calculated. That means that each module introduces a one-sample delay. Five serial modules therefore need five sample-steps until the input is processed by the last module. While this made programming easy it later led to some brain-twisting in more advanced patches where sample-accurate processing was significant.

the below image shows the interface containing a very basic patch, namely drawing a circle.

you can see the canonical oscillator which is phase-synced by a start gate, a convenient module that issues a gate anytime the processing (or off-line rendering) starts. two 2d-oscillographs show the signals of the sine and cosine outputs of the oscillator. these outputs are also fed to the scope 3d, the main drawing-device in the Modular Editor. It has a lot of parameters, the most important being X, Y and Z. On every sample-step the scope 3d draws a pixel at the given location. One can ignore the Z input in which case it acts as a 2d-oscillograph. When using Z the 3d-position is projected onto the screen by standard perspective projection or optionally by fisheye-lens projection, which was used for the fulldome productions. There are lots of details and stuff about this module but i’ll keep it simple here. As said, each sample-step causes one drawn pixel. At a sample-rate of 44.1khz and a screen-rate of 30fps, that makes 1470 pixels per frame. The whole screen fades to black within an adjustable time so the screen shows the trail or history of everything that got drawn.

Through a small modification in the next patch the visual output gets much more interesting. a second oscillator is used to rotate the circle about it’s y-axis while it’s drawn. The result is a spiral on the surface of a sphere. Note that the saw-output (also called ramp) is used to control the rotation angle. the second oscillator runs at ten hertz so for every full xy-circle, 10 rotations about the y-axis are performed. The inputs of the rotation-module are called X, Y and rotate Z but any axis-aligned rotation can be performed by the right wiring, though it needs some thought-skills to correctly setup a stack of rotations.…