Open unculcated opened 3 months ago
SuperBufRd build apple silicon.zip
I'm getting the same error. Trying to update the CMakeFIle is way above my head but I've hacked at it and think I've gotten a usable build. Can you try these compiled files and confirm?
Im able to compile everything in Extensions. No errors. (im not using supernova), but I get Class not defined errors when trying out the examples. So, not working
Oh sorry you still need the .SC and .schelp files in this repository. Just add the files in that zip
Ok, I see a few sc files and one that says Overwrite Do I open the supercollider app contents and put these files in there? Where do I over write extSuperPair.sc? Where do I put SuperBufRd.sc SuperPair.sc TestSuperBinaryOpUGen.sc TestSuperPair.sc
? Thanks
Download or clone this whole repository into your extensions folder. Then add the unzipped binaries
some of it works like a charm :). some help files im getting errors. ill post em tomorrow
ok, here are the errors from some examples. The audio plays for some of them
this doesn't play at all
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");
(
{
var phaseInt, phaseDec;
# phaseInt, phaseDec = SuperPhasor.ar(0, BufRateScale.kr(b), 0, 0, Float.from32Bits(b.numFrames), 0);
SuperBufRd.ar(1, b, phaseInt, phaseDec);
}.play;
)
ERROR: Message 'at' not understood.
Perhaps you misspelled 'as', or meant to call 'at' on another receiver?
RECEIVER:
Instance of SuperPair { (0x150245b88, gc=0C, fmt=00, flg=00, set=02)
instance variables [2]
msd : instance of OutputProxy (0x1502b8ce8, size=11, set=4)
lsd : instance of OutputProxy (0x1502b94b8, size=11, set=4)
}
ARGS:
Integer 0
PROTECTED CALL STACK:
Meta_MethodError:new 0x139123640
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = SuperPair(an OutputProxy, an OutputProxy)
Meta_DoesNotUnderstandError:new 0x139125980
arg this = DoesNotUnderstandError
arg receiver = SuperPair(an OutputProxy, an OutputProxy)
arg selector = at
arg args = [0]
Object:doesNotUnderstand 0x120409f00
arg this = SuperPair(an OutputProxy, an OutputProxy)
arg selector = at
arg args = nil
a FunctionDef 0x30013d5b8
sourceCode = "{
var phaseInt, phaseDec;
# phaseInt, phaseDec = SuperPhasor.ar(0, BufRateScale.kr(b), 0, 0, Float.from32Bits(b.numFrames), 0);
SuperBufRd.ar(1, b, phaseInt, phaseDec);
}"
var phaseInt = nil
var phaseDec = nil
SynthDef:buildUgenGraph 0x13bd1cc40
arg this = a SynthDef
arg func = a Function
arg rates = nil
arg prependArgs = []
var result = nil
var saveControlNames = [ControlName P 0 i_out scalar 0]
a FunctionDef 0x13a6bda80
sourceCode = "<an open Function>"
arg i_out = an OutputProxy
var result = nil
var rate = nil
var env = nil
SynthDef:buildUgenGraph 0x13bd1cc40
arg this = a SynthDef
arg func = a Function
arg rates = nil
arg prependArgs = []
var result = nil
var saveControlNames = nil
a FunctionDef 0x13bd1b1c0
sourceCode = "<an open Function>"
Function:prTry 0x1394ce4c0
arg this = a Function
var result = nil
var thread = a Thread
var next = nil
var wasInProtectedFunc = false
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
Nil:handleError
arg this = nil
arg error = <instance of DoesNotUnderstandError>
Thread:handleError
arg this = <instance of Thread>
arg error = <instance of DoesNotUnderstandError>
Object:throw
arg this = <instance of DoesNotUnderstandError>
Function:protect
arg this = <instance of Function>
arg handler = <instance of Function>
var result = <instance of DoesNotUnderstandError>
SynthDef:build
arg this = <instance of SynthDef>
arg ugenGraphFunc = <instance of Function>
arg rates = nil
arg prependArgs = nil
Function:play
arg this = <instance of Function>
arg target = <instance of Group>
arg outbus = 0
arg fadeTime = 0.02
arg addAction = 'addToHead'
arg args = nil
var def = nil
var synth = nil
var server = <instance of Server>
var bytes = nil
var synthMsg = nil
Interpreter:interpretPrintCmdLine
arg this = <instance of Interpreter>
var res = nil
var func = <instance of Function>
var code = "(
{
var phaseInt, phaseDec..."
var doc = nil
var ideClass = <instance of Meta_ScIDE>
Process:interpretPrintCmdLine
arg this = <instance of Main>
^^ ERROR: Message 'at' not understood.
Perhaps you misspelled 'as', or meant to call 'at' on another receiver?
RECEIVER: SuperPair(an OutputProxy, an OutputProxy)
this plays but I get the warning ;
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");
{ SuperPlayBufX.ar(1, b, MouseX.kr(0.1, 10, \exponential), cuePos:b.atSec(b.duration / 2), cueTrig: MouseButton.kr(0, 1, 0))!2 }.play;
-> Buffer(3, nil, nil, nil, /Applications/SuperCollider.app/Contents/Resources/sounds/a11wlk01.wav)
WARNING: keyword arg 'cuePos' not found in call to Meta_SuperPlayBufX:ar
WARNING: keyword arg 'cueTrig' not found in call to Meta_SuperPlayBufX:ar
-> Synth('temp__26' : 1061)
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");
(
{
var phaseInt, phaseDec;
# phaseInt, phaseDec = SuperPhasor.ar(0, BufRateScale.kr(b), 0, 0, Float.from32Bits(b.numFrames), 0);
SuperBufRd.ar(1, b, phaseInt, phaseDec);
}.play;
)
error:
ERROR: Message 'at' not understood.
Perhaps you misspelled 'as', or meant to call 'at' on another receiver?
RECEIVER:
Instance of SuperPair { (0x3000b0828, gc=10, fmt=00, flg=00, set=02)
instance variables [2]
msd : instance of OutputProxy (0x178015608, size=11, set=4)
lsd : instance of OutputProxy (0x178014698, size=11, set=4)
}
ARGS:
Integer 0
PATH: /Users/ss/Library/Application Support/SuperCollider/Extensions/super-bufrd-superpair/HelpSource/Classes/SuperBufRd.schelp
PROTECTED CALL STACK:
Meta_MethodError:new 0x139123640
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = SuperPair(an OutputProxy, an OutputProxy)
Meta_DoesNotUnderstandError:new 0x139125980
arg this = DoesNotUnderstandError
arg receiver = SuperPair(an OutputProxy, an OutputProxy)
arg selector = at
arg args = [0]
Object:doesNotUnderstand 0x120409f00
arg this = SuperPair(an OutputProxy, an OutputProxy)
arg selector = at
arg args = nil
a FunctionDef 0x15015edd8
sourceCode = "{
var phaseInt, phaseDec;
# phaseInt, phaseDec = SuperPhasor.ar(0, BufRateScale.kr(b), 0, 0, Float.from32Bits(b.numFrames), 0);
SuperBufRd.ar(1, b, phaseInt, phaseDec);
}"
var phaseInt = nil
var phaseDec = nil
SynthDef:buildUgenGraph 0x13bd1cc40
arg this = a SynthDef
arg func = a Function
arg rates = nil
arg prependArgs = []
var result = nil
var saveControlNames = [ControlName P 0 i_out scalar 0]
a FunctionDef 0x13a6bda80
sourceCode = "<an open Function>"
arg i_out = an OutputProxy
var result = nil
var rate = nil
var env = nil
SynthDef:buildUgenGraph 0x13bd1cc40
arg this = a SynthDef
arg func = a Function
arg rates = nil
arg prependArgs = []
var result = nil
var saveControlNames = nil
a FunctionDef 0x13bd1b1c0
sourceCode = "<an open Function>"
Function:prTry 0x1394ce4c0
arg this = a Function
var result = nil
var thread = a Thread
var next = nil
var wasInProtectedFunc = false
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
Nil:handleError
arg this = nil
arg error = <instance of DoesNotUnderstandError>
Thread:handleError
arg this = <instance of Thread>
arg error = <instance of DoesNotUnderstandError>
Object:throw
arg this = <instance of DoesNotUnderstandError>
Function:protect
arg this = <instance of Function>
arg handler = <instance of Function>
var result = <instance of DoesNotUnderstandError>
SynthDef:build
arg this = <instance of SynthDef>
arg ugenGraphFunc = <instance of Function>
arg rates = nil
arg prependArgs = nil
Function:play
arg this = <instance of Function>
arg target = <instance of Group>
arg outbus = 0
arg fadeTime = 0.02
arg addAction = 'addToHead'
arg args = nil
var def = nil
var synth = nil
var server = <instance of Server>
var bytes = nil
var synthMsg = nil
Interpreter:interpretPrintCmdLine
arg this = <instance of Interpreter>
var res = nil
var func = <instance of Function>
var code = "(
{
var phaseInt, phaseDec..."
var doc = nil
var ideClass = <instance of Meta_ScIDE>
Process:interpretPrintCmdLine
arg this = <instance of Main>
^^ ERROR: Message 'at' not understood.
Perhaps you misspelled 'as', or meant to call 'at' on another receiver?
RECEIVER: SuperPair(an OutputProxy, an OutputProxy)
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");
(
{
var sig, playhead;
# sig, playhead = SuperPlayBufDetails.ar(1, b, MouseX.kr(0.1, 10, \exponential), cuePos:b.atSec(b.duration / 2), cueTrig: MouseButton.kr(0, 1, 0));
SendTrig.ar(Impulse.ar(10), 0, playhead[0]); // send integer component of playhead
sig!2;
}.play;
// print the elapsed time:
OSCdef(\trig, { |msg|
if (msg[2] == 0) {
("Start: % Playhead: % End: %".format(
0.asTimeString,
b.atPair([msg[3], 0]).asSecs.asTimeString,
b.duration.asTimeString)
).postln;
};
}, '/tr');
)
ERROR: Class not defined.
in interpreted text
line 4 char 39:
# sig, playhead = SuperPlayBufDetails.ar(1, b, MouseX.kr(0.1, 10, \exponential), cuePos:b.atSec(b.duration / 2), cueTrig: MouseButton.kr(0, 1, 0));
SendTrig.ar(Impulse.ar(10), 0, playhead[0]); // send integer component of playhead
-----------------------------------
-> nil
SuperPair works
(
x = {
var bigValue = \bigValue.skr(0);
bigValue.poll;
DC.ar(0);
}.play;
)
x.set(\bigValue, 9000.00002.asPair);
perPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
SuperPair: 0.000000
-> Synth('temp__33' : 1156)
SuperPair: 9000.000020
SuperPair: 9000.000020
SuperPair: 9000.000020
SuperPair: 9000.000020
SuperPair: 9000.000020
SuperPair: 9000.000020
SuperPhasor no sound
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");
(
{
var phaseInt, phaseDec;
var trig = MouseButton.kr(0, 1, 0);
# phaseInt, phaseDec = SuperPhasor.ar(trig, BufRateScale.kr(b) * MouseX.kr(0.1, 10, \exponential), 0, 0, Float.from32Bits(b.numFrames), 0, Float.from32Bits(b.numFrames/2));
SuperBufRd.ar(1, b, phaseInt, phaseDec)!2;
}.play;
)
error:
-> Buffer(7, nil, nil, nil, /Applications/SuperCollider.app/Contents/Resources/sounds/a11wlk01.wav)
ERROR: Message 'at' not understood.
Perhaps you misspelled 'as', or meant to call 'at' on another receiver?
RECEIVER:
Instance of SuperPair { (0x300173e28, gc=18, fmt=00, flg=00, set=02)
instance variables [2]
msd : instance of OutputProxy (0x13d0d9408, size=11, set=4)
lsd : instance of OutputProxy (0x1182df398, size=11, set=4)
}
ARGS:
Integer 0
PATH: /Users/ss/Library/Application Support/SuperCollider/Extensions/super-bufrd-superpair/HelpSource/Classes/SuperPhasor.schelp
PROTECTED CALL STACK:
Meta_MethodError:new 0x139123640
arg this = DoesNotUnderstandError
arg what = nil
arg receiver = SuperPair(an OutputProxy, an OutputProxy)
Meta_DoesNotUnderstandError:new 0x139125980
arg this = DoesNotUnderstandError
arg receiver = SuperPair(an OutputProxy, an OutputProxy)
arg selector = at
arg args = [0]
Object:doesNotUnderstand 0x120409f00
arg this = SuperPair(an OutputProxy, an OutputProxy)
arg selector = at
arg args = nil
a FunctionDef 0x150232718
sourceCode = "{
var phaseInt, phaseDec;
var trig = MouseButton.kr(0, 1, 0);
# phaseInt, phaseDec = SuperPhasor.ar(trig, BufRateScale.kr(b) * MouseX.kr(0.1, 10, \\exponential), 0, 0, Float.from32Bits(b.numFrames), 0, Float.from32Bits(b.numFrames/2));
SuperBufRd.ar(1, b, phaseInt, phaseDec)!2;
}"
var phaseInt = nil
var phaseDec = nil
var trig = a MouseButton
SynthDef:buildUgenGraph 0x13bd1cc40
arg this = a SynthDef
arg func = a Function
arg rates = nil
arg prependArgs = []
var result = nil
var saveControlNames = [ControlName P 0 i_out scalar 0]
a FunctionDef 0x13a6bda80
sourceCode = "<an open Function>"
arg i_out = an OutputProxy
var result = nil
var rate = nil
var env = nil
SynthDef:buildUgenGraph 0x13bd1cc40
arg this = a SynthDef
arg func = a Function
arg rates = nil
arg prependArgs = []
var result = nil
var saveControlNames = nil
a FunctionDef 0x13bd1b1c0
sourceCode = "<an open Function>"
Function:prTry 0x1394ce4c0
arg this = a Function
var result = nil
var thread = a Thread
var next = nil
var wasInProtectedFunc = false
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
Nil:handleError
arg this = nil
arg error = <instance of DoesNotUnderstandError>
Thread:handleError
arg this = <instance of Thread>
arg error = <instance of DoesNotUnderstandError>
Object:throw
arg this = <instance of DoesNotUnderstandError>
Function:protect
arg this = <instance of Function>
arg handler = <instance of Function>
var result = <instance of DoesNotUnderstandError>
SynthDef:build
arg this = <instance of SynthDef>
arg ugenGraphFunc = <instance of Function>
arg rates = nil
arg prependArgs = nil
Function:play
arg this = <instance of Function>
arg target = <instance of Group>
arg outbus = 0
arg fadeTime = 0.02
arg addAction = 'addToHead'
arg args = nil
var def = nil
var synth = nil
var server = <instance of Server>
var bytes = nil
var synthMsg = nil
Interpreter:interpretPrintCmdLine
arg this = <instance of Interpreter>
var res = nil
var func = <instance of Function>
var code = "(
{
var phaseInt, phaseDec..."
var doc = nil
var ideClass = <instance of Meta_ScIDE>
Process:interpretPrintCmdLine
arg this = <instance of Main>
^^ ERROR: Message 'at' not understood.
Perhaps you misspelled 'as', or meant to call 'at' on another receiver?
RECEIVER: SuperPair(an OutputProxy, an OutputProxy)
SuperPlayBufDetails . not defined
b = Buffer.read(s, Platform.resourceDir +/+ "sounds/a11wlk01.wav");
(
{
var sig, playhead;
# sig, playhead = SuperPlayBufDetails.ar(1, b, MouseX.kr(0.1, 10, \exponential), cuePos:b.atSec(b.duration / 2), cueTrig: MouseButton.kr(0, 1, 0));
SendTrig.ar(Impulse.ar(10), 0, playhead[0]); // send integer component of playhead
sig!2;
}.play;
// print the elapsed time:
OSCdef(\trig, { |msg|
if (msg[2] == 0) {
("Start: % Playhead: % End: %".format(
0.asTimeString,
b.atPair([msg[3], 0]).asSecs.asTimeString,
b.duration.asTimeString)
).postln;
};
}, '/tr');
)
-> Buffer(8, nil, nil, nil, /Applications/SuperCollider.app/Contents/Resources/sounds/a11wlk01.wav)
ERROR: Class not defined.
in interpreted text
line 4 char 39:
# sig, playhead = SuperPlayBufDetails.ar(1, b, MouseX.kr(0.1, 10, \exponential), cuePos:b.atSec(b.duration / 2), cueTrig: MouseButton.kr(0, 1, 0));
SendTrig.ar(Impulse.ar(10), 0, playhead[0]); // send integer component of playhead
-----------------------------------
-> nil
sorry about all this. I figured the more info the better
here is may startup file.
im using SuperCollider 3.14.0-dev, built from source.
my startup file:
---
//
// Server.local.options.numOutputBusChannels = 2;
// Server.local.options.numInputBusChannels = 2;
// Server.default.options.inDevice_("Built-in Microph");
// Server.default.options.outDevice_("Built-in Output");
//
// Server.local.options.blockSize = 128;
// p = ServerOptions.new;
// p.memSize = 4096;
// // increase block size (default is 64)
// Server.internal.options.blockSize = 128;
// Server.local.options.sampleRate = 48000;
// Server.internal.options.sampleRate = 48000;
// s.latency = 0.05;
// Server.default.boot;
// make sure you have sc3 plugins installed first
// make sure you have sc3 plugins installed first
(
//var inOut = Server.default.options;inOut.outDevice = "BlackHole 2ch";inOut.inDevice = "BlackHole 2ch";//force devices
s.options.numBuffers = 1024 * 64; // increase if you need to load more samples
s.options.numWireBufs = 128; // increase if you get "exception in GraphDef_Recv: exceeded number of interconnect buffers."
s.options.memSize = 4096 * 256; // increase if you get "alloc failed" messages
s.options.maxNodes = 1024 * 32; // increase if dropouts and the message "too many nodes"
s.options.sampleRate= 44100;
s.options.blockSize = 16;
s.options.numOutputBusChannels = 2; // OUTPUT CHANNELS GO HERE
s.recSampleFormat = "int32";
s.recHeaderFormat="wav";
s.options.numInputBusChannels = 2; // set to hardware input channel size, if necessary
s.latency = 0.3;
// MIDIClient.init; // Untoggle this when you want to do MIDI
// m = MIDIOut.new(0); // Maybe yours is different?
// m.latency = 0.3; // This should match s.latency
// thisProcess.platform.recordingsDir = "/your/path/here/"; // choose where supercollider recordings end up
// scnvim
if (\SCNvim.asClass.notNil) {
Server.default.doWhenBooted {
\SCNvim.asClass.updateStatusLine(1, 9670);
}
};
QtGUI.palette = QPalette.dark; // switch to night mode for floating windows like the meter for example.
// A simple triangle wave synth in stereo with panning and a simple low pass filter
// This synthDef was written by Mads Kjeldgaard and requires the sc3 plugins
s.waitForBoot {
~clean = SuperClean(2, s); // two output channels, increase if you want to pan across more channels
~clean.loadSoundFiles("~/Documents/mmd");
s.sync; // optionally: wait for samples to be read
~clean.start([0,0,0]); // first 8 out looks like [0,2,4,6]
SuperClean.default = ~clean; // make the clean key sequenceable inside of SuperCollider
"[ SuperClean up + running ]".postln;
};
Help.gui;
)
Thank you for the detail! I think some of the help files are still out of date, holdovers from a previous version. I will take a look this week and make sure all the examples work on my end. More soon
Terminal output:
ss@sss-Laptop build % cmake -DSC_PATH=/Users/ss/SuperCollider -DCMAKE_BUILD_TYPE=Release .. CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.
Update the VERSION argument value or use a ... suffix to tell
CMake that the project does not need compatibility with older versions.
-- Project name is SuperBufRd -- The C compiler identification is AppleClang 15.0.0.15000309 -- The CXX compiler identification is AppleClang 15.0.0.15000309 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Performing Test HAS_SSE -- Performing Test HAS_SSE - Success -- Performing Test HAS_CXX_SSE -- Performing Test HAS_CXX_SSE - Success -- Performing Test HAS_SSE2 -- Performing Test HAS_SSE2 - Success -- Performing Test HAS_CXX_SSE2 -- Performing Test HAS_CXX_SSE2 - Success -- Performing Test HAS_FPMATH_SSE -- Performing Test HAS_FPMATH_SSE - Failed -- Performing Test HAS_CXX_FPMATH_SSE -- Performing Test HAS_CXX_FPMATH_SSE - Failed -- Configuring done (0.7s) -- Generating done (0.0s) -- Build files have been written to: /Users/ss/super-bufrd/build ss@sss-Laptop build % cmake --build . --config Release [ 16%] Building CXX object CMakeFiles/SuperBufRd.dir/SuperBufRd.cpp.o clang: warning: argument unused during compilation: '-msse' [-Wunused-command-line-argument] clang: warning: argument unused during compilation: '-msse2' [-Wunused-command-line-argument] In file included from /Users/ss/super-bufrd/SuperBufRd.cpp:1: In file included from /Users/ss/SuperCollider/include/plugin_interface/SC_PlugIn.hpp:25: In file included from /Users/ss/SuperCollider/include/plugin_interface/SC_PlugIn.h:25: /Users/ss/SuperCollider/include/plugin_interface/SC_Unit.h:96:32: error: 'auto' return without trailing return type; deduced return types are a C++14 extension [[nodiscard]] inline constexpr auto copyAndCastToTypeOfFirstArg(const ToType&, const Value& value) noexcept { ^ /Users/ss/SuperCollider/include/plugin_interface/SC_Unit.h:97:26: error: no template named 'remove_cv_t' in namespace 'std' using TargetT = std::remove_cv_t<std::remove_reference_t>;