ddwChucklib-livecode v0.5.1 (preliminary)

Hi,

I’m perhaps slightly premature in doing this, but I’m pushing out a preliminary release of chucklib-livecode v0.5.1. Update your ddw* quarks if you’re interested.

Video demonstrating new features (posted a few days ago):

Manual with installation instructions, tutorial and references:

I’ve been testing it and it seems OK. If you’re trying it out and you run into a problem, feel free to report it on the ddwChucklib-livecode issue tracker: https://github.com/jamshark70/ddwChucklib-livecode/issues

hjh

5 Likes

Hey!

I’m really into the idea of this chucklib, which looks like a perfect way to stay away from using an external environments to sequence SC. Big ups!

However I, for the life of me, can’t manage to get \loadAllCl.eval evaluated or any of the other statements except \loadCl.eval which returns
-> [ preprocessor.scd, preprocessor-generators.scd, helper-funcs.scd ]

\cllGui.eval returns

MIDI Sources:
	MIDIEndPoint("IAC Driver", "Bus 1", 1720779336)
MIDI Destinations:
	MIDIEndPoint("IAC Driver", "Bus 1", -1512954581)
ERROR: Index must not be a collection when creating a new object

\loadAllCl.eval returns

executeFile failed:  ~/downloaded-quarks/ddwChucklib-livecode/mobile-objects.scd
ERROR: Message 'lightness' not understood.

I’ve quadruple-checked my installation, removed quarks, re-installed them, and so on… “crucial-lib” is installed and working. Library re-compiles without problems. I’m running many other quarks without problem.

I’m posting here and not in the issue-tracker, as it’s probably me missing something. Has anyone else had the same issues?

I’m running SC 3.11 on MacOS 10.14.6 (Mojave)

No, it’s my fault. There was a loose dependency on wslib.

I think I fixed it on github. Can you update and try again?

hjh

\loadAllcl.eval now returns

executeFile failed:  ~/downloaded-quarks/ddwLivecodeInstruments/pitch-processes.scd
ERROR: Index must not be a collection when creating a new object

\cllGui.eval and \makeController.eval both return

MIDI Sources:
	MIDIEndPoint("IAC Driver", "Bus 1", 1720779336)
MIDI Destinations:
	MIDIEndPoint("IAC Driver", "Bus 1", -1512954581)
ERROR: Index must not be a collection when creating a new object

\makeCodeWindow.eval returns
ERROR: Message 'tabSpecs' not understood.

I removed all extensions, installed only the live code system and dependencies, and I can’t reproduce this problem.

Can you post the stack trace? You’ve posted the error message only but, because I can’t get the same error here, I can’t trace it back on my machine.

Oh, also update the ddwChucklib-livecode quark again… I found another thing (something I thought I had fixed years ago). That would probably cause the GUI error.

hjh

Hmm i’ve updated but i still have the same errors.

for \loadAllCl.eval:

executeFile failed:  /Users/jef/Library/Application Support/SuperCollider/downloaded-quarks/ddwLivecodeInstruments/pitch-processes.scd
ERROR: Index must not be a collection when creating a new object

PROTECTED CALL STACK:
	Meta_AbstractChuckArray:prNew	0x1191fd5c0
		arg this = MBM
		arg index = 0
		var temp = nil
	a FunctionDef	0x121d82c48
		sourceCode = "{
	PR(\\jiLeader) => BP(\\lead);
	PR(\\jiFollow) => BP(\\follow);
};

 "
	a FunctionDef	0x119c07480
		sourceCode = "<an open Function>"
	Function:prTry	0x11c26aa80
		arg this = a Function
		var result = nil
		var thread = a Thread
		var next = a Function
		var wasInProtectedFunc = true
	Function:protect	0x11c26a000
		arg this = a Function
		arg handler = a Function
		var result = nil
	Interpreter:executeFile	0x119c06e00
		arg this = an Interpreter
		arg pathName = /Users/jef/Library/Application Support/SuperCollider/downloaded-quarks/ddwLivecodeInstruments/pitch-processes.scd
		arg args = nil
		var result = [  ]
		var saveExecutingPath = nil
	a FunctionDef	0x11e505540
		sourceCode = "<an open Function>"
	Function:prTry	0x11c26aa80
		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>
	String:loadPath
		arg this = "/Users/jef/Library/Applicati..."
		arg warnIfNotFound = true
		var obj = nil
		var path = "/Users/jef/Library/Applicati..."
	ArrayedCollection:do
		arg this = [*8]
		arg function = <instance of Function>
		var i = 7
	ArrayedCollection:do
		arg this = [*3]
		arg function = <instance of Function>
		var i = 2
	Interpreter:interpretPrintCmdLine
		arg this = <instance of Interpreter>
		var res = nil
		var func = <instance of Function>
		var code = "\loadAllCl.eval"
		var doc = nil
		var ideClass = <instance of Meta_ScIDE>
	Process:interpretPrintCmdLine
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Index must not be a collection when creating a new object

