Avoiding multiplexer

For general discussion related FlowStone
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Avoiding multiplexer

Post by tulamide »

First of: Merry Christmas :mrgreen:

I know I am supposed to be in a festive mood, but my Christmas present is 3.5 days of pure Flowstone, and I don't want to waste the time. So I better ask here - knowing I won't get an answer today, but anyway - how I could realize the following without a multiplexer.

I have 4 oscillators and 2 filters. I want the ability to route any of the oscillators to any of the filters or bypassing it completely. So there are three ways for each oscillators, but there are 4 oscillators, which makes a matrix of 4x3.

The choices, however, are exclusively. If the first oscillator is routed to the second filter, it can't simultanously go through the first filter or directly to the next stage, bypassing the filters. It's either-or (exclusive or, mathematically speaking).

If you read this and know a way, please consider to explain it in detail, or make an image, so I can better comprehend.

I want to avoid the multiplexer because I understood that only the selector re-compiles the stream. The circuit will be in the poly section, if that does make a difference?

Thank you!
"There lies the dog buried" (German saying translated literally)
adamszabo
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Avoiding multiplexer

Post by adamszabo »

This is the only way I came up with right now. The easiest is to use the matrix, with the osc inputs and outputs to the filters, however this method does not shut down or bypass the oscillators unfortunately.

Merry Xmas!
Attachments
filter matrix.fsm
(4.01 KiB) Downloaded 994 times
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Avoiding multiplexer

Post by KG_is_back »

Hi, this one should do the trick. The router can bypass its input (the oscillator) if "bypass" is selected, or passes it to selected output. Similarly, route bypasses its input if its not selected at any of the routers (bypassing the filter).
Attachments
matrix.fsm
(2.32 KiB) Downloaded 996 times
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Avoiding multiplexer

Post by tulamide »

Thank you both! I should have checked the site earlier, but I really didn't expect much traffic here today :lol:

Adam, I looked at the matrix but it seems that all streams will be kept alive, or am I missing something? I also have one question: Inside the "matrix pair"-module there is an empty module with just an input to output between the bus extractor and the bus creator. What is its purpose?

KG, that looks familiar according to my routing wishes. I understand the route module, as well as the router module. But the latter does make use of the multiplexer. Is there any negative impact from this that I should be aware of? Remainings from any previous sound data, when switching back to an output, for example?
"There lies the dog buried" (German saying translated literally)
adamszabo
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Avoiding multiplexer

Post by adamszabo »

tulamide wrote: Adam, I looked at the matrix but it seems that all streams will be kept alive, or am I missing something? I also have one question: Inside the "matrix pair"-module there is an empty module with just an input to output between the bus extractor and the bus creator. What is its purpose?


Yes unfortunately thats the negative side of doing it with busses is that things will be alive and use cpu even when they are not routed. The empty module I have no idea, you can actually delete it and connect it straight to the extractor. It was just like that in the stock matrix, which I have modified for you.
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Avoiding multiplexer

Post by KG_is_back »

tulamide wrote:KG, that looks familiar according to my routing wishes. I understand the route module, as well as the router module. But the latter does make use of the multiplexer. Is there any negative impact from this that I should be aware of? Remainings from any previous sound data, when switching back to an output, for example?

There shouldn't be. In some cases when switching the multiplexer, the channel that is being switched off gets frozen with the last value, but I can't reproduce the bug ATM. Perhaps it was fixed at some point. If you come across such problem, you may replace the multiplexer with code version (I don't recommend it - eats additional CPU), or with multiple selectors chained similarly to "route" module. I can be more specific if you need it...
adamszabo
Posts: 667
Joined: Sun Jul 11, 2010 7:21 am

Re: Avoiding multiplexer

Post by adamszabo »

KG_is_back wrote: or with multiple selectors chained similarly to "route" module. I can be more specific if you need it...


I actually would be interested in how you would do this with only selectors :)
tulamide
Posts: 2714
Joined: Sat Jun 21, 2014 2:48 pm
Location: Germany

Re: Avoiding multiplexer

Post by tulamide »

adamszabo wrote:
KG_is_back wrote: or with multiple selectors chained similarly to "route" module. I can be more specific if you need it...


I actually would be interested in how you would do this with only selectors :)

First I wanted to be brave and say: "Nah, I'll get it working." But since you asked for it, I can also be honest and say the truth: "Yes, please be more specific" :D
"There lies the dog buried" (German saying translated literally)
KG_is_back
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: Avoiding multiplexer

Post by KG_is_back »

Here is what I mean. I also added a assembler version, which uses writing to array.
Attachments
multiplexer.fsm
(1.18 KiB) Downloaded 994 times
RJHollins
Posts: 1573
Joined: Thu Mar 08, 2012 7:58 pm

Re: Avoiding multiplexer

Post by RJHollins »

This looks very interesting KG.

Gives me an idea for a project that I had.

How would it be to add a type of crossfade when switching outputs ?

I'm looking at the 'multiplexer by code' module, using 2 of them for stereo.

With 4 outs [2 stereo], I'm looking to use something like this for an FX BYPASS circuit. But having a 'user defined' cross-fade value to avoid any audio glitches, pops, snaps ... and any abrupt level changes.

just thinking out loud .... but this looks very useful.

thx
Post Reply