SynthMaker

audio-to-ruby-ruby-to-audio-modules

Archive · 2012 13 old posts

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

DigitalWhiteByte ·

😠 http://www.dsprobotics.blogspot.co.uk/2 ... dules.html

nix ·

This may be good-- if FS & SM r to merge

attic ·

I had a sneaking suspicion something like this would pop out of the woodwork. That is indeed a good thing ...so no frowny 😠 faces.

DigitalWhiteByte ·

Tzarls ·

I don´t get this.... so the code component works only with streams, and ruby works only in green unless used with these new components? Why not include just 1 coding component that works with any kind of data? 😕

attic ·

He he .. on DigitalWhitebytes string of obscenity face.

Why not include just 1 coding component that works with any kind of data?

That is an interesting observation, you have me thinking on this now. There is always got to be a reason.

trogluddite ·

attic wrote: There is always got to be a reason.

The nature of poly and mono4 signals is a big part of the difference, I think - and it means that there will probably always be some distinction between stream code and "green" code.

Poly/mono4 signals use the four channels of SSE vectors to seriously up the CPU performance when lots of notes are playing - very clever, but also a kind of 'closed' system. Any newly created module, or code/assembly routine, needs to be compatible with that system - so the code/assembly primitives deliberately have very a very limited range of instructions. The limited instructions reflect the range of things that the SSE part of the CPU are good at - seriously fast number crunching; the thing that DSP most needs. But implementing conditional branching doesn't work well in SSE because you can't branch a single channel, only all four at once - so it makes implementing a higher level language very difficult indeed.

I suppose you could say that the choice to have a fixed SSE poly architecture forces stream code to be very "low level"- in order to give FS access to a higher level language with all the goodies like loops and data structures they are forced to implement them using a separate system. I would guess that they chose Ruby simply because it is easy to implement, and has a reputation for being quick to learn and very readable - probably a good choice for FS, but I'm not so sure if it's so suitable for SM (it's interpreted rather than compiled, so not particularly efficient).

Fixing the poly architecture to SSE does put limits on what we can do using SM's code and assembly - but as with all things SM, there's a trade between flexibility and simplicity. Having a 'standard' for poly signals means that you can just "plug and play" with modules very easily, and the SSE means that they won't kill your CPU.

Tzarls ·

trogluddite wrote: I would guess that they chose Ruby simply because it is easy to implement, and has a reputation for being quick to learn and very readable - probably a good choice for FS, but I'm not so sure if it's so suitable for SM (it's interpreted rather than compiled, so not particularly efficient).

AFAIK, Ruby is compiled Just In Time, not interpreted - but I get your point. What I meant was that, instead of having the Ruby component for green, and the Ruby2Stream - Stream2Ruby for streams, why not have a green Ruby and a stream Ruby (that does all the conversion from SSE to Ruby internally)? That would make schematics simpler, IMHO.

trogluddite ·

Ah yes, see what you mean now. Yeah, I kind of like the idea of Ruby with streamin and streamouts. The code in the screenshot shows that it is using the Ruby event timer stuff (the "Sync" primitive) - so I wonder if they did it this way so that you can have things running at different speeds inside the same Ruby - that would be pretty cool.

DigitalWhiteByte ·

MIDI IN RUBY

Tzarls ·

Nice.... I hope these get ported to SM so you guys can benefit from them.... me, I´ve already got coding "primitives" able to handle audio and different kinds of events... 😈

DigitalWhiteByte ·

Tzarls wrote: Nice.... I hope these get ported to SM so you guys can benefit from them.... me, I´ve already got coding "primitives" able to handle audio and different kinds of events... 😈

"Primitive"? for your project GENERA? 😍

Tzarls ·

😉

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.