Re: [PD] help cloning max's scale

2015-06-19 Thread Gilberto Agostinho via Pd-list

Hi Alexandre,

 it almost is, but in maxlib you just turn the mapping to log on or 
off, in max you specify a log parameter.


That is a very handy feature!

 by the way, I'm pretty sure I'm not doing anything wrong, and the 
given equation in Max just seems to be wrong


Yep, just double checked your equation in a calculator and your result 
is correct, so probably the equation in Max is incorrect indeed.


Cheers,
Gilberto
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


[PD] help cloning max's scale

2015-06-19 Thread Alexandre Torres Porres
Howdy, so I'm cloning the scale object from Max, to make an object and
include in the cyclone library. It converts range input (low_in / high_in)
to a range output (low_out / high_out). It has a logarithmic curve for
rescaling according to a fifth argument/inlet. I did copy into expr the
formula described in the reference of Max6/7 (max's 5 was just wrong,
copied from [linedrive]) - well, it didn't work! Would anyone know if I'm
doing something wrong or if the reference is not telling the truth?

The formula, as described in the reference is: (out_low + (out_high-out_low)
* ( (out_high - out_low) * exp(-1 * (in_high-in_low) * log(power)) * exp(x
* log(power)) ))


Here's my patch with that formula into expr. The output with the parameters
I have should be -0.997347 - as that's the output I get in Max. But
instead, it's giving -0.994694...


thanks




=


#N canvas 24 23 488 340 10;

#X obj 215 154 v out_low;

#X obj 233 132 v out_high;

#X obj 288 110 v power;

#X obj 152 130 v in_high;

#X obj 115 153 v in_low;

#X floatatom 58 248 0 0 0 0 - - -;

#X obj 58 197 expr (out_low + (out_high-out_low) * ( (out_high - out_low)

* exp(-1*(in_high-in_low)*log(power)) * exp($f1*log(power)) ));

#X msg 115 102 0;

#X msg 152 102 127;

#X msg 215 99 -1;

#X msg 249 97 1;

#X msg 288 86 1.06;

#X obj 90 31 loadbang;

#X obj 90 60 t b b;

#X msg 58 107 13.3;

#X connect 6 0 5 0;

#X connect 7 0 4 0;

#X connect 8 0 3 0;

#X connect 9 0 0 0;

#X connect 10 0 1 0;

#X connect 11 0 2 0;

#X connect 12 0 13 0;

#X connect 13 0 14 0;

#X connect 13 1 11 0;

#X connect 13 1 10 0;

#X connect 13 1 9 0;

#X connect 13 1 8 0;

#X connect 13 1 7 0;

#X connect 14 0 6 0;


scale-test.pd
Description: Binary data
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] help cloning max's scale

2015-06-19 Thread Alexandre Torres Porres
 the object you describe sounds to me identical to [maxlib/scale]

it almost is, but in maxlib you just turn the mapping to log on or off, in
max you specify a log parameter.

I did share a patch in text and attached. Not sure if everyone gets the
attachment so I sent the text file as well, but here's the attached file to
you again, and I'm also sharing a downloadable link

https://drive.google.com/file/d/0B3AoiT0xk8fnRGphNTlTdFNxQ2c/view?usp=sharing

by the way, I'm pretty sure I'm not doing anything wrong, and the given
equation in Max just seems to be wrong

cheers

2015-06-19 19:53 GMT-03:00 Gilberto Agostinho via Pd-list 
pd-list@lists.iem.at:

 Hi Alexandre,

 On 20/06/15 00:39, pd-list-requ...@lists.iem.at wrote:

 Here's my patch with that formula into expr. The output with the
 parameters
 I have should be -0.997347 - as that's the output I get in Max. But
 instead, it's giving -0.994694...


 Would you care to share your parameters so we can test your abstraction?

 Also, I haven't been reading this list very attentively lately (busy days,
 you know) so I may have lost quite a lot of discussions lately, but the
 object you describe sounds to me identical to [maxlib/scale], which takes 5
 arguments: input low, input high, output low, output high, coefficient
 (linear or log).

 Cheers,
 Gilberto

 ___
 Pd-list@lists.iem.at mailing list
 UNSUBSCRIBE and account-management -
 http://lists.puredata.info/listinfo/pd-list



scale-test.pd
Description: Binary data
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] help cloning max's scale

2015-06-19 Thread Joel Matthys
You're using the [scale] formula from @classic_mode in Max7, which 
exists for compatibility with IRCAM, but it's clearly wrong. (There's no 
way mapping 13.3 from 0-127 to -1 to 1 should result in something so 
close to -1. Just try a few different exponents and you'll see that 
there's a bug in the Max code. And there are lots of bug reports out 
there about it.)


That's why they introduced an alternate mode for [scale] in Max, which 
can be switch in the Inspector.


For non-classic (modern) mode, the documentation gives you this equation:

((x-in_low)/(in_high-in_low) == 0) ? out_low : 
(((x-in_low)/(in_high-in_low))  0) ? (out_low + (out_high-out_low) * 
((x-in_low)/(in_high-in_low))^exp) : ( out_low + (out_high-out_low) * 
--x+in_low)/(in_high-in_low)))^(exp)))


Translated to expr as:

