Do I need a SchmittTrigger Object or something else?


(Josbouten) #1

Hi, I’m the developer of the open source vocoder called Vocode-O-Matic. You can find it in the repository under Sculpt-O-Sound. The vocoder has a large matrix of buttons which allow you to choose the modulation of the amplitude of carrier frequency bands by envelopes derived from modulator frequency bands. As I use filter bands which are 1 terts wirde the matrix is 31 * 31 buttons in size. I have added a handful of presets that will give some interesting sounding results, but I can imagine that a user would want to draw a variation on these by hand by clicking a button and moving the mouse while keeping the mouse button pressed.
So far I’ve been using the SchmittTrigger to respond to button presses, but this does not allow me to make drawing movements on the matrix. It turns out that after clicking on one button I can only activate another button by releasing the mouse and clicking on the second button. Is there a way to get SchmittTrigger to do what I want or do I need to use some other method?


(Andrew Belt) #2

31x31 is a lot of parameters, so I’d recommend just using non-ParamWidgets instead and implement your own behavior with events.


(Josbouten) #3

Thx for your reply. The thing is that in any sensible use of the vocoder you will not use more that 31 or 40 of the parameters. Otherwise signals may become too large or in my opinion it will not make an interesting sound. As I do not know in advance which ones one will need and do not want to loose any flexibility, I’ve implemented all 31x31.

I’m afraid I do not understand what you mean by ‘behaviour with events’. I now have an input which when pulsed will shift the matrix one step, is that similar to what you mean?


(Andrew Belt) #4

No. I’m talking about click, hover, drag etc events on your Widget subclass.


(Josbouten) #5

Ok, I understand, that makes sense. Thx.


(Josbouten) #7

Has anybody used this yet in their open source modules? Can you point me to some example code ?


(Andrew Belt) #8

Not sure, but in Rack v1, you’d probably want to subclass SvgButton and override onAction.