Notifications
Clear all

[Solved] MIDI Filter Bug?


Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

Hi,

  • Incoming notes are distributed to 8 separate MIDI Channels (Filters 1-8)
  • "MIDI Monitor 2" connected to the output of "Filter 9" shows 8 x "Note On" event (CH01- CH08)

BUT

  • There are 7 MIDI Channels receiving "Note Off" msg (CH02 - CH08 and again CH08 instead of CH01)

For some reason this doesn't cause any problem with embeded UNIFY, however, when using Kontakt in multitimbral setup, I have hanging notes (as expected when looking at the MIDI Monitor on 2nd screenshot).

I attached the Patch, could you please investigate, thanks

 
Also, cc64 appears when the note is released, not sure why

Quote
getdunne
(@getdunne)
Member Admin
Joined: 2 years ago
Posts: 2850
 

Thank you for the detailed report, and especially for including the patch file.

In this case, the CH1/CH8 confusion is caused by including the extra MIDI Filter instance ("MIDI Filter 9"), which isn't set up to actually do anything.

MIDI Filter and various other components of Unify don't handle multiple MIDI channels well. This is a known issue, but will not be easy to fix, because it will require a bit of an overhaul of Unify's MIDI message handling. I tried this a while back, and it caused more problems than it solved. At some point I hope to try again. The code involved is used in many places in Unify, so the potential for problems is huge.

The CC#64 messages are getting injected into the embedded Unify's MIDI input stream because the outer Unify's Transport is set to the default "MIDI / Quick Stop" mode, and hence the Transport stops when no notes are held down. The embedded Unify detects that its host's Transport has stopped and sends MIDI sustain-pedal UP messages on all channels to all plug-ins, to avoid stuck notes.

Your patch is very intricate, but I can't tell what you're trying to accomplish. I suspect whatever you're trying to do can be done another way, which won't be affected by Unify's MIDI channel issues. If you tell me what your actual goal is, I may be able to advise.


ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

@getdunne 

Hi, thanks for the explanation. This is my scenario:

  • My keyboard controller sends MIDI notes on Channel 01
  • Unify receives the notes and duplicates them to Channels 02-06 (Nested ComboBox with MIDI Filters)
  • then each Arp is processing Notes on separate MIDI Channel
  • Processed MIDI goes to Kontakt (Multitimbral setup)
  • Now, each instrument plays its own sequence
  • All CC Messages are processed separately 

The purpose of "Filter 9" in my previous example would be to set the Notes Range for all 8 Channels by using just one Filter. Not a big problem, there are many ways to achieve that, Thanks.

PS. Nested ComboBoxes are very handy - I can copy/paste quite complex patchwork by using "copy/paste plugin state".


ReplyQuote
getdunne
(@getdunne)
Member Admin
Joined: 2 years ago
Posts: 2850
 

@robert-p

Thank you for explaining. Your approach seems overly complex, but perhaps I'm missing something. To run parallel sequences to separate MIDI channels using BlueARP, you can simply put the BlueARP instances in parallel in a ComboBox, and set their MIDI output channels individually as shown in this screenshot:

However, it's simpler still to use one BlueARP and one Kontakt instance on separate Unify layers, as shown here:

This approach avoids all the mucking around with MIDI channels entirely. I've attached both patches below.

There is little advantage to Kontakt's multi-channel/multi-timbral mode in Unify. Using separate Kontakt instances instead will be more efficient, because each can run on its own CPU core.

MIDI channels are extremely useful for separating multiple keyboard or controller signals from a single multiplexed input; this is why Unify has a MIDI channel option on each layer. Once MIDI is received into Unify, however, trying to work with multiple MIDI channels may be more trouble than it's worth.


Robert.P liked
ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

@getdunne 

Hi, thanks for your reply. There are a few reasons why I choose a multitimbral setup with this particular library:

  • I reduced my CPU usage by 50% simply by removing 25 instances of Convulsion Reverb (a default settings for each Kontakt instrument that came with this library) and created 5 sections instead, only one reverb on Aux channel per section. I know it also can be done with Unify AUX send, but that would require another 3rd party plugin on Aux Layer to load an “Impulse Response File”.
  • Assign CC Automation to Kontakt. With multitimbral setup there is no need to switch between 25 instances of Kontakt to make some adjustments.
  • A bunch of BlueArps inside the ComboBox – I can easily copy/paste the whole setup including all programs (not just the current program).

I attached a schematic diagram of my setup.

 
PS. There will be some "MIDI Polyphony" plugins added to the nested ComboBox (where the parallel processing starts).

getdunne liked
ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

@getdunne 

Hi, I tested my midi processing chain – all works great within the ComboBOX, no more issues found. I followed your advice (all my filters are set to process a single channel), yet still, I can use NI Kontakt with multitimbral setup.