for \makeController.eval:

MIDI Sources:
	MIDIEndPoint("IAC Driver", "Bus 1", 1720779336)
MIDI Destinations:
	MIDIEndPoint("IAC Driver", "Bus 1", -1512954581)
ERROR: Index must not be a collection when creating a new object
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>
	Meta_AbstractChuckArray:prNew
		arg this = <instance of Meta_MBM>
		arg index = 0
		var temp = nil
	< closed FunctionDef >
		arg controller = 'nanoTouch'
		var sBounds = <instance of Rect>
		var touchExtent = nil
		var w = nil
		var lay = nil
		var touchParent = nil
		var v = nil
		var left = nil
		var midiIndex = nil
		var path = "/Users/jef/Library/Applicati..."
		var file = nil
		var str = nil
	Interpreter:interpretPrintCmdLine
		arg this = <instance of Interpreter>
		var res = nil
		var func = <instance of Function>
		var code = "\makeController.eval"
		var doc = nil
		var ideClass = <instance of Meta_ScIDE>
	Process:interpretPrintCmdLine
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Index must not be a collection when creating a new object

for \makeCodeWindow.eval :

ERROR: Message 'tabSpecs' not understood.
RECEIVER:
   nil
ARGS:
PATH: /Users/jef/Documents/SuperCollider/yetAnotherTestOut.scd

PROTECTED CALL STACK:
	Meta_MethodError:new	0x11bad6680
		arg this = DoesNotUnderstandError
		arg what = nil
		arg receiver = nil
	Meta_DoesNotUnderstandError:new	0x11bad8640
		arg this = DoesNotUnderstandError
		arg receiver = nil
		arg selector = tabSpecs
		arg args = [  ]
	Object:doesNotUnderstand	0x1226d9f40
		arg this = nil
		arg selector = tabSpecs
		arg args = nil
	a FunctionDef	0x121d9eac8
		sourceCode = "{ |overrideModel|
			var maxPt = ~minExtent, specs;
			if(overrideModel.notNil) {
				specs = overrideModel.tabSpecs;
			} {
				specs = ~tabSpecs ?? { ~model.tabSpecs };
			};
			specs.pairsDo { |name, viewSpecs|
				viewSpecs.pairsDo { |oscpath, spec|
					maxPt = max(maxPt, spec.bounds.rightBottom);
				}
			};
			maxPt + 20
		}"
		arg overrideModel = nil
		var maxPt = Point( 150, 0 )
		var specs = nil
	a FunctionDef	0x11d060b80
		sourceCode = "<an open Function>"
	a FunctionDef	0x11d05ebc0
		sourceCode = "<an open Function>"
	Function:prTry	0x11c26aa80
		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>
	Proto:use
		arg this = <instance of Proto>
		arg func = <instance of Function>
		arg failSilentlyAfterFree = false
		var result = nil
		var saveEnvir = <instance of Environment>
	Proto:doesNotUnderstand
		arg this = <instance of Proto>
		arg selector = 'calcExtent'
		arg args = [*1]
		var result = nil
		var item = <instance of Function>
	< closed FunctionDef >
		var sBounds = <instance of Rect>
		var touchExtent = nil
		var left = nil
	Interpreter:interpretPrintCmdLine
		arg this = <instance of Interpreter>
		var res = nil
		var func = <instance of Function>
		var code = "\makeCodeWindow.eval"
		var doc = nil
		var ideClass = <instance of Meta_ScIDE>
	Process:interpretPrintCmdLine
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Message 'tabSpecs' not understood.
RECEIVER: nil

