Working on Midi Mapping for Repro 5, encountered a challenge,

Official support for: u-he.com
Post Reply New Topic
RELATED
PRODUCTS

Post

Hello!

I'm trying to map a Sequential Pro 3 to control Repro 5 knobs and buttons. At first I tried messing around with the built in midi mapping function. That works fine for standard knobs, but didn't map well for special things like buttons and the Oct switches for example.

So I started writing a script for Logic Pro scripter midi plugin. For example, I did this to map the Osc knobs, this worked but I had to reassign the controller after updating the script:

Code: Select all

	// Pro 3 - OSC 1 OCT Knob
        if (event.number == 66) { 
            event.value = mapCCValueToKnobOctSwitch(event.value);
            event.send();
        }
The Pro 3 Oct switches outputs integer values like: 1, 2, 3
So I tried mapping those to a virtual full range knob, and that worked.

Code: Select all

function mapCCValueToKnobOctSwitch(inputVal) {
    // Map input values (1-4) to the range 0-127
    switch(inputVal) {
        case 1:
            return 0;
        case 2:
            return 42;
        case 3:
            return 85;
        case 4:
            return 127;
        default:
            return 0;
    }
}
The next challenge: I'd like to map the osc shape knob to the osc shape buttons. I was hoping to be able to do this by adding a couple of mappings in the Repro 5 editor and then updating the script.

So I added a couple of entries in the Midi Table view of Repro 5. However, I noted that I can't seem to change the Channel and Controller values manually? Is there a way to sidestep this so I can edit those values without needing to go through the Midi Learn page? :help:

Post

I used a workaround where I made the scripter send events on CC values that arent in use by the main knob interface of the Pro 3, and mapped those to the waveform buttons. Then I added code in the script to flip those buttons on and off based on the single shape knob of each oscillator as follows:

Code: Select all

// Repro 5 Osc 1 Waveforms
        if (event.number == 69) {
            // modes
            // 10, 01, 11
            var v = event.value;
            if (v < 42) {
                sendCC(100, 127);
                sendCC(101, 0);
            } else if (v < 84) {
                sendCC(100, 0);
                sendCC(101, 127);
            } else {
                sendCC(100, 127);
                sendCC(101, 127);
            }
        }

        // Repro 5 Osc 2 Waveforms
        if (event.number == 78) {
            // modes
            // 100, 010, 001, 110, 011, 101, 111
            var v = event.value;
            if (v < 18) {
                sendCC(117, 127);
                sendCC(118, 0);
                sendCC(119, 0);
            } else if (v < 36) {
                sendCC(117, 0);
                sendCC(118, 127);
                sendCC(119, 0);
            } else if (v < 54) {
                sendCC(117, 0);
                sendCC(118, 0);
                sendCC(119, 127);
            } else if (v < 72) {
                sendCC(117, 127);
                sendCC(118, 127);
                sendCC(119, 0);
            } else if (v < 90) {
                sendCC(117, 0);
                sendCC(118, 127);
                sendCC(119, 127);
            } else if (v < 108) {
                sendCC(117, 127);
                sendCC(118, 0);
                sendCC(119, 127);
            } else {
                sendCC(117, 127);
                sendCC(118, 127);
                sendCC(119, 127);
            }
        }
This works, however it will be a bit challenging if it needs to be mapped again.

Post

Questions:
The midi mapping, how is it saved?

Is it possible to save it separately and load it, lets say if I want to move to another computer.

Also, what happens if I update the plugin, will I retain the midi mapping?

Post

mrj1nx wrote: Sat Jun 15, 2024 12:24 pm Questions:
The midi mapping, how is it saved?
The MIDI map is saved in a simple .txt file.

Of course it's retained if you update the plugin. It will stay there as long as you don't manually delete the file. You can also copy it to another computer to use it there as well.

On Mac, you can find it in the user library section.
As the user library is invisible by default, the fastest way to get there is to paste the path in the "Go to Folder" option of the Finder's Go menu.

~/Library/Application Support/u-he

The file's called com.u-he.Repro-5.midiassign.txt.
That QA guy from planet u-he.

Post

Thanks! Will take a look.

Post Reply

Return to “u-he”