Linux build of HISE
-
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!
-
Yeah I changed the default value to yes for new projects a while ago so this only happens if you load old projects.
-
@d-healey said in Linux build of HISE:
I tried it in Reaper running under Wine but no luck.
AFAIK despite the implications of "Wine is not an emulator" being it's acronym, it functions alot like one, and I can confirm that in my tests of using WINE to package applications on osx it seems more like a single application virtual machine and thus would want windows vsts.
@d-healey said in Linux build of HISE:
I have HISE working in Carla and have this playing back via virtual MIDI ports from both the Linux native version of Reaper and Windows Reaper running in Wine
In reference to my above assumption, did you have to use the windows VST in the Reaper Windows Wine?
@Christoph-Hart the notion of using HISE on linux has some intriguing implications. I was just imagining the possibility of using embedded linux/HISE as the basis for a multisampler based workstation keyboard style hardware, not that such a thing is in my plans in the near future.. but that would be pretty awesome.