Rings : incorrect behavior with external input in mode II?


#1

Here’s how to reproduce :

Rings in second mode (“sitar” mode). Structure knob to 9 o’clock, so it resonates to the octave below the played note. Max polyphony (red light).
Use the external input, in my case with a noise source. Short trigger in Strum input.
Now change the polyphony, to either 1 or 2 voices : the pitch of the resonating string changes to one fifth below. (and it’s really hard to find a sweet spot to catch an octave).

Thanks !
Louis


#2

I’ve just tried this, there is an audible difference but as the polyphony increases, the amount of harmonics per voice is reduced so I wonder if when you switch to the green mono mode, you’re hearing a bunch more harmonics resonating which will obviously make a more complex tone?


#3

Thanks, but the behavior is totally different (more like I would expect) when using the internal impulse. With the internal impulse, changing polyphony does make the sound quality/complexity change, but not the pitch of the resonating “string”.
The problem seems related to external input only.


#4

@pichenettes, is this intentional ?


#5

Sorry… I’ll have a look at this in 4 days once I’m done with all the shipping.

What I suspect: changing the polyphony resets all the strings to their default pitch until they get excited again.


#6

No worries at all. Not sure I understand, but if you have a chance to test, I’d be glad.
Cheers !


#7

Have you got a chance to take a look ?


#8

ah, what is your external exciter signal? could it be exciting different bits of comb filter more in that 5th range than the octave? like, is the exciter signal harmonically rich in that tone?


#9

I promise I’m back on this today!


#10

Tried with all sorts of signals. IMHO, I don’t think it has anything to do with the signal input.


#11

Wow. I thought this would be the kind of bug that takes an entire day of investigation, while it’s something much simpler than that…

TLDR: when polyphony is set to 4, there are less available sympathetic strings, so the generated chord is less complex and it does not include the fifth in your specific example. Just like a polysynth that can be played as a 8-oscillator monosynth, or a 2-oscillator 4-voice poly. The effect is less pronounced when the internal exciter is used because the signal path is different.

Let’s get into the details of the algorithm behind the STRUCTURE knob.

First, consider a table containing the following notes:

  • 0: Root (as set by FREQUENCY knob)
  • 1: Note (as set by FREQUENCY knob + V/O input) - 1 octave
  • 2: Note - 1 fifth
  • 3: Note
  • 4: Note + 1 fifth
  • 5: Note + 1 octave
  • 6: Note + 1 octave + 1 fifth
  • 7: Note + 2 octave

RIngs can handle a total of 8 “virtual strings”. Depending on the polyphony, you get:

  • 8 strings / voice in mono.
  • 4 strings / voice in dual.
  • 2 strings / voice in quad.

Which notes are these strings tuned to? The first thing to consider is that 40% of the strings are employed to “thicken” the sound. This means:

  • 5 strings for the “chord”, 3 strings for fattening in mono.
  • 3 strings for the “chord”, 1 string for fattening in dual.
  • 2 strings for the “chord”, no fattening in quad.

How are the notes selected for the chord, when you adjust STRUCTURE? The first string plays the note set by FREQUENCY and the V/O input (entry #3 in the table). The next string plays the note at position STRUCTURE * 7. If more notes are needed, we internally turn STRUCTURE CW by 20% of the remaining space and we repeat the process.

Let’s say STRUCTURE is at 9 o’clock (about 0.2).

  • In mono mode this gives: Entry #3, Entry #1.4, Entry #2.5, Entry #3.4, Entry #4.1
  • Dual mode: Entry #3, Entry #1.4, Entry #2.5
  • Quad mode: Entry #3, Entry #1.4

Which note do we play when we fall in-between entries? We interpolate between notes, but non-linearly, in such a way that we don’t deviate much from the notes in the table most of the time. This creates “sweet spots”.

The last bit: I mentioned earlier that there is some “fattening”. This is done by repeating the first notes with some slight detuning. So actually you’ll get:

  • Mono mode: Entry 3, Entry 1.4, Entry 2.5, Entry 3.4, Entry 4.1, Entry 3 detuned, Entry 1.4 detuned, Entry 2.5 detuned.
  • Dual mode: Entry 3, Entry 1.4, Entry 2.5, Entry 3 detuned.
  • Quad mode: Entry 3, Entry 1.4.

This explains why the fifth might or might not be present in the chord depending on the polyphony setting (and why it’s more difficult to find a configuration that does not have a fifth when using the mono mode).

Now the bit about the signal path… When the module is externally excited, the external excitation signal is sent to all the strings. When the module is internally excited, the excitation signal is sent to the first string (you “pluck” this string), and the remaining strings vibrate by sympathy, excited by the first string (they are attached underneath but you don’t pluck them).

What this means is that in monophonic mode, using the internal exciter, you won’t hear a proper “chord” (what would be the equivalent of exciting all strings with the pick), but a single note with the remaining strings vibrating in sympathy (and the fifth has a more subdued presence in this case).


#12

Many thanks for the in-depth explanation !

So…may I ask why different routings for external and internal sources ? (no need to get too technical !:wink:)


#13

The purpose of this mode is to recreate the sound of sympathetic strings (Strings that are not directly plucked, but excited by the vibration of adjacent string that is plucked).

When the module is externally excited, I assume that the signal that the signal sent to the IN input is the signal of the plucked string(s), to which resonances should be added.

When there is no external excitation, I need a string sound to start with. So I route the “pluck” to one of the string, this gives me the string sound I need, and then add sympathetic resonances to it.


#14

Makes sense ! So you would drive the same V/oct CV to V/oct inputs of both Rings and the tuned exciter oscillator. I’ll try this workflow. Thanks