SuperDirt ERROR: Class not defined

Hello!

Installation of SuperDirt appears to have completed successfully. Not sure where to start with troubleshooting this one. Any thoughts?

sc3> SuperDirt.start
ERROR: Class not defined.
  in file 'selected text'
  line 1 char 9:

  SuperDirt.start

-----------------------------------
-> nil

Output from an attempt at reinstalling:

sc3> Quarks.install("SuperDirt")
Installing SuperDirt
Installing Vowel
Adding path: /home/pi/.local/share/SuperCollider/downloaded-quarks/Vowel
Vowel installed
Installing Dirt-Samples
Adding path: /home/pi/.local/share/SuperCollider/downloaded-quarks/Dirt-Samples
Dirt-Samples installed
Adding path: /home/pi/.local/share/SuperCollider/downloaded-quarks/SuperDirt
SuperDirt installed
-> Quark: SuperDirt[tags/v1.7.2]

Also here is output from s.boot; if that is useful

  sc3> s.boot;
-> localhost
sc3> booting server 'localhost' on address: 127.0.0.1:57110
JackDriver: client name is 'SuperCollider'
SC_AudioDriver: sample rate = 48000.000000, driver's block size = 1024
JackDriver: connected  SuperCollider:out_1 to system:playback_1
JackDriver: connected  SuperCollider:out_2 to system:playback_2
SuperCollider 3 server ready.
JackDriver: max output latency 42.7 ms
Shared memory server interface initialized
Receiving notification messages from server 'localhost'

I see you started SuperDirt

Did you re-compile your class library?

In supercollider, goto language > recompile class library

Thats right, I attempted to start it.

I just tried re-compiling the class library per your suggestion. See below for output. It looks like there are a ton of errors upon booting the IDE before I get a chance to re-compile.

This is my first time booting scide as I'm working from terminal CLI. My setup is a Pi3 where I have installed SC and I am logging into the Pi over a serial terminal session on a vintage machine (Compaq Portable III). But i've managed to enable the GUI and hook up a monitor for the purpose of troubleshooting.

init_OSC
compiling class library...
initPassOne started
	NumPrimitives = 594
initPassOne done
	compiling dir: '/usr/local/share/SuperCollider/SCClassLibrary'
	compiling dir: '/home/pi/.local/share/SuperCollider/Extensions'
Open ended symbol started on line 225 in file '/home/pi/.local/share/SuperCollider/Extensions/SCVim.sc'
	pass 1 done
	numentries = 813402 / 11493420 = 0.071
	5154 method selectors, 2230 classes
	method table size 6205916 bytes, big table size 45973680
	Number of Symbols 11857
	Byte Code Size 362280
	compiled 319 files in 0.80 seconds
 
Info: 4 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll
 
compile done
ERROR: A primitive was not bound. 0 593
Instance of Method {    (0x18df420, gc=01, fmt=00, flg=11, set=04)
  instance variables [15]
    raw1 : Float 0.000000   00000000 0038000C
    raw2 : Float 0.000000   00000200 02010002
    code : instance of Int8Array (0x18df5e0, size=4, set=3)
    selectors : nil
    constants : nil
    prototypeFrame : instance of Array (0x18df560, size=2, set=3)
    context : nil
    argNames : instance of SymbolArray (0x18df4e0, size=2, set=3)
    varNames : nil
    sourceCode : nil
    ownerClass : class Meta_QtGUI (0x18d7660)
    name : Symbol 'prSetStyle'
    primitiveName : Symbol '_Qt_SetStyle'
    filenameSymbol : Symbol '/usr/local/share/SuperCollider/SCClassLibrary/scide_scqt/GUI/Base/QtGUI.sc'
    charPos : Integer 2899
}
ERROR: Primitive '__none' failed.
Failed.
RECEIVER:
   nil
 
PROTECTED CALL STACK:
	Meta_MethodError:new	0x1208020
		arg this = PrimitiveFailedError
		arg what = Failed.
		arg receiver = nil
	Meta_PrimitiveFailedError:new	0x120b920
		arg this = PrimitiveFailedError
		arg receiver = nil
	Object:primitiveFailed	0x10f46a0
		arg this = nil
	Function:prTry	0x136c020
		arg this = a Function
		var result = nil
		var thread = a Thread
		var next = nil
		var wasInProtectedFunc = false
 
