[Bluemusic-users] Line Update
Brought to you by:
kunstmusik
From: Steven Y. <ste...@gm...> - 2006-12-01 01:56:52
|
Hi All, Still in the process of implementing resolution on Parameter Automation and in so doing I had to take a detour and rework the underlying Line and LinePoint classes. What I have done is that in the past, LinePoints held their Y values always from 0-1.0, and then their absolute values from within min and max for the line when needed would be calculated. I've decided now that for whatever reason I had done this, that I now think it was a design mistake. So, I have gone and redone all the code that uses lines and linePoints to assume Y values are now absolute values instead of relative. (X values are a little more complicated, but they are using relative in the older client classes and absolute in parameter automation). I am pretty sure I have also covered all the migration issues from the old to the new value system (serialization and also preserving preset values for BSB/ObjectBuilder objects). Anyways, the point I am at now is what to do when the user sets min and max for the line. Previously, because y values were always 0-1.0, changing max and min wouldn't change the values that the points held internally, but their calculated values would change. So a point previously say at max value 1.0, if max was changed on the line to 10.0, the point would suddenly have 10.0 for a value (values were rescaled). What I am thinking is that it might be useful to have two options appear when min and max are modified: rescale (works as in the previous behavior) or truncate (if prevoius value is now outside of the new boundary, truncate its value to the boundary). I think have the new second option would be nice if you're working and decided that you needed "just a little more room on a parameter". All of this new code is just local at the moment and I will probably redo the min/max options tomorrow morning and check in. If anyone has made use of the Line and LinePoint classes in either scripts or Plugins, apologies for the change but I think it's for the best. (If there's any issues, please contact me so I can make sure the that classes will do as much work for you in migration as they can). Thanks! steven |