From the original SynthMaker forum (2004–2014), with its members’ names and dates.
xenophea ·
Evening gents,
I just joined up to see if anyone has a solution to my problem here. I'm a Max/MSP user usually but I've been quite taken with SynthMaker of late...
Anyway, I've been playing with ~oddson/AngularMomentum/infuzion's X/Y pad (great work guys!) and am trying to modify it to send out 4 values (by respective quadrants) kind of like a 4 way cross-fader where the central position would be all values equal. I realise of course that to do this I need to make the X and Y ranges something like '-50' to '50' with '0' being bang in the middle rather than 0% - 100%
I'm not sure how to proceed though because currently the outlets (sorry, Max terminology there!) are one for X and one for Y rather than a 4 way kind of thing (which is what I'm after - no pun): 'X' range '-50' - '0', 'X' range '0' - '50', 'Y' range '-50' - '0', 'Y' range '0' - '50' = 4 values that can be sent to control something.
Do any of you SynthMaker gurus have a solution to this dilemma of mine? If you could share I'd be WELL happy!
P.S. I hope this makes sense!
Thanks fellas.
oddson ·
Whatever it is you're trying to say here I'm sure it's doable...
To remap a variable from one range to another just multiply and shift. So to go from [0,1] to [-1,1] you multiply by 2 and subtract 1. (Multiply adjusted the range, since the range is double, you need to double the value. The shift adjusts the range over the right values. Since you want the 0 to become -1 you'll have to subtract 1.)
Are you talking about something like a balance control? -- where the signal is attenuated downward from the middle in one direction only. If so this will give you what you want.
dualBallance.osm
If that's not what you're after I recommend writing a very clear description of what happens to each of the four values for the different ranges of x and y coordinates. This will either let someone else help you out or it will sort out your own thinking about it so you'll be able to do it yourself.
xenophea ·
Thanks for your fast response mate.
Yeah, I read over what I said in my previous post and it does sound a bit confusing. I had a look at your "dualballance" schematic and it kind of does what I want (I think)... I quickly knocked up this to illustrate exactly what it is that I'm trying to achieve:
http://www.fileflyer.com/view/o9ixRBf
I essentially want to try out using an X/Y pad as a 4 way cross-fader/mixer for 4 oscillators (or samplers or whatever I actually decide to do). So ideally if the dot is in the middle it plays all oscillators at equal level and the user can mix them by moving the dot around the pad with hard top left being osc 1 and nothing else and so on.
I'd also like to perhaps implement somekind of 'snap' function for the dots middle position so balancing all the osc's is easy to do.
Once again thanks for the reply and for the schematic that your shared.
oddson ·
That's even easier...
xenophea ·
are those float inverses or int inverses?
xenophea ·
Sorry, dumb question! ignore me
xenophea ·
Thanks for getting back to me (again).
I'm still having a problem though, have a look:
http://www.fileflyer.com/view/8oJomAQ
I'm getting two 'true' values (or '1') and two 'false' ('0') at the same time resulting in two oscillators playing at the same time when the dot is right in the right-hand-top corner etc. I need the outputs to read 1,0,0,0 or 0,1,0,0 or 0,0,1,0 or 0,0,0,1 when planned to the furthest corners.
Does that make any sense?
If you can be bothered to help me out again could you please roughly explain how what you do works as I'm eager to learn this app through and through.
I really appreciate your help by the way, thanks a lot!!!
oddson ·
Let's name the four outputs A,B,C,D which map to the four corners thusly:
B|A
C|D
If the origin is A=B=C=D=0.5
And the corners are:
A=1,B=C=D=0
B=1,A=C=D=0
C=1,A=B=D=0
D=1,A=B=D=0
Then what do we have as we go from the NE to NW corners (for example)?
oddson ·
Nevermind... if the origin (midpoint) is 0.25 for all values it will work with multiplication.
fourbyMixer.osm
xenophea ·
oddson wrote: Let's name the four outputs A,B,C,D which map to the four corners thusly:
B|A
C|D
If the origin is A=B=C=D=0.5
And the corners are:
A=1,B=C=D=0
B=1,A=C=D=0
C=1,A=B=D=0
D=1,A=B=D=0
Then what do we have as we go from the NE to NW corners (for example)?
sorry man, I feel asleep. It's 5.48am over here and I really didn't expect anyone to be this helpful.
OK, so we have
B|A
C|D
these letters refer to each of the 4 furthest quarters of the x/y pad. Each of these letters represent a value (in this case a value which controls an amp object on 4 oscillators). So, if the bitmap dot is in quadrant 'B', right in the top corner then only one of the oscillators will be audible. If the user moves the dot diagonally towards the center then each of the three other oscillators will become more and more audible until the dot is in the center in which case all of the oscillators will be audible at the same level. Get it?
So in a sense I want a 3D crossfader (kind of).
I think multiplication is right actually now that I think about it...
xenophea ·
AH HA!!!!
YOU DID IT!!!
Ah, that's amazing! I think I understand what you've done as well which is even more important.
Thank you so much. Tell me are you always this helpful?
oddson ·
LOL - go to bed man... this will wait 'til morning.
If the scaling isn't quite what you want you can take the output as a starting point and then apply some other function to each of the four outputs to get a different response curve.
E.g. - if you want the mid point to be loader than 0.25 you could raise the output to a fractional power.
oddson ·
Here's one with convex/concave options on the output functions.
fourbyMixerNL.osm
I've also added a right-click recenter function to the xy pad.
BTW - the xy pad I've been using is missing several basic features like that. I don't know if the one on the WIKI has had them all added by others or not.
xenophea ·
I think you may have accidentally uploaded the same one dude. This new one is exactly the same as the last one.
oddson ·
😊 - try it now.
Wrote something here? To have a post removed or your name hidden, write to [email protected].