[expr if ((($f1-in_low)/(in_high-in_low)==0), out_low, if 
((($f1-in_low)/(in_high-in_low)0), 
out_low+(out_high-out_low)*pow(($f1-in_low)/(in_high-in_low), power), 
out_low+(out_high-out_low)*-1*pow((-1*$f1+in_low)/(in_high-in_low), 
power)))]


Switch off classic mode in the inspector in Max7, and you get the same 
result as expr above, the very sensible -0.817072.


Joel

On 06/19/2015 05:39 PM, Alexandre Torres Porres wrote:


Howdy, so I'm cloning the scale object from Max, to make an object and 
include in the cyclone library. It converts range input (low_in / 
high_in) to a range output (low_out / high_out). It has a logarithmic 
curve for rescaling according to a fifth argument/inlet. I did copy 
into expr the formula described in the reference of Max6/7 (max's 5 
was just wrong, copied from [linedrive]) - well, it didn't work! Would 
anyone know if I'm doing something wrong or if the reference is not 
telling the truth?


The formula, as described in the reference is: (out_low + 
(out_high-out_low) * ( (out_high - out_low) * exp(-1 * 
(in_high-in_low) * log(power)) * exp(x * log(power)) ))



Here's my patch with that formula into expr. The output with the 
parameters I have should be -0.997347 - as that's the output I get in 
Max. But instead, it's giving -0.994694...



thanks




=


#N canvas 24 23 488 340 10;

#X obj 215 154 v out_low;

#X obj 233 132 v out_high;

#X obj 288 110 v power;

#X obj 152 130 v in_high;

#X obj 115 153 v in_low;

#X floatatom 58 248 0 0 0 0 - - -;

#X obj 58 197 expr (out_low + (out_high-out_low) * ( (out_high - out_low)

* exp(-1*(in_high-in_low)*log(power)) * exp($f1*log(power)) ));

#X msg 115 102 0;

#X msg 152 102 127;

#X msg 215 99 -1;

#X msg 249 97 1;

#X msg 288 86 1.06;

#X obj 90 31 loadbang;

#X obj 90 60 t b b;

#X msg 58 107 13.3;

#X connect 6 0 5 0;

#X connect 7 0 4 0;

#X connect 8 0 3 0;

#X connect 9 0 0 0;

#X connect 10 0 1 0;

#X connect 11 0 2 0;

#X connect 12 0 13 0;

#X connect 13 0 14 0;

#X connect 13 1 11 0;

#X connect 13 1 10 0;

#X connect 13 1 9 0;

#X connect 13 1 8 0;

#X connect 13 1 7 0;

#X connect 14 0 6 0;




___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] help cloning max's scale

2015-06-19 Thread Alexandre Torres Porres
yeah, I see all that, but the problem is trying to clone it as it is in Max
for the sake of compatibility.

I wouldn't say that the classic mode is wrong, it may be not good for the
purpose, but it's an arbitrary mathematical formula, so it is what it is.

The problem is that I'm not being able to get the result the object spits
out with the formula given in the reference.

So my question is just making it sure that the given formula is wrong, and
that it doesn't give what the object actually does.

moreover, the idea is to keep compatibility, at first, with Max5. In Max7
the scale object will still give the same results (as default, by the way),
so even if it was for the sake of making it compatible with Max7, we'd
still need to make it work. But the thing is that the new not classic
mode was introduced only in Max6. So, for the actual purpose, we're only
caring about the classic mode compatibility.

did you check if the formula in the reference is actually wrong, in the
sense it won't give the results given by the object? Were you able to spot
a parenthesis out of place or something that, if changed, would give the
expected result?

thanks

cheers

