[LAU] LinnStrument on Linux

Ralf Mardorf ralf.mardorf at alice-dsl.net
Sun Jul 17 20:43:47 UTC 2016


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!


More information about the Linux-audio-user mailing list