Scanning mixer/crossfader... possible?

Grant Atkinson's icon

Hi All.

I'm working on an idea for a patch that is largely based around creating something similar to the Verbos Harmonic Oscillator which is in Eurorack format. I have a question and after some searching around I haven't really been able to find much information or example patchers that may help.

I'm wondering if there is a way to build a scanning mixer of sorts, like a crossfader that can scan through more than two inputs? I know it sounds really simple and the solution probably is, but I'm relatively wet behind the ears when it comes to max and I'd just like some guidance.

Can anyone either suggest an object that I could look into that would help me achieve this, or point me towards an example patch that would also be helpful? Can it be done? Any help would be very much appreciated.

Kind regards,
G.

Wetterberg's icon

do you need to be able to do the scanning at audiorate? if so then you'll need to construct a mixer with some clever splitting of numbers, I think.

If you're only looking for slower sweep-like things, then you can do this easily with pattrstorage preset morphing.

Grant Atkinson's icon

Excellent. Well I think at some point I'd like to achieve audio rate scanning, I'm quite interested in complex FM etc. But I feel that may be like trying to run before walking at this stage, and besides most applications for me would be sub-audio rate.

I'd completely forgotten about preset morphing with pattrstorage, so there's some food for thought and is definitely helpful. Thanks for your response.

Roman Thilenius's icon

i cant find it back, but during the last 8 years i must have been posting my CPu optimized all-signal 4 channel crossfader based on buffer/cycle for about 5 times.

Roman Thilenius's icon

ah yeah, just searching for the object´s name brings back those posts.

here is a pretty funny one, where i posted it without beeing asked for because the thread is about midi. :P

Roman Thilenius's icon

some hours later ... i just notice that you dont need this, because this is for 4 speakers. for channels you´d only need straight line in the buffers.

or simple math. ;)

expr ($f1=1.))*((($f1*-1.)+2.))

you might want to add a line~ object before you control the gain.

Picture13.jpg
jpg
Grant Atkinson's icon

Big thanks Roman for your input and patches. This is some very helpful info and certainly sheds some light on a few different approaches to the task. :)

Roman Thilenius's icon

that is about what my intention was. :)

here the patch with slightly changed code, audio interpolation and a better layout.

p.s.:
as long as we use mouse input to conrol this, it is not a problem that we use one expression per channel. for megasystems™ with autocontrol™ and 100s™ of channels one should find a way how to avoid that the incoming controller data is only send to the 2-3 currently active channels.

p.p.s:
the purpose of the pipe object is to ensure that all controller data from the number box ends up reaching their am within in the same audiovector. this is only required under high CPU load and requires overdrive to be on.

;)

blendding2015.mxb_.zip
zip
Grant Atkinson's icon

Brilliant work Roman, and massive thanks. This is exactly what I've wanted to create, so has been a tremendous help.

Roman Thilenius's icon

and here is a basic model for signal input. the perfect building block for wavetablescanning and stuff.

i just used it to scan though an overtone series at oscillatort phase speed, that was really fun.

if anyone can help to further optimize it CPU-wise feel free to do so. (this is not a reqeust, this is an order.)

a buffer/cycle based version of it would save some CPU, but in my max4, where cycle~ is limited to 512 samples, it is getting a bit inaccurate for 20 or more channels and would create 20 different buffers in RAM, so i´ve chosen to suggest this simpler code version.

-110

blendding-sig.zip
zip