2sinNoiseLPFrLFO-sub-Ws is a Max patch made up of a synth, a lighting controller, and a sequencer, originally developed to animate the installation Wechselstrom, where it was connected to 2 self-made subwoofers and 5 light projectors.
click on the image below to download the Max collective and project folder as well as a version that is already mapped to KORG nanoKONTROL (2sNLrsW-KnK.mxf). the text following it is a guide to 2sinNoiseLPFrLFO-sub-Ws.
the synth consists of 2 sine wave oscillators, a noise generator whose output passes through a low-pass filter, and a random LFO. the first 2 dials at the top-left (“sin1 freq” and “sin2 freq”) set the frequency of each oscillator to a value between 0 to 80 Hz, and the top-right dial (“sin mix”) controls the mix between them.
the 3 dials below them control the low-pass filter through which the output of the noise generator passes. the left (“LPF cutoff”) controls the filter’s cutoff (in MIDI notes, ranging from 12 to 72, that is, from C0 to C5), the middle (“LPF res”) controls the filter’s resonance, and the right (“noise mix”) controls the mix between the sine waves and the filter’s output.
“rLFO rate” and “rLFO glide” control an LFO that produces a random signal of a controllable rate (“rLFO rate”) and smoothness (“rLFO glide”), which can be used to modulate all the parameters mentioned above (as well as its own). to modulate a parameter, set the blue number to the right of the parameter’s dial to a value other than 0. for example, set the one next to “sin1 freq” to 40 and the dial will start moving. the blue needle will still point to the stationary value before the modulation, but an additional gray needle will monitor the actual constantly changing value. this value is equal to the blue number next to the modulated dial, multiplied by the signal produced by the random LFO, and added to the dial’s stationary value. note that the modulation can be either positive or negative (the random LFO produces a signal between -1 and 1). “rLFO rate” is the only exception, as the modulation is not added to the dial’s value but multiplied by it. for this reason, it cannot be negative and ranges from 0.1 to 10 (its zero-point is 1).
the last dial (“volume”) controls the master volume. it cannot be modulated by the random LFO, and instead, the number to its right provides an additional control over the gain, ranging from -18 to +18 dB. this was made to allow variations in the volume of different presets (read below for more about presets) as well as to allow clipping, which may be dangerous for amplifiers and loudspeakers but could also be used safely and artistically to enrich the sometimes too “pure” sine waves.
the 5 boxes in the lighting section to the right of the synth represent the 5 light projectors that were used in Wechselstrom (as can be seen in the illustration above, made by my collaborators, Fabian Petignat and Jonas Vogel, at the beginning the plan was to use 4 projectors, but later an additional one was added at the bottom). we controlled the projectors by sending MIDI messages from Max to cuelux, which was used for translating the MIDI messages to DMX and for controlling the projectors. as cuelux limited us to only 8 MIDI controllers, Jonas Vogel, who designed the lighting, had to decide how to divide the 15 lighting parameters (each of the 5 light projectors could have 3 inputs: red, green, and blue) into 8, and his choice is also reflected here.
click on “lighting” to open a window for editing the lighting parameters. the rows represent each of the 8 parameters, and the columns represent a “base” value and 5 modulators: “slw sin”, a slow randomly varying between 0.05 to 0.11 Hz sine wave; “2s imp”, an impulse recurring every 2 seconds; “sig1”, the amplitude of the signal coming from the mix of the 2 sine waves; “sig2”, the amplitude of the signal coming from the filtered output of the noise generator; and “rLFO”, the output of the random LFO of the synth.
opening 2sinNoiseLPFrLFO-sub-Ws for the first time, you should see 23 presets. the first is used as a “reset” button, and 2 to 23 are the presets we programmed for Wechselstrom. to recall a preset click on a circle, and to save a preset shift-click on a circle. it is also possible to open and save preset files by clicking on the corresponding buttons at the top-left corner of the main window (the Wechselstrom presets are saved in “WsPresets.json”). both the synth and the lighting parameters can be saved in presets, and every value will be stored except that of the “volume” dial. note that the number to the right of the “volume” (the gain), however, is saved.
the sequencer part of 2sinNoiseLPFrLFO-sub-Ws uses the presets to create sequences. it has 2 modes: “random” and “script”. in random mode, presets are randomly selected and random sequences are generated. the range of the presets to be used can be defined (a preset will not repeat until all the other presets in the defined range were played), as well as how long it will take to change from one preset to another, and the type of transition that will take place (which can be “gradual”, “immediate”, or “random”, alternating randomly between “gradual” and “immediate”).
script mode allows to prescribe a sequence. for example, “3 21 160000 21 23 160000” is the 2-step sequence heard and seen in the 5-minute video excerpt from Wechselstrom. it starts from preset 3, changes gradually over the course of 160000ms to preset 21, and then changes over the course of another 160000ms to preset 23.
to turn on the sequencer click on the “on/off” toggle. the current preset, the next preset and the interpolation value will be monitored. note that while the sequencer is turned on the dials and preset buttons are locked as the parameters are constantly driven by the sequencer. nevertheless, glitches can still be produced by clicking on the dials and preset buttons while the sequence is being played.
in Wechselstrom we used random sequences of presets 2 to 23, changing gradually from one preset to another every 3 minutes. the sound, however, was not only produced by electronic means: while the sequencer was on, apart from occasionally tweaking the synth parameters using a KORG NanoKONTROL, i also placed different objects on the speaker cone of the self-made subwoofer with which 2sinNoiseLPFrLFO-sub-Ws was played, and touched it with my hands, creating various rattling sounds. to make it more interesting to me, i made a list of the objects with which i had experimented, and asked the computer to suggest to me occasionally a random subset of this list (0-3 objects). try to click on the “objects” button to receive such a suggestion. click on “edit” to see the list of objects and/or edit it. experimenting with objects while 2sinNoiseLPFrLFO-sub-Ws is being played is highly recommended.
setting the audio driver and devices, as well as the MIDI input, is to be done by clicking on “extras” and selecting the desired driver, inputs, and outputs from the drop-down menus. clicking on the texts to the left of the menus will refresh their content.
most of the parameters of 2sinNoiseLPFrLFO-sub-Ws can be controlled via MIDI. they are mapped according to the following list:
1 sin1 freq
2 sin2 freq
3 sin mix
4 LPF cutoff
5 LPF res
6 noise mix
7 rLFO rate
8 rLFO glide
10 sin1 freq mod
11 sin2 freq mod
12 sin mix mod
13 LPF cutoff mod
14 LPF res mod
15 noise mix mod
16 rLFO rate mod
17 rLFO glide mod
note that while the sequencer is on, the MIDI controllers are relative to the values the sequencer sends. to avoid any influence of the controllers while the sequencer is on, keep the controllers in the middle.
by default 2sinNoiseLPFrLFO-sub-Ws sends out MIDI messages with the lighting parameters to the controllers corresponding to the “Korg Nano Kontrol” MIDI setting of cuelux:
both mappings can be changed by clicking on “MIDI in table” and “MIDI out table”. for example, to control the frequency of the second oscillator with controller number 80, set a point at x=80 y=2 and change the one at x=2 y=2 to x=2 y=0. to change the output of “red-3,4” from MIDI controller 6 to controller 60, set a point at x=5 y=60. changes can be preserved by saving the “2sNLrsW-extras” patcher after altering the tables.
several keyboard shortcuts are also available. “o” asks the computer to suggest objects to be placed on the speaker cone, “s” turns on and off the sequencer, and “t” retriggers the random LFO. retriggering the random LFO might be needed when changing from extremely low to high rate because the rate of the random LFO is changed only after the next random value is generated (note that clicking on “rLFO rate” also retriggers the random rLFO). another possibility is to set the rate to the minimum value and use “s” to trigger the random LFO manually.
it is also possible to make a mono recording of the output of 2sinNoiseLPFrLFO-sub-Ws. to do so, double-click on “recMONO” in the “extras” window, click on “open” to save the file, and turn on the toggle to start recording (do not forget to turn it off when you are done).
finally, to conclude this guide, i made a recording of a 1-hour sequence similar to the one that was played in Wechselstrom (however, using the “random” type of transitions instead of the “gradual” one). listen to it with a self-made subwoofer and to make it rattle by placing different objects on the speaker cone.
psNLr25kE-sub is an extract of 2sinNoiseLPFrLFO-sub-Ws.