2015-06-19 22:25 GMT-03:00 Joel Matthys jwmatt...@gmail.com:

  You're using the [scale] formula from @classic_mode in Max7, which exists
 for compatibility with IRCAM, but it's clearly wrong. (There's no way
 mapping 13.3 from 0-127 to -1 to 1 should result in something so close to
 -1. Just try a few different exponents and you'll see that there's a bug in
 the Max code. And there are lots of bug reports out there about it.)

 That's why they introduced an alternate mode for [scale] in Max, which can
 be switch in the Inspector.

 For non-classic (modern) mode, the documentation gives you this equation:

 ((x-in_low)/(in_high-in_low) == 0) ? out_low :
 (((x-in_low)/(in_high-in_low))  0) ? (out_low + (out_high-out_low) *
 ((x-in_low)/(in_high-in_low))^exp) : ( out_low + (out_high-out_low) *
 --x+in_low)/(in_high-in_low)))^(exp)))

 Translated to expr as:

 [expr if ((($f1-in_low)/(in_high-in_low)==0), out_low, if
 ((($f1-in_low)/(in_high-in_low)0),
 out_low+(out_high-out_low)*pow(($f1-in_low)/(in_high-in_low), power),
 out_low+(out_high-out_low)*-1*pow((-1*$f1+in_low)/(in_high-in_low),
 power)))]

 Switch off classic mode in the inspector in Max7, and you get the same
 result as expr above, the very sensible -0.817072.

 Joel


 On 06/19/2015 05:39 PM, Alexandre Torres Porres wrote:

  Howdy, so I'm cloning the scale object from Max, to make an object and
 include in the cyclone library. It converts range input (low_in / high_in)
 to a range output (low_out / high_out). It has a logarithmic curve for
 rescaling according to a fifth argument/inlet. I did copy into expr the
 formula described in the reference of Max6/7 (max's 5 was just wrong,
 copied from [linedrive]) - well, it didn't work! Would anyone know if I'm
 doing something wrong or if the reference is not telling the truth?

 The formula, as described in the reference is: (out_low + (out_high-out_low)
 * ( (out_high - out_low) * exp(-1 * (in_high-in_low) * log(power)) * exp(x
 * log(power)) ))


  Here's my patch with that formula into expr. The output with the
 parameters I have should be -0.997347 - as that's the output I get in Max.
 But instead, it's giving -0.994694...


  thanks




  =


  #N canvas 24 23 488 340 10;

 #X obj 215 154 v out_low;

 #X obj 233 132 v out_high;

 #X obj 288 110 v power;

 #X obj 152 130 v in_high;

 #X obj 115 153 v in_low;

 #X floatatom 58 248 0 0 0 0 - - -;

 #X obj 58 197 expr (out_low + (out_high-out_low) * ( (out_high - out_low)

 * exp(-1*(in_high-in_low)*log(power)) * exp($f1*log(power)) ));

 #X msg 115 102 0;

 #X msg 152 102 127;

 #X msg 215 99 -1;

 #X msg 249 97 1;

 #X msg 288 86 1.06;

 #X obj 90 31 loadbang;

 #X obj 90 60 t b b;

 #X msg 58 107 13.3;

 #X connect 6 0 5 0;

 #X connect 7 0 4 0;

 #X connect 8 0 3 0;

 #X connect 9 0 0 0;

 #X connect 10 0 1 0;

 #X connect 11 0 2 0;

 #X connect 12 0 13 0;

 #X connect 13 0 14 0;

 #X connect 13 1 11 0;

 #X connect 13 1 10 0;

 #X connect 13 1 9 0;

 #X connect 13 1 8 0;

 #X connect 13 1 7 0;

 #X connect 14 0 6 0;



 ___pd-l...@lists.iem.at mailing 
 list
 UNSUBSCRIBE and account-management - 
 http://lists.puredata.info/listinfo/pd-list



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] help cloning max's scale

2015-06-19 Thread Alexandre Torres Porres
Well, I'm trying to point out that it ain't broken, the object works...
whatever its code is. I'm just trying to figure out the code to clone it.

2015-06-19 22:55 GMT-03:00 Joel Matthys jwmatt...@gmail.com:

  I just don't see the value of trying to make it compatible with broken
 code in Max.

 Joel


 On 06/19/2015 08:47 PM, Alexandre Torres Porres wrote:

 yeah, I see all that, but the problem is trying to clone it as it is in
 Max for the sake of compatibility.

  I wouldn't say that the classic mode is wrong, it may be not good for
 the purpose, but it's an arbitrary mathematical formula, so it is what it
 is.

  The problem is that I'm not being able to get the result the object
 spits out with the formula given in the reference.

  So my question is just making it sure that the given formula is wrong,
 and that it doesn't give what the object actually does.

  moreover, the idea is to keep compatibility, at first, with Max5. In
 Max7 the scale object will still give the same results (as default, by the
 way), so even if it was for the sake of making it compatible with Max7,
 we'd still need to make it work. But the thing is that the new not
 classic mode was introduced only in Max6. So, for the actual purpose,
 we're only caring about the classic mode compatibility.

  did you check if the formula in the reference is actually wrong, in the
 sense it won't give the results given by the object? Were you able to spot
 a parenthesis out of place or something that, if changed, would give the
 expected result?

  thanks

  cheers

 2015-06-19 22:25 GMT-03:00 Joel Matthys jwmatt...@gmail.com:

  You're using the [scale] formula from @classic_mode in Max7, which
 exists for compatibility with IRCAM, but it's clearly wrong. (There's no
 way mapping 13.3 from 0-127 to -1 to 1 should result in something so close
 to -1. Just try a few different exponents and you'll see that there's a bug
 in the Max code. And there are lots of bug reports out there about it.)

 That's why they introduced an alternate mode for [scale] in Max, which
 can be switch in the Inspector.

 For non-classic (modern) mode, the documentation gives you this equation:

 ((x-in_low)/(in_high-in_low) == 0) ? out_low :
 (((x-in_low)/(in_high-in_low))  0) ? (out_low + (out_high-out_low) *
 ((x-in_low)/(in_high-in_low))^exp) : ( out_low + (out_high-out_low) *
 --x+in_low)/(in_high-in_low)))^(exp)))

 Translated to expr as:

 [expr if ((($f1-in_low)/(in_high-in_low)==0), out_low, if
 ((($f1-in_low)/(in_high-in_low)0),
 out_low+(out_high-out_low)*pow(($f1-in_low)/(in_high-in_low), power),
 out_low+(out_high-out_low)*-1*pow((-1*$f1+in_low)/(in_high-in_low),
 power)))]

 Switch off classic mode in the inspector in Max7, and you get the same
 result as expr above, the very sensible -0.817072.

 Joel


 On 06/19/2015 05:39 PM, Alexandre Torres Porres wrote:

   Howdy, so I'm cloning the scale object from Max, to make an object and
 include in the cyclone library. It converts range input (low_in / high_in)
 to a range output (low_out / high_out). It has a logarithmic curve for
 rescaling according to a fifth argument/inlet. I did copy into expr the
 formula described in the reference of Max6/7 (max's 5 was just wrong,
 copied from [linedrive]) - well, it didn't work! Would anyone know if I'm
 doing something wrong or if the reference is not telling the truth?

 The formula, as described in the reference is: (out_low + (out_high-out_low)
 * ( (out_high - out_low) * exp(-1 * (in_high-in_low) * log(power)) * exp(x
 * log(power)) ))


  Here's my patch with that formula into expr. The output with the
 parameters I have should be -0.997347 - as that's the output I get in Max.
 But instead, it's giving -0.994694...


  thanks




  =


  #N canvas 24 23 488 340 10;

 #X obj 215 154 v out_low;

 #X obj 233 132 v out_high;

 #X obj 288 110 v power;

 #X obj 152 130 v in_high;

 #X obj 115 153 v in_low;

 #X floatatom 58 248 0 0 0 0 - - -;

 #X obj 58 197 expr (out_low + (out_high-out_low) * ( (out_high - out_low)

 * exp(-1*(in_high-in_low)*log(power)) * exp($f1*log(power)) ));

 #X msg 115 102 0;

 #X msg 152 102 127;

 #X msg 215 99 -1;

 #X msg 249 97 1;

 #X msg 288 86 1.06;

 #X obj 90 31 loadbang;

 #X obj 90 60 t b b;

 #X msg 58 107 13.3;

 #X connect 6 0 5 0;

 #X connect 7 0 4 0;

 #X connect 8 0 3 0;

 #X connect 9 0 0 0;

 #X connect 10 0 1 0;

 #X connect 11 0 2 0;

 #X connect 12 0 13 0;

 #X connect 13 0 14 0;

 #X connect 13 1 11 0;

 #X connect 13 1 10 0;

 #X connect 13 1 9 0;

 #X connect 13 1 8 0;

 #X connect 13 1 7 0;

 #X connect 14 0 6 0;



   ___pd-l...@lists.iem.at 
 mailing list
 UNSUBSCRIBE and account-management - 
 http://lists.puredata.info/listinfo/pd-list





