bump just for all the excite about this thing.
* > to XML
and then,
XML > LSDJ.sav/LSDJ.lsdsng again, nom nom.
Last edited by aday (Mar 19, 2013 4:04 am)
Oh wait, never mind! you got JSON, i can dig.
root@ishiki:/home/aday/py/lsdj-utils/lsdj-sav-utils-master/out/NYAN# cat phrase_00.json
{"notes": [40, 41, 43, 0, 48, 0, 41, 40, 41, 43, 48, 52, 53, 52, 47, 48]}
that's freaking cool!
Last edited by aday (Mar 19, 2013 4:17 am)
Nice! Glad you're getting use out of this!
I'm planning on doing some more work on this soon. Watch this space.
Yup! Thanks for your continued interest in this.
When I came back to the codebase in March, it was an absolute mess. I ended up refactoring the parsing portion of the code, which has made the whole thing a lot easier to maintain.
The basic mechanics (loading, storing, parsing) are done. Test coverage is a lot less than I'd like, but there are a handful of functional tests and they're passing.
There are a couple remaining long poles:
The binary format parsing library I'm using is kind of slow, since it's pure Python and does a ton of object creation under the hood during writes. I'm debating between speeding that library up with a patch and just writing something that does what I need; I'll probably end up doing the latter, since I really just need simple bitwise file I/O. When it can store a .savfile in under 5 seconds without running it in pypy I'll be happy.
It doesn't have a GUI yet, which I know is something that a lot of people wanted. I'm debating just making it run a web server and writing the UI in HTML/JS to save time.
Once its speed is acceptable and a basic GUI is in place, I'll need people to kick the tires and I'll start writing more thorough tests.
In short, it's pretty far along. I'd like to get it to the point where I can declare victory by the end of the year; thankfully I'll have some holiday time off to spend working on it.
Great news!
The code on google code seems untouched since 2011.
What library do you use for binary parsing?
I started to write such a tool as well, in python too.
For now it can parse a sav file, extract songs, and parse some song data...
I used my own parsing routines.
In fact I tried to 'describe' the binary format, in order to be able to parse AND to write data in that format.
I think I will be able to work on it during the following days, but I wanted to know if I could contribute to your project instead...
Do you have some recent code somewhere?
@cyberic: The code is on GitHub: https://github.com/alexras/lsdj-sav-utils
I wrote a binary format I/O library, called bread, precisely because the parsing code in the original lsdj-sav-utils codebase was getting super hairy. It's also on GitHub: https://github.com/alexras/bread
I would definitely welcome pull requests, but I'd like to get an alpha release out the door first.
Great! Your lib seems cool!
Tell me if you need testing.
After your release I think I will code some utilities, for instance to dump instruments to a file, to merge an instrument into an existing song, things like that...
You should update the google doc page to point to github.