Support and discussion for all of Akai’s modern standalone MPCs including the MPC X / X SE, MPC Live 1, 2 & 3, MPC One / One+, MPC Key 37/61.
By Lebkagelu Mon Jul 18, 2022 5:03 pm
Hi folks!
Is there some way to merge 2 or more KEYGROUP programs?

May be the piano and strings. Both multisampled (20 keygroups).
I know only about using “multi” arm some programs
and use Sub for one set of Fxs.

But the goal is to easy combine fxs, better mod wheel control , speedy loading
and more overall benefits.

I am looking for answers.
Thanks a lot
User avatar
By MPC-Tutor Mon Jul 18, 2022 5:08 pm
The easy way is to use the new key ranges feature, either via the Sounds browser, or via track view. This only works with external controllers though.

You can also use the 'SEND TO' feature (found in MAIN > eyeball > MIDI strip) to send the MIDI from your piano track to the string track.

Otherwise you can manually create a 'combined' keygroup program that uses the two sets of samples.

All these methods can be used to either fully layer the two instruments, or create a 'split' across the keyboard (e.g. piano on left hand side, strings on right). Pick the one that suits your needs.
By Lebkagelu Wed Jul 20, 2022 8:07 pm
Thanks for reply.
I am actually using all the tree variants.
All works fine for me.

But i am still searching for helping with manually merge keygroups.
Maybe some external software
efitor can handle Akai programs.

(For example: i have a bank of Hammond organs. Fast programms and Slo programms. )
By HouseWithoutMouse Fri Jul 22, 2022 5:01 pm
Here is a Python script which merges two Akai XPM keygroup programs. Tested with Force 3.1.3, with merged keygroup programs auto-sampled on MPC One 2.10. There is no error checking. It simply takes all <Program> / <Instruments> / <Instrument> structures from program 2, adds them to the <Program> / <Instruments> structure loaded from program 1, and saves the whole updated structure to a new file. Only <Instrument> thingies and program name are taken from program 2. Program name and number of instruments are updated accordingly. The script does not at all understand what the XML represents, or if the result will "work" in any way, whatever "working" means to anyone.

Code: Select all"""  file: merge_akai_keygroup_programs.py
Merge two Akai XPM keygroup programs. No input checking.

Usage:
    python merge_akai_keygroup_programs.py <program1.xpm> <program2.xpm> <combined_program.xpm>

"""
import sys
import xml.etree.ElementTree as et

# parse input data
tree1 = et.parse(sys.argv[1])
tree2 = et.parse(sys.argv[2])

program1 = tree1.find('Program')
program2 = tree2.find('Program')

program1_instruments = program1.find('Instruments')
program2_instruments = program2.find('Instruments')

# number of instruments i.e. keygroups in program 1
program1_orig_num_instruments = len(program1_instruments.findall('Instrument'))

# add instruments (keygroups) from program 2 to program 1
for el in program2_instruments.findall('Instrument'):
    el.attrib['number'] = str(int(el.attrib['number']) + program1_orig_num_instruments)
    program1_instruments.append(el)

# update number of instruments
program1.find('KeygroupNumKeygroups').text = \
    str(len(program1_instruments.findall('Instrument')))

# update program name
program1.find('ProgramName').text = \
    program1.find('ProgramName').text + ' + ' + program2.find('ProgramName').text

# write combined program to a new file
with open(sys.argv[3], 'wb') as f:
    tree1.write(f)