MicroKorg XL+ to XL file converter

Discussion relating to the Korg MS2000, MS2000B & microKorg.

Moderators: Sharp, X-Trade, Pepperpotty, karmathanever

Zylvian
Posts: 1
Joined: Wed Feb 26, 2020 3:51 am

Post by Zylvian »

iron_horse wrote:In case anyone needs a simple way to convert .mkxl_all files to .mkxlp_all I knocked up a python script that does exactly that (on my mac, or if you have python installed on windows). Cut/paste the python code below into a file (for example kconvert.py) and run it using: python kconvert.py inputfilename outputfilename

Code: Select all

# Python2 (might work on python3, not tried it)
#
# Convert .mkxl_all files to .mkxlp_all format (minor byte change)
#
# From info on http://www.korgforums.com/forum/phpBB2/viewtopic.php?t=87208&sid=f7399b5d9092db496a82ef99d1c4f526
#

#
# Arguments: input-filename output-filename
#

def fixData(start):
  end = start+4
  if "".join(data[start:end]) != '6140':
    raise AssertionError('Expected 6140 but not found at '+str(start))
  data[start+3] = '1'

#
#--- Main program
import sys
import os.path

if len(sys.argv) != 3:
  print('Usage: <script> inputFilename outputFilename')
  sys.exit(1)

inputFilename = sys.argv[1]
outputFilename = sys.argv[2]

if os.path.isfile(outputFilename):
  raise AssertionError('Output file already exists, please delete it first')

if not os.path.isfile(inputFilename):
  raise AssertionError('Input file not found')

# File is small so read it in one go
data = open(inputFilename, "rb").read()
data = list(data)
fileLength = len(data)

# First two chunks to change are only a few bytes apart
fixData(0)
fixData(32)
for start in range(64, fileLength, 528):
  fixData(start)

with open(outputFilename, 'w') as f:
  f.write("".join(data))

I'm only getting "The file has invalid ID". I'm trying to get the free patches for the Microkorg XL to my XL+, any ideas?
Post Reply

Return to “Korg MS2000 & microKorg”