Linux build of HISE


  • administrators

    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


  • administrators

    The activity monitor also takes the CPU usage for the UI rendering into account which is basically nonsense (as long as you don't have issues with low framerates). The audio performance is unaffected by this.

    But HISE is metering the CPU peaks (because they are interesting as they are responsible for dropouts). The average CPU usage is way lower.



  • @christoph-hart Ah now I understand. 🙂


  • administrators

    So...

    I've finally added VST export 🙂

    You should be able to compile native VST plugins on Linux now - by default it copies the .so file (which is the dynamic library for the plugin to ~/.vst/.

    I've tested them with the JUCE plugin host and HISE as well as the exported demo project loads fine - although I am running on a Virtual Machine so I can't get any sound of the host nor get it running, so please confirm that it works on your system.



  • Oh ho! I shall try this out later tonight! Thanks



  • Linux export seems perfect so far, the VSTi opens in Reaper and plays perfectly. I haven't tried the whole install samples thing yet though...



  • The only issue I've found so far is when it pops up and asks if I want to open the folder containing the batch file, I click ok and it opens the path in my web browser.


  • administrators

    Should be fixed now. Weirdly, it was working for me on my Ubuntu VM, but all the other functions that show a file location (like File->Show project in Finder) use its parent directory as target so this should work more consistently.



  • Works great with Ardour4 on Ubuntu 17.10. Nice work!



  • @christoph-hart This still isn't working for me... and I noticed it opens in the web browser when I go to show project in finder too



  • Errors with standalone build

    In file included from ../../JuceLibraryCode/JuceHeader.h:21:0,
                     from ../../Source/Plugin.cpp:2:
    ../../Source/Plugin.cpp: In member function ‘juce::AudioProcessor* hise::StandaloneProcessor::createProcessor()’:
    /media/dave/work1/HISE Development Builds/HISE/hi_frontend/hi_frontend.h:116:67: error: ‘images’ is not a member of ‘PresetData’
      ValueTree imageData = hise::PresetHandler::loadValueTreeFromData(PresetData::i
                                                                       ^
    ../../Source/Plugin.cpp:12:64: note: in expansion of macro ‘CREATE_PLUGIN_WITH_AUDIO_FILES’
     AudioProcessor* hise::StandaloneProcessor::createProcessor() { CREATE_PLUGIN_WI
                                                                    ^
    /media/dave/work1/HISE Development Builds/HISE/hi_frontend/hi_frontend.h:116:87: error: ‘imagesSize’ is not a member of ‘PresetData’
     ta = hise::PresetHandler::loadValueTreeFromData(PresetData::images, PresetData:
                                                                         ^
    ../../Source/Plugin.cpp:12:64: note: in expansion of macro ‘CREATE_PLUGIN_WITH_AUDIO_FILES’
     AudioProcessor* hise::StandaloneProcessor::createProcessor() { CREATE_PLUGIN_WI
                                                                    ^
    /media/dave/work1/HISE Development Builds/HISE/hi_frontend/hi_frontend.h:118:69: error: ‘impulses’ is not a member of ‘PresetData’
      ValueTree impulseData = hise::PresetHandler::loadValueTreeFromData(PresetData:
                                                                         ^
    ../../Source/Plugin.cpp:12:64: note: in expansion of macro ‘CREATE_PLUGIN_WITH_AUDIO_FILES’
     AudioProcessor* hise::StandaloneProcessor::createProcessor() { CREATE_PLUGIN_WI
                                                                    ^
    /media/dave/work1/HISE Development Builds/HISE/hi_frontend/hi_frontend.h:118:91: error: ‘impulsesSize’ is not a member of ‘PresetData’
      = hise::PresetHandler::loadValueTreeFromData(PresetData::impulses, PresetData:
                                                                         ^
    ../../Source/Plugin.cpp:12:64: note: in expansion of macro ‘CREATE_PLUGIN_WITH_AUDIO_FILES’
     AudioProcessor* hise::StandaloneProcessor::createProcessor() { CREATE_PLUGIN_WI
    
    

  • administrators

    It seems like something went wrong at autogenerated the resource files. Can you post the content of PresetData.h in you Build directory?



  • @christoph-hart

    /* (Auto-generated binary data file). */
    
    #ifndef BINARY_PRESETDATA_H
    #define BINARY_PRESETDATA_H
    
    namespace PresetData
    {
        extern const char*  externalFiles;
        const int           externalFilesSize = 430810;
    
        extern const char*  preset;
        const int           presetSize = 1645467;
    
        extern const char*  userPresets;
        const int           userPresetsSize = 1526;
    
    }
    
    #endif
    
    


  • Presets aren't showing in the plugin either, also I get this when building the plugin

    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_core/zip/zlib/deflate.h:96:16: warning: type ‘struct internal_state’ violates one definition rule [-Wodr]
     typedef struct internal_state {
                    ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:1347:12: note: a different type is defined in another translation unit
         struct internal_state {int dummy;}; /* hack for buggy compilers */
                ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_core/zip/zlib/deflate.h:97:15: note: the first difference of corresponding definitions is field ‘strm’
         z_streamp strm;      /* pointer back to this zlib stream */
                   ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:1347:32: note: a field with different name is defined in another translation unit
         struct internal_state {int dummy;}; /* hack for buggy compilers */
                                    ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_core/zip/zlib/zlib.h:83:16: warning: type ‘struct z_stream_s’ violates one definition rule [-Wodr]
     typedef struct z_stream_s {
                    ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:83:16: note: a different type is defined in another translation unit
     typedef struct z_stream_s {
                    ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_core/zip/zlib/zlib.h:93:32: note: the first difference of corresponding definitions is field ‘state’
         struct internal_state FAR *state; /* not visible by applications */
                                    ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:93:32: note: a field of same name but different type is defined in another translation unit
         struct internal_state FAR *state; /* not visible by applications */
                                    ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_core/zip/zlib/deflate.h:96:16: note: type ‘struct internal_state’ should match type ‘struct internal_state’ that itself violate one definition rule
     typedef struct internal_state {
                    ^
    /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_graphics/image_formats/../../juce_core/zip/zlib/zlib.h:1347:12: note: the incompatible type is defined here
         struct internal_state {int dummy;}; /* hack for buggy compilers */
                ^
    In function ‘__poll_alias’,
        inlined from ‘sleepUntilEvent.constprop’ at /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:130:78,
        inlined from ‘dispatchNextMessageOnSystemQueue’ at /media/dave/work1/HISE Development Builds/HISE/JUCE/modules/juce_events/native/juce_linux_Messaging.cpp:244:42:
    /usr/include/x86_64-linux-gnu/bits/poll2.h:41:60: warning: call to ‘__poll_chk_warn’ declared with attribute warning: poll called with fds buffer too small file nfds entries
      return __poll_chk (__fds, __nfds, __timeout, __bos (__fds));
    
    


  • confirmed. exactly the same issues here..

    /* (Auto-generated binary data file). */
    
    #ifndef BINARY_PRESETDATA_H
    #define BINARY_PRESETDATA_H
    
    namespace PresetData
    {
        extern const char*  preset;
        const int           presetSize = 3813;
    
        extern const char*  images;
        const int           imagesSize = 10;
    
        extern const char*  impulses;
        const int           impulsesSize = 14;
    
        extern const char*  userPresets;
        const int           userPresetsSize = 225;
    
        extern const char*  externalFiles;
        const int           externalFilesSize = 1742;
    
    }
    
    #endif
    

    on latest Ubuntu 16.04

    best,
    d


  • administrators

    Please try again, there was a nasty typo in the standalone export code which created a "default" Projucer project so it's very likely that this was also causing your issues.



  • @christoph-hart Won't build for some reason

    In file included from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/../JUCE/modules/juce_dsp/juce_dsp.h:239:0,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/hi_core.h:68,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/hi_dsp.h:55,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/hi_components.h:57,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/hi_sampler.h:54,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/hi_scripting.h:61,
                     from ../../../../../HISE/hi_backend/../hi_modules/hi_modules.h:57,
                     from ../../../../../HISE/hi_backend/hi_backend.h:55,
                     from ../../Source/../JuceLibraryCode/JuceHeader.h:17,
                     from ../../Source/MainComponent.h:12,
                     from ../../Source/MainComponent.cpp:12:
    ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h: In instantiation of ‘struct juce::dsp::SIMDRegister<long long int>’:
    ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/../hi_streaming/hi_streaming/MonolithAudioFormat.h:402:77:   recursively required by substitution of ‘template<class Type> juce::dsp::SIMDRegister<Type> juce::jmax(juce::dsp::SIMDRegister<Type>, juce::dsp::SIMDRegister<Type>) [with Type = long long int]’
    ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/../hi_streaming/hi_streaming/MonolithAudioFormat.h:402:77:   required from here
    ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/../JUCE/modules/juce_dsp/containers/juce_SIMDRegister.h:84:43: error: invalid use of incomplete type ‘struct juce::dsp::SIMDNativeOps<long long int>’
         typedef typename NativeOps::vSIMDType vSIMDType;
                                               ^
    In file included from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/../JUCE/modules/juce_dsp/juce_dsp.h:229:0,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/hi_core.h:68,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/hi_dsp.h:55,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/hi_components.h:57,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/hi_sampler.h:54,
                     from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/hi_scripting.h:61,
                     from ../../../../../HISE/hi_backend/../hi_modules/hi_modules.h:57,
                     from ../../../../../HISE/hi_backend/hi_backend.h:55,
                     from ../../Source/../JuceLibraryCode/JuceHeader.h:17,
                     from ../../Source/MainComponent.h:12,
                     from ../../Source/MainComponent.cpp:12:
    ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/../hi_sampler/../hi_components/../hi_dsp/../hi_core/../JUCE/modules/juce_dsp/native/juce_avx_SIMDNativeOps.h:51:8: note: declaration of ‘struct juce::dsp::SIMDNativeOps<long long int>’
     struct SIMDNativeOps;
            ^
    In file included from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/hi_scripting.h:95:0,
                     from ../../../../../HISE/hi_backend/../hi_modules/hi_modules.h:57,
                     from ../../../../../HISE/hi_backend/hi_backend.h:55,
                     from ../../Source/../JuceLibraryCode/JuceHeader.h:17,
                     from ../../Source/MainComponent.h:12,
                     from ../../Source/MainComponent.cpp:12:
    ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/scripting/api/ScriptingApiContent.h: In member function ‘Subtype* hise::ScriptingApi::Content::addComponent(juce::Identifier, int, int)’:
    ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/scripting/api/ScriptingApiContent.h:1946:40: error: invalid use of incomplete type ‘class hise::ProcessorWithScriptingContent’
       var savedValue = getScriptProcessor()->getSavedValue(name);
                                            ^
    In file included from ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/hi_scripting.h:72:0,
                     from ../../../../../HISE/hi_backend/../hi_modules/hi_modules.h:57,
                     from ../../../../../HISE/hi_backend/hi_backend.h:55,
                     from ../../Source/../JuceLibraryCode/JuceHeader.h:17,
                     from ../../Source/MainComponent.h:12,
                     from ../../Source/MainComponent.cpp:12:
    ../../../../../HISE/hi_backend/../hi_modules/../hi_scripting/scripting/api/ScriptingBaseObjects.h:39:7: note: forward declaration of ‘class hise::ProcessorWithScriptingContent’
     class ProcessorWithScriptingContent;
           ^
    At global scope:
    cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’
    Makefile:143: recipe for target 'build/intermediate/Release/MainComponent_a6ffb4a5.o' failed
    make: *** [build/intermediate/Release/MainComponent_a6ffb4a5.o] Error 1
    
    

  • administrators

    That was a weird one. It was actually something in the JUCE code of the new juce_dsp module. Please check if it works now - I can compile the standalone version of the demo project found in the HISE repository on Linux.



  • @christoph-hart Thanks I'll check it out later tonight. Some guys on the LinuxMusicians forum are having issues with the Juce executable - https://www.linuxmusicians.com/viewtopic.php?p=92369#p92369


Log in to reply
 

0
Online

264
Users

687
Topics

4.4k
Posts

Looks like your connection to Forum was lost, please wait while we try to reconnect.