___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] help cloning max's scale

2015-06-19 Thread Alexandre Torres Porres
 There's no way mapping 13.3 from 0-127 to -1 to 1
 should result in something so close to -1

well, there wouldn't be a way if it were a linear scaling... but it's a
logarithmic scale, so it'll do what it does.

 Just try a few different exponents and
 you'll see that there's a bug in the Max code.

which bug exactly? I tried other values close to the typical value they
mention (1.06) and it doesn't seem weird to me. Not typical values will
given untypical and not so useful results, but they warn you about it.

 there are lots of bug reports out there about it.

About the object or the conversion formula? cause if it is about the
object, it could be anything. Now, if the object does not convert according
to the supposed math, it'd be reasonable that they'd have it fixed
eventually. Is this really the case? I hope you could be more specific
about the issue. I'd like to know that please, now that I'm working with
this.

 Switch off classic mode in the inspector in Max7, and you
 get the same result as expr above, the very sensible -0.817072.

To be honest, I don't think the non classic mode is that much sensible.
It'd make much more sense to me to specify a power exponential.

Anyway, it may be more sensible after all, but this fact alone is not
enough to say the other one is wrong or broken - you can just say it
isn't sensible... which is true.

What we know is that the given formula in the reference for the non classic
mode is in accordance to what the object outputs. I had tested that by the
way, and saw it was accurate.

I'm just asking to make sure if the other given formula given in the
reference is actually wrong, or if I made a mistake. It seems clear for us
that it is not outputting what the object is, so the reference seems just
wrong.

If the reference is wrong, it doesn't mean the object is broken or
wrong. And talking about being sensible, the output of the given formula
is even crazier and all... so it's not like the object should output that,
it's more like hey, the reference is wrong, and we don't know the formula
to clone it!

About the other inquiry on what would I want to clone an object that
behaves arguably insensibly, the answer is just that I'd like to clone it
for the purpose of cloning it. Whatever it is, I'd like to make an exact
copy of it. That's the purpose of cyclone after all.

cheers


