Linux build of HISE

  • This is what I get from GDB, not sure how helpful it is though:

    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/".
    JUCE v4.3.0
    [New Thread 0x7ffff4a2a700 (LWP 20338)]
    [New Thread 0x7fffeffff700 (LWP 20339)]
    [New Thread 0x7ffff7f84700 (LWP 20340)]
    [New Thread 0x7ffff7f03700 (LWP 20341)]
    [Thread 0x7ffff7f03700 (LWP 20341) exited]
    [Thread 0x7ffff7f84700 (LWP 20340) exited]
    [New Thread 0x7fffe7fff700 (LWP 20342)]
    [Thread 0x7fffe7fff700 (LWP 20342) exited]
    [New Thread 0x7fffe7fff700 (LWP 20343)]
    [New Thread 0x7fffe77fe700 (LWP 20344)]
    [New Thread 0x7fffe6ffd700 (LWP 20345)]
    [Thread 0x7fffe6ffd700 (LWP 20345) exited]
    JUCE Assertion failure in UtilityClasses.h:489
    Thread 1 "HISE Standalone" received signal SIGTRAP, Trace/breakpoint trap.
    0x00007ffff5dde767 in kill ()
        at /build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/syscall-template.S:84
    84	/build/glibc-bfm8X4/glibc-2.23/signal/../sysdeps/unix/syscall-template.S: No such file or directory.

  • Unfortunately not really. I think I need to crank up my Linux skills for fixing this one 🙂

  • I'm digging away at it too, it's weird that it was working on my previous Linux Mint set up but now it's not. I've put Cadence on my laptop to see if it makes any difference from using qjackctl, so far the only difference is it fixes the memory lock issues (it sets up the audio group config file so I don't have to do it manually). I also think libjack-jackd2-dev should be listed as a dependency for building on Linux...

  • I've completely removed JACK now and set the JACK flag to 0 in projucer. I'm still getting the JUCE Assertion failure in UtilityClasses.h:489 message though when trying to run it but I think this rules out JACK as the cause.

    Is there a simple way to open the HISE project in code blocks? I might be able to do some more useful debugging.

  • I couldn't get it running in codeblocks but I found a front end for gdb which is giving me a little more info. It seems (but I could be way off) that the crash occurs in PresetHandler.cpp at this line 2161 ScopedPointer<Processor> p = t->createProcessor(j, "X");

    I just put return false; at the beginning of that function XmlElement * PresetHandler::buildFactory(FactoryType *t, const String &factoryName) { return false; recompiled and HISE opens up 🙂 Looks like my debugging skills aren't too shabby. I don't know how to fix it properly though so I'll leave that to you 🙂

  • Is it possible to export to a VSTi on Linux yet? I'm only seeing options for VS2013 and VS2015 when I select VSTi. Should I be seeing something like G++/GCC?

  • No I haven't added automatic export for Linux yet. However you might try to export as Standalone app / VST plugin, then open the AutogeneratedProject.jucer file, add a Linux Makefile target, save and run it and with a little bit of luck it may work 🙂

  • Unfortunately only the standalone Mac/iOS options show up in the dialog.

  • Ah this is no problem the logic behind this is

    If windows then show Standalone app
    Else show Standalone OSX

    so I just didn't handle the Linux case when creating the dialogue options

  • I get a compilation error

  • I've just added support for exporting Standalone apps in Linux, but you have to manually launch the autogenerated bash script in the Binaries folder (somehow I can't spawn a process on Linux that opens a terminal automatically).

    1. Load the instrument
    2. File -> Export -> Export as Standalone App (VST plugin will follow soon)
    3. Press OK to open the Binaries folder.
    4. Open a terminal at the location and run ./

  • Thanks Christoph, looking forward to testing this

  • What's the status of Linux export? When I go to export a plugin I get a bash script, but running it I get this

    Re-saving file: /media/dave/work1/Xtant Audio/Products/Virtual Instruments/Woodwind/Sofia Woodwinds/_HISE/Binaries/AutogeneratedProject.jucer
    Finished saving: Visual Studio 2015
    Finished saving: Xcode (MacOSX)
    Finished saving: Xcode (iOS)
    Compiling Instrument plugin Woodwinds ...
    make: *** No targets specified and no makefile found. Stop.
    Compiling finished. Cleaning up...

  • I think I've got no excuse left to stall this any further 🙂

    I'll try to take a look at it the next days...

  • @christoph-hart and I will gladly test it 🙂

  • Does Hise already run as VST? I forgot 🙂

  • @christoph-hart I haven't tested it, but I will try now

  • Yep it compiles to a .so and it opens in Reaper 🙂

    However when I load my HISE project and click to view the interface (either by clicking the home button or going to the interface designer) I get an instant close - this could be due to Reaper though so I'll download another DAW and test further.

    Another interesting thing, the HISE CPU meter reports much higher usage than the Reaper performance meter...

    0_1522857653248_Screenshot from 2018-04-04 16-58-59.png

    Edit: It also crashes Ardour and carla. Must be something in my particular project though because when I start a blank instrument I can create a GUI within the plugin no problem.

  • I think the REAPER CPU meter is calculating the usage according to this formula 🙂

    displayedCpuUsage = realCpuUsage / 10.0

  • That could be it (why would they do that?), but I'm also seeing different CPU in the task monitor. Does HISE show peak values only?

    0_1522862596728_Screenshot from 2018-04-04 18-22-39.png