for \cllGui.eval :

MIDI Sources:
	MIDIEndPoint("IAC Driver", "Bus 1", 1720779336)
MIDI Destinations:
	MIDIEndPoint("IAC Driver", "Bus 1", -1512954581)
ERROR: Index must not be a collection when creating a new object
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>
	Meta_AbstractChuckArray:prNew
		arg this = <instance of Meta_MBM>
		arg index = 0
		var temp = nil
	< closed FunctionDef >
		arg controller = 'nanoTouch'
		var sBounds = <instance of Rect>
		var touchExtent = nil
		var w = nil
		var lay = nil
		var touchParent = nil
		var v = nil
		var left = nil
		var midiIndex = nil
		var path = "/Users/jef/Library/Applicati..."
		var file = nil
		var str = nil
	< closed FunctionDef >
		arg controller = 'nanoTouch'
	Interpreter:interpretPrintCmdLine
		arg this = <instance of Interpreter>
		var res = nil
		var func = <instance of Function>
		var code = "\cllGui.eval"
		var doc = nil
		var ideClass = <instance of Meta_ScIDE>
	Process:interpretPrintCmdLine
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Index must not be a collection when creating a new object

Well… That isn’t a collection.

I see that I’m checking for collections by index.respondsTo(\at)… which means you have an extension somewhere that defines (I guess) an Object:at… which doesn’t make any sense (how do you at into 0?) but… there it is.

So, now update the ddwChucklib quark. I changed my if condition.

Sorry about that. I could never have guessed that somebody would mess around with the meaning of at in this way :laughing:

hjh

1 Like

Ohhh ok! :smiley:
That makes sense! (or rather, doesn’t haha)

This works now :slight_smile:
I’m finally going to try it! Thanks so much for developing this and for your patience!

Thank you for reporting the problems – fixed a couple of things because of that.

Feel free to ask other questions later :+1:

hjh

I’m not having this particular problem, but when I had to debug similar issues in the past, there’s a method for sorting out the madness :slight_smile:, e.g.

e = Environment()
m = e.class.findRespondingMethodFor(\keys); // Dictionary:keys

Also, even with all of the following quarks installed (in the “most experimental” setup I have), there’s nothing overriding at for numbers (i.e. 1.at(2) still errors)

Quark: XML-master
Quark: wslib-master
Quark: JITLibExtensions-master
Quark: TabbedView-master
Quark: miSCellaneous_lib-master
Quark: crucial-library-master
Quark: ServerTools-master
Quark: testsuite
Quark: splines-master
Quark: Mx-master
Quark: TabbedView2[1.05]
Quark: TabbedView2_QT[1.04]
Quark: FancySlider[1.0]
Quark: AudacityLabels[0.1]
Quark: BandSplitter[1.0.1]
Quark: Bjorklund[1.0]
Quark: Collapse[1.0.1]
Quark: Singleton[1.0.4]
Quark: FreeAfter[1.0.1]
Quark: Connection[0.0.4-alpha]
Quark: Ease[1.02]
Quark: EnvScaleView[4ff6957e3cdb670e187919982bf25170ae13301b]
Quark: ExtraWindows[0.1.1]
Quark: Fracture[0090345e0be5899e2cbffd5b27faa2de7470dc22]
Quark: PaneView[0.0.1]
Quark: Require[1.0.3]
Quark: Vowel[472222fc51028abf749f56d89d21bd2fce434d17]
Quark: WindowViewRecall[1.0.2]
Quark: ddwCommon[1.0]
Quark: ddwPrototype[1.0]
Quark: ddwPatterns[1.0]
Quark: EventArray[0.1]