The only weak link I found was the NI Maschine Software I placed on my MIDI FX Layer – it couldn’t transmit multiple cc messages placed on the same MIDI track and triggered simultaneously. (No problem though – I created some articulation and program key-switches within my DAW and Unify receives them all).

During the whole process Unify has been pushed to the limits, yet, I had no single crash or stuck notes. I admit that in terms of stability and efficiency, Unify performs much better than similar applications I tried before.


ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

@getdunne 

My MIDI setup may look quite complicated under the hood, but what’s left on the top is very simple – a few nested ComboBoxes (and the Arps I’ll be reaching for very often to program them). MIDI processing takes almost no CPU, it’s lightning fast and so far, very reliable. Also, the artistic potential is huge.
Before Unify’s nested ComboBox bug was fixed, I had Kushview “Element” on my MIDI FX layers, and these are my thoughts:

What I liked:
Easy navigation between nested “graphs”
Clean view with ability to name/rename the modules
MIDI Out capability

What I didn’t like:
Graphic User Interface
Only 8 macros, no multi-parameter mapping
Stability problems

It would be great if we could also have the ComboBox as a separate MIDI Vst plugin (to make the whole setup more “mobile”).


ReplyQuote
getdunne
(@getdunne)
Member Admin
Joined: 2 years ago
Posts: 2850
 
Posted by: @robert-p

It would be great if we could also have the ComboBox as a separate MIDI Vst plugin (to make the whole setup more “mobile”).

Have a look at Kushview Element. Incredible value for $2.


ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  
Posted by: @getdunne

Have a look at Kushview Element. Incredible value for $2.

Thanks, I have it and I included my thoughts about "Element" in my previous comment.


ReplyQuote
getdunne
(@getdunne)
Member Admin
Joined: 2 years ago
Posts: 2850
 

@robert-p

Haha, I must really be getting old. I missed the reference to Element in your earlier post.

Element and ComboBox are both based on the same JUCE reference code, but Element author Michael Fisher took things a bit further by adding macro support, etc. I think he uses an earlier version of the JUCE framework; this could explain differences in stability.

Could you explain a bit more, why you would like to have ComboBox as a separate VST? Is there a scenario in which you would want to use it without Unify, which could not possibly be achieved with Unify?

Also, have you looked at any other similar plug-in chaining tools, e.g. Blue Cat's Patchwork (or indeed their amazing Plug'n'Script), DDMF Metaplugin, etc.?

I'm quite wary of creating a separate chaining tool to go head-to-head with these other products, because (a) there is almost no market for them, and (b) the amount of work required to achieve perfect compatibility is huge and never-ending.


ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

@getdunne 

I was wondering if you could somehow reuse the existing ComboBox code to create a separate MIDI FX VST (no audio), that would be able to send MIDI data to multiple instrument tracks (i.e. several instances of Unify) to create a “audio multichannel” configuration within the DAW.

I tested all the plugins you have mentioned – “BC Patchwork” has no wires to create patches. “Metaplugin” and “Element” (which I prefer) are ok, but not as good as ComboBox.

Unify has no “MIDI out” or “audio multichannel” capability yet, so that could be good point to start: free beta “use at your own risk”.


ReplyQuote
Nico Fyve
(@nico)
Eminent Member
Joined: 2 years ago
Posts: 47
 

Another veteran piece of software for fancy chaining, routing and more is Plogue Bidule.

 

Cubase 11 Pro, Win 10 Pro (x64), several different midi controllers


Robert.P liked
ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

I just found something that looks very interesting to me:

https://soundigy.com/midilab.php

 


ReplyQuote
getdunne
(@getdunne)
Member Admin
Joined: 2 years ago
Posts: 2850
 

@robert-p MIDILab looks very interesting. If you get it, please let us know what you think.


Robert.P liked
ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

@getdunne 

I'm testing the demo now (standalone). I'll contact the guys next week to ask if I can get VST to see how it works with Unify.


ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

@getdunne 

I found some nice features while testing the MIDI Lab:

  • Custom Tabs containing multiple Plugins GUIs
  • Fully customizable, touch capable MIDI Control Surface
  • Knobs and Faders that shows values between 0-127 (not 0-1)

The attached screenshot shows my Custom tab containing Unify, MIDI Control Surface and MIDI Keyboard. The controller sends CCs to Unify Macro Knobs (with corresponding CC assignments). The application itself may need some refinements, apart of that - great MIDI Tool.

PS. It also uses a JUCE framework.


ReplyQuote
Robert.P
(@robert-p)
Estimable Member
Joined: 2 years ago
Posts: 163
Topic starter  

Another interesting free app here: CTRLR (a hardware MIDI editor) that can be run as a VST plugin. It allows us to create a custom panels with MIDI CC assignment that can be used to control embedded Unify instances (with corresponding macro knob/cc assignment). Apparently, each panel can also be compiled to individual VST plugin.


ReplyQuote
Share: