soul-lang / SOUL

The SOUL programming language and API
Other
1.71k stars 95 forks source link

Soul.exe commandline utility (0.8.947) not working on Windows (10) #25

Closed fosterbuster closed 4 years ago

fosterbuster commented 4 years ago

Running MonoSynth.soul as an example.

image

As seen in the attached picture, it seems that on the GUI-side the utility does not render correctly. It doesn't respond to code which should not be able to compile, nor is it possible to get any audio output (although this could be the result of me not being able to configure my midi-device, or audio output).

Edit: I did manage to get it working in Waveform though. Confirmed that SOUL_PatchLoader.dll works just fine, by replacing the bundled DLL with the one from the 0.8.947 release (and thus having the examples working)

julianstorer commented 4 years ago

Well, that looks the way I'd expect for the monosynth, as it doesn't have any parameters. What about the other examples? (try running the .soulpatch ones rather than the bare .soul files as they should also show a keyboard on-screen)

And yes, it might just be failing to open your midi or audio device - it should show some info in the command line about which devices it's got open

cesaref commented 4 years ago

I had a quick look, and I think also the examples from the workshop you are running have an out of date namespace (we've reorganised our built in libraries since that was recorded). I'll update the workshop files to reflect this

fosterbuster commented 4 years ago

@julianstorer The MonoSynth I linked to has "Drive" as a parameter? In any case, running PadSynth, using the SOUL_PatchLoader.dll from 0.8.947 in both Waveform 11 and soul.exe:

image

This is the result when running soul.exe play [folder containing both .soul and .soulpatch] Same result when using same command for the .soulpatch file. Returns immidiately.

When running on the .soul file, it outputs "Playing file: ....", however no GUI shows, and it does not return. I checked my Event Viewer, and this is the message for the crash (please let me know if you'd like the full log):

Faulting application name: soul.exe, version: 0.8.947.0, time stamp: 0x5e39b1e4
Faulting module name: ucrtbase.dll, version: 10.0.18362.387, time stamp: 0x4361b720
Exception code: 0xc0000409
Fault offset: 0x000000000006db8e
Faulting process id: 0x44c8
Faulting application start time: 0x01d608de3c4c8baf
Faulting application path: [snipped out path]\bin\soul.exe
Faulting module path: C:\WINDOWS\System32\ucrtbase.dll
Report Id: 9175fd0a-ffb0-46f1-a5bd-ef61bcd907d2
Faulting package full name: 
Faulting package-relative application ID: 

I have ensured that Visual C++ redistributable is installed and fully up to date. However this is my work PC (corona lockdown made me replace my private setup), and I am not a C++ dev, so maybe I am missing some dependencies?

And for good measure, showing that it works fine using Waveform 11 Free: image

And thank you both for the quick responses!

cesaref commented 4 years ago

I've just checked, and the patches in the workshop repo were slightly old, and referenced the wrong namespaces for some library functions. If you were to have run against the .soulpatch files you'd have seen an error in the GUI (at least, that's what I see running here). I've updated the patches to use the correct namespace and they work for me here.

There is one outstanding issue for me - If I run against the .soul file (even with a patch) and there is a syntax error in the soul file, the error is not displayed on the command line. This is a bug, i'll investigate what is going on (it works correctly on linux and osx, it's a windows specific problem).

BTW, you will not see a GUI if you play a .soul file - the GUI appears only when playing .soulpatch files.

If you don't see the above behaviour, i'm going to guess the issue is related to the audio hardware on your machine. My test machine is just using the builtin windows audio drivers, not ASIO or anything else, and maybe we have an issue in that area? If you still see problems, let me know what the audio hardware/driver setup is and i'll investigate further