CALL STACK:
	MethodError:reportError
		arg this = <instance of PrimitiveFailedError>
	Nil:handleError
		arg this = nil
		arg error = <instance of PrimitiveFailedError>
	Thread:handleError
		arg this = <instance of Thread>
		arg error = <instance of PrimitiveFailedError>
	Object:throw
		arg this = <instance of PrimitiveFailedError>
	Function:protect
		arg this = <instance of Function>
		arg handler = <instance of Function>
		var result = <instance of PrimitiveFailedError>
	Meta_QtGUI:style_
		arg this = <instance of Meta_QtGUI>
		arg styleName = "Fusion"
	Meta_QtGUI:initClass
		arg this = <instance of Meta_QtGUI>
	Meta_Class:initClassTree
		arg this = <instance of Meta_Class>
		arg aClass = <instance of Meta_QtGUI>
		var implementsInitClass = nil
	ArrayedCollection:do
		arg this = [*205]
		arg function = <instance of Function>
		var i = 55
	Meta_Class:initClassTree
		arg this = <instance of Meta_Class>
		arg aClass = <instance of Meta_Object>
		var implementsInitClass = nil
	Process:startup
		arg this = <instance of Main>
		var time = 0.815476471
	Main:startup
		arg this = <instance of Main>
		var didWarnOverwrite = false
^^ The preceding error dump is for ERROR: Primitive '__none' failed.
Failed.
RECEIVER: nil
 
 
ERROR: A primitive was not bound. 0 593
Instance of Method {    (0x112dd20, gc=01, fmt=00, flg=11, set=04)
  instance variables [15]
    raw1 : Float 0.000000   00000000 0038000C
    raw2 : Float 0.000000   00000200 02010002
    code : instance of Int8Array (0x112dee0, size=4, set=3)
    selectors : nil
    constants : nil
    prototypeFrame : instance of Array (0x112de60, size=2, set=3)
    context : nil
    argNames : instance of SymbolArray (0x112dde0, size=2, set=3)
    varNames : nil
    sourceCode : nil
    ownerClass : class Meta_ScIDE (0x111e2e0)
    name : Symbol 'prConnect'
    primitiveName : Symbol '_ScIDE_Connect'
    filenameSymbol : Symbol '/usr/local/share/SuperCollider/SCClassLibrary/scide_scqt/ScIDE.sc'
    charPos : Integer 10331
}
ERROR: Primitive '__none' failed.
Failed.
RECEIVER:
   nil
CALL STACK:
	MethodError:reportError
		arg this = <instance of PrimitiveFailedError>
	Nil:handleError
		arg this = nil
		arg error = <instance of PrimitiveFailedError>
	Thread:handleError
		arg this = <instance of Thread>
		arg error = <instance of PrimitiveFailedError>
	Object:throw
		arg this = <instance of PrimitiveFailedError>
	Object:primitiveFailed
		arg this = nil
	Meta_ScIDE:prConnect
		arg this = nil
		arg ideName = nil
	Meta_ScIDE:connect
		arg this = <instance of Meta_ScIDE>
		arg ideName = "SCIde_1249"
	Process:interpretCmdLine
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Primitive '__none' failed.
Failed.
RECEIVER: nil
 
 
SCDoc: Indexing help-files...
SCDoc: Indexed 1337 documents in 3.62 seconds
ERROR: A primitive was not bound. 0 593
Instance of Method {    (0x112dae0, gc=01, fmt=00, flg=11, set=04)
  instance variables [15]
    raw1 : Float 0.000000   00000000 0040000C
    raw2 : Float 0.000000   00000300 03020003
    code : instance of Int8Array (0x112dca0, size=4, set=3)
    selectors : nil
    constants : nil
    prototypeFrame : instance of Array (0x112dc20, size=3, set=3)
    context : nil
    argNames : instance of SymbolArray (0x112dba0, size=3, set=3)
    varNames : nil
    sourceCode : nil
    ownerClass : class Meta_ScIDE (0x111e2e0)
    name : Symbol 'prSend'
    primitiveName : Symbol '_ScIDE_Send'
    filenameSymbol : Symbol '/usr/local/share/SuperCollider/SCClassLibrary/scide_scqt/ScIDE.sc'
    charPos : Integer 10269
}
ERROR: Primitive '__none' failed.
Failed.
RECEIVER:
   nil
 
