Linux build of HISE
-
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.
-
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
-
It seems like something went wrong at autogenerated the resource files. Can you post the content of PresetData.h in you Build directory?
-
/* (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 -
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
-
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
-
It appears that the Projucer has some flags enabled that require i7 CPUs, which is most likely the cause of the
illegal instruction
errors.Source: https://forum.juce.com/t/linux-projucer-crashes-on-startup/18320/8
-
Latest build fails:
Compiling include_hi_sampler.cpp In file included from ../../../../../HISE/hi_sampler/hi_sampler.cpp:42:0, from ../../JuceLibraryCode/include_hi_sampler.cpp:9: ../../../../../HISE/hi_sampler/sampler/ModulatorSamplerSound.cpp: In member function ‘int hise::ModulatorSamplerSoundPool::getSoundIndexFromPool(juce::int64, juce::int64)’: ../../../../../HISE/hi_sampler/sampler/ModulatorSamplerSound.cpp:1163:40: error: conversion from ‘juce::WeakReference<hise::StreamingSamplerSound>’ to non-scalar type ‘hise::StreamingSamplerSound::Ptr {aka juce::ReferenceCountedObjectPtr<hise::StreamingSamplerSound>}’ requested StreamingSamplerSound::Ptr s = pool[i]; ^ At global scope: cc1plus: warning: unrecognized command line option ‘-Wno-inconsistent-missing-override’ Makefile:193: recipe for target 'build/intermediate/Release/include_hi_sampler_50722b2a.o' failed make: *** [build/intermediate/Release/include_hi_sampler_50722b2a.o] Error 1
-
Is fixed now.
-
I'm still getting this when trying to export a standalone instrument from HISE
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::images, PresetData::imagesSize, false);\ ^ ../../Source/Plugin.cpp:12:64: note: in expansion of macro ‘CREATE_PLUGIN_WITH_AUDIO_FILES’ AudioProcessor* hise::StandaloneProcessor::createProcessor() { CREATE_PLUGIN_WITH_AUDIO_FILES(deviceManager, callback); } ^ /media/dave/work1/HISE Development Builds/HISE/hi_frontend/hi_frontend.h:116:87: error: ‘imagesSize’ is not a member of ‘PresetData’ ValueTree imageData = hise::PresetHandler::loadValueTreeFromData(PresetData::images, PresetData::imagesSize, false);\ ^ ../../Source/Plugin.cpp:12:64: note: in expansion of macro ‘CREATE_PLUGIN_WITH_AUDIO_FILES’ AudioProcessor* hise::StandaloneProcessor::createProcessor() { CREATE_PLUGIN_WITH_AUDIO_FILES(deviceManager, callback); } ^ /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::impulses, PresetData::impulsesSize, false); \ ^ ../../Source/Plugin.cpp:12:64: note: in expansion of macro ‘CREATE_PLUGIN_WITH_AUDIO_FILES’ AudioProcessor* hise::StandaloneProcessor::createProcessor() { CREATE_PLUGIN_WITH_AUDIO_FILES(deviceManager, callback); } ^ /media/dave/work1/HISE Development Builds/HISE/hi_frontend/hi_frontend.h:118:91: error: ‘impulsesSize’ is not a member of ‘PresetData’ ValueTree impulseData = hise::PresetHandler::loadValueTreeFromData(PresetData::impulses, PresetData::impulsesSize, false); \ ^ ../../Source/Plugin.cpp:12:64: note: in expansion of macro ‘CREATE_PLUGIN_WITH_AUDIO_FILES’ AudioProcessor* hise::StandaloneProcessor::createProcessor() { CREATE_PLUGIN_WITH_AUDIO_FILES(deviceManager, callback); } ^ Makefile:111: recipe for target 'build/intermediate/Release/Plugin_124bbd3c.o' failed
-
Last time I checked this had something to do with the EmbedAudioFiles setting. Try changing that and test if the problem persists.
-
@christoph-hart Thanks that fixed it, I had to check the box!