SynthMaker

Bus kicks selecter and multiplexer...

Archive · 2010 21 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

Twisted_Chrylle ·

I've tryied all of those in different enviruments and as I understand it, the Multiplexer is horrible. Cut's sound, leaks CPU when off, laggs, uses overall to much CPU and the VST/OSM are slower on start up. I don,t know for sure how it works in a GUI enviroment but slower on start up and all laggs makes it a NONO that I try to avoid at all cost. Anyone that knows more about multiplexer in GUI or overall? then comments please. 🙂

Then we have the selecter. As I see it it is more CPU hungry than BUS, but ofcourse easier and less things to do before its in working order. Im not sure how much difference it is in the end tho, maybe just unnoticeble and nothing to worry about but the easy way to use the BUS and switch it from a selecter to a multiplexer (without redraw all links, create new units and so on) and it takes less CPU than both selecter and multiplexer, I would say it kicks them both... Downside tho, BUS doesnt support all streams, like V stream (GUI view) and that's a shame. But I haven't noticed any lagg, CPU heavy, slower start up or leaks with the BUS system or have I missed something?

I really hope someone will tell me if im right or just trying to shoot shadows in the dark. 😀

MichaelBenjamin ·

i never used the multiplexer since its just a reverse selector without the useful shutdown, so in all(?) situations the selector seems to be the better choice. the selector however is also only useful for raw routing choices made on the gui and since i try to keep things small to medium i also dont use that many selectors. i didnt try the bus system for some time. it may be good if you want to route lots of green data to different green receivers while keeping the schematic clean, but may cause trouble if you want to use it as a selector for stream data - but i did not test this. selectors, busses and multiplexers used in a modular excessive way seem to slow down sm and the vst anyways maybe because the recompile gets more complex and very quickly to a point where you will notice it with small latencies.

oddson ·

Twisted_Chrylle wrote: ...Multiplexer is horrible. Cut's sound, leaks CPU when off, laggs, uses overall to much CPU and the VST/OSM are slower on start up...

Doesn't cut the sound... if by that you mean inturrupts the sound process resetting running sound processes... it once did this but that was a long time ago.

Twisted_Chrylle wrote: ...leaks CPU when off...

If used to bypass an effect it can do this as the effect math is still processed even though you've cut off the signal from the left-hand-side (LHS) as it's busy calculating the results with zeros in the input stream. But AFAIK that's the extent of it. For green calculcation it may be the other way around as triggers don't get through from the LHS.

Twisted_Chrylle wrote: ...laggs, uses overall to much CPU and the VST/OSM are slower on start up...

Other than as noted above I've not heard of any of these... I'm sure they can occur under certain conditions but what you need is to understand how calculations are requested and to make sure they aren't undertaken when they won't be used in the final output.

Same for the selector... it has it's overhead but when used to bypass an effect it's very modest compared with the savings... Personally I don't see how the Bus is an alternative to a selector.

Twisted_Chrylle ·

Thanks guys. I used to use only selectors before, but when I needed a multiplexer I had to create many more selectors to make it a multiplexer. (I think you understand what I talking about)

By doing that I ended up with a large numbers of selectors, as MichaelBenjamin points out, large numbers of selectors seems to slow down sm and the vst, thats why I started to use the BUS system. I never liked the BUS system before and to be honest, I never thought I would use it either.

I attached a Picture so you can see how I do when I use the BUS system in a very simple way. (just to avoid missunderstandings)

Im I stil better off with selecters?

Edit: sorry I will upload a pic when I have a better connection... 😇

trogluddite ·

The bus system is very cool for tidying up schematics with lots of interconnections, but I'm a bit dubious about using it dyamically, especially for switching of streams. Once connected there may be a tiny advantage CPU wise (not too sure, but certainly v.small), but the switching action of busses can be very clunky, due to all the comparing of string names etc. needed to match source and destination - if you change lots of connections at once you can end up with big 'farts' from the audio sometimes.

BTW. the link in your last post seems to be broken; I'm getting a 'site supspended' error.

Twisted_Chrylle ·

