diff --git a/release-packaging/Classes/MySharedX.sc b/release-packaging/Classes/MySharedX.sc deleted file mode 100644 index 7da2c7fbc7dcda9915f5d4c05d618216be4cd450..0000000000000000000000000000000000000000 --- a/release-packaging/Classes/MySharedX.sc +++ /dev/null @@ -1,12 +0,0 @@ -MySharedX : UGen { - // warp 0 = linear - // warp 1 = exponential - *kr { - arg minval=0, maxval=1, warp=0, lag=0.2; - if (warp === \linear, { warp = 0 }); - if (warp === \exponential, { warp = 1 }); - - ^this.multiNew('control', minval, maxval, warp, lag) - } - signalRange { ^\unipolar } -} diff --git a/release-packaging/Classes/Omega.sc b/release-packaging/Classes/Omega.sc index 8b56b2f45c32e5d3343b152f2d29a8527045ce13..1b0e8bb71b72bd96fc6c7cdbeef627f34759419a 100644 --- a/release-packaging/Classes/Omega.sc +++ b/release-packaging/Classes/Omega.sc @@ -1,24 +1,23 @@ OmegaPosition : UGen { - *kr { |minval=0, maxval=1, axisIndex=0, deviceIndex=0| - ^this.multiNew('control', minval, maxval, axisIndex, deviceIndex) + *kr { |axisIndex=0, deviceIndex=0| + ^this.multiNew('control', axisIndex, deviceIndex) } - signalRange { ^\unipolar } + signalRange { ^\bipolar } } OmegaVelocity : UGen { - *kr { |minval=0, maxval=1, axisIndex=0, deviceIndex=0| - ^this.multiNew('control', minval, maxval, axisIndex, deviceIndex) + *kr { |axisIndex=0, deviceIndex=0| + ^this.multiNew('control', axisIndex, deviceIndex) } - signalRange { ^\unipolar } + signalRange { ^\bipolar } } OmegaForceOut : UGen { - *kr { |minval=0, maxval=1, axisIndex=0, force=0.0, deviceIndex=0| - ^this.multiNew('control', minval, maxval, axisIndex, force, deviceIndex) + *kr { |axisIndex=0, force=0.0, deviceIndex=0| + ^this.multiNew('control', axisIndex, force, deviceIndex) } - signalRange { ^\unipolar } } OmegaButton : UGen { diff --git a/release-packaging/Examples/MySharedX-test.scd b/release-packaging/Examples/MySharedX-test.scd deleted file mode 100644 index 5c4ff31486a4ae40a37635fd497dbb5b8698a864..0000000000000000000000000000000000000000 --- a/release-packaging/Examples/MySharedX-test.scd +++ /dev/null @@ -1,9 +0,0 @@ -s.boot - -Ndef(\a, {MySharedX.kr}); -Ndef(\b, {MySharedX.kr}); - -Ndef(\c, {(Ndef(\a).kr - Ndef(\b).kr).poll}) - - -s.reboot \ No newline at end of file diff --git a/release-packaging/HelpSource/Classes/OmegaPosition.schelp b/release-packaging/HelpSource/Classes/OmegaPosition.schelp index 07a31feb3a8e719f43a1283cca857b4d6f4d2958..cb42672248c377076e09a3a0fd0e2d0850107cca 100644 --- a/release-packaging/HelpSource/Classes/OmegaPosition.schelp +++ b/release-packaging/HelpSource/Classes/OmegaPosition.schelp @@ -1,39 +1,50 @@ class:: OmegaPosition -summary:: Returns the current position for the Omega.3 device -related:: MouseX,MouseY +summary:: Current position for the Omega.3 device +related:: Classes/MouseX, Classes/MouseY categories:: UGens>Haptic, UGens>IO description:: -Returns the current position for the Omega.3 device +Returns the current position in meters for the Omega.3 device. The device workspace is 160 mm x 110mm. The device resolution is less than 0.01 mm. classmethods:: -method::ar, kr - -argument::min -Lower bound for scaling output. - -argument::max -Upper bound for scaling output. +method::kr argument::axisIndex What axis to measure. +table:: +## strong::index:: || strong::axis:: || strong::direction:: +## 0 || x || back-front +## 1 || y || left-right +## 2 || z || down-upward +:: + + +argument::deviceIndex +Which of the available hardware devices to draw from. + +instancemethods:: + +COPYMETHOD:: UGen -signalRange examples:: code:: // poll the x-axis, play silence -{ OmegaPosition.kr(0, 1, axisIndex: 0).poll; 0 }.play +{ OmegaPosition.kr(0).poll; 0 }.play + +// poll all three axes +{ OmegaPosition.kr([0, 1, 2]).poll; 0 }.play // control the frequencies of three sound generators ( { - var pos = OmegaPosition.kr(-1, 1, axisIndex: [0,1,2]); - var freq = pos.linexp(-1, 1, 2, 10000); + var pos = OmegaPosition.kr([0,1,2]); + var freq = pos.linexp(-0.15, 0.15, 2, 10000); Splay.ar(Blip.ar(freq, 100)) * 0.1 }.play ) diff --git a/src/Omega/Omega.cpp b/src/Omega/Omega.cpp index 4acaaf491a5ca808222ab9a29e3e33baf61b3685..3b9c41bd188c585f6a05f6edc98664ba3f30d7e0 100644 --- a/src/Omega/Omega.cpp +++ b/src/Omega/Omega.cpp @@ -118,23 +118,17 @@ namespace Omega OmegaPosition::OmegaPosition() { mCalcFunc = make_calc_function<OmegaPosition, &OmegaPosition::next>(); - m_val = 0.f; next(1); } void OmegaPosition::next(int /* inNumsamples */) { - // minval, maxval, warp, lag - float minval = in0(MinVal); - float maxval = in0(MaxVal); float axisIndex = in0(AxisIndex); int deviceIndex = (int) in0(DeviceIndex); float val = (float) gOmegaUGenGlobalState[deviceIndex].positionState[(int) axisIndex]; - val = (maxval - minval) * val + minval; out0(0) = val; - m_val = zapgremlins(val); } // OmegaVelocity force input ugen ///// @@ -142,23 +136,17 @@ namespace Omega OmegaVelocity::OmegaVelocity() { mCalcFunc = make_calc_function<OmegaVelocity, &OmegaVelocity::next>(); - m_val = 0.f; next(1); } void OmegaVelocity::next(int /* inNumSamples */) { - // minval, maxval, warp, lag - float minval = in0(MinVal); - float maxval = in0(MaxVal); float axisIndex = in0(AxisIndex); int deviceIndex = (int) in0(DeviceIndex); float val = (float) gOmegaUGenGlobalState[deviceIndex].velocityState[(int) axisIndex]; - val = (maxval - minval) * val + minval; out0(0) = val; - m_val = zapgremlins(val); } // OmegaForceOut force output ugen ///// @@ -166,20 +154,16 @@ namespace Omega OmegaForceOut::OmegaForceOut() { mCalcFunc = make_calc_function<OmegaForceOut, &OmegaForceOut::next>(); - m_val = 0.f; next(1); } void OmegaForceOut::next(int /* inNumSamples */) { - // minval, maxval, warp, lag - float minval = in0(MinVal); - float maxval = in0(MaxVal); float axisIndex = in0(AxisIndex); float force = in0(Force); int deviceIndex = (int) in0(DeviceIndex); - double val = (maxval - minval) * force + minval; + double val = force; gOmegaUGenGlobalState[deviceIndex].forceOutState[(int) axisIndex] = val; } diff --git a/src/Omega/Omega.hpp b/src/Omega/Omega.hpp index 62e3ed3b12f7d70f8dbedce30d732a39b9b2cc13..b4e16617bce57abc1de6f1f45399069b3af54ec1 100644 --- a/src/Omega/Omega.hpp +++ b/src/Omega/Omega.hpp @@ -36,8 +36,7 @@ namespace Omega void next(int nSamples); // Member variables - float m_val; - enum Inputs { MinVal, MaxVal, AxisIndex, DeviceIndex }; + enum Inputs { AxisIndex, DeviceIndex }; }; class OmegaVelocity : public SCUnit @@ -53,8 +52,7 @@ namespace Omega void next(int nSamples); // Member variables - float m_val; - enum Inputs { MinVal, MaxVal, AxisIndex, DeviceIndex }; + enum Inputs { AxisIndex, DeviceIndex }; }; class OmegaForceOut : public SCUnit @@ -70,8 +68,7 @@ namespace Omega void next(int nSamples); // Member variables - float m_val; - enum Inputs { MinVal, MaxVal, AxisIndex, Force, DeviceIndex }; + enum Inputs { AxisIndex, Force, DeviceIndex }; }; class OmegaButton : public SCUnit