falkTX / non

Non reinvents the DAW. Powerful enough to form a complete studio, fast and light enough to run on low-end hardware like the eeePC or Raspberry Pi, and so reliable that it can be used live, the Non DAW Studio is a modular system composed of four main parts: Non Timeline, a non-destructive, non-linear audio recorder and arranger. Non Mixer, a live mixer with effects plugin hosting and advanced Ambisonics spatialization control. Non Sequencer, a live, pattern based MIDI sequencer, and finally, the Non Session Manager to tie together these applications and more into cohesive song-level units.
http://non.tuxfamily.org
GNU General Public License v2.0
20 stars 8 forks source link

Non-Mixer F9 Learn function incorrectly assigns additional MIDI controllers #7

Open signality opened 1 year ago

signality commented 1 year ago

Hi,

I am experiencing an issue with Non-Mixer where, whilst assigning MIDI controllers to mixer strip levels using the F9/F10 Learn/Stop Learning process works correctly, other unwanted MIDI controllers are also being - apparently randomly - assigned to the same mixer strip levels.

I am using Non-Mixer as a simple low CPU load audio mixer between 4 inputs from a Behringer UMC404HD and a 2 channel Input module on a piece of software called Sunvox. The mixer levels are controlled via MIDI by assignable sliders on a Novation Impulse-49 keyboard.

To make all this work and connect up, I have also installed NSM from the KX Studio repository and installed Qjackctl from the Pi OS repository. NSM is set up to first run Non-MIDI-Mapper followed by Non-Mixer then Qjackctl then SunVox and lastly to open a terminal so that I can run an aj-snapshot file to set up the connections in Qjackctl.

I have previously set up (and saved) a Non-Mixer configuration using Non-MIDI-Mapper to "teach" the relevant 4 channels of Non-Mixer which of the sliders on the Impulse-49 keyboard to read for setting the mixer levels.

This all works extremely well except that as well as the 4 assigned sliders on the Impulse-49, a seemingly random selection of the remaining 5 sliders and 9 buttons also cause unwanted operation of the 4 mixer levels.

I have tried clearing the learned assignments and then "teaching" different selections of sliders but of the 9 sliders and 9 buttons none seem to give a 4-sliders-to-4-mixer-levels only slider-to-level-setting mapping.

Since I wish to use the other sliders and buttons on the Impulse-49 for other control functions in SunVox (which does not seem to get confused about MIDI controller assignments), this means that I cannot use Non-Mixer in my setup.

The Impulse-49 has a number of other assignable controllers including 8 rotary controllers. Although the duplicated incorrect controller assignment described above does not happen if I "teach" Non-Mixer to use the selection of these 8 rotary controllers, they are mechanically unsuitable for the purposes of live mixer control.

I have replicated this setup replacing Non-Mixer with Ardour 6 from the Raspberry Pi OS repository. Ardour 6 behaves correctly, i.e. it does not exhibit this duplication of controller assignments. However Ardour considerably increases the CPU load to such an extent that it restricts some of the other things I wish to do with the Raspberry Pi at the same time.

I have also replicated this setup replacing Non-Mixer with jack_mixer installed from the DEbian Bookworm repository. Whilst in this setup, jack_mixer works correctly with no MIDI controller mis-mapping or duplicate control silliness, it uses a similar amount of CPU to Ardour and although fewer than with Ardour, still generates a few Xruns which do not appear using Non-Mixer.

I have so far failed to find any configuration files for Non-Mixer or Non-MIDI-Mapper that either give any clue or respond to manual editing that sheds any light on the duplicate mapping behaviour.

I have also tried to contact Jonathan Moore Liles to ask for help but have so far had no reply.

For info,

Hardware:

Raspberry Pi 400 Behringer UMC404HD Novation Impulse-49 keyboard.

Software (arm64):

64 bit Raspberry Pi OS (based on Debian Bullseye) with kx studios repositories configured and: kxstudio-default-settings Non-Mixer: 5:1.2.0+git202001 (bionic) Non-Session-Manager: 5:1.5.0-1kxstudio (bionic) installed

Also installed Qjackctl: 0.9.1-1 (oldstable) Debian Multimedia Ardour: 1:6.5.0+ds0-1 (oldstable) Debian Multimedia aj-snapshot: 0.9.9-2 (oldstable) Debian Multimedia SunVox 2.1e (from warmplace.ru)

The Novation controllers are:

Sliders (0 to 127) 1: CC # 41 2: CC # 42 3: CC # 43 4: CC # 44 5: CC # 45 6: CC # 46 7: CC # 47 8: CC # 48 9: CC # 49

Buttons (push off: 0, push on: 127)

1: CC # 51 2: CC # 52 3: CC # 53 4: CC # 54 5: CC # 55 6: CC # 56 7: CC # 57 8: CC # 58 9: CC # 59

Rotary knobs (0 to 127):

1: CC # 21 2: CC # 22 3: CC # 23 4: CC # 24 5: CC # 25 6: CC # 26 7: CC # 27 8: CC # 28

Novation Impulse-49 controllers assigned to Non-mixer strips:

Slider CC # 41 to level of 2 channel stereo Input 1 Slider CC # 42 to level of 1 channel mono Input 2 Slider CC # 43 to level of 1 channel mono Input 3 Slider CC # 44 to level of 2 channel stereo Master

No other controllers are explicitly assigned during the "Start Learning" (F9)/"Stop Learning" (F10) operations but after pressing F10 in Non-Mixer, a somewhat random selection of other sliders (in the CC # 45 to CC # 49 range) and buttons (in the CC # 51 to CC # 59 range) are then observed to be assigned to the same Input , 2, 3 or Master mixer channels. For example, in a recent simple example, after teaching mixer strip Input 1 level to be controlled by Slider 1 CC # 41 and strip Input 2 level to be controlled by Slider 2 CC # 42 and then pressing F10 to Stop Learning, whilst Sliders 1 and 2 operate correctly, Slider 6 CC # 46 was also found to operate the level of strip 1, slider 8 CC # 48 was also found to operate the level of strip 1, whilst sequential presses of Button 6 CC # 56 were found to toggle the level of strip 2 fully on or fully off.

The combinations of such mis-mappings have not been found to be consistent from one "teaching" attempt to another.

I do not think that this is indicative of a fault in the Impulse-49 keyboard since both Ardour and jack_mixer work as expected.

I have not however been able to reproduce this behaviour using a different MIDI controller as I do not have access to one.

I would very much appreciate any help or suggestions you may be able offer since getting Non-Mixer working is the first step in adding the rest of the Non-DAW suite to what I think would make an excellent low cost of entry but high performance live studio on the Raspberry Pi.

Thanks,

Andy.