LiveSPICE
LiveSPICE copied to clipboard
Linux port ?
What do think about to have a linux port ? you can probably use mono for the .NET code, and you can implement a Jack Client to replace ASIO for this platform.
Unfortunately, the big missing dependency is WPF, the framework used for the GUI (see http://www.mono-project.com/docs/gui/wpf/).
Too bad. the other solution is to use a multiplatform GUI framework, but this would be a huge work :(
how about running in headless mode with JACK in Linux?
I'd be interested in nybbs2003's idea as well.
The key to WPF on linux is Wine: https://ccifra.github.io/PortingWPFAppsToLinux/Overview.html
The other thing I've been seeing while picking up this project again is Xamarin forms seem similar to WPF. I don't know if they are similar enough to make porting easy...
Another risk is this project really needs this method to have a good implementation: https://docs.microsoft.com/en-us/dotnet/api/system.linq.expressions.expression-1.compile?view=netcore-3.1#System_Linq_Expressions_Expression_1_Compile
I don't have any reason to think it's bad on Mono, but I was surprised by how good it was in .net. Compiled native code is only a little bit faster!
i did get this to run on linux, it's a while ago, but maybe we should merge this into master somehow : https://github.com/jopdorp/LiveSPICE/tree/linux
@jopdorp very nice work, thanks! However, I think it's working by adding an executable main to Circuit, and changing that project to an executable instead of a library, which I think will break the existing users of that library (command line tests, LiveSPICE GUI, VST plugin). If you can get the CircuitTests working (basically a slightly fancier version of your CircuitSimple user of Simulation) without changing Circuit to an executable, that's something we could merge to master.
It seems like if you were to do that, basically the only change remaining would be to change the target framework and a few deps, which would be a reasonable change, although I've had a lot of issues pop up in random places when changing target frameworks (maybe WPF doesn't work with the .net5.0 target or something? I can't remember).
To caveat this for anyone else reading this issue: I think this still doesn't get the LiveSPICE GUI or interactive simulation working on Linux. Perhaps this is close to getting the VST plugin working on linux DAWs? At least that is not such a huge GUI to get working with another framework if WPF doesn't work, but it does depend on @mikeoliphant's VST hosting system, which may also be non-trivial to port to Linux.
For Linux, it would probably make more sense to implement an LV2 plugin. I've thought about doing an LV2 implementation for AudioPlugSharp, but haven't had a personal use case for it yet.