2015-06-19 22:25 GMT-03:00 Joel Matthys jwmatt...@gmail.com:

  You're using the [scale] formula from @classic_mode in Max7, which exists
 for compatibility with IRCAM, but it's clearly wrong. (There's no way
 mapping 13.3 from 0-127 to -1 to 1 should result in something so close to
 -1. Just try a few different exponents and you'll see that there's a bug in
 the Max code. And there are lots of bug reports out there about it.)

 That's why they introduced an alternate mode for [scale] in Max, which can
 be switch in the Inspector.

 For non-classic (modern) mode, the documentation gives you this equation:

 ((x-in_low)/(in_high-in_low) == 0) ? out_low :
 (((x-in_low)/(in_high-in_low))  0) ? (out_low + (out_high-out_low) *
 ((x-in_low)/(in_high-in_low))^exp) : ( out_low + (out_high-out_low) *
 --x+in_low)/(in_high-in_low)))^(exp)))

 Translated to expr as:

 [expr if ((($f1-in_low)/(in_high-in_low)==0), out_low, if
 ((($f1-in_low)/(in_high-in_low)0),
 out_low+(out_high-out_low)*pow(($f1-in_low)/(in_high-in_low), power),
 out_low+(out_high-out_low)*-1*pow((-1*$f1+in_low)/(in_high-in_low),
 power)))]

 Switch off classic mode in the inspector in Max7, and you get the same
 result as expr above, the very sensible -0.817072.

 Joel


 On 06/19/2015 05:39 PM, Alexandre Torres Porres wrote:

  Howdy, so I'm cloning the scale object from Max, to make an object and
 include in the cyclone library. It converts range input (low_in / high_in)
 to a range output (low_out / high_out). It has a logarithmic curve for
 rescaling according to a fifth argument/inlet. I did copy into expr the
 formula described in the reference of Max6/7 (max's 5 was just wrong,
 copied from [linedrive]) - well, it didn't work! Would anyone know if I'm
 doing something wrong or if the reference is not telling the truth?

 The formula, as described in the reference is: (out_low + (out_high-out_low)
 * ( (out_high - out_low) * exp(-1 * (in_high-in_low) * log(power)) * exp(x
 * log(power)) ))


  Here's my patch with that formula into expr. The output with the
 parameters I have should be -0.997347 - as that's the output I get in Max.
 But instead, it's giving -0.994694...


  thanks




  =


  #N canvas 24 23 488 340 10;

 #X obj 215 154 v out_low;

 #X obj 233 132 v out_high;

 #X obj 288 110 v power;

 #X obj 152 130 v in_high;

 #X obj 115 153 v in_low;

 #X floatatom 58 248 0 0 0 0 - - -;

 #X obj 58 197 expr (out_low + (out_high-out_low) * ( (out_high - out_low)

 * exp(-1*(in_high-in_low)*log(power)) * exp($f1*log(power)) ));

 #X msg 115 102 0;

 #X msg 152 102 127;

 #X msg 215 99 -1;

 #X msg 249 97 1;

Re: [PD] help cloning max's scale

2015-06-19 Thread Joel Matthys
I just don't see the value of trying to make it compatible with broken 
code in Max.


Joel

On 06/19/2015 08:47 PM, Alexandre Torres Porres wrote:
yeah, I see all that, but the problem is trying to clone it as it is 
in Max for the sake of compatibility.


I wouldn't say that the classic mode is wrong, it may be not good 
for the purpose, but it's an arbitrary mathematical formula, so it is 
what it is.


The problem is that I'm not being able to get the result the object 
spits out with the formula given in the reference.


So my question is just making it sure that the given formula is wrong, 
and that it doesn't give what the object actually does.


moreover, the idea is to keep compatibility, at first, with Max5. In 
Max7 the scale object will still give the same results (as default, by 
the way), so even if it was for the sake of making it compatible with 
Max7, we'd still need to make it work. But the thing is that the new 
not classic mode was introduced only in Max6. So, for the actual 
purpose, we're only caring about the classic mode compatibility.


did you check if the formula in the reference is actually wrong, in 
the sense it won't give the results given by the object? Were you able 
to spot a parenthesis out of place or something that, if changed, 
would give the expected result?


thanks

cheers

2015-06-19 22:25 GMT-03:00 Joel Matthys jwmatt...@gmail.com 
mailto:jwmatt...@gmail.com:


You're using the [scale] formula from @classic_mode in Max7, which
exists for compatibility with IRCAM, but it's clearly wrong.
(There's no way mapping 13.3 from 0-127 to -1 to 1 should result
in something so close to -1. Just try a few different exponents
and you'll see that there's a bug in the Max code. And there are
lots of bug reports out there about it.)

That's why they introduced an alternate mode for [scale] in Max,
which can be switch in the Inspector.

For non-classic (modern) mode, the documentation gives you this
equation:

((x-in_low)/(in_high-in_low) == 0) ? out_low :
(((x-in_low)/(in_high-in_low))  0) ? (out_low +
(out_high-out_low) * ((x-in_low)/(in_high-in_low))^exp) : (
out_low + (out_high-out_low) *
--x+in_low)/(in_high-in_low)))^(exp)))

Translated to expr as:

[expr if ((($f1-in_low)/(in_high-in_low)==0), out_low, if
((($f1-in_low)/(in_high-in_low)0),
out_low+(out_high-out_low)*pow(($f1-in_low)/(in_high-in_low),
power),
out_low+(out_high-out_low)*-1*pow((-1*$f1+in_low)/(in_high-in_low), 
power)))]

Switch off classic mode in the inspector in Max7, and you get the
same result as expr above, the very sensible -0.817072.

Joel


On 06/19/2015 05:39 PM, Alexandre Torres Porres wrote:


Howdy, so I'm cloning the scale object from Max, to make an
object and include in the cyclone library. It converts range
input (low_in / high_in) to a range output (low_out / high_out).
It has a logarithmic curve for rescaling according to a fifth
argument/inlet. I did copy into expr the formula described in the
reference of Max6/7 (max's 5 was just wrong, copied from
[linedrive]) - well, it didn't work! Would anyone know if I'm
doing something wrong or if the reference is not telling the truth?

