SynthMaker

TX and RX modules - allow communication between 2 plugins

Archive · 2007 2 old posts

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

skitchy ·

This is one way of doing side-chaining, as well as a host of other useful stuff. The TX module would send audio/data tagged with an ID that you would define as a string. The RX module would receive that audio/data if it was given the same ID string, like infinite channels on a walkie-talkie. Sound familiar? Well, yes, its the same concept as wireless links, but the difference here is that the communication could be BETWEEN 2 DIFFERENT PLUGINS, OR EVEN PLUGINS IN DIFFERENT HOSTS. The simplest usage example is - Make a TX (sender) plugin that goes on the insert channel of a kick drum. All this does is send the audio over the TX link, and lets the audio flow to the next insert unaltered (like its not even there). - Make an RX (receiver) plugin that is a compressor, but that compresses its input audio based on the signal coming from its RX receiver module instead of said input audio (ie a side-chain compressor).

From Outsims standpoint, I can think of a few ways to send this TX/RX data. - Use TCP/IP streams. - Use some sort of shared memory location - Use a temp file on the hard disk (each audio chunk is written by TX, then read and deleted by the corresponding RX). I wouldn't recommend this method though as it might slow the system down.

Here is an example of 2 commercial plugins that use a similar idea : http://www.elevayta.com/ Look at CloneBoy and StreamBoy.

Thanks

TomC ·

skitchy wrote: Sound familiar? Well, yes, its the same concept as wireless links, but the difference here is that the communication could be BETWEEN 2 DIFFERENT PLUGINS, OR EVEN PLUGINS IN DIFFERENT HOSTS. The simplest usage example is [...] From Outsims standpoint, I can think of a few ways to send this TX/RX data. - Use TCP/IP streams. - Use some sort of shared memory location - Use a temp file on the hard disk (each audio chunk is written by TX, then read and deleted by the corresponding RX). I wouldn't recommend this method though as it might slow the system down.

I've implemented sidechaining via TCP/IP before (but of course not in SM, it was a native VST plug-in) and works like a charm but there are several things that are a PITA to solve if you offer this kind of solution to the general public:

- Personal Firewalls: of course they will complain that the plug-ins try to act as an server/client

- Ports: each (server-) socket needs a unique unused port number. Most users wouldn't know what to enter here, or in case of problems (e.g. a formerly unused port is used by another application now and you start an old project with tons of sidechains) how to solve this problems.

Always remember that musicians (sometimes even drummers, hehehe...) are using your software.

- Shared memory would be the best solution, but I'm afraid that if you're a plug in a VST host your possibilities are limited. Not sure what the SDK says about this. Anyone tried this? And you'll be limited to your local PC of course.

Cheers,

Tom

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.