Wow, lets make a Synth that "farts", very new and analogue. *kidding* Doesn't Selectors "fart"? maybe a daft question but always good to know. have you experienced the "farts"?

Here is the picture I tried to upload before.

Twisted_Chrylle ·

Thank you oddson for your time to explain most of my points. Ofcourse I need to learn alot more about this, I try to learn something new everyday.

And congrats to the Olympic Gold in Icehockey. (if you are not the only Canadian to not follow Icehockey) 🙂

If someone wants to ad more comments I will be delighted, specially my picture were I try explain how I think its good to use the BUS system.

trogluddite ·

Sorry, using too much techincal jargon 😈 By farts, I mean that if you switch a lot of things with busses, the making of connections takes long enough to generate lots of clicks and pops (there I go again) in quick succession, rather than the instant click you get with selectors. For just a handful of mod routings, probably not a big problem - but I've noticed the time lag build up very quickly if lots of routings need to change at once. Once the connections are made, possibly a tiny CPU saving over selectors - more so with mutliplexers, they can be a bit greedy. You also have to be very careful using busses with streams/poly to make sure that the sources and destinations have the connector type fixed - sometimes if you disconnect a bus, the module it feeds can't tell what data type it should be and goes back to being the black circle (indeterminate type) - after that, the connection can't be remade without fiddling inside the schematic (impossible once its exported as a VST).

Like your idea with the boolean to string conversion BTW, nifty - I've never thought of doing that.

Twisted_Chrylle ·

Sorry, using too much techincal jargon

Don't worry, I'll hit back when Im getting more technical... 😉

By farts, I mean that if you switch a lot of things with busses, the making of connections takes long enough to generate lots of clicks and pops (there I go again) in quick succession, rather than the instant click you get with selectors.

So, with other words, Selectors are quicker in the end?

You also have to be very careful using busses with streams/poly to make sure that the sources and destinations have the connector type fixed - sometimes if you disconnect a bus, the module it feeds can't tell what data type it should be and goes back to being the black circle (indeterminate type) - after that, the connection can't be remade without fiddling inside the schematic (impossible once its exported as a VST).

I always right click on "In" and "Out" and specify what kind of stream I want to use them for, then 99.9% of the times I dont have to worry. I think... 😕

Like your idea with the boolean to string conversion BTW, nifty - I've never thought of doing that.

Thank you, I never thought someone would like my way to "try" to build nifty solutions without mastering SEE code. Im happy if I managed to come up with something you can use in your projects and thanks for your nice comment. 🙂

But you think I will be better off with selectors, even if they can end up being 10 times more of them?

trogluddite ·

Weird, the same subject just came up on an old thread of mine, so I did some proper testing - see here... Using Busses Tutorial

Twisted_Chrylle ·

By the way, is green math better off then Selector/Multiplex/BUS?

example: Float Equals > Float Select.

or even

example 2: Float Equals > Bool to true trigger > Float Sample and Hold.

Sorry guys, im just trying to get more technical... 😈

trogluddite ·

Using the sample and hold is always good to use where you can - you keep control over when the trigger happens that way - the float input can change as much as it likes, but its triggers never pass through - only the triggers at the trigger input will make the downstream modules redo their maths. That's wht so many MIDI and GUI primitives have trigger outputs on them, so that you can make sure any other maths is only done when needed.

Twisted_Chrylle ·

Ok, I think I begin to understand your yorkish trogluddite... 😉

thank you for the link, it did explain alot to me about using BUS static and not dyamically.

Sooo, BUS is better than Multiplexer, Selecter is better than BUS (dyamically) and green floats (specially triggers) are best of all? 🙂

how good is Float Select compare to Selecter then?

oddson ·

Twisted_Chrylle wrote: Thank you oddson for your time to explain most of my points.

Now that I'm home I can add a picture (or two) to my points:

And here's one where it might pay off to use the multiplexer because it protects unused float calculations from being triggered:

Twisted_Chrylle wrote: And congrats to the Olympic Gold in Icehockey. (if you are not the only Canadian to not follow Icehockey) 🙂

There may be Canadians that don't care about hockey ('ice' is considered redundant here)... but I haven't met any since Sunday. I hear more than 20 million of us watched that game. (Our women won too and we'll kick some American ass when they play sledge hockey for the Paralympics.)

MichaelBenjamin ·

ot: i think they should replace the puck with something twice as big blinking in neonlights, everytime i see this sport i am wondering where the thing actually is. suddenly someone got it and skates to the goal, all other people, like in a rugby match also start skating towards the guy and then they all smash together near the goal, and the people go woaaaah, and all i see is the clump of people and sticks but not the actual puck. then they say how awesome this was and show some ultra slow motion where i finally can see that the little thing somehow slipped beneath the left ankle of the goalie... ugh i guess you have to learn watching this from childhood on.

Twisted_Chrylle ·

MichaelBenjamin don't critisize "hockey" to an Canadian, I've done that misstake with my old flat mate. 😉 North American hockey has smaller rinks so its more "fight" about the puck than in Europe were we have larger rinks, both have their charm in different ways, if you manage to see the puck ofcourse. 😇

Maybe curling is for you then, but I didnt dare to say sorry that Sweden took the Gold in the womans final. 😈

But back to the topic, about green maths, is a float selecter better than a normal selecter? And the trigger float is the best as I understand it? (If I dont need to use a selecter/multiplex for GUI or stream)

Once again, thank you Oddson for your explaination. 🙂

trogluddite ·

The trick with green maths is to cut down on the number of triggers being sent around the schematic - as long as there are as few troggers as possible then the CPU difference would be too small to measure. The selector, sample and hold primitive and trigger blocker are the main weapons for this (and sometimes even the multiplexer as in oddson's example) The hard bit is working out what triggers are going where and when; but the key thing to remember is that all float/integer/string connections contain an implicit (i.e.hidden) trigger connection within them. So if, say, you are movng a control knob, then the float coming out of the knob is sending out a lot of triggers whenever it is moved - stop moving it, and the triggers stop, so the green bits connected to the knob stop using CPU (unless they are getting triggers from elsewhere). Remember also that green maths doesn't show up on the little CPU meter at the bottom of the SM window - you have to use windows own CPU meter to measure it. The parts of the schematic carrying streams are the place to look for CPU savings as they have to be calculated at sample rate.

Twisted_Chrylle ·

The trick with green maths is to cut down on the number of triggers being sent around the schematic

OK, so when I use float sample and hold (or int/string) with a bool to true trigger, Im controlling the amount of triggers thru out my schematic = save's CPU on unnecessery triggers that doesn't need's to be triggerd. And as I did read somewere on this forum the green math are low priority = will never interrupt with any sound cus sound are high priority, but will do the changes when or if there is enough horse power. (and with limited triggers there hopefully always are)

Start to get hold of the way to think now and the name Bus kicks selecter and multiplexer maybe are not right. 😊 I think our fart machine are slowly slipping out the window. 😉

MichaelBenjamin ·

ok i wont critsize any hockey anymore to nobody. but its not that i am afraid to critisize for example football too when its quite hilarious if professionals fall like pussies at the smalles occasion of a foul. atleast i can see the ball there, not that i am much interested anyways, i find it more entertaining to watch some quake 1vs1 or some tf2. /ot

Twisted_Chrylle ·

MichaelBenjamin now you critisize football too! I start to like you... 😀

Entertaining is like beauty, it is in the eye of the beholder.

And I do agree that the footballers are falling like easy timbers in modern football. But hey! that entertain most people, atleast it creates feelings, and thats what Entertainment is all about, isn't it?

I don't like quake (or likely games) cus I never see what did hit me till its to late. 😇 practice I think is the key but I rather do something else, like hit my head against the wall to make something in SM. 😉

MichaelBenjamin ·

yes and its more about the party than the actual sport so it does not matter. if people would be in the same mood at the saturdays sidewalk sweeping fanatics boccia world cup (which is the non ice version of curling) then i would probably also watch it with some friends and drink beer.

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.