The formula, as described in the reference is: (out_low +
(out_high-out_low) * ( (out_high - out_low) * exp(-1 *
(in_high-in_low) * log(power)) * exp(x * log(power)) ))


Here's my patch with that formula into expr. The output with the
parameters I have should be -0.997347 - as that's the output I
get in Max. But instead, it's giving -0.994694...


thanks




=


#N canvas 24 23 488 340 10;

#X obj 215 154 v out_low;

#X obj 233 132 v out_high;

#X obj 288 110 v power;

#X obj 152 130 v in_high;

#X obj 115 153 v in_low;

#X floatatom 58 248 0 0 0 0 - - -;

#X obj 58 197 expr (out_low + (out_high-out_low) * ( (out_high -
out_low)

* exp(-1*(in_high-in_low)*log(power)) * exp($f1*log(power)) ));

#X msg 115 102 0;

#X msg 152 102 127;

#X msg 215 99 -1;

#X msg 249 97 1;

#X msg 288 86 1.06;

#X obj 90 31 loadbang;

#X obj 90 60 t b b;

#X msg 58 107 13.3;

#X connect 6 0 5 0;

#X connect 7 0 4 0;

#X connect 8 0 3 0;

#X connect 9 0 0 0;

#X connect 10 0 1 0;

#X connect 11 0 2 0;

#X connect 12 0 13 0;

#X connect 13 0 14 0;

#X connect 13 1 11 0;

#X connect 13 1 10 0;

#X connect 13 1 9 0;

#X connect 13 1 8 0;

#X connect 13 1 7 0;

#X connect 14 0 6 0;




___
Pd-list@lists.iem.at  mailto:Pd-list@lists.iem.at  mailing list
UNSUBSCRIBE and account-management 
-http://lists.puredata.info/listinfo/pd-list





___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 

[PD] Random thoughts after 1 year with PD

2015-06-19 Thread William Huston
This is coming up on my first year
as a PD hacker.

Having so much fun.
I think I'm obsessed.

One thing I am really digging about PD is that after 1 year,
I feel I have a basic grasp of about 20% of the PD objects
(i think I am including extended here)
and maybe 60% of the paradigm.



* Even with this limited subset, I can build pretty much anything I want! *
I have a collection of abstractions for LFOs, Multi-waveform oscillators,
sample-loopers, basic effects, reverb and delay, sequencers, ADSR,
basic LP, BP, and HP filters, etc. Ring Modulation, I have little modules
that deal MIDI, etc.


*Here's my observation*
*which I wanted to share:*


*Each time when I want to make music, I find myself building a custom
instrument.*

So the music I make with it seems fresh and different each time.
I make music that surprises me!

Because--
I am not sitting down with any per-conceived ideas
of how to interact with the instrument.
...because it's something brand new every time!
I don't know what it does exactly,

So every session with it becomes an exploration
of the instrument, and an exploration with sounds.

Sometimes something which initially seems
like a bug with the interface,
turns out to be a creative opportunity.

(like the way a slider with a very large range
will jump around to certain discrete points.)

And you think I wish that would move more fluidly.
I wish this controller had more resolution (etc).

But because of this bug,
I've discovered micro-tonal scales.

I first noticed this with Martin Neimoller's Chaos Monster,
these strange but wonderful microtonal scales.

It's really the secret to recreating the music of
India, Iran, the middle east, and also far east.

So anyway, thanks Miller
for this incredible thing.

I really think PD is the *Perfect Instrument*
from *Orson Scott Card's *short story
*Unaccompanied Sonata*.

I have dreamed about having this capability
to mangle sound like this,
for many years, since I was a young boy,

I never thought I would see anything
like this in my lifetime.

I think Pure Data has, in a way,
set my soul free...

And also thanks
to this amazingly supportive community!

Good on ye!
BH



-- 
--
May you, and all beings
be happy and free from suffering :)
-- ancient Buddhist Prayer (Metta)
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Nettles. Was: cyclone/maxmode functionality usage

2015-06-19 Thread Fred Jan Kraan
Hi Alexandre,

 perfect, working fine in 0.42 now ;)

Anything to keep the testers happy :-).
 
 why do you have to declare the nettles? How come they cannot be loaded
 along cyclone? Is it like they are not part of cyclone anymore? it's
 kinda weird, I don't get it.

It could be my limited knowledge of how to handle real library objects.

The 'normal' cyclone objects all have their own file, and they can be
found by having Pd looking in the correct directory (by using
Preferences  Path... in combination with Preferences  Startup)
Nettles however, is one file containing all the objects. You have to
load the nettles file before Pd knows the object names. [declare] seemed
an elegant way to load them. '-lib nettles' from the command line or
[import] are other ways.
Of course the nettles file could be broken up into the individual
objects, but I am just lazy. The changes I made to make it work outside
the cyclone library object are minimal.
 
 cheers

Greetings,

Fred Jan
 
 2015-06-18 7:42 GMT-03:00 Fred Jan Kraan fjkr...@xs4all.nl
 mailto:fjkr...@xs4all.nl:
 
 Hi Alexandre,
 
 You may try again, I updated svn and all cyclone binaries. I get handy
 with this, which means I am probably almost done ;-)
 
 Fred Jan
 
 ___
 Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list
 UNSUBSCRIBE and account-management -
 http://lists.puredata.info/listinfo/pd-list
 
 

