Regarding the Logic Environment setup for VE-Pro-5 Multiport templates. There is the possibility that a large session will cause too much MIDI traffic. I think some of this has been addressed in other threads; I am trying to gather all issues into a single thread, and demonstrate some solutions in the Logic Environment that I don’t think have been posted here (tell me if I’m wrong!)
Maybe a new Logic version or an AU3 Vienna Ensemble plugin will make all this unnecessary.
If anyone has the energy, what do you make of this? One thing I do not know is whether the Vienna Ensemble plugin already filters extra MIDI events in the ways described below.
TL;DR—extra note offs generated by Logic in the Multiport template can be suppressed. One cc99 message per Vienna Ensemble MIDI port change would be a nice feature and can be accomplished in the Environment using “Filter Duplicate Events.”
It seems that Vienna Ensemble is expecting cc99 messages for each MIDI message. For example, if Logic X is set up with a VE Ensemble instance hosting two Kontakt plugins and sends MIDI data:
- 176 99 0/144 60 127/176 99 0/144 60 0 (Vienna Ensemble port 1, MIDI note 60 on/off)
- 176 99 1/144 60 127/176 99 0/144 60 0 (Vienna Ensemble port 2, MIDI note 60 on/off)
- 144 60 127/144 60 0 (No Vienna Ensemble port address, MIDI note 60 on/off)
Message 1 is routed to Vienna Ensemble plugin receiving MIDI on “MIDI IN 1.”
Message 2 is routed to Vienna Ensemble plugin receiving MIDI on “MIDI IN 2.”
Message 3 (without a cc99 message) is routed to Vienna Ensemble port 1 plugin receiving MIDI on “MIDI IN 1.”
If Vienna Ensemble in a Logic X Multiport setup was able to address all MIDI messages following a cc99 message to the plugin indicated by the initial cc99 message MIDI traffic would be reduced considerably. This can be accomplished in the Environment by separating the cc99 data stream from the regular input MIDI stream (see below)
MIDI note off messages in Logic X can be hard to predict. In the current VE-Pro-5 Multiport Templates a note on/off message entered in real time on a track sending to Vienna Ensemble Port 1 using a MIDI keyboard will cause the following output from Logic:
176 99 0/144 60 127/176 99 0/144 60 0
However, the same MIDI event, when recorded into a MIDI Region and played back by Logic, is sent to Vienna Ensemble as:
176 99 0/144 60 127/176 99 0/144 60 0/128 60 64
The penultimate note-off message 144 60 0 is not shown in the Logic Environment but is generated by the Transformer Environment Object when transforming a note off into a cc99 message. During playback Logic sends “real” note off messages in the 128-143 range.
I may be mistaken but I think the most efficient way to address MIDI to specific Vienna Ensemble MIDI ports would look like this:
176 99 x Only once for Vienna Ensemble to direct MIDI to the correct Vienna Ensemble MIDI Port. All additional cc99 messages and unnecessary note-off messages suppressed.
This is accomplished in the Logic Environment as follows (see photos here, click on a photo and then the "i" to read a caption) :
A) Route the top output of the multi-instrument to a series of transformers with these properties:
- A transformer where all MIDI note events become cc99 events
- A filter of all cc99 messages with a value of 0. This removes note off messages
- A transformer making all MIDI events cc99 events with the value equivalent to the (Vienna Ensemble port number - 1). This ensures MIDI events are sent to the correct address.
- A transformer set to Filter Duplicate Events. This prevents multiple cc99 messages with the same value from being sent. Each multi-instrument should be attached to this transformer
B) Connect the second output of the multi-instrument directly to the Vienna Ensemble Software Instrument.
Would this work? Is it possible for Vienna Ensemble to only require a single cc99 message per change in Port?
VE Pro 5.4.14074, OSX 10.11.3, Logic 10.2.2, tested on a MacBook Pro 8,2 and two Mac Pro machines.
here