Closed jwaldmann closed 4 years ago
I don't get the above error for sc-3.10.4 without sc3-plugins, and it also seems to work fine for sc-3.11.0 without sc3-plugins.
ERROR: Class extension for nonexistent class 'Plotter'
In file:'deprecated/3.10/Plotter.sc'
This indicates that something is wrong with the include paths. Take a look at the preferences > interpreter and make sure that the SCClassLibrary
and HelpSource
point to the supercollider directory that you used to build it.
The other error might be a consequential error.
could I "take this look" with sclang
(not scide
)?
LanguageConfig.includePaths // take a look
// and then edit
LanguageConfig.addIncludePath(aPath)
LanguageConfig.removeIncludePath(aPath)
LanguageConfig.addExcludePath(aPath)
LanguageConfig.removeExcludePath(aPath)
// finally, store:
LanguageConfig.store(LanguageConfig.currentPath);
hope this helps
Thanks. Paths are identical between 3.10.2 and 3.11.0:
sc3> LanguageConfig.includePaths
-> [ /home/waldmann/.local/share/SuperCollider/downloaded-quarks/Vowel, /home/waldmann/.local/share/SuperCollider/downloaded-quarks/Dirt-Samples, /home/waldmann/.local/share/SuperCollider/downloaded-quarks/SuperDirt ]
and that's consistent with the log I included above.
Will investigate further (try more versions). (I find it difficult to build SC at specific versions since source.tar.gz sometimes can't be used (it's missing git information on submodules), and when I git checkout Version-3.X.Y
I don't see any change in submodules. Oh well.)
Result of my compilations: The error above is absent from SC 3.10.3, and appears in SC 3.10.4
you can simply delete that file for now. it shouldn't have been installed in a GUI build. i'll try to fix it this week for the 3.11.1 release.
git is infinitely configurable. to update submodules after a checkout you can run git submodule update --recursive
. you can also set config options within git and/or pass options to git to update submodules automatically upon checkout. see https://github.com/supercollider/supercollider/wiki/git-cheat-sheet#working-with-submodules or git help <command>
for more info
@brianlheim Thanks! I did git submodule update
but didn't notice them changing. E.g., yaml-cpp
is always on release-0.5.3-35-g728e26e
. But some others are in fact moving.
I removed /opt/supercollider/3.11.0/share/SuperCollider/SCClassLibrary/deprecated/3.10/Plotter.sc and Class extension for nonexistent class
goes away.
@telephon I think I was missing
Quarks.install("https://github.com/musikinformatik/SuperDirt");
from http://doc.sccode.org/Guides/UsingQuarks.html
After automating my builds, starting from totally fresh source checkouts each time (supercollider: git checkout $version, sc3-plugins: git checkout master always) I was able to build and run SuperDirt successfully.
I did git submodule update but didn't notice them changing. E.g., yaml-cpp is always on release-0.5.3-35-g728e26e. But some others are in fact moving.
not all of the submodules change between commits or even version tags, that's typical. if we don't need fixes or features from upstream we keep them pinned.
https://github.com/supercollider/supercollider/pull/4875 fixes this. thanks for the report @jwaldmann :)
@brianlheim As I said, I got it working, but I really didn't know why. Now I have a theory about what's really been confusing me:
sclang
will call scsynth
- and for that it picks the version that it finds on $PATH
?
I have several installs at /opt/supercollider/$VERSION
, and one of their bin
is in $PATH
. I found the behaviour is different between
/opt/supercollider/3.10.0/bin/sclang superdirt_startup.scd # breaks (calls non-matching scsynth)
PATH=/opt/supercollider/3.10.0/bin sclang superdirt_startup.scd # works
I thought that sclang
would call $CMAKE_INSTALL_PREFIX/bin/scsynth
, the same way that gcc
calls $PREFIX/libexec/gcc/x86_64-pc-linux-gnu/9.3.0/cc1
and not cc1
on $PATH
. That way, a user of gcc
does not even need to be aware of it calling other executables.
This is the build script that I used: https://gitlab.imn.htwk-leipzig.de/waldmann/computer-mu/-/blob/master/etc/sc/build.sh
Hi.
I built supercollider-3.11.0 from source, then sc3-plugins (git master) from source. Then:
What to do? Preferrably with
sclang
, as I don't havescide
, since I was buildingsc
with-DSC_QT=OFF
because I found no other way to startsclang
on a remote server, and keep it running after logging out.Well I guess I could build another SC with GUI but that seems quite roundabout. I'd rather I understand the proper way of (re)installing SuperDirt better.