PROTECTED CALL STACK:
	Meta_MethodError:new	0x1208020
		arg this = PrimitiveFailedError
		arg what = Failed.
		arg receiver = nil
	Meta_PrimitiveFailedError:new	0x120b920
		arg this = PrimitiveFailedError
		arg receiver = nil
	Object:primitiveFailed	0x10f46a0
		arg this = nil
	Meta_ScIDE:prSend	0x112dae0
		arg this = nil
		arg id = nil
		arg data = nil
	Function:defer	0x1369ea0
		arg this = a Function
		arg delta = nil
	Meta_ScIDE:send	0x112d660
		arg this = ScIDE
		arg id = openHelpUrl
		arg data = file:///home/pi/.local/share/SuperCollider/Help/Help.html
	Function:prTry	0x136c020
		arg this = a Function
		var result = nil
		var thread = a Routine
		var next = nil
		var wasInProtectedFunc = true
 
CALL STACK:
	MethodError:reportError
		arg this = <instance of PrimitiveFailedError>
	< closed FunctionDef >
		arg error = <instance of PrimitiveFailedError>
	Integer:forBy
		arg this = 0
		arg endval = 0
		arg stepval = 2
		arg function = <instance of Function>
		var i = 0
		var j = 0
	SequenceableCollection:pairsDo
		arg this = [*2]
		arg function = <instance of Function>
	Scheduler:seconds_
		arg this = <instance of Scheduler>
		arg newSeconds = 4.451680217
	Meta_AppClock:tick
		arg this = <instance of Meta_AppClock>
		var saveClock = <instance of Meta_SystemClock>
	Process:tick
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Primitive '__none' failed.
Failed.
RECEIVER: nil
 
 
ERROR: Message 'boot' not understood.
RECEIVER:
   nil
ARGS:
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>
	Object:doesNotUnderstand
		arg this = nil
		arg selector = 'boot'
		arg args = [*0]
	Process:interpretCmdLine
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Message 'boot' not understood.
RECEIVER: nil
 
 
ERROR: Could not open file "/archive.sctxar" for writing
RECEIVER:
   nil
CALL STACK:
	MethodError:reportError
		arg this = <instance of MethodError>
	Nil:handleError
		arg this = nil
		arg error = <instance of MethodError>
	Thread:handleError
		arg this = <instance of Thread>
		arg error = <instance of MethodError>
	Object:throw
		arg this = <instance of MethodError>
	Object:writeTextArchive
		arg this = nil
		arg pathname = "/archive.sctxar"
		var text = "nil
"
		var file = <instance of File>
	Meta_Archive:write
		arg this = <instance of Meta_Archive>
		arg filename = nil
		var expandedFileName = "/archive.sctxar"
	Process:shutdown
		arg this = <instance of Main>
	Main:shutdown
		arg this = <instance of Main>
^^ The preceding error dump is for ERROR: Could not open file "/archive.sctxar" for writing
RECEIVER: nil
 
 
compiling class library...
initPassOne started
	NumPrimitives = 594
initPassOne done
	compiling dir: '/usr/local/share/SuperCollider/SCClassLibrary'
	compiling dir: '/home/pi/.local/share/SuperCollider/Extensions'
Open ended symbol started on line 225 in file '/home/pi/.local/share/SuperCollider/Extensions/SCVim.sc'
	pass 1 done
	numentries = 813402 / 11493420 = 0.071
	5154 method selectors, 2230 classes
	method table size 6205916 bytes, big table size 45973680
	Number of Symbols 11857
	Byte Code Size 362280
	compiled 319 files in 0.86 seconds
 
