SynthMaker

Reading Data

Archive · 2006 18 old posts

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

ginocote ·

Hi,

How can i read data in volt from the Midi to poly Gate?

I explain. With Synthedit, we can connect a volt meter to the CV Gate to read data. i used that to make a flip flop pan. Meaning when playing a note, the pan change each time.

From that, it's bring me other idea to make the synth more changing like a real synth. I have first to extract and read the number comming from the Gate.

rl ·

Hi ginocote, I had bad luck connecting a volt meter, because I couldn't find the Gate. All I found was a free soundcard output slot and some unused USB connectors. But jokes aside, SM does not measure in Volts, but does in Brddls [Bd]. This was not covered in the documentation yet (since SM is still Beta). The SM system measures in units of [0..1] [Bd]. A Volt makes almost 10 [Bd] (The exact value is 9.81 according to the influence of the gravity on the electrons and the Heisenberg relation on Software bugs (you either spot their location or their impact, but not both at the same time).

But back on topic, to create a panner on note change use a Midi Splitter module on the midi input and create a trigger on new notes. Use these triggers to drive the panner. Hope this helps.

ginocote ·

Thank,

How i create this trigger?

And how can i read these units? It is alway 1 and 0? No number in between?

rl wrote: Hi ginocote, I had bad luck connecting a volt meter, because I couldn't find the Gate. All I found was a free soundcard output slot and some unused USB connectors. But jokes aside, SM does not measure in Volts, but does in Brddls [Bd]. This was not covered in the documentation yet (since SM is still Beta). The SM system measures in units of [0..1] [Bd]. A Volt makes almost 10 [Bd] (The exact value is 9.81 according to the influence of the gravity on the electrons and the Heisenberg relation on Software bugs (you either spot their location or their impact, but not both at the same time).

But back on topic, to create a panner on note change use a Midi Splitter module on the midi input and create a trigger on new notes. Use these triggers to drive the panner. Hope this helps.

oddson ·

In between Rudolph's jokes, I believe he was suggesting this...

OSM It reads midi-on notes and toggles between hard left and right pan. A more subtle effect could be had by some kind of smoothing filter.

The 'gate' is a poly-boolean value and can be used as a mask in a code module but I can't think of any (easy) way to use it to make this work.

edit-- I guess this isn't what you're looking for since it hard pans the whole signal left and right instead of based on the note... Making something the left the existing note with its original pan while the new note pans opposite would be harder... I'll give it a little thought.

stefan ·

What about having a poly "sampler" that samples the triggers value upon note on?

Something like

streamin in; streamout out;

stage(0) { out = in; }

Could work if you fiddle around a bit

oddson ·

Hey Stefan... haven't wrapped by brain around your suggestion yet...

...what I got was to filter the note on messages to separate left and right signal generators... not exactly efficient.

Here's the OSM is anyone want's to see.

stefan ·

The purpose of my suggestion is to be able to set the pan at the start of the voice, and then set it to whatever you want for each new voice that starts, without affecting already playing voices (because they sampled the pan at their start)

oddson ·

Like this!

polyin in; polyin toggle; polyout left; polyout right; float temp; stage(0) { temp = toggle; } left = in * temp; right = in * ( temp==0 & 1);

OSM

stefan ·

Exactly! It might be nicer to just have pan as a input instead of the toggle though, that way one could use this "pan sampler" for more things than just hard left/right panning. A matter of taste though!

btw, you're osm link is faulty (.png instead of .osm) 🙂

oddson ·

OK like this

polyin in; polyin pan; polyout left; polyout right; float temp; stage(0) { temp = pan; } left = in * temp; right = in * ( 1 - temp);

stefan ·

yeah. in the osm you posted, you should probably remove the "bool to false trigger", since when having that there, you won't get the right behaviour upon playing several notes simultaenously.

edit: ignore that. both gives you the wrong behaviour 🙂 mine works when holding notes, but not when playing one at a time, yours works when playing one at a time, but not when holding notes 🙂

oddson ·

Ooops - I thought I put a boolean to true there! Now I realize it wasn't needed anyway but I sure never meant to put the false on in there. 😊

edit- didn't catch your edit before posting. It's not 100% and I don't know why but it mostly works. I tried it with a boolean trigger switch and that has similar problems... oh well, that's as close as I'm going to get.

rl ·

oddson wrote: In between Rudolph's jokes, I believe he was suggesting this...

Thanks oddson, for helping out. This was what I had in mind.

I had no access to my SM workbench today and didn't want to leave ginocote alone with his problem (and my silly jokes), so I wanted to create an example later this evening. But you did save some of my time.

To add something useful to this interesting discussion:

How about omitting the midi logic and just using (not tested yet):

polyin in;

polyout left; polyout right;

float toggle;

stage(0) { toggle = toggle+1; toggle = toggle - (toggle > 1) & 1; }

left = in * toogle; right = in * ( 1 - toogle);

So after each poly process starts (stage 0) toggle switches from 0 to 1 and vice versa.

Hi ginocote, does this work for you?

Cheers.

stefan ·

But at each process start toggle will be initialized to 0...

rl ·

aargh, really? I thought, only if I put an explicit init code in. So, how could I define a "static" variable?

ginocote ·

Look good but don't know wich one really work.

Do you have a final .osm ?

In Synthedit we use a stepcounter. do the counter module do the same thing?

infuzion ·

ginocote wrote: In Synthedit we use a stepcounter. do the counter module do the same thing?

You might want to try the "Counter Advanced" primitive; allows negitive increments.

oddson ·

ginocote wrote: Look good but don't know wich one really work.

Do you have a final .osm ?...

This OSM works as well as any and has a pan amount control.

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.