Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

boot_supercollider not working properly #206

Open
diegodorado opened this issue Sep 20, 2019 · 7 comments
Open

boot_supercollider not working properly #206

diegodorado opened this issue Sep 20, 2019 · 7 comments

Comments

@diegodorado
Copy link

diegodorado commented Sep 20, 2019

Hi! I am trying to make an executable script that both loads supercollider as daemon, and opens foxdot window.

I see that this is already partially resolved if I run foxdot with python -m FoxDot --boot , though, there are some issues.

The SC boot time seems to be problematic, since if I open foxdot window to early (before FoxDot.start has fired) then foxdot does not load the synthdefs.

As the title says: boot_supercollider is not working properly.

is_proc_running on linux should return False if no process was found, but is returning None, so it is not being catched later....and the startup.scd path is wrong.

Anyway, even editing this in __init__.py, the boot time is still a problem.

I tried adding a sleep after calling sclang, and with that I got a single executable script that does what I want, but this is of course not a solution.

I was wondering if there is already any effort in this direction to contribute. I'm happy to tell that I am working with some collegues on a debian package for all this, but I'd like to overcome this "click to play" issue before.

Thanks!

@diegodorado
Copy link
Author

I have tried to write a startup.scd that boots foxdot after calling FoxDot.start with no luck.
I dont get why synthdefs start to load after I close foxdot window.

This is the startup.scd

(
s.waitForBoot {
  FoxDot.start;
  "python -m FoxDot &".unixCmdGetStdOut;
};
)

@Qirky
Copy link
Owner

Qirky commented Sep 23, 2019

The boot_supercollider function was written by another user who wanted to boot supercollider and foxdot simultaneously, just as you are hoping to do so. My only involvement with this process was to move the behaviour to an optional startup process using the --boot flag. Everything else was written by @moz-ljp I believe. One of the main issues is the boot time in SuperCollider is not consistent. However, I've been working on a FoxDot.reload() call that loads the synths again, which might be useful in this process?

@ftoledo
Copy link

ftoledo commented Sep 23, 2019

Also, i think that should be detect python version. I'm build FoxDot against python3 and FoxDot --boot try to use "python2" versions of pip,psutils and setuptools instead of pip3 that already installed

alumno@huayra:~/Escritorio$ FoxDot --boot
sh: 1: pip: not found
Installed psutil, please start FoxDot again.
alumno@huayra:~$ dpkg -l|grep python3-pip
ii  python3-pip                                                 9.0.1-2+deb9u1                              all          Python package installer

@moz-ljp
Copy link
Contributor

moz-ljp commented Sep 23, 2019

Hi @diegodorado - isprocrunning was just missing a return false that I must have missed for Linux based distros. I've updated this and will push it. Let me know if this solves your problem?

@diegodorado
Copy link
Author

Glad you corrected it @moz-ljp . I am still trying to load foxdot with a single click though

@diegodorado
Copy link
Author

The boot_supercollider function was written by another user who wanted to boot supercollider and foxdot simultaneously, just as you are hoping to do so. My only involvement with this process was to move the behaviour to an optional startup process using the --boot flag. Everything else was written by @moz-ljp I believe. One of the main issues is the boot time in SuperCollider is not consistent. However, I've been working on a FoxDot.reload() call that loads the synths again, which might be useful in this process?

That might be useful... where is this reload function?

@diegodorado
Copy link
Author

Oh, @Qirky , if you are talking about def _reload_synths(): then it is not something I can call from supercollider once it is loaded.... is foxdot comuunication with supercollider in a bidirectional way or does it just send osc messages to SC?

Because if it also listens, then I could send a message to foxdot after SC boot to force it to reload synths

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants