Grog96 Junior Member
Joined: 18 Feb 2017 Posts: 55 Location: Sheffield, UK
|
Posted: Sun Mar 05, 2017 11:20 pm Post subject: Question re Kronos Song Object Dump SysEx data... |
|
|
Hi guys! I already asked this in the 'Korg Kronos' forum a fortnight ago, but had no response - thought I'd try here...
Has anyone had experience with the Kronos Song Object Dump system-exclusive message?
I've had great success with the help of the KRONOS_SysEx_2_1 documentation - I downloaded a copy of the doco for Version 1.23 (Sep 19, 2012). This has enabled me to pull apart Song data dumped from my Kronos X (once I've decoded the SysEx body from 8-bytes to 7-bytes format, natch ). However, I found an oddity: the Event Offset value for each MIDI Track (and probably the audio/automation tracks, I haven't checked) is being dumped as -1 (or 0xFFFFFFFF). The doco states the value should range from 0~2399992 (or 0x0~0x249EF8).
Why does this matter to me?
I often find that I need to move MIDI Tracks around when building a Song - not just the sequenced events (which is what you get if you use the Copy Track menu option), but *all* the parameters for the track that make it sound and behave correctly. For instance, If I swap a piano and a drum track, I want the new drum track to still sound like drums, not an orang-utan bashing on a piano! Or worse, it might not make any sound e.g, if the track still has a key-zone that was relevant to the piano track which is now a drum track. At the moment it's a right old chore to copy every single detail via the Kronos GUI. I have to manually alter all the track's parameters on the main tab, tone adjust tab, EQ tab, MIDI/osc/pitch/delay tabs, filter/zone tabs, IFX tabs ... you get dizzy after a while!
To solve this, I'm writing a program on my PC that will (eventually) perform easy drag-&-drop copying(*)/swapping/moving or sorting (by channel/key zone/track name, etc.) of one or more MIDI Tracks (I might tackle Audio Tracks later) in a Song, or Timbres in a Combi (since they both share a common memory structure, according to CombiAndSongTimbreSet.txt). The program copies the track/timbre data in specific-sized blocks between memory locations within the TimbreSet object, and also the SongControl object (c.f. SongControl.txt) if it's a Song dump.
(*) Edit: on reflection, copying the Event Offset is a bad idea; I must avoid duplicate pointers to the same data!
My programming was proceeding fantastically well, until I noticed all those 0xFFFFFFFF values. Why is my Kronos hiding the tracks' event data pointers from me? For my program to work, I need valid Event Offsets in the blocks of track parameter data, so that as I move blocks around their content remains consistent, and meaningful when dumped back to the Kronos. I don't care what the actual values are, so long as I can send them back attached to their new track numbers. So, if I swap track 11 with track 3, track 3 should now play the events that the old track 11 used to point at, using the sound parameters from the old track 11, and vice-versa (hope that makes sense!). I suspect the Kronos will re-apply each tracks' original Event Offset values as it sees fit when I dump it back, which will defeat the object of the exercise Cue the orang-utans, wheel that piano back in!
So, the question is: Are my assumptions correct? If so, is there a way round it?
Help! Any clues, o wise and powerful ones?
Many T.I.A... _________________ Current gear: Korg Nautilus 73, Korg Kronos X 61 (non-booting!), Korg Krome 73,
Gathering dust: Korg 01/Wfd, Korg M1, GEM S2, AKAI S2800, EMU Morpheus, Casio AZ-1 + midiBeam
Band: Harmony Of Spheres |
|