Corrupted preset file

I’ve recently created a preset that I can’t open anymore.
Haken editor prompts ‘download failed’ and the max console displays
req1 • 110 123
cc109 • 6 archiveFail
noAck1 • bang
noAck • bang

Yet, the file seems to contain the preset when changing to .txt
Maybe there’s just one or two wrong characters?
Has anyone experienced a similar issue?
Is there a way to get my preset back or is it just lost in the limbo?

Thanks!
Clem

1 Like

Which version of the editor and firmware are you using?
After loading it, do you see anything in the editor, or is the matrix blank?

Viewing a .mid file as .txt won’t tell you much – the preset file is binary (standard MIDI file format). If you saved after opening it as .txt, that’s likely to corrupt the file, and using anything but the Haken editor to edit the file is also likely to mess it up.

110 123 is the normal final code in a preset, but it looks like some of the post-reading checks are failing – there’s a check that the count of MIDI messages read in matches what the file says in its header.

To tell more, I’d need a copy of the file in question.

1 Like

I’ve created the preset on 10.37 and I’m currently on 10.38.
My Mini is still on 10.37 and doesn’t open the preset either.

After loading, nothing appears in the editor, the matrix stays blank.
Just a red stripe on the surface display with ‘download failed’.

I’ve only opened a duplicate as .txt. Never the original file.
I attach the file to this message

Thanks Paul

71_Jumeaux.mid.zip (1.2 KB)

1 Like

I see a couple of oddities in the file. I’m not sure exactly how the EM counts messages, but the recorded count doesn’t look right, which would make the consistency check fail. I also see data streams that don’t have the usual stream terminator, but that might be normal for the new “poke” streams. Other than these, everything else seems to be ok.

I haven’t completely decoded/analyzed the file, so there might be other anomalies. I’m not far enough along with my coding for the new firmware to fully understand the new MIDI protocol. When I’m further along I could tell you how to recreate everything that’s captured in that MID file.

I think the best thing to would be to email support @HakenAudio.com, and attach the preset and see what they say.

2 Likes

So the patch is there but there are errors in the metadata?
That’s what I assumed but couldn’t be sure. That’s very good news!
I email Haken Audio then
Thanks

1 Like

I’m not 100% certain, but it seems so - everything else looks normal to me. Please post again with the results from support (likely Lippold).

1 Like

First reply from Richard Kram :

  • he gets the same problem on some presets. There’s something to correct for Lippold or Ed.
  • the preset loads but fails on archive. In Utilities, Midi Log On let’s you see the communication between the Haken Editor and the Continuum in Max Console. It might be possible to recreate at least parts of the preset by ‘reading’ it with Haken Midi implementation (I imagine that’s part of what you did Paul, I thought I’d write it down here if other people needed the information)

I’ll post the updates

1 Like

Yes, sorry, that’s a issue that we are currently working on
It usually happens when you save presets within groups

2 Likes

Paul - Some streams, particularly Matrix streams do not have terminators.

1 Like

Thanks for that, RK - I didn’t know if that was an issue with the broken preset or intended. Good to know. Based on the comment for cc86 127, seems to be streams 19-26.

The lack of terminators makes certain things more complex to implement and removes an error detection opportunity.

It would be helpful to know exactly what is counted for ch15 cc119 (archive count). The comment says “count of controller messages in archive definition” but it’s not clear where the count starts, where it ends, and how the count is affected by running status. I would like to implement the consistency check, but I haven’t done sufficient reverse-engineering to do that yet.

1 Like

I have new MIDI file reader that I’m building out EM knowledge in, but just started. So for this exercise it’s little more than a text dump of the raw MIDI. I’m mostly manually decoding, referring to HakenMidi.h. I walk through the text MIDI dump and annotate with the meaning. I do a bunch of this kind of thing for a while to learn the new protocol, then go write code based on what I learned.

Example annotated snippet of the midi dump:

ch15 CC 110 121 (ny) // cfRetrieveArch
// version 10.37
ch15 CC 102 8 (f-) // ver hi
ch15 CC 103 13 (g-) // ver lo

ch15 CC 56 1 (8-) // conText
ch15 Poly Key Pressure 105 61 (i=)
ch15 Poly Key Pressure 66 80 (BP)
ch15 Poly Key Pressure 77 95 (M_)
ch15 Poly Key Pressure 49 99 (1c)
ch15 Poly Key Pressure 95 53 (_5)
ch15 Poly Key Pressure 54 95 (6_)
ch15 Poly Key Pressure 49 56 (18)
ch15 Poly Key Pressure 51 10 (3-)
ch15 Poly Key Pressure 10 67 (-C)
ch15 Poly Key Pressure 46 82 (.R)
ch15 Poly Key Pressure 111 117 (ou)
ch15 Poly Key Pressure 115 115 (ss)
ch15 Poly Key Pressure 105 108 (il)
ch15 Poly Key Pressure 108 97 (la)
ch15 Poly Key Pressure 116 0 (t-)
ch15 CC 56 127 (8)

ch15 CC 18 52 (-4)  // post level
ch15 CC 20 92 (-\)  // R1
ch15 CC 21 56 (-8)  // R2
...

ch15 CC 119 65 (wA)  // archive count
ch15 CC 110 123 (n{) // archive EOF
ch15 CC 110 119 (nw) // noop
ch15 CC 110 124 (n|) // archiveToFile

This is of course extremely primitive but works for me as a learning process.

I’m curious to hear precisely what the problem with this file is. Is it missing required data, or is that the archive count is wrong? (or info is missing and the archive count includes the info that isn’t there). I didn’t decode the formulas, but I didn’t see any logical inconsistencies in the file. I’m used to seeing more general settings, like the CVC version and MIDI routing, but that doesn’t necessarily mean there’s a problem.

2 Likes

Regarding CVC, MIDI or other general settings, I usually don’t change anything in those menus. It might explain why there is not so much reference to them in this particular preset

1 Like

In 10.09 presets, there are commonly occurrences of general settings that are the default settings - MIDI routing is one. I do need to look at more presets from the new FW to see what’s normal for them, which I’ll be doing when I return to my EM software projects.

1 Like

Useful tip you probably know but when saving a preset on 10.38, before entering the name and saving you can check in the midi log the ArchiveCnt entry.
It should display “expect A got B” with A equal to B. If A and B are different, don’t save, the file will be unreadable.
Click cancel, change one or two harmless things in your preset and then retry saving until A equals B

2 Likes