[sdiy] Introducing my new M116 Multi-Scale Quantizer !

cheater cheater cheater00social at gmail.com
Wed Sep 29 18:12:21 CEST 2021


I really like this module Jean-Pierre. The demo is really well made
too. I would like to give you an idea on a few enhancements. There's
some easy and practical ideas and some hard and advanced ideas.

I. add a "when to switch" trigger input. For example, this can be used
to create a desired rhythm on the pitch changes. You can set it to
"and" with the pitch detection algorithm (so CV reaches a new note
then you switch to the new note, or if the trigger comes in you switch
to the note, or both). This could create a more controllable
arpeggiation effect.

Or if your pitch changes are at audio rate, and they're modulating a
VCO: you can make the input switch on zero crossing, based on the
output of that VCO. This will give an interesting effect. Or you can
switch when the oscillator resets (hard sync output). That assumes
that your quantizer module can switch quicker than the oscillator can
reset (when hard sync is patched to the input) or get far from the
zero crossing (if the input is set to zero crossing).

II. Add a split voltage. Have two CV outputs. In the simplest terms:
when you're on the left end of the keyboard, output "split low"
produces 10V (or 5V or whatever you use for max cv) and the output
"split high" produces 0V. Then, as you go up, and cross the halfway
mark, "split low" produces 0V and "split high" produces 10V. You can
also add a gradual split (so "split low" will go slowly from 10V to
0V), split position, etc. This can be used to have either a dual-patch
monophonic synthesizer (essentially two patches played from one
keyboard), or to have a split layer.

An advanced version would have a separate split position and slope for
high and low versions. For example, have a single patch across the
whole keyboard, but once you get to the low part, also add
increasingly more of a second oscillator which is a sinewave with nice
clean bass frequencies.

III. Add the option to shift the output up or down by several steps.
The amount of steps should be controlled by another voltage input. So
eg the second input (call it "shift") could make the output go to the
next note in the scale, or previous one, or up 10 notes, or up an
octave, etc.

The interesting part is next: you should be able to choose which steps
the shift is allowed to go to. There are several options you could do
in increasing complexity:

1. up/down octave
2. up/down octave or half octave
3. up/down any multiple of n steps. 12 is octave, 6 is octave or half,
3 is another thing.
4. only go to other notes in a specific chord, given the pitch input
cv is the root of the chord.
4 a. only allow specific chords that have been programmed into the unit
4 b. have a midi input on the front panel so you can use a midi
keyboard to indicate the chord. the chord on that keyboard always
starts at mid C. A latching input exists so you don't have to hold the
keyboard keys down while you play. You could use the same keyboard to
control both pitch CV input and the midi input: feed the midi signal
from the keyboard directly to this function's midi input, and also
feed a lowest-note-priority monophonic CV signal to the pitch CV
input. Only one hand required.
5. for each scale you have, have progressions natural to that specific
scale and the specific root note being put in via the pitch input CV.

For example, when playing a note in an equal temperament scale, if
you're playing a white key, only allow going to white notes; when
playing a black key, only allow going to black notes.

Another example. When playing a scale in an augmented tuning that
looks like this:

C
C + 0.25 semitone
C#
D
D + 0.25 semitone
D#
E
E + 0.25 semitone
F
F + 0.25 semitone
F#
G
G + 0.25 semitone
Ab - 0.1 semitone
Ab
A
A + 0.25 semitone
Bb - 0.1 semitone
Bb
B
B + 0.25 semitone

Then if you start on C, you would go to C, C#, D, D#, E, F, F#, G, Ab,
A, Bb, C. (or a subset of these like selected in option III-3 above).
If you start on C + 0.25 semitone, then you only go to the other " +
0.25 semitone" pitches.
If you start on Ab - 0.1 semitone, then you only go to the other " -
0.1 semitone" pitches, or mol-piches (Ab, Bb), or whole notes (C, D,
E, F, G, A, B).

6. completely programmable: onboard ability to run simple programs
that decide what pitch to output.

----

Those functions mesh together. For example, using audio rate
modulation on the shift input, plus switch-on-hard-sync from I, plus
option III-1 or III-2 will make it possible to give an oscillator an
interesting complex pitch. For example, you could use this to create a
waveform that has say 3 cycles at C2 and then 1 cycle at C4, and then
again 3 cycles at C2. This would be a waveform with a lot of grit but
also an interesting higher frequency component giving it a sort of
texture. By changing the pitch of the LFO input to the shift cv input,
you could change the texture of the oscillator, without changing its
pitch.

You could use III alone and patch the pitch bend wheel through it.
Then, when you hold a note and use the pitch bender, you play a scale.
Much cheaper than practicing finger technique!

With these ideas you might be able to produce a huge amount of modules
/ side cars / etc. At least, I hope you liked reading this. Have fun
:-)

