HISE Logo Forum
    • Categories
    • Register
    • Login

    Linux build of HISE

    Scheduled Pinned Locked Moved General Questions
    125 Posts 14 Posters 40.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      diedeno
      last edited by

      I tried to use the standalone application on Linux (Ubuntu 16.4 LTS).
      The software compiles without any error.
      But when i try to start it, it (always) get a segmentaion fault.

      startVoiceOpen
      renderVoiceOpen
      onNoteOnOpen
      onNoteOffOpen
      onControllerOpen
      onControlOpen
      externalPopupShown
      Segmentation fault

      strace:
      write(2, "onControllerOpen", 16onControllerOpen) = 16
      write(2, "\n", 1
      ) = 1
      write(2, "onControlOpen", 13onControlOpen) = 13
      write(2, "\n", 1
      ) = 1
      write(2, "externalPopupShown", 18externalPopupShown) = 18
      write(2, "\n", 1
      ) = 1
      --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x18} ---
      +++ killed by SIGSEGV +++
      Segmentation fault

      in syslog:
      Feb 4 19:12:28 SLEIPNIR-L kernel: [27915.222550] HISE Standalone[7153]: segfault at 18 ip 0000000000488162 sp 00007ffd96acd300 error 4 in HISE Standalone[400000+138e000]

      Whaty could be the problem here?
      Thank you very much.

      1 Reply Last reply Reply Quote 0
      • Christoph HartC
        Christoph Hart
        last edited by

        Hmm, I can compile and run it without the segfaults. I uploaded the recent build for Ubuntu here:

        HISE Standalone Linux

        Can you check if this build runs on your system?

        1 Reply Last reply Reply Quote 0
        • D
          diedeno
          last edited by

          Hi Christoph,

          I've tried your build, and i have exactly the same problem as before .
          That's weird because i have a fresh install of 16.04 LTS.
          Distributor ID: Ubuntu
          Description: Ubuntu 16.04.1 LTS
          Release: 16.04
          Codename: xenial

          Analysing the core dump:

          (gdb) set args
          (gdb) run
          Starting program: /home/charles/DEV/HISE Standalone
          [Thread debugging using libthread_db enabled]
          Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
          [New Thread 0x7ffff4a24700 (LWP 15684)]
          [New Thread 0x7ffff0a25700 (LWP 15685)]
          [New Thread 0x7ffff7efe700 (LWP 15686)]
          [New Thread 0x7ffff7e7d700 (LWP 15687)]
          [Thread 0x7ffff7e7d700 (LWP 15687) exited]
          [Thread 0x7ffff7efe700 (LWP 15686) exited]
          [New Thread 0x7fffd7ffe700 (LWP 15688)]
          [Thread 0x7fffd7ffe700 (LWP 15688) exited]
          [New Thread 0x7fffd7ffe700 (LWP 15689)]
          [New Thread 0x7fffcfffe700 (LWP 15690)]
          [New Thread 0x7fffcbfff700 (LWP 15691)]
          [Thread 0x7fffcbfff700 (LWP 15691) exited]

          Thread 1 "HISE Standalone" received signal SIGSEGV, Segmentation fault.
          0x00000000006d7be9 in ScriptingApi::Synth::Synth(ProcessorWithScriptingContent*, ModulatorSynth*) ()
          (gdb) Quit

          Thank you very much.

          1 Reply Last reply Reply Quote 0
          • D
            diedeno
            last edited by

            Oeps, those big fonts were not meant to be. Sorry

            1 Reply Last reply Reply Quote 0
            • Christoph HartC
              Christoph Hart
              last edited by

              This is weird because the constructor is not called until you add a script processor. I'll check again for static initialisers...

              1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart
                last edited by

                I found the issue - it's because you don't have a app data folder with the ModuleEnum.xml file which causes HISE to rescan all modules but this method is crashing due to a recent commit (which I didn't noticed because I have this file). Thanks for letting me know!

                I am busy fixing another issue right now, but I'll commit a fix for this tomorrow.

                1 Reply Last reply Reply Quote 0
                • D
                  diedeno
                  last edited by

                  OK, thank you very much.
                  I"m looking forward to try it.

                  1 Reply Last reply Reply Quote 0
                  • Christoph HartC
                    Christoph Hart
                    last edited by

                    Should be fixed with the latest commit. I probably have to extend the Travis CI test coverage to include running HISE and not just compiling it to avoid this kind of issues in the future :)

                    1 Reply Last reply Reply Quote 0
                    • D
                      diedeno
                      last edited by

                      OK, this works. Thx

                      1 Reply Last reply Reply Quote 0
                      • L
                        lacipor
                        last edited by lacipor

                        Hello Everybody!

                        I've tried to build HISE on Ubuntu Studio 16.04.3 64-bit,
                        but it stops at the point where the last line says "Linking HISE Standalone".
                        This happens right after the "Compiling juce_tracktion_marketplace.cpp" line.
                        All this happens in the terminal, but everything else looks the same as in Dave's Windows HISE build video on YouTube.

                        I also made a build with Debug and Release in the Makefile, but of course it didn't change the thing, so it still doesn't work.

                        I also disabled the IPP in Projucer, but it didn't help either.

                        As I opened and saved the HISE Standalone project in Projucer,
                        Projucer tried to update itself,
                        but I clicked the "Cancel" button,
                        so I did the saving with the Projucer version that comes with the GitHub Clone/Download,
                        which is 4.3.0.

                        I also have a few warnings while building,
                        but I don't know what exactly to do about them.

                        I have the "build" folder,
                        and also a sub-folder in the "build" folder named "Intermediate" with a lot of files in it,
                        and I have a "HISE Standalone" executable in it,
                        but for some reason it doesn't execute,
                        it just won't start.
                        Am I missing something here?

                        What should I do, any idea?

                        Thank you for your help!

                        THIS IS FROM THE TERMINAL (from START to (not) FINISH):
                        Compiling DspUnitTests.cpp
                        Compiling HiseEventBufferUnitTests.cpp
                        Compiling MainComponent.cpp
                        Compiling Main.cpp
                        Compiling BinaryData.cpp
                        Compiling hi_backend.cpp
                        In file included from ../../../../../HISE-master/hi_backend/hi_backend.cpp:62:0,
                        from ../../JuceLibraryCode/hi_backend.cpp:9:
                        ../../../../../HISE-master/hi_backend/backend/CompileExporter.cpp: In member function ‘CompileExporter::ErrorCodes CompileExporter::compileSolution(CompileExporter::BuildOption, CompileExporter::TargetTypes)’:
                        ../../../../../HISE-master/hi_backend/backend/CompileExporter.cpp:934:47: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
                        system(permissionCommand.getCharPointer());
                        ^
                        ../../../../../HISE-master/hi_backend/backend/CompileExporter.cpp: In static member function ‘static void CompileExporter::BatchFileCreator::createBatchFile(CompileExporter*, CompileExporter::BuildOption, CompileExporter::TargetTypes)’:
                        ../../../../../HISE-master/hi_backend/backend/CompileExporter.cpp:1927:43: warning: ignoring return value of ‘int system(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
                        system(lineEndChange.getCharPointer());
                        ^
                        At global scope:
                        cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’
                        Compiling hi_components.cpp
                        Compiling hi_core.cpp
                        Compiling hi_dsp.cpp
                        Compiling hi_dsp_library.cpp
                        Compiling hi_lac.cpp
                        Compiling hi_modules.cpp
                        Compiling hi_sampler.cpp
                        Compiling hi_scripting.cpp
                        Compiling juce_audio_basics.cpp
                        Compiling juce_audio_devices.cpp
                        Compiling juce_audio_formats.cpp
                        Compiling juce_audio_processors.cpp
                        In file included from ../../../../JUCE/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:55:0,
                        from ../../../../JUCE/modules/juce_audio_processors/juce_audio_processors.cpp:153,
                        from ../../JuceLibraryCode/juce_audio_processors.cpp:9:
                        ../../../../JUCE/modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h:37:7: warning: ‘juce::VSTMidiEventList’ has a field ‘juce::VSTMidiEventList::events’ whose type uses the anonymous namespace
                        class VSTMidiEventList
                        ^
                        In file included from ../../../../JUCE/modules/juce_audio_processors/juce_audio_processors.cpp:153:0,
                        from ../../JuceLibraryCode/juce_audio_processors.cpp:9:
                        ../../../../JUCE/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:325:7: warning: ‘juce::ModuleHandle’ has a field ‘juce::ModuleHandle::moduleMain’ whose type uses the anonymous namespace
                        class ModuleHandle : public ReferenceCountedObject
                        ^
                        ../../../../JUCE/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:325:7: warning: ‘juce::ModuleHandle’ has a field ‘juce::ModuleHandle::customMain’ whose type uses the anonymous namespace
                        ../../../../JUCE/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:589:7: warning: ‘juce::VSTPluginInstance’ has a field ‘juce::VSTPluginInstance::vstEffect’ whose type uses the anonymous namespace
                        class VSTPluginInstance : public AudioPluginInstance,
                        ^
                        ../../../../JUCE/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp:589:7: warning: ‘juce::VSTPluginInstance’ has a field ‘juce::VSTPluginInstance::vstHostTime’ whose type uses the anonymous namespace
                        cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’
                        Compiling juce_audio_utils.cpp
                        Compiling juce_core.cpp
                        Compiling juce_cryptography.cpp
                        Compiling juce_data_structures.cpp
                        Compiling juce_events.cpp
                        Compiling juce_graphics.cpp
                        Compiling juce_gui_basics.cpp
                        Compiling juce_gui_extra.cpp
                        Compiling juce_opengl.cpp
                        Compiling juce_tracktion_marketplace.cpp
                        Linking HISE Standalone
                        lacipor@laciporpc:~/laciporpcc/downloads/HISE-master/projects/standalone/Builds/LinuxMakefile$ sudo make
                        [sudo] password for lacipor:
                        Linking HISE Standalone

                        1 Reply Last reply Reply Quote 0
                        • d.healeyD
                          d.healey
                          last edited by d.healey

                          While we're digging up this old thread I too am having an issue with HISE on Linux Mint. The build completes just fine, but when I try and run the binary via the terminal I get this.

                          JUCE v4.3.0
                          JUCE Assertion failure in UtilityClasses.h:489
                          terminate called after throwing an instance of 'juce::String'
                          Aborted
                          

                          I tried enabling JACK in projucer (I'd previously disabled it for some reason I can't recall) now I get this build error:

                          In file included from ../../JuceLibraryCode/juce_audio_devices.cpp:9:0:
                          ../../../../JUCE/modules/juce_audio_devices/juce_audio_devices.cpp:119:25: fatal error: jack/jack.h: No such file or directory
                             #include <jack/jack.h>
                          

                          Libre Wave - Freedom respecting instruments and effects
                          My Patreon - HISE tutorials
                          YouTube Channel - Public HISE tutorials

                          1 Reply Last reply Reply Quote 0
                          • Christoph HartC
                            Christoph Hart
                            last edited by

                            Not sure about the JACK thing, but I'll take a look about the other issue. One thing however is that you are running a Debug build on Linux with vastly decreased performance (otherwise you wouldn't hit an assertion failure). That error looks like there is going something wrong and instead of the error being handled by the script engine it slips through and calls abort.

                            1 Reply Last reply Reply Quote 0
                            • d.healeyD
                              d.healey
                              last edited by

                              I tried it set to release too. I have an older version on my laptop which builds and runs fine so I'm going to play spot the difference tomorrow and see if I can find anything obvious.

                              Libre Wave - Freedom respecting instruments and effects
                              My Patreon - HISE tutorials
                              YouTube Channel - Public HISE tutorials

                              1 Reply Last reply Reply Quote 0
                              • d.healeyD
                                d.healey
                                last edited by d.healey

                                I think there is a dependency issue. The latest github version builds and runs on my laptop perfectly but I'm having trouble on my main system. I changed to Release mode, and installed sudo apt-get install libjack-jackd2-dev and that got rid of the jack error but when I run it I get the juce::String error again.

                                Cannot lock down 82274202 byte memory area (Cannot allocate memory)
                                terminate called after throwing an instance of 'juce::String'
                                Aborted
                                

                                Update: Actually I'm starting to think the issue is with my jack configuration. On my laptop I'm using Cadence but on my PC I'm using qjackctl because I get less latency with it.
                                If I close jack I get this mess when trying to run HISE.

                                Cannot connect to server socket err = No such file or directory
                                Cannot connect to server request channel
                                jack server is not running or cannot be started
                                JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
                                JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 4294967295, skipping unlock
                                terminate called after throwing an instance of 'juce::String'
                                Aborted
                                

                                Libre Wave - Freedom respecting instruments and effects
                                My Patreon - HISE tutorials
                                YouTube Channel - Public HISE tutorials

                                1 Reply Last reply Reply Quote 0
                                • d.healeyD
                                  d.healey
                                  last edited by d.healey

                                  I managed to get rid of the memory lock down thing by increasing the limit in etc/security/limit.config to 1000000. Now there's just the juce::String assertion issue to solve.

                                  Libre Wave - Freedom respecting instruments and effects
                                  My Patreon - HISE tutorials
                                  YouTube Channel - Public HISE tutorials

                                  1 Reply Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey
                                    last edited by d.healey

                                    I'm getting the same error on my laptop now too :(

                                    After looking at this line in the source I'm thinking that this is still some memory issue... any ideas @Christoph-Hart?
                                    JUCE Assertion failure in UtilityClasses.h:489

                                    Libre Wave - Freedom respecting instruments and effects
                                    My Patreon - HISE tutorials
                                    YouTube Channel - Public HISE tutorials

                                    1 Reply Last reply Reply Quote 0
                                    • Christoph HartC
                                      Christoph Hart
                                      last edited by

                                      Hmm, everything is running fine for me, but I am not doing JACK or anything serious because I am just running it inside VirtualBox (the graphics are messed up but I think the culprit is the VM since Visual Code behaves similar).

                                      The problem is that the exception handling on Linux is a bit more crude than on OSX or Windows and calls terminate whenever an error is raised. Can you hook up a Debugger and see where it throws the String?

                                      1 Reply Last reply Reply Quote 0
                                      • d.healeyD
                                        d.healey
                                        last edited by

                                        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/libthread_db.so.1".
                                        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.
                                        

                                        Libre Wave - Freedom respecting instruments and effects
                                        My Patreon - HISE tutorials
                                        YouTube Channel - Public HISE tutorials

                                        1 Reply Last reply Reply Quote 0
                                        • Christoph HartC
                                          Christoph Hart
                                          last edited by

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

                                          1 Reply Last reply Reply Quote 0
                                          • d.healeyD
                                            d.healey
                                            last edited by

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

                                            Libre Wave - Freedom respecting instruments and effects
                                            My Patreon - HISE tutorials
                                            YouTube Channel - Public HISE tutorials

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            49

                                            Online

                                            1.7k

                                            Users

                                            11.9k

                                            Topics

                                            103.5k

                                            Posts