Support

If you have a problem or need to report a bug please email : support@dsprobotics.com

There are 3 sections to this support area:

DOWNLOADS: access to product manuals, support files and drivers

HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects

USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here

NEW REGISTRATIONS - please contact us if you wish to register on the forum

Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright

it is about time...

For general discussion related FlowStone

Re: it is about time...

Postby 110 » Mon Jan 23, 2017 10:13 pm

since std:: isnt available and math:: doesnt have it, it seems that
Code: Select all
output [@f1, 5].max

is the only way to go.

is that best practice? it is really hard to read for me, i know it as max(0, 5)

plus i think an array creates at least a namespace in memory, if not more troublesome stuff.
Last edited by 110 on Mon Jan 23, 2017 10:32 pm, edited 1 time in total.
110
 
Posts: 40
Joined: Mon Jan 16, 2017 3:20 pm

Re: it is about time...

Postby RJHollins » Mon Jan 23, 2017 10:18 pm

just following along with your posts 110.

I noticed RUBY ERRORs in this last example. It seems the 'period' after a number is throwing an error.
I removed the 'dot', and the calculations show. [i've not verified the correctness of the calculation].

Anyway, just thought I'd mention, as I look to learn every chance I get.

thanks for your posts !
8-)
RJHollins
 
Posts: 1571
Joined: Thu Mar 08, 2012 7:58 pm

Re: it is about time...

Postby 110 » Mon Jan 23, 2017 10:33 pm

i know that the one or other is following and wonders how to help. it is probably not so obvious what i exspect. :)
so i just share my experience, better than nothing.
110
 
Posts: 40
Joined: Mon Jan 16, 2017 3:20 pm

Re: it is about time...

Postby 110 » Mon Jan 23, 2017 10:41 pm

which period, that 69. in the rightmost module?

yes, thats also coming from maxmsp-expr where this dot indicates that the number is a float and should also be used like that.

while it is valid to write expr $f1*69 in max and returns a float (because the variable $f1 is of type float), you will run into trouble when you try to do expr $f1/69 - because the division will now be performed in int, so if you send a 17 in this thing it will return 0. float.

unlike in pure data, we know int and float in max and in most situations using a float matters (expr is actually one of the few exceptions), and we may write 69. for 69.0 .

i guess if i take all these things into account for automatic conversion of my expressions, my max-to-ruby max-patch will be more complicated in the end than my most complicated expression is. :D
110
 
Posts: 40
Joined: Mon Jan 16, 2017 3:20 pm

Re: it is about time...

Postby KG_is_back » Mon Jan 23, 2017 11:27 pm

110 wrote:since std:: isnt available and math:: doesnt have it, it seems that
Code: Select all
output [@f1, 5].max

is the only way to go.

is that best practice? it is really hard to read for me, i know it as max(0, 5)

plus i think an array creates at least a namespace in memory, if not more troublesome stuff.


not really. When you call [a,b,c].max what happens is array is created, max method is called upon it and array gets discarded. If you had function like max(a,b,c) what would ruby do is create array [a,b,c] and pass that array to the max(*p) method. it is effectively the same thing happening. If you really want to use traditional max/min method you can easily create one:
Code: Select all
def max(*p)
p.max
end

def min(*p)
p.min
end

KG_is_back
 
Posts: 1196
Joined: Tue Oct 22, 2013 5:43 pm
Location: Slovakia

Re: it is about time...

Postby 110 » Tue Jan 24, 2017 1:05 am

interesting! :)

so i know two working methods now to choose from.

here is the next issue. for noise with chi distribution i need to trigger this

((Math.sqrt(-2.0*Math.log(1.0-(rand))))*(Math.cos((rand)*6.283185307))**2.0)

for n times and accumulate the result.

no idea how to do that in ruby - and no idea how to make 5 consecutive triggers from 1 outside the ruby object.

both would be a good exercise.
110
 
Posts: 40
Joined: Mon Jan 16, 2017 3:20 pm

Re: it is about time...

Postby 110 » Tue Jan 24, 2017 1:29 am

it seems i could do
Code: Select all
[(@f1<=>1.0), 0.0].max

where i need
Code: Select all
(@f1<1.0)

to output 0 and 1.
but it looks a bit strange and converting that programatically will be more work then to type it by hand.
110
 
Posts: 40
Joined: Mon Jan 16, 2017 3:20 pm

Re: it is about time...

Postby RJHollins » Tue Jan 24, 2017 1:34 am

110 wrote:which period, that 69. in the rightmost module?
:D

Yes ... for that example, I just added a '0' after the period ---> 69.0

It seems SYNTAX is particular about this.

Same thing [i believe] with examples like: 0.123456 It seems the 0 in front of the decimal point is required.
RJHollins
 
Posts: 1571
Joined: Thu Mar 08, 2012 7:58 pm

Re: it is about time...

Postby 110 » Tue Jan 24, 2017 1:39 am

right, there were more errors like that, they just didnt show up as errors as inputs were missing and stuff.


so now here...

Code: Select all
output (Math.log(@f1))

def Math.log(*p)
log(*p)
end

output (log(@f1))


nice try, 110, but "stack level too deep". hmpf.
110
 
Posts: 40
Joined: Mon Jan 16, 2017 3:20 pm

Re: it is about time...

Postby 110 » Tue Jan 24, 2017 2:40 am

...
Attachments
110-first-03.fsm
(2.58 KiB) Downloaded 869 times
110
 
Posts: 40
Joined: Mon Jan 16, 2017 3:20 pm

PreviousNext

Return to General

Who is online

Users browsing this forum: Google [Bot] and 88 guests