[linux-audio-dev] Re: Nord Modular instrument converter

Simon Jenkins sjenkins at blueyonder.co.uk
Sat Apr 30 15:01:45 UTC 2005


On Fri, 2005-04-29 at 16:30 +0300, Juhana Sadeharju wrote: 
> >From: Simon Jenkins <sjenkins at blueyonder.co.uk>
> >
> >2. Is C++ OK? (You'd end up with a Patch class that could be
> >over-ridden to dump itself in whatever format was required).
> 
> C++ is ok, and would make sense because the nmedit code is C++.
> 
> For each module, the nmedit has a parameter etc. descriptions.
> If I understand correctly, we don't need them because we write
> our modules as an exact clones (inputs, outputs, parameters at
> least). But if the nmedit code already loads all the information,
> please keep it that way. The info could be useful.
> 

I was assuming you wanted something light-weight that just
loads in a patch and let you inspect everything in it? So
I've modified the nmedit lex & yacc files to parse a patch
into a very simple CPatch class (ie not using the nmedit
classes at all) which you can interrogate.

Here's what I've got so far. It doesn't parse the user-defined
module names yet, nor the text notes that can be attached to a
patch, but everything else is pretty much done. 

http://www.sjenkins.pwp.blueyonder.co.uk/audiodev/nmp_0_0_1.tar.gz

Unpack it, then...

>cd nmp_0_0_1
>make
>./nmp <patchname>

and it prints out a description of the patch.

The patch is parsed into a CPatch class, then DescribePatch()
interrogates the patch and describes whats there.

To use this in a patch converter, you could either write a
ConvertPatch() function to interrogate CPatch and generate
the converted format, or you could modify or derive a class
from CPatch which generates the converted file "on-the-fly"
as the parser finds the blocks in the file.

I can't do any more on this for a week or so, hence the
incomplete release now. Enjoy.

Simon









More information about the Linux-audio-dev mailing list