On Tue, Sep 21, 2021 at 4:08 PM Didier Leplae via Synth-diy
<synth-diy at synth-diy.org> wrote:
>
> Yes, yes. It makes perfect sense to me now.
>
> The way that my code had worked was that the output only changed to the next interval once the input reached the next interval, if that makes sense.
>
> On Sep 21, 2021, at 8:48 AM, Jean-Pierre Desrochers <jpdesroc at oricom.ca> wrote:
>
> 
>
> Both incoming and outputed ‘data’ have the same amount of steps or intervals related to the selected scale.
> For example a Triad scale will have 3 intervals for both the incoming CV and the quantized output.
>
> A pentatonic will have 5 intervals for both too. Etc..
>
>
>
> De : Didier Leplae [mailto:didierleplae at yahoo.com]
> Envoyé : 20 septembre 2021 19:26
> À : The SynthiMuse
> Cc : Jean-Pierre Desrochers; synth-diy mailing list
> Objet : Re: [sdiy] Introducing my new M116 Multi-Scale Quantizer !
>
>
>
> I haven’t carefully looked through all of what you guys have written yet, but now I think I get it! If you have set a pentatonic scale, for example, you would divide the incoming voltage equally in 5 within a 1 v range (for 1v/oct) regardless of the specified intervals. Then the outputting voltages conform to whatever scale you have selected.
>
>
>
> That makes great sense and don’t know why I didn’t think of it.
>
>
>
>
>
>
>
>
>
>
>
> On Sep 20, 2021, at 4:43 PM, The SynthiMuse via Synth-diy <synth-diy at synth-diy.org> wrote:
>
> 
>
> It all looks really good Jean-Pierre, but it's too late in my day to get my head around it. :-)
>
>
>
> One key difference in my method is that I quantized my incoming control voltage to a midi number then did all my scale work and tables with just midi note numbers.
>
>
>
> If I have anything that I can add, I certainly will.
>
> I think you 'trump' me on scales: your unit has 25, the synthimuse only had 10 plus a user assigned one.
>
>
>
> Gerry
>
>
>
>
>
> On Mon, 20 Sep 2021, 21:52 Jean-Pierre Desrochers, <jpdesroc at oricom.ca> wrote:
>
> The way I ‘vote’ the good quantized output vs the incoming ADC value is the following way:
>
> Each scales have a number of possible steps so I constructed a lookup table
>
> of 25 elements (scales) with each a number of steps (thresholds).
>
> unsigned char const ADC_step_divisions[25] = {12,6,5,5,7, 7,3,3,3,3, 6,8,7,5,5, 7,7,7,7,7, 7,7,7,7,7};
>
> So if I’m in the 2nd  scale I know I’ll have 6 steps to compared with the incoming ADC value
> Here is part of my code:
>
> for(x = 0; x < ADC_step_divisions[ScaleCounter]; x++) // ADC_step_divisions[] = 3,5,6,7,8 or 12
>
>   {
>
>
>
>    y = scale_ADC_threshold_values[ScaleCounter][x] + octave;
>
>    z = scale_ADC_threshold_values[ScaleCounter][x+1] + octave;
>
>
>
>    if( (ADCValue >= (scale_ADC_threshold_values[ScaleCounter][x]) + octave ) &&
>
>       (ADCValue < (scale_ADC_threshold_values[ScaleCounter][x+1] + octave) ) )
>
>     .
>
>     .
>
>     .
>
> This way I quickly know where the ADC input is located in the scale cells
> then I can output the right quantized output.
>
> The selected output then is used to calculate the right MIDI note to send.
>
>
>
> JP
>
>
>
> De : The SynthiMuse [mailto:synthimuse at gmail.com]
> Envoyé : 20 septembre 2021 16:30
> À : Didier Leplae
> Cc : Jean-Pierre Desrochers; synth-diy mailing list
> Objet : Re: [sdiy] Introducing my new M116 Multi-Scale Quantizer !
>
>
>
> In the example of a pentatonic scale, the octave range would be divided in to 5 steps.
>
> If the input value was exactly at the midway point, it would take the middle note of the scale.
>
> If the input was half way between 2 notes, it would first look down one step to see if there was an allowable note. If no note was there,  it would look up one step. If no note was found it would look down two steps, if no note was found, it would look up two steps and so on. It would keep widening it's search up and down until it found a valid note to output.
>
> In the synthimuse, I added a randomisation to the first step so it didn't always go the same way. Sometimes it would start looking down, other times it would start looking up.
>
> The only thing I didn't like about this approach is that it can take an indeterminate number of steps to get a note.
>
> For a 12 tone chromatic scale : 1 step
>
> For a worst case 1 tone scale, it could take up to 11 steps.
>
> The routine above was some of the cleverest in the design but I can't take credit for it. A colleague gave me the algorithm when I described the problem to him. :-)
>
> Gerry
>
>
>
>
>
> On Mon, 20 Sep 2021, 20:44 Didier Leplae, <didierleplae at yahoo.com> wrote:
>
> I’m not sure how successive approximation works.
>
> But if you are hunting for the nearest note and some are further apart than others, won’t the result still be that some notes take longer to reach than others?
>
>
>
>
>
> On Sep 20, 2021, at 2:19 PM, The SynthiMuse <synthimuse at gmail.com> wrote:
>
> 
>
> Hi Didier
>
>
>
> I'm not sure how Jean-Pierre dealt with this issue but in the Synthimuse, I gave each note in the scale equal weight and 'hunted', by successive approximation to find the note that equated closest to the input value.
>
> The SM had ( who knows, it may have again if I can get my finger out :-)  ) an analog input so it's similar to the situation that Jean-Pierre is dealing with.
>
> Gerry
>
>
>
> On Mon, 20 Sep 2021, 19:45 Didier Leplae via Synth-diy, <synth-diy at synth-diy.org> wrote:
>
> That’s really beautiful! I have a question for you.
>
> I was working on a eurorack quantizer a while back but never finished. On mine, if I were doing like you are in the demo, feeding a slow triangle LFO into the quantizer, and having it set to a scale with some uneven intervals (for example any diatonic scale) then the time that each note holds is also uneven (proportional to the size of the interval.
> I’m guessing you have programmed yours to compensate for this. Can you explain a bit about how that works? Also, how does this play out if you input a sequence with uneven durations for example?
>
> > On Sep 20, 2021, at 8:54 AM, Jean-Pierre Desrochers <jpdesroc at oricom.ca> wrote:
> >
> > Thank you Roman !
> >
> > JP
> >
> > ******************************************************
> >
> > -----Message d'origine-----
> > De : Roman Sowa [mailto:modular at go2.pl]
> > Envoyé : 20 septembre 2021 05:46
> > À : Jean-Pierre Desrochers; synth-diy at synth-diy.org
> > Objet : Re: [sdiy] Introducing my new M116 Multi-Scale Quantizer !
> >
> > Always a pleasure to watch.
> > Thanks for posting it.
> >
> > Roman
> >
> > W dniu 2021-09-17 o 20:55, Jean-Pierre Desrochers pisze:
> >> Hi all !
> >>
> >> After around  4 months of work..
> >>
> >> Introducing my new *M116 Multi-Scale Quantizer* !
> >>
> >> It contains 25 selectable scales listed here:
> >>
> >> */Semi-Tones/*
> >>
> >> */Whole-Tones/*
> >>
> >> */Pentatonic major/*
> >>
> >> */Pentatonic minor/*
> >>
> >> */Heptatonic major/*
> >>
> >> */Heptatonic minor/*
> >>
> >> */Triad major/*
> >>
> >> */Triad augm./*
> >>
> >> */Triad minor/*
> >>
> >> */Triad dimin./*
> >>
> >> */Augmented/*
> >>
> >> */Diminished/*
> >>
> >> */Athar Kurd/*
> >>
> >> */Kumoi/*
> >>
> >> */Hon-Kumoi-Joshi/*
> >>
> >> */Egyptian/*
> >>
> >> */Nikriz/*
> >>
> >> */Persian/*
> >>
> >> */Hebrew/*
> >>
> >> */Dorian Mode/*
> >>
> >> */Phrygian Mode/*
> >>
> >> */Lydian Mode/*
> >>
> >> */Mixoydian Mode/*
> >>
> >> */Locrian Mode/*
> >>
> >> */Gypsy/*
> >>
> >> It also offers:
> >>
> >> 0 to +8.00vdc CV IN / OUT span
> >>
> >> Lag control on quantized output
> >>
> >> 12 transpose keys from G to F#
> >>
> >> Gate IN / OUT connectors
> >>
> >> MIDI output (16 channels)
> >>
> >> You can watch a Youtube demo HERE
> >> <https://www.youtube.com/watch?v=UxPzGvb0HrQ>.
> >>
> >>
> >> The fact that all generated quantized notes are ‘IN TUNE’
> >> makes this module very ‘musical’..
> >>
> >> I’m very happy !!!
> >>
> >> Thanks for watching.
> >>
> >> JP
> >>
> >>
> >> _______________________________________________
> >> Synth-diy mailing list
> >> Synth-diy at synth-diy.org
> >> http://synth-diy.org/mailman/listinfo/synth-diy
> >> Selling or trading? Use marketplace at synth-diy.org
> >>
> >
> >
> > _______________________________________________
> > Synth-diy mailing list
> > Synth-diy at synth-diy.org
> > http://synth-diy.org/mailman/listinfo/synth-diy
> > Selling or trading? Use marketplace at synth-diy.org
>
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy
> Selling or trading? Use marketplace at synth-diy.org
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy
> Selling or trading? Use marketplace at synth-diy.org
>
> _______________________________________________
> Synth-diy mailing list
> Synth-diy at synth-diy.org
> http://synth-diy.org/mailman/listinfo/synth-diy
> Selling or trading? Use marketplace at synth-diy.org




More information about the Synth-diy mailing list