LiveSPICE icon indicating copy to clipboard operation
LiveSPICE copied to clipboard

Linux port ?

Open YruamaLairba opened this issue 9 years ago • 9 comments

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.

YruamaLairba avatar Sep 19 '16 01:09 YruamaLairba

Unfortunately, the big missing dependency is WPF, the framework used for the GUI (see http://www.mono-project.com/docs/gui/wpf/).

dsharlet avatar Sep 23 '16 07:09 dsharlet

Too bad. the other solution is to use a multiplatform GUI framework, but this would be a huge work :(

YruamaLairba avatar Sep 23 '16 14:09 YruamaLairba

how about running in headless mode with JACK in Linux?

nybbs2003 avatar Feb 18 '18 14:02 nybbs2003

I'd be interested in nybbs2003's idea as well.

z26 avatar Oct 10 '18 10:10 z26

The key to WPF on linux is Wine: https://ccifra.github.io/PortingWPFAppsToLinux/Overview.html

risicle avatar Oct 29 '20 19:10 risicle

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!

dsharlet avatar Oct 29 '20 20:10 dsharlet

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 avatar Mar 09 '22 14:03 jopdorp

@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.

dsharlet avatar Mar 14 '22 06:03 dsharlet

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.

mikeoliphant avatar Mar 14 '22 15:03 mikeoliphant