Shruthi User Manual Mutable Instruments 476412
Shruthi User Manual Mutable Instruments 476412
Shruthi User Manual Mutable Instruments 476412
Getting started
Overview
Let us familiarize ourselves with the Shruthi:
The upper list shows the pages in the synthesis category accessible from each switch, the lower list shows the
pages in the sequencer category. L7 indicates which page category is active, and the leds L1-L6 show which
page is active.
Here’s an example. The Shruthi displays:
Cutresenvl
fo
110 0 10 0
L7 is lit (synthesis category) and L3 is lit: the filter page is active.
Press S1 to jump into the oscillators group. L1 is lit, and the LCD is now displaying:
Shaprmrngs
ub
saw 0 0t
r1
Press S1 again to move to the next page in the oscillators group. L2 is now lit, the LCD is displaying:
Shaprmrngt
un
squ 16-12 12
Now press S5 to switch to the sequencer category. L7 is now off, L1 is lit. The active page is the clock page:
Modbpmgroa
mt
stp120swi 0
Press S5 again to get back to the synthesis category. L7 is on, and you are back to the oscillator 2 page.
Editing
When a page is active, a summary of the four parameters modified by each potentiometer is displayed on screen.
While tweaking a potentiometer, the full parameter name, its value, and the page name, are temporarily
displayed on the screen:
filter
cutoff 89
After a short delay, the four parameters page summary is shown again.
Using the encoder.
When the Shruthi is displaying a page summary, the rotary encoder can be used to scroll through the parameters.
The name of the active parameter is capitalized. For example, resonance is here the active parameter:
cutResenvl
fo
110 0 10 0
Rotate the encoder clockwise to make env the active parameter, rotate the encoder counter-clockwise to make
cut the active parameter. If you continue rotating the encoder clockwise for several steps, the next page, env 1,
will be shown, and its first parameter, atk, will become selected. Once a parameter is selected, click the encoder
to edit it. The encoder is now used to increment/decrement the parameter value. Once the value has been set,
click on the encoder again to move back to the 4 parameter summary.
Note that potentiometer and encoder editing can be combined. For example, use a potentiometer to quickly
adjust a parameter, and then, while the parameter name is still displayed on the screen, use the encoder to fine-
tune it.
A last trick: if you hold S6 while rotating the encoder, it will increment/decrement by 10 instead of 1. This is
particularly useful for browsing long lists of patches…
That’s all you need to know about the pages/navigation system!
Display status symbols
The Shruthi sometimes flashes a symbol on the first line of the LCD display to signal incoming MIDI messages
or the completion of specific commands.
Symbol Status
! The Shruthi is busy accessing memory – this can interrupt sound generation
# The Shruthi has received invalid SysEx data (for example a SysEx message intended for
another device)
* A Note On MIDI message has been received and has been interpreted as a trigger
Reference
The section describes one by one all the parameters accessible on the synthesis and sequencer pages.
Synthesis
Before digging into the pages details, here is a diagram of the Shruthi signal flow:
The audio signal flow is represented in red (digital path) and then in orange (analog path):
· The oscillators 1 and 2 generate digital waveforms, which are combined together by the modulator. The default
modulator is a balance control over the level of the two oscillators, but more esoteric modulation methods are
available.
· The sub-oscillator (which is synchronized in pitch with the oscillator 1, but 1 octave lower) also generates a
basic waveform.
· The click generator generates a short transient/click at the beginning of the note. Note that the sub-oscillator and
the click generator cannot be used at the same time. It’s bassy-beefy or clicky, not both.
· The output of the modulator, the sub-oscillator/click-generator and some additional noise are mixed together.
You can adjust the balance of each ingredient.
· The result is converted into a pseudo analog (10 MHz / 1bit) audio signal, and mixed “electrically” with an
external signal coming from the Audio in jack.
· The result is then sent to an analog VCF and VCA, to produce the final audio signal. Note that the signal flow of
this section depends on the signal processing board. Some boards might include an additional CV-controlled
waveshapper, FX section, additional filter, etc. at different stages of the analog path. Some boards might not
even offer a VCF.
· Each of these modules have parameters (represented by the blue arrows) which can be controlled by any of the
modulation sources listed below. However, some connections are already “hardwired” (or rather “softwired” in
the firmware):
· The oscillators’ pitch always track the note played on the keyboard. However, this can be disabled by applying a
negative modulation (amount: -63) from note pitch to oscillator pitch.
· The filter cutoff frequency always tracks the note. Again, this can be disabled or attenuated by applying a
negative modulation from note pitch to cutoff frequency. The rationale behind this choice is that most of the
time, you want 1:1 tracking, so this frees up a slot in the modulation matrix for something more interesting!
· Lfo 2 and Envelope 1 are always connected to the filter, their modulation amount being controlled by dedicated
parameters on the filter page.
The following routing programmed in the init patch:
This waveform is perfect for basses and brass sounds. The parameter controls the waveshapping – when its value
is increased, an increasingly large section of the waveform is shifted up. Note that this is not intended to be a
perfect, drawn with a ruler, sawtooth. It contains a bit of high-pass filtering to make it sound more Juno-y. This
waveform is band-limited. Thus, only a limited amount of aliasing artifacts will be heard when playing high-
pitched notes.
square: Square wave
The parameter controls the pulse-width. This waveform is perfect for simulating a clarinet, for basses, “hollow”
sounds or Depeche Mode-like leads. Note that this is not intended to be a perfect, drawn with a ruler, square
wave. It contains a bit of high-pass filtering to make it sound more Juno-y. This waveform is band-limited and
only a limited amount aliasing will be heard when playing high-pitched notes.
Note that there’s a slight difference in sound when moving the parameter from 0 to 1. To offer the best sound
quality, the pulse width = 50% flavor is read straight from a wavetable at full sample rate, while the pulse width
> 50% flavor is obtained from two dephased sawtooth waves, evaluated at half the sample rate. For bass sounds,
for which aliasing is not going to be a problem, it is recommended to use pwm instead of square to get a beefier
sound.
triang: Triangle
A pure waveform, which serves as a good basis for flute or soundchip-like leads. The parameter controls some
kind of waveshapping, clipping the bottom of the waveform. This waveform is band-limited and will still sound
fine above C5.
zsaw: Phase-distortion sawtooth with filter sweep
This waveform uses phase distortion to recreate a low-pass filtered sawtooth by progressively “pinching” the
phase of a sine wave. The parameter controls the brightness of the sound: from a sine wave to a sawtooth, then
from a sawtooth to a sawtooth gone through an ugly transistor amp. Good for dirty bass guitar sounds or
clavinets.
zreso: Phase-distortion sawtooth with resonant filter sweep
This waveform uses phase distortion to recreate a sawtooth sent through a low-pass filter with high resonance.
The parameter controls the resonance frequency. Useful for doubly-filtered sounds, formants, or anything where
its synthetic, cheesy, feel will shine.
ztri: Phase-distortion resonant triangle monster
This thing is hard to describe and must be experienced. It sounds like a resonant filter sweep, but has a very
hollow, synthetic quality. It may or may not have been in the Casio CZ-101. This waveform is likely to result in
whacky sounds, vaguely evoking hardsync.
zpulse: Phase-distortion trapezoidal creature
Yet another waveform that makes little sense. When the parameter is set to 0, it sounds like a fat superposition of
a square wave and a sawtooth. Sweeping the parameter value progressively increases what sounds like the
resonance of an odd, goofily saturated analogue filter.
zsync: Phase-distortion/self-sync trick
You know the trick: one oscillator playing a low-frequency square wave and another oscillator a higher-
frequency sine wave, the first one resetting the phase of the second… and the two of them sent into a ring-
modulator! Now roll this into one single sound generator, the parameter of which controls the frequency ratio of
the two oscillators: we call it zsync… The resulting sound is close to a Jew’s harp or Morsing – band-passey and
formantey.
pad: Stack of 4 detuned sawtooth waves
As the name implies, this waveform made of four stacked sawtooth waves is useful for pads (when a copious
amount of filtering is applied) or for harsh trance leads. The parameter controls the amount of detuning between
the four waves. Note that no bandlimiting is happening here, so this thing doesn’t sound quite good above C5…
but it’s doing a perfect job in the bass range!
fm: Minimal 2-operators FM
The parameter controls the modulation strength. This oscillator provides the base material for metallic sounds,
bells, metallophones, or the next 386 DX hit.
When the fm oscillator is selected, the range parameter plays a slightly different role than usual: instead of
controlling the main pitch of the note, it controls the modulator frequency, and has a drastic impact on the
timbre.
waves, tampur, digitl, metall, bowed, slap, organ, male: wavetables, wavetables, wavetables!
All these waveforms are wavetables, comprising 16 single-cycle waveforms. The parameter scans the wavetable,
smoothly interpolating between each waveform. Some of these tables are “transwaves”: the single cycle
waveforms were extracted from different “stages” of a sample, and you can somehow recreate the original
sample by using an envelope that will sweep the parameter from 0 to 127.
waves are 16 basic waveforms, or rather two series of 8 basic waveforms: waveforms 9-16 are one octave
higher.
metall is made from single cycle waveforms extracted from classic D50 patches.
organ contains 16 different mixtures of pure tones, ready for some “Light my fire” action.
male is another PPG-wave classic, it sounds vaguely like a human male voice.
user: user wavetable
This wavetable has two peculiarities: it is smaller than the other ones (8 single cycle waveforms, each of them
being 129 samples long), and it resides in RAM instead of residing in flash ROM. By default, it is loaded with
the same content as digitl, but its content can be altered by SysEx messages. You can find here some examples
of MIDI files containing user wavetables.
8bits: bitwise anarchy
A palette of 8-bits sounding waveforms obtained by applying bitwise operations to a basic sawtooth wave
(something now known as “biscuiting”).
crush: bit-crushed sine and triangle wave
From 0-63, this oscillator will produce a bit-crushed sine wave ; 63 corresponding to the maximum amount of
decimation. From 64-127, this will produce a bit-crushed triangle wave, 64 corresponding to the maximum
amount of decimation. As a result, the transition from the two waveforms is smooth since the bit-crushing is very
heavy when the two ends meet. A parameter value near 120 yields a very typical NES bass sound.
pwm: my first Arduino synth
This waveform is a shamelessly naive square wave. The parameter controls the pulse-width. Contrary to square,
this waveform stinks aliasing – but for notes below C2 it is not a real problem: it becomes much more aggressive
and “in your face” than square.
noise: Filtered noise generator
The parameter controls the frequency of a simple 1-pole low-pass/high-pass filter in which is sent white noise.
From 0 to 63, high-frequency content is progressively added. From 63 to 127, low-frequency content is
progressively removed. Perfect as a raw material for percussions or sound effects.
vowel: Low-tech formant synthesis
Changing the parameter will sweep between different vocal-like sounds (14 vowels and 2 consonants). Now.
Spell. Daftpunk.
That’s it for the oscillators waveforms. Oscillator 1 is linked to a sub-oscillator / transient generator. The first 6
settings correspond to the sub-oscillator, which is an oscillator of its own, playing always one or two octave
lower than the oscillator 1. The next settings disable the sub-oscillator and enable various transient generators,
which will produce a short, clicky sound at the beginning of the note:
· sq1 square sub-oscillator, 1 octave below osc. 1
· tr1 triangle sub-oscillator, 1 octave below osc. 1
· pl1 25% pulse sub-oscillator, 1 octave below osc. 1
· sq2 square sub-oscillator, 2 octaves below osc. 1
· tr2 triangle sub-oscillator, 2 octaves below osc. 1
· pl2 25% pulse sub-oscillator, 2 octaves below osc. 1
· click produces a discrete click (more obvious on sine/organ sounds).
· glitch produces a sound similar to that of a skipping CD.
· blow is a burst of noise with a slow attack.
· metal adds a metallic sounding, high-pitched click.
· pop adds a low-pitched discontinuity.
The transient generator can be used for instance to add some punch to metallic-sounding or FM sounds, or for
percussive effects.
Oscillator 2
Shaprmrngt
un
saw 0 0 0
· sha (shape): Oscillator 2 waveform shape. The available waveforms are the same as for oscillator 1.
· prm (parameter): Oscillator 2 parameter.
· rng (range): Oscillator 2 pitch transposition, from -24 semitones to 24 semitones.
· tun (detune): Fine detuning of Oscillator 2.
Mixer
Op.mixsubn
oi
sum 32 0 0
· op (operator): Modulation operator (see below).
· mix (osc bal): Oscillator 1/2 balance. Might do something different than balance when an operator different
from sum is selected (see the Oscillator 1 section).
· sub (sub osc.): Sub oscillator or transient generator level.
· noi (noise): Noise level.
The operator parameter controls how oscillator 1 and oscillator 2 are blended together. The different modulation
modes are:
sync Mixing and synchronization: oscillator 2’s phase is reset Adjusts the oscillator 1/2
whenever oscillator 1’s phase is reset. You won’t hear the balance
detuning, but instead a timbral modulation
ring Ring modulation – oscillators’ signals are scaled and multiplied Balance between the original
sound and the output of the
modulator
xor XOR modulation. The bits of oscillator 1 and 2’s digital values Shifts the output, with
are exclusive-or’ed, and the result is shifted overflow
fuzz Fuzz. Oscillator 1 and 2 are equally mixed and sent to a Fuzz amount
waveshapper with a warm tanh response
>>4 Oscillator 1 and 2 are mixed and sent through a dirty 4x sample Oscillator 1/2 balance
rate reduction
>>8 Oscillator 1 and 2 are mixed and sent through a dirty 8x sample Oscillator 1/2 balance
rate reduction
fold Oscillator 1 and 2 are mixed and sent through a foldback Distortion amount
distortion
bits Oscillator 1 and 2 are mixed and sent through a bit depth reducer Bit depth reduction amount
0 - - - -
1 X - - -
2 - X - -
3 X X - -
4 - - X -
5 X - X -
6 - X X -
7 X X X -
8 - - - X
9 X - - X
a - X - X
b X X - X
c - - X X
d X - X X
e - X X X
f X X X X
You can thus use this mode for programming simple drum patterns in the step sequencer – using the sub
oscillator as a bass drum and the noise as a snare drum, and interweaving notes from the oscillators between the
drum notes.
Filter
Cutresenvl
fo
66 0 16 37
cut (cutoff): Filter cutoff frequency.
res (resonance): Filter resonance.
env (env1->vcf): Modulation amount from envelope 1 to VCF. If you want to set a negative modulation amount,
you can patch env1 to the VCF in the modulations section and ignore this parameter.
lfo (lfo2->vcf): Modulation amount from LFO 2 to VCF. Again, if you want to set a negative modulation
amount, you can patch the LFO 2 to the VCF in the modulations section and ignore this parameter.
Envelope 1 / 2
Atkdecsusr
el
0 44 20 60
atk (attack): Envelope attack time.
dec (decay): Envelope decay time.
sus (sustain): Envelope sustain level.
rel (release): Envelope release time.
The predecessor of the Shruthi used linear envelopes. The envelopes are now piecewise linear with a “knee”, to
capture the feeling of exponential envelopes (the same trick was used on the SID).
LFO 1 / 2
Sharatatkm
od
tri 52 0f
re
sha (shape): LFO waveform. The available LFO waveforms are: triangle, square, sample&hold, ramp
(sawtooth), step (cycles through the sequence of values programmed in the step sequencer). 16 additional
waveforms named ~1 to ~16 are also available. They are directly taken from one of the wavetables, are intended
to be used with slow frequencies, and are very good at mimicking the sounds of machines or… human organs.
rat (rate): LFO rate.
atk (attack): LFO rise time. When this setting is non-zero, the LFO will take some amount of time to reach its
maximum amplitude
mod: LFO synchronization mode: when set to free, the LFO is free-running. When set to slave, the phase of the
LFO is reset every time a new note is played. Finally, when set to master, the LFO will retrigger the envelope
(LFO 1 retriggers envelope 1 and LFO 2 envelope 2).
Among the choices of LFO rates, the first values, which are prefixed by a “x”, are tempo-synchronized settings.
The number following the X corresponds to the number of sequencer steps that will be used to set up the LFO
period: x16 simply means that the LFO will go through one cycle over the duration of 16 sequencer steps (4
beats). For example, if you set the LFO to a ramp, with a rate of x4, and map it to the cutoff, the cutoff will raise
over the duration of a beat and return to a low value at the beginning of each beat. With a x2 or x1 rate, square
LFO mapped to the VCA, you can get old-school trancey gater effects. With a x2 rate, sample&hold LFO
mapped to the cutoff and the basic arpeggiator pattern, with high resonance, you get a random bleeping at every
note.
Modulation matrix
In this page, the routing between the modulation sources and destinations is configured. The first important thing
about this page is that it works a bit differently from the others: the potentiometer P1 is used to select a
patchcord, while P2, P3 and P4 are used to edit it.
Here is an example:
Modsrcdsta
mt
1lf1 ~1 0
This page means: “The patchcord #1 connects the LFO1 to the oscillator 1 pitch, and the corresponding
modulation amount is set to 0”. By turning the first knob, you can scroll through the different connections in
place, for example:
modsrcdsta
mt
9en2vca 63
“The patchcord #9 connects the envelope 2 to the VCA gain, and the corresponding modulation amount is 63”.
Once a patchcord is selected with the first knob, the source/destination/amount are edited with the 3 other knobs.
Note that you can see in details the source and destination when tweaking one of those parameters:
moden2>
vca
amount 62
When editing modulations, L6 blinks/is dimmed to reflect the value of the selected modulation source.
The modulation sources are, in modern lovers precise order:
lfo1, lfo2: LFO output (centered).
stpseq: Step sequencer output.
stpsq1: Step sequencer’s little brother 1: it cycles on the first 8 steps of the sequence.
stpsq2: Step sequencer’s little brother 2: it cycles on the last 8 steps of the sequence.
arp: Rhythmic gate signal, which outputs a high value when the arpeggiator or sequencer contains a note at the
current step, or 0 when there is no note.
mwheel: Modulation wheel value read from the MIDI input.
afttch: Aftertouch value read from the MIDI input.
bender: Pitch-bend controller value read from the MIDI input (centered).
offset: A boring constant value. This is useful if you want to output a fixed value to one of the CV outs.
cv1, cv2, cv3, cv4: Control voltages read from the CV input pins. By default, the input pins are floating, so it’s
likely that these modulation sources will sound just like noise.
cc A, cc B, cc C, cc D: Value of the Control Change 16, 17, 18 and 19.
noise: Another noise generator! Mapped to the VCA, makes for some super snares!
env1, env2: Envelopes.
velo: Note velocity.
random: A random value updated every time a new note is played.
note: Pitch of the currently played note (centered).
gate: Keyboard gate signal, null when no key is currently pressed.
audio: Digital audio signal produced by the mixer. Please note that since the modulation matrix is recomputed at
976Hz, some serious aliasing is happening here. You’re not going to do FM with this thing, most of the time it
sounds like crap, but it’s something fun to experiment with!
op. 1: Operator 1.
op. 2: Operator 2.
trg 1: Trigger 1.
trg 2: Trigger 2.
The modulation destinations are, in modern lovers precise order:
cutoff: Filter cutoff.
vca: VCA gain.
pwm1: Oscillator 1 parameter (can be pulse width, but also waveshapping, phoneme, etc. depending on the
oscillator type).
pwm2: Oscillator 2 parameter (can be pulse width, but also waveshapping, phoneme, etc. depending on the
oscillator type).
osc1: Coarse oscillator 1 pitch, in a -16 / 16 semitones range. Also affects the sub-oscillator’s pitch.
osc2: Coarse oscillator 2 pitch, in a -16 / 16 semitones range..
osc1+osc2: Coupled oscillator 1+2 pitch, in a -4 / 4 semitones range. Also affects the sub-oscillator’s pitch.
fine: Fine oscillator 1+2 pitch, in a -1 / 1 semitones range. Also affects the sub-oscillator’s pitch.
mix: Oscillator 1/2 balance (or whatever the modulator does with the balance parameter).
noise: Noise volume.
subosc: Sub-oscillator volume.
reso: Filter resonance.
cv1: Control signal for the CV output #1.
cv2: Control signal for the CV output #2.
attack: Envelope 1 and 2 attack speed. For example, map velocity to this modulation destination to have a faster
attack time on notes played with a high velocity.
lfo1, lfo2: Frequency modulation of the two LFOs.
env1, env2: Envelope 1 and 2 triggers. Whenever the modulation source goes up, the envelope is retriggered.
One thing that requires a bit of clarification is the notion of “centered” modulation source. Let’s take an
example. We have a triangle LFO mapped to the filter cutoff, with a modulation amount of 30. If the cutoff is set
to 80, the actual value of the cutoff will oscillate between 50 (80-30) and 110 (80+30). On the other hand, if we
have an envelope mapped to the cutoff with a modulation amount of 20, the cutoff will go from 80 to 120 (80 +
2 * 20), then down to 80 after the release. This is something to remember if you want to do PWM, for example.
If you set the PWM modulation amount to 40, you also have to set the oscillator pulse width value to 40, so it
will oscillates between 40-40 = 0 and 40+40=80. Otherwise, it will spend half of the time stuck at 0. But this
makes things nicer for vibrato, tremolo, wah-wah or growl effects!
Quirk ahoy!
The modulation amount of the last patch cord is adjusted by the modwheel. Huh? Let’s say you set patch cord 12
to go from LFO 1 to the oscillators fine pitch with an amount of 16:
Modsrcdsta
mt
12lf1 ~ 16
This modulation will be applied with an amount proportional to the modwheel position – by default it won’t be
active until you start moving the modulation wheel, and to get it at full strength, you’ll have to push the
modulation wheel to the max.
Operators
Press the modulation matrix button twice to bring the operators page. In this page, you can configure the two
“operators”. An operator takes 2 modulation sources, applies a fancy (or not) mathematical operation on them,
and the result is made available as a new modulation source in the modulation matrix.
Op.in1in2o
ut
1lf1lf2a
dd
Use the first setting (*op.*) to select which operator to modify. The second and third options allows you to select
which modulation destination you want to operate on. The last setting is the operation to apply:
· add adds the values of two modulation sources.
· prd computes the product of the two modulation sources.
· max takes the maximum of the two sources.
· min takes the minimum of the two sources.
· xor totally messes up the two sources.
· = outputs a large value if source 1 is above soure 2, 0 otherwise.
· = outputs a large value if source 1 is below soure 2, 0 otherwise.
· qtz source 1 is quantized into a number of values set up by source 2.
· lag source 1 is low-pass filtered, with a cutoff frequency set up by source 2.
There are plenty of things to experiment with… Create a multi-stage envelope by taking the max of envelope 1
and 2 ; mask a LFO by the step sequencer ; build a chaotic LFO using feedback and xor modulation between the
two LFOs ; Square the value of a LFO to change its shape…
Here is a more precise example showing how to low-pass filter a square LFO to create a “soft” modulation
source routed to the filter. First, route the operator 1 output to the filter cutoff:
Modsrcdsta
mt
1op1cut 63
Then, specify that operator 1 is LFO1 transformed by a “lag processor”.
Op.in1in2o
ut
1lf1 =4l
ag
The in2 is the filtering cutoff frequency. You can try setting this to velocity too: the harder the note is pressed,
the harder the edges of the LFO are!
Here is another example showing how to quantize an envelope to create a low-fi “steppy” modulation. First,
route the operator 1 output to the filter cutoff:
Modsrcdsta
mt
1op1cut 63
Then, specify that operator 1 is a quantized version of the envelope 1:
Op.in1in2o
ut
1en1 =4q
tz
Warp patterns
This table shows how a 8-steps sequence, 01234567, will be warped, for each of the available warp settings:
Pattern editor
The pattern editor page is very different from the other pages. Here is how it looks like:
|00|C3-70|
>|01|C3-70|
It contains 5 columns, showing, from left to right:
The step number
The note at this step
The rhythmic event at this step: note (represented by a note icon), tie/slide (represented by a — sign), or rest
(empty)
The velocity (applies only to steps with a note)
The step sequencer/controller value at this step, from 0 to 15 (values from 10 to 15 are represented by the letters
a to f)
The pattern can be edited with the potentiometers. P1 scrolls through the steps, P2 changes the note at the
current step. P3 changes the rhythmic event and velocity value at the current step. Finally, P4 modifies the
controller value.
The encoder can be used to scroll through the steps. Clicking the encoder enters the edit mode: a blinking cursor
is shown, and the encoder is now used to increase/decrease the note value. Clicking the encoder again leaves the
edit mode.
While in edit mode, pressing a key on the MIDI keyboard will record the note number at the current step, and
move to the next step. This can be seen as a naive “step by step recording” mode, which can be used while a
sequence is playing.
Three important notes:
· The pattern length is by default 16 steps, but this can be changed on the Rhythmic sequencer or Step
sequencer pages.
· The note sequence, rhythmic pattern, and controller (steps) sequence all have the same length.
· The step sequence (controller values) have an effect only when the step sequencer is routed to a modulation
destination in the modulation matrix!
Rhythmic sequencer
This page shows, on a single screen, the rhythmic content of the bar programmed in the pattern editor. It is
particularly useful when programming a rhythmic pattern for the arpeggiator – a task for which the only
information that really matter are the note velocities and rhythmic events.
The first line of the screen shows the rhythmic events, the second line the programmed velocities:
xxxxxx---x-
--
77776544431
11
Use P2 to move the cursor, P3 to change the rhythmic event/velocity at the selected step, and P4 to adjust the
pattern duration. The encoder can be used for editing too: select a step, click, edit the step value, and click again
when done.
Step sequencer
This page shows a different view of the controller values programmed in the pattern editor.
stepseq
uencer
0000ffff
cccc44
44
Use P2 to move the cursor, P3 to change the controller value at the selected step, and P4 to adjust the pattern
duration. The encoder can be used for editing too: select a step, click, edit the step value, and click again when
done.
P1 can also be used to shift and cycle the sequence.
Tuning settings
Octragprtl
eg
0equ 0o
ff
· oct (octave): Transpose every note by -2, -1, 0, 1 or 2 octaves.
· rag (raga): Scale/keyboard mapping.
· prt (portamento): Portamento time.
· leg (legato): Legato on/off. This option specifies how the Shruthi will interpret overlapping notes. When legato
is off, the envelope retriggers every time a new note is played, and the portamento is always applied. When
legato is on, the envelope retriggers only when the new note does not overlap with the previous one, and the
portamento triggers only on overlapping notes.
The different scales/keyboard mappings are:
Name Description
bhaira ... A bunch of ragas of the Maihar gharana . Note that it is not possible to play notes outside of the
rasia raga – if you attempt to do so, the previously played note will be retriggered. The suggested
mode of operation is to find out which keys are active in the raga, and improvise with them!
System settings
Pausnafilc
v.
8offlpf4
cv
· pau (pause): Duration (in increments of 0.128 seconds) during which the long parameter name and value is
shown on screen when a potentiometer is adjusted. When set to 0, the screen always shows the four parameters
summary.
· sna (snap): Enables potentiometers’ “snap” mode. This mode makes it less likely to accidentally change a
parameter value when switching pages. Suppose you’re tweaking the filter resonance with P2 — you rotate it all
the way down to 0. Then you switch to the oscillator 1 page to adjust the oscillator 2 parameter. If the current
value of the parameter is set to 64, you’ll hear a discontinuity, since the value of the parameter will instantly
jump to 0 or 1 when you start touching the pot. When snap is on, things will happen differently: rotating the pot
will have no effect until the position of the pot actually reflects the current value of the parameter. After that, the
parameter value will track the potentiometer’s position. Another way to explain it: when snap is on you have to
move the pot to “grab” the current parameter value before the parameter is modified.
· fil (filter): Enables software extensions for a specific filter board. The default, lpf must be selected for the
CEM3379, SMR4 and IR3109 filter boards. ssm must be selected for the SSM2044 filter board. What does it
do? It enables a second filter page (press S2 twice to bring it) in which you can control the HPF frequency.
· cv. (cv.mode): Enables software handling of specific input devices connected to the CV inputs. 4 cv in is the
default: the 4 voltages at the 4 CV ins are read and made available in the modulation matrix. prgm must be
selected to enable Frank Daniels’ programmer. pedals directly map CV1 and CV2 to oscillator 1 and 2’s
parameter, and CV3 to the cutoff frequency. It has been used for a custom-built Shruthi with an expression pedal
connector and a joystick…
Trigger events
Ch1 n1ch2 n2
1 36 1 38
This page allows two notes to be defined as trigger events. In the example above, MIDI notes 36 and 38 on
channel 1 are used as triggers. Any combination of note / MIDI channel can be used.
When a note on message matching the trigger definition is received, the Shruthi does not emit any sound.
Instead, it sets to its maximum value the trg 1 or trg 2 modulation source.
When a note off message matching the trigger definition is received, the Shruthi does not interrupt any sound.
Instead, it sets to its minimum value the trg 1 or trg 2 modulation source.
Depending on which destination the trg 1 and trg 2 sources are patched to, this can for example be used to:
· Retrigger an envelope every time the trigger event note is played (destination = envelope)
· Modify the rate of an LFO for dubsteppy effects (destination = lfo rate)
· Simulate a snare drum hit by increase the volume of the noise source (destination = noise mix level)
As for the trigger event themselves, you can send them from a sequencer (probably from a channel different
from the one the Shruthi is played), a MIDI foot controller, or just set them to be two keys of your keyboard (for
example the lowest C and D).
Special functions
Some functions are available by pressing the switches for a longer period of time (greater than 1s).
Test note
Press S1 for a long period of time to trigger a C4 test note. Press and hold again to stop the test note. Coupled
with the sequencer or arpeggiator, this allows the Shruthi to be used as a stand-alone instrument, without an
external MIDI keyboard.
Performance page
The performance page allows you to gather 4 parameters from different pages and put them altogether in a
single page – so you don’t have to jump continuously from one page to another while performing. To assign a
parameter to one of the knobs in the performance page:
Adjust the value of the parameter you want to “import” to the performance page, or use the encoder to scroll to
its name. The selected parameter is capitalized.
Hold S2 for one second and release.
Turn the knob to which you want to assign the selected parameter.
The Shruthi jumps into the performance page.
At step 2, the screen should display this:
touchaknobt
o
assignp
aramet
er
To jump to the performance page in which the 4 knobs control the user-defined parameters, hold S5 for more
than 1s and release. While in the performance page, the LEDs indicate the current sequencer step, x0x style.
Knob assignments for the performance page are saved with the patch data.
MIDI
MIDI out modes
The Shruthi can be used in a variety of MIDI configurations. In particular, different functions can be assigned to
the MIDI out port, through the midi out option of the midi settings page.
off
The MIDI out port is disabled. This settings brings a tiny, tiny improvement in responsivity to the MIDI input
and to knob movements, since no MIDI out means less work for the CPU.
thru
The MIDI out port outputs verbatim what was received on the MIDI input (soft-thru). This setting is not very
CPU intensive, since no reformatting of the MIDI stream is done.
seq
The MIDI out port outputs only the note on and note off events processed by the synthesizer — be they
generated by the internal sequencer and arpeggiator, or received by MIDI.
ctrl
The MIDI out port outputs only NRPN messages capturing knobs tweaking. This mode is ideal for using the
Shruthi with both its IN/OUT ports connected to the same device. The other modes are not suitable for operation
in this configuration since they can cause unwanted MIDI loops.
split
The note messages below the split point defined by the split parameter are handled by the Shruthi ; while the
other notes are forwarded to the MIDI out. All the other messages (including notes from channels the Shruthi is
not listening to) are forwarded to the MIDI out.
full
In this mode, every incoming message is forwarded to the Midi output. In addition, NRPNs and Data entry
messages capturing the knob movements are inserted into the MIDI stream and written to the MIDI out. These
messages can be used to record knob movements in a sequencer, or to synchronize 2 Shruthi in Unison mode.
polychaining
In this mode, several Shruthi units chained together by MIDI can behave like a polysynth. Each unit will
implement a “distributed voice-stealing” scheme, in which they will either play a note, or forward it to the chain.
To the this purpose, each unit must be aware of the number of units that will follow in the chain. This is done
through one of the 8 polychaining settings: 1>| indicate that this unit is at the end of the chain, 2>1 indicates that
this unit is followed by one unit, 3>2 indicates that this unit is followed by 2 units, etc.
Here’s an example of configuration to turn 3 Shruthi units into a triphonic synth:
The 3 units obviously have to be sent to a common audio mixer or sound card.
Some caveats regarding the polychaining mode:
· The arpeggiator and sequencer do not work in polychaining mode ; and the LFOs of each unit won't be
synchronized with each other.
· There is a latency of up to 4ms between each unit. Thus, this feature works best on small chains.
· Any parameter change done on the first unit in the chain is forwarded downstream, so tweaking is possible
(and encouraged). Furthermore, when a patch is loaded on the master unit, it is dumped as a SysEx to each
unit of the chain for synchronization purposes. However, this doesn't work the other way round: if you tweak
a parameter or reload a new patch on the last unit in the chain, the other units upstream won't be aware of it!
The following table summarizes all the synthesis parameters, with their NRPN and CC numbers:
Using NRPN values outside of this table might result in unexpected behavior.
In addition to the data entry LSB/MSB message described above, you can edit the value of a parameter by
sending increment/decrement CC.
Command indicates what the receiver should do with the data in the payload block, and argument is a byte that
might contain an additional piece of information about what to do with the data.
Payload is a sequence of bytes in nibblized form. For example, the sequence 0x80 0x56 0x13 is transmitted as
0x08 0x00 0x05 0x06 0x01 0x03.
Checksum is equal to the nibblized-sum, modulo 256, of the bytes. In the example above, the checksum is equal
to 0x80 + 0x56 + 0x13 = 0xe9 and is transmitted as 0x0e 0x09.
Patch transfer
For patch transfer, command is equal to 0x01 and argument is null. The payload is a 92 bytes (184 nibbles)
data structure described here. Upon reception, the Shruthi checks the patch data, and loads it in memory, in place
of the currently edited patch.
When receiving a patch by SysEx, the received patch is not written to persistent patch memory, it is only
temporarily loaded in memory so you can edit it, and if you're happy with it, save it yourself. Since you don't risk
overwriting stuff in memory when using SysEx patch transfer, use it and abuse it! For example, embed at the
beginning of each of your tracks a dump of the patch, so your Shruthi will always recall the correct patch settings
when you play the track back.
Sequence transfer
For sequence transfer, command is equal to 0x02 and argument is null. The payload is a 32 bytes (64 nibbles)
data structure described here. Upon reception, the Shruthi loads the sequence data in memory, in place of the
currently edited sequence.
Waveform transfer
For waveform transfer, command is equal to 0x03 and argument is null. The payload is a sequence of 8x129
bytes (2064 nibbles) describing 8 single cycle waveforms, each of them being 129 samples long. The period
must be 128 samples – the 129th sample must be equal to the first one and is used for interpolation wrap-around.
The waveform is described with 8 bits unsigned samples.
Storage memory dump
The storage memory of the Shruthi is 2 + 8n kb large: 2kb of internal eeprom and 8n kb of external eeprom. It is
partitioned as follows:
Credits
The following patches have been programmed by Florian Fourmy:
· Flo bass
· Follow!
· ElectroB
The following patches have been programmed by stuartm:
· woblbass
· digobass
· pythagor
· noleleva
· ahhparis
· repliknt
· pwmstrng
· dahkand
· deetoon
· cowgirl
· voxelito
· woodtock
The following patches have been programmed by Trackdriver:
· bitbass
· shorty
· VICdbass
· sawwy
· reason
· puddle
· blopbass
· borg
· fatbass
· wowwy
· pulsar
· stringe
· bigStrng
· simplBra
· pwmBrass
· arpSynth
· wasp
· rendezVo
· fullbell
· loFiFlut
· NESsie
· noisBell
· woice
· wavesurf
· lazrBird
The remaining patches have been programmed by Olivier Gillet
Olivier Gillet, Mutable instruments SARL 2011-2013. Except where otherwise noted, content in this document is
licensed under a cc-by-sa 3.0 license.