Permut8 User Guide
Permut8 User Guide
Permut8 User Guide
- version 1.1 -
Table of Contents
Operators ....................................................................................5
Memory Control...........................................................................7
Programs ...................................................................................11
Requirements ............................................................................16
Permut8 is an effect plug-in that embraces the sounds of primitive digital signal
processing hardware. It is programmable to produce a wide range of effects
from traditional delays and flangers to beat-repeaters, bit-crushers and yet
unheard of circuit bent madness. At its core is a 12-bit digital delay with
variable sample rate from 0 to 352 khz. The delay is controlled by a
programmable processor with an assortment of operators, allowing you to
create almost any type of effect you can imagine and many more that you
can't. The input and output stages offers virtual analog components for
saturation, limiting and filtering. The output can be fed back into the input to
create echoes, comb-filter effects and never-ending chaos.
With Permut8 we have made a serious effort to make a plug-in that feels and
sounds like a piece of physical digital hardware and not like your typical
software effect. Permut8 can make aliasing noises that would make any
Commodore 64 green of envy, but its aliasing is different from what you
normally encounter in software DSP. For example, it is unrelated to the host
sample rate and you can tune it exactly with the "clock frequency" knob.
Furthermore, the components that should not alias, e.g. the "analog"
saturation, employ heavy-duty anti-aliasing techniques to avoid doing so.
/ Magnus Lidström
The heart of Permut8 is the 128 kilowords 12-bit delay-line memory, visualized by the
LED array at the bottom of the user interface. The red dot shows incoming audio that
is written to memory, i.e. the "write position". The green dots represent playback po-
sitions for left and right outputs, i.e. the "read positions". Use the two instructions to
change and modulate the read positions with different "operators". They are proc-
essed in order, i.e. instruction 1 is executed first and then instruction 2 is calculated
on the result of instruction 1.
There are two eight-bit parameters per instruction, called "operands". You can set
individual "bits" of these parameters with the switches. If you set MIDI CONTROL to
BITS you can use MIDI keys to flip the bits. In most hosts it is also possible to
"automate" the switches. Shift-click and drag to set single bits more easily.
The current operand settings are also shown in "hexadecimal" format to the left of
the switches. For your convenience you can click and drag these displays to adjust
the settings or click the small up and down arrows to increment and decrement one
step at a time.
AND
The AND operator creates sudden jumps with the read position. It works by clearing
selected bits in the read position data word. Turn on SYNC and flip the higher (left-
most) bits to create beat-repeating effects. The middle bits generate granular "buffer
underrun" effects while the lowest bits can be flipped to achieve "aliasing" like from a
bit-crusher effect.
MUL
MUL changes the rate of the read position in relation to the write position. In other
words it will change the pitch and / or speed of the input audio. The operand is a lin-
ear rate multiplier (expressed in fixed-point notation with sign bit).
Some examples:
(Unlike a proper pitch shifter, there is no crossfading in Permut8 which means there
will be audible clicks as the read position and write positions meet.)
OSC
OSC makes the read position swing backwards and forwards in a triangular motion.
The results range from wobbly backward / forwards effects to subtle pitch vibrato to
The high operand sets the rate of the oscillation and the low operand sets the magni-
tude / depth of the modulation. Both follow exponential scales. The highest (leftmost)
bit can be turned on to achieve a wide stereo effect by inverting the modulation of
the right audio channel. A rate of 00 will freeze the oscillation and turn this operator
into a fixed delay.
RND
Use RND to add sweeping random motion to the read position, effectively modulat-
ing the pitch and / or speed randomly. The high operand sets the rate and the low
operand sets the depth of the modulation. Both follow exponential scales. If you turn
on the highest (leftmost) bit, a wide stereo effect is achieved by randomizing the right
channel separately from the left.
At moderate rate and magnitudes, this operator adds subtle pitch modulation in the
style of chorus effects. At extreme settings it turns into white noise that follows the
level of the input. A rate of 0 will effectively prevent the "sweeping" effect and make
the read position hop to a random offset each time the write position completes a full
cycle, resulting in a "sample-and-hold" style of modulation.
(The pseudo random number generator will generate the exact same sequence
every time you flip the RESET switch.)
OR
The OR operator works like AND but instead of clearing the selected bits, it sets
them. This means OR will "push" the read position in front of the write position, un-
like AND. If you want to repeat the last section of a beat, OR is your friend. (However,
if you put Permut8 in REV mode, OR will work exactly like AND and vice versa.)
XOR
XOR works on the bits of the read position data word (similar to AND and OR). It in-
verts the bits that are set in the operand. This changes the order of playback in dif-
ferent ways. If you set all the bits to 1 (FFFF) the read position will move backwards.
If you leave the higher bits cleared you will reverse short slices of audio, and if you
set only the higher bits the slices will play forwards but in reversed order. Flip the
lowest bits to create ultra nasty "aliasing" effects. The highest (leftmost) bit turns on a
stereo effect that offsets the right channel against the left.
SUB
With the SUB operator you simply subtract fixed amounts from the read positions of
the left and right channel. This create delays where the exact time is defined by the
operands and the clock frequency. The two operands follow exponential scales
where values under 80 are typically used for tuning "comb filter" effects. If you hover
the mouse over the hex displays a popup hint will show the effective delay lengths as
percentages of the full "memory cycle". E.g. if you enter STD SYNC mode and set
the CLOCK FREQ to 1/1, F0F0 will create a delay of 1/2 bars.
If you put Permut8 in REV mode the actual delay lengths become inverted. E.g. 00
will be exactly 100%. If you need a SUB operator for the first instruction, use OSC
with a RATE of 0. If you want to control the delay length of both left and right chan-
nels from a single operand, use MSK with a STEP MASK of FF (all bits set).
NOP
NOP is short for "No Operation" and does exactly that. Nothing. It is the bypass op-
erator.
Memory Control
CLOCK FREQ
The CLOCK FREQ knob sets the running rate of the instructions. Changing the rate
affects both the audio quality and the speed and delay times of the effects. The
greater the frequency, the brighter and clearer the sound, but the maximum delay
time will also be shorter. If SYNC is OFF, the clock frequency goes from 0 Hz (full
stop) all the way up to 352.8 kHz. In any of the other "synchronized" modes, the
clock frequency adapts to the host tempo so that Permut8 will complete a full "mem-
ory cycle" in the chosen time signature and division.
If you shift-click CLOCK FREQ when SYNC is on, it will be turned to OFF and
CLOCK FREQ will be positioned so that the tempo-synchronized rate is preserved.
You can then fine-tune the frequency, e.g. for a delay that should be slightly out-of-
sync.
Right-click the display to access a menu with functions to “bounce” the audio output
of Permut8. You may either bounce the audio to a WAV file or back into the delay-line
memory of Permut8. This can be useful if you have frozen a nice loop with the
WRITE PROTECT switch and want to export it or mangle it further with the various
Permut8 operators.
WRITE PROTECT
Enable WRITE PROTECT to "freeze" the memory content and create an infinite loop
of whatever audio is currently in memory. You can still change programs, edit the in-
structions etc to modify how the memory is played back. However, the INPUT and
FEEDBACK controls will be of no use (obviously), and the only FILTER PLACE-
MENT that will be useful is OUT.
"Write protected" memory content is even saved and loaded with your song file so
you can actually use Permut8 as a very simple loop player. If SYNC is OFF, clicking
RESET will re-trigger the loop from the beginning.
REV
The REV switch makes the write and read positions move in reverse. This can be
used to reverse short audio snippets in real-time. After a full "memory cycle" has
been completed, the audible effect of the reversal will be less obvious (or disappear
entirely) as the entire memory now contains reversed audio material. Notice however
that the operators will function differently in REV mode.
RESET
If you flip the RESET switch the memory will be emptied (if it is not "write protected")
and the read and write positions will be reset. Notice that you should be able to
"automate" this button in your host, just like any other button or knob.
The soft clipping algorithm in Permut8 has very low aliasing in itself, so you can use
it as an analog distortion module. Turn up CLOCK FREQ to maximum for the least
amount of digital noise.
LIMITER
The LIMITER switch enables the built-in
"brick-wall" limiter. The limiter has a fixed
threshold and reaction time, but it is placed
after the input gain adjust. Thus the INPUT
LEVEL will determine the amount of volume
compression. The limiter is also placed in-
side the feedback loop and with proper bal-
ancing of INPUT LEVEL and FEEDBACK
AMOUNT you can make the feedback signal
"duck" when there is audio input (creating a
less busy sound). If you turn FILTER
PLACEMENT to IN, the filter is applied be-
fore the limiter. You can then tweak FILTER
FREQ and MIX to compress only the low or
high-end of the audio signal.
FILTER FREQ
FILTER FREQ determines both the filter
mode and its cutoff frequency. The left half of
the knob puts the filter into lowpass mode
while the right half puts it into highpass
mode.
FILTER PLACEMENT
Turn the FILTER PLACEMENT dial to choose where in the signal chain you want to
apply the filter. The OFF setting disables it entirely. The IN setting puts it before the
soft clipper / limiter, but still inside the feedback loop so that each successive itera-
tion of the feedback signal will become increasingly filtered. The FB ("feedback") set-
ting places it on the feedback signal only while OUT applies the filter to the final out-
FEEDBACK AMOUNT
The FEEDBACK AMOUNT knob determines how much of the output signal is fed
back into the input again.
FLIP L/R
With FLIP L/R you can switch the left and right feedback channels so that for each
iteration the audio will bounce from left to right and vice versa.
INVERT
Turn the INVERT switch on for a 180 degrees phase inversion of the feedback sig-
nal. With very short delay times this produces a totally different sound.
OUTPUT LEVEL
The OUTPUT LEVEL knob controls the final volume of the "wet" signal. To give you
that sweet saturated sound there is a soft clipper on the output gain stage, just as
there is on the input stage.
MIX
Use MIX to adjust the balance between the "dry" input and the "wet" processed
sound. Because of the variable clock frequency technique in Permut8, the total input
/ output latency varies and this cannot be compensated perfectly by the host. The
MIX knob on the other hand makes perfect latency compensation even if the clock
frequency changes. Therefore it is better to mix the dry / wet signals within Permut8
rather than mixing them in your host.
All the settings you see on the front panel constitutes a Permut8 "program" and Per-
mut8 can have 30 such programs in memory at a time. You can instantly switch be-
tween these programs either by clicking the program number display or the rocker
switch next to it. You can also use "MIDI Program Change" messages to switch pro-
grams on the fly or put MIDI CONTROL in PROG mode and use MIDI keys.
The programs are numbered A0-A9, B0-B9 and C0-C9, but you can also give them
names that are shown in a popup list when you click the program number display. If
you do not name a program it will be given a default name consisting of the "opera-
tor" and "operand" settings (e.g. "[B0] and:4420 xor:0081"). Programs that have
been modified since they were last named are marked with a *.
The "Main Menu" button (far left) contains functions to undo / redo the last operation,
load and save the entire "bank" (all 30 programs), rename, copy and paste individual
programs, randomize instructions and more.
(You can shift-click the main menu button to repeat the last chosen menu. This is
especially useful for quickly performing multiple undos / redos or repeatedly ran-
domize the instructions .)
The “Open Bank” button (right of the “Main Menu” button) is a short-cut to the main
menu item with the same name. It lets you load the entire “bank” (all 30 programs).
If you save a Permut8 "bank", a VST .fxb or an Audio Unit .aupreset, all 30 programs
are saved in the file. When you create a new instance of Permut8, the most recently
used programs will automatically load. (You may disable this feature from the "Main
Menu".)
Alternative Firmwares
Permut8 can be expanded with new functionality through so called "alternative firm-
wares". Alternative firmwares are pieces of computer code that you load into Per-
mut8 to extend or replace its signal processing algorithms. It can be a new type of
No complicated steps are necessary to "install" these firmwares. Simply load a spe-
cial type of Permut8 Bank file into the plug-in and it will automatically activate the
new signal processing code.
The signal processing code is executed in a "virtual machine" inside Permut8 which
is 100% "sandboxed". This means that it is impossible for bad firmware code to
crash or freeze your plug-in host. Furthermore, the actual code is saved with the pro-
ject in your DAW, meaning that you do not need to install or keep track of which ver-
sion of a particular firmware you use in a particular project. It will just work. “Forever.”
(The drawback to this solution is that it requires more CPU compared to running “na-
tive” code, but for many types of effects the CPU hit is still moderate on a modern
computer.)
When an alternative firmware is active you can click on its “logo sticker” in the top
right corner of the user interface for more info.
MIDI Control
There are three different ways to control Permut8 via MIDI (provided that your host
application allows routing MIDI to effects).
BITS
The BITS setting will let you toggle individual "operand bits" (the 32 flip-flops under
INSTRUCTION 1 and 2) with MIDI keys .
FREQ
FREQ makes it possible to transpose effects with MIDI keys by adjusting the clock
frequency up or down when keys are held. Note number 60 (C3) is the root key.
While holding down a key you can use the pitch bend, e.g. bend it down quickly for a
"tape stop" effect.
PROG
In PROG mode you can switch between the 30 programs in memory using MIDI
keys. Great for sequencing glitchy effect patterns. Click the program number display
and check the popup list to see the assigned MIDI keys. (You probably want to avoid
"automating" parameters in this mode as parameter changes are permanent and
cannot be easily undone.)
Ableton Live 9
(Add Permut8 to the effect chain on an audio or instrument
track.)
Cockos Reaper
(Add Permut8 to the effect chain on an audio or instrument
track.)
Steinberg Cubase 6
(Add Permut8 to the effect chain on an audio or instrument track.)
Image-Line FL Studio 10
(Add Permut8 to the effect chain on an audio
or instrument track.)
Cakewalk Sonar X3
1. Enter the Cakewalk Plug-in Man-
ager, select Permut8 and click
“Plug-in Properties”.
2. Turn on “Configure as synth” and
click OK. Permut8 should now
show up under VST Instruments
(VSTi).
3. Insert Permut8 in the FX chain as a
“Soft Synth” instead of an “Audio
FX”.
4. Insert a MIDI track and select Per-
mut8 as output for the new track.
MIX
INPUT
LEVEL
INPUT GAIN
FREQ
LIMITER
OUTPUT
LEVEL
FEEDBACK
ADC
CPU
DAC FILTER
OUT
Change History
Version 1.1 (2014-12-16)
• Improved support for alternative firmwares ("logo stickers", clickable tape for enter-
ing text and more).
• Right-click the “memory display” allows you to "bounce" the Permut8 output to file
or back into memory for further processing.
• Undo / redo support. Even changes to the delay memory buffer are undoable when
the write protect switch is on.
• Improved support (in most hosts) for keyboard input to the "tty terminal".
• Open bank button. Because alternative firmwares are delivered as Permut8 bank
files and you want quick access to those.
• Open browsers now feature two buttons to quickly take you to factory and user
preset directories.
• Right-click context-menu on knobs and sliders to set exact values with text.
• Fixed a bug with 0Hz clock rate (the left and right dry channels were delayed dif-
ferently).
• Fixed a broken LED in the memory display.
• Chess.
• Supports Sonic Charge Authenticator for easier registration.
• Many minor bug-fixes.
Created by:
! Magnus Lidström
Banks:
! Coen Berrier (Mason)! http://facebook.com/musicofmason
! William Curtis (Pimp Daddy Nash)
http://www.eighthdimension.com/artists/pimpdaddy-nash.html
! Edward Ten Eyck! http://www.edtaudio.com
! Simon Field (Ones & Zeros)! http://www.spectraselecta.com
! Stephan Muesch (Rsmus7)! http://www.sounduniverse.de
! Randolph Rueba (Ariston)! http://www.soundcloud.com/ariston
! Torley Wong! http://torley.com
Technologies:
! NuXPixels, GAZL & AU/VST Symbiosis by NuEdge Development
! libpng by G. Randers-Pehrson
! zlib by Jean-loup Gailly and Mark Adler
! VST Plugin Technology by Steinberg
! Audio Units SDK by Apple
! (see Copyrights section below for more info)
zlib version 1.2.5 - 1.2.8, Copyright (c) 1995-2013 Jean-loup Gailly and Mark Adler.
Please, read the end user license agreement enclosed in the package for more legal
mumbo-jumbo.