___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] is mass music and audio by sequences of samples?

2015-06-19 Thread Julian Brooks
Could you please describe what you understand by this leap?

Still 1st impression - not read the article properly yet.

It seems to be proposing a complete reversal of most things I've been
taught in the study of electronic music. That as far as the computers
concerned data is data - all noise. It seems to propose a quantum level of
electronic composition beginning to bypass the top/down element of
composing that is supposedly somewhat unavoidable. Less a sculptural
process and more, well, like code. Heady stuff (and I could be copmletely
wrong after a proper read through).

Going to the park with my 1yr old son

On 18 June 2015 at 21:38, Renato Fabbri renato.fab...@gmail.com wrote:

 2015-06-18 11:24 GMT-03:00 Julian Brooks jbee...@gmail.com:

 A curious conceptual leap.


 Could you please describe what you understand by this leap?
 I got into a somewhat serious coding for music believing
 that it was already a legacy of the music community.
 Not finding it in almost 10 years, I wrote it. So I am still
 trying to grasp if this leap is shared and how.



 Pretty sure no one as made a Pd lib out of this yet (seems to be in
 Python?).

 Perhaps someone like Alexandre could translate some of the equations into
 the [exp~] family. I'd be very curious to hear/compare the results.
 not
 Will read the paper more thoroughly later (just had a quick skim).

 Thanks Renato for bringing it up. How do your versions sound?


 Something like this:
 https://soundcloud.com/le-poste-tche
 (only the three trios for oboe are output of other approaches).
 More contex here:
 https://github.com/ttm/dissertacao/raw/master/dissertacaoCorrigida.pdf

 Thanks Julian for the valuable feedback.

 PS. should I post this on music-dsp or any other channel?

 Best regards,
 Renato


 Regards,

 Julian

 On 18 June 2015 at 06:43, Renato Fabbri renato.fab...@gmail.com wrote:

 i've been looking for something like this modeling:
 http://arxiv.org/abs/1412.6853

 so maybe diy, i tried, am trying and reaching something maybe.

 but anyway, has anybody seen something
 like this for pd or any other language/platform?

 cheers and peace
 ) ( _o_o_ oOo _o_o_ ) (






 --
 GNU/Linux User #479299
 labMacambira.sf.net
 http://t.sidekickopen05.com/e1t/c/5/f18dQhb0S7lC8dDMPbW2n0x6l2B9nMJW7t5XZs1qMxg2W4XXYRg7d-5YKVfD6ll56dFtbf96PqYR02?t=http%3A%2F%2Flabmacambira.sf.net%2Fsi=5478613303427072pi=6df80f9f-f3af-447c-fd21-ffc1c205bea0

 ___
 Pd-list@lists.iem.at mailing list
 UNSUBSCRIBE and account-management -
 http://lists.puredata.info/listinfo/pd-list





 --
 GNU/Linux User #479299
 labMacambira.sf.net
 http://t.sidekickopen05.com/e1t/c/5/f18dQhb0S7lC8dDMPbW2n0x6l2B9nMJW7t5XZs1qMxg2W4XXYRg7d-5YKVfD6ll56dFtbf96PqYR02?t=http%3A%2F%2Flabmacambira.sf.net%2Fsi=5478613303427072pi=2f8dfb88-2840-4534-bf6d-950e788b244f

___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list


Re: [PD] Update cyclone maintenance

2015-06-19 Thread Hans-Christoph Steiner

About maintaining cyclone, I think a reorg would be great, and further
maintenance as well.  If you want to do whatever you want with it, then just
make a fork and work on it as a new
name.  If you want to stick to cyclone's central goal of Max/MSP
compatibility, then keep working on it as cyclone.  But please do not work on
cyclone and break the Max/MSP compatibility.

.hc

Alexandre Torres Porres:
 About the [rampsmooth~], I see the new object is corrected, great! One
 thing though, I just realized how it has no audio signal inlets for the
 arguments!!! It was supposed to have them, just like [slide~] does.
 
 cheers
 
 2015-06-07 7:28 GMT-03:00 Fred Jan Kraan fjkr...@xs4all.nl:
 
 Hi Jan,

 Thanks for pointing this out. I had seen the logic juggling with
 RAMPSMOOTH_GEOMETRIC and RAMPSMOOTH_LINEAR, but hadn't came to the
 conclusion the default behaviour was incorrect. I changed the code for
 now, but could make the change possible at run-time, as it was intended.
 But as we already have [slide~] for this, it is not very needed.


 Greetings,

 Fred Jan

 On 2015-06-07 11:33 AM, Jan Baumgart wrote:
 Actually, the linear version is already in cyclone's code.
 You can choose at compile time by not setting
 #define RAMPSMOOTH_GEOMETRIC

 cheers,
 jan

 On 06/06/2015 10:26 PM, Alexandre Torres Porres wrote:
 I have another bug to report, now in [rampsmooth~].

 According to its help file, it should generate a linear ramp, but it
 doesn't. Instead, it generates a logarithmic curve just like [slide~]. I
 have attached a picture that shows how both are operating in the same
 way, where they shouldn't.

 In MAX, [rampsmooth~] does in fact generate a perfectly linear ramp,
 unlike [slide~].

 I was actually able to implement [slide~] only with [fexpr~], making it
 100% compatible to vanilla. If there's a filter formula tht generates
 perfectly linear ramps I can implement it I guess, but it should be
 fairly easy to change it in the object. I'll see what I can do to help.

 cheers

 2015-06-05 18:08 GMT-03:00 Dan Wilcox danomat...@gmail.com
 mailto:danomat...@gmail.com:

 [m_scale] is an abstraction ...

 
 Dan Wilcox
 @danomatika https://twitter.com/danomatika
 danomatika.com http://danomatika.com
 robotcowboy.com http://robotcowboy.com

 On Jun 5, 2015, at 5:05 PM, Alexandre Torres Porres
 por...@gmail.com mailto:por...@gmail.com wrote:

 Yeah, I already built it with expr, so I don't really need to
 download etxernals for that. I was just wondering if extended
 already had such a thing, and it doesn't, so I think it's a nice
 addon to cyclone.

 An addon to cyclone would implicate and addon to extended, but
 then, it's not clear it'll ever be maintained again. Last time
 anyone talked about it in this list was 6 months ago... one way or
 another, seems like a nice addon to cyclone.

 Maybe it could be just an abstraction and it doesn't have to be a
 compiled object, I see the point. But I'd like to try and code it
 as an external into the cyclone library if possible.

 cheers

 2015-06-05 17:50 GMT-03:00 Dan Wilcox danomat...@gmail.com
 mailto:danomat...@gmail.com:

 See [m_scale] in rjlib:
 https://github.com/rjdj/rjlib/tree/master/rj

 
 Dan Wilcox
 @danomatika https://twitter.com/danomatika
 danomatika.com http://danomatika.com/
 robotcowboy.com http://robotcowboy.com/

 On Jun 5, 2015, at 4:35 PM, pd-list-requ...@lists.iem.at
 mailto:pd-list-requ...@lists.iem.at wrote:

 *From:*Alexandre Torres Porres por...@gmail.com
 mailto:por...@gmail.com
 *Subject:**Re: [PD] Update cyclone maintenance*
 *Date:*June 5, 2015 at 4:34:55 PM EDT
 *To:*Fred Jan Kraan fjkr...@xs4all.nl
 mailto:fjkr...@xs4all.nl
 *Cc:*pd-list@lists.iem.at mailto:pd-list@lists.iem.at
 pd-list@lists.iem.at mailto:pd-list@lists.iem.at


 I'm voting for a new [scale] and [scale~] object in cyclone,
 the second is missing completely in extended, the first is
 around, but in different versions, like [maxlib/scale], which
 has a log option, and is actually buggy, and the
 [expr_scale], which is just an expr abstraction. Seems like
 very simple externals to make and I could go ahead and code
 them. I think they'd be really useful. For example, [scale~]
 would be essential to adjust the amplitude range from LFOs to
 control your patches. the [scale] would be good for adjusting
 MIDI input.

 cheers






 ___
 Pd-list@lists.iem.at mailing list
 UNSUBSCRIBE and account-management -
 http://lists.puredata.info/listinfo/pd-list





 N�n�r)em�h�yhiם�w^��

___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 

Re: [PD] Nettles. Was: cyclone/maxmode functionality usage

2015-06-19 Thread Alexandre Torres Porres
 It could be my limited knowledge of how to handle real library objects.

Now that you've mentioned, that seems about right :) I know nothing about
how to handle it too, but I believe it'd be quite trivial to load them
without declaring it like that. And there'd be no need to split them into
many objects.

Other Pd masters could help with that...

2015-06-19 3:36 GMT-03:00 Fred Jan Kraan fjkr...@xs4all.nl:

 Hi Alexandre,

  perfect, working fine in 0.42 now ;)

 Anything to keep the testers happy :-).
 
  why do you have to declare the nettles? How come they cannot be loaded
  along cyclone? Is it like they are not part of cyclone anymore? it's
  kinda weird, I don't get it.

 It could be my limited knowledge of how to handle real library objects.

 The 'normal' cyclone objects all have their own file, and they can be
 found by having Pd looking in the correct directory (by using
 Preferences  Path... in combination with Preferences  Startup)
 Nettles however, is one file containing all the objects. You have to
 load the nettles file before Pd knows the object names. [declare] seemed
 an elegant way to load them. '-lib nettles' from the command line or
 [import] are other ways.
 Of course the nettles file could be broken up into the individual
 objects, but I am just lazy. The changes I made to make it work outside
 the cyclone library object are minimal.
 
  cheers

 Greetings,

 Fred Jan
 
  2015-06-18 7:42 GMT-03:00 Fred Jan Kraan fjkr...@xs4all.nl
  mailto:fjkr...@xs4all.nl:
 
  Hi Alexandre,
 
  You may try again, I updated svn and all cyclone binaries. I get
 handy
  with this, which means I am probably almost done ;-)
 
  Fred Jan
 
  ___
  Pd-list@lists.iem.at mailto:Pd-list@lists.iem.at mailing list
  UNSUBSCRIBE and account-management -
  http://lists.puredata.info/listinfo/pd-list
 
 

___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management - 
http://lists.puredata.info/listinfo/pd-list