mmpz compression method

Having trouble with LMMS? Ask about it here.
First of all I wanted to create a topic in the general board, but it would not work because of an incorrect redirection error.

I accidentally deleted one of my project and I'm trying to recover it.
I viewed the files with od and saw all files started with 00 00, followed by 2 other bytes and the hex code 9c78.
So I used od in combination with grep to find all occurrences on my home partition

Code: Select all

od -A x -t x2 /dev/sdc4 | grep \ 0000\ [a-z0-9][a-z0-9][a-z0-9][a-z0-9]\ 9c78 > /media/programmas/temp/ 
The problem however is that I don't know the length of the file. Therefore I'm trying to find out the used compression method.

If someone could tell me how to determine the length of a file, that would be greatly appreciated. Otherwise please point me to the used compression method so I can check their documentation to find out how to determine the correct length.

I also wonder if it would really matter as long as the file isn't too short.

Edit: I forgot to mention: I'm using lmms 4.8-1 on 64bit arch.
I checked it up, but unfourtunately no simple general compres-method has been used - The filestructure is for most parts created in mmp.cpp, but im told that the structure depends on serialization codes spread across LMMS's model classes in saveSettings/loadSettings functions... :/

News on this!
in fact QByteArray::compress() has been used. That should basically be zlib compression. So if a project is zlib-decompressed, that should result in a XML file that should be resonably understandable.
I hope you can use this information so salvage your lost files.