Info: 4 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll
 
compile done
ERROR: A primitive was not bound. 0 593
Instance of Method {    (0x1a1f7e0, gc=01, fmt=00, flg=11, set=04)
  instance variables [15]
    raw1 : Float 0.000000   00000000 0038000C
    raw2 : Float 0.000000   00000200 02010002
    code : instance of Int8Array (0x1a1f9a0, size=4, set=3)
    selectors : nil
    constants : nil
    prototypeFrame : instance of Array (0x1a1f920, size=2, set=3)
    context : nil
    argNames : instance of SymbolArray (0x1a1f8a0, size=2, set=3)
    varNames : nil
    sourceCode : nil
    ownerClass : class Meta_QtGUI (0x1a17a20)
    name : Symbol 'prSetStyle'
    primitiveName : Symbol '_Qt_SetStyle'
    filenameSymbol : Symbol '/usr/local/share/SuperCollider/SCClassLibrary/scide_scqt/GUI/Base/QtGUI.sc'
    charPos : Integer 2899
}
ERROR: Primitive '__none' failed.
Failed.
RECEIVER:
   nil
 
PROTECTED CALL STACK:
	Meta_MethodError:new	0x1308360
		arg this = PrimitiveFailedError
		arg what = Failed.
		arg receiver = nil
	Meta_PrimitiveFailedError:new	0x130bc60
		arg this = PrimitiveFailedError
		arg receiver = nil
	Object:primitiveFailed	0x11f49e0
		arg this = nil
	Function:prTry	0x146c360
		arg this = a Function
		var result = nil
		var thread = a Thread
		var next = nil
		var wasInProtectedFunc = false
 
CALL STACK:
	MethodError:reportError
		arg this = <instance of PrimitiveFailedError>
	Nil:handleError
		arg this = nil
		arg error = <instance of PrimitiveFailedError>
	Thread:handleError
		arg this = <instance of Thread>
		arg error = <instance of PrimitiveFailedError>
	Object:throw
		arg this = <instance of PrimitiveFailedError>
	Function:protect
		arg this = <instance of Function>
		arg handler = <instance of Function>
		var result = <instance of PrimitiveFailedError>
	Meta_QtGUI:style_
		arg this = <instance of Meta_QtGUI>
		arg styleName = "Fusion"
	Meta_QtGUI:initClass
		arg this = <instance of Meta_QtGUI>
	Meta_Class:initClassTree
		arg this = <instance of Meta_Class>
		arg aClass = <instance of Meta_QtGUI>
		var implementsInitClass = nil
	ArrayedCollection:do
		arg this = [*205]
		arg function = <instance of Function>
		var i = 55
	Meta_Class:initClassTree
		arg this = <instance of Meta_Class>
		arg aClass = <instance of Meta_Object>
		var implementsInitClass = nil
	Process:startup
		arg this = <instance of Main>
		var time = 108.697602971
	Main:startup
		arg this = <instance of Main>
		var didWarnOverwrite = false
^^ The preceding error dump is for ERROR: Primitive '__none' failed.
Failed.
RECEIVER: nil

hey welcome back :slight_smile:

to get an idea how much help I can provide, what os are you running on the pi3, and how did you install Supercollider on this os (ie from packages/build from source/other)?

Hi Cleary!

I'm on Raspbian Version 10. I don't recall which method I used to install SuperCollider as I am picking this project back up from over a year ago.

I think it best I start fresh and wipe this drive with a fresh OS install. Any recommendations on which method to use for installing SuperCollider?

Keep it simple, stick with the package manager

sudo apt install supercollider sc3-plugins sc3-plugins-language \
    sc3-plugins-server jackd2 cabal-install haskell-platform

Once you've done that, I've documented my process in ansible tasks here - I haven't tested explicitly on a raspberry pi yet, but they work across all debian based distros I've tried (ubuntu 18.04 - 21.10, debian 8/9, mints etc)

If you don't want to get your hands dirty with the nitty gritty, you could just try running the tidal only playbook from here:

Excellent. Thank you for this!

1 Like