HISE Logo Forum
    • Categories
    • Register
    • Login

    Linux build of HISE

    Scheduled Pinned Locked Moved General Questions
    125 Posts 14 Posters 40.3k 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.
    • M
      Michael Willis
      last edited by

      Is anybody else around here interested in a Linux-native build of HISE? I might be willing to contribute to such an effort, either in writing code, or monetarily.

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

        There was a similar request on GitHub:

        Link Preview Image
        segfault on standalone for Linux · Issue #5 · christophhart/HISE

        Latest git pull, Fedora 21 x86_64, GCC 4.9.2. Program received signal SIGSEGV, Segmentation fault. 0x000000000040d1ef in juce::CharPointer_UTF8::isEmpty ( this=0x18e6b28 juce::juce_xmltextContentAttributeName) at ../../JuceLibraryCode/mo...

        favicon

        GitHub (github.com)

        I don't have any experience regarding Linux but JUCE runs there and HISE runs on the UNIX based OS X so it is possible that porting it is rather easy.

        If you are familiar with compiling apps in Linux, feel free to check out the GitHuB repo and try how far you get. Having some Linux guys on the project would be great...

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

          I've been trying to build HISE on Linux for most of the day. There were a ton of prerequisite packages to install.

          Such as - xext, alsa-lib, freetype, curl, ipp

          and then once I got the compiler happy with those it complained about a few naming issues. Such as looking for LFOEditor.h, it also wanted common.h rather than Common.h.

          fatal error: modulators/editors/LFOEditor.h: No such file or directory

          Anyway I renamed some files as required and that got me a little further. Then it had trouble with some of the code saying things like INT_MIN and INT_MAX were not declared in the scope. So I made some botch adjustments to the code and the compilation carried on a little further.

          Then it started compiling all the JUCE libraries but it stopped at the IPP. I've installed the IPP but I can't figure out how to get JUCE to see find them, I've tried entering the header paths but it hasn't worked.

          I'm giving up on this for now. I'll try again when I have the time, I'm confident that we should be able to get HISE running on Linux. I tried running it under Wine but it crashed instantly, same thing when loaded as a VST.

          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

            Funny, I was doing the same thing but I got a little bit further :)

            I installed a VM on OS X with Ubuntu and gave it a try - I never used Linux before so it was pretty left-handed.

            This post in the JUCE forum gives a starting point of all dependencies:

            https://forum.juce.com/t/juce-4-2-1-setup-on-apt-based-linux-ubuntu-16-04-lts-mint-elementary-os-freya/17164

            I had to fix the same things that you are describing. You'll need to define USE_IPP=0 in the linux makefile to get rid of the IPP stuff (there is IPP for Linux but let's just skip this for starters). It compiled OK, but crashed because of the font I am using (with the same backtrace of this GitHub issue:

            Link Preview Image
            segfault on standalone for Linux · Issue #5 · christophhart/HISE

            Latest git pull, Fedora 21 x86_64, GCC 4.9.2. Program received signal SIGSEGV, Segmentation fault. 0x000000000040d1ef in juce::CharPointer_UTF8::isEmpty ( this=0x18e6b28 juce::juce_xmltextContentAttributeName) at ../../JuceLibraryCode/mo...

            favicon

            GitHub (github.com)

            HISE runs now on Linux, but there are loads of platform specific functions that I need to customize - all the setting files and application paths etc. I also don't have ALSA or JACK enabled so it is not a joy to use.

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

              I'm glad it's not just me finding it tricky :P I'll check it that IPP make file business, I've avoided editing the make file so far because I know nothing about them

              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

                Me too but you can define custom preprocessor definitions in the Projucer.

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

                  Alright, the latest commits should be compilable on Linux - I even hooked it up on a TravisCI build system (which nearly drove me insane...)

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

                    Hi Christoph, I've built and run the standalone and plugin for Linux. System here is Fedora 21 x86_64, with extensions from Planet CCRMA. I'm trying to export the preset example from http://hise.audio/manual/Manual.php but I'm obviously missing something. I receive this error when trying the Export As Instrument Plugin :

                    "You have to add at least one script processor and call Synth.addToFront(true)."

                    What have I missed ?

                    Edit: Ah, never mind, I've found the fuller tutorials on github, I'll go through them first.

                    Best regards,

                    Dave Phillips

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

                      Actually the export won't work on Linux yet - I didn't expect such a fast response and I'll need to add the system compiler script for Linux.

                      But is the audio working correctly on your system? I get a choppy playback and ridiculous latencies but I can't use JACK because I am on a VM so I think this is the culprit and not HISE.

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

                        Ah, thanks, Christoph, I was starting to think I'd lost my wits. Yes, audio is smooth with JACK, and no, you're not likely to get any decent performance from JACK through a VM. :)

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

                          I've just seen the experimental Linux update :) happy Christmas! I'll give it a go tomorrow.

                          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

                            I just tried building on Linux and it gave this error

                            ~/Desktop/HISE-master/projects/standalone/Builds/LinuxMakefile $ make
                            $CXX is [clang++]
                            Compiling DspUnitTests.cpp
                            In file included from ../../../../hi_scripting/scripting/api/DspUnitTests.cpp:33:
                            ../../JuceLibraryCode/JuceHeader.h:18:10: fatal error: 
                                  'hi_backend/hi_backend.h' file not found
                            #include <hi_backend/hi_backend.h>
                                     ^
                            1 error generated.
                            Makefile:111: recipe for target 'build/intermediate/Debug/DspUnitTests_8fd29654.o' failed
                            make: *** [build/intermediate/Debug/DspUnitTests_8fd29654.o] Error 1
                            

                            I then opened the project in the Linux version of Projucer, resaved it, and did the "make" again and it worked fine. I'm on Linux Mint 18. It plays fine with no lag using just ALSA and PulseAudio (no JACK). Well done! I believe you've made the best cross-platform sampler ever.

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

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

                              Yes you'll need to resave the Projucer project files before compiling because it creates different paths in the header files for each platform. I'll probably remove the makefile from the repo so users are not tempted to take that shortcut (it was necessary for the Travis CI support).

                              I also can hardly believe how easy this was, but this is mainly because of JUCE and its cross platform awesomeness :)

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

                                Will it take much tinkering to get the VST version working?

                                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

                                  Is VST available on Linux ? I though it's only LV2 there...

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

                                    From what I understand native Linux VSTs can be created - http://linux-sound.org/linux-vst-plugins.html.

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

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

                                      Yes, you can compile native Linux VST/VSTi plugins. Rory Walsh's Cabbage environment might be worth a look for you, it's a JUCE-based DAW and environment for audio/MIDI development. It's powered by Csound, works with JACK and ALSA, and exports plugins in VST and LV2 formats. http://cabbageaudio.com/

                                      Doesn't JUCE take care of all the details ? IIRC I only need to specify the path to the VST SDK and I'm ready to roll, same as the Win/Mac builds.

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

                                        Alright I'll give it a shot.

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

                                          The latest commit should compile the VST plugin on Linux.

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

                                            Excellent, I'll give it a whirl tomorrow :D

                                            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

                                            45

                                            Online

                                            1.7k

                                            Users

                                            11.7k

                                            Topics

                                            102.0k

                                            Posts