Multichannel Routing issue
-
Try compiling the projects from the tutorial repository, they are supposed to work.
Also you might want to use another host for testing, the JUCE plugin host is a minimal app that loads VSTs and is really easy to hook up to a debugger:
- Start the export the app in HISE, but cancel it if you see the
Compiling hi_core.cpp
messages (or something like that) - Start Visual Studio and load the Solution (.sln) found in
Compiled/Builds/VS2017/
- Set the plugin host to start in the debugger (look up how to do that, there should be enough resources available), then load the plugin and see where it crashes
Alternatively you can send me a minimal version of your project and I'll take a look at it :)
- Start the export the app in HISE, but cancel it if you see the
-
i tried the multichannel example and work fine.
for 1 of my project i just increased the output to 8 stereo outputs and delete the "ok, error" functions (don't need it)if i'm right the first 2 images are sampler 1 and sampler 2 ?
so the last is the global container ...i didn't do like you. I put Hise out 1 & 2 to both 1,2,3,4,5,6,7,8
as is it in the example, if outputs are differents than 1/2 (3/4, 5/6, etc... ) and host has no multi out: all outputs goes by default to 1/2
but your last pic show that only 1/2 are linked together, 2/4 same thing, etc ....
my global:
my sampler 1:
my sampler2:
etc. ...
-
@staiff your above example is in the standalone version. That routing appears to work. I'm using the multichannel plugin version.
-
@christoph-hart thanks for the info! Currently researching debugging.
On another note, did you try the test I recreated on your rig?- Make new project
- add 2 samplers
- route one to 1+2 master chain , and the other to 3+4 master chain
- in master container, set number of channels to 4
- route container master chains 1-4 to HISE out 1-4
In HISE it functions as expected. Once it's exported to VST, both samplers play out of 1-2
-
@Christoph-Hart Here's what I got in the output window of Visual Studio:
Loading embedded instrument data Loading embedded image data Loading embedded impulse responses Loading embedded other data Creating Frontend Processor Initialising MainController Checking license Load images Restoring main container Compiling all scripts Adding plugin parameters Restoring global settings Samples are validated. Skipping reference check Loading samples Initialising VST: BACK TO SCHOOL_Debug_x64 (0.1.0.0) The thread 0x36e8 has exited with code 0 (0x0). The thread 0x3508 has exited with code 0 (0x0). The thread 0x32d4 has exited with code 0 (0x0). The thread 0x2c78 has exited with code 0 (0x0). The thread 0x1048 has exited with code 0 (0x0).
And then the JUCE VST plugin host crashes.
-
I also forgot to mention that when I compile the plugin, I get an error:
c:\users\studio a\desktop\hise-master 3-7-18\hi_core\hi_core\MainController.cpp(268): warning C4101: 'errorMessage': un referenced local variable (compiling source file ..\..\JuceLibraryCode\include_hi_core.cpp) [F:\BACK TO SCHOOL VST\Bina ries\Builds\VisualStudio2017\BACK TO SCHOOL_SharedCode.vcxproj] c:\users\studio a\desktop\hise-master 3-7-18\hi_modules\effects/fx/Analyser.cpp(411): warning C4244: 'argument': conver sion from 'float' to 'int', possible loss of data (compiling source file ..\..\JuceLibraryCode\include_hi_modules.cpp) [F:\BACK TO SCHOOL VST\Binaries\Builds\VisualStudio2017\BACK TO SCHOOL_SharedCode.vcxproj]
-
the pictures shown is inside the HISE standalone, yes.
but compiled this as VST is the same thing.
so tomorrow i will show you the result as VST.But maybe you will work with the standalone HISE, instead of vst one to create. VST one is for me for creating a player and load libraries in it. but maybe i'm wrong.
but maybe my standalone HISE and compiled VST works ... maybe ...see it tommorrow ( French time clock). tonight is for my family.
Christoph example works. my project (and pictures above) works. it's just to help you.
for finish: don't matter yellow lines in compiling. No matter. RED lines are another story. 100 % of time a wrong project/settings.
try standalone HISE instead of VST; because first you don't have to open DAW or something else to work. Just HISE.
Quicker, simplier. Never worked with other thing than standalone one.
"On another note, did you try the test I recreated on your rig?
Make new project
add 2 samplers
route one to 1+2 master chain , and the other to 3+4 master chain
in master container, set number of channels to 4
route container master chains 1-4 to HISE out 1-4
In HISE it functions as expected. Once it's exported to VST, both samplers play out of 1-2"what daw do you use ?
i use a lot of daws (reaper, bitwig, sonar, live and studio one)
but i prfer studio one (for multichannels) it's easy to know if it works or not.tomorrow i will make a tuto to show this (HISE standalone, compiling, testing in S1) to see what wrong in your case
-
@staiff Thanks for checking it out. AFAIK the HISE plugin is the only multichannel version available. I can't create VSTi's that have multiple outputs on the standalone version.
what daw do you use ? i use a lot of daws (reaper, bitwig, sonar, live and studio one) but i prfer studio one (for multichannels) it's easy to know if it works or not.
I'm using Cubase and Reaper over here.
try standalone HISE instead of VST; because first you don't have to open DAW or something else to work. Just HISE.
I'd love to! @Christoph-Hart Hurry up and get multichannel in standalone HISE ;)
-
the pics i put above is made with standalone. so it's possible via standalone. Think it's possible to test it in reaper, but honesty i just use reaper to test the plugin because if reaper reject it, your plugin never works ! Reaper is powerful for that: a best tester for plugin stability. but for puting FX in bus, testing multichannel i really don't know how ... for me studio One is easier .... but because i use a lot S1 for composing.
maybe have no time tomorrow ( but will have the time). in the worse case i'll make it Monday morning. As you live in NY, i will make tuto when you sleep and will be available at your wake up, for coffee + tuto ;)
For info i actually working on a drum rompler (Simmons) with multi sampler (as seen on pics) separates kick, snare, hat, etc. ... and multi-out for each samplers.
all in HISE SA. speedy compiled in VST 64 windows tonight and it works.
-
@staiff said in Multichannel Routing issue:
the pics i put above is made with standalone. so it's possible via standalone.
I think maybe there's miscommunication on the term "multichannel"? The standalone version doesn't allow more than 2 physical outputs from HISE in your main container.
Am I not understanding that correctly?
And HISE multichannel (only available in plugin format) allows up to 16 physical output in the main container.I can't wait to check out the VST you're designing! Sounds awesome
-
@staiff said in Multichannel Routing issue:
separates kick, snare, hat, etc. ... and multi-out for each samplers.
I think that's the difference. I'm not using multiple outputs from each sampler, I'm using physical outputs from HISE.
-
I'm circling the wagons around the issue causing my plugin to fail. It has something to do with:
- amount of samplers in a container
- multiple samples with different velocity ranges in a single sampler
Almost figured it out
-
@Christoph-Hart I think I got it. I can't have more than 1 midi note occupied with RR samples in a single sampler. The second that I have 2 RR instruments in the same sampler, I get a crash.
-
That is weird. Can you send me the patch and the samples so I can try to reproduce it?
-
unfortunately, It's not the only cure... still having issues which might be container related.
Sending you the patch now -
@dustbro said in Multichannel Routing issue:
I think maybe there's miscommunication on the term "multichannel"? The standalone version doesn't allow more than 2 physical outputs from HISE in your main container.
Am I not understanding that correctly?
And HISE multichannel (only available in plugin format) allows up to 16 physical output in the main container.
I can't wait to check out the VST you're designing! Sounds awesomeoooooooooooooookaaaaaaaaaaaaaaaayyyyyyyyyyyyyyyyyyy ! :D
miscommunication for sure !as Christoph already said =
HISE Standalone (and maybe VST, i don't know, i'm not using it) has only 2 ouputs (1+2) !So when i create multi out project in Hise, of course i only have a single stereo output !
i must compile it (as VST or Standalone or else) for testing the multi-out.during the Hise process you can't really test it. But as i know the Christoph's code/example works well i create without doubt in HISE.
after that when compiling it and test it as WIN VSTi 64bits and put it in Studio One plugin = i have multi output !That's why Christoph put in the example the "ok, error" part of code = just to show you that when you don't have multi outputs (like in HISE) = it says "error" and put all multi out in the single 1+2 (stereo main) outputs ! :D
alaways need a video tuto now ? ;)
-
-
@Christoph-Hart After testing, it appears random what compiles properly and what doesn't. The only consistent thing is compiling any project containing more than one sampler is like rolling the dice.
Could this be an issue with Visual Studio 2017?? or something else...
I should also add that this is for compiling VST. Sandalone works properly. -
@Christoph-Hart I've been tinkering with this all morning. I can isolate the problem 100% to the audio files. I compiled a VST of my project, moved it to another computer (without the samples) and it loaded fine! The second that I locate the sample folder in the plug, it crashes all hosts. if I remove the sample folder, it opens fine again. I've gone thru each of the sample audio files, and I can't find anything wrong with them.
-
Debugging in Visual Studio. I'm getting somewhere I think.
PluginHost throws an exception on jassertfalse;#ifndef MODULATORSAMPLER_H_INCLUDED #define MODULATORSAMPLER_H_INCLUDED namespace hise { using namespace juce; class SampleEditHandler; /** The main sampler class. * @ingroup sampler * * A ModulatorSampler is a synthesiser which allows playback of samples. * * Features: * * - Disk Streaming with fast MemoryMappedFile reading * - Looping with crossfades & sample start modulation * - Round-Robin groups * - Resampling (using linear interpolation for now, but can be extended to a complexer algorithm) * - Application-wide sample pool with reference counting to ensure minimal memory usage. * - Different playback modes (pitch tracking / one shot, etc.) * * Current limitations: * * - supported file format is stereo wave. */ class ModulatorSampler: public ModulatorSynth, public ExternalFileProcessor, public LookupTableProcessor { public: /** A small helper tool that iterates over the sound array in a thread-safe way. * */ class SoundIterator { public: using SharedPointer = ReferenceCountedObjectPtr<ModulatorSamplerSound>; /** This iterates over all sounds and locks the sound lock if desired. */ SoundIterator(ModulatorSampler* s_, bool lock_=true): s(s_), lock(lock_) { if (s->getNumSounds() == 0) { lock = false; } else { if (lock) { lock = s->getMainController()->getSampleManager().getSamplerSoundLock().tryEnter(); if (!lock) jassertfalse; //s->getMainController()->getSampleManager().getSamplerSoundLock().enter(); } } }
Once I skip past that breakpoint, the debug version of the plugin loads