Page 2 of 4

Re: Listing the contents of a Nord Wave Backup

Posted: 06 Feb 2012, 14:36
by mjbrands
I currently can't find the motivation to work on this any further, so I'll just post the source code here. Feel free to do with it what you want, I'm releasing it to the public with no need to credit me.

Maybe someone can distill some info from this to make some cool user-friendly tool. The current code compiles on OS X and Linux (both gcc) and Windows (Visual Studio).

Re: Listing the contents of a Nord Wave Backup

Posted: 08 Mar 2012, 17:56
by Frantz
Here is a screenshot of what I did to make a windows executable of it :
gcc show nwp.jpg
gcc show nwp.jpg (167.92 KiB) Viewed 6174 times

Re: Listing the contents of a Nord Wave Backup

Posted: 08 Mar 2012, 17:57
by Frantz

Re: Listing the contents of a Nord Wave Backup

Posted: 09 Mar 2012, 22:26
by mjbrands
I tested compiling with GCC on Linux/Mac OSX and Visual Studio on Windows. I think I did try to use GCC in Cygwin but, the binary it built couldn't be used on systems without Cygwin installed.

Re: Listing the contents of a Nord Wave Backup

Posted: 09 Mar 2012, 23:02
by Frantz
true ! it works only when I run it under cygwin.
The good point is that it allows me to work on the same program as you ;)

Re: Listing the contents of a Nord Wave Backup

Posted: 09 Mar 2012, 23:53
by mjbrands
frantzkb wrote:... allows me to work on the same program as you ;)
Anything useful?

Re: Listing the contents of a Nord Wave Backup

Posted: 10 Mar 2012, 00:17
by Frantz
I'm trying to understant this fundamental function you wrote :


unsigned int getBits(unsigned char *data, int start, int bytes, int shift, int length)
{
unsigned int val = 0;
unsigned int mask = 0xFFFFFFFF;
int i;

for (i = 0; i < bytes; i++)
{
val <<= 8;
val += data[start + i];
}

val = (val >> shift) & (mask >> (32 - length));

return val;
}


:wave:

Re: Listing the contents of a Nord Wave Backup

Posted: 03 Sep 2014, 15:50
by steffengrondahl
Bumping this thread :wave:

I just bought a Wave :D :mrgreen:

And I just started to work this nwp parser, as I would like to know the exact values of several presets. Still in progress, building on mjbrands code and documentation. But it's a very time consuming task :( However also fun :)

Has anyone worked further on this? And are anyone interested in this at all?

BTW: Not being very familiar with C, my first thought was to code in Java. But after some thought I ended up coding the parser in ... ahem ... javascript :lol: And it's working and the good thing is, that I can the easily publish it on my website 8-)

Re: Listing the contents of a Nord Wave Backup

Posted: 12 Feb 2015, 22:25
by steffengrondahl
Bumping again. I have created it more or less. There's a few bug, but probably fine for now. I have published the NPW parser on my danish (!) website:

http://steffengrondahl.dk/musik_nwpparser.html

Click on the red store button to load a nwp file. When loaded the file is validated (partially), parsed and the settings are shown. Clicking on a knob will for a short period show the exact value in the display. You can even chose which slot to look at :mrgreen:

Nice, isn't it? The Wave layout is done in SVG. The rest is JavaScript (and HTML5).

Bugs:
  • The morph is a little strange. For some parameters it doesn't behave as expected. For instance: If I set semi tones to +12, and the wheel morph on semi tones to +24, full wheel position will add a octave as expected. But if I then turn the semi tones knob (not in morph mode) to +24, I would expect to cancel the morph. This isn't happening, the +12 semintones morph is kept, so full wheel still gives one octave. OK, but repeating the same procedure, but with -12 semitones initially, -24 semitones for the wheel morph and finally setting the semintones to -24, the morph if effectively canceled :? In the implementation, I assume not to go out of scale with morphing, but this is at least in one case (add one octave) an incorrect assumption.
  • The mapping from parameter value (mostly a 7 bit value) has to be mapped to the values shown in the display. This is done with tables. However I haven't been able to map all values for all parameters, so for some values the display will show something like "? (-7.0 .. -6.7)", because I don't know which of the two values the display will show. I will try to improve this further, but some values seems to be very difficult (impossible?) to dial in
  • The last last two bytes in the nwp file contains a checksum. Initially, I decided not to care for this (though it should be included if the file verification should it be perfect). But now I will try to find out what is is, so I can make some reverse enginering for the missing parameter mappings (previous pin). Haven't been able to find the right checksum algorithm yet, so suggestions are more than wellcome.

Re: Listing the contents of a Nord Wave Backup

Posted: 12 Feb 2015, 23:16
by Marlowes
Hej Steffen!

This looks great! :clap:

Makes me wish for a NLA1 version ...

/Amicalement
Michael in Scania