On Sun, 17 Jul 2016 22:14:29 +0200, Hanspeter Portner wrote:
On 17.07.2016 17:33, Thomas Poulsen wrote:
I'll love to hear if other LinnStrument users
have been able to do
more with any of the free synths on Linux.
I happed to have a piece of hardware that I've taught to send MPE
recently. Often you can configure decent synths manually to acceptably
work with MPE.
If you activate MPE on your device, it'll send some magic RPNs to the
synth to configure it. Specifically, the device tells the synth how
many zones/groups it has (1-8), how many voices each zone has, which
MIDI channel range a zone spans over and finally the master and the
voice pitch bend range for each zone.
A synth that supports MPE would understand those messages and
configure itself accordingly. If you know all of the above (e.g.
reading the device's manual or by spoofing on the RPNs), you can
configure the synth manually.
E.g. here is how to manually configure Zyn with known zone layout and
pitch bend ranges.
Example 1
---------
Let's assume 1 zone (implies 15 voices) and a voice pitch bend range
of 48 semitones.
Channel 1: master | zone 1 (unused)
Channel 2: voice 1 | zone 1
Channel 3: voice 2 | zone 1
Channel 4: voice 3 | zone 1
Channel 5: voice 4 | zone 1
Channel 6: voice 5 | zone 1
Channel 7: voice 6 | zone 1
Channel 8: voice 7 | zone 1
Channel 9: voice 8 | zone 1
Channel 10: voice 9 | zone 1
Channel 11: voice 10 | zone 1
Channel 12: voice 11 | zone 1
Channel 13: voice 12 | zone 1
Channel 14: voice 13 | zone 1
Channel 15: voice 14 | zone 1
Channel 16: voice 15 | zone 1
With one zone, channels 2-16 represent 15 voices of the same
instrument. Your device thus sends notes in a round-robin fashion on
channels 2-16.
So, simply activate channels 2-16 in Zyn, load the same instrument on
all of them (really tedious, I know, but this may be automatable) and
set the pitch bend range for channels 2-16 to 48000 cents.
Example 2
---------
Let's assume 2 zones (7 voices each) and a voice pitch bend range of
24 semitones for zone 1 and 48 semitones for zone 2.
Channel 1: master | zone 1 (unused)
Channel 2: voice 1 | zone 1
Channel 3: voice 2 | zone 1
Channel 4: voice 3 | zone 1
Channel 5: voice 4 | zone 1
Channel 6: voice 5 | zone 1
Channel 7: voice 6 | zone 1
Channel 8: voice 7 | zone 1
Channel 9: master | zone 2 (unused)
Channel 10: voice 1 | zone 2
Channel 11: voice 2 | zone 2
Channel 12: voice 3 | zone 2
Channel 13: voice 4 | zone 2
Channel 14: voice 5 | zone 2
Channel 15: voice 6 | zone 2
Channel 16: voice 7 | zone 2
Your device sends notes for instrument 1 in a round-robin fashion on
channels 2-8, for instrument 2 on channels 10-16.
Activate channels 2-8 and 10-16 in Zyn, load your first instrument on
channels 2-8, your second instrument on channels 10-16. Set pitch bend
range for channels 2-8 to 24000 cents, for channels 10-16 to 48000
cents.
And assumed the data flow should cause that much traffic for a single
MIDI interface, that e.g. note offs get lost? I just ask, since the OP
mentions missing note-off events.
It's idiotic to use old school MIDI by trying to expand it, while it
already didn't provide the ability with old school
non-multi-tasking-direct-midi-hardware-access-but-absolutely-hard-real-time
computers to do things like that. Nowadays computer design by nature
can't provide this in a sane way. Resp. it might be possible by using
several MIDI IOs for such a task, but it's at least risky, when using
a single MIDI interface. JFTR not all MIDI interfaces are using the
same chips and/or diodes to provide edge steepness, sometimes adjusting
a potentiometer could do magic.
Good luck!