SynthMaker

Structured busses

Archive · 2010 8 old posts

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

mwvdlee ·

What about this idea: Allow busses to include busses as input/output.

You could have a bus with inputs "left,right", and both inputs could have "volume,pitch,etc" busses of themselves. At the top-level of your module processing the "left", you'd extract the "left" bus, then on a lower level you'd extract the "volume" from the left bus. In my practical example it would send GUI signals to the backend for a number of similar modules.

I have a nice mock-up that demonstrates this idea, but since we can't attach anything in this subforum, the explaination will have to do.

infuzion ·

mwvdlee wrote: I have a nice mock-up that demonstrates this idea, but since we can't attach anything in this subforum, the explanation will have to do.

I think we use the Examples or Help forums for attachments now. BTW, I think we don't need extra primitives for this idea, since you can already add Bus links together, to make a "Mega-bus", & just label the links L-Vol,L-Pitch,R-Vol,R-Pitch, etc from the start.

trogluddite ·

I like the idea. 🙂 My only worry is that at the moment, the busses are very clunky in the way they work. It's a shame coz I love the idea of them - but I ended up taking them out of my last project - they seem to take ages to iniialise if you have a lot of them, and it made a horrible noise out of my speakers while doing it! I like the way that they are dynamic though - the names aren't fixed like the normal connectors, you can change the bus names string input while the code is running for some really dynamic switching. And they sure as hell make big schematics easier on the eyes (and brain!)

The Luddite

mwvdlee ·

I already noticed the adding of busses, but having to prefix every individual keyname of a bus is a lot more messy than if you could just select an entire child-bus from a parent-bus. I dont know how the busses are implemented internally, but if it would be easy to implement, it is certainly a feature I would like to have.

trogluddite ·

Something like the way folder trees work maybe. You could then possibly extract just one connection within a child bus by using a bus extract with the string 'Child/Parameter1'. The way I do this (sort of) currently is to use a string adder to add an index from an Integer primitive to the main part of the name. Your way would be far more flexible though, and make schematics much easier to read!

infuzion ·

mwvdlee wrote: I already noticed the adding of busses, but having to prefix every individual keyname of a bus is a lot more messy than if you could just select an entire child-bus from a parent-bus. I don't know how the busses are implemented internally, but if it would be easy to implement, it is certainly a feature I would like to have.

I would say the prefix is a good programming practice in general, since you have 2 similar but not the same information, you need to track their difference. Naming things the same that can be confused easily is not a good habit.

If you follow the link I provided, you'll see a perfect example how you can select a sub-set of buss items quickly & effectively.

I'm not saying your idea is bad, it is a neat idea, just that is can be done with what you have now. The very little part-time time the only SM programmer has can be used more effectively IMHO. A year ago Malc was working on a secret new primitive, & I provided a more flexible & faster solution using only existing primitives, so I said, "Sorry, but don't need it. We need fewer crashes though!"

mwvdlee ·

infuzion wrote: I would say the prefix is a good programming practice in general

I disagree. It's a crutch you need when you don't have a better way to separate fields. I'm not talking about "similar but not the same". It is in fact the same information (albeit with different values); just like synchronized modules basically.

infuzion wrote: If you follow the link I provided, you'll see a perfect example how you can select a sub-set of buss items quickly & effectively.

The link, though a nice trick, shows a schematic riddled with wires. The whole point of busses is to rid of wires. Besides, it doesn't really deal with what I'm trying to achieve, which is arranging busses in a sort of tree structure.

I agree there are more worthwhile things the SM programmer can do on SM, but I also have a hunch that this might just be a very simple thing to implement; assuming the busses are just standard C++/C#/whatever key-value containers, it would be trivial to use a bus as the value for a key-value pair.

infuzion ·

mwvdlee wrote: I agree there are more worthwhile things the SM programmer can do on SM, but I also have a hunch that this might just be a very simple thing to implement; assuming the busses are just standard C++/C#/whatever key-value containers, it would be trivial to use a bus as the value for a key-value pair.

There have been a few modules I've & others have made that were made into primitives, Counter Advanced comes to mind, so primitives are handy. Though if you don't like my OSM-example's mess, put it inside a module, skin it, & never open it again. 😉

Anything new in SM is almost never "simple", since (in Malc's more or less own words) adding anything has to be tested against the interaction of all the other modules. Plus the Bus system was never "simple" to add either, it took years, & Imean years before the Bus system was more or less bug-free, & the lack of connector-type updates for the Bus Extract is still a bug IMHO. So yea, maybe a day to add it, & weeks & maybe months to test & debug it. Lockable modules, requested like 4.5 years ago, with 2 attempted tries to add it, still is not part of SM, though I thought that was simple to add also In summery, it is best to assume that any addition will be not simple to add. Maybe if we're lucky it will be, I wouldn't bet on it.

Also, think that you're adding to the DLLs, which are already overbloated IMHO with unused primitives. Adding more features will increase the size & (more importantly) loading time of VSTs.

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.