Multichannel Routing issue

  • 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.

    alt text

  • 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 awesome

    oooooooooooooookaaaaaaaaaaaaaaaayyyyyyyyyyyyyyyyyyy ! 😄
    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 ! 😄

    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;

    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
    	/** A small helper tool that iterates over the sound array in a thread-safe way.
    	class SoundIterator
    		using SharedPointer = ReferenceCountedObjectPtr<ModulatorSamplerSound>;
    		/** This iterates over all sounds and locks the sound lock if desired. */
    		SoundIterator(ModulatorSampler* s_, bool lock_=true):
    			if (s->getNumSounds() == 0)
    				lock = false;
    				if (lock)
    					lock = s->getMainController()->getSampleManager().getSamplerSoundLock().tryEnter();
    					if (!lock)

    Once I skip past that breakpoint, the debug version of the plugin loads

  • @staiff

    thanks for they nice Video staiff.

  • thanks.

    if you encounter an error (or crash) of the plugin =
    in PC : erase/delete the: user/appdata/roaming/you/Pluginfolder and reload it.
    it will ask again the sample location and all will goes ok again 😉

    yes, i know ... boring ... but it works !

    For MAC i don't know but the same thing as appdata/roaming for PC.

  • @staiff thank you so much, this tutorial is very helpful.

  • @staiff That's what I've been doing to get things rolling, but it always crashes the host on restart.
    Do you have any experience debugging? I'm getting a break at jassertfalse; and once I continue, the debug version of the plug loads.