Issue with Blippoo code - Stepper first input is not audio rate

I’m trying to run the Blippoo code that’s on Sccode.org and I get the following error. The code is kinda over my head and chatgpt couldn’t figure it out either lol. Hopefully there is an easy fix?

Stepper first input is not audio rate:  an OutputProxy control
 ARGS:
   trig: an OutputProxy OutputProxy
   reset: 0 Integer
   min: 0 Integer
   max: 7 Integer
   step: 1 Integer
   resetval: 0 Integer
BufWr inputArray input is not audio rate: [ an OutputProxy ] [ control ]
 ARGS:
   inputArray: a LocalBuf LocalBuf
   bufnum: a Stepper Stepper
   phase: 1.0 Float
   loop: an OutputProxy OutputProxy
SynthDef temp__0rungler-874336684_1046 build failed
ERROR: Stepper first input is not audio rate:  an OutputProxy control

PROTECTED CALL STACK:
	SynthDef:checkInputs	0x7fba09e4ad40
		arg this = a ProxySynthDef
		var firstErr = Stepper first input is not audio rate:  an OutputProxy control
	SynthDef:finishBuild	0x7fba09e44b40
		arg this = a ProxySynthDef
	a FunctionDef	0x7fba09e38980
		sourceCode = "<an open Function>"
	Function:prTry	0x7fba08989180
		arg this = a Function
		var result = nil
		var thread = a Thread
		var next = nil
		var wasInProtectedFunc = false
	
CALL STACK:
	Exception:reportError
		arg this = <instance of Error>
	Nil:handleError
		arg this = nil
		arg error = <instance of Error>
	Thread:handleError
		arg this = <instance of Thread>
		arg error = <instance of Error>
	Object:throw
		arg this = <instance of Error>
	Function:protect
		arg this = <instance of Function>
		arg handler = <instance of Function>
		var result = <instance of Error>
	SynthDef:build
		arg this = <instance of ProxySynthDef>
		arg ugenGraphFunc = <instance of Function>
		arg rates = nil
		arg prependArgs = nil
	Meta_ProxySynthDef:new
		arg this = <instance of Meta_ProxySynthDef>
		arg name = "temp__0rungler-874336684_1046"
		arg func = <instance of Function>
		arg rates = nil
		arg prependArgs = nil
		arg makeFadeEnv = true
		arg channelOffset = 0
		arg chanConstraint = nil
		arg rateConstraint = 'scalar'
		var def = nil
		var rate = 'audio'
		var numChannels = 1
		var output = <instance of BinaryOpUGen>
		var isScalar = false
		var envgen = <instance of EnvGen>
		var canFree = false
		var hasOwnGate = false
		var hasGateArg = false
		var hasOutArg = false
		var outerBuildSynthDef = nil
	SynthDefControl:build
		arg this = <instance of SynthDefControl>
		arg proxy = <instance of NodeProxy>
		arg orderIndex = 0
		var ok = nil
		var rate = nil
		var numChannels = nil
		var outerDefControl = <instance of SynthDefControl>
		var outerBuildProxy = <instance of NodeProxy>
		var controlNames = nil
	NodeProxy:put
		arg this = <instance of NodeProxy>
		arg index = nil
		arg obj = <instance of Function>
		arg channelOffset = 0
		arg extraArgs = nil
		arg now = true
		var container = <instance of SynthDefControl>
		var bundle = <instance of MixedBundle>
		var oldBus = nil
	NodeProxy:source_
		arg this = <instance of NodeProxy>
		arg obj = <instance of Function>
	LazyEnvir:put
		arg this = <instance of ProxySpace>
		arg key = 'rungler'
		arg obj = <instance of Function>
	Symbol:envirPut
		arg this = 'rungler'
		arg aValue = <instance of Function>
	< closed FunctionDef >  (no arguments or variables)
	Interpreter:interpretPrintCmdLine
		arg this = <instance of Interpreter>
		var res = nil
		var func = <instance of Function>
		var code = "(

// parameters (a mix of t..."
		var doc = nil
		var ideClass = <instance of Meta_ScIDE>
	Process:interpretPrintCmdLine
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Stepper first input is not audio rate:  an OutputProxy control

You are in a ProxySpace at the time of running the code, and you should not be.

Try running the code immediately after recompiling the class library and booting the server.

hjh

I recompiled the class library with cmd+shift+L and then ran the code and got the same error.

I ran the code here, and, no problem. So the code is fine.

The clue in the error dump is this:

SynthDef temp__0rungler-874336684_1046 build failed

temp__0rungler-874336684_1046 is the format of a SynthDef name made for a NodeProxy, where the NodeProxy’s name is “rungler.”

The code does have a function ~rungler but the code itself is not directly transforming this into a NodeProxy. Instead, this function is being used later in Ndef(\blippoo_box). That’s a valid way to work. You can call a function inside a SynthDef function.

If the code example isn’t using ~rungler for a NodeProxy, then, something else is doing so.

The most likely culprit is ProxySpace.

If you create a ProxySpace and .push it to become the current environment, then anything that you put into an environment variable will be converted into a NodeProxy. Functions become synths – so, any function arguments become synth controls. Here’s the cause of your problem. “clock” is not meant to be a synth control – this function cannot be used directly as the source of a NodeProxy. If a ProxySpace is in force at that moment, then, this will definitely cause errors.

If you recompiled the class library, and ran the code, and got the same error, then it means something in your startup process (probably your startup file) is pushing a ProxySpace to be current.

That’s a bad idea. You really should not do this in your startup file. You don’t want ProxySpace to be active 100% of the time because it prevents you from using environment variables for anything other than node proxies.

So that’s my suggestion. The evidence in the error dump points in this direction: wrong configuration in the startup file. If it’s not the startup file, then, remove quarks until the problem goes away. (Quarks shouldn’t be pushing a proxyspace either.)

hjh

1 Like

ProxySpace was indeed being pushed in the startup process. I forgot there was some live coding stuff in there from some years ago. Once I commented out p=ProxySpace.push(s); the Blippoo code started to work. Thank you.