I want to use the LinnStrument as my main keyboard controller for Kyma, but my current working method doesn't facilitate connecting it directly to Kyma (via any of the physical or virtual connection methods described by the “Using the LinnStrument with Kyma” page). My LinnStrument’s midi output needs to be processed through Max/MSP first. Thus my setup’s not able to adhere to all parts of the provided directions for normal MPE plug-and-play use.
I've tried following as much of the provided directions as is applicable in this case, which results in:
(1) plugging the LinnStrument into my host computer via USB
(2) in Max, receiving data from the "LinnStrument MIDI" input port exclusively within a Max patch, then processing it within the patch.
(3) in Max, sending processed MIDI data out of the "from Max 1" virtual port.
(4) in KymaConnect, activating Port 1 and setting it as: MIDI Out: "to Max 1", MIDI In: "from Max 1".
(5) in Kyma, under “DSP -> Configure MIDI…”, “Continuum and MPE compatible” is set to “Yes”, and “MIDI Pitch Bend Range (nn)” is set to 24.
(6) in Kyma, under “Performance Preferences -> External MIDI Controller”, neither “Motor Mix” or “BCF2000” is selected.
(7) in Max, created a dedicated “midiin” object to receive incoming data from the “to Max 1” virtual port (which is receiving data from KymaConnect’s Port 1 MIDI out exclusively).
(8) in Max, the output of this midiin object is connected directly to a midiout sending data to the LinnStrument’s MIDI in.
(*) Explicitly going against the instructions stated by the “Using the LinnStrument with Kyma” page, my LinnStrument’s MIDI-MODE is set to “ChPerRow”, NOT “ChPerNote”.
It must be set to “ChPerRow” to achieve independent transposition of individual rows, the need for which is explained below.
If a keyboard-controllable sound is running in Kyma, and its “MIDIVoice : Polyphony” parameter is set to at least 8 voices, then this works as expected:
The Kyma sound receives MIDI on channels 2 through 9, one for each for row of the LinnStrument, starting on ch 2.
(1) Each time I start a new Kyma sound playing, I have to go into the LinnStrument “Per-Split Settings” and manually change the MIDI-MODE from ChPerNote back to ChPerRow.
(2) Sometimes the MIDI stops working completely. I then need to restart KymaConnect and/or Kyma, and/or repeat a few of the midi-setup steps to get Kyma to respond to the LinnStrument (through Max) again.
(3) I’ve tried using parameters: !ChannelPressure, !PolyPressure, !Aftertouch, !Pressure, & !Press. Each of these create an associated slider in the VCS panel. None of them respond to the Z-axis control of the LinnStrument, which I have set to ChannelPressure on the LinnStrument, and which doesn’t get changed by Kyma. These messages appear in the Kyma Event Log as “Press”.
Basically, I’m asking two things:
(1) if it’s possible to create another plug-and-play mode for the LinnStrument, one that uses ChPerRow instead of ChPerNote as the enforced MIDI-MODE.
(2) How to have the Z-axis from the LinnStrument recognized as an MPE controller in Kyma. I prefer to have the LinnStrument set to send ChannelPressure, which appears in the Kyma Event Log as “Press”.
Here’s an explanation of why I’m using Max as a processing step between my LinnStrument and the sound device:
Max adds a flexible mapping layer between my LinnStrument and any receiving sound module. This enables a range of extended functionality:
-- transpose by row (for creating non-isomorphic layouts based on colorful alternate guitar tunings)
-- the ability to light pads in custom arrangements via midi, to match these custom row-transpose layouts, while utilizing extra colors to highlight salient tones within the scale.
-- the ability to use non-12ET tunings and change them on the fly, just by activating different list messages in Max.
At the LinnStrument's suggested pitch-bend range of 24, microtuned pitch intervals can be established for each step of the chromatic scale within about 1/3 of a cent's accuracy.
I'm mostly using a 53ET scale (i.e. 53 * 22.64 cents ≈ 1200 cents), to specify many comma-based tunings within about a 2 cent accuracy, just by providing a list of integers in Max (e.g. [ 5 9 13 17 22 26 31 36 40 44 48 53 ] describes in 53ET a chromatic scale which incorporates an Egyptian diatonic mode called "Rast").
I spent the last week finishing the Max patch and play-testing some custom pad-scale layouts in tandem with some exceptional authentic tunings, using a few different synth plugins. A few days ago I tried switching the sound source to Kyma, and quickly arrived at some breathtaking sounds and sonorities using this pitch-bend-based dynamic tuning approach with some of the cello-like resynthesized and morphable sounds from Kyma. It sounds fantastic, and I can't imagine using the LinnStrument without this mapping layer in-between, since it creates a quality of sound that resonates more powerfully and beautifully due to the purer intervals of the tunings being used. The ability to adjust tunings on the fly is crucial IMO, from subtle-tweaking of wrong-sounding intervals to exploring the dimensional shifts of an entire scale pivoting to parallel tunings implied by modal interchange and chord substitution tactics, etc. A performance-ready method of dynamic tuning specification is much preferred over a method of defining presets for storage and recall. It should yield deeper musical insights into the "tuning space" one is working in, since finer details and subtleties may emerge naturally over time as a product of one's working process and engagement via flow. It also makes possible the ability to rapidly switch and layer various sound sources, as long as the pb-range can be set to 24, and as long as there is a multi-channel mode that can operate within a single sound.