Merge pull request #95 from weefuzzy/fix/scaler-invert

Fix/scaler invert
nix
Owen Green 4 years ago committed by GitHub
commit ddb039e6c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -35,6 +35,22 @@ struct FluidSCMessaging{
}; };
private:
static bool is_vowel(const char p_char)
{
constexpr char vowels[] = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' };
return std::find(std::begin(vowels), std::end(vowels), p_char) != std::end(vowels);
}
static std::string remove_vowel(std::string st)
{
auto to_erase = std::remove_if(st.begin(), st.end(), is_vowel);
st.erase(to_erase, st.end());
return st;
}
public:
template <size_t N, typename T> template <size_t N, typename T>
struct SetupMessageCmd struct SetupMessageCmd
{ {
@ -42,8 +58,13 @@ struct FluidSCMessaging{
void operator()(const T& message) void operator()(const T& message)
{ {
static std::string messageName = std::string{getName()} + '/' + message.name; static std::string messageName = std::string{getName()} + '/' + message.name;
if(messageName.size() >= 32u)
messageName = remove_vowel(messageName);
auto ft = getInterfaceTable(); auto ft = getInterfaceTable();
ft->fDefinePlugInCmd(messageName.c_str(), doMessage<N>,(void*)messageName.c_str()); if(!ft->fDefinePlugInCmd(messageName.c_str(), doMessage<N>,(void*)messageName.c_str()))
std::cout << "ERROR: failed to register command \"" << messageName << "\"\n";
} }
}; };

@ -2,13 +2,13 @@ FluidNormalize : FluidModelObject {
var <>min, <>max, <>invert; var <>min, <>max, <>invert;
*new {|server, min = 0, max = 1, invert = 0| *new {|server, min = 0, max = 1|
^super.new(server,[min,max,invert]) ^super.new(server,[min,max])
.min_(min).max_(max).invert_(invert); .min_(min).max_(max);
} }
prGetParams{ prGetParams{
^[this.id, this.min,this.max,this.invert,-1,-1]; ^[this.id, this.min,this.max,-1,-1];
} }
@ -52,16 +52,37 @@ FluidNormalize : FluidModelObject {
this.prSendMsg(this.transformPointMsg(sourceBuffer, destBuffer)); this.prSendMsg(this.transformPointMsg(sourceBuffer, destBuffer));
} }
inverseTransformMsg{|sourceDataSet, destDataSet|
^this.prMakeMsg(\inverseTransform,id,sourceDataSet.id,destDataSet.id);
}
inverseTransform{|sourceDataSet, destDataSet, action|
actions[\inverseTransform] = [nil,action];
this.prSendMsg(this.inverseTransformMsg(sourceDataSet, destDataSet));
}
inverseTransformPointMsg{|sourceBuffer, destBuffer|
^this.prMakeMsg(\inverseTransformPoint,id,
this.prEncodeBuffer(sourceBuffer),
this.prEncodeBuffer(destBuffer),
["/b_query",destBuffer.asUGenInput]
);
}
inverseTransformPoint{|sourceBuffer, destBuffer, action|
actions[\inverseTransformPoint] = [nil,{action.value(destBuffer)}];
this.prSendMsg(this.inverseTransformPointMsg(sourceBuffer, destBuffer));
}
kr{|trig, inputBuffer,outputBuffer,min = 0 ,max = 1,invert = 0| kr{|trig, inputBuffer,outputBuffer,min = 0 ,max = 1,invert = 0|
min = min ? this.min; min = min ? this.min;
max = max ? this.max; max = max ? this.max;
invert = invert ? this.invert;
this.min_(min).max_(max).invert_(invert); this.min_(min).max_(max);
^FluidNormalizeQuery.kr(trig, ^FluidNormalizeQuery.kr(trig,
this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), this.min, this.max, this.invert); this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), this.min, this.max, invert);
} }

@ -1,14 +1,14 @@
FluidRobustScale : FluidModelObject { FluidRobustScale : FluidModelObject {
var <>low, <>high, <>invert; var <>low, <>high;
*new {|server, low = 25, high = 75, invert = 0| *new {|server, low = 25, high = 75, invert = 0|
^super.new(server,[low,high,invert]) ^super.new(server,[low,high,invert])
.low_(low).high_(high).invert_(invert); .low_(low).high_(high);
} }
prGetParams{ prGetParams{
^[this.id,this.low,this.high,this.invert]; ^[this.id,this.low,this.high];
} }
@ -52,13 +52,31 @@ FluidRobustScale : FluidModelObject {
this.prSendMsg(this.transformPointMsg(sourceBuffer, destBuffer)); this.prSendMsg(this.transformPointMsg(sourceBuffer, destBuffer));
} }
kr{|trig, inputBuffer,outputBuffer,invert| inverseTransformMsg{|sourceDataSet, destDataSet|
^this.prMakeMsg(\inverseTransform,id,sourceDataSet.id,destDataSet.id);
}
inverseTransform{|sourceDataSet, destDataSet, action|
actions[\inverseTransform] = [nil,action];
this.prSendMsg(this.inverseTransformMsg(sourceDataSet, destDataSet));
}
inverseTransformPointMsg{|sourceBuffer, destBuffer|
^this.prMakeMsg(\inverseTransformPoint,id,
this.prEncodeBuffer(sourceBuffer),
this.prEncodeBuffer(destBuffer),
["/b_query",destBuffer.asUGenInput]
);
}
invert = invert ? this.invert; inverseTransformPoint{|sourceBuffer, destBuffer, action|
actions[\inverseRransformPoint] = [nil,{action.value(destBuffer)}];
this.prSendMsg(this.inverseTransformPointMsg(sourceBuffer, destBuffer));
}
// this.invert_(invert); kr{|trig, inputBuffer,outputBuffer,invert = 0|
^FluidRobustScaleQuery.kr(trig,this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), invert,); ^FluidRobustScaleQuery.kr(trig,this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), invert);
} }

@ -56,7 +56,12 @@ FluidServerObject
} }
prMakeMsg{|msg,id...args| prMakeMsg{|msg,id...args|
^['/cmd',"%/%".format(this.class.objectClassName,msg),id].addAll(args);
var commandName = "%/%".format(this.class.objectClassName,msg);
if(commandName.size >= 32) { commandName = commandName.select{|c|c.isVowel.not}};
^['/cmd',commandName,id].addAll(args);
} }
freeMsg { freeMsg {

@ -3,11 +3,11 @@ FluidStandardize : FluidModelObject {
var <>invert; var <>invert;
*new {|server, invert = 0| *new {|server, invert = 0|
^super.new(server,[invert]).invert_(invert); ^super.new(server,[]);
} }
prGetParams{ prGetParams{
^[this.id, this.invert]; ^[this.id];
} }
fitMsg{|dataSet| fitMsg{|dataSet|
@ -47,12 +47,31 @@ FluidStandardize : FluidModelObject {
this.prSendMsg(this.transformPointMsg(sourceBuffer,destBuffer)); this.prSendMsg(this.transformPointMsg(sourceBuffer,destBuffer));
} }
kr{|trig, inputBuffer,outputBuffer,invert| inverseTransformMsg{|sourceDataSet, destDataSet|
^this.prMakeMsg(\inverseTransform,id,sourceDataSet.id,destDataSet.id);
}
inverseTransform{|sourceDataSet, destDataSet, action|
actions[\inverseTransform] = [nil,action];
this.prSendMsg(this.inverseTransformMsg(sourceDataSet, destDataSet));
}
inverseTransformPointMsg{|sourceBuffer, destBuffer|
^this.prMakeMsg(\inverseTransformPoint,id,
this.prEncodeBuffer(sourceBuffer),
this.prEncodeBuffer(destBuffer),
["/b_query",destBuffer.asUGenInput]
);
}
inverseTransformPoint{|sourceBuffer, destBuffer, action|
actions[\inverseRransformPoint] = [nil,{action.value(destBuffer)}];
this.prSendMsg(this.inverseTransformPointMsg(sourceBuffer, destBuffer));
}
invert = invert ? this.invert; kr{|trig, inputBuffer,outputBuffer,invert = 0|
this.invert_(invert);
^FluidStandardizeQuery.kr(trig,this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), this.invert); ^FluidStandardizeQuery.kr(trig,this, this.prEncodeBuffer(inputBuffer), this.prEncodeBuffer(outputBuffer), invert);
} }
} }

Loading…
Cancel
Save