More SC Objects and build into place

This commit is contained in:
Alex Harker
2018-10-16 08:54:13 +01:00
parent e1920f0753
commit aae13fc385
5 changed files with 337 additions and 9 deletions
+4
View File
@@ -2,6 +2,10 @@
#ifndef FRAMELIB_OBJECTS_H
#define FRAMELIB_OBJECTS_H
// Buffers
#include "FrameLib_Read.h"
// Host Communication
#include "FrameLib_FromHost.h"
@@ -1,11 +1,19 @@
#include "../../Config_FrameLib.xcconfig"
#include "../Config_FrameLib.xcconfig"
// Paths
SC_PATH = $(SRCROOT)/../../C++ Development/SuperCollider
HEADER_SEARCH_PATHS = "$(SC_PATH)/include/common" "$(SC_PATH)/include/plugin_interface"
// Install Location
SKIP_INSTALL = NO
DEPLOYMENT_LOCATION = YES
DSTROOT = /Library/Application Support/SuperCollider/Extensions/plugins
INSTALL_PATH = /
COPY_PHASE_STRIP = NO
// Static Configuration (don't change these)
EXECUTABLE_SUFFIX = .scx
+267
View File
@@ -0,0 +1,267 @@
FLObject : UGen {
classvar paramCount;
*initClass {
paramCount = 0;
}
*makeNewParams { arg paramString;
var count = -1;
if (paramString.isKindOf(String), { if(paramString.size() > 0, {
count = paramCount;
Server.local.sendMsg("/cmd", "FLParameters", paramCount, paramString);
paramCount = paramCount + 1;
})})
^count;
}
}
FLInterval : FLObject {
*fr { arg paramString = '', params = 0.0;
^this.multiNew('audio', this.makeNewParams(paramString), params)
}
}
FLRead : FLObject {
*fr { arg in1 = 0.0, params = 0.0, initParams = "";
^this.multiNew('control', this.makeNewParams(initParams), in1, params)
}
}
FLMap : FLObject {
*fr { arg in1 = 0.0, params = 0.0, initParams = "";
^this.multiNew('control', this.makeNewParams(initParams), in1, params)
}
}
FLWindow : FLObject {
*fr { arg in = 0.0, params = 0.0, initParams = "";
^this.multiNew('control', this.makeNewParams(initParams), in, params)
}
}
// IO
FLSource : FLObject {
*fr { arg in1 = 0.0, trigger = 0.0, params = 0.0;
^this.multiNew('audio', this.makeNewParams(""), in1, trigger, params)
}
}
FLSink : FLObject {
*fr { arg in = 0.0, params = 0.0, initParams = "";
^this.multiNew('audio', this.makeNewParams(initParams), in, params)
}
}
FLTrace : FLObject {
*fr { arg in = 0.0, params = 0.0, initParams = "";
^this.multiNew('audio', this.makeNewParams(initParams), in, params)
}
}
// Generators
FLRamp : FLObject {
*fr { arg in1 = 0.0, params = 0.0, initParams = "";
^this.multiNew('control', this.makeNewParams(initParams), in1, params)
}
}
FLRand : FLObject {
*fr { arg in1 = 0.0, params = 0.0, initParams = "";
^this.multiNew('control', this.makeNewParams(initParams), in1, params)
}
}
FLUniform : FLObject {
*fr { arg in1 = 0.0, params = 0.0, initParams = "";
^this.multiNew('control', this.makeNewParams(initParams), in1, params)
}
}
// Unary
FLNot : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLAcos : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLAsin : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLAtan : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLAcosh : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLAsinh : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLAtanh : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLCos : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLSin : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLTan : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLCosh : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLSinh : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLTanh : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLLog : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLLog2 : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLLog10 : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLExp : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLExp2 : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLAbs : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLCeil : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLFloor : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLRound : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLTrunc : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLSqrt : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLCbrt : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLErf : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
FLErfc : FLObject {
*fr { arg in = 0.0;
^this.multiNew('control', -1, in)}
}
// Binary
FLMul : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLAdd : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLSub : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLDiv : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLPow : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLAtan2 : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLHypot : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLCopySign : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLMin : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLMax : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
FLModulo : FLObject {
*fr { arg in1 = 0.0, in2 = 0.0, params = "";
^this.multiNew('control', this.makeNewParams(params), in1, in2)}
}
+50 -5
View File
@@ -2,6 +2,8 @@
#include "SC_PlugIn.h"
#include "../../server/scsynth/SC_UnitDef.h"
#include "FrameLib_Objects.h"
/*
#include "FrameLib_Multistream.h"
#include "FrameLib_Binary_Objects.h"
@@ -15,6 +17,7 @@
#include "FrameLib_Read.h"
#include "FrameLib_Random.h"
#include "TableReader.hpp"
*/
static InterfaceTable *ft;
@@ -403,18 +406,60 @@ PluginLoad(FrameLib)
(*ft->fDefinePlugInCmd)("FLParameters", &ParameterSetup, nullptr);
DefineFrameLibExpUnit<FrameLib_Read>("FLRead");
DefineFrameLibExpUnit<FrameLib_Window>("FLWindow");
DefineFrameLibExpUnit<FrameLib_Map>("FLMap");
// Schedulers
DefineFrameLibExpUnit<FrameLib_Interval>("FLInterval");
// IO
DefineFrameLibExpUnit<FrameLib_Source>("FLSource");
DefineFrameLibExpUnit<FrameLib_Sink>("FLSink");
DefineFrameLibExpUnit<FrameLib_Read>("FLRead");
DefineFrameLibExpUnit<FrameLib_Ramp>("FLRamp");
DefineFrameLibExpUnit<FrameLib_Window>("FLWindow");
DefineFrameLibExpUnit<FrameLib_Random>("FLRand");
DefineFrameLibExpUnit<FrameLib_Map>("FLMap");
DefineFrameLibExpUnit<FrameLib_Trace>("FLTrace");
// Generators
DefineFrameLibExpUnit<FrameLib_Random>("FLRand");
DefineFrameLibExpUnit<FrameLib_Ramp>("FLRamp");
DefineFrameLibExpUnit<FrameLib_Uniform>("FLUniform");
// Unary Operators
DefineFrameLibExpUnit<FrameLib_LogicalNot>("FLNot");
DefineFrameLibExpUnit<FrameLib_Acos>("FLAcos");
DefineFrameLibExpUnit<FrameLib_Asin>("FLAsin");
DefineFrameLibExpUnit<FrameLib_Atan>("FLAtan");
DefineFrameLibExpUnit<FrameLib_Cos>("FLCos");
DefineFrameLibExpUnit<FrameLib_Sin>("FLSin");
DefineFrameLibExpUnit<FrameLib_Tan>("FLTan");
DefineFrameLibExpUnit<FrameLib_Acosh>("FLAcosh");
DefineFrameLibExpUnit<FrameLib_Asinh>("FLAsinh");
DefineFrameLibExpUnit<FrameLib_Atanh>("FLAtanh");
DefineFrameLibExpUnit<FrameLib_Cosh>("FLCosh");
DefineFrameLibExpUnit<FrameLib_Sinh>("FLSinh");
DefineFrameLibExpUnit<FrameLib_Tanh>("FLTanh");
DefineFrameLibExpUnit<FrameLib_Log>("FLLog");
DefineFrameLibExpUnit<FrameLib_Log2>("FLLog2");
DefineFrameLibExpUnit<FrameLib_Log10>("FLLog10");
DefineFrameLibExpUnit<FrameLib_Exp>("FLExp");
DefineFrameLibExpUnit<FrameLib_Exp2>("FLExp2");
DefineFrameLibExpUnit<FrameLib_Abs>("FLAbs");
DefineFrameLibExpUnit<FrameLib_Ceil>("FLCeil");
DefineFrameLibExpUnit<FrameLib_Floor>("FLFloor");
DefineFrameLibExpUnit<FrameLib_Round>("FLRound");
DefineFrameLibExpUnit<FrameLib_Trunc>("FLTrunc");
DefineFrameLibExpUnit<FrameLib_Sqrt>("FLSqrt");
DefineFrameLibExpUnit<FrameLib_Cbrt>("FLCbrt");
DefineFrameLibExpUnit<FrameLib_Erf>("FLErf");
DefineFrameLibExpUnit<FrameLib_Erfc>("FLErfc");
// Binary Operators
DefineFrameLibExpUnit<FrameLib_Multiply>("FLMul");
+7 -3
View File
@@ -114,6 +114,7 @@
B84BE8811C1F63E500A55F8C /* MaxAudioAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B87E879819C8F61A00B1D0CD /* MaxAudioAPI.framework */; };
B84BE88A1C1F641500A55F8C /* fl.medianfilter~.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B84BE8891C1F641500A55F8C /* fl.medianfilter~.cpp */; };
B85426AA2173717A007FA185 /* libframelib_objects.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B8BA6FD22078D49200D3DB3D /* libframelib_objects.a */; };
B85426AC2175CA0C007FA185 /* FrameLib.sc in CopyFiles */ = {isa = PBXBuildFile; fileRef = B85426AB2175CA05007FA185 /* FrameLib.sc */; };
B85435791F65BF03001BA1AA /* HISSTools_FFT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B85435731F65BF03001BA1AA /* HISSTools_FFT.cpp */; };
B854357A1F65BF03001BA1AA /* HISSTools_FFT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B85435731F65BF03001BA1AA /* HISSTools_FFT.cpp */; };
B854357B1F65BF03001BA1AA /* HISSTools_FFT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B85435731F65BF03001BA1AA /* HISSTools_FFT.cpp */; };
@@ -1808,12 +1809,13 @@
/* Begin PBXCopyFilesBuildPhase section */
B88C0A2F21733BF9007A65C0 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
buildActionMask = 12;
dstPath = ../classes;
dstSubfolderSpec = 0;
files = (
B85426AC2175CA0C007FA185 /* FrameLib.sc in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 1;
runOnlyForDeploymentPostprocessing = 0;
};
B8A1F5B91D5370DE00FA5FFC /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
@@ -2002,6 +2004,7 @@
B84BE8781C1F592400A55F8C /* FrameLib_MedianFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FrameLib_MedianFilter.h; sourceTree = "<group>"; };
B84BE8871C1F63E500A55F8C /* fl.medianfilter~.mxo */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "fl.medianfilter~.mxo"; sourceTree = BUILT_PRODUCTS_DIR; };
B84BE8891C1F641500A55F8C /* fl.medianfilter~.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "fl.medianfilter~.cpp"; sourceTree = "<group>"; };
B85426AB2175CA05007FA185 /* FrameLib.sc */ = {isa = PBXFileReference; lastKnownFileType = text; path = FrameLib.sc; sourceTree = "<group>"; };
B85435721F65BF03001BA1AA /* HISSTools_FFT_Core.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HISSTools_FFT_Core.h; sourceTree = "<group>"; };
B85435731F65BF03001BA1AA /* HISSTools_FFT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HISSTools_FFT.cpp; sourceTree = "<group>"; };
B85435741F65BF03001BA1AA /* HISSTools_FFT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HISSTools_FFT.h; sourceTree = "<group>"; };
@@ -4416,6 +4419,7 @@
children = (
B88C0A1F21732753007A65C0 /* Config_FrameLib_SC.xcconfig */,
B88C0A1E21732710007A65C0 /* FrameLib_SC.cpp */,
B85426AB2175CA05007FA185 /* FrameLib.sc */,
);
name = "SC UGens";
path = FrameLib_SC_UGens;