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

Win10: Sonic Pi does not start but only after displays the splash screen #4395

Open
monojk opened this issue Apr 24, 2019 · 7 comments

Comments

Projects
None yet
4 participants
@monojk
Copy link

commented Apr 24, 2019

Environment

  • SuperCollider version: Install of Sonic Pi 3.1.0
  • Operating system: Win10
  • Other details (Qt version, audio driver, etc.):
    Intel Prozessor Family:6 Model:14 Stepping:3 with MMX, SSE Integer, SSE FP, SSE2
    RAM: 7,9 GB

Steps to reproduce

startup of Sonic Pi under Windows 10 Home
When clicking on the splash screen it disappears, but Sonic Pi does not start.

The suspected message is

could not initialize audio.

Expected vs. actual behavior

scsynth.log:

Starting SuperCollider 2019-04-24 14:00:35
Device options:

MME : Microsoft Soundmapper - Input (device #0 with 2 ins 0 outs)
MME : Microphone (Realtek High Defini (device #1 with 2 ins 0 outs)
MME : Microsoft Soundmapper - Output (device #2 with 0 ins 2 outs)
MME : VX248 (Intel® Display-Audio) (device #3 with 0 ins 2 outs)
Windows DirectSound : Primärer Soundaufnahmetreiber (device #4 with 2 ins 0 outs)
Windows DirectSound : Microphone (Realtek High Definition Audio) (device #5 with 2 ins 0 outs)
Windows DirectSound : Primärer Soundtreiber (device #6 with 0 ins 2 outs)
Windows DirectSound : VX248 (Intel® Display-Audio) (device #7 with 0 ins 2 outs)
Windows WASAPI : VX248 (Intel® Display-Audio) (device #8 with 0 ins 2 outs)
Windows WASAPI : Microphone (Realtek High Definition Audio) (device #9 with 2 ins 0 outs)
Windows WDM-KS : Mikrofon (Realtek HD Audio Mic input) (device #10 with 2 ins 0 outs)
Windows WDM-KS : Stereomix (Realtek HD Audio Stereo input) (device #11 with 2 ins 0 outs)
Windows WDM-KS : Headphones (Realtek HD Audio 2nd output) (device #12 with 0 ins 2 outs)
Windows WDM-KS : Speakers (Realtek HD Audio output) (device #13 with 0 ins 2 outs)
Windows WDM-KS : Output (Intel® Display-Audio - Ausgang 1.1) (device #14 with 0 ins 2 outs)
Windows WDM-KS : Lautsprecher () (device #15 with 0 ins 2 outs)
Booting with:
In: MME : Microphone (Realtek High Defini
Out: MME : VX248 (Intel® Display-Audio)
SC_PortAudioDriver: PortAudio failed at Pa_OpenStream with error: ‘Unanticipated host error’
could not initialize audio.

gui.log:

[GUI] - Detecting port numbers…
[GUI] - GUI OSC listen port 4558
[GUI] - port: 4558 [OK]
[GUI] - Server OSC listen port 4557
[GUI] - port: 4557 [OK]
[GUI] - Server incoming OSC cues port 4559
[GUI] - port: 4559 [OK]
[GUI] - Scsynth port 4556
[GUI] - port: 4556 [OK]
[GUI] - Server OSC out port 4558
[GUI] - GUI OSC out port 4557
[GUI] - Scsynth send port 4556
[GUI] - Erlang router port 4560
[GUI] - port: 4560 [OK]
[GUI] - OSC MIDI out port 4561
[GUI] - port: 4561 [OK]
[GUI] - OSC MIDI in port 4562
[GUI] - port: 4562 [OK]
[GUI] - Init script completed
[GUI] - using default editor colours
[GUI] - launching Sonic Pi Server:
[GUI] - starting UDP OSC Server on port 4558…
[GUI] - UDP OSC Server ready and listening
[GUI] - Ruby server pid registered: 17212
[GUI] - waiting for Sonic Pi Server to boot…
…
[GUI] - Critical error! Could not boot Sonic Pi Server.

@monojk monojk added the bug label Apr 24, 2019

@jamshark70

This comment has been minimized.

Copy link
Contributor

commented Apr 25, 2019

Other users have also seen problems, sometimes, when scsynth is trying to boot using two different audio device names (coming from the system defaults).

-->>> Often, it helps to install an ASIO driver (asio4all) and use that instead, because it groups the input and output devices under one device name.

This doesn't help you right now, but the next version of SC should be able to support s.options.inDevice = "..." and s.options.outDevice = "..." -- currently, in Windows, it isn't supported for these to be different, but #4009 should take care of that, after it's merged.

@samaaron

This comment has been minimized.

Copy link

commented Apr 25, 2019

@jamshark70 - one issue with have with Sonic Pi is that we can't expect users (especially schools) to have installed ASIO. Also, setting the inDevice and outDevice isn't something we can expect teachers to be able to do.

Do you foresee a future where these things can be handled directly by SuperCollider server itself?

Perhaps #4009 can already gracefully handle the case where the autodetected audio drivers (the system defaults) are different and still boot?

@samaaron

This comment has been minimized.

Copy link

commented Apr 25, 2019

One approach which could work is to add an addition flag to scsynth which can list the various available audio devices (and their available rates) to the console. That way Sonic Pi could run that first, enumerate them and make informed decisions on what to do when booting scsynth.

@jamshark70

This comment has been minimized.

Copy link
Contributor

commented Apr 25, 2019

I don't think any of our developers understands why the error is thrown (at least, I don't remember the reason ever being identified).

FWIW, despite vast improvement over the last few years, it's still the case that getting SC up and running with large groups of non-technical people, especially in Windows, is a bloody nightmare. I lose sleep at night wondering how I'm going to manage 50-60 students spread out over 2 SC-related classes next year. You have a valid use case but IMO the reality is that SC is not quite ready for that kind of prime time.

@samaaron

This comment has been minimized.

Copy link

commented Apr 25, 2019

@jamshark70 understood - but to be honest, Sonic Pi works well with the majority of users (of which I've seen 1.5 million), so I would argue that SuperCollider is already remarkably ready for prime time ;-)

The only common issues I see are on macOS where the input and output rates are different (although we can now disable the input in these cases which mitigates the issue for the vast majority of users) and this weird Windows error. Oh, and I also see that plugging and unplugging headphones on some Windows systems can cause SuperCollider to panic.

I think that having a way to query and list the available audio devices and rates would allow me to get round most of the remaining issues :-)

Update: I notice that this idea isn't new, but sadly fell by the wayside: #278. I understand that this wouldn't be so useful on Linux due to Jack, but it would be invaluable on macOS and Windows.

@jamshark70

This comment has been minimized.

Copy link
Contributor

commented Apr 25, 2019

Currently, you can boot the server and it will list devices. The only difference between your proposal and the current situation is that in your proposal, it would list devices and then quit, while in SC currently the server may or may not be in a running state after listing (but if it is, one could always reboot the server).

Maybe the problem is with the students here, but I've found it takes half of an 80 minute class session to get 30 people ready to do anything. Apart from the lazy ones who don't pay attention and miss instructions, there are always several stations with some weird errors that only I can resolve. (Just the other night, one computer failed to open a code window programmatically... fine on all the other machines. Never saw that before.)

I'm happy you've worked things out so it's relatively painless. My experience with large groups hasn't been so good. (But this is OT also.)

@samaaron

This comment has been minimized.

Copy link

commented Apr 25, 2019

Currently, you can boot the server and it will list devices. The only difference between your proposal and the current situation is that in your proposal, it would list devices and then quit

Absolutely. It would lovely to have this behaviour as an explicit supported function. I imagine it wouldn't be too much extra work to add and would be very useful.

Agreed that discussing students is OT, and I'm happy to continue it offline. However, I can say that SuperCollider doesn't seem to have "simple workshop installation and on boarding" as a design goal and understandably. It's a massively powerful and flexible tool. In order to make things super simple in this manner, Sonic Pi has had to forego a fair amount of that flexibility and power. Compromises every which way!

@snappizz snappizz added this to the 3.10.